Data Engineering
-
Databricks certified data engineer associate 취득 후기(2024.08)Data Engineering 2024. 8. 10. 13:59
계기이번 자격증은 Databricsk 에서 발급하는 "Databricks certified data engineer associate"에 대해 얘기해보려고한다.내가 이 시험을 친 계기는 회사 사정으로 인해 Data Engineer 로 직무를 바꿔야하는 상황?이 왔다.처음엔 많은 고민이 되었지만 긴 인생 살아가면서 아주 작은 부분에 해당할 수 있고 이러한 경험을 언제할 수 있을지 모른다.그래서 Data Engineer 로 직무 변경의 기회를 잡았다. 현재 Datawarehouse Hadoop 클러스터의 모든 테이블을 Databricks - Azure 의 Datalake 로 이전하는 작업을 진행중이다.그러나 데이터 플랫폼 개발했어도 하둡과 Datalake 에 대해서는 생소하였다.어떤 방향성을 가지고 어떻게 ..
-
Spark + Iceberg - 5(Merge on read vs Copy on write)Data Engineering 2024. 1. 21. 09:46
소개 아이스버그 마지막으로 볼 기능인 MOR & COW 이다. 빅데이터를 다루는데 Update를 지원한다는 건 모든 ACID 트랜잭션을 지원한다는 것이다. 물론 OLTP 보다는 성능이 떨어지겠지만 OLAP에서 구현했다는 것에 대한 의미가 있다고 본다. COW는 "읽기가 자주 발생하고 수정/삭제가 자주 발생하지 않고 대규모 테이블 업데이트를 사용하는 경우" 사용된다. 말 그대로 수정해야하는 컬럼이 있는 데이터 파일을 복제해 컬럼 데이터가 업데이트 되어진 파일을 만드는 것이다. 많은 컬럼이 수정될 때는 효율적이지만 소수 컬럼이 수정될 때는 전체 데이터를 복사하기 때문에 비 효율적이다. MOR은 "수정/삭제가 빈번하게 발생하는 테이블을 사용하는 경우" 적합하다. COW와는 달리 MOR은 변경 사항들을 새 ..
-
Spark + Iceberg - 4(Time Travel)Data Engineering 2024. 1. 18. 21:20
소개 아이스버그 기능인 Time Travel기능에 대해서 살펴보자. 데이터를 Create or Delete 시 Snapshot이 만들어지는데 이것을 이용해 과거 데이터로 롤백할 수 있다. Partition이 변경되는 부분은 기록이 안되는 것 같다. 간단한 기능 실습을 해보자. 실습 1. CREAT TABLE create table time_travel ( ID BIGINT, NAME STRING ) USING ICEBERG LOCATION 's3a://martinispark/timetravel' 2. INSERT INTO Data INSERT INTO time_travel VALUES (1,'martini'), (2,'kebin'), (3,'jack') 3. INSERT INTO Data INSERT I..
-
Spark + Iceberg - 3(Hidden Partitioning)Data Engineering 2024. 1. 17. 20:25
소개 아이스버그의 히든 파티셔닝 기능을 알아보자. 기존 하이브 테이블 파티셔닝은 쿼리 속도를 향상시키기 위해서 파티셔닝을 사용한다. 아래 예시처럼 "event_date" 컬럼이 하나가 추가된다. Insert할 때도 변환이 필요해 불필요한 작업이 늘어난다. INSERT INTO logs PARTITION (event_date) SELECT level, message, event_time, format_time(event_time, 'YYYY-MM-dd') FROM unstructured_log_source 그리고 아래 예시처럼 마지막 event_date를 적어야만 Full Scan을 하지않고 데이터를 가져온다. SELECT level, count(1) as count FROM logs WHERE event..