カスタムコネクタを使用したジョブのオーサリング - AWS Glue

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

カスタムコネクタを使用したジョブのオーサリング

AWS Glue Studio では、データソースノードとデータターゲットノードの両方に対し、コネクタと接続を使用できます

データソースに対しコネクタを使用するジョブを作成する

新しいジョブの作成時に、データソースとデータターゲットで使用するコネクタを選択できます。

データソースまたはデータターゲットに対しコネクタを使用するジョブを作成するには
  1. にサインイン AWS Management Console し、 でAWS Glue Studioコンソールを開きますhttps://console.aws.amazon.com/gluestudio/

  2. [Connectors] (コネクタ) ページの [Your connections] (使用する接続)リソースリストで、ジョブで使用する接続を選択してから、[Create job] (ジョブを作成) をクリックします。

    または、AWS Glue Studio Glue Studio の [Jobs] (ジョブ) ページの [Create job] (ジョブを作成) で、[Source and target added to the graph] (グラフに追加されたソースとターゲット) を選択します。[Source] (ソース) ドロップダウンリストから、ジョブで使用するカスタムコネクタを選択します。また、[Target] (ターゲット) のためにコネクタを選択することもできます。

    ここに示す図は、[Source] (ソース) ドロップダウンリストが選択された [Jobs] (ジョブ) ページのスクリーンショットです。このスクリーンショットでは、ジョブに対して選択できる、コネクタなど各種のデータソースを表示しています。
  3. [Create] (作成) をクリックして、ビジュアルジョブエディタを開きます。

  4. コネクタを使用するノードのソースプロパティを設定する」 にある説明に従い、データソースノードを設定します。

  5. 「」で説明されているように、変換、追加のデータストア、およびデータターゲットを追加して、ETLジョブの作成を続行しますでのビジュアルETLジョブの開始 AWS Glue Studio

  6. ジョブのプロパティを変更する」のように、ジョブのプロパティを設定して、ジョブの実行環境をカスタマイズします。

  7. このジョブを保存して、実行します。

コネクタを使用するノードのソースプロパティを設定する

データソース用にコネクタを使用するジョブを作成すると、ビジュアルジョブエディタには、コネクタ用に設定されたデータソースのノードを含むジョブグラフが表示されます。このノードには、データソースのプロパティを設定する必要があります。

