Glue CrawlerでS3のCSVファイルをData Catalogに登録してみた
はじめに
かつまたです。今回は、S3にアップロードしたCSVファイルに対して、Glue Crawlerによってデータのメタデータを抽出し、Glue Data Catalogに出力を登録する手順を行ってみました。以下ブログで今回、データカタログに登録したCSVファイルをGlue jobを用いて、スクリプトベースで記述した処理で特定の条件でフィルタリングし、その結果をS3にCSV形式で保存する操作を実施してみた手順も記載したのでよろしければご覧ください。
Glueについて
Glue Crawlerとは
Glue Crawlerは、データソース(S3、DynamoDBなど)をスキャンし、データのスキーマを自動的に検出してGlue Data Catalogにメタデータを登録するサービスです。CSVやJSONなどの様々な形式のデータを解析し、テーブル定義を自動生成してくれます。
Glue Data Catalogとは
Glue Data Catalogは、AWS内のデータソースに関するメタデータを一元管理するリポジトリです。Athena、Redshift SpectrumなどのAWSサービスと連携して、保存されているデータに対してクエリを実行することができます。
やってみる
S3にcCSVファイルアップロード
- 任意のS3にローカルから作成したCSVファイルをアップロードします。今回は以下のCSVファイルを使用します。
Glue Crawler作成
-
「Glue」→「Crawlers」からクローラーを作成していきます。
-
データソースとして、先ほどCSVファイルをアップロードしたS3パス(例:s3://cm-katsumata)を指定します。
- クローラーがデータストアからデータを抽出し、Data Catalogに書き込むためのIAMロールを選択します。新規作成を選択することで以下のポリシーを含むロールを自動で作成してくれます。
- AWSGlueServiceRole:Data Catalogへのアクセスに必要なAWS管理ポリシー
- データソースに対するアクセス許可を付与するインラインポリシー
- ロールに対するiam:PassRoleアクセス許可を付与するインラインポリシー
-
クローラーが作成した、データのメタデータを保存するGlue Data Catalogのデータベースを選択します。未作成の場合は「Add database」から作成することも可能です。
また「Crawler schedule」を設定することで日次、週次などでの定期実行を設定することも可能です。(今回は検証のためオンデマンド)
-
設定情報を確認してクローラーを作成します。
Crawler実行とテーブル確認
-
クローラーが作成できたら、「Run crawler」から実行します。
-
実行が確認できたら、「Data Catalog」→「tables」から作成されたテーブルを確認できます。
-
以下画像のように元CSVファイルからデータ列名やデータ型などが抽出されていることが確認できます。
おわりに
Glue Crawlerを使うことで、S3に保存されたCSVファイルのスキーマを自動的に検出し、Glue Data Catalogにテーブル定義として登録することができました。これにより、Athenaなどのサービスからクエリを実行して、データ分析を簡単に行うことができるようになります。
ご覧いただきありがとうございました。
参考資料
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。