반응형

Data Engineering 64

[Flume] 아파치 플럼( Flume ) 스터디

1. 아파치 플럼이란? 오픈 소스 프로젝트로 개발된 로그 데이터 수집 기술 여러 서버에 산재해 있는 로그들을 하나의 로그 수집서버로 효과적으로 수집 스트리밍 지향의 데이터 플로우를 기반 로그를 수집하여 중앙 저장소에 적재하여 분석하는 시스템 구축할 때 적합 단순하고 유연한 구조로 다양한 유형의 스트리밍 데이터 플로우 아키텍처 구성 가능 Flume 사용으로 신뢰성, 규모 확장성 및 기능확장성 확보 가능 장애시에도 수집된 로그 유실을 방지 가능 Scale-up / Scale-out 방식의 확장을 모두 지원 새로운 기능을 쉽게 커스터마이징 할 수 있음 2. 플럼의 구성요소 1) 소스(Source) 외부 데이터 소스에 설치되는 에이전트 다양한 원천 시스템의 데이터를 수집하기 위해 Avro, Thrift, JMS..

[ 마이 뮤직 테이스트 ] Case Study 4. 데이터 파이프라인 케이스 스터디

1. 마이 뮤직 테이스트 ? 좋아하는 아티스트의 공연을 팬들의 도시에서 직접 말들 수 있는 기회를 제공한다는 아이디어에서 출발한 회사이며, 팬들에게는 원하는 아티스트의 콘서트를, 아티스트에게는 다양한 콘서트의 기회를 그리고 프로모터에겐느 안정적인 수익구조와 지속적인 콘서트 기획의 기회를 제공, 각 아티스트 별 전 세계 콘서트 수요를 실시간으로 확인할 수 있는 데이터 기반의 콘서트 메이킹 플랫폼이다. 2. 파이프라인 구축 동기 마뮤테에서 진행하는 공연의 수가 늘어남에 따라 분석해야되는 공연의 수가 크게 증가 모델 구축을 위한 연구 개발시간이 줄어, 분석을 제 시간에 하지 못하는 결과 초래 데이터 엔지니어 팀은 효율적으로 시간을 활용하여 모델 연구 개발에 매진하고, real-time 으로 판매량 예측 데이터..

[ NiFi ] 8. NiFi Altanative & Competitors

1. 개요 NiFi 에 대해서 잘 파악하려면 NiFi 의 대체재들과 경쟁자들에 대해서 어느정도는 숙지를 하고 있는 것이 좋을 것 같다. 지금까지 NiFi 에 대해 공부하면서 NiFi 는 하나의 이벤트 스케쥴러 같다는 것이다. 아래의 특징은 G2.com 에서 각 플랫폼에 대한 리뷰와 정보를 참고하여 정리했다. 순위는 이 부분을 클릭하면 된다 2. Altanative & Competitors #1 snaplogic Intelligent Integration Platform(IIP) 어플리케이션 또는 데이터 소스 빌드를 위한 통합 구성요소의 모듈러 컬렉션 self-service-integration 분야의 선두를 달리고 있음 어플리케이션, 데이터, APIs 간의 년결을 쉽고 빠르게 만들어주는 플랫폼을 지향 어..

[ NIFI ] 7. Apache NiFi Overview

나이파이에 대해 공부하면서 NIFI DOCS 에 있는 글을 공부하며 정리한 것이다 번역에 있어 많이 매끄럽지 못한 부분이 있을 수 있다. 원본이 궁금하면 아래 링크 참고 https://nifi.apache.org/docs.html Apache NiFi Documentation Copyright © 2018 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, NiFi, Apache NiFi and the project logo are trademarks of The Apache Software Foundation. nifi.apache.org 1. NIFI ..

[ NiFi ] 6. Json 파일을 CSV 파일로 변환하기

