데이터엔지니어링

회사에 입사하고 나서 처음으로 프로덕션 환경에서 데이터 파이프 라인을 구축하고 배포한 경험을 정리해보고자 한다. 사실 프로젝트 끝난지는 한달정도가 되어가는데.. 내일 새로운 빅데이터 플랫폼 구축 프로젝트가 시작되기 전에 나의 첫 프로젝트를 먼저 회고해보기로 했다. 나는 6개월짜리 Databricks 기반의 빅데이터 플랫폼을 구축하는 프로젝트에서 데이터 엔지니어링을 담당했다.실제로는 4개월 정도 참여했으나, 프로젝트가 특이하게도 1차 배포 - 2차 배포 + 운영 의 프로세스로 진행되어 운좋게도 인프라 구축부터 파이프라인 개발, 운영 모니터링 과정의 ETL 파이프라인 개발의 한 cycle을 경험할 수 있었다. 총 4개월 - 길면 길고 짧다면 짧지만 - 동안 택시도 타고 주말도 반납하면서 실전에서 부딪히며 느..
kakfa의 등장 배경실시간으로 데이터를 처리하는 과정에서, 다수의 producer 와 consumer가 개별적인 연결을 맺는 구조의 경우 하나의 시스템만 추가되어도 통신 구조가 복잡해진다. 이런 문제를 해결하기 위해서 카프카를 통해, 메세지와 데이터의 흐름을 중앙화하여 관리한다.   Kafka 의 구성요소 producer : 정보를 제공하는 processconsumer: 정보를 제공받아서 사용하려는 processconsumer group : 카프카 컨슈머들은 컨슈머 그룹에 속한다. 여러개의 컨슈머가 같은 컨슈머 그룹에 속할 때 각 컨슈머가 해당 토픽의 다른 파티션을 분담해서 메세지를 읽을 수 있다.broker : 데이터를 저장하고 수신 및 전달하는 node (그림은 MQ == Broker 같이 보이는데..
1. Airflow 의 주요 컴포넌트 Scheduler : workflow 스케줄을 실행시키고 executor 에게 task 를 제출하여 실행시킨다. Executor : task 실행을 관리하는 컴포넌트 Worker : 실제로 task 를 실행시키는 컴포넌트Webserver : DAG의 실행을 UI상에서 확인할 수 있도록 웹 서버를 제공한다. Metadata Database : DAGs 에 대한 정보와 task 의 상태에 대한 정보를 저장한다. Dags (folder) : DAG를 구성하는 코드가 있는 경로이다. airflow.cfg 파일에서 기본 경로를 설정할 수 있다.  2. Airflow Executor 의 종류 Sequential Executor기본 executor 이다.한번에 하나의 task 만..
현 회사에서 데이터 엔지니어링 프로젝트를 위해 Databricks 플랫폼을 구축하고 파이프라인을 개발하는 일을 담당하고 있다. Databricks의 기능에 대해 한국어로 잘 정리된 기술 블로그가 보이지 않아서, Databricks를 어떻게 하면 제대로 쓸 수 있을지 투고해보려고 한다. Databricks 플랫폼에서 데이터 카탈로그에 해당하는 Unity Catalog 에 대해 정리해보려고 한다. 데이터 카탈로그 , 그 이전에 데이터 가버넌스 우선 데이터 가버넌스라는 개념은 조직 내에 데이터 자산의 품질, 보안, 접근성, 일관성을 관리하고 제어하는 정책들을 말한다. 데이터 가버넌스에는 다음과 같은 활동들이 있다. 데이터 표준과 정책 설정 데이터 품질 관리 데이터 및 개인 정보 보호 데이터 관리에 대한 책임 ..
스트림 처리 vs 배치 처리 Spark 는 Streaming 처리를 지원한다. 우선 Streaming 처리라는 것은 무한히 들어오는 새로운 데이터 셋에 대한 증분 처리라고 정의할 수 있다. 스트림 처리에서 입력되는 데이터는 시작과 끝이라는 개념이 없어서 무한하다고 표현하는 것이다. 스트림 처리와 비교가 되는 데이터 처리 방식으로는 배치 처리가 있다. 배치 처리란 고정된 입력 데이터 셋에 대해 처리하는 방식이다. 데이터가 들어오는 대로 처리하는 것이 아니라 하나의 배치로 만들어서 신규 데이터 레코드를 처리한다. 예를 들어서, A1 시간 부터 A2 까지의 처리를 한 묶음(레코드)로 묶어서 처리하고, A2 시간부터 A3 시간까지의 처리를 한 묶음으로 처리하는 방식이다. 스트림 처리와 배치처리는 다른 성격으로 ..
Spark 스터디를 시작하면서 실습환경이 필요했는데 현재 회사에서 데이터브릭스를 사용하니까, Spark 개인 공부도 동일한 환경에서 공부를 하면 좋을 것 같아서 데이터브릭스로 결정했다. 그런데 클라우드 서비스인 만큼 과금을 주의해야 하므로 무료 버전 Databricks Community Edition 을 찾아보게 되었다. 시작 방법은 간단한데 데이터브릭스가 상당히 교묘하게 숨겨놔서 주의해야 한다 ! 나와 같은 사람들이 있을 것 같아서 공유한다. https://www.databricks.com/try-databricks Try Databricks - Unified Data Analytics Platform for Data Engineering Discover why businesses are turning..
국내에 Databricks 관련 블로그 글이나 문서가 많지 않아서 직접 공부하거나 테스트 해본 내용들을 블로그에 조금씩 정리해보려고 한다..! Databricks DLT Table 이란 ? 데이터브릭스에서 안정적으로 배치 및 스트리밍 데이터를 위한 파이프라인을 구축하고 관리할 수 있도록 만들어 놓은 기능이다. 스트리밍 데이터에 강하다보니, CDC가 필요한 경우에도 주기적으로 스트리밍 데이터를 당겨오면 Delta Live Table에 변경 사항을 반영할 수 있다. 문제점은 .. 편리한 대신에 가격이 비싸다고 한다 https://www.databricks.com/kr/product/delta-live-tables Delta Live 테이블 | Databricks DataBricks Delta Live Tab..
·개발일기
결론부터 말하자면 오늘 Data Specialist 인턴 면접을 봤고 , 다음달부터 출근하라고 해주셨다 !!!!!! 취업 준비를 하면서, 클라우드 부트캠프를 들으면서도 정말 진로에 대해 고민을 많이 했다. 이렇게 준비하는게 느린건 아닌지, 아직 클라우드나 데이터 엔지니어로 지원하기에는 내 스펙이 너무 부족한 것 아닌지 등에 대한 고민이 있었다. 취준생은 모든것이 불확실한 상황에 놓여있기 때문에 공부를 할때 빼고는 참 고민들이 많아지게 된다.. 기존에 iOS 프로젝트 위주로만 공부하다가 미국 인턴십을 하면서 모바일 클라이언트 앱 개발자로 인턴십을 하게 되었지만 데이터 엔지니어링 팀 회의에 참여하고, 데이터 브릭스 스터디를 하는 등 데이터 관련 업무가 더 비중이 컸던 것 같다. 클라이언트 개발 업무도 로그 ..
minjiwoo
'데이터엔지니어링' 태그의 글 목록