AWS Glue クローラが Amazon S3 をスキャンして複数のディレクトリを検出すると、ヒューリスティックを使用してテーブルのルートがディレクトリ構造内のどこにあり、どのディレクトリがテーブルのパーティションであるかを判断します。複数のディレクトリで同様のスキーマが検出されると、クローラは、これらを個別のテーブルではなくパーティションとみなす場合があります。クローラで個別のテーブルを検出しやすくするには、1 つの方法として各テーブルのルートディレクトリをクローラのデータストアとして追加します。
以下の Amazon S3 のパーティションは、その一例です。
s3://amzn-s3-demo-bucket/folder1/table1/partition1/file.txt
s3://amzn-s3-demo-bucket/folder1/table1/partition2/file.txt
s3://amzn-s3-demo-bucket/folder1/table1/partition3/file.txt
s3://amzn-s3-demo-bucket/folder1/table2/partition4/file.txt
s3://amzn-s3-demo-bucket/folder1/table2/partition5/file.txt
table1
と table2
のスキーマが類似し、AWS Glue のデータソースが s3://amzn-s3-demo-bucket/folder1/
に対して 1 つのみ設定されている場合、クローラは 1 つのテーブルを 2 つのパーティション列で作成することがあります。1 つのパーティション列に table1
と table2
が入り、別のパーティション列に partition1
〜partition5
が入ります。
AWS Glue クローラで 2 つのテーブルを別個に作成するには、クローラに 2 つのデータソース (s3://amzn-s3-demo-bucket/folder1/table1/
と s3://amzn-s3-demo-bucket/folder1/table2
) を設定します。以下に手順を示します。
AWS Glue で既存のクローラーに S3 データストアを追加するには
AWS Management Consoleにサインインし、AWS Glue コンソール (https://console.aws.amazon.com/glue/
) を開きます。 -
ナビゲーションペインで、[Crawlers (クローラ) ] を選択します。
-
クローラーへのリンクを選択してから、[編集] を選択します。
-
[ステップ 2: データソースと分類子を選択する] で、[編集] を選択します。
-
[データソースとカタログ] で、[データソースを追加] を選択します。
-
[Add data source] (データソースの追加) ダイアログボックスの [S3 path] (S3 パス) で、[Browse] (ブラウズ) を選択します。
-
使用したいバケットを選択し、[Choose] (選択) を選択します。
追加したデータソースは、[Data sources ] (データソース) リストに表示されます。
-
[Next] を選択します。
-
[Configure security settings] (セキュリティ設定の構成) ページで、クローラーの IAM ロールを選択してから、[Next] (次へ) を選択します。
-
S3 パスの末尾がスラッシュで終わっていることを確認し、[Add an S3 data source] (S3 データソースの追加) を選択します。
-
[Set output and scheduling] (出力とスケジュールの設定) ページの、[Output configuration] (出力の設定) で、ターゲットデータベースを選択します。
-
[Next] を選択します。
-
[Review and update] (確認と更新) ページで、選択した内容を確認します。ステップを編集するには、[Edit] (編集) を選択します。
-
[Update] (更新) を選択します。