제퍼넷 로고

Amazon S3, AWS Glue 및 Snowflake를 통해 데이터 레이크에서 Apache Iceberg 사용 | 아마존 웹 서비스

시간

이 게시물은 Snowflake의 Andries Engelbrecht 및 Scott Teal과 공동으로 작성되었습니다.

비즈니스는 끊임없이 발전하고 있으며 데이터 리더는 매일 새로운 요구 사항을 충족해야 하는 과제에 직면해 있습니다. 많은 기업과 대규모 조직에서는 다양한 비즈니스 요구 사항을 처리하기 위해 하나의 처리 엔진이나 도구를 보유하는 것이 불가능합니다. 그들은 일률적인 접근 방식이 더 이상 작동하지 않는다는 것을 이해하고 확장 가능하고 유연한 도구와 개방형 데이터 형식을 채택하여 최신 데이터 아키텍처의 상호 운용성을 지원하여 새로운 솔루션 제공을 가속화하는 것의 가치를 인식합니다.

고객은 AWS와 Snowflake를 사용하여 최신 분석 및 인공 지능(AI) 사용 사례에 필요한 성능을 제공하는 특별히 구축된 데이터 아키텍처를 개발하고 있습니다. 이러한 솔루션을 구현하려면 특별히 구축된 데이터 저장소 간에 데이터를 공유해야 합니다. 이것이 바로 Snowflake와 AWS가 데이터 서비스 간의 데이터 상호 운용성을 활성화하고 촉진하기 위해 Apache Iceberg에 대한 향상된 지원을 제공하는 이유입니다.

Apache Iceberg는 다양한 처리 엔진 간의 트랜잭션 무결성을 통해 대규모 데이터 세트에 대한 신뢰성, 단순성 및 고성능을 제공하는 오픈 소스 테이블 형식입니다. 이 게시물에서는 다음 내용을 논의합니다.

  • 데이터 레이크용 Iceberg 테이블의 장점
  • AWS와 Snowflake 간에 Iceberg 테이블을 공유하기 위한 두 가지 아키텍처 패턴:
    • 다음으로 Iceberg 테이블을 관리하세요. AWS 접착제 데이터 카탈로그
    • Snowflake로 Iceberg 테이블을 관리하세요
  • 데이터를 복사하지 않고 기존 데이터 레이크 테이블을 Iceberg 테이블로 변환하는 프로세스

이제 주제에 대해 높은 수준으로 이해했으므로 각 주제에 대해 자세히 살펴보겠습니다.

아파치 아이스버그의 장점

Apache Iceberg는 데이터 레이크에 저장된 대규모 데이터 세트의 데이터 처리를 단순화하는 데 도움이 되는 분산형 커뮤니티 중심 Apache 2.0 라이선스의 100% 오픈 소스 데이터 테이블 형식입니다. 데이터 엔지니어는 Apache Iceberg를 사용합니다. Apache Iceberg는 모든 규모에서 빠르고 효율적이며 안정적이며 시간이 지남에 따라 데이터 세트가 어떻게 변하는지 기록을 유지하기 때문입니다. Apache Iceberg는 Apache Spark, Apache Flink, Apache Hive, Presto 등과 같은 널리 사용되는 데이터 처리 프레임워크와의 통합을 제공합니다.

Iceberg 테이블은 메타데이터를 유지하여 대규모 파일 컬렉션을 추상화하고 시간 이동, 롤백, 데이터 압축, 전체 스키마 진화 등의 데이터 관리 기능을 제공하여 관리 오버헤드를 줄입니다. Apache Software Foundation에 오픈 소스로 제공되기 전에 원래 Netflix에서 개발된 Apache Iceberg는 다음과 같은 일반적인 데이터 레이크 문제를 해결하기 위한 백지 디자인이었습니다. 사용자 경험, 신뢰성과 성능, 현재 프로젝트에 새로운 기능을 지속적으로 개선 및 추가하고 실제 사용자 요구 사항을 충족하며 선택 사항을 제공하는 데 초점을 맞춘 강력한 개발자 커뮤니티의 지원을 받고 있습니다.

AWS 및 Snowflake를 기반으로 구축된 트랜잭션 데이터 레이크

