Developers Haven

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

Welcome to DH's Blog
반응형

[기술공부]/Data 10

스토리지-컴퓨팅 분리 아키텍처에 대하여

기존 Hadoop 빅데이터 클러스터 아키텍처에서 스토리지-컴퓨팅 분리 아키텍처로 바뀌게 된 이유에 대해서 알아보자. 기존 Hadoop 빅데이터 클러스터 아키텍처 구조 Cnode(컴퓨팅 노드), Snode(스토리지 노드)가 하나로 구성된 구조 Hadoop의 데이터 지역성 활용 가능 → 최대한 데이터가 저장된 노드에서 데이터를 처리하게 함으로써 데이터의 이동(move)을 줄이고, 네트워크를 통해 전달하지 않게 하여 처리 성능 향상 하지만 시스템 확장에 비용이 많이 들며 비효율적이라는 문제가 존재 → Why? 컴퓨팅 파워와 스토리지 용량을 함께 늘려야하므로 스토리지-컴퓨팅 분리 아키텍처 구조 스토리지와 컴퓨팅의 독립적 확장이 가능하여 비교적 저렴 마이크로 서비스(s/w 기능을 작고 독립적으로 쪼개서 서비스를 ..

[기술공부]/Data 2024.04.18

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

SQL튜닝 - 인덱스의 종류에 대하여 (클러스터/비클러스터 인덱스)

우리는 지난 시간에 인덱스가 무엇인지에 대해서 알아보았고, 만약 못봤다면 아래 페이지를 참고하도록 하자. 한마디로 요약하자면 인덱스는 데이터의 검색 속도를 향상시켜주는 자료 구조로, 단일 혹은 여러 개의 컬럼을 이용하여 인덱스를 생성할 수 있다. 이번 시간에는 인덱스의 종류에 대해서 알아보도록 하자. [참고] 지난 시간 내용 - 인덱스에 대하여 2023.10.27 - [[기술공부]/Data] - SQL 튜닝 - 인덱스에 대하여 SQL 튜닝 - 인덱스에 대하여 DB 업무를 하다보면 같은 결과를 보여주는 쿼리라도 어떤 문법과 실행 방식을 사용하는지에 따라 쿼리 성능이 매우 달라진다. 특히 빅데이터 솔루션 회사에 근무를 하다보니 데이터 용량이 큰 developers-haven.tistory.com 인덱스의 종..

[기술공부]/Data 2023.10.27

SQL 튜닝 - 인덱스에 대하여

DB 업무를 하다보면 같은 결과를 보여주는 쿼리라도 어떤 문법과 실행 방식을 사용하는지에 따라 쿼리 성능이 매우 달라진다. 특히 빅데이터 솔루션 회사에 근무를 하다보니 데이터 용량이 큰 테이블을 자주 조회해야하고, 다른 사용자들의 작업에도 영향이 가지 않아야해서 쿼리 성능에 대한 중요성을 더 체감하는 것 같다. 그래서 이번 기회에 SQL 튜닝에 대해서 자세히 공부를 시작하게 되었다. SQL 튜닝이란? SQL 튜닝이란 명령문(query)을 수행할 때 결과를 얻기 위한 수행시간을 단축시키고 리소스 사용량을 줄여주도록 만드는 과정을 의미한다. 이때, 리소스 사용량은 CPU, 메모리와 같은 IT 자원을 의미하며 이러한 자원 사용량을 줄이면서 결과를 얻는 것이 목표이다. 튜닝을 위한 방법을 알기 전에 튜닝에 필요..

[기술공부]/Data 2023.10.27

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
반응형