Data Engineering

프로그래머스 유형별 문제 도장깨기 챌린지 ! 1. 조건에 맞는 도서 리스트 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/144853 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr-- 조건에 부합하는 도서 리스트 출력하기 SELECT BOOK_ID , DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATEFROM BOOK WHERE 1=1AND PUBLISHED_DATE >= '2021-01-01' AND PUBLISHED_DATE  2. 조건에..
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 만..
·Data Engineering
1. 테이블 적재 (전체 적재)Bronze - Silver - Gold 레이어를 두는 메달리언 아키텍처를 기반으로 ETL 파이프라인을 설계하고 있다. Bronze -> Silver 로 테이블 데이터 적재를 완료했다. SQL 문은 주로 union 을 사용하여 Target Table count 와 Source Table count 를 확인하고 있다.  2. Databricks 에서의 timezone 설정을 KST로 하도록 알아보는 중이다. Spark Cluster 설정을 아예 configuration 값으로 주는게 최선의 방법인 것 같다. Spark Cluster maven install 시에 구글 크롬 브라우저에서 잘 보이지 않는 이슈 & single cluster 는 설치 되는데 shared cluste..
최근 다양한 이기종 Database에서 Cloud 환경의 Delta Lake 로의 데이터 마이그레이션 일을 spark 로 진행하고 있다. JDBC 연결로 Spark 에서 데이터 read & write 작업을 할 때 발생했던 data skew 현상과 이를 트러블 슈팅했던 경험을 공유하고자 한다. Spark JDBC 연결 spark 에서 jdbc 연결을 통해 Database 의 table 데이터를 read 하는 작업은 아래와 같다. 별다른 추가 옵션을 주지 않고 spark 가 알아서 분산 처리를 할 것을 기대하고 다음과 같은 코드로 데이터를 읽어오는 작업을 하였다. 사용한 인스턴스는 Databricks 에서 aws ec2 r5.large 인스턴스 (core 2, 16GB) 로 driver node, work..
Delta Live Table 이란? Databricks 에서 데이터 파이프라인을 관리하고 자동화하는 서비스이다. Delta Lake 및 Spark 와 연동되어 스트리밍 방식과 배치 방식을 모두 제공한다. DLT 는 console에서 오토 스케일링, 스케줄링, 알림 기능을 제공한다. Delta Live Table 으로 파이프라인을 구성할 때는 databricks 에서 제공하는 dlt 라이브러리를 사용해야 하며, 일반 spark cluster 가 아닌 Delta Live Table Pipeline 에서 구성 및 실행해야 한다는 특징이 있다. Delta Live Table 가 등장하게된 배경은 Python 뿐만 아니라 SQL 쿼리로도 '스트리밍' 처리를 할 수 있게 한다는 아이디어에서 나왔다고 한다. 엔지니..
현 회사에서 데이터 엔지니어링 프로젝트를 위해 Databricks 플랫폼을 구축하고 파이프라인을 개발하는 일을 담당하고 있다. Databricks의 기능에 대해 한국어로 잘 정리된 기술 블로그가 보이지 않아서, Databricks를 어떻게 하면 제대로 쓸 수 있을지 투고해보려고 한다. Databricks 플랫폼에서 데이터 카탈로그에 해당하는 Unity Catalog 에 대해 정리해보려고 한다. 데이터 카탈로그 , 그 이전에 데이터 가버넌스 우선 데이터 가버넌스라는 개념은 조직 내에 데이터 자산의 품질, 보안, 접근성, 일관성을 관리하고 제어하는 정책들을 말한다. 데이터 가버넌스에는 다음과 같은 활동들이 있다. 데이터 표준과 정책 설정 데이터 품질 관리 데이터 및 개인 정보 보호 데이터 관리에 대한 책임 ..
스트림 처리 vs 배치 처리 Spark 는 Streaming 처리를 지원한다. 우선 Streaming 처리라는 것은 무한히 들어오는 새로운 데이터 셋에 대한 증분 처리라고 정의할 수 있다. 스트림 처리에서 입력되는 데이터는 시작과 끝이라는 개념이 없어서 무한하다고 표현하는 것이다. 스트림 처리와 비교가 되는 데이터 처리 방식으로는 배치 처리가 있다. 배치 처리란 고정된 입력 데이터 셋에 대해 처리하는 방식이다. 데이터가 들어오는 대로 처리하는 것이 아니라 하나의 배치로 만들어서 신규 데이터 레코드를 처리한다. 예를 들어서, A1 시간 부터 A2 까지의 처리를 한 묶음(레코드)로 묶어서 처리하고, A2 시간부터 A3 시간까지의 처리를 한 묶음으로 처리하는 방식이다. 스트림 처리와 배치처리는 다른 성격으로 ..
·Data Engineering
데이터 엔지니어 분들의 이야기를 보면 회사마다 각기 다른 엔진, 서비스로 플랫폼을 구축하여 운영하고 어떤 제품이 가장 적합한지 PoC를 통해 도입하는 것 같다. 예전에 스타트업에서 인턴을 했을 때에도 Avo라는 로깅 + 모니터링 툴에 대해 데이터 엔지니어링 팀원분들과 PoC를 진행하고 실제로 도입했던 경험이 있다. 여러가지 데이터 인프라 구성요소 중에서 가장 흔하게 사용되고, 내가 현재 회사에서 사용하는 Databricks 플랫폼과 관련된 엔진들에 대해 정리해보았다. Spark vs Hadoop 먼저 빅데이터를 관리하고 처리하는데 사용되는 오픈소스 프레임워크로 Spark와 Hadoop이 있다. 현재는 주로 Hadoop에서 Spark로 넘어온 패러다임이라고 한다. Hadoop Map Reduce 연산 Ha..
minjiwoo
'Data Engineering' 카테고리의 글 목록 (2 Page)