Snowflake는 다음을 포함한 다양한 스토리지 옵션을 갖춘 Iceberg 테이블에 대한 다양한 통합을 제공합니다. 아마존 S3및 다음을 포함한 여러 카탈로그 옵션 AWS Glue 데이터 카탈로그눈송이. AWS는 다양한 AWS 서비스에 대한 통합을 제공합니다. 테이블 메타데이터 추적을 위한 AWS Glue 데이터 카탈로그를 포함하여 Iceberg 테이블도 사용할 수 있습니다. Snowflake와 AWS를 결합하면 데이터 공유 및 협업과 같은 분석 및 기타 사용 사례를 위한 트랜잭션 데이터 레이크를 구축할 수 있는 다양한 옵션이 제공됩니다. 데이터 레이크에 메타데이터 계층을 추가하면 매우 큰 데이터 세트에 대한 더 나은 사용자 경험, 단순화된 관리, 향상된 성능 및 안정성을 얻을 수 있습니다.

AWS Glue를 사용하여 Iceberg 테이블 관리

AWS Glue를 사용하여 데이터를 수집, 분류, 변환 및 관리할 수 있습니다. 아마존 단순 스토리지 서비스 (아마존 S3). AWS Glue는 ETL(추출, 변환 및 로드) 파이프라인을 시각적으로 생성, 실행 및 모니터링하여 데이터 레이크에 Iceberg 형식으로 데이터를 로드할 수 있는 서버리스 데이터 통합 ​​서비스입니다. AWS Glue를 사용하면 70개 이상의 다양한 데이터 소스를 검색 및 연결하고 중앙 집중식 데이터 카탈로그에서 데이터를 관리할 수 있습니다. Snowflake는 AWS Glue 데이터 카탈로그와 통합됩니다. 분석 쿼리를 위해 Iceberg 테이블 카탈로그와 Amazon S3의 파일에 액세스합니다. 이는 성능과 컴퓨팅 비용을 크게 향상시킵니다. Snowflake의 외부 테이블, 추가 메타데이터가 쿼리 계획의 정리를 향상시키기 때문입니다.

이와 동일한 통합을 사용하여 Snowflake의 데이터 공유 및 공동 작업 기능을 활용할 수 있습니다. 이는 Amazon S3에 데이터가 있고 다른 사업부, 파트너, 공급업체 또는 고객과 Snowflake 데이터 공유를 활성화해야 하는 경우 매우 강력할 수 있습니다.

다음 아키텍처 다이어그램은 이 패턴에 대한 높은 수준의 개요를 제공합니다.

워크 플로우에는 다음 단계가 포함됩니다.

  1. AWS Glue는 애플리케이션, 데이터베이스 및 스트리밍 소스에서 데이터를 추출합니다. 그런 다음 AWS Glue는 이를 변환하여 Amazon S3의 데이터 레이크에 Iceberg 테이블 형식으로 로드하는 동시에 AWS Glue 데이터 카탈로그에 Iceberg 테이블에 대한 메타데이터를 삽입하고 업데이트합니다.
  2. AWS Glue 크롤러는 Iceberg 테이블 메타데이터를 생성 및 업데이트하고 이를 S3 데이터 레이크의 기존 Iceberg 테이블에 대한 AWS Glue 데이터 카탈로그에 저장합니다.
  3. Snowflake는 AWS Glue 데이터 카탈로그와 통합되어 스냅샷 위치를 검색합니다.
  4. 쿼리가 발생하면 Snowflake는 AWS Glue 데이터 카탈로그의 스냅샷 위치를 사용하여 Amazon S3에서 Iceberg 테이블 데이터를 읽습니다.
  5. Snowflake는 Iceberg 및 Snowflake 테이블 형식에 걸쳐 쿼리할 수 있습니다. 당신은 할 수 있습니다 데이터 공유 동일한 Snowflake 지역에 있는 하나 이상의 계정과 공동 작업을 위해. Snowflake의 데이터를 다음 용도로 사용할 수도 있습니다. 심상 사용 아마존 퀵 사이트, 또는 다음 용도로 사용하세요. 기계 학습(ML) 및 인공 지능(AI) 목적아마존 세이지 메이커.

Snowflake로 Iceberg 테이블을 관리하세요

