데이터엔지니어

회사에 입사하고 나서 처음으로 프로덕션 환경에서 데이터 파이프 라인을 구축하고 배포한 경험을 정리해보고자 한다. 사실 프로젝트 끝난지는 한달정도가 되어가는데.. 내일 새로운 빅데이터 플랫폼 구축 프로젝트가 시작되기 전에 나의 첫 프로젝트를 먼저 회고해보기로 했다. 나는 6개월짜리 Databricks 기반의 빅데이터 플랫폼을 구축하는 프로젝트에서 데이터 엔지니어링을 담당했다.실제로는 4개월 정도 참여했으나, 프로젝트가 특이하게도 1차 배포 - 2차 배포 + 운영 의 프로세스로 진행되어 운좋게도 인프라 구축부터 파이프라인 개발, 운영 모니터링 과정의 ETL 파이프라인 개발의 한 cycle을 경험할 수 있었다. 총 4개월 - 길면 길고 짧다면 짧지만 - 동안 택시도 타고 주말도 반납하면서 실전에서 부딪히며 느..
SQL 실행 순서 SQL 쿼리를 작성할 때 JOIN 절이나 GROUP BY 절의 위치가 종종 헷갈렸는데, 이는 결국 SQL 쿼리가 실행되는 순서와 관련이 있다. FROM : 테이블 선택 JOIN : 테이블 간 결합하기 WHERE : 조건에 따라서 행을 필터링하기 GROUP BY : 필터링된 데이터를 그룹화하기 HAVING : 그룹화 된 데이터에 대해서 필터링하기 SELECT : 필요한 열을 선택하기 ORDER BY : 결과에 대해 정렬하기SELECT column_name, SUM(another_column)FROM table1JOIN table2 ON table1.id = table2.idWHERE conditionGROUP BY column_nameORDER BY column_name; JOIN 이 G..
최근 다양한 이기종 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..
·개발일기
2023 회고 매달을 어떻게 보냈는지, 핵심 키워드를 선정해보았다. Month Keywords 1 DevOps/SRE (Cloud) 부트캠프 (Linux, Docker), 취준시작 2 DevOps/SRE (Cloud) 부트캠프 (Docker, k8s 공부), 졸업식 3 DevOps/SRE (Cloud) 부트캠프 조기 퇴소, 취업, OPIC시험, 상반기 공채시작 4 정규직 전환, 첫출근, 정보처리기사 합격, 부산 여행 5 AWS SAA시험 준비, Databricks공부, 알고리즘 공부 PoC - Databricks Workspace를 위한 AWS Infra 구축하기, MongoDB, MySQL 로부터 DMS 사용해보기 6 AWS SAA시험 준비, Databricks공부, 알고리즘 공부 7 AWS SAA시험..
아파치 스파크 (Apache Spark) 란 통합 컴퓨팅 엔진이며 클러스터 환경에서 데이터를 병렬로 처리하는 '라이브러리'들의 집합이다. 1. 컴퓨팅 엔진 여기서 스파크가 '컴퓨팅 엔진' 이라는 의미는 스파크는 저장소 시스템의 데이터를 연산하는 역할만 수행하며 스파크가 직접 빅데이터들을 영구적으로 저장하는 저장소의 역할은 하지 않는다는 의미로 이해할 수 있다. 이러한 점은 Apache Hadoop 과 같은 기존의 빅데이터 플랫폼과의 차별점이 된다. Hadoop의 경우 하둡 파일 시스템과 컴퓨팅 시스템인 맵리듀스라는 두 가지 시스템이 매우 밀접하게 얽혀있어서 둘 중 하나만 단독으로 사용하기 어렵다. 반면, Spark의 경우에는 연산 작업을 수행하는 노드와 저장소를 별도로 구성할 수 있다는 장점이 있다. 2..
지난주에 시험보고 이제서야 쓰는 후기 AWS Data Analytics Specialty Certification 을 취득했다. Solutions Architect 를 취득하고 나서 머리가 가열되어 있는 상태(?)에서 조금만 더 공부하면 금방 딸 수 있다는 주위 사람들의 말을 듣고 SAA 시험 본 날에 DAS 시험을 신청했다. 솔루션즈 아키텍트 시험을 공부할 때와 동일하게 Exam Topics 로 공부했고 따로 유료 결제까지 하면서 dump 공부를 하진 않았다. 그래서 무료로 제공되는 약 70-80 문제 정도만 1회독 했다. 덤프를 외우지는 않았고 문제 풀면서 몰랐던 기능들을 정리해보았고, 서비스들을 어떻게 붙여서 써먹는지 이해하면서 공부하려고 노력했다. 공부하면서 Kinesis , EMR, Glue 등..
국내에 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
'데이터엔지니어' 태그의 글 목록