製品をチェック

製品の情報と30日間無償トライアル

Amazon Athena 連携ソリューション 相談したい

チュートリアル:CData Amazon Athena BizTalk Adapter を使ったアップデートグラムの実行

Bitalk Adapter を使用して、アップデートグラムを実行し、Amazon Athena からの応答をファイルに書き込む単純なアプリケーションを作成します。

加藤龍彦
デジタルマーケティング

最終更新日:2021-12-03

こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。

CData BizTalk Adapter for AmazonAthena は、BizTalk のAmazon Athena でSQL コマンド、アップデートグラム、ストアドプロシージャを実行することを可能にします。ここでは、アップデートグラムを使用して、Amazon Athena を挿入するアプリケーションのウォークスルーについて説明します。

  1. 一方向のファイル受信場所はアップデートグラムを含むXML ドキュメントをピックアップします。
  2. ドキュメントは、アダプタ用に構成された要請応答送信ポートにルーティングされます。
  3. アダプタはコマンドを実行します。挿入の結果には、新しいレコードのId と、影響を受ける行が含まれています。
  4. Amazon Athena からの応答は、一方向のファイル送信ポートにルーティングされ、BizTalk メッセージをファイルに書き込みます。

サンプルアプリケーションを作成する

以下のセクションでは、サンプルアプリケーションの作成について説明します。

  1. スキーマとアップデートグラムインスタンスを生成する
  2. 受信ポートを構成する
  3. ファイルの受信場所を構成する
  4. 要請応答送信ポートにアダプタを構成する
  5. ファイルの送信ポートを構成する
  6. アプリケーションを介してBizTalk メッセージをルーティングするフィルタを作成する
  7. ロケーションとポートを登録し、有効にする
  8. アプリケーションログを表示する

スキーマとアップデートグラムインスタンスを生成する

Visual Studio のウィザードを使用することで、スキーマとアップデートグラムインスタンスを生成することができます。

  1. プロジェクトにアダプタを追加する
  2. 挿入スキーマを生成する
  3. アップデートグラムインスタンスを生成する

プロジェクトにアダプタを追加する

[Add Adapter]ウィザードを使用して、プロジェクトにアダプタを追加します。アダプタを使用して、挿入したいテーブルに関する[Customers]などのAmazon Athena メタデータをクエリします。

  1. [Solution Explorer]の[project]で右クリックし、[Add]->[Add Generated Items]と進みます。
  2. [resulting dialog box]の[Add Adapter Metadata]を選択します。
  3. 表示される[Add Adapter]ウィザードで、リストからCData BizTalk Adapter for AmazonAthena を選択します。
  4. [Port menu]では、選択を空白のままにします。構成済みアダプタの接続文字列を使用したい場合には、BizTalkアプリケーションから送信ポート、または受信場所を選択します。 CData Adapters in the Select Adapter wizard.(Salesforce is shown.)

挿入スキーマを生成する

Amazon Athena データを挿入するアップデートグラムを作成するためのテンプレートとしてスキーマを使用します。スキーマは、XMLリクエストと応答を定義する.xsd ファイルです。例として、挿入アップデートグラムを生成する方法を説明します。以下の手順に従って、update とdelete のアップデートグラムを生成できます。

  1. [Schema]ウィザードの[Connection String]ページで、認証資格情報とその他の接続プロパティを入力します。 The connection string used by the adapter.(Salesforce is shown.)
  2. 次のステップでは、[Send Port]オプションを選択します。
  3. [One-Way]オプションをオフにします。[One-Way]オプションは、返されたAffectedRows値など、アップデートグラムのアダプタからのすべての応答を無視します。新しく作成されたId の行も返されます。[One-Way]オプションを無効にすることで、Id の取得をサポートするアップデートグラムスキーマを取得できます。
  4. [Command Type] メニューで、アップデートグラムを選択します。 Schema options for a solicit-response send port.(Salesforce is shown.)
  5. [Insert]オプションを選択し、挿入したいテーブルとカラムを選択します。このチュートリアルは、Name とTotalDue を使用しています。

    Noteアップデートグラムを作成する際、挿入はスキーマに含ませたカラムに限定されます。

    Schema options that specify the table and columns that will be inserted into.(Salesforce is shown.)
  6. 概要ページで、定義した設定を確認し、[Finish]をクリックしてウィザードを閉じます。

アップデートグラムを生成する

このステップでは、後のステップでアダプタに送られるXML メッセージを作成します。[Solution Explorer]にある.xsd ファイルを右クリックし、[Generate Instance]をクリックしてアップデートグラムを作成します。アップデートグラムが保存される場所は、[Output]タブに表示されます。

アップデートグラムは、Amazon Athena から求められる応答を定義するよう構成されています。アップデートグラムの例や詳細については、アダプタのヘルプドキュメントをご覧ください。

The resulting updategram.(Salesforce is shown.)

受信ポートを構成する

