AWS Glue Data Catalog でテーブルを定義する - AWS接着語

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

AWS Glue Data Catalog でテーブルを定義する

以下の方法で、データカタログにテーブル定義を追加できます。

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

テーブルパーティション

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

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

次の条件はすべてAWS GlueAmazon S3 フォルダ用にパーティション化されたテーブルを作成します。

  • ファイルのスキーマは、AWS Glue によって決定されるものと似ている。

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

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

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

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

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 Lake Formation。テーブルへのリソースリンクを作成した後、テーブル名を使用する任意の場所で、リソースリンク名を使用できます。自分が所有している、または自分と共有しているテーブルに加えて、テーブルリソースリンクはglue:GetTables()にエントリとして表示され、テーブルのページAWS Glueconsole.

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

リソースリンクの詳細については、リソースリンクの作成()AWS Lake Formation開発者ガイド

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

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

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

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

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

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

詳細については、「クローラソースのタイプ」を参照してください。