ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
この記事では、CData BizTalk Adapter for AmazonAthena で実行できるアップデートグラムを作成します。設計したスキーマは、インサート、アップデート、デリートのアップデートグラムを作成するためのテンプレートとして使用します。
[Add Adapter] ウィザードから、アダプターをVisual Studio のBizTalk サーバープロジェクトに追加します。アダプターを使って、修正したいテーブルに関するAmazon Athena のメタデータをクエリします。
以下のステップに従って、Visual Studio のBizTalk サーバープロジェクトでスキーマを作成します。
AccessKey='a123';SecretKey='s123';Region='IRELAND';Database='sampledb';S3StagingDirectory='s3://bucket/staging/';
Amazon Athena リクエストの認証には、アカウントの管理のクレデンシャルか、IAM ユーザーのカスタムPermission を設定します。 AccessKey にAccess Key Id、SecretKey にはSecret Access Key を設定します。
AWS アカウントアドミニストレータとしてアクセスできる場合でも、AWS サービスへの接続にはIAM ユーザークレデンシャルを使用することが推奨されます。
IAM ユーザーのクレデンシャル取得は以下のとおり:
AWS ルートアカウントのクレデンシャル取得は以下のとおり:
EC2 インスタンスからCData 製品を使用していて、そのインスタンスにIAM ロールが割り当てられている場合は、認証にIAM ロールを使用できます。 これを行うには、UseEC2Roles をtrue に設定しAccessKey とSecretKey を空のままにします。 CData 製品は自動的にIAM ロールの認証情報を取得し、それらを使って認証します。
多くの場合、認証にはAWS ルートユーザーのダイレクトなセキュリティ認証情報ではなく、IAM ロールを使用することをお勧めします。 代わりにRoleARN を指定してAWS ロールを使用できます。これにより、CData 製品は指定されたロールの資格情報を取得しようと試みます。 (すでにEC2 インスタンスなどで接続されているのではなく)AWS に接続している場合は、役割を担うIAM ユーザーのAccessKeyと SecretKey を追加で指定する必要があります。AWS ルートユーザーのAccessKey およびSecretKey を指定する場合、 ロールは使用できません。
多要素認証を必要とするユーザーおよびロールには、MFASerialNumber およびMFAToken 接続プロパティを指定してください。 これにより、CData 製品は一時的な認証資格情報を取得するために、リクエストでMFA 認証情報を送信します。一時的な認証情報の有効期間 (デフォルトは3600秒)は、TemporaryTokenDuration プロパティを介して制御できます。
AccessKey とSecretKey プロパティに加え、Database、S3StagingDirectory、Region を設定します。Region をAmazon Athena データがホストされているリージョンに設定します。S3StagingDirectory をクエリの結果を格納したいS3内のフォルダに設定します。
接続にDatabase が設定されていない場合は、CData 製品はAmazon Athena に設定されているデフォルトデータベースに接続します。
接続プロパティの詳細は、ヘルプドキュメントの"BizTalk Configuration" チャプターを参照してください。
Noteアップデートグラムを作成する際、修正はスキーマに含ませたカラムに限定されます。
アップデートグラムスキーマの作成後、アップデートグラムを生成する.xsd ファイルを使用できます。.xsd ファイルを右クリックし、[Generate Instance]を選択します。このファイルは、アップデートグラムを手動で作成するテンプレートとして使用することもできます。以下は、インサート、アップデート、デリートそれぞれに生成されたアップデートグラムインスタンスの例です。
まず、インサートの一例です。このインスタンスでは、データの変化を指定するafter ブロックのみを扱います。
<ns0:parameters xmlns:ns0="http://www.cdata.com/jp/AmazonAthenaProvider">
<ns0:sync>
<ns0:before></ns0:before>
<ns0:after>
<ns0:Customers Name="Name_0" TotalDue="TotalDue_1" />
</ns0:after>
</ns0:sync>
</ns0:parameters>
次に、アップデートの一例です。このインスタンスでは、before ブロック(テーブルに存在するデータ)と、after ブロック(データの変化)の両方を扱います。
<ns0:parameters xmlns:ns0="http://www.cdata.com/jp/AmazonAthenaProvider">
<ns0:sync>
<ns0:before>
<ns0:Customers Id=001d000000YBRseAAH></ns0:Customers>
</ns0:before>
<ns0:after>
<ns0:Customers Name="Name_0" TotalDue="TotalDue_1" ></ns0:Customers>
</ns0:after>
</ns0:sync>
</ns0:parameters>
最後に、デリートの一例です。after ブロックは空になり、アイテムを除去していることを示します。
<ns0:parameters xmlns:ns0="http://www.cdata.com/jp/AmazonAthenaProvider">
<ns0:sync>
<ns0:before>
<ns0:Customers Id=001d000000YBRseAAH></ns0:Customers>
</ns0:before>
<ns0:after></ns0:after>
</ns0:sync>
</ns0:parameters>
Amazon Athena レコードのインサート、アップデート、デリートにアップデートグラムを使用するには、こちらのチュートリアルをご覧ください。