■ はじめに
https://dk521123.hatenablog.com/entry/2019/10/01/221926
の続き。 今回は、クローラ(Crawler)について、焦点を当てる
目次
【1】クローラ(Crawler) 【2】用語整理 1)データストア(データソース / データターゲット) 2)データカタログ(Data Catalog) 【3】Athena との連携 【4】クローラ関連のBoto3 API
【1】クローラ(Crawler)
* S3においてあるファイルの内容やフォルダ構成から 自動的にテーブルスキーマを解析し、データカタログに保存
クロール可能なデータストア
S3、DynamoDB、RDS、Redshift等
結局、何が嬉しい?
* クローリングして、自動的に データカタログを作成(パーティション作成含む)することにより、 Amazon Athena や EMR などからデータを取得することができる
Amazon Athena ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/06/17/173717
Amazon EMR ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/02/20/230519
公式サイト
サポートしているファイル形式
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/console-tables.html
* JSON * CSV * Parquet * Avro * XML Parquet については、以下の関連記事を参照のこと。
https://dk521123.hatenablog.com/entry/2020/06/03/000000
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/add-crawler.html
より一部抜粋
クローラを実行するとどうなるか
クローラを実行すると、 クローラは以下のアクションを使用してデータストアを調査します。 raw データの形式、スキーマ、および関連プロパティを 確認するためにデータを分類する – カスタム分類子を作成して分類の結果を設定できます。 データをテーブルまたはパーティションにグループ化する – データはクローラのヒューリスティックに基づいてグループ化されます。 メタデータを Data Catalog に書き込む – クローラでテーブルやパーティションを追加、更新、削除する方法を設定できます。
クローラは、どのようにパーティションを作成するタイミングを判断していますか?
テーブルの名前は Amazon S3 プレフィックスまたはフォルダ名に基づいています。 s3://bucket01/folder1/table1/partition1/file.txt s3://bucket01/folder1/table1/partition2/file.txt s3://bucket01/folder1/table1/partition3/file.txt s3://bucket01/folder1/table2/partition4/file.txt s3://bucket01/folder1/table2/partition5/file.txt ~~~~~~~~
【2】用語整理
1)データストア(データソース / データターゲット)
* データを永続的に保存するリポジトリ(ex S3, RDS) * データストアは、以下の2種類。 [1] データソース(Data Source = データ元) ⇒ 入力としてとして使用されるデータストア [2] データターゲット(Data Target = データ先) ⇒ 書込み先のデータストア
2)データカタログ(Data Catalog)
* データセットの構造上および運用上の メタデータ(テーブルの定義や物理的な場所)を保存するもの ※ メタデータの詳細は、以下の関連記事を参照のこと
Hive / HiveQL ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2019/11/25/235219
* 公式サイトは以下。
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/populate-data-catalog.html
【3】Athena との連携
* 以下の関連記事を参照のこと。
https://dk521123.hatenablog.com/entry/2020/07/15/162459
【4】クローラ関連のBoto3 API
* 以下の関連記事を参照のこと。
https://dk521123.hatenablog.com/entry/2019/10/14/000000
■ 関連記事
AWS Glue ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/10/01/221926
AWS Glue ~ 基本編 / ジョブ ~
https://dk521123.hatenablog.com/entry/2019/11/17/231505
AWS Glue ~ 基本編 /トリガ ~
https://dk521123.hatenablog.com/entry/2019/11/29/221207
AWS Glue ~ クローリング結果の確認画面 ~
https://dk521123.hatenablog.com/entry/2021/05/28/142153
Glue から DataCatalogテーブル に対して Spark SQLを実行する
https://dk521123.hatenablog.com/entry/2021/05/11/220731
Glue Job から パーティションを更新することを考える
https://dk521123.hatenablog.com/entry/2021/05/15/130604
Workflows / Boto3・AWS CLI
https://dk521123.hatenablog.com/entry/2019/10/14/000000
AWS Glue ~ Boto3 / クローラ編 ~
https://dk521123.hatenablog.com/entry/2021/04/16/135558
AWS Glue のトラブル その1
https://dk521123.hatenablog.com/entry/2019/10/25/232155
AWS Glue のトラブル その2
https://dk521123.hatenablog.com/entry/2020/05/07/144132
Amazon Athena ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/06/17/173717
Amazon Athena ~ 基本編 / AWS Glue との連携 ~
https://dk521123.hatenablog.com/entry/2020/07/15/162459
Hive / HiveQL ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2019/11/25/235219
Parquet ファイル
https://dk521123.hatenablog.com/entry/2020/06/03/000000