Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Apache Iceberg テーブルの作成

フォーカスモード

このページの内容

Apache Iceberg テーブルの作成 - AWS Lake Formation

AWS Lake Formation は、Amazon S3 に格納されたデータにより、AWS Glue Data Catalog で Apache Parquet データ形式を使用する Apache Iceberg テーブルの作成をサポートします。Data Catalog のテーブルは、データストア内のデータを表すメタデータ定義です。デフォルトでは、Lake Formation は Iceberg v2 テーブルを作成します。v1 テーブルと v2 テーブルの違いについては、Apache Iceberg ドキュメントの「形式バージョンの変更」を参照してください。

Apache Iceberg は、非常に大規模な分析データセット用のオープンテーブル形式です。Iceberg では、スキーマの変更 (スキーマ進化とも呼ばれます) を簡単に行うことができます。つまり、基になるデータを中断することなく、データテーブルの列を追加、名前変更、または削除できます。Iceberg はデータのバージョニングもサポートしているため、データの変更を経時的に追跡できます。これにより、タイムトラベル機能が有効になるため、過去のバージョンのデータにアクセスしてクエリを実行し、更新と削除の間に行われたデータの変更を分析できます。

Lake Formation コンソールまたは AWS Glue API の CreateTable オペレーションを使用して、Data Catalog に Iceberg テーブルを作成することができます。詳細については、「CreateTable アクション (Python: create_table)」を参照してください。

Data Catalog に Iceberg テーブルを作成する場合、読み取りと書き込みを実行できるように、Amazon S3 でテーブル形式とメタデータファイルのパスを指定する必要があります。

Amazon S3 のデータロケーションを AWS Lake Formation に登録すると、Lake Formation を使用してきめ細かなアクセス制御の許可により Iceberg テーブルを保護できます。Amazon S3 のソースデータと、Lake Formation に登録されていないメタデータへのアクセスは、Amazon S3 および AWS Glue アクションの IAM アクセス許可ポリシーによって決定されます。詳細については、「Lake Formation 許可の管理」を参照してください。

注記

Data Catalog は、パーティションの作成と Iceberg テーブルプロパティの追加をサポートしていません。

前提条件

Data Catalog に Iceberg テーブルを作成し、Lake Formation のデータアクセス許可を設定するには、次の要件を満たす必要があります。

  1. Lake Formation にデータが登録されていない状態で Iceberg テーブルを作成するために必要なアクセス許可。

    Data Catalog にテーブルを作成するために必要なアクセス許可に加えて、テーブル作成者には次のアクセス許可が必要です。

    • リソース arn:aws:s3:::{bucketName} での s3:PutObject

    • リソース arn:aws:s3:::{bucketName} での s3:GetObject

    • リソース arn:aws:s3:::{bucketName} での s3:DeleteObject

  2. Lake Formation にデータが登録されている状態で Iceberg テーブルを作成するために必要なアクセス許可:

    Lake Formation を使用してデータレイク内のデータを管理および保護するには、テーブルのデータを含む Amazon S3 ロケーションを Lake Formation に登録します。これは、Lake Formation が Athena、Redshift Spectrum、Amazon EMR などの AWS 分析サービスに認証情報を提供して、データにアクセスできるようにするためです。Amazon S3 ロケーションの登録の詳細については「データレイクへの Amazon S3 ロケーションの追加」を参照してください。

    Lake Formation に登録されている、基盤となるデータを読み書きするプリンシパルには、次のアクセス許可が必要です。

    • lakeformation:GetDataAccess

    • DATA_LOCATION_ACCESS

      ロケーションに対するデータロケーション許可を持つプリンシパルは、すべての子ロケーションに対するロケーション許可も持っています。

      データロケーション許可の詳細については、「基盤となるデータのアクセスコントロール」を参照してください。

圧縮を有効にするには、Data Catalog 内のテーブルを更新するアクセス許可を持つ IAM ロールを、サービスが引き受ける必要があります。詳細については、「テーブル最適化の前提条件」を参照してください。

Iceberg テーブルの作成

このページに記載されているように、Lake Formation コンソールまたは AWS Command Line Interface を使用して Iceberg v1 および v2 テーブルを作成できます。AWS Glue コンソールまたは AWS Glue クローラー を使用して Iceberg テーブルを作成することもできます。詳細については、「AWS Glue デベロッパーガイド」の「Data Catalog とクローラー」を参照してください。

Iceberg テーブルを作成するには

