SQL クエリを使用してデータを変換する
[SQL] 変換を使用して、SQL クエリの形式で独自の変換を記述できます。
SQL 変換ノードでは、入力として複数のデータセットを持つことができますが、出力として生成されるデータセットは 1 つだけです。これには、Apache SparkSQL クエリを入力するテキストフィールドが含まれています。入力として使用する各データセットにエイリアスを割り当てることで、SQL クエリを簡単に実行できます。SQL 構文の詳細については、Spark SQL ドキュメント
注記
VPC にあるデータソースで Spark SQL 変換を使用する場合は、AWS Glue VPC エンドポイントを、データソースを含む VPC に追加します。開発エンドポイントの設定の詳細については、AWS Glue デベロッパーガイドの「Adding a Development Endpoint」、「Setting Up Your Environment for Development Endpoints」、「Accessing Your Development Endpoint」を参照してください。
ジョブ図で SQL 変換ノードを使用するには
-
(オプション) 必要な場合、ジョブ図に変換ノードを追加します。ノードタイプに [SQL クエリ] を選択します。
注記
データプレビューセッションおよびカスタム SQL またはカスタムコードノードを使用する場合、データプレビューセッションはデータセット全体に SQL またはコードブロックをそのまま実行します。
-
[Node properties] (ノードのプロパティ) タブで、ジョブ図のノードの名前を入力します。ノードの親がまだ選択されていない場合、または SQL 変換に複数の入力が必要な場合は、[Node parents] (ノードの親) リストから、変換の入力ソースとして使用するノードを選択します。必要な場合、他の親ノードを追加します。
-
ノードの詳細パネルで [Transform] (変換) タブを選択します。
-
SQL クエリのソースデータセットは、各ノードの [Name] (名前) フィールドで指定する名前により識別されます。これらの名前を使用しない場合、または名前が SQL クエリに適していない場合は、各データセットに名前を関連付けることができます。コンソールでは、
MyDataSource
などのデフォルトのエイリアスが提供されています。例えば、SQL 変換ノードの親ノードの名前が
Rename Org PK field
の場合、このデータセットにorg_table
という名前を関連付けることができます。その後、このエイリアスをノード名の代わりに SQL クエリで使用できます。 -
見出し [Code block] (コードブロック) の下にある テキスト入力フィールドで、SQL クエリを貼り付けるか、入力します。テキストフィールドには、SQL 構文のハイライトとキーワードの候補が表示されます。
-
SQL 変換ノードを選択した状態で、[Output schema] (出力スキーマ) タブを選択してから、[Edit] (編集) を選択します。SQL クエリの出力フィールドを示す、列とデータ型を指定します。
そのページの [Output schema] (出力スキーマ) セクションにある次のアクションを使用して、スキーマを指定します。
-
列の名前を変更するには、その列の [Key] (キー) テキストボックス ([field] (フィールド) または [property key] (プロパティキー) とも示されます) にカーソルを置き、新しい名前を入力します。
-
列のデータ型を変更するには、ドロップダウンリストから列の新しいデータ型を選択します。
-
トップレベルの新しい列をスキーマに追加するには、[Overflow] (オーバーフロー) (
) ボタンを選択して、[Add root key] (ルートキーの追加) をクリックします。新しい列がスキーマの先頭に追加されます。
-
スキーマから列を削除するには、キー名の右端にある削除アイコン (
) をクリックします。
-
-
出力スキーマの指定が完了したら、[Apply] (適用) を選択して変更を保存し、スキーマエディタを終了します。変更を保存しない場合は、[Cancel] (キャンセル) を選択して、スキーマエディタを編集します。
(オプション) ノードおよび変換のプロパティを設定した後、ノードの詳細パネルの [Data preview] (データのプレビュー) タブを選択して、変更されたデータセットをプレビューできます。ジョブ内の任意のノードに対してこのタブを初めて選択すると、データにアクセスする IAM ロールを指定するよう求められます。この機能を使用するには費用がかかり、IAM ロールを指定するとすぐに請求が開始します。