Developers Haven

(DH)블로그는 개발자들이 기술 정보를 찾아볼 수 있는 안식처가 되고 싶음을 희망하여 시작하게 되었습니다. 공부한 내용과 성장 과정을 기록해두었으니 편히 둘러보시길 바랍니다.

Welcome to DH's Blog
반응형

Iceberg 7

Apache Iceberg vs Apache Hive 차이점 - (2)

지난 시간에 Hive와 Iceberg의 차이점에 대해서 간단히 살펴보았다. 이번 시간에는 조금 더 기술적으로 어떤 부분이 다른지 알아보도록 하자. [참고] 지난시간 내용 2023.11.03 - [[기술공부]/Data] - Apache Iceberg vs Apache Hive 차이점 - (1) Apache Iceberg vs Apache Hive 차이점 - (1) 여러 시간에 걸쳐 Apache Iceberg의 구조와 특징에 대해서 하나씩 살펴보았다. 공부를 하다보니 문득 'Iceberg가 Hive 대비 어떤 장점을 가지고 나온 것일까'하는 궁금증이 생겼다. 그래서 이번 시간에 developers-haven.tistory.com Hive와 차별되는 Iceberg 만의 특징 1. Snapshot 스냅샷은 특정..

[기술공부]/Data 2023.11.03

Apache Iceberg vs Apache Hive 차이점 - (1)

여러 시간에 걸쳐 Apache Iceberg의 구조와 특징에 대해서 하나씩 살펴보았다. 공부를 하다보니 문득 'Iceberg가 Hive 대비 어떤 장점을 가지고 나온 것일까'하는 궁금증이 생겼다. 그래서 이번 시간에는 Iceberg와 Hive의 기술적 차이점에 대해서 알아보겠다. 먼저, Hive와 Iceberg에 대해서 간단히 살펴보자. Apache Hive 2007년 Facebook에 의해 개발되어 2008년부터 오픈소스로 공개되었다. Hadoop ecosystem의 하나로 데이터를 모델링하고 프로세싱하는 '데이터 웨어하우징 솔루션'이다. SQL과 유사한 HiveQL를 이용하여 데이터 분석을 쉽게 하도록 만들어주고, HiveQL를 실행하면 내부에서 자동으로 MapReduce Job으로 변환하여 실행해준..

[기술공부]/Data 2023.11.03

Apache Iceberg : Copy-on-Write(cow) vs Merge-on-Read(mor)

Iceberg는 데이터 write(= delete, update, merge) 작업 수행시 적용할 수 있는 테이블 옵션이 존재한다. Iceberg v1 포맷에서는 copy-on-write 방식을 기본으로 제공했고, v2 포맷에서는 copy-on-write, merge-on-read 두 가지 방식을 지원해준다. 이번 시간에는 두 방식에 대한 설명과 각 장단점을 알아보도록 하자. Copy-on-Write(cow) 옵션이란? 데이터 변경(업데이트 or 삭제)이 발생하면 변경 내용을 적용해서 새로운 데이터 파일(Datafile)을 생성한다. 기존 data file + 변경 내용 ➔ 새로운 data file 생성 cow 옵션의 장단점 (1) 장점 다른 데이터 처리 작업 없이 바로 파일을 읽으면 되므로 read 성..

[기술공부]/Data 2023.10.30

Apache Iceberg DML, 메타데이터 사용법

지난 시간에 테이블을 만들고 변경하는 DDL 쿼리문에 대해서 살펴보았다. 만약 아직 내용을 보지 못했다면 아래 페이지를 참고하도록 하자. 이번에는 실제 테이블 데이터를 사용하기 위한 DML 쿼리문과 메타데이터 활용법에 대해서 알아볼 예정이다. [참고 - Iceberg DDL쿼리문] 2023.10.13 - [[기술공부]/Data] - Apache Iceberg DDL 쿼리 사용법 - Create and Alter Table Apache Iceberg DDL 쿼리 사용법 - Create and Alter Table 이번에는 Iceberg 테이블 포맷에서의 테이블을 만들고 변경하는 DDL 쿼리 구문에 대해 알아보도록 하자. 참고로 나는 Spark에서 Iceberg 테이블을 사용하는 기준으로 쿼리를 정리했으므로..

[기술공부]/Data 2023.10.30

Apache Iceberg DDL 쿼리 사용법 - Create and Alter Table

이번에는 Iceberg 테이블 포맷에서의 테이블을 만들고 변경하는 DDL 쿼리 구문에 대해 알아보도록 하자. 참고로 나는 Spark에서 Iceberg 테이블을 사용하는 기준으로 쿼리를 정리했으므로, Spark가 아닌 다른 엔진을 사용하는 경우에는 공식 문서를 참조하도록 하자. # Create 1. Schema 생성 CREATE DATABASE IF NOT EXISTS [스키마]; -- IF NOT EXISTS : 해당 스키마가 존재하지 않는 경우에만 CREATE 쿼리문을 실행하도록 만드는 조건으로, 생략 가능하다. 2. Table 생성 (1) 파티션 유무에 따른 DDL문 case1) 파티션이 없는 경우 -- Iceberg CREATE TABLE [스키마].[테이블명] ( id bigint COMMENT ..

[기술공부]/Data 2023.10.13

Apache Iceberg의 특징과 관리방법에 대하여

지난 시간에 Iceberg의 구조에 대해서 자세히 알아보았는데, 혹시 못봤다면 아래 페이지를 참고하도록 하자. 이번 시간에는 Iceberg의 특징 및 사용법을 알아보려고 한다. (참고로 관련쿼리는 Spark기준으로 작성했다) 2023.10.11 - [[기술공부]/Data] - Apache Iceberg란 무엇일까? Apache Iceberg란 무엇일까? 현재 빅데이터 솔루션 기업에서 Data Architect로 근무하면서, 새로운 기술이 우리 회사의 솔루션에 적용될때마다 자연스레 많은 기술 공부의 기회를 얻고 있다. 작년에 진행한 프로젝트에서 Iceberg developers-haven.tistory.com Iceberg를 관리하는 방법 # Compaction 데이터가 많이 쌓이는 테이블은 메타데이터도 ..

[기술공부]/Data 2023.10.12

Apache Iceberg란 무엇일까?

현재 빅데이터 솔루션 기업에서 Data Architect로 근무하면서, 새로운 기술이 우리 회사의 솔루션에 적용될때마다 자연스레 많은 기술 공부의 기회를 얻고 있다. 작년에 진행한 프로젝트에서 Iceberg 테이블을 사용하게 되었고, 속도나 성능면에서 하이브와의 차이점을 느낄 수 있었다. 또한, 컨퍼런스를 통해 많은 국내외 기업(Ex. 스노우플레이크, 라인)들이 Iceberg를 도입하고 있는 것을 보면서 데이터 생태계에서 Iceberg가 중요한 기술이 되고 있음을 느끼게 되었다. 이번 기회에 Iceberg에 대해서 자세히 알아보고 그동안 배웠던 것들을 정리해보려고 한다. Apache Iceberg의 등장 기존의 Apache Hive에서 대용량 데이터를 다룰 때에 '규모/성능/사용성'에 대한 문제가 존재했..

[기술공부]/Data 2023.10.11
반응형