コネクタを使用するデータソースノードのプロパティを設定するには
  1. ジョブグラフでコネクタのデータソースノードを選択するか、新しいノードを追加して [Node type] (ノードタイプ) でコネクタを選択します。次に、右側のノードの詳細パネルで、[Data source properties] (データソースのプロパティ) タブを選択します (まだ選択されていない場合)。

    ここに示すスクリーンショット画像では、AWS Glue Studio のビジュアルジョブエディタページで、グラフ内のデータソースノードが選択されています。右側の [Data source properties] (データソースのプロパティ) タブが選択されています。データソースのプロパティで表示されるフィールドは、接続 (使用可能な接続のドロップダウンリストとその隣の [Refresh] (更新) ボタン)、および [Add schema button] (スキーマを追加する) ボタンです。追加的な [Connection options] (接続オプション) セクションは、折りたたまれた状態で表示されます。
  2. [Data source properties] (データソースのプロパティ) タブで、このジョブに使用する接続を選択します。

    各接続タイプに必要な追加情報を入力します。

    JDBC
    • データソース入力タイプ : テーブル名またはSQLクエリをデータソースとして指定します。選択した選択に応じて、以下の追加情報を設定する必要があります。

      • [Table name] (テーブル名): データソース内のテーブルの名前。データソースがテーブル という用語を使用しない場合は、カスタムコネクタの使用情報 ( で入手可能) で示されているように、適切なデータ構造の名前を指定します AWS Marketplace。

      • [Filter predicate] (フィルター述語): データソースを読み取る際に使用する条件句。これは、データのサブセットを取得するために使用される、WHERE 句と類似しています。

      • クエリコード : データソースから特定のデータセットを取得するために使用するSQLクエリを入力します。基本的なSQLクエリの例は次のとおりです。

        SELECT column_list FROM table_name WHERE where_clause
    • [Schema] (スキーマ): AWS Glue Studio がデータソースにアクセスする際には、Data Catalog テーブルからメタデータ情報を取得する代わりに、接続内に格納された情報を使用します。このため、データソースのスキーマメタデータを指定する必要があります。[Add schema] (スキーマを追加) をクリックして、スキーマエディタを開きます。

      スキーマエディタの使用方法については、「カスタム変換ノードでスキーマを編集する」を参照してください。

    • [Partition column] (パーティション列): (オプション) データの読み取りをパーティション化するには、[Partition column] (パーティション列)、[Lower bound] (下限)、[Upper bound] (上限)、および [Number of partitions] (パーティションの数) を、それぞれ指定します。

      lowerBound および upperBound 値は、パーティションのストライドを決定するために使用されます (テーブル内の行のフィルタリングには使用しません)。返されるテーブル内のすべての行は、パーティション化されています。

      注記

      列のパーティショニングは、データの読み取りに使用されるクエリに対し、さらにパーティショニング条件を追加します。テーブル名の代わりにクエリを使用する場合は、指定されたパーティショニング条件でクエリが動作することを確認する必要があります。例:

      • "SELECT col1 FROM table1" の形式のクエリでパーティション列を使用する場合、末尾に WHERE 句を追加してそのクエリをテストします。

      • クエリを "SELECT col1 FROM table1 WHERE col2=val" 形式で行っている場合、AND とパーティション列を使用する式を使用して、WHERE 句を拡張することでそのクエリをテストします。

    • データ型キャスト: データソースが で利用できないデータ型を使用している場合はJDBC、このセクションを使用して、データソースのデータ型をデータJDBC型に変換する方法を指定します。データ型の変換方法には、最大 50 種類までを指定できます。データソース内で同じデータ型を使用しているすべての列は、同じ方法で変換されます。

      例えば、データソースに Float データ型を使用する 3 つの列があり、Floatデータ型を JDBC String データ型に変換する必要があると指定した場合、Floatデータ型を使用する 3 つの列はすべてStringデータ型に変換されます。

    • ジョブのブックマークキー: ジョブのブックマークは、AWS Glue が状態情報を保持することと、古いデータの再処理を防ぐことを助けます。ブックマークキーとして 1 つ以上の列を指定します。 AWS Glue Studioは、ブックマークキーを使用して、ETLジョブの前回の実行中に既に処理されたデータを追跡します。カスタムブックマークキーに使用する列は、厳密に単調に増加または減少する必要がありますが、そこにギャップを含むことは可能です。

      ブックマークキーを複数入力した場合は、それらは結合され単一の複合キーを形成します。複合ジョブブックマークキーには、重複する列を含めることはできません。ブックマークキーを指定しない場合、AWS Glue Studio はデフォルトでプライマリキーをブックマークキーとして使用します。ただし、そのプライマリキーが連続して (ギャップなく) 増減することが条件です。ジョブブックマークのプロパティでは有効になっているものの、テーブルにプライマリキーがない場合には、カスタムジョブブックマークキーを指定する必要があります。この指定を行わないと、デフォルトとして使用するプライマリキーの検索が失敗し、ジョブの実行も失敗します。

    • [Job bookmark keys sorting order] (Job ブックマークキーの並べ替え順序): キー値を、連続的に増加させるか減少させるかを選択します。

    Spark
    • [Schema] (スキーマ): AWS Glue Studio がデータソースにアクセスする際には、Data Catalog テーブルからメタデータ情報を取得する代わりに、接続内に格納された情報を使用します。このため、データソースのスキーマメタデータを指定する必要があります。[Add schema] (スキーマを追加) をクリックして、スキーマエディタを開きます。

      スキーマエディタの使用方法については、「カスタム変換ノードでスキーマを編集する」を参照してください。

    • [Connection options:] (接続オプション): 追加の接続情報やオプションを提供するために、必要に応じて追加のキーと値のペアを入力します。例えば、データベース名、テーブル名、ユーザー名、パスワードを入力します。

      例えば、 の場合 OpenSearch、「」で説明されているように、次のキーと値のペアを入力します チュートリアル: Elasticsearch 向けの AWS Glue コネクタを使用する

      • es.net.http.auth.user : username

      • es.net.http.auth.pass : password

      • es.nodes : https://<Elasticsearch endpoint>

      • es.port : 443

      • path: <Elasticsearch resource>

      • es.nodes.wan.only : true

    使用する最小接続オプションの例については、 のサンプルテストスクリプト「.MinimalSparkConnectorTestscala」を参照してください。このスクリプトは GitHub、通常接続で提供する接続オプションを示しています。

    Athena
    • [Table name] (テーブル名): データソース内のテーブルの名前。Athena-CloudWatch logs からの読み取りにコネクタを使用している場合は、テーブル名 を入力しますall_log_streams

    • [Athena schema name:] (Athena のスキーマ名): テーブルを含むデータベースに対応する、Athena データソース内のスキーマを選択します。Athena-CloudWatch logs からの読み取りにコネクタを使用している場合は、 のようなスキーマ名を入力します/aws/glue/name

    • [Schema] (スキーマ): AWS Glue Studio がデータソースにアクセスする際には、Data Catalog テーブルからメタデータ情報を取得する代わりに、接続内に格納された情報を使用します。このため、データソースのスキーマメタデータを指定する必要があります。[Add schema] (スキーマを追加) をクリックして、スキーマエディタを開きます。

      スキーマエディタの使用方法については、「カスタム変換ノードでスキーマを編集する」を参照してください。

    • [Additional connection options] (その他の接続オプション): 他の接続情報やオプションを提供する際には、必要に応じて追加のキーと値のペアを入力します。

    例については、/https://github.com/aws-samples/aws-glue-samplestree/master// DevelopmentGlueCustomConnectors/Athena にある README.md ファイルを参照してください。このドキュメント内に示す手順では、サンプルコードにより、必要最小限の接続オプション (tableNameschemaName、および className) を使用しています。コード例では、これらのオプションを optionsMap 変数の一部として指定しており、それらを実際に指定することで接続を使用できるようになります。

  3. (オプション) 必要な情報を指定した後は、[Output schema] (出力スキーマ) タブを選択することで、出力されたデータソース用のデータスキーマを、ノードの詳細パネルに表示できるようになります。このタブに表示されるスキーマは、ジョブグラフに追加される任意の子ノードによって使用されます。

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

