Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWSサービスを活用したApache Icebergへのデータ連携

AWSサービスを活用したApache Icebergへのデータ連携

2025/6/2 のBigData Jawsの登壇資料です。

Avatar for fshuhe

fshuhe

June 05, 2025
Tweet

More Decks by fshuhe

Other Decks in Technology

Transcript

  1. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS サービスを活⽤した Apache Iceberg へのデータ連携 深⾒ 修平 (Shuhei Fukami) Analytics Solutions Architect Amazon Web Services 1
  2. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 2 Name︓ 深⾒修平(Shuhei Fukami) Title︓ Analytics Specialist Solutions Architect 趣味︓ ピザ焼き 窯があるのに焼く⼈間がいない時ぜひお呼びください 窯を買ったので窯がない⼈もぜひお声がけください 好きなOSS: OpenSearch, Iceberg ⾃⼰紹介
  3. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 1.Apache Iceberg テーブルのレコード操作に必要な処理 2.AWS における Iceberg テーブルへの書き込みパターン • Apache Iceberg に対応したエンジンの利⽤ • Iceberg テーブルへの Zero-ETL 統合 • Amazon Data Firehose の Iceberg テーブル連携機能 アジェンダ 3
  4. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Apache Iceberg テーブルの レコード操作に必要な処理 4
  5. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 5 Iceberg テーブルのアーキテクチャ Manifest list Manifest File Manifest File Manifest File Data Files Data Files Data Files Metadata layer Manifest list Iceberg catalog Data layer db1.table1 metadata pointer Metadata file s0 s1 Metadata file s0 • Iceberg カタログ • 最新のメタデータファイル (=テーブルの状態)を記録 • テーブル更新時は metadata file の場所を アトミックに更新する機能を備える • メタデータレイヤー • メタデータファイルを元にツリー構造を辿るこ とで、歴代のスキーマやスナップショット履歴 などへの効率的なアクセスを提供する • データレイヤー • テーブルの実レコード、 削除ファイル(Merge on Read ⽤)を保持
  6. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 6 Iceberg テーブルのアーキテクチャ Manifest list Manifest File Manifest File Manifest File Data Files Data Files Data Files Metadata layer Manifest list Iceberg catalog Data layer db1.table1 metadata pointer Metadata file s0 s1 Metadata file s0 • Iceberg カタログ • 最新のメタデータファイル (=テーブルの状態)を記録 • テーブル更新時は metadata file の場所を アトミックに更新する機能を備える • メタデータレイヤー • メタデータファイルを元にツリー構造を辿るこ とで、歴代のスキーマやスナップショット履歴 などへの効率的なアクセスを提供する • データレイヤー • テーブルの実レコード、 削除ファイル(Merge on Read ⽤)を保持 • データ書き込みなどレコードの操作を⾏う際には、 実データだけでなくそれに 紐づけた形でメタデータレイヤーへの 書き込みやカタログコミットが必要 • ファイルを S3 にPUT するだけではすまない • Iceberg に対応したエンジンを⽤いて適切な レコード操作のための⼀連の処理が必要
  7. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS における Iceberg テーブルへの 書き込みパターン 7
  8. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS における Iceberg テーブルへの書き込みパターン 8 1. Apache Iceberg に対応したエンジンの利⽤ 2. Iceberg テーブルへの Zero-ETL 統合 3. Amazon Data Firehose の Iceberg テーブル連携機能
  9. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS における Iceberg テーブルへの書き込みパターン 9 1. Apache Iceberg に対応したエンジンの利⽤ データソース lambda AWS Lambda MSK Connect Aws Glue Amazon EMR Managed Service for Apache Flink Apache Iceberg Amazon S3 Tables General Purpose S3 PyIceberg Kafka Connect (Iceberg sink connector) AWS Glue Data Catalog Amazon Athena
  10. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS における Iceberg テーブルへの書き込みパターン 10 1. Apache Iceberg に対応したエンジンの利⽤ データソース lambda AWS Lambda MSK Connect Aws Glue Amazon EMR Managed Service for Apache Flink Apache Iceberg Amazon S3 Tables General Purpose S3 PyIceberg Kafka Connect (Iceberg sink connector) AWS Glue Data Catalog Amazon Athena • ⾃前での実装が必要だが柔軟な実装が可能 • エンジン毎に対応しているデータソースや Iceberg に関する機能が異なるため 要件に合わせた選択が重要 • CoW/MoR 対応や 動的な ShemaEvolution など
  11. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS における Iceberg テーブルへの書き込みパターン 11 2. AWS Glue Data Catalog に登録された Iceberg テーブルへの Zero-ETL 統合 Amazon DynamoDB Facebook Ads Instagram Ads Salesforce SAP OData ServiceNow 3rd Party tools Zero-ETL 統合 lambda Apache Iceberg S3 Bucket AWS Glue Data Catalog データソース ターゲット Zendesk Zoho https://docs.aws.amazon.com/glue/latest/dg/zero-etl-common-integration-tasks.html
  12. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS における Iceberg テーブルへの書き込みパターン 12 2. AWS Glue Data Catalog に登録された Iceberg テーブルへの Zero-ETL 統合 Amazon DynamoDB Facebook Ads Instagram Ads Salesforce SAP OData ServiceNow 3rd Party tools Zero-ETL 統合 lambda Apache Iceberg S3 Bucket AWS Glue Data Catalog データソース ターゲット • ノーコードで Iceberg テーブルへの データ連携が可能 • データ連携の頻度は15分 • Partition の設定も可能 • デフォルトではDDB のパーティションキーを partition column として利⽤ • Timestamp などユーザーがカラムを指定することも 可能 • Identity, Year, Month, Day, Hour などのTransform 関数が利⽤可能 • Point-in-time recovery (PITR) の 有効化が必要 • 連携元のテーブルのサイズ上限は 2TB https://docs.aws.amazon.com/glue/latest/dg/zero-etl-integration-dynamodb-draken.html
  13. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS における Iceberg テーブルへの書き込みパターン 13 2. AWS Glue Data Catalog に登録された Iceberg テーブルへの Zero-ETL 統合 Amazon DynamoDB Facebook Ads Instagram Ads Salesforce SAP OData ServiceNow 3rd Party tools Zero-ETL 統合 lambda Apache Iceberg S3 Bucket AWS Glue Data Catalog データソース ターゲット • ノーコードで Iceberg テーブルへの データ連携が可能 • Glue Connection の作成が必要 • テーブルの作成、カタログへの登録から 定期的なデータ連携を⾃動的に実施 • Transform 関数 を⽤いた Partition 設定が可能 • Identity, Year, Month, Day, Hour • 連携頻度など設定できるパラメータは ソースによって異なることに注意 https://docs.aws.amazon.com/glue/latest/dg/zero-etl-common-integration-tasks.html
  14. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 14 Amazon Data Firehose Apache Iceberg Tables in S3 / S3 tables GA Preview • Lambda での変換も利⽤可能 AWS における Iceberg テーブルへの書き込みパターン 3. Amazon Data Firehose の Iceberg テーブル連携機能 AWS Glue Data Catalog
  15. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. まとめ 15 • Iceberg テーブルへのデータの書き込みではメタデータの更 新を含むトランザクション処理が必要 データファイルをストレージに置くだけではすまない • AWS では Iceberg の操作に対応した複数の⽅法が⽤意され ている • 実装コストが低い選択肢も含めて 要件にあった適切な選択をするのが重要
  16. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Appendix Amazon Data Firehose の詳細 16
  17. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Data Firehose の Iceberg テーブルへの配信 17 Amazon Data Firehose AWS Glue Data Catalog Iceberg Tables Direct PUT ソースの場合 Direct PUT • Glue Data Catalog で管理される Iceberg テーブルをターゲットに選択可能 • ソース(流れてくるストリームデータ)のスキーマ への動的な Schema Evolution は現時点で未対応 • Iceberg テーブル側のスキーマ変更には対応 • Merge on Read をサポート • 1つのストリームで複数のテーブルに配信も可能 • JQ / Lambda 変換でフィールドの値をもとに ターゲットテーブルを振り分ける • AppendOnly=True に設定することでスループットの ⾃動スケールが可能 • Exactly-once データ加工失敗時 ソースレコードのバック アップ(オプション) Backup S3 bucket (optional) Failure S3 bucket Amazon Kinesis Amazon MSK
  18. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Appendix Copy on write と Merge on Read 18
  19. © 2026, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 19 Copy-on-Write と Merge-on-Read Copy-on-Write (CoW) 書き込み / 読み取り処理間 のトレードオフ 読み取りの 計算コストは無影響 書き込みの 計算コストが増加 書き込み / 読み取り処理間 のトレードオフ 読み取りの オーバーヘッドが発⽣ 書き込みの 計算コストが少ない Data file Data file ファイル全体を書き換え Data file 差分を追加 Log file Merge-on-Read (MoR) Iceberg では、レコードの更新 / 削除時に 2 つのモードを選択できる