テーブルの作成 - AWS Glue

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

テーブルの作成

データストア内のデータをインベントリするには、クローラの実行が推奨されますが、メタデータテーブルを に追加できます。 AWS Glue Data Catalog 手動。このアプローチにより、メタデータ定義をより詳細にコントロールし、特定の要件に応じてカスタマイズできます。

以下の方法で、データカタログにテーブルを手動で追加することもできます。

コンソールまたは を使用してテーブルを手動で定義するときはAPI、テーブルスキーマと、データソース内のデータの種類と形式を示す分類フィールドの値を指定します。クローラーでテーブルを作成する場合、データ形式とスキーマは、組み込み分類子またはカスタム分類子のいずれかによって決定されます。を使用したテーブルの作成の詳細については、「」を参照してください。AWS Glue コンソールについては、「」を参照してくださいコンソールを使用したテーブルの作成

テーブルパーティション

An AWS Glue Amazon Simple Storage Service (Amazon S3) フォルダのテーブル定義は、パーティションテーブルを記述できます。たとえば、クエリのパフォーマンスを向上させるために、パーティションテーブルでは月の名前をキーとして毎月のデータを別のファイルに分割する場合があります。In AWS Glue、テーブル定義にはテーブルのパーティショニングキーが含まれます。メトリック AWS Glue は、Amazon S3 フォルダ内のデータを評価してテーブルをカタログ化し、個々のテーブルまたはパーティション化されたテーブルのどちらを追加するかを決定します。

テーブル内のすべてのパーティションをロードする代わりに、テーブル上にパーティションインデックスを作成して、パーティションのサブセットを取得できます。パーティションインデックスの使用方法については、「パーティションインデックスの作成 」を参照してください。

次の条件はすべて に当てはまる必要があります AWS Glue Amazon S3 フォルダのパーティションテーブルを作成するには:

  • ファイルのスキーマは、 によって決定されるとおりに類似しています。AWS Glue.

  • ファイルのデータ形式が同じである。

  • ファイルの圧縮形式が同じである。

例えば、iOS と Android 両方のアプリケーションの販売データを保存する my-app-bucket という名前の Amazon S3 バケットを所有しているとします。データは、年、月、日で分割されます。iOS および Android の販売に関するデータファイルは、同じスキーマ、データ形式、および圧縮形式です。左 AWS Glue Data Catalog、AWS Glue クローラは、年、月、日のパーティショニングキーを使用して 1 つのテーブル定義を作成します。

次の my-app-bucket の Amazon S3 リストでは、パーティションのいくつかが示されています。= シンボルは、パーティションキー値の割り当てに使用されます。

my-app-bucket/Sales/year=2010/month=feb/day=1/iOS.csv my-app-bucket/Sales/year=2010/month=feb/day=1/Android.csv my-app-bucket/Sales/year=2010/month=feb/day=2/iOS.csv my-app-bucket/Sales/year=2010/month=feb/day=2/Android.csv ... my-app-bucket/Sales/year=2017/month=feb/day=4/iOS.csv my-app-bucket/Sales/year=2017/month=feb/day=4/Android.csv
- AWS Glue コンソールが最近更新されました。コンソールの現行バージョンでは、テーブルリソースリンクはサポートされません。

Data Catalog には、テーブルへのリソースリンクを含めることができます。テーブルリソースリンクは、ローカルまたは共有テーブルへのリンクです。現在、リソースリンクは でのみ作成できます。 AWS Lake Formation。 テーブルへのリソースリンクを作成したら、テーブル名を使用する任意の場所でリソースリンク名を使用できます。所有しているテーブルまたは共有されているテーブルに加えて、テーブルリソースリンクは によって返glue:GetTables()され、 のテーブルページにエントリとして表示されます。AWS Glue console。

Data Catalog には、データベースリソースリンクを含めることもできます。

リソースリンクの詳細については、「」の「リソースリンクの作成」を参照してください。 AWS Lake Formation デベロッパーガイド

コンソールを使用したテーブルの作成

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

注記

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

開始するには、 にサインインします。 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。 詳細については、「」を参照してくださいクローラーを使用したデータカタログへの入力

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

    最適化行列 (ORC) ファイル形式。Hive データを効率的に保存するために設計された形式。

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

  • 現在、コンソールで作成したパーティションテーブルはジョブでは使用できませんETL。

テーブル属性

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

名前

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

データベース

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

説明

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

テーブル形式

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

Data Catalog には、テーブルストレージを管理し、Iceberg テーブルのクエリパフォーマンスを向上させるための次のテーブル最適化オプションが用意されています。

  • 圧縮 — データファイルはマージされて書き換えられ、古いデータは削除され、フラグメント化されたデータはより大規模で効率的なファイルに統合されます。

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

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

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

最適化設定

デフォルト設定を使用するか、テーブルオプティマイザを有効にするための設定をカスタマイズできます。

IAM ロール

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

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

ロケーション

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

分類

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

最終更新日

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

追加された日付

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

廃止済み

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

Connection

If 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. バージョンの比較を停止するには、[比較の停止] を選択してテーブルのリストに戻ります。

クローラーを使用して手動で作成されたデータカタログテーブルを更新する

作成したい場合があります。 AWS Glue Data Catalog テーブルを手動で作成し、 で更新する AWS Glue クローラ。スケジュールで実行されているクローラーは、新しいパーティションを追加して、スキーマの変更によりテーブルを更新できます。これは Apache Hive メタストアから移行されたテーブルにも適用されます。

これを行うには、クローラーを定義するときに、1 つ以上のデータストアをクロールのソースとして指定する代わりに、既存のデータカタログテーブルを 1 つ以上指定します。クローラーは、カタログテーブルで指定されたデータストアをクロールします。この場合、新しいテーブルは作成されず、手動で作成されたテーブルが更新されます。

以下に、カタログテーブルを手動で作成し、クローラーソースとしてカタログテーブルを指定するその他の理由を示します。

  • カタログテーブル名命名アルゴリズムに依存せず、カタログテーブル名を選択することをお勧めします。

  • パーティションの検出を中断する可能性がある形式のファイルが誤ってデータソースパスに保存されないように、新しいテーブルが作成されないようにする必要があります。

詳細については、「ステップ 2: データソースと分類子を選択する」を参照してください。

Data Catalog テーブルのプロパティ

で知られているテーブルプロパティまたはパラメータ AWS CLIは、検証されていないキーと値の文字列です。テーブルに独自のプロパティを設定して、 の外部での Data Catalog の使用をサポートできます。 AWS Glue。 Data Catalog を使用する他の のサービスもそうする可能性があります。 AWS Glue は、ジョブまたはクローラーを実行するときに、いくつかのテーブルプロパティを設定します。特に説明がない限り、これらのプロパティは内部使用のためのものであり、現在の形式での存続や、これらのプロパティを手動で変更した場合の製品の動作についてはサポートされません。

によって設定されたテーブルプロパティの詳細については、「」を参照してください。 AWS Glue クローラについては、「」を参照してくださいクローラーによって設定されたデータカタログテーブルのパラメータ