アプリケーションに受信場所を追加するには、まず受信ポートを追加する必要があります。受信ポートは複数の受信場所からのデータを受け取ることができます。

  1. [BizTalk Server Administration Console]でアプリケーションを開きます。
  2. [Receive Ports]を右クリックし、[New]->[One-Way Receive Port]と進みます。受信ポートプロパティのダイアログが表示されます。
  3. 受信ポートの名前を入力します。
The Receive Port Send Port properties dialog.(Salesforce is shown.)

ファイル受信場所を構成する

静的な一方向のファイル受信場所は、アップデートグラムを含むBizTalk メッセージを作成します。

  1. [Receive Locations]を右クリックし、[New]->[One-Way Receive Location]と進みます。
  2. 新しい受信場所がメンバとなる受信ポートを選択します。[Receive Location Properties]ダイアログが表示されます。
  3. 受信場所の名前を入力します。
  4. [Transport Type]メニューで、[FILE]を選択します。
  5. [Configure]をクリックします。[File Transport Properties]ダイアログが表示されます。
  6. [Receive Folder]ボックスに、[DemoOutbound]のようなフォルダへのパスを入力します。受信場所はこのフォルダをスキャンし、[File mask]ボックスの条件に一致するファイルを探します。
  7. [Receive Location Properties]ダイアログの[Receive Pipeline]メニューで、デフォルトオプションの[PassThruReceive]を選択します。
The File Receive Location configured in the Receive Location properties dialog.

要請応答送信ポートで、Amazon Athena アダプタを構成する

コンフィギュレーションは、以下のステップで構成されています。

  1. 要請応答送信ポートを作成、構成する
  2. アダプタを構成する
  3. Amazon Athena への接続を構成する

要請応答送信ポートを作成、構成する

要請応答送信ポートを使用して、 アップデートグラムコマンドの結果を取得します。このチュートリアルでは、新しく挿入されたレコードのId がBizTalkで返されます。

  1. [BizTalk Administration Console]でアプリケーションを開きます。
  2. [Send Ports]を右クリックし、[New]->[Static Solicit-Response Send Port]を選択すると、送信ポートプロパティのダイアログが表示されます。
  3. 送信ポートの名前を入力します。
  4. [Transport Type]メニューで、CData.AmazonAthena を選択します。
The solicit-response send port after it has been configured.(Salesforce is shown.)

CData Amazon Athena アダプタを構成する

[Adapter Transport Properties]ダイアログで、アダプタが実行するコマンドを定義します。

  1. 送信ポートのプロパティで、[Configure]ボタンをクリックします。[Adapter Transport Properties]ダイアログが表示されます。
  2. [CommandType]プロパティで、アップデートグラムを選択します。
プロパティとその機能についての説明は、ヘルプドキュメントの[Adapter Configuration]を参照してください。 The Adapter configured to execute an updategram.(Salesforce is shown.)

Amazon Athena への接続を構成する

Amazon Athena への接続に必要な資格情報とその他のプロパティを設定します。

  1. [Adapter Transport]プロパティダイアログで、[Connection String]プロパティのボタンをクリックします。[Connection String Options]ダイアログが表示されます。
  2. 接続プロパティを入力してください。

    下は一般的な接続文字列です。

    AccessKey='a123';SecretKey='s123';Region='IRELAND';Database='sampledb';S3StagingDirectory='s3://bucket/staging/';

    Amazon Athena 接続プロパティの取得・設定方法

    Amazon Athena リクエストの認証には、アカウントの管理のクレデンシャルか、IAM ユーザーのカスタムPermission を設定します。 AccessKey にAccess Key Id、SecretKey にはSecret Access Key を設定します。

    AWS アカウントアドミニストレータとしてアクセスできる場合でも、AWS サービスへの接続にはIAM ユーザークレデンシャルを使用することが推奨されます。

    IAM ユーザーのクレデンシャル取得は以下のとおり:

    1. IAM コンソールにログイン。
    2. Navigation ペインで「ユーザー」を選択。
    3. ユーザーのアクセスキーを作成または管理するには、ユーザーを選択してから「セキュリティ認証情報」タブを選択。

    AWS ルートアカウントのクレデンシャル取得は以下のとおり:

    1. ルートアカウントの資格情報を使用してAWS 管理コンソールにサインイン。
    2. アカウント名または番号を選択し、表示されたメニューで「My Security Credentials」を選択。
    3. 「Continue to Security Credentials」をクリックし、「Access Keys」セクションを展開して、ルートアカウントのアクセスキーを管理または作成。

    EC2 インスタンスからの認証

    EC2 インスタンスからCData 製品を使用していて、そのインスタンスにIAM ロールが割り当てられている場合は、認証にIAM ロールを使用できます。 これを行うには、UseEC2Roles をtrue に設定しAccessKeySecretKey を空のままにします。 CData 製品は自動的にIAM ロールの認証情報を取得し、それらを使って認証します。

    AWS ロールとして認証

    多くの場合、認証にはAWS ルートユーザーのダイレクトなセキュリティ認証情報ではなく、IAM ロールを使用することをお勧めします。 代わりにRoleARN を指定してAWS ロールを使用できます。これにより、CData 製品は指定されたロールの資格情報を取得しようと試みます。 (すでにEC2 インスタンスなどで接続されているのではなく)AWS に接続している場合は、役割を担うIAM ユーザーのAccessKeySecretKey を追加で指定する必要があります。AWS ルートユーザーのAccessKey およびSecretKey を指定する場合、 ロールは使用できません。

    MFA での認証

    多要素認証を必要とするユーザーおよびロールには、MFASerialNumber およびMFAToken 接続プロパティを指定してください。 これにより、CData 製品は一時的な認証資格情報を取得するために、リクエストでMFA 認証情報を送信します。一時的な認証情報の有効期間 (デフォルトは3600秒)は、TemporaryTokenDuration プロパティを介して制御できます。

    Amazon Athena への接続

    AccessKeySecretKey プロパティに加え、DatabaseS3StagingDirectoryRegion を設定します。Region をAmazon Athena データがホストされているリージョンに設定します。S3StagingDirectory をクエリの結果を格納したいS3内のフォルダに設定します。

    接続にDatabase が設定されていない場合は、CData 製品はAmazon Athena に設定されているデフォルトデータベースに接続します。

  3. [Test Connection]をクリックして値を確認します。
