AWS Glue テーブル - AWS Glue

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

AWS Glue テーブル

以下の方法で、Data Catalog にテーブル定義を追加できます。

  • 1 つ以上のデータストアに接続し、データ構造を決定して、データカタログにテーブルを書き込むクローラーを実行します。クローラーは、組み込み分類子またはカスタム分類子を使用して、データの構造を認識します。スケジュールに基づいてクローラーを実行することができます。詳細については、「AWS Glue でのクローラーの定義」を参照してください。

  • AWS Glue コンソールを使用して AWS Glue Data Catalog に手動でテーブルを作成します。詳細については、「AWS Glue コンソールでのテーブルの使用」を参照してください。

  • AWS Glue APICreateTable オペレーションを使用し、AWS Glue Data Catalog にテーブルを作成します。詳細については、「CreateTable アクション (Python: create_table)」を参照してください。

  • AWS CloudFormation テンプレートを使用します。詳細については、「AWS Glue 用の AWS CloudFormation」を参照してください。

  • Apache Hive メタストアを移行します。詳細については、「 での Hive メタストアと 間の移行AWS Glue Data Catalog」を参照してください GitHub。

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

テーブルパーティション

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

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

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 コンソールの [Tables] (テーブル) ページにエントリとして表示されます。

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

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

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

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

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

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

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

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

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

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

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

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