모든 데이터駕驅 조직은 운영 및 분석 작업 부하를 가지고 있습니다. 다양한 데이터 플랫폼을 포함한 최상의 솔루션 접근 방식이 등장하며, 이는 데이터 스트리밍, 데이터 레이크, 데이터 웨어하우스 및 레이크하우스 솔루션, 그리고 클라우드 서비스를 포함합니다. Apache Iceberg과 같은 열린 테이블 포맷 프레임워크는 기업 아키텍처에서 신뢰할 수 있는 데이터 관리 및 공유, 원활한 스키마 진화, 대규모 데이터 셋의 효율적인 처리, 그리고 비용 효율적인 저장을 보장하는 데 필수적입니다. 또한 ACID 트랜잭션과 시간 여행 쿼리에 대한 강력한 지원을 제공합니다.
이篇文章은 시장 트렌드; Iceberg, Hudi, Paimon, Delta Lake, XTable과 같은 테이블 포맷 프레임워크의 채택; 그리고 Snowflake, Databricks(Apache Spark), Confluent(Apache Kafka/Flink), Amazon Athena, Google BigQuery와 같은 데이터 플랫폼 선도 업체의 제품 전략을 탐구합니다.
데이터 플랫폼을 위한 열린 테이블 포맷이란 무엇인가?
열린 테이블 포맷은 데이터 무결성 유지, 쿼리 성능 최적화, 그리고 플랫폼 내에 저장된 데이터에 대한 명확한 이해를 보장하는 데 도움이 됩니다.
데이터 플랫폼을 위한 열린 테이블 포맷은 일반적으로 데이터가 조직화되고 접근 가능하며 쉽게 쿼리할 수 있도록 하는 특정 구성 요소들로 구성된 명확한 구조를 포함합니다. 일반적인 테이블 포맷은 테이블 이름, 열 이름, 데이터 유형, 주요 키 및 외부 키, 색인, 그리고 제약 조건을 포함합니다.
이것은 새로운 개념이 아닙니다. 당신의 사랑하는 십 년이 넘은 데이터베이스 — 오라클, IBM DB2(메인프레임에서도), 또는 PostgreSQL —는 같은 원리를 사용합니다. 하지만, 클라우드 데이터 웨어하우스, 데이터 레이크, 레이크하우스에 대한 요구사항과 도전이 확장성, 성능, 그리고 쿼리 기능 측면에서 약간 바뀌었습니다.
“Lakehouse Table Format”의 이점: Apache Iceberg
조직의 모든 부분이 데이터 중심이 됩니다. 그 결과는 광범위한 데이터 세트, 비즈니스 단위 간 데이터 제품과의 데이터 공유, 그리고 근실시간 데이터 처리에 대한 새로운 요구사항입니다.
- Apache Iceberg는 기업 아키텍처에 많은 이점을 제공합니다:
- 단일 저장소: 데이터는 한 번 저장되며 (다양한 데이터 소스에서 옴), 비용과 복잡성을 줄입니다
- 모든 데이터: 운영 및 분석 작업을 통합하여 처리합니다 (트랜잭션 시스템, 빅데이터 로그/IoT/클릭스트림, 모바일 API, 제3자 B2B 인터페이스 등)
- 공급업체 독립성: 좋아하는 분석 엔진과 함께 작업할 수 있습니다 (실시간에 가까운, 배치, 또는 API 기반 여부에 상관없이)
Apache Hudi와 Delta Lake는 같은 특성을 제공합니다. 하지만, Delta Lake는 주로 Databricks라는 단일 공급업체에 의해 주도됩니다.
테이블 포맷 및 카달로그 인터페이스
Apache Iceberg 또는 유사 테이블 형식 프레임워크에 대한 논의는 두 개의 개념을 포함합니다: 테이블 형식 과 카탈로그 인터페이스! 이 기술의 최종 사용자로서, 당신은 두 가지 모두 필요합니다!
Apache Iceberg 프로젝트는 형식을 구현하지만 카탈로그에 대한 스펙을 제공만 합니다 (구현은 제공하지 않습니다):
- 테이블 형식은 데이터가 테이블 내에서 어떻게 조직되고 저장되고 관리되는지 정의합니다.
- 카탈로그 인터페이스는 테이블의 메타데이터를 관리하고 데이터 레이크 내의 테이블에 접근하기 위한 추상화 계층을 제공합니다.
Apache Iceberg 문서는 이 다이어그램을 기반으로 개념을 더 자세히 탐구합니다:
조직들은 Iceberg의 카탈로그 인터페이스를 다양한 구현으로 사용합니다. 각각은 다른 메타데이터 스토어와 서비스와 통합됩니다. 주요 구현에는:
- Hadoop 카탈로그: Hadoop Distributed File System (HDFS) 또는 기타 호환 파일 시스템을 사용하여 메타데이터를 저장합니다. Hadoop를 이미 사용하는 환경에 적합합니다.
- Hive 카탈로그: Apache Hive Metastore와 통합하여 테이블 메타데이터를 관리합니다. Hive를 메타데이터 관리에 활용하는 사용자에게 이상적입니다.
- AWS Glue 카탈로그: AWS Glue Data Catalog를 메타데이터 저장소로 사용합니다. AWS 생태계 내에서 운영되는 사용자를 위한 것으로 설계되었습니다.
- REST 카탈로그: HTTP를 통해 카탈로그 연산을 위한 RESTful 인터페이스를 제공합니다. 커스터마이징된 또는 제3자 메타데이터 서비스와의 통합을 가능하게 합니다.
- Nessie 카탈로그: 데이터 관리를 위한 Git와 유사한 경험을 제공하는 Project Nessie를 사용합니다.
Apache Iceberg의 动量과 점점 더 많은 채택으로 많은 데이터 플랫폼 공급업체가 자신의 Iceberg 카탈로그를 구현하게 되었습니다. Snowflake의 Polaris, Databricks의 Unity, Confluent의 Tableflow를 포함한 데이터 플랫폼 및 클라우드 공급업체 전략에 대해 논의하는 하단 섹션에서 몇 가지 전략을 설명합니다.
첫 번째 등급의 Iceberg 지원 대비 Iceberg 커넥터
주의하시오, Apache Iceberg(또는 Hudi/Delta Lake)를 지원하는 것은 API를 통해 테이블 형식과의 연결 및 통합을 제공하는 것보다 훨씬 더 많은 것을 의미합니다. 공급업체 및 클라우드 서비스는 자동 매핑, 중요한 SLA, 시간 여행, 직관적인 사용자 인터페이스 등 고급 기능으로 차별화됩니다.
예를 들어보겠습니다: Apache Kafka와 Iceberg 간의 통합. 여러 Kafka Connect 커넥터가 이미 구현되었습니다. 그러나 첫 번째 등급의 Iceberg 통합(예: Confluent의 Tableflow)을 사용하는 것과 Kafka Connect 커넥터를 사용하는 것의 이점을 비교해보겠습니다:
- 커넥터 설정 없음
- 커넥터를 통해 소비 없음
- 내장된 유지보수(압축, 쓰레기 수거, 스냅샷 관리)
- 자동 스키마 진화
- 외부 카탈로그 서비스 동기화
- 간단한 연산은 (fully-managed SaaS 솔루션에서는 서버리스로, 최종 사용자가 어떤 규모나 운영 필요 없음)
다른 데이터 플랫폼에도 비슷한 혜택이 적용되며, 간단한 커넥터를 제공하는 것에 비해 가능성 있는 첫 클래스 통합.
Open Table Format for a Data Lake/Lakehouse using Apache Iceberg, Apache Hudi, and Delta Lake
Apache Iceberg, Apache Hudi, 그리고 Delta Lake와 같은 테이블 포맷 프레임워크의 일반적인 목표는 데이터 레이크의 기능과 신뢰성을 향상시키는 것입니다. 이러한 프레임워크는 대규모 데이터 관리와 관련된 일반적인 도전 과제를 해결하여:
- 데이터 관리 개선
- 데이터 레이크에서 데이터 인gest, 저장, 검색을 더 쉽게 처리할 수 있도록 돕습니다.
- 효율적인 데이터 조직化和 저장을 지원하여 더 나은 성능과 확장성을 제공합니다.
- 데이터 일관성 보장
- ACID 트랜잭션을 위한 메커니즘을 제공하여, 동시 읽기 및 쓰기 연산 중에도 데이터가 일관되고 신뢰할 수 있도록 보장합니다.
- 스냅숏 이ز올레이션을 지원하여, 사용자가 언제든지 데이터의 일관된 상태를 볼 수 있도록 합니다.
- 스키마 진화 지원
- 데이터 스키마의 변경(추가, 이름 변경, 제거 등)을 기존 데이터를 방해하지 않고 복잡한 마이그레이션 없이 허용합니다.
- 쿼리 성능 최적화
- 고급 인덱싱 및 파티션 전략을 구현하여 데이터 쿼리의 속도와 효율성을 향상시킵니다.
- 대규모 데이터셋과 복잡한 쿼리를 효과적으로 처리할 수 있는 효율적인 메타데이터 관리를 가능하게 합니다.
- 데이터 통제 강화
- 데이터 라인에지, 버전 관리, 감사를 더 나은 추적과 관리를 위해 도구를 제공하며, 이는 데이터 품질과 규제 준수를 유지하는 데 필수적입니다.
이러한 목표를 해결함으로써, Apache Iceberg, Apache Hudi, 그리고 Delta Lake와 같은 테이블 형식 프레임워크는 조직이 더 robust하고 확장 가능하며 신뢰할 수 있는 데이터 레이크와 레이크하우스를 구축하는 데 도움을 줍니다. 데이터 엔지니어, 데이터 과학자, 그리고 비즈니스 분석가는 테이블 형식 위에 분석, AI/ML, 또는 보고서/시각화 도구를 활용하여 대량의 데이터를 관리하고 분석합니다.
Apache Iceberg, Hudi, Paimon, 그리고 Delta Lake 비교
여기서 Apache Iceberg, Apache Hudi, Apache Paimon, 그리고 Delta Lake와 같은 테이블 형식 프레임워크를 비교할 것은 없습니다. 많은 전문가들이 이미 이에 대해 글을 썼습니다. 각 테이블 형식 프레임워크는 독특한 장점과 혜택을 가지고 있습니다. 하지만 매월 업데이트가 필요합니다 빠른 진화와 혁신으로 인해, 이러한 프레임워크 내에 새로운 개선 사항과 기능이 추가됩니다.
다음은 저가 여러 블로그 포스트에서 본 네 가지 옵션에 대한 요약입니다:
- Apache Iceberg: 스키마 및 파티션 진화, 효율적인 메타데이터 관리, 그리고 다양한 데이터 처리 엔진과의 넓은 호환성이 뛰어납니다.
- Apache Hudi: 실시간 데이터 인수와 업서트에 가장 적합하며, 강력한 변화 데이터 캡처 기능과 데이터 버전 관리 기능을 가지고 있습니다.
- Apache Paimon: Flink와 Spark를 통해 실시간 레이크하우스 아키텍처를 구축할 수 있는 레이크 형식입니다.
- Delta Lake: 강력한 ACID 트랜잭션, 스키마 강제 적용, 그리고 시간 여행 기능을 제공하여 데이터 품질과 정합성 유지에 이상적입니다.
중요한 결정 지점 중 하나는 Delta Lake가 Iceberg와 Hudi와 달리 넓은 커뮤니티가 아니라 주로 Databricks라는 단일 공급업체에 의해 주도되고 있다는 점입니다.
Apache XTable은 Iceberg, Hudi, 그리고 Delta Lake를 지원하는 상호 운용가능한 Cross-Table 프레임워크
사용자는 많은 선택지를 가지고 있습니다. XTable, 이전 이름은 OneTable로, Apache Hudi, Delta Lake, 그리고 Apache Iceberg 간의 원활한 Cross-Table 상호 운용을 지원하는 또 다른 Apache 오픈 소스 라이선스 하의 보育 중인 테이블 프레임워크입니다.
Apache XTable:
- 호수 하우스 테이블 포맷 간의 cross-table omnidirectional interoperability를 제공합니다.
- 새로운 또는 별도의 포맷이 아니 입니다. Apache XTable은 호수 하우스 테이블 포맷 메타데이터의 변환을 위한 추상화와 도구를 제공합니다.
도대체 Apache XTable은 특정 데이터 플랫폼과 클라우드 공급업체에 대한 선택지를 제공하면서도 간단한 통합과 상호 운용성을 제공하는 답이 될 수 있습니다.
하지만 조심해야 합니다: 다른 기술 위에 만들어진 래퍼는 해결의 열쇠가 아닙니다. Apache Beam이 등장했던 몇 년 전 우리는 이를 목격했습니다. Apache Beam은 데이터 인gestion과 데이터 처리 워크플로우를 정의하고 실행하기 위한 오픈 소스 통합 모델과 언어별 SDK 세트입니다. Flink, Spark, Samza와 같은 다양한 스트림 처리 엔진을 지원합니다. Apache Beam의 주요 드라이버는 Google로, Google Cloud Dataflow에서 워크플로우를 마이그레이션할 수 있게 합니다. 그러나 이러한 래퍼는 지원 기능의 최소 공통 조건을 찾아야 하므로 제한이 큽니다. 대부분의 프레임워크의 핵심 이점은 이러한 래퍼에 맞지 않는 20%입니다. 이러한 이유로, 예를 들어 Kafka Streams는 설계 제한이 너무 많아 Apache Beam을 의도적으로 지원하지 않습니다.
테이블 포맷 프레임워크의 시장 수용
먼저, 우리는 여전히 초기 단계에 있습니다. Gartner Hype Cycle에서 혁신 트리거 단계에 있으며, 부풀어진 기대의 정점으로 향하고 있습니다. 대부분의 조직은 아직 이러한 테이블 포맷을 조직 전체에서 생산 환경에서 평가하고 있지만 도입하지는 않고 있습니다.
회고: 컨테이너 전쟁 – Kubernetes vs. Mesosphere vs. Cloud Foundry
Apace Iceberg 논쟁은 몇 년 전 컨테이너 전쟁을 떠올리게 합니다. “컨테이너 전쟁”이라는 용어는 소프트웨어 개발 및 IT 인프라 분야에서 다양한 컨테이너화 기술과 플랫폼 간의 경쟁과 경쟁을 의미합니다.
이 전쟁의 양상을 설명하자면:
클라우드 퍼포리와 메소스페이스는 초기에 있었지만, 컨테이너 전쟁에서는 쿠버네티스가 승리했습니다. 왜 그런가요? 저는 기술적 세부 사항과 차이점을 모두 이해하지 못했습니다. 결국, 세 가지 프레임워크가 상당히 유사하다면, 다음과 같은 것들이 전부입니다:
- 커뮤니티 채택
- 기능 출시의 적절한 시기
- 좋은 마케팅
- 운
- 그리고 몇 가지 다른 요인
하지만, 소프트웨어 산업에서 하나의 리딩 오픈 소스 프레임워크가 세 가지 경쟁하는 것보다 솔루션과 비즈니스 모델을 구축하는 데 유리합니다.
현재: 아파치 아이스벌그 대 아파치 후디 대 델타 레이크 테이블 포맷 전쟁
явно, 구글 트렌드는 통계적 증거나 복잡한 연구가 아닙니다. 하지만 저는 과거에 많이 사용한 직관적이고 간단하며 무료한 도구로 시장 트렌드를 분석하는 데 사용했습니다. 따라서, 이 도구를 사용하여 아파치 아이스벌그, 후디, 델타 레이크(아파치 XTable은 아직 작아 추가할 만하지 않습니다)의 시장 채택이 제 개인 경험과 겹치는지 확인했습니다:
명확하게 컨테이너 전쟁 몇 년 전과 유사한 패턴을 볼 수 있습니다. 이게 어디로 가는지 모르겠고, 하나의 기술이 승리하거나 프레임워크가 충분히 차별화되어 총을 찾지 못한다는 것을 입증하는 데 도달할지 미래가 알려줄 것입니다.
제 개인적인 의견인가요? Apache Iceberg가 경주에서 이길 것이라고 생각합니다. 왜 그러냐고요? 기술적인 이유로는 설명할 수 없습니다. 그냥 모든 산업의 많은 고객들이 점점 더 많이 이야기하고 있고, 점점 더 많은 벤더들이 지원하기 시작했습니다. 하지만 결과는 보겠습니다. 사실 나는 누가 이기는지 신경 쓰지 않습니다. 그러나 컨테이너 전쟁처럼, 단일 표준을 가지고 벤더들이 그 주위의 기능으로 차별화하는 것이 좋다고 생각합니다. Kubernetes와 같은 방식입니다.
이 점을 염두에 두고, 현재 주요 데이터 플랫폼과 클라우드 공급업체들이 테이블 형식 지원에 대한 전략을 탐구해 보겠습니다.
Apache Iceberg에 대한 데이터 플랫폼과 클라우드 공급업체의 전략
이 섹션에서는 어떤 추측도 하지 않겠습니다. 테이블 형식 프레임워크의 진화는 빠르게 이루어지고, 벤더의 전략도 빠르게 변합니다. 최신 정보는 벤더의 웹사이트를 참조하십시오. 하지만 여기서는 Apache Iceberg 지원 및 통합에 대한 데이터 플랫폼과 클라우드 공급업체의 현재 상태에 대해 설명하겠습니다.
- Snowflake:
- 이미 오랫동안 Apache Iceberg를 지원하고 있습니다
- 보다 나은 통합과 새로운 기능을 정기적으로 추가하고 있습니다
- Snowflake의 스토리지나 Amazon S3와 같은 내부와 외부 스토리지 옵션(trade-offs 포함)
- Polaris를 발표했습니다. Iceberg를 위한 오픈 소스 카달로그 구현으로, 커뮤니티 주도, 벤더 중립의 양방향 통합을 지원하겠다는 약속
- Databricks:
- Delta Lake를 테이블 형식으로 중점적으로 다루고 (이제 오픈 소스된) Unity를 카탈로그로 사용
- Apache Iceberg를 뒷받침하는 선도적인 회사인 Tabular를 인수
- 오픈 Iceberg 인터페이스(양방향 모두)를 지원하는 미래 전략이 불확실하거나, Delta Lake와 Unity Catalog와 같은 레이크하우스 플랫폼과 기술로 데이터를 공급하는 것에만 집중
- Confluent:
- 자사 데이터 스트리밍 플랫폼(제품명 Tableflow)에 Apache Iceberg를 최우선 시민으로 통합
- Kafka Topic과 관련 스키마 메타데이터(즉, 데이터 계약)를 Iceberg 테이블로 변환
- 운영 및 분석 작업 간的双방향 통합
- 內蔵型 서버리스 Flink와 통합된 배치 및 스트리밍 API로 분석하거나, Snowflake, Databricks, Amazon Athena와 같은 제3자 분석 엔진과 데이터를 공유
- 더 많은 데이터 플랫폼과 오픈소스 분석 엔진:
- Iceberg를 지원하는 기술 및 클라우드 서비스의 목록은 매월 성장하고 있습니다
- 일부 예시: Apache Spark, Apache Flink, ClickHouse, Dremio, Starburst가 Trino(이전 PrestoSQL)를 사용, Cloudera가 Impala를 사용, Imply가 Apache Druid를 사용, Fivetran
- 클라우드 서비스 제공업체(AWS, Azure, Google Cloud, Alibaba):
- 다른 전략과 통합이 있지만, 모든 클라우드 제공업체는 최근 자신들의 서비스에 Iceberg 지원을 강화하고 있습니다. 예를 들어:
- 오브젝트 스토리지: Amazon S3, Azure Data Lake Storage (ALDS), Google Cloud Storage
- 카탈로그: 클라우드 전용인 AWS Glue Catalog 또는 벤더 중립적인 Project Nessie 또는 Hive Catalog
- 분석: Amazon Athena, Azure Synapse Analytics, Microsoft Fabric, Google BigQuery
- 다른 전략과 통합이 있지만, 모든 클라우드 제공업체는 최근 자신들의 서비스에 Iceberg 지원을 강화하고 있습니다. 예를 들어:
Shift Left 아키텍처로 Kafka, Flink, 그리고 Iceberg를 사용하여 운영 및 분석 작업을 통합
Shift Left 아키텍처는 데이터 처리를 데이터 소스에 가까이 이동시키며, Apache Kafka와 Flink와 같은 실시간 데이터 스트리밍 기술을 활용하여 데이터가 흐르는 직후에 데이터를 처리합니다. 이 접근 방식은 지연 시간을 줄이고 데이터 일관성 및 데이터 품질을 향상시킵니다.
ETL과 ELT는 저장된 데이터를 랩스 프로세싱하는 반면, Shift Left 아키텍처는 실시간 데이터 캡처 및 변환을 가능하게 합니다. 이는 데이터를 즉시 사용할 수 있게 하여 zero-ETL 개념과 일치합니다. 하지만 zero-ETL과 달리, 기업 아키텍처의 왼쪽에 데이터 처리를 이동시키면 많은 포인트 투 포인트 연결로 복잡하고 유지하기 어려운 스파게티 아키텍처를 피할 수 있습니다.
시프트 레프트 아키텍처는 데이터가 실시간으로 활용 가능하도록 보장하여 운영 및 분석 시스템 모두에서 반대 방향의 ETL 필요성을 줄입니다. 전반적으로 이 아키텍처는 데이터의 신선도를 높이고, 비용을 절감하며, 데이터駕駛 애플리케이션의 시장 도출 시간을 단축합니다. 이 개념에 대해 제 블로그 포스트 “시프트 레프트 아키텍처“에서 더 알아보세요.
아파치 아이스베르그: 오픈 테이블 포맷 및 캐atalog으로 분석 엔진 간 원활한 데이터 공유
오픈 테이블 포맷 및 캐atalog는 기업 아키텍처에 큰 이점을 제공합니다:
- 인터오퍼러빌러티
- 분석 엔진 선택의 자유
- 시장 도출 시간 단축
- 비용 절감
아파치 아이스베르그는 벤더와 클라우드 제공업체 간의 사실상 표준이 되고 있는 것 같습니다. 그러나 아직 초기 단계에 있으며, 아파치 후디, 아파치 파이몬, 델타 레이크, 아파치 XTable와 같은 경쟁 및 래퍼 기술들도 동력을 얻고자 노력하고 있습니다.
아이스бер그와 기타 오픈 테이블 형식은 스노플레이크, 다atabricks, 구글 비그쿼리 등 다양한 분석/데이터/AI/ML 플랫폼과의 통합뿐만 아니라 통합 운영 및 분석 작업 부하를 Apache Kafka와 Flink와 같은 데이터 스트리밍 기술을 사용하여 단일 저장소로 제공합니다. Shift left 아키텍처는 노력을 줄이고 데이터의 품질과 일관성을 향상시키며 배치 대신 실시간 애플리케이션과 통찰을 가능하게 하는 중요한 이점을 제공합니다.
마지막으로, 데이터 스트리밍과 레이크하우스 간의 차이점 (그리고 그들이 어떻게 상호 보완되는지)에 대해 여전히 궁금하다면, 이 10분 동영상을 확인해 보세요:
어떤 테이블 형식 전략을 사용하고 있으며, 어떤 기술과 클라우드 서비스를 연결하고 있습니까? LinkedIn에서 연결하고 이에 대해 논의해요!
Source:
https://dzone.com/articles/apache-iceberg-open-table-format-lakehouses-data-streaming