🙌

AWS Glueの概念をざっくり整理してみた①

2024/12/01に公開

1. 概要

業務でAWS Glue(以下Glue)を使う機会があったので、個人メモレベルだが機能や概念について整理しておく
個人的なメモレベルなので理解が足らない内容もあると思うが、そこはご容赦を。
さすがにこの解釈は大きく違うのではという内容があればご指摘いただけると幸いです。

2. 主要概念について

Glueを扱うにあたって、ポイントになりそうだと感じた機能について以下整理していく。
(公式でまとめられてる主要概念はこちら)

2.1. テーブル

データの抽出元にあるデータそのもの(以下データソース)のメタデータを保持しているもの
具体的にはデータの列名やデータ型などのスキーマを保持している

2.2. データベース

テーブルを論理的にグルーピングして管理している

2.3. データカタログ

上述のデータベースに加え、データのスキーマやデータソースの場所、ジョブ定義、その他制御情報なども併せて保持している場所というイメージ

2.4. クローラー

データソースからデータのスキーマを抽出してくれるもの
「新しいデータソース」か「既にクローリング済みのデータソース」かでやや挙動が変わる

  • 新しいデータソース
    設定時にクローリングしたいデータソースを選択(複数可)
    選んだデータソースに存在するデータスキーマをメタデータとしてテーブルに保存
  • 既にクローリング済みのデータソース
    設定時にデータソースではなく、対象データソースから作成されているテーブルを選択(複数不可)
    テーブルに紐づくデータソースに対して再度クローリングを実施し、テーブルを更新する

2.4.1. 分類子

クローラーがデータソースに存在するデータの構造を抽出する際に、対象のデータの形式がクローラーが認識できるものかどうかを確認するための機能
クローラーが認識できる形式(つまり、分類子で定義したデータ形式と対象のデータの形式が一致すれば)であれば、クローラーはデータ形式に基づいた構造を生成してテーブルに保存する

挙動としては、クローラーが

  1. まずはカスタム分類子に定義されている内容と照らし合わす
    1. マッチする形式があれば、その形式に沿ってデータスキーマを定義
    2. 後続で定義されている分類子の内容とは照合せず終了
  2. カスタム分類子の中にマッチする形式がなかった場合は、ビルトイン分類子との照合が行われる
    1. マッチする形式があれば、その形式に沿ってデータスキーマを定義
    2. 後続で定義されている分類子の内容とは照合せず終了

3. まとめ

今回はいったんここまでの整理にして、次回の記事で「トリガー」「ワークフロー」「コネクション」
あたりについてまとめていく。

Discussion