CData AWS Glue Connector のトライアル
CData JDBC ドライバーを使用して、CData AWS Glue Connector の機能をテストし、概念実証(PoC)を構築できます。
Date Entered: 3/19/2021 Last Updated: 6/9/2021
CData AWS Glue Connector は、AWS Marketplace からのサブスクリプション形式でのみ提供されています。Marketplace からサブスクリプションを契約する前に接続性をテストしたい場合は、同じデータソース用の CData JDBC ドライバーの無料トライアルをダウンロードできます。ドライバーを Amazon S3 バケットにアップロードし、接続プロパティを AWS Secrets Manager に保存し、AWS Glue Studio でカスタムコネクタを作成すれば、選択したデータソースへのライブ接続を使用して Glue ジョブを構築できます。概念実証が完了したら、AWS Marketplace から Glue Connector をサブスクリプション契約し、設定済みの Glue ジョブで新しいコネクタに切り替えるだけです。
必要な情報の収集
カスタムコネクタを作成し、Glue Studio でデータを操作するために必要な情報がいくつかあります。
- 選択したデータソースの JDBC URL(接続文字列)
- JDBC ドライバーの RTK(ランタイムキー)
- JDBC ドライバーのクラス名
- Glue ジョブを実行するための AWS IAM ロール
NOTE: この記事では、Salesforce をデータソースの例として使用しています。必要な接続プロパティや JDBC ドライバーのクラス名の詳細については、各 JDBC ドライバー のヘルプドキュメントを参照してください。
JDBC URL の構築
JDBC URL の構築には、JDBC ドライバーに組み込まれた接続文字列デザイナーを使用すると便利です。JAR ファイルをダブルクリックするか、コマンドラインから JAR ファイルを実行してください。
java -jar cdata.jdbc.salesforce.jar
接続プロパティを入力し、接続文字列をメモしておきましょう。
例として、Salesforce の一般的な接続文字列は以下のようになります。
jdbc:salesforce;User=myuser@domain.com;Password=mypassword;SecurityToken=mysecuritytoken;
RTK の取得
JDBC URL を完成させるには、ドライバーのランタイムキー(RTK)の値が必要です。RTK は サポートチーム から取得できます。RTK を受け取ったら、以下のように JDBC URL に追加します(Salesforce の例)。
jdbc:salesforce;User=myuser@domain.com;Password=mypassword;SecurityToken=mysecuritytoken;RTK=54321...12345
JDBC ドライバーのクラス名
JDBC ドライバーのクラス名は、各 JDBC ドライバーのヘルプドキュメントの「はじめに」->「接続の確立」セクションに記載されています。例として、Salesforce JDBC ドライバーのクラス名は cdata.jdbc.salesforce.SalesforceDriver です。
必要な情報を収集したら、データソースへの接続を使用した AWS Glue ジョブを構築する準備が整います。
IAM ロールの作成(または更新)
AWS Glue ジョブを作成する際、ジョブが使用する AWS Identity and Access Management(IAM)ロールを指定します。このロールには、ソース、ターゲット、スクリプト、一時ディレクトリ、AWS Glue Data Catalog オブジェクトなど、ジョブで使用するすべてのリソースへのアクセス権を付与する必要があります。また、AWS Glue からカスタムコネクタへのアクセス権も付与する必要があります。
AWS Glue ジョブの IAM ロールには、最低限以下のポリシーを追加してください。
- AWSGlueServiceRole(Glue Studio と Glue ジョブへのアクセス用)
- AmazonEC2ContainerRegistryReadOnly(下記で作成するカスタムコネクタへのアクセス用)
Amazon S3 に保存されているデータにアクセスする場合は、以下を追加します。
- AmazonS3FullAccess(Amazon S3 の読み書き用)
また、AWS Secrets Manager を使用して機密性の高い接続プロパティを保存するため(詳細は後述)、Glue ジョブに必要な特定のシークレットへのアクセスを許可する、以下のようなインラインポリシーを追加する必要があります。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"secretsmanager:GetResourcePolicy",
"secretsmanager:GetSecretValue",
"secretsmanager:DescribeSecret",
"secretsmanager:ListSecretVersionIds"
],
"Resource": [
"arn:aws:secretsmanager:us-west-2:111122223333:secret:aes128-1a2b3c",
"arn:aws:secretsmanager:us-west-2:111122223333:secret:aes192-4D5e6F",
"arn:aws:secretsmanager:us-west-2:111122223333:secret:aes256-7g8H9i"
]
}
]
}
AWS Glue Studio での CData JDBC ドライバーの使用
AWS Glue Studio で CData JDBC ドライバーを使用するには、ドライバーを Amazon S3 にアップロードし、カスタムコネクタと接続を作成し、Glue ジョブを作成します。
CData JDBC ドライバーのアップロード
- Amazon S3 コンソールを開きます
- 既存のバケットを選択するか、新しいバケットを作成します
- 「アップロード」をクリックします
- ドライバーのインストール先の lib ディレクトリにある JAR ファイル(例:cdata.jdbc.salesforce.jar)を選択します
接続プロパティを Secrets Manager に保存
- AWS Secrets Manager コンソールを開きます
- 「新しいシークレットを保存する」をクリックします
- 「その他のシークレットタイプ」を選択し、JDBC URL の各接続プロパティと値(RTK を含む)を行ごとに追加します。
- 「次へ」をクリックします
- シークレットに名前を付け(例:CDataSalesforceSecret)、「次へ」をクリックします
- 認証情報のローテーションを無効にし、「次へ」をクリックします
- 内容を確認してシークレットを保存します
カスタムコネクタの作成
- AWS Glue Studio コンソールを開きます
- 「コネクタ」に移動し、「カスタムコネクタを作成」をクリックします
- カスタムコネクタのプロパティを入力します。
- コネクタ S3 URL:S3 を参照し、先ほどアップロードした .jar ファイルを選択します(.jar ファイルを含むバケットではなく、実際のファイルを選択してください)
- 名前:一意の名前(例:CData Salesforce Connector)
- コネクタタイプ:JDBC(デフォルト)
- クラス名:ドライバーのクラス名(例:cdata.jdbc.salesforce.SalesforceDriver)
- JDBC URL ベース:
JDBC URL は AWS Glue Studio 用に特定のフォーマットで指定する必要があります。URL には、接続プロパティ名(例:「User」)と値のプレースホルダーのキーバリューペアを含めます。プレースホルダーはドル記号($)と中括弧({...})でエスケープします(例:${User})。プレースホルダー内の値は、AWS シークレットで設定した各プロパティと同じ値を使用します。上記の AWS シークレットに対応する JDBC URL ベースは以下のようになります。
jdbc:salesforce:User=${User};Password=$Password};SecurityToken=${SecurityToken};RTK=${RTK} - URL パラメータ区切り文字:セミコロン(;)
- 「コネクタを作成」をクリックします
接続の作成(カスタムコネクタから)
コネクタを作成したら、次の手順で接続を作成します。
- AWS Glue Studio コネクタコンソールからカスタムコネクタをクリックします
- 「接続を作成」をクリックします
- 接続プロパティを入力します。
- 名前:一意の名前(例:cdata-jdbc-salesforce)
- 接続認証情報タイプ:「default」を選択します(接続 URL プレビューに上記の JDBC URL ベースが表示されます)
- AWS シークレット:先ほど作成した AWS シークレットを選択します
NOTE: 接続プロパティのフィールドが表示されますが、これらは空のままにしておきます。値は AWS シークレットから取得されます。
- 「接続を作成」をクリックします
Glue ジョブの作成
接続を作成したら、次の手順でジョブを作成します。
- Glue Studio の「接続」で、作成した接続を選択します
- 「ジョブを作成」をクリックします
ビジュアルジョブエディタが表示されます。接続から派生した新しいソースノードがジョブグラフに表示されます。右側のノード詳細パネルでは、ユーザー入力用の「ソースプロパティ」タブが選択されています。
ソースノードプロパティの設定
「ソースプロパティ」タブでデータソースへの接続のアクセスオプションを設定できます。詳細については AWS Glue Studio のドキュメントを参照してください。ここでは簡単なウォークスルーを説明します。
- ビジュアルジョブエディタで、コネクタのソースノードが選択されていることを確認します。右側のノード詳細パネルで「ソースプロパティ」タブを選択します(まだ選択されていない場合)。
- 「接続」フィールドには、Marketplace コネクタに関連付けられた接続の名前が自動的に入力されます。
- データソース内のデータの場所に関する情報を入力します。データソースからデータを取得するためのソーステーブル名またはクエリを指定します。クエリの例:SELECT * FROM Account
- データソースから変換ノードに情報を渡すために、AWS Glue Studio はデータのスキーマを把握する必要があります。「スキーマビルダーを使用」を選択して、スキーマをインタラクティブに指定します。
- 必要に応じて残りのオプションフィールドを設定します。以下を設定できます。
- パーティション情報 - データソースからの読み取り操作を並列化するため
- データ型マッピング - ソースデータで使用されているデータ型を AWS Glue がサポートするデータ型に変換するため
- フィルター述語 - データソースからデータのサブセットを選択するため
- ノードプロパティパネルの「出力スキーマ」タブを選択すると、このノードで生成されるスキーマを確認できます。
ジョブの編集、保存、実行
ジョブグラフのノードを追加・編集してジョブを編集します。詳細については「AWS Glue Studio での ETL ジョブの編集」を参照してください。
ジョブの編集が完了したら、ジョブプロパティを入力します。
- ビジュアルグラフエディタの上にある「ジョブのプロパティ」タブを選択します。
- カスタムコネクタを使用する場合は、以下のジョブプロパティを設定します。
- 名前:ジョブ名を入力します
- IAM ロール:前述の必要な権限を持つ IAM ロールを選択(または作成)します
- タイプ:「Spark」を選択します
- Glue バージョン:「Glue 2.0 - Supports spark 2.4, Scala 2, Python 3」を選択します
- 言語:「Python 3」を選択します
- その他のパラメータはデフォルト値を使用します。ジョブパラメータの詳細については、AWS Glue Developer Guide の「ジョブプロパティの定義」を参照してください
- ページ上部の「保存」をクリックします。
- 「ジョブが正常に作成されました」というメッセージが緑色のバナーで表示されます。
- ジョブを正常に保存したら、「実行」をクリックしてジョブを実行できます。
- ジョブの生成されたスクリプトを表示するには、ビジュアルエディタの上部にある「スクリプト」タブを選択します。「ジョブ実行」タブには、ジョブの実行履歴が表示されます。ジョブ実行の詳細については、「最近のジョブ実行の情報を表示」を参照してください。
これで、Glue ジョブからデータソースへのライブ接続が確立されました。AWS エコシステムと CData が提供するすべてのデータソース間でデータフローを実行するジョブを設定できます。概念実証の構築や、必要に応じたコネクタのテストが可能です。
Glue Connector への切り替え
AWS Glue Studio での接続性と使用方法をテストしたら、AWS Glue Connector をサブスクリプション契約できます。CData AWS Glue Connector for Salesforce の完全なデプロイガイドがありますが、この原則はすべての CData AWS Glue Connector に適用できます。CData AWS Glue Connector をデプロイして接続を設定したら、Glue ジョブを開き、カスタムコネクタを使用しているソースノードを選択して、CData AWS Glue Connector と対応する接続に変更できます。
We appreciate your feedback. If you have any questions, comments, or suggestions about this entry, please contact our support team at support@cdata.co.jp.