두 번째 패턴도 AWS와 Snowflake 간의 상호 운용성을 제공하지만 Snowflake로의 수집 및 변환을 위한 데이터 엔지니어링 파이프라인을 구현합니다. 이 패턴에서는 데이터가 AWS Glue와 같은 AWS 서비스와의 통합을 통해 또는 Snowpipe와 같은 다른 소스를 통해 Snowflake에 의해 Iceberg 테이블에 로드됩니다. 그런 다음 Snowflake는 Snowflake 및 다양한 AWS 서비스의 다운스트림 액세스를 위해 Iceberg 형식으로 Amazon S3에 직접 데이터를 기록하고, Snowflake는 AWS 서비스가 액세스할 테이블 전체의 스냅샷 위치를 추적하는 Iceberg 카탈로그를 관리합니다.

이전 패턴과 마찬가지로 Snowflake 데이터 공유와 함께 Snowflake 관리 Iceberg 테이블을 사용할 수 있지만, 한 당사자가 Snowflake에 액세스할 수 없는 경우 S3를 사용하여 데이터 세트를 공유할 수도 있습니다.

다음 아키텍처 다이어그램은 Snowflake 관리 Iceberg 테이블을 사용하는 이 패턴의 개요를 제공합니다.

이 워크플로는 다음 단계로 구성됩니다.

  1. 데이터를 로드하는 것 외에도 복사 명령, 스노우파이프AWS Glue용 기본 Snowflake 커넥터, Snowflake를 통해 데이터를 통합할 수 있습니다. 데이터 공유.
  2. Snowflake는 Iceberg 테이블을 Amazon S3에 기록하고 모든 트랜잭션마다 자동으로 메타데이터를 업데이트합니다.
  3. Amazon S3의 Iceberg 테이블은 QuickSight 및 SageMaker와 같은 서비스를 사용하여 분석 및 ML 워크로드를 위해 Snowflake에서 쿼리됩니다.
  4. AWS의 Apache Spark 서비스는 다음을 수행할 수 있습니다. Snowflak에서 스냅샷 위치에 액세스e Snowflake Iceberg Catalog SDK를 통해 Amazon S3에서 Iceberg 테이블 파일을 직접 스캔합니다.

솔루션 비교

이 두 패턴은 Apache Iceberg를 사용하여 Snowflake와 AWS 간의 데이터 상호 운용성을 극대화하기 위해 오늘날 데이터 페르소나에 사용할 수 있는 옵션을 강조합니다. 하지만 귀하의 사용 사례에는 어떤 패턴이 이상적일까요? 이미 AWS Glue 데이터 카탈로그를 사용하고 있고 읽기 쿼리에만 Snowflake가 필요한 경우 첫 번째 패턴은 Snowflake를 AWS Glue 및 Amazon S3와 통합하여 Iceberg 테이블을 쿼리할 수 있습니다. 아직 AWS Glue 데이터 카탈로그를 사용하고 있지 않고 Snowflake에서 읽기 및 쓰기를 수행해야 하는 경우 AWS에서 데이터를 저장하고 액세스할 수 있는 두 번째 패턴이 좋은 솔루션일 가능성이 높습니다.

읽기 및 쓰기가 전체 데이터 아키텍처가 아닌 테이블 단위로 작동한다는 점을 고려하면 두 패턴을 조합하여 사용하는 것이 좋습니다.

Apache Iceberg를 사용하여 기존 데이터 레이크를 트랜잭션 데이터 레이크로 마이그레이션

Amazon S3의 기존 Parquet, ORC 및 Avro 기반 데이터 레이크 테이블을 Iceberg 형식으로 변환하여 성능과 사용자 경험을 향상시키는 동시에 트랜잭션 무결성의 이점을 누릴 수 있습니다. Iceberg 테이블 마이그레이션 옵션에는 여러 가지가 있습니다(스냅 사진, 마이그레이션파일 추가) 기존 데이터 레이크 테이블을 Iceberg 형식으로 마이그레이션하는 데 사용됩니다. 이는 모든 기본 데이터 파일을 다시 작성하는 것보다 바람직합니다. 이는 대규모 데이터 세트의 경우 비용과 시간이 많이 소요되는 작업입니다. 이 섹션에서는 사용자 지정 마이그레이션에 유용하므로 ADD_FILES에 중점을 둡니다.

