

# AWS Glue の概念
<a name="components-key-concepts"></a>

 AWS Glue はフルマネージド型の ETL (抽出、変換、ロード) サービスであり、さまざまなデータソースとターゲット間でデータを簡単に移動できます。主なコンポーネントは次のとおりです。
+  **データカタログ**: ETL ワークフローのテーブル定義、ジョブ定義、その他の制御情報を含むメタデータストア。
+  **クローラー**: データソースへの接続、データスキーマの推測、データカタログでメタデータテーブル定義の作成を行うプログラム。
+  **ETL ジョブ**: ソースからデータの抽出、Apache Spark スクリプトを使用して変換、ターゲットにロードするビジネスロジック。
+  **トリガー**: スケジュールまたはイベントに基づいてジョブ実行を開始するメカニズム。

 一般的なワークフローに含まれる内容は次のとおりです。

1.  データカタログでデータソースおよびターゲットを定義します。

1.  クローラーを使用して、データソースのテーブルメタデータでデータカタログに入力します。

1.  変換スクリプトを使用して ETL ジョブを定義し、データを移動および処理します。

1.  ジョブをオンデマンドまたはトリガーに基づいて実行します。

1.  ダッシュボードを使用してジョブのパフォーマンスをモニタリングします。

 次の図は、AWS Glue 環境のアーキテクチャを示します。