接続プロパティとその機能の説明については、ヘルプドキュメントの[Connection String Options]チャプターを参照してください。 The connection properties for the adapter.(Salesforce is shown.)

ファイル送信ポートを構成する

ファイル送信ポートは、インサートから返されるId をファイルに書き込みます。以下のステップに従って一方向送信ポートを構成し、受信メッセージをファイルに書きこみます。

  1. [Send Ports]を右クリックし、[Static One-Way Send Port]をクリックします。
  2. [Type]メニューで、[FILE]を選択します。
  3. [Configure]をクリックします。
  4. [DemoInbound]のような、メッセージが書き込まれるフォルダへのパスを[Destination Folder]ボックスに入力します。
The file send port properties dialog.

アプリケーションを介してBizTalk メッセージをルーティングするフィルタを作成する

以下のステップに従って、アプリケーションで次の関連を定義するフィルタルールを作成します。

  • 要請応答送信ポートを、アップデートグラムを含むBizTalk メッセージと関連付けます。
  • ファイル送信ポートを、アップデートグラムの実行結果によって作成されたBizTalk メッセージと関連付けます。

  1. 要請応答送信ポートのプロパティで、[Filters]をクリックし、以下の値を設定します。

    • プロパティ…メニューから、[BTS.InboundTransportLocation]を選択します。
    • 値…一方向の受信場所のURLを入力します。(この例では、["C:\DemoOutbound\*.xml]を使用しています。)
    Filters for a solicit-response send port.
  2. 一方向送信ポートのプロパティで、[Filters]をクリックし、以下の値を設定します。

    • プロパティ…メニューから、[BTS.SPName]を選択します。
    • 値…要請応答送信ポートの(URL ではなく)名前を入力します。
    Filters for the one-way send port.

ロケーションとポートをエンリストして有効にする

BizTalk アプリケーションを起動するときに以下の手順に従い、アップデートグラムが受信場所によって確実に取得されるようにします。

  1. 要請応答送信ポートを右クリックし、[Start]をクリックします。これにより、送信ポートも登録されます。
  2. 一方向送信ポートを右クリックし、[Start]をクリックします。これにより、送信ポートも登録されます。
  3. 受信場所を右クリックし、[Enable]をクリックします。

受信場所用に構成したフォルダに、アップデートグラムを複製することができます。

一方向送信ポート用に構成したフォルダを開きます。このフォルダは、XML file の新しいId を含みます。メッセージは次の例のようになります。

<table xmlns="http://www.cdata.com/AmazonAthenaProvider" AffectedRows="1"> <row> <Id>0014000001XERBUAA5</Id> </row> </table>

アプリケーションログを表示する

アプリケーションログでエラーメッセージを表示することで、アプリケーションが正常に初期化されたことを素早く確認できます。ログを開くには、[Administration Console]のナビゲーションツリーで[Event Viewer (Local)]ノードを展開します。Windows ログを展開し、[Applications]を選択します。

発生したエラーのリストはここから入手可能です。ここには、システム上のすべてのアプリケーションのエラ-メッセージが含まれるため、エラーメッセージのソースを確認することが必要です。受信場所では、ソースが[CData BizTalk AmazonAthena Receive Adapter]である必要があります。エラーメッセージの詳細から、エラーの理由を知ることができます。

エラー解消のガイダンスについては、support@cdata.com/jp にお問い合わせください。

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。