コネクタを使用するノードのターゲットプロパティの設定

データターゲットタイプにコネクタを使用する場合は、データターゲットノードのプロパティを設定する必要があります。

コネクタを使用するデータターゲットノードでプロパティを設定するには
  1. ジョブグラフで、コネクタのデータターゲットノードを選択します。次に、右側のノードの詳細パネルで、[Data target properties] (データターゲットのプロパティ) タブを選択します (選択されていない場合)。

  2. [Data target properties] (データターゲットのプロパティ) タブで、ターゲットへの書き込みに使用する接続を選択します。

    各接続タイプに必要な追加情報を入力します。

    JDBC
    • [Connection] (接続): コネクタで使用する接続を選択します。接続の作成方法については、「コネクタ用の接続を作成する」を参照してください。

    • [Table name] (テーブル名): データターゲット内のテーブルの名前。データターゲットがテーブル という用語を使用しない場合は、カスタムコネクタの使用情報 ( で入手可能) で示されているように、適切なデータ構造の名前を指定します AWS Marketplace。

    • [Batch size] (バッチサイズ) (オプション): 1 回のオペレーションでターゲットテーブルに挿入する、行数またはレコード数を入力します。デフォルト値は 1000 行です。

    Spark
    • [Connection] (接続): コネクタで使用する接続を選択します。以前に接続を作成していない場合は、[Create connection] (接続を作成する) をクリックして作成します。接続の作成方法については、「コネクタ用の接続を作成する」を参照してください。

    • [Connection options:] (接続オプション): 追加の接続情報やオプションを提供するために、必要に応じて追加のキーと値のペアを入力します。データベース名、テーブル名、ユーザー名、パスワードを入力することもできます。

      例えば、 の場合 OpenSearch、「」で説明されているように、次のキーと値のペアを入力します チュートリアル: Elasticsearch 向けの AWS Glue コネクタを使用する

      • es.net.http.auth.user : username

      • es.net.http.auth.pass : password

      • es.nodes : https://<Elasticsearch endpoint>

      • es.port : 443

      • path: <Elasticsearch resource>

      • es.nodes.wan.only : true

    使用する最小接続オプションの例については、 のサンプルテストスクリプト「.MinimalSparkConnectorTestscala」を参照してください。このスクリプトは GitHub、通常接続で提供する接続オプションを示しています。

  3. 必要な情報を指定した後は、[Output schema] (出力スキーマ) タブを選択することで、出力されたデータソース用のデータスキーマを、ノードの詳細パネルに表示できるようになります。