![\[AWS Glue での Data Catalog への入力と ETL データフロー処理の基本的な概念。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/HowItWorks-overview.png)


* で*ジョブAWS Glueを指定し、データソースからデータターゲットへのデータの抽出、変換、ロード (ETL) に必要な作業を完了します。通常は、以下のアクションを実行します。
+ データストアソースの場合は、*クローラ*を指定し、AWS Glue Data Catalog にメタデータテーブルの定義を入力します。データストアでクローラを指定し、クローラは Data Catalog のテーブル定義を作成します。ストリーミングソースの場合は、Data Catalog テーブルを手動で定義し、データストリームのプロパティを指定します。

  テーブル定義に加えて、AWS Glue Data Catalog には ETL ジョブを定義するために必要な他のメタデータが含まれています。このメタデータを使用して、データを変換するジョブを定義できます。
+ AWS Glue はデータを変換するスクリプトを生成できます。または、AWS Glue コンソールまたは API でスクリプトを提供できます。
+ ジョブをオンデマンドで実行する、または、指定した*トリガー*が発生すると開始するようにセットアップできます。トリガーは、時間ベースのスケジュールまたはイベントです。

  ジョブが実行されると、スクリプトはデータソースからデータを抽出し、データを変換してデータターゲットにロードします。スクリプトは AWS Glue の Apache Spark 環境で実行されます。

**重要**  
AWS Glue のテーブルとデータベースは、AWS Glue Data Catalog のオブジェクトです。それらにはメタデータが含まれ、データストアからのデータは含まれません。


|  | 
| --- |
|  **AWS Glue で正常に処理するために、CSV などのテキストベースのデータは `UTF-8` でエンコードする必要があります。詳細については、Wikipedia の「[UTF-8](https://en.wikipedia.org/wiki/UTF-8)」を参照してください。**  | 

## AWS Glue の用語
<a name="components-major"></a>

AWS Glue は、複数のコンポーネントの相互作用に依存して、抽出、変換、ロード (ETL) ワークフローを作成および管理します。

### AWS Glue Data Catalog
<a name="components-data-catalog"></a>

AWS Glue の持続的なメタデータストア。これには、AWS Glue 環境を管理するためのテーブル定義、ジョブ定義、およびその他のコントロール情報が含まれています。各 AWS アカウントには、リージョンごとに 1 つの AWS Glue Data Catalog があります。

### 分類子
<a name="components-classifier"></a>

データのスキーマを決定します。AWS Glue は、一般的なファイルタイプの分類子を提供します (CSV、JSON、AVRO、XML など)。また、JDBC 接続を使用する一般的なリレーショナルデータベース管理システムの分類子を提供します。独自の分類子を記述するには、 grok パターンを使用する、または、XML ドキュメント内の行タグを指定します。

### 接続
<a name="components-connection"></a>

特定のデータストアに接続するために必要なプロパティを含む Data Catalog オブジェクトです。

### Crawler
<a name="components-crawler"></a>

データストア (ソースまたはターゲット) に接続し、分類子の優先順位リストを進行してデータのスキーマを判断し、AWS Glue Data Catalog にメタデータテーブルを作成するプログラムです。

### データベース
<a name="components-database"></a>

論理グループに分類される、一連の関連付けられた Data Catalog テーブル定義です。

### データストア、データソース、データターゲット
<a name="components-data-store"></a>

*データストア* は、データを永続的に保存するリポジトリです。例として、Amazon S3 バケット、リレーショナルデータベースなどがあります。*データソース*は、プロセスまたは変換への入力として使用されるデータストアです。*データターゲット*はプロセスまたは変換の書込み先であるデータストアです。

### 開発エンドポイント
<a name="components-development-endpoint"></a>

エンドポイントは、AWS Glue ETL スクリプトの開発およびテストに使用できる環境です。

### 動的フレーム
<a name="components-dynamic-frame"></a>

構造や配列などのネストされたデータをサポートする分散テーブルです。各レコードは自己記述型であり、半構造化データのスキーマの柔軟性を持つよう設計されています。各レコードには、データとそのデータを記述するスキーマの両方が含まれます。動的フレームと Apache Spark DataFrames の両方を ETL スクリプトで使用し、それらの間で変換できます。動的フレームは、データクリーニングと ETL 用の一連の高度な変換を提供します。

### ジョブ
<a name="components-job"></a>

ETL 作業を実行するために必要なビジネスロジックです。変換スクリプト、データソース、およびデータターゲットで構成されます。ジョブ実行は、スケジュールされたトリガーにより、または、イベントにトリガーされることで開始されます。

### ジョブパフォーマンスダッシュボード
<a name="features-job-monitoring"></a>

AWS Glue は、ETL ジョブ用の包括的な実行ダッシュボードを提供します。ダッシュボードには、特定の時間枠からのジョブ実行に関する情報が表示されます。

### ノートブックインターフェイス。
<a name="components-notebook-server"></a>

ジョブ作成とデータ探索を容易にするワンクリック設定により、ノートブック体験を強化します。ノートブックと接続は自動的に構成されます。Jupyter Notebook をベースとしたノートブックインターフェースにより、AWS Glue のサーバーレス Apache Spark ETL インフラストラクチャを使用するスクリプトやワークフローを、対話的に開発、デバッグし、デプロイすることができます。また、ノートブック環境では、アドホッククエリ、データ分析、ビジュアライゼーション (表やグラフなど) を実行できます。

### スクリプト
<a name="components-script"></a>

ソースからデータを抽出し、変換し、ターゲットにロードするコード。AWS Glue は PySpark または Scala スクリプトを生成します。

### [テーブル]
<a name="components-table"></a>

データを表すメタデータ定義。データが、Amazon Simple Storage Service (Amazon S3) ファイル、Amazon Relational Database Service (Amazon RDS) テーブル、または別の一連のデータのどれにある場合でも、テーブルはデータのスキーマを定義します。AWS Glue Data Catalog のテーブルは、列名、データ型の定義、パーティション情報、および基本データセットに関するその他のメタデータで構成されています。データのスキーマは AWS Glue のテーブル定義で表されます。実際のデータは、ファイルまたはリレーショナルデータベーステーブルにあっても、元のデータストアに残ります。AWS Glue はファイルとリレーショナルデータベースのテーブルを AWS Glue Data Catalog に格納します。それらは、ETL ジョブを作成する際にソースおよびターゲットとして使用されます。

### 変換
<a name="components-transform"></a>

データを操作して別の形式にするために使用するコードのロジック。

### Trigger トリガー)
<a name="components-trigger"></a>

ETL ジョブを開始します。トリガーはスケジュールされた時間またはイベントに基いて定義できます。

### ビジュアルジョブエディタ
<a name="features-visual-editor"></a>

 ビジュアルジョブエディターは、AWS Glue での抽出、変換、ロード (ETL) ジョブの作成、実行、およびモニタリングが簡単に行えるグラフィカルなインターフェイスです。データ変換ワークフローを視覚的に構成し、AWS Glue の Apache Spark ベースのサーバーレス ETL エンジンでそれらをシームレスに実行して、ジョブの各ステップでスキーマとデータの結果を検査できます。

### ワーカー
<a name="components-worker"></a>

AWS Glue では、ETL ジョブの実行にかかる時間に対してのみお支払いが発生します。管理するリソースはなく、前払い料金もありません。また、起動時間やシャットダウン時間に対しての課金もありません。ETL ジョブの実行に使用された**データ処理ユニット** (DPUs) の数に基づいて時間あたりの料金が請求されます。単一のデータ処理ユニット (DPU) は、*ワーカー*とも呼ばれます。AWS Glue には、ジョブのレイテンシー要件とコスト要件を満たす設定を選択するために役立つ複数のワーカータイプがあります。ワーカーは、Standard、G.1X、G.2X、G.4X、G.8X、G.12X、G.16X、G.025X、およびメモリ最適化された R.1X、R.2X、R.4X、R.8X 構成で提供されます。