AWS Glue コンソールでのテーブルの使用 - AWS Glue

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Glue コンソールでのテーブルの使用

AWS Glue Data Catalog のテーブルは、データストア内のデータを表すメタデータ定義です。クローラの実行時にテーブルを作成するか、または、AWS Glue コンソールで手動でテーブルを作成できます。 コンソールの [TablesAWS Glue] (テーブル) リストに、テーブルのメタデータの値が表示されます。ETL (抽出、変換、ロード) ジョブを作成するときに、テーブル定義を使用してソースとターゲットを指定します。

注記

AWS マネジメントコンソールの最新の変更に伴い、既存の IAM ロール を SearchTables 許可を持つように変更することが必要になる場合があります。新しいロールを作成する場合、SearchTables API 許可は既にデフォルトとして追加されています。

開始するには、AWS Management Console にサインインし、AWS Glue コンソール (https://console.aws.amazon.com/glue/) を開きます。[Tables] (テーブル) タブをクリックし、[Add tables] (テーブルの追加) ボタンを使用して、クローラで、または属性を手動で入力してテーブルを作成します。

コンソールでテーブルを追加する

クローラを使用してテーブルを追加するには、[Add tables] (テーブルの追加)、[Add tables using a crawler] (クローラを使用してテーブルを追加) の順に選択します。次に、[Add crawler] (クローラの追加) ウィザードの手順に従います。クローラが実行されると、テーブルが AWS Glue Data Catalog に追加されます。詳細については、AWS Glue でのクローラーの定義 を参照してください。

Data Catalog の Amazon Simple Storage Service (Amazon S3) テーブル定義の作成に必要な属性が分かっている場合は、テーブルウィザードで作成できます。[Add tables] (テーブルの追加)、[Add table manually] (手動でのテーブルを追加) の順に選択し、[Add table] (テーブルの追加) ウィザードの手順に従います。

コンソールで手動でテーブルを追加するときは、以下の点を考慮します。

  • Amazon Athena からテーブルにアクセスする場合は、英数字とアンダースコア文字のみを使用して名前を指定してください。詳細については、「テーブル、データベース、および列の名前」を参照してください。

  • ソースデータの場所は Amazon S3 パスにする必要があります。

  • データのデータ形式は、ウィザードに表示されているいずれかの形式と一致する必要があります。対応する分類およびその他のテーブルプロパティは SerDe、選択した形式に基づいて自動的に入力されます。次の形式でテーブルを定義できます。

    Avro

    Apache Avro JSON バイナリ形式。

    CSV

    文字で区切られた値。また、区切り文字として、カンマ、パイプ、セミコロン、タブ、または Ctrl-A を指定します。

    JSON

    JavaScript オブジェクト表記。

    XML

    Extensible Markup Language 形式。データの行を定義する XML タグを指定します。列は行のタグ内で定義されます。

    Parquet

    Apache Parquet 列指向ストレージ。

    ORC

    Optimized Row Columnar (ORC) ファイル形式。Hive データを効率的に保存するために設計された形式。

  • テーブルのパーティションキーを定義できます。

  • 現在、コンソールで作成した分割されたテーブルは、ETL ジョブで使用することはできません。

テーブル属性

以下に重要なテーブル属性を示します。

名前

名前は、テーブルの作成時に決定され、変更することはできません。多くの AWS Glue オペレーションでテーブル名を参照します。

データベース

テーブルが存在するコンテナオブジェクト。このオブジェクトには、AWS Glue Data Catalog 内に存在するテーブルの組織名が含まれ、データストアの組織名とは異なる場合があります。データベースを削除すると、データベースに含まれるすべてのテーブルも Data Catalog から削除されます。

説明

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

テーブル形式

標準 AWS Glue テーブル、または Apache Iceberg 形式のテーブルの作成を指定します。

圧縮を有効にする

[圧縮を有効にする] を選択して、テーブル内の小さな Amazon S3 オブジェクトを大きなオブジェクトに圧縮します。

IAM ロール

圧縮を実行するために、サービスはユーザーに代わって IAM ロールを引き受けます。ドロップダウンを使用して IAM ロールを選択できます。圧縮を有効にするために必要な許可がロールに付与されているようにしてください。

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

ロケーション

このテーブル定義が表すデータストア内のデータの場所へのポインタ。

分類

テーブルの作成時に指定された分類の値。通常、これはクローラが実行されてソースデータの形式を指定するときに書き込まれます。

最終更新日

Data Catalog でこのテーブルが更新された日付と時刻 (UTC)。

追加された日付

Data Catalog にこのテーブルが追加された日付と時刻 (UTC)。

廃止済み

AWS Glue により、Data Catalog のテーブルは元のデータストアに存在しなくなったことが分かると、そのテーブルは廃止されたとしてデータカタログにマークされます。廃止されたテーブルを参照するジョブを実行する場合、ジョブは失敗する可能性があります。廃止されたテーブルを参照するジョブを編集し、ソースおよびターゲットとして削除します。廃止されたテーブルが不要になったら削除することをお勧めします。

Connection

AWS Glue でデータストアへの接続が必要な場合は、接続の名前がテーブルに関連付けられます。

テーブルの詳細の表示と編集

既存のテーブルの詳細を表示するには、リスト内のテーブル名を選択し、[Action, View details] (アクション、詳細を表示) を選択します。

テーブルの詳細にはテーブルのプロパティとスキーマが含まれます。このビューには、テーブルに定義された順序の列名、データ型、およびパーティションのキー列を含む、テーブルのスキーマが表示されます。列が複合型の場合は、以下の例に示すように、[View properties] (プロパティの表示) を選択して、そのフィールドの構造の詳細を表示します。

{ "StorageDescriptor": { "cols": { "FieldSchema": [ { "name": "primary-1", "type": "CHAR", "comment": "" }, { "name": "second ", "type": "STRING", "comment": "" } ] }, "location": "s3://aws-logs-111122223333-us-east-1", "inputFormat": "", "outputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat", "compressed": "false", "numBuckets": "0", "SerDeInfo": { "name": "", "serializationLib": "org.apache.hadoop.hive.serde2.OpenCSVSerde", "parameters": { "separatorChar": "|" } }, "bucketCols": [], "sortCols": [], "parameters": {}, "SkewedInfo": {}, "storedAsSubDirectories": "false" }, "parameters": { "classification": "csv" } }

StorageDescriptor などのテーブルのプロパティの詳細については、「StorageDescriptor 構造」を参照してください。

テーブルのスキーマを変更するには、[Edit schema] (スキーマの編集) を選択し、列の追加および削除、列名の変更、データ型の変更をします。

スキーマを含むテーブルの異なるバージョンを比較するには、バージョンの比較を選択して、テーブルのスキーマの 2 つのバージョン side-by-side の比較を表示します。詳細については、「 テーブルスキーマのバージョンの比較 」を参照してください。

Amazon S3 パーティションを構成するファイルを表示するには、[View partition] (パーティションの表示) を選択します。Amazon S3 のテーブルでは、[Key] (キー) 列に、ソースデータストアでテーブルを分割するために使用されるパーティションキーが表示されます。パーティションは、日付、場所、または部門などのキー列の値に基づいて、テーブルを関連する部分に分割する方法です。パーティションの詳細については、インターネットで「hive パーティション」を検索してください。

注記

テーブルの詳細を表示するための step-by-step ガイダンスについては、 コンソールの「Explore table」チュートリアルを参照してください。

テーブルスキーマのバージョンの比較

テーブルスキーマの 2 つのバージョンを比較する場合、ネストされた行を展開して折りたたむことで、ネストされた行の変更を比較し、2 つのバージョンのスキーマを比較して side-by-side、テーブルのプロパティ を表示できます side-by-side。

バージョンの比較方法

  1. AWS Glue コンソールから [テーブル] > [アクション] の順に選択し、[バージョンの比較] を選択します。

    
                        このスクリーンショットは、[アクション] ボタンの選択時を示しています。ドロップダウンメニューに [バージョンの比較] オプションが表示されます。
  2. バージョンのドロップダウンメニューから、比較するバージョンを選択します。スキーマを比較すると、[スキーマ] タブがオレンジ色で強調表示されます。

  3. 2 つのバージョン間でテーブルを比較すると、テーブルスキーマが画面の左側と右側に表示されます。これにより、列名、データ型、キー、コメントフィールドを比較して、変更を視覚的に判断できます side-by-side。変更があると、色付きのアイコンでその変更の種類が表示されます。

    • 削除済み — 赤いアイコンによる表示は、以前のバージョンのテーブルスキーマから列が削除されたことを示します。

    • 編集済みまたは移動済み — 青いアイコンによる表示は、新しいバージョンのテーブルスキーマで列が変更または移動されたことを示します。

    • 追加 — 緑色のアイコンによる表示は、新しいバージョンのテーブルスキーマに列が追加されたことを示します。

    • ネストされた変更 — 黄色のアイコンによる表示は、ネストされた列に変更が含まれていることを示します。列を選択して展開すると、削除、編集、移動、追加のいずれかが実行された列が表示されます。

    
                        このスクリーンショットは、2 つのバージョン間のテーブルスキーマの比較を示しています。左側は古いバージョンです。右側は新しいバージョンです。列の横にある削除アイコンは、古いバージョンから削除されたため、新しいバージョンでは表示されていません。
  4. 検索バーのフィルタフィールドを使用すると、ここに入力した文字に基づいてフィールドを表示できます。いずれかのテーブルバージョンで列名を入力すると、フィルタリングされたフィールドが両方のテーブルバージョンに表示され、変更が行われた箇所がわかります。

  5. プロパティを比較するには、[プロパティ] タブを選択します。

  6. バージョンの比較を停止するには、[比較の停止] を選択してテーブルのリストに戻ります。

Iceberg テーブルの最適化

Apache Iceberg などのオープンテーブル形式を使用する Amazon S3 データレイクは、データを Amazon S3 オブジェクトとして保存します。データレイクテーブルに数千の小さな Amazon S3 オブジェクトがある場合、Iceberg テーブルのメタデータのオーバーヘッドが増加し、読み取りパフォーマンスに悪影響が及びます。Amazon Athena および Amazon EMR や AWS Glue ETL ジョブなどの AWS 分析サービスによる読み取りパフォーマンスを改善するために、AWS Glue Data Catalog は、データカタログの Iceberg テーブルのために、マネージド圧縮 (小さな Amazon S3 オブジェクトを大きなオブジェクトに圧縮するプロセス) を提供します。AWS Glue コンソール、Lake Formation コンソール、AWS CLI、または AWS API を使用して、データカタログ内の個々の Iceberg テーブルのために圧縮を有効または無効にすることができます。

テーブルオプティマイザーは、テーブルパーティションを絶えずモニタリングして、ファイル数とファイルサイズのしきい値を超えたときに、圧縮プロセスを開始します。データカタログでは、圧縮を開始するためのデフォルトのしきい値は 384 MB に設定されていますが、Iceberg ライブラリでは、圧縮のしきい値はターゲットファイルサイズの 75% 未満です。データカタログは、同時クエリに支障を来たすことなく圧縮を実行します。データカタログは、Parquet 形式のテーブルのデータ圧縮のみをサポートします。

テーブル最適化の前提条件

テーブルオプティマイザーは、テーブルの圧縮を有効にする際に指定する AWS Identity and Access Management (IAM) ロールの許可を引き受けます。IAM ロールには、データカタログ内のデータを読み取ったり、メタデータを更新したりするための許可が必要です。IAM ロールを作成し、次のインラインポリシーをアタッチできます。

  • Lake Formation に登録されていないデータの場所に対する Amazon S3 の読み取り/書き込み許可を付与する次のインラインポリシーを追加します。このポリシーには、データカタログ内のテーブルを更新するための許可、および AWS Glue が Amazon CloudWatch ログにログを追加したり、メトリクスを公開したりするのを許可するための許可も含まれています。Lake Formation に登録されていない Amazon S3 のソースデータへのアクセスは、Amazon S3 および AWS Glue アクションの IAM アクセス許可ポリシーによって決定されます。

    次のインラインポリシーでは、bucket-name を Amazon S3 バケット名、aws-account-id および region をデータカタログの有効な AWS アカウント番号およびリージョン、database_name をデータベース名、table_name をテーブル名に置き換えます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::<bucket-name>/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<bucket-name>" ] }, { "Effect": "Allow", "Action": [ "glue:UpdateTable", "glue:GetTable" ], "Resource": [ "arn:aws:glue:<region>:<aws-account-id>:table/<database-name>/<table-name>", "arn:aws:glue:<region>:<aws-account-id>:database/<database-name>", "arn:aws:glue:<region>:<aws-account-id>:catalog" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:<region>:<aws-account-id>:log-group:/aws-glue/iceberg-compaction/logs:*" } ] }
  • Lake Formation で登録されたデータの圧縮を有効にするには、次のポリシーを使用します。

    Lake Formation への Amazon S3 バケットの登録の詳細については、「ロケーションの登録に使用されるロールの要件」を参照してください。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "glue:UpdateTable", "glue:GetTable" ], "Resource": [ "arn:aws:glue:<region>:<aws-account-id>:table/<databaseName>/<tableName>", "arn:aws:glue:<region>:<aws-account-id>:database/<database-name>", "arn:aws:glue:<region>:<aws-account-id>:catalog" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:<region>:<aws-account-id>:log-group:/aws-glue/iceberg-compaction/logs:*" } ] }

    圧縮ロールにテーブルに対するIAM_ALLOWED_PRINCIPALSグループ許可が付与されていない場合、そのロールにはテーブルに対する Lake Formation ALTER、DESCRIBE、INSERT、および DELETE 許可が必要です。

  • (オプション) サーバー側の暗号化を使用して暗号化された Amazon S3 バケットにデータがある Iceberg テーブルを圧縮するには、圧縮ロールに Amazon S3 オブジェクトを復号して、暗号化されたバケットにオブジェクトを書き込むための新しいデータキーを生成するアクセス許可が必要です。次のポリシーを目的の AWS KMS キーに追加します。バケットレベルの暗号化のみがサポートされています。

    { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<aws-account-id>:role/<compaction-role-name>" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }
  • (オプション) Lake Formation で登録されたデータの場所については、場所を登録するために使用されるロールには、Amazon S3 オブジェクトを復号したり、暗号化されたバケットにオブジェクトを書き込むための新しいデータキーを生成したりする許可が必要です。詳細については、「暗号化された Amazon S3 の場所の登録」を参照してください。

  • (オプション) AWS KMS キーが別の AWS アカウントに保存されている場合は、圧縮ロールに次の許可を含める必要があります。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": ["arn:aws:kms:<REGION>:<KEY_OWNER_ACCOUNT_ID>:key/<KEY_ID>"] } ] }
  • 圧縮を実行するために使用するロールには、そのロールに対する iam:PassRole 許可が必要です。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<compaction-role-name>" ] } ] }
  • 圧縮プロセスを実行する IAM ロールを引き受けるには、次の信頼ポリシーを AWS Glue サービスのロールに追加します。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

圧縮の有効化

AWS Glue コンソール、Lake Formation コンソール、AWS CLI、または AWS API を使用して、データカタログ内の Apache Iceberg テーブルのために圧縮を有効にすることができます。新しいテーブルについては、テーブル形式として Apache Iceberg を選択し、テーブルの作成時に圧縮を有効にすることができます。圧縮は、新しいテーブルのためにデフォルトで無効になっています。

Console
圧縮を有効にするには
  1. https://console.aws.amazon.com/glue/ で AWS Glue コンソールを開き、データレイク管理者、テーブル作成者、またはテーブルに対する および 許可を付与されたユーザーとしてサインインします。

  2. ナビゲーションペインの [データカタログ][テーブル] を選択します。

  3. [テーブル] ページで、圧縮を有効にするオープンテーブル形式のテーブルを選択し、[アクション] メニューで [圧縮を有効にする] を選択します。

  4. テーブルを選択して [テーブルの詳細] ページを開いて、圧縮を有効にすることもできます。ページの下部セクションにある [テーブル最適化] タブを選択し、[圧縮を有効にする] を選択します。

  5. 次に、 テーブル最適化の前提条件 セクションに示されている許可を持つ既存の IAM ロールをドロップダウンから選択します。

    [新しい IAM ロールを作成] オプションを選択すると、サービスは圧縮を実行するために必要な許可を持つカスタムロールを作成します。

    既存の IAM ロールを更新するには、以下のステップに従います。

    1. IAM ロールの許可ポリシーを更新するには、IAM コンソールで、圧縮の実行に使用されている IAM ロールにアクセスします。

    2. [Add permissions] (アクセス許可の追加) セクションで、[Create policy] (ポリシーの作成) を選択します。新しく開いたブラウザウィンドウで、ロールで使用する新しいポリシーを作成します。

    3. [Create policy] (ポリシーの作成) ページで、[JSON] タブを選択します。 テーブル最適化の前提条件 セクションに示されている JSON コードをポリシーエディタフィールドにコピーします。

AWS CLI

次の例は、圧縮を有効にする方法を示しています。アカウント ID を、有効な AWS アカウント ID に置き換えます。データベース名とテーブル名を、実際の Iceberg テーブル名とデータベース名に置き換えます。roleArn を、IAM ロールの AWS リソース名 (ARN) と、圧縮を実行するために必要な許可を持つ IAM ロールの名前に置き換えます。

aws glue create-table-optimizer \ --catalog-id 123456789012 \ --database-name iceberg_db \ --table-name iceberg_table \ --table-optimizer-configuration '{"roleArn":"arn:aws:iam::<123456789012>:role/<compaction_role>", "enabled":'true'}' \ --type compaction
AWS API

テーブルの圧縮を有効にするには、CreateTableOptimizer オペレーションを呼び出します。

圧縮を有効にすると、[テーブル最適化] タブに次の圧縮の詳細が表示されます (約 15~20 分後)。

  • 開始時刻 - Lake Formation 内で圧縮プロセスが開始された時刻。値は UTC 時刻のタイムスタンプです。

  • 終了時刻 - Lake Formation で圧縮プロセスが終了した時刻。値は UTC 時刻のタイムスタンプです。

  • ステータス – 圧縮ジョブのステータス。値は成功または失敗です。

  • 圧縮されたファイル - 圧縮されたファイルの総数。

  • 圧縮されたバイト数 - 圧縮された合計バイト数。

圧縮の無効化

AWS Glue コンソールまたは AWS CLI を使用して、特定の Apache Iceberg テーブルの自動圧縮を無効にできます。

Console
  1. [データカタログ][テーブル] の順に選択します。テーブルリストから、圧縮を無効にするオープンテーブル形式のテーブルを選択します。

  2. Iceberg テーブルを選択し、[アクション][圧縮を無効にする] を選択できます。

    [テーブルの詳細] ページの下部のセクションで [圧縮を無効にする] を選択して、テーブルの圧縮を無効にすることもできます。

  3. 確認メッセージで [圧縮を無効にする] を選択します。圧縮は後で再度有効にすることができます。

    確認すると、圧縮が無効になり、テーブルの圧縮ステータスが Off に戻ります。

AWS CLI

次の例で、アカウント ID を、有効な AWS アカウント ID に置き換えます。データベース名とテーブル名を、実際の Iceberg テーブル名とデータベース名に置き換えます。roleArn を、IAM ロールの AWS リソース名 (ARN) と、圧縮を実行するために必要な許可を持つ IAM ロールの実際の名前に置き換えます。

aws glue update-table-optimizer \ --catalog-id 123456789012 \ --database-name iceberg_db \ --table-name iceberg_table \ --table-optimizer-configuration '{"roleArn":"arn:aws:iam::123456789012:role/compaction_role", "enabled":'false'}'\ --type compaction
AWS API

UpdateTableOptimizer オペレーションを呼び出して、特定のテーブルの圧縮を無効にします。

圧縮の詳細の表示

Apache Iceberg の圧縮ステータスは、AWS Glue コンソール、AWS CLI、または AWS API オペレーションを使用して表示できます。

Console
Iceberg テーブルの圧縮ステータスを表示するには
  • [データカタログ][テーブル] を選択すると、AWS Glue コンソールで Iceberg テーブルの圧縮ステータスを表示できます。[圧縮ステータス] フィールドには、圧縮実行のステータスが表示されます。テーブルの設定を使用して、テーブルの形式と圧縮ステータスを表示できます。

  • 特定のテーブルの圧縮実行履歴を表示するには、[AWS Glue Data Catalog] の [テーブル] を選択でテーブルを選択し、テーブルの詳細を表示します。[テーブル最適化] タブには、テーブルの圧縮履歴が表示されます。

AWS CLI

AWS CLI を使用して圧縮の詳細を表示できます。

次の例では、アカウントID を有効な AWS アカウント ID、データベース名、テーブル名を実際の Iceberg テーブル名に置き換えます。

  • テーブルの前回の圧縮実行の詳細を取得するには

    aws get-table-optimizer \ --catalog-id 123456789012 \ --database-name iceberg_db \ --table-name iceberg_table \ --type compaction
  • 次の例を使用して、特定のテーブルのオプティマイザーの履歴を取得します。

    aws list-table-optimizer-runs \ --catalog-id 123456789012 \ --database-name iceberg_db \ --table-name iceberg_table \ --type compaction
  • 次の例は、複数のオプティマイザーの圧縮実行と設定の詳細を取得する方法を示しています。最大 20 個のオプティマイザを指定できます。

    aws glue batch-get-table-optimizer \ --entries '[{"catalogId":"123456789012", "databaseName":"iceberg_db", "tableName":"iceberg_table", "type":"compaction"}]'
AWS API
  • GetTableOptimizer オペレーションを使用して、前回実行したオプティマイザの詳細を取得します。

  • 特定のテーブル上の特定のオプティマイザーの履歴を取得するには、ListTableOptimizerRuns オペレーションを使用します。1 回の API 呼び出しで 20 個のオプティマイザーを指定できます。

  • アカウント内の複数のオプティマイザーの設定の詳細を取得するには、BatchGetTableOptimizer オペレーションを使用します。このオペレーションではアカウント間呼び出しをサポートしていません。

Amazon CloudWatch メトリクスの表示

圧縮が正常に実行されると、サービスは圧縮ジョブのパフォーマンスに関する Amazon CloudWatch メトリクスを作成します。CloudWatch コンソールに移動し、メトリクス すべてのメトリクス を選択します。メトリクスは、特定の名前空間 (AWS Glue など)、テーブル名、またはデータベース名でフィルタリングできます。 

詳細については、「Amazon CloudWatch ユーザーガイド」の「使用可能なメトリクスを表示する」を参照してください。

  • 圧縮されたバイト数

  • 圧縮されたファイル数

  • ジョブに割り当てられた DPU の数

  • ジョブの実行時間 (時間単位)

オプティマイザーの削除

AWS CLI または AWS API オペレーションを使用して、テーブルのオプティマイザーと関連するメタデータを削除できます。

テーブルの圧縮履歴を削除するには、次の AWS CLI コマンドを実行します。

aws glue delete-table-optimizer \ --catalog-id 123456789012 \ --database-name iceberg_db \ --table-name iceberg_table \ --type compaction

テーブルのオプティマイザーを削除するには、DeleteTableOptimizer オペレーションを使用します。

考慮事項と制約事項

データ圧縮は次をサポートします。

  • データ型: ブール、整数、長整数、浮動小数点、倍精度浮動小数点数、文字列、10 進数、日付、時刻、タイムスタンプ、文字列、UUID、バイナリ

  • 圧縮: zstd、gzip、snappy、非圧縮

  • 暗号化: データ圧縮では、デフォルトの Amazon S3 暗号化 (SSE-S3) とサーバー側 KMS 暗号化 (SSE-KMS) のみがサポートされます。

  • ビンパック圧縮

  • スキーマ進化

  • 1128MB2 MB の範囲内のターゲットファイルサイズ (iceberg 設定のwrite.target-file-size-bytes property) を持つテーブル。

  • リージョン

    • アジアパシフィック(東京)

    • アジアパシフィック(ソウル)

    • アジアパシフィック(ムンバイ)

    • 欧州 (アイルランド)

    • 欧州 (フランクフルト)

    • 米国東部(バージニア北部)

    • 米国東部 (オハイオ)

    • 米国西部(北カリフォルニア)

  • 基礎となるデータを保存する Amazon S3 バケットが別のアカウントにある場合、データカタログが存在するアカウントから圧縮を実行できます。これを実行するには、圧縮ロールが Amazon S3 バケットにアクセスできる必要があります。

データ圧縮は現在、次をサポートしていません。

  • データ型: 固定小数点

  • 圧縮: brotli、lz4

  • パーティションの仕様が進化する中でのファイルの圧縮。

  • 通常の並べ替えまたは Z オーダーの並べ替え

  • ファイルのマージまたは削除: 圧縮プロセスでは、削除ファイルが関連付けられているデータファイルはスキップされます。

  • クロスアカウントテーブルでの圧縮: クロスアカウントテーブルでは圧縮を実行できません。

  • クロスリージョンテーブルでの圧縮: クロスリージョンテーブルでは圧縮を実行できません。

  • リソースのリンクでの圧縮の有効化

  • Amazon S3 バケットの VPC エンドポイント