🗂

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

2024/12/08に公開

1. 概要

前回の記事で、AWS Glueに出てくる概念のうち、

  • テーブル
  • データベース
  • データカタログ
  • クローラー
  • 分類子

について、自分の整理としてまとめた。

2. 主要概念について(続き)

Glueを扱うにあたって、引き続きポイントになりそうだと感じた概念・機能について以下整理していく。
今回整理していく内容としては、

  • トリガー
  • ワークフロー
  • コネクタ

になる。
ワークフローに関連した概念に「ブループリント」があるが、今回は実務であまり触れていないため整理するのはまたの機会にする。

2.1. トリガー

トリガーを使用することで手動または自動でクローラーやジョブを実行することができる
トリガーの種類には以下の3種類があり、

  1. Scheduled
    ジョブとクローラーの起動日時の指定が可能
    マネコン上から作成するとGUIで指定していくけど、ベースはcron

  2. Conditional
    特定のジョブまたはクローラーの実行結果によって、後続のジョブやクローラーを起動させたり、処理を分岐させることができる
    マネコン上だと「Job or crawler event」という表記になっている

  3. On-demand
    マネコンのAWS Glue Triggerコンソール上からActionで「Start trigger」をすることで、トリガーに紐づけたジョブまたはクローラーを実行させることができる
    このトリガーは作成すると「Created」状態になり、「有効状態(ACTIVATED)」「無効状態(DEACTIVATED)」になることはない(することもできない)

2.2. ワークフロー

Glueワークフローは公式では以下のように説明されている

ワークフローは、含まれるすべてのジョブならびにクローラーの実行とモニタリングを管理します。ワークフローは、各コンポーネントについて、その実行の進捗状況とステータスを記録

つまり、個々に作成したジョブやクローラー、トリガーを関連付けしてグルーピングすることで一連の処理として管理しやすくする概念

作成する順番としては、「ワークフローを作成→ジョブやクローラー、トリガーを紐づけ」がほとんどかな。

2.3. コネクタ

Glueジョブやクローラーが、データソースまたは保存先ターゲットへアクセスするために必要
アクセスするための認証情報やVPC情報を設定して利用する
コネクタを利用するには、
(1) AWSがネイティブでサポートしているもの
(2) Marketplaceに公開されているもの
(3) 独自に作成するもの

のいずれかを使う

コネクタの概念の中にコネクションというものがあり、名前や意味が似ていてややこしいと感じたが、

  • コネクタは、データソースやターゲットに接続するためのリソースそのものの
  • コネクションは、コネクタに設定する設定値

というイメージになると思う
以降これらの用語はちゃんと分けて整理していく

2.3.1. (1)AWSがネイティブでサポートしているもの

このコネクタは、コネクションを作成する際に、AWSがデフォルトでサポートしているデータソースを選べるんだけど、選んだデータソースに対応したコネクタをAWS側が自動で用意してくれるイメージ

そのコネクタに対する設定を「コネクション」設定画面で引き続き行っていってる
Connectionsコンソール画面上の「Create connection」ボタンから作成するのは、「AWSがネイティブでサポートしているコネクタの生成+そのコネクション設定」と思っていいと思う

2.3.2. (2) (3)のコネクタ

残り2つのコネクタについては、既に誰かが作ったコネクタをサブスクライズしてそれに対してコネクションを設定したり、自分でカスタマイズしたコネクタに対してコネクションを設定するというイメージ

(3)のコネクタ作成について細かい話をすると、コネクタのタイプが3種類あるため、それに応じたコネクタプロパティを埋めていく感じになる
例えば、JDBCタイプのコネクタを作りたいのであれば、JDBC接続に必要なURL情報やドライバクラスの名前などが必要になってくる

3. まとめ

2つの記事でほんとうにざっくりとGlueの理解に必要だと感じた概念をメモとして整理してみた。
かなり端折って説明してしまっている箇所が多いと思うが、実際に使ったときの内容を今後メモとしてまた整理していく予定なので、細かい点はその時にまとめれたらと思う

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

Discussion