본문 바로가기

Platform

(9)
[Iceberg][STUDY][둘러보기] 01. Tables : Branching and Tagging Overview Iceberg table metadata maintains a snapshot log, which represents the changes applied to a table. Snapshots are fundamental in Iceberg as they are the basis for reader isolation and time travel queries. 테이블이 변경이 발생 했을 때 스냅샷 로그를 유지하며 격리(read 할 때 영향 받지 않고 변경이 완료 되었을 때 current snapshot 을 변경) 및 타임 트래블 쿼리를 사용 가능하게 합니다. For controlling metadata size and storage costs, Iceberg provides snapsho..
[Iceberg][STUDY][둘러보기] 01. Introduction Apache Iceberg 의 기본적인 이론부터 시작해보려고 합니다. 👏🏻 학습은 공식 문서(Iceberg Docs)와 소스(Iceberg github) 통해서 살펴 보며 진행 예정입니다. 공식 문서를 살펴 보면 소개에는 아래의 문구로 시작합니다. Apache Iceberg is an open table format for huge analytic datasets. Iceberg adds tables to compute engines including Spark, Trino, PrestoDB, Flink, Hive and Impala using a high-performance table format that works just like a SQL table. 학습 할 때 가장 기본적으로 필요하다고 생각..
[Iceberg][STUDY][둘러보기] 00. Table of Contents 프로젝트의 아키텍처 상에서 Iceberg 도입이 필요하다고 생각한건 아래 이유가 메인입니다. (1) Advanced filtering (2) ACID transaction 보장 (3) 가능하다면.. Snapshot diff streaming 추가로 Schema evolution, Time travel 과 Hidden partitioning 기능들도 쏠쏠한 기능인것 같습니다. 버전이 아직 낮은 부분 (여러 이슈들 존재 가능성) 과 Multiple concurrent writers 이 걱정되는 부분인 것 같습니다. (작성일 2024년 01월 25일 기준으로 1.4.3 버전) ACID transaction 기능은 data ingestion 할 때 Snapshot 형태로 가져오는 것이 아니라 Kafka 를 통해..
[Iceberg][STUDY] ChatGPT 질의응답 Apache Iceberg 를 공부하기 전에 떠오르는 궁금한 점들을 ChatGPT를 통해 먼저 알아 보았다. 질의응답 내용들을 정리해 보면 아래와 같다. Q-001. Apache Iceberg를 처음 스터디하려고 할 때 어떤 방법을 추천하고 싶어? Apache Iceberg는 대규모 데이터 저장 및 관리 시스템을 위한 오픈 소스 데이터 테이블 포맷 및 라이브러리입니다. 새로운 기술이나 도구를 스터디할 때 아래의 단계를 따라가면 도움이 될 것입니다: 기본 개념 및 배경 이해: Apache Iceberg의 기본 개념과 배경을 이해하세요. Iceberg가 무엇인지, 왜 필요한지, 어떤 문제를 해결하려는지에 대한 개념을 파악하세요. 공식 문서 확인: Apache Iceberg의 공식 문서를 확인하고 읽어보세요...
[Airflow][ISSUE] KubernetesPodOperator Resource error ▪ Synopsis Airflow을 Kubernetes 기반으로 세팅 후 Dag Task들을 KubernetesPodOperator로 사용하고 있다. code refactoring 과정에서 resource 부분을 MIN, MID, MAX로 분류 후 사용하기 위해 enum 변수를 정의해서 적용했다. def get_k8s_operator( task_id, image, dag, cmds=None, arguments=None, secrets=None, volumes=None, volume_mounts=None, resources=min_resources, ): return KubernetesPodOperator( name=task_id.replace("_", "-"), task_id=task_id, image=..
[HBase] HBase의 특징 및 기본 사용 HBase의 특징 ▪ HBase 저장 아키텍처 - HMaster : HRegionServer의 모니터링을 담당 - HRegionServer : 데이터를 분산저장하는 기능 수행 - HDFS : 데이터 저장과 복제기능 수행. 실제 저장소 - Zookeeper : HMaster의 위치 정보 유지 및 마스터 선출 담당 RegionServer는 영역(region)이라는 단위로 데이터를 분산하는 기능을 담당한다. Region이란 정렬된 데이터를 저장한 큰 테이블을 정렬키(Row Key) 범위로 나눈 것을 말한다. 각 Region이 저장하는 정렬키 범위는 Meta Region이라는 곳에 저장한다. 그리고 Meta Region의 위치는 Root Region에 저장된다. 하나의 Region Server는 Root Reg..
[데이터처리] Sharding & Query Off Loading RDBMS는 크게 request를 바로 처리하는 트랜젝션 처리용의 OLTP(On-Line Transaction Processing)성과, 데이타를 모아서 분석하고 리포팅하는 OLAP(On-Line Analytical Processing) 두가지로 분리된다. 여기서 설명하는 RDBMS는 OLTP성의 데이타 베이스 이다. RDBMS는 2차원 테이블 구조의 데이타를 KEY 값을 중심으로 여러개의 컬럼으로 저장되며, 저장된 각각의 로우(행)은 다른 테이블의 로우와 관계를 가질 수 있다. RDBMS를 이용한 설계를 하는데, 고려할만한 아키텍쳐는 성능 향상을 위한 Query Off Loading과, Sharding이라는 기법이 있다. ▪ Query Off Loading Query Off Loading은 DB의 성능..
[데이터처리] Memory vs Disk I/O ▪ I/O 효율화 튜닝의 중요성 - 디스크를 경유한 입출력은 메모리를 통한 입출력보다 평균적으로 10,000배 이상 느립니다. - 데이터베이스는 하나의 파일 시스템입니다. SQL을 이용하여 데이터 파일에 데이터를 저장하고 출력시 DB 버퍼 캐쉬에 데이터가 없을 경우 디스크를 통하여 데이터를 버퍼 캐쉬에 저장한 후 결과를 줍니다. - 물리적 디스크 I/O가 필요할 경우 서버 프로세스가 디스크에서 원하는 블록을 가져오고, 같은 데이터를 원할 경우 경합이 발생하여 대기 시간이 길어집니다. - 모든 자료를 메모리에 저장하여 사용하면 좋지만 비용과 기술적 측면에서 한계가 있습니다. 시중에는 메모리 데이터베이스가 사용되지만 극히 빠른 액세스가 제한되는 업무 영업에 국한되어 사용되어지고 있습니다. - 유한한 메모리 ..