ADD_FILES 옵션의 경우 AWS Glue를 사용하여 기존 데이터 레이크 테이블에 대한 Iceberg 메타데이터 및 통계를 생성하고 기본 데이터를 다시 작성할 필요 없이 나중에 사용할 수 있도록 AWS Glue 데이터 카탈로그에 새 Iceberg 테이블을 생성할 수 있습니다. AWS Glue를 사용하여 Iceberg 메타데이터 및 통계를 생성하는 방법에 대한 지침은 다음을 참조하십시오. Apache Iceberg를 사용하여 기존 데이터 레이크를 트랜잭션 데이터 레이크로 마이그레이션 or AWS Glue를 사용하여 기존 Amazon S3 데이터 레이크 테이블을 Snowflake Unmanaged Iceberg 테이블로 변환.

이 옵션을 사용하려면 파일을 Iceberg 테이블로 변환하는 동안 데이터 파이프라인을 일시 중지해야 합니다. 이는 대상을 Iceberg 테이블로 변경하기만 하면 되므로 AWS Glue에서는 간단한 프로세스입니다.

결론

이 게시물에서는 AWS와 Snowflake 간의 상호 운용성을 높이기 위해 데이터 레이크에서 Apache Iceberg를 구현하는 두 가지 아키텍처 패턴을 확인했습니다. 또한 기존 데이터 레이크 테이블을 Iceberg 형식으로 마이그레이션하는 방법에 대한 지침도 제공했습니다.

무료로 10월 XNUMX일 AWS 개발자의 날 Apache Iceberg뿐만 아니라 스트리밍 데이터 파이프라인도 직접 사용해 볼 수 있습니다. 아마존 데이터 파이어호스스노우파이프 스트리밍및 생성적 AI 애플리케이션 눈송이의 Streamlit아마존 기반암.


저자에 관하여

안드리스 엥겔브레히트 Snowflake의 수석 파트너 솔루션 설계자이며 전략적 파트너와 협력하고 있습니다. 그는 AWS와 같은 전략적 파트너와 적극적으로 협력하여 제품 및 서비스 통합을 지원하고 파트너와 공동 솔루션을 개발하고 있습니다. Andries는 데이터 및 분석 분야에서 20년 이상의 경험을 가지고 있습니다.

딘반두 프라사드 빅 데이터 서비스를 전문으로 하는 AWS의 수석 분석 전문가입니다. 그는 고객이 AWS 클라우드에서 최신 데이터 아키텍처를 구축하도록 돕는 데 열정을 쏟고 있습니다. 그는 모든 규모의 고객이 데이터 관리, 데이터 웨어하우스 및 데이터 레이크 솔루션을 구현하도록 도왔습니다.

브라이언 돌란 해군 비행사로 첫 경력을 쌓은 후 2012년에 군사 관계 관리자로 Amazon에 합류했습니다. 2014년에 Brian은 Amazon Web Services에 합류하여 스타트업부터 기업까지 캐나다 고객이 AWS 클라우드를 탐색하도록 도왔습니다. 가장 최근에 Brian은 Amazon DynamoDB 및 Amazon Keyspaces의 시장 진출 전문가로 비관계형 비즈니스 개발 팀의 일원이었고, 2022년에 AWS Glue의 시장 진출 전문가로 Analytics Worldwide Specialist Organization에 합류했습니다.

니디 굽타 AWS의 수석 파트너 솔루션 아키텍트입니다. 그녀는 고객 및 파트너와 협력하여 아키텍처 문제를 해결하는 데 하루를 보냅니다. 그녀는 데이터 통합 ​​및 조정, 서버리스 및 빅 데이터 처리, 기계 학습에 열정을 갖고 있습니다. Nidhi는 데이터 워크로드에 대한 아키텍처 설계, 프로덕션 릴리스 및 배포를 주도한 광범위한 경험을 보유하고 있습니다.

스콧 틸 Snowflake의 제품 마케팅 책임자이며 데이터 레이크, 스토리지 및 거버넌스에 중점을 두고 있습니다.

spot_img

최신 인텔리전스

spot_img