Console
  1. AWS Management Console にサインインして、Lake Formation コンソール (https://console.aws.amazon.com/lakeformation/) を開きます。

  2. Data Catalog で [テーブル] を選択し、[テーブルの作成] ボタンを使用して次の属性を指定します。

    • テーブル名: テーブルの名前を入力します。Athena を使用してテーブルにアクセスする場合は、「Amazon Athena ユーザーガイド」の命名に関するヒントを使用します。

    • データベース: 既存のデータベースを選択するか、新しいデータベースを作成します。

    • 説明: テーブルの説明。テーブルの内容を理解しやすくするために説明を記入できます。

    • テーブル形式: [テーブル形式] として、[Apache Iceberg] を選択します。

      Apache Iceberg テーブルオプションの選択とテーブル最適化オプション。
    • テーブル最適化

      • 圧縮 - データファイルをマージして書き換えて、古くなったデータを削除し、断片化されたデータをより大きい効率的なファイルに統合します。

      • スナップショット保持 - スナップショットは、Iceberg テーブルのタイムスタンプ付きバージョンです。スナップショット保持設定を使用すると、スナップショットを保持する期間と保持するスナップショットの数を強制できます。スナップショット保持オプティマイザーを設定すると、古い不要なスナップショットと、その基になる関連付けられたファイルを削除して、ストレージのオーバーヘッドを管理できます。

      • 孤立ファイルの削除 — 孤立ファイルは、Iceberg テーブルメタデータによって参照されなくなったファイルです。これらのファイルは、特にテーブルの削除や ETL ジョブの失敗などのオペレーションの後、時間の経過と共に蓄積される可能性があります。孤立ファイルの削除を有効にすると、AWS Glue はこれらの不要なファイルを定期的に特定して削除できるため、ストレージが解放されます。

      詳細については、「Iceberg テーブルの最適化」を参照してください。

    • IAM ロール: 圧縮を実行する場合、サービスはユーザーに代わって IAM ロールを引き受けます。IAM ロールは、ドロップダウンを使用して選択できます。圧縮を有効にするために必要なアクセス許可がロールにあることを確認します。

      必要なアクセス許可の詳細については、「テーブル最適化の前提条件」を参照してください。

    • ロケーション: メタデータテーブルを保存する Amazon S3 内のフォルダへのパスを指定します。Iceberg が読み取りと書き込みを実行するには、メタデータファイルと Data Catalog 内のロケーションが必要です。

    • スキーマ: [列の追加] を選択して、列と、列のデータ型を追加します。空のテーブルを作成して、後でスキーマを更新することもできます。Data Catalog は Hive データ型をサポートしています。詳細については、「Hive データ型」を参照してください。

      Iceberg では、テーブルを作成した後でスキーマとパーティションを進化させることができます。[Athena クエリ] を使用してテーブルスキーマを更新し、[Spark クエリ] を使用してパーティションを更新できます。

AWS CLI
aws glue create-table \ --database-name iceberg-db \ --region us-west-2 \ --open-table-format-input '{ "IcebergInput": { "MetadataOperation": "CREATE", "Version": "2" } }' \ --table-input '{"Name":"test-iceberg-input-demo", "TableType": "EXTERNAL_TABLE", "StorageDescriptor":{ "Columns":[ {"Name":"col1", "Type":"int"}, {"Name":"col2", "Type":"int"}, {"Name":"col3", "Type":"string"} ], "Location":"s3://DOC_EXAMPLE_BUCKET_ICEBERG/" } }'
  1. AWS Management Console にサインインして、Lake Formation コンソール (https://console.aws.amazon.com/lakeformation/) を開きます。

  2. Data Catalog で [テーブル] を選択し、[テーブルの作成] ボタンを使用して次の属性を指定します。

    • テーブル名: テーブルの名前を入力します。Athena を使用してテーブルにアクセスする場合は、「Amazon Athena ユーザーガイド」の命名に関するヒントを使用します。

    • データベース: 既存のデータベースを選択するか、新しいデータベースを作成します。

    • 説明: テーブルの説明。テーブルの内容を理解しやすくするために説明を記入できます。

    • テーブル形式: [テーブル形式] として、[Apache Iceberg] を選択します。

      Apache Iceberg テーブルオプションの選択とテーブル最適化オプション。
    • テーブル最適化

      • 圧縮 - データファイルをマージして書き換えて、古くなったデータを削除し、断片化されたデータをより大きい効率的なファイルに統合します。

      • スナップショット保持 - スナップショットは、Iceberg テーブルのタイムスタンプ付きバージョンです。スナップショット保持設定を使用すると、スナップショットを保持する期間と保持するスナップショットの数を強制できます。スナップショット保持オプティマイザーを設定すると、古い不要なスナップショットと、その基になる関連付けられたファイルを削除して、ストレージのオーバーヘッドを管理できます。

      • 孤立ファイルの削除 — 孤立ファイルは、Iceberg テーブルメタデータによって参照されなくなったファイルです。これらのファイルは、特にテーブルの削除や ETL ジョブの失敗などのオペレーションの後、時間の経過と共に蓄積される可能性があります。孤立ファイルの削除を有効にすると、AWS Glue はこれらの不要なファイルを定期的に特定して削除できるため、ストレージが解放されます。

      詳細については、「Iceberg テーブルの最適化」を参照してください。

    • IAM ロール: 圧縮を実行する場合、サービスはユーザーに代わって IAM ロールを引き受けます。IAM ロールは、ドロップダウンを使用して選択できます。圧縮を有効にするために必要なアクセス許可がロールにあることを確認します。

      必要なアクセス許可の詳細については、「テーブル最適化の前提条件」を参照してください。

    • ロケーション: メタデータテーブルを保存する Amazon S3 内のフォルダへのパスを指定します。Iceberg が読み取りと書き込みを実行するには、メタデータファイルと Data Catalog 内のロケーションが必要です。

    • スキーマ: [列の追加] を選択して、列と、列のデータ型を追加します。空のテーブルを作成して、後でスキーマを更新することもできます。Data Catalog は Hive データ型をサポートしています。詳細については、「Hive データ型」を参照してください。

      Iceberg では、テーブルを作成した後でスキーマとパーティションを進化させることができます。[Athena クエリ] を使用してテーブルスキーマを更新し、[Spark クエリ] を使用してパーティションを更新できます。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.