BigQuery でエンティティ解決を構成して使用する
このドキュメントでは、エンティティ解決のエンドユーザー(以下、エンドユーザー)と ID プロバイダがエンティティ解決を実装する方法について説明します。
エンドユーザーの場合は、このドキュメントを使用して、ID プロバイダに接続し、プロバイダのサービスを利用してレコードを照合できます。ID プロバイダの場合は、このドキュメントを使用して、Google Cloud Marketplace のエンドユーザーと共有するサービスを設定および構成できます。
エンドユーザーのワークフロー
以降のセクションでは、エンドユーザーが BigQuery でエンティティ解決を構成する方法について説明します。全体的な手順については、エンティティ解決のアーキテクチャをご覧ください。全体の手順がビジュアルに表現されています。
始める前に
- ID プロバイダに連絡し、関係を確立します。BigQuery は、LiveRamp と TransUnion によるエンティティ解決をサポートしています。
- ID プロバイダから次の項目を取得します。
- サービス アカウント認証情報
- リモート関数のシグネチャ
- プロジェクトに次の 2 つのデータセットを作成します。
- 入力データセット
- 出力データセット
必要なロール
エンティティ解決ジョブの実行に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
ID プロバイダのサービス アカウントが入力データセットを読み取り、出力データセットに書き込む場合:
- 入力データセットに対する BigQuery データ閲覧者(
roles/bigquery.dataViewer) -
出力データセットに対する BigQuery データ編集者(
roles/bigquery.dataEditor)
- 入力データセットに対する BigQuery データ閲覧者(
ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
エンティティの変換または解決
個々の ID プロバイダでの手順については、以降のセクションをご覧ください。
LiveRamp
前提条件
- BigQuery で LiveRamp Embedded Identity を構成する。詳しくは、BigQuery での LiveRamp Embedded Identity の有効化をご覧ください。
- LiveRamp と連携して、Embedded Identity で使用する API 認証情報を有効にする。詳しくは、認証をご覧ください。
設定
LiveRamp Embedded Identity を初めて使用する場合は、次の手順が必要です。設定の完了後は、実行間で入力テーブルとメタデータ テーブルのみを変更する必要があります。
入力テーブルを作成する
入力データセットにテーブルを作成します。テーブルに RampID、ターゲット ドメイン、ターゲット タイプを入力します。詳細と例については、Input Table Columns and Descriptions をご覧ください。
メタデータ テーブルを作成する
メタデータ テーブルは、BigQuery での LiveRamp Embedded Identity の実行を制御するために使用します。入力データセットにメタデータ テーブルを作成します。メタデータ テーブルに、クライアント ID、実行モード、ターゲット ドメイン、ターゲット タイプを入力します。詳細と例については、Metadata Table Columns and Descriptions をご覧ください。
LiveRamp とテーブルを共有する
LiveRamp Google Cloud サービス アカウントに、入力データセット内のデータを表示して処理するためのアクセス権を付与します。詳細と例については、Share Tables and Datasets with LiveRamp をご覧ください。
埋め込み ID ジョブを実行する
BigQuery で LiveRamp を使用して埋め込み ID ジョブを実行する手順は次のとおりです。
- ドメインでエンコードされたすべての RampID が入力テーブルに含まれていることを確認します。
- ジョブを実行する前に、メタデータ テーブルが正確であることを確認します。
- ジョブプロセスのリクエストについては、LiveRampIdentitySupport@liveramp.com にお問い合わせください。入力テーブル、メタデータ テーブル、出力データセットのプロジェクト ID、データセット ID、テーブル ID(該当する場合)を含めます。詳しくは、Notify LiveRamp to Initiate Transcoding をご覧ください。
通常、結果は 3 営業日以内に出力データセットに配信されます。
LiveRamp のサポート
サポートに関する問題については、LiveRamp Identity サポートにお問い合わせください。
LiveRamp の課金
LiveRamp は、エンティティ解決のための課金を処理します。
TransUnion
前提条件
- サービスにアクセスするための契約を締結するには、TransUnion Cloud サポートにお問い合わせください。Google Cloud プロジェクト ID、入力データ型、ユースケース、データ量の詳細を入力します。
- TransUnion Cloud Support は、 Google Cloud プロジェクトでサービスを有効にし、利用可能な出力データを含む詳細な実装ガイドを共有します。
設定
BigQuery 環境で TransUnion の TruAudience Identity Resolution and Enrichment サービスを使用する場合は、次の手順が必要です。
外部接続を作成する
Vertex AI リモートモデル、リモート関数、BigLake(Cloud リソース)タイプの外部データソースへの接続を作成します。この接続を使用して、Google Cloud アカウントから TransUnion Google Cloud アカウントでホストされている ID 解決サービスをトリガーします。
接続 ID とサービス アカウント ID をコピーし、これらの ID を TransUnion のお客様向け配信チームと共有します。
リモート関数を作成する
TransUnion Google Cloud プロジェクトでホストされているサービス オーケストレーター エンドポイントとやり取りして、必要なメタデータ(スキーマ マッピングなど)を TransUnion サービスに渡すリモート関数を作成します。作成した外部接続の接続 ID と、TransUnion の顧客配信チームから共有された TransUnion ホスト型の Cloud Functions エンドポイントを使用します。
入力テーブルを作成する
入力データセットにテーブルを作成します。TransUnion は、入力として名前、郵便番号、メールアドレス、電話番号、生年月日、IPv4 アドレス、デバイス ID をサポートしています。TransUnion から提供された実装ガイドに記載されている形式のガイドラインに沿って対応してください。
メタデータ テーブルを作成する
スキーマ マッピングなど、ID 解決サービスがデータを処理するために必要な構成を保存するメタデータ テーブルを作成します。詳細と例については、TransUnion から提供された実装ガイドをご覧ください。
ジョブ ステータス テーブルを作成する
入力バッチの処理に関する更新情報を受け取るテーブルを作成します。このテーブルに対してクエリを実行して、パイプライン内の他のダウンストリーム プロセスをトリガーできます。ジョブのステータスは、RUNNING、COMPLETED、ERROR のいずれかになります。
サービス呼び出しを作成する
次の手順に沿って、すべてのメタデータを収集してパッケージ化し、TransUnion がホストする呼び出し Cloud Functions エンドポイントに渡した後、TransUnion の ID 解決サービスを呼び出します。
-- create service invocation procedure
CREATE OR REPLACE
PROCEDURE
`<project_id>.<dataset_id>.TransUnion_get_identities`(metadata_table STRING, config_id STRING)
begin
declare sql_query STRING;
declare json_result STRING;
declare base64_result STRING;
SET sql_query =
'''select to_json_string(array_agg(struct(config_id,key,value))) from `''' || metadata_table
|| '''` where config_id="''' || config_id || '''" ''';
EXECUTE immediate sql_query INTO json_result;
SET base64_result = (SELECT to_base64(CAST(json_result AS bytes)));
SELECT `<project_id>.<dataset_id>.remote_call_TransUnion_er`(base64_result);
END;
一致する出力テーブルを作成する
次の SQL スクリプトを実行して、一致する出力テーブルを作成します。これは、一致フラグ、スコア、永続的な個人 ID、世帯 ID を含む、アプリケーションの標準出力です。
-- create output table
CREATE TABLE `<project_id>.<dataset_id>.TransUnion_identity_output`(
batchid STRING,
uniqueid STRING,
ekey STRING,
hhid STRING,
collaborationid STRING,
firstnamematch STRING,
lastnamematch STRING,
addressmatches STRING,
addresslinkagescores STRING,
phonematches STRING,
phonelinkagescores STRING,
emailmatches STRING,
emaillinkagescores STRING,
dobmatches STRING,
doblinkagescore STRING,
ipmatches STRING,
iplinkagescore STRING,
devicematches STRING,
devicelinkagescore STRING,
lastprocessed STRING);
メタデータを構成する
TransUnion から提供された実装ガイドに沿って、入力スキーマをアプリケーション スキーマにマッピングします。このメタデータは、データ クリーンルームで使用できる共有可能な非永続的識別子であるコラボレーション ID の生成も構成します。
読み取り / 書き込みアクセス権を付与する
TransUnion の顧客配信チームから Apache Spark 接続のサービス アカウント ID を取得し、入力テーブルと出力テーブルを含むデータセットに対する読み取り / 書き込みアクセス権を付与します。データセットに対する BigQuery データ編集者のロールを持つサービス アカウント ID を指定することをおすすめします。
アプリケーションを呼び出す
次のスクリプトを実行して、環境内からアプリケーションを呼び出すことができます。
call `<project_id>.<dataset_id>.TransUnion_get_identities`("<project_id>.<dataset_id>.TransUnion_er_metadata","1");
-- using metadata table, and 1 = config_id for the batch run
サポート
技術的な問題については、TransUnion Cloud サポートにお問い合わせください。
請求と利用状況
TransUnion は、アプリケーションの使用状況を追跡し、課金目的で使用します。現在ご利用中のお客様は、TransUnion の配送担当者にお問い合わせください。
ID プロバイダのワークフロー
以降のセクションでは、ID プロバイダで BigQuery でエンティティ解決を構成する方法について説明します。全体的な手順については、エンティティ解決のアーキテクチャをご覧ください。全体の手順がビジュアルに表現されています。
始める前に
- リモート関数と統合する Cloud Run ジョブまたは Cloud Run functions を作成します。どちらのオプションもこの目的に適しています。
Cloud Run または Cloud Run functions に関連付けられているサービス アカウントの名前をメモします。
Google Cloud コンソールで、[Cloud Functions] ページに移動します。
関数の名前をクリックし、[詳細] タブをクリックします。
[全般情報] ペインで、リモート関数のサービス アカウント名を見つけてメモします。
リモート関数を作成します。
エンドユーザーからエンドユーザー プリンシパルを収集します。
必要なロール
エンティティ解決ジョブの実行に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
関数に関連付けられているサービス アカウントで、関連するデータセットの読み取りと書き込みを行い、ジョブを起動する場合:
-
プロジェクトに対する BigQuery データ編集者(
roles/bigquery.dataEditor) -
プロジェクトに対する BigQuery ジョブユーザー(
roles/bigquery.jobUser)。
-
プロジェクトに対する BigQuery データ編集者(
-
エンドユーザー プリンシパルがリモート関数を表示して接続できるようにする場合:
- 接続に対する BigQuery Connection ユーザー(
roles/bigquery.connectionUser) -
リモート関数のあるコントロール プレーン データセットに対する BigQuery データ閲覧者(
roles/bigquery.dataViewer)
- 接続に対する BigQuery Connection ユーザー(
ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
エンティティ解決のリモート関数を共有する
次のリモート インターフェース コードを変更して、エンドユーザーと共有します。エンドユーザーがエンティティ解決ジョブを開始する際に、このコードが必要になります。
`PARTNER_PROJECT_ID.DATASET_ID`.match`(LIST_OF_PARAMETERS)
LIST_OF_PARAMETERS は、リモート関数に渡されるパラメータのリストに置き換えます。
省略可: ジョブのメタデータを提供する
必要に応じて、別のリモート関数を使用するか、ユーザーの出力データセットに新しいステータス テーブルを書き込むことで、ジョブ メタデータを提供できます。メタデータの例としては、ジョブのステータスや指標などがあります。
ID プロバイダへの課金
お客様への課金とオンボーディングを効率的に行うために、エンティティ解決サービスを Google Cloud Marketplace と統合することをおすすめします。これにより、エンティティ解決ジョブの使用状況に基づいて料金モデルを設定し、Google が請求を処理します。詳細については、Software as a Service(SaaS)プロダクトの提供をご覧ください。