SQL を使用したバッチ取り込みの調査、トラブルシューティング、検証
作成対象:
- ユーザー
- 開発者
このドキュメントでは、取り込まれたバッチのレコードを SQL で検証および検証する方法を説明します。 このドキュメントでは、次の方法を説明します。
- データセットバッチメタデータへのアクセス
- バッチのクエリによるトラブルシューティングとデータ整合性の確保
前提条件
このドキュメントで説明する概念を理解しやすくするために、次のトピックに関する知識が必要です。
- データ取り込み:様々な方法やプロセスなど、データをExperience Platformに取り込む方法の基本については、 データ取り込みの概要を参照してください。
- バッチ取り込み:バッチ取り込みの基本概念については、 バッチ取り込み API の概要を参照してください。 特に、「バッチ」とは何か、およびExperience Platformのデータ取得プロセス内でどのように機能するかについて説明します。
- データセット内のシステムメタデータ:取り込んだデータを追跡およびクエリするためにシステムメタデータフィールドを使用する方法については、 カタログサービスの概要を参照してください。
- エクスペリエンスデータモデル(XDM):XDM スキーマと、それらがExperience Platformに取り込まれたデータの構造と形式を表し検証する方法について詳しくは 🔗 スキーマ UI の概要 および のスキーマ構成の基本」を参照してください。
データセットバッチメタデータへのアクセス
システム列(メタデータ列)がクエリ結果に含まれるようにするには、クエリエディターで SQL コマンド set drop_system_columns=false
を使用します。 SQL クエリセッションの動作を設定します。 新しいセッションを開始する場合、この入力を繰り返す必要があります。
次に、データセットのシステムフィールドを表示するには、SELECT all 文を実行して、データセットからの結果(例:select * from movie_data
)を表示します。 結果には、右側の _acp_system_metadata
と _ACP_BATCHID
に 2 つの新しい列が含まれます。 メタデータ列 _acp_system_metadata
と _ACP_BATCHID
は、取り込まれたデータの論理パーティションと物理パーティションを識別するのに役立ちます。
データがExperience Platformに取り込まれると、受信データに基づいて論理パーティションが割り当てられます。 この論理パーティションは _acp_system_metadata.sourceBatchId
で表されます。 この ID は、データバッチを処理および保存する前に、データバッチを論理的にグループ化して識別するのに役立ちます。
データが処理され、データレイクに取り込まれると、_ACP_BATCHID
で表される物理パーティションが割り当てられます。 この ID は、取り込まれたデータが存在するデータレイク内の実際のストレージパーティションを反映します。
SQL を使用して論理パーティションと物理パーティションを把握
データが取り込み後にどのようにグループ化され、配布されるかを理解するには、次の問合せを使用して、各論理パーティション(_acp_system_metadata.sourceBatchId
)の個別の物理パーティション(_ACP_BATCHID
)の数をカウントします。
SELECT _acp_system_metadata, COUNT(DISTINCT _ACP_BATCHID) FROM movie_data
GROUP BY _acp_system_metadata
このクエリの結果を次の画像に示します。
これらの結果は、システムがデータをバッチ化してデータレイクに保存する最も効率的な方法を決定するので、入力バッチの数が出力バッチの数と必ずしも一致しないことを示しています。
この例では、CSV ファイルをExperience Platformに取り込み、drug_checkout_data
というデータセットを作成したと想定しています。
この drug_checkout_data
ファイルは、35,000 件のレコードで構成される、深くネストされたセットです。 SQL 文 SELECT * FROM drug_orders;
を使用して、JSON ベースの drug_orders
データセット内のレコードの最初のセットをプレビューします。
次の画像は、ファイルとそのレコードのプレビューを示しています。
SQL を使用したバッチ取り込みプロセスに関するインサイトの生成
以下の SQL 文を使用して、データ取り込みプロセスが入力レコードをグループ化してバッチに処理する方法に関するインサイトを提供します。
SELECT _acp_system_metadata,
Count(DISTINCT _acp_batchid) AS numoutputbatches,
Count(_acp_batchid) AS recordcount
FROM drug_orders
GROUP BY _acp_system_metadata
クエリ結果は、次の画像のようになります。
結果は、データ取り込みプロセスの効率と動作を示しています。 レコードを組み合わせて重複排除する際に、それぞれ 2000、24000、9000 のレコードを含んだ 3 つの入力バッチが作成されましたが、残ったのは 1 つの一意のバッチのみです。
SQL を使用したバッチの検証
次に、SQL を使用してデータセットに取り込まれたレコードを検証および検証します。
バッチを取り込んだら、データを取り込んだデータセットの データセットアクティビティ タブ)に移動する必要があります。
Experience Platform UI の左側のナビゲーションで データセット を選択して、 データセット ダッシュボードを開きます。 次に、「参照 タブからデータセットの名前を選択して データセットアクティビティ 画面にアクセス ます。
データセットアクティビティ ビューが表示されます。 このビューには、選択したデータセットの詳細が表示されます。 表形式で表示される、取り込まれたバッチが含まれます。
使用可能なバッチのリストからバッチを選択し、右側の詳細パネルから バッチ ID をコピーします。
次に、次のクエリを使用して、そのバッチの一部としてデータセットに含まれているすべてのレコードを取得します。
SELECT * FROM movie_data
WHERE _acp_batchid='01H00BKCTCADYRFACAAKJTVQ8P'
LIMIT 1;
_ACP_BATCHID
キーワードは、 バッチ ID のフィルタリングに使用されます。
LIMIT
句は、表示される行数を制限する場合に便利ですが、フィルター条件の方が望ましいです。クエリエディターでこのクエリを実行すると、結果は 100 行に切り捨てられます。 クエリエディターは、プレビューと調査をすばやく行えるように設計されています。 最大 50,000 行を取得するには、DBVisualizer や DBeaver などのサードパーティツールを使用できます。
次の手順
このドキュメントを読むことで、データ取り込みプロセスの一環として、取り込んだバッチでレコードを検証および検証するための基本事項を学びました。 また、データセットのバッチメタデータへのアクセス、論理パーティションと物理パーティションの理解、SQL コマンドを使用した特定のバッチのクエリに関するインサイトも得ました。 この知識は、Experience Platformでのデータの整合性を確保し、データストレージを最適化するのに役立ちます。
次に、学習した概念を適用するためにデータ取り込みを練習する必要があります。 提供されたサンプルファイルまたは独自のデータを使用して、サンプルデータセットをExperience Platformに取り込みます。 まだ行っていない場合は、 データをAdobe Experience Platformに取り込む方法に関するチュートリアルをお読みください。
または、様々なデスクトップクライアントアプリケーションを使用してクエリサービスに接続し検証する 方法を学習してデータ分析機能を強化することもできます。