SQL クエリを使用してデータを変換する - AWS Glue

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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 変換ノードを使用するには
  1. (オプション) 必要な場合、ジョブ図に変換ノードを追加します。ノードタイプを [Spark SQL] に設定します。

  2. [Node properties] (ノードのプロパティ) タブで、ジョブ図のノードの名前を入力します。ノードの親がまだ選択されていない場合、または SQL 変換に複数の入力が必要な場合は、[Node parents] (ノードの親) リストから、変換の入力ソースとして使用するノードを選択します。必要な場合、他の親ノードを追加します。

  3. ノードの詳細パネルで [Transform] (変換) タブを選択します。

  4. SQL クエリのソースデータセットは、各ノードの [Name] (名前) フィールドで指定する名前により識別されます。これらの名前を使用しない場合、または名前が SQL クエリに適していない場合は、各データセットに名前を関連付けることができます。コンソールでは、MyDataSource などのデフォルトのエイリアスが提供されています。

    
              スクリーンショットでは、3 つのノードのジョブ図が示されています。最初のノードは、「これは本当に長い名前です」という名前の S3 ソースノードです。2 番目のノードは、「SQL クエリ」という名前の SQL Code 変換ノードです。3 番目のノードは、「修正済みのフライトデータ」という名前の S3 データターゲットノードです。SQL クエリノードが選択され、ノードの詳細パネルに [Transform] (変換) タブが表示されます。[Transform] (変換) タブパネルの [Input sources] (入力ソース) フィールドには、「これは本当に長い名前です」という 1 つのエントリが表示されます。関連付けられた [Spark SQL aliases] (Spark SQL エイリアス) フィールドには、「MyDataSource」が表示されます。[Code block] (コードブロック) フィールドには、「myDataSource から * を選択」と表示されます。

    例えば、SQL 変換ノードの親ノードの名前が Rename Org PK field の場合、このデータセットに org_table という名前を関連付けることができます。その後、このエイリアスをノード名の代わりに SQL クエリで使用できます。

  5. 見出し [Code block] (コードブロック) の下にある テキスト入力フィールドで、SQL クエリを貼り付けるか、入力します。テキストフィールドには、SQL 構文のハイライトとキーワードの候補が表示されます。

  6. SQL 変換ノードを選択した状態で、[Output schema] (出力スキーマ) タブを選択してから、[Edit] (編集) を選択します。SQL クエリの出力フィールドを示す、列とデータ型を指定します。

    そのページの [Output schema] (出力スキーマ) セクションにある次のアクションを使用して、スキーマを指定します。

    • 列の名前を変更するには、その列の [Key] (キー) テキストボックス ([field] (フィールド) または [property key] (プロパティキー) とも示されます) にカーソルを置き、新しい名前を入力します。

    • 列のデータ型を変更するには、ドロップダウンリストから列の新しいデータ型を選択します。

    • トップレベルの新しい列をスキーマに追加するには、[Overflow] (オーバーフロー) ( 
                    A rectangle with an ellipsis (...) in the center
                  ) ボタンを選択して、[Add root key] (ルートキーの追加) をクリックします。新しい列がスキーマの先頭に追加されます。

    • スキーマから列を削除するには、キー名の右端にある削除アイコン ( 
                    An outline of a trash can
                  ) をクリックします。

  7. 出力スキーマの指定が完了したら、[Apply] (適用) を選択して変更を保存し、スキーマエディタを終了します。変更を保存しない場合は、[Cancel] (キャンセル) を選択して、スキーマエディタを編集します。

  8. (オプション) ノードおよび変換のプロパティを設定した後、ノードの詳細パネルの [Data preview] (データのプレビュー) タブを選択して、変更されたデータセットをプレビューできます。ジョブ内の任意のノードに対してこのタブを初めて選択すると、データにアクセスする IAM ロールを指定するよう求められます。この機能を使用するには費用がかかり、IAM ロールを指定するとすぐに請求が開始します。