1. 개요 Json 파일을 CSV 파일로 변환하여 특정 경로에 저장하는 프로세스를 기록하고자 한다. 이전 게시물에서 사용했던 프로세서와 일부 외부에서 일부 내용을 참고했다. 전체적인 프로세스는 아래 이미지와 같다 2. JSON to CSV 1) 파일 가져오기 GetFile 프로세서는 특정 경로에 있는 파일을 가져오는 프로세서이다. 환경설정에 들어가서 properties 를 클릭하면 input directory 라는 property 에 input 하고자 하는 파일들이 있는 경로를 지정해주면 알아서 파일을 가져온다 2) split json (json 파일 분할하기) 이번에 사용한 json 파일의 내용은 아래와 같다 { "person":[ { "name": "Bob", "age": "16", "employed..

[ NiFi ] 5. Api 데이터를 가공하여 MySQL 로 보내기

1. 개요 이번에는 외부 API 를 추출하고 난 다음에 MySQL 에 넣어보는 사례를 기록하고자 한다. REST API를 불러와서 -> json형식으로 변환 -> 데이터베이스에 삽입 의 프로세스이다 전체적인 경로는 아래 이미지와 같다. 2. 외부 API -> MySQL 순서 이번 API 는 항공기 관련 정보들이 있는 aviationstack 에서 가져왔으며, url 은 아래와 같다 aviationstack.com/ aviationstack - Real-Time Flight Tracker & Status API Free, Real-time Flight Status & Global Aviation Data API Flight tracker & airport timetable data web service t..

[Data Engineering] Case Study 3. 빠르게 성장하는 스타트업의 DW / 토스 개발자 컨퍼런스 SLASH21

1. 개요 스타트업 데이터 엔지니어들에게 가장 고민스러운 것은 데이터 웨어하우스를 구축할 때 "어떤 프로세스를 구축을 해야될지" 와 "어떤 것을 중점에 놓아야 될 것인지" 이 두가지 였던 것 같다. 이번 토스 개발자 컨퍼런스 SLASH21 에서 해당 세션을 들으며, 어렴풋이 가지고 있었던 위와같은 고민들을 어느정도 해소할 수 있었던 것 같다 2. 키워드 이번 세션의 키워드는 아래와 같이 나뉜다 DB Review 디멘젼 테이블 ODS 설계 및 운영 효율적인 협업을 위한 도구 메타정보 관리 데이터 품질 위 키워드들에 대해서 정리한 내용을 블로그에 기록하고자 한다. 3. 키워드 정리 1) DB Review 개발에 있어 속도도 중요하지만 명확한 데이터 모델과 최소한의 표준을 준수하는 것이 중요하다. 이것은 두가..

[ NiFi ] 4. 리눅스에서 MySql 로 데이터 보내기

1. 개요 기본적인 튜토리얼에서 벗어나 NiFi 를 통해 좀 더 심화된 프로세스를 구축하는 연습을 하기위해 해당 포스팅을 작성했다. 추후 NiFi 를 사용할 일이 있을 때, 해당 포스팅을 참고하여 연습해야겠다. 완성된 직후, 전체적인 프로세스는 아래와 같다. 리눅스에 있는 편집한 csv 파일을 읽어들인 후에 json 형태로 변형시키고 나서 MySql 에 저장하는 프로세스이다. 2. 리눅스 -> MySql 프로세스 순서 우선, 해당 포스트는 리눅스 서버에 MySql 을 설치했다는 가정하에 시작한다. 리눅스 버전은 Cent OS 7 을 사용했으며, MySql 로는 MySql 8 버전을 사용했다. 1) 데이터를 리눅스 서버에 넣고 mysql 에 데이터 베이스와 테이블을 생성한다. 실습을 위해 필요한 데이터를 ..

[ NiFi ] 3. NiFi 튜토리얼

1. 개요 추후 회사 프로젝트에 대비해 NiFi 사용법에 대해 공부중이다. 공부하면서 익힌 부분들을 추후 다시 복습하기 위해 블로그에 남겨본다. 우선 앞의 과정을 통해 NiFi 를 설치했다는 가정 하에 진행한다. 그리고 전체적인 튜토리얼 진행은 kwangsiklee 님의 블로그 에서 발췌한 내용의 흐름을 따라가고 있으며, 발생한 상황에 따라 일부를 좀 더 추가해 보강했다. 2. NiFi 테스트 NiFi에서 이벤트를 받아 Flow File 을 생성하는 모습을 확인한다. Tailing 프로세스를 만들어 실제 Tailing 된 Flow File 을 볼 예정이다 1) Processor 추가하기 특정 파일 Tailing 을 위해 TagFile 프로세스를 추가한다. nifi의 경우 특정 프로세스를 만들고 싶은 경우..

[ NiFi ] 2-3. NiFi 설치하기 - Docker

1. 개요 도커는 최근에 가장 많이 사용하고 있는 가상 컨테이너 기술이다. 도커를 하나 구성하고 그 안에 운영체제 등 여러가지 프로그램을 설치하고 각각 따로 돌리면서 필요에 따라 연계할 수 있기 때문에 NiFi 도 Docker 에 많이 설치하여 사용하고 있다. 2. 설치 방법 1) 도커를 설치한다 - 도커를 설치하는 방법은 아래 링크를 참고할 것 snepbnt.tistory.com/404 [Docker] 리눅스에 도커 설치하기 1. 개요 리눅스에 도커를 설치하는 방법을 기록하고자 한다. CentOS 7 을 사용했다. 2. 설치방법 1) 설치 전 리눅스 시스템을 업데이트 한다 $ yum -y update 만약에 Cannot find a valid 로 시작하는 에러가 나 snepbnt.tistory.com ..

반응형