# サンプルユースケース - データ変更のキャプチャ
毎日、ソースシステムで新しいデータが利用可能になり、それを宛先システムに取り込む必要があります。ソースアプリケーションは、新しいまたは更新されたデータだけでなく、データの全抽出しか提供できないことがよくあります。これにより、受信データと過去のデータを一致させ、両者の間の差異のみを比較して抽出することが困難になります。
SQL変換を使用すると、ユーザーは履歴データと受信データを簡単に比較し、差分のみを取得することができます。履歴データはWorkato FileStorage内に永久的に存在し、外部データベースへの依存を排除することができます。受信データは、ビジネスアプリケーション、データベース、ファイルシステムから取得できます。
SQL変換は、抽出データを取得し、永続化された履歴データと比較し、変更されたデータを出力します。このユーティリティは、数百万行のデータを簡単に処理することができるほど強力です。
# サンプルレシピ:オンプレミスシステムから抽出データを取得し、変更されたデータをS3にロードする
以下のシナリオを考えてみましょう。ある会社が次のビジネスプロセスを持っているとします。
毎日、会社はすべての連絡先を抽出し、CSVデータファイルとしてオンプレミスシステム上で利用可能にします。会社はこの抽出から新しく追加された連絡先のみを取得し、S3などのクラウドストレージ宛に送信したいと考えています。その後、別のWorkatoレシピがここからこの情報を取得し、ターゲットマーケティングを実行します。
連絡先のボリュームが非常に大きい(約150万レコード)ため、会社の典型的なワークフローは多くのステップで構成されています。Workatoレシピはデータをソースから抽出し、会社はすべての連絡先を外部データベースに保存し、新しい抽出を別のテーブルにロードし、2つのテーブルの差分を見つけて変更されたデータを取得する必要があります。その後、データをWorkatoに戻してさらなる処理を行う必要があります。
このプロセスは非常に手間がかかり、外部データベースシステムに依存性を作ります。
SQL変換を使用すると、同じワークフローを3つの簡単なステップで実現できます!
レシピワークフロー
レシピトリガーで、データを抽出するソース(オンプレミスシステム)を設定し、新しい受信抽出を検索するように設定します。
SQL変換コネクタのQuery CSVアクションを設定します。このアクションは、抽出データと履歴データを比較し、変更されたデータを出力します。
データをS3などのクラウドストレージ宛に送信します。
# データ変更のキャプチャにSQL変換を活用する方法
このセクションでは、Query CSVアクションのさまざまなセクションの設定方法について説明します。これにより、SQL変換を使用してデータ変更をキャプチャすることができます。
一緒に進める
このレシピリンクを参照して、サンプルレシピを変更して独自のワークフローに合わせることができます。
# データソースの設定
SQL変換がクエリを実行する異なるデータソースを接続します。
ソース#1を接続するには、次のフィールドに入力します。この例では、ソース#1はオンプレミスシステムからの受信抽出です。
データソース名
データソース名に意味のある名前を指定します。例えばcontacts_extractなどです。
データソースタイプ
データソースタイプを選択します。この例では、上流のオンプレミスシステムからのCSVデータが入ってくるため、CSVコンテンツストリームです。
CSVストリーム入力
データソースをCSVコンテンツストリームとして設定した後、CSVストリーム入力を設定できます。これは、オンプレミスファイルトリガーからのファイルコンテンツを渡す場所です。
データスキーマ
データスキーマを設定します。これは、いくつかのサンプル連絡先データを含むCSVファイルをインポートすることで簡単に行うことができます。
ソース#1、受信データ抽出の設定
CSV固有のオプションを設定します。これには、次のフィールドが含まれます。
CSVヘッダー行を無視する
受信データにヘッダーカラムがある場合に、それを無視してデータの一部として考慮しないように指定できます。
カラム区切り記号
CSVファイルで使用される区切り記号を選択します。利用可能なオプションには、,(カンマ)、;(セミコロン)などがあります。
Source 2に接続するには、以下のフィールドに入力してください。この例では、このソースは過去のデータを指します。このデータは、FileStorageという、Workatoの内部永続ファイルストレージシステムを使用して簡単に保存および処理することができます。
データソース名
データソース名に意味のある名前を付けてください。例えば、contacts_historicalとします。
データソースの種類
データソースの種類を選択してください。この例では、FileStorageファイルです。
FileStorageファイルのパス
過去のデータファイルがFileStorage内のどのパスにあるかを指定してください。
データスキーマ
データスキーマを設定してください。これは、いくつかのサンプル連絡先データを含むCSVファイルをインポートすることで簡単に行うことができます。スキーマは、ソースから左から右に来る列の順序に一致します。
Source #2、過去のデータを設定する
CSV固有のオプションを設定します。以下のフィールドが含まれます。
CSVヘッダー行を無視する
入力データに見出し列がある場合、それを無視してデータの一部として考慮しないように指定できます。
列区切り記号
CSVファイルで列を区切るために使用される区切り記号を選択してください。利用可能なオプションには、,(カンマ)、;(セミコロン)などがあります。
# クエリの設定
次に、データソース上で動作し、変換された出力を生成するクエリを設定します。
この例では、連絡先抽出から新しいレコードのみを取得することが目的です。したがって、クエリは2つのデータソース(contacts_extractとcontacts_historical)のContacts_Id
を比較し、contacts_extractに存在するがcontacts_historicalに存在しないレコードを返します。これにより、Workatoは過去のデータに存在しない新しく作成された連絡先を返します。
# 出力の設定
最後に、出力の形式を定義するために以下のフィールドを設定します。
この例では、新しいレコードのデータをS3に送信します。
以下のフィールドに入力してください。
出力の種類
出力の種類を選択してください。CSVコンテンツストリームを使用して、ストリーム可能なデータピルとしてコンテンツを下流のアクションに共有します。
ヘッダー行を含める
データの列名をファイルのヘッダー行として追加する場合はYesに設定します。これは、レポートの生成にファイルを使用する場合に便利です。デフォルト値はNoです。
列区切り記号
CSVファイルで列を区切るために使用される区切り記号を選択してください。利用可能なオプションには、,(カンマ)、;(セミコロン)などがあります。
Amazon S3にファイルをアップロードアクションを選択します。
以下のフィールドを設定してください。
バケット名
バケットの正確な大文字と小文字を区別した名前。
オブジェクト名
オブジェクト/ファイルの正確な大文字と小文字を区別した名前。
リージョン
リージョンを見つけるには、S3でバケット > プロパティ > 静的ウェブサイトホスティングに移動し、
エンドポイントURL
でリージョンを確認します。例えば、us-west-2
です。コンテンツ
アップロードするファイルの内容。Step 2 Query CSV dataアクションからCVS contentsデータピルを渡します。
加速エンドポイントを使用する
デフォルトはfalseです。加速エンドポイントを使用する場合はtrueに設定します。S3でバケット > プロパティ > 転送の加速に移動して、加速エンドポイントが有効になっているかどうかを確認します。
# 次に読む
Last updated: 2024/2/13 16:59:53