👽

Data Cloud バッチデータ変換で分析用のDMOを作成

2025/01/16に公開

バッチデータ変換の結合機能

Data Cloudにはデータ変換処理を行うバッチデータ変換(Help上は一括データ変換の名称)という機能があります。
ホワイトスペース分析などを行う際にクロス結合によってデータを作成したい場合がありますが、Helpに記載がある通りいくつかの制限があります。

クロス結合

データ変換あたり 1 つのクロス結合のみ
クロス結合の結果の最大数は 1,000 万件
左オブジェクトの項目 (列) は最大 8 件、行は最大 100,000 件
右オブジェクトの項目 (列) は最大 8 件、行は最大 1,000 件
複数値項目はサポートされていません

クロス結合を行うとデータ同士のすべての組み合わせが生成されるため、マシンリソースを大量に消費しないよう、データ量を絞るために上記の制限が設けられていると推測されます。
しかし左右のオブジェクトの8列や最大件数の制約を考慮するとデータ作成の障害になることが多々あります。
そこでクロス結合と同様の結果を左結合を利用して得られる方法をご紹介します。

環境準備

社内の検証環境でデータ変換を試してみました。

データ準備

データはSalesforce社が公開しているQuipに添付されていたAccount_mockとProduct_mockのcsvを利用します。
・CRMのカスタムオブジェクトを経由してデータストリームからData Cloudへ取り込みます。
・カスタムのDMOへマッピングします。

データ変換

今回はDMOのバッチデータ変換を利用します。

データ変換STEP1 入力の作成

それぞれのデータで必要な列を入力に指定します。
Accountのinput
Account

Productのinput
Product

Accountが4種類、Productが4種類のデータです。
このデータを使ってクロス結合をすると4かける4の16行のデータが作成されるはずです。

データ変換STEP2 変換での結合キー作成

値は任意なのですが、それぞれの入力ノードに対して固定値を持つ列を変換ノードを利用して、作成します。
ここではそれぞれでdummy_keyを数値型で定義し、固定値1を入力します。
この列を結合キーとすることで、直積が作成され、左結合を指定した際に、クロス結合と同様の結果を得られます。
Accountへのdummy_key作成

Productへのdummy_key作成

データ変換STEP3 結合の作成

ここではSTEP2で作成した項目をキーとして左結合します。同じ値を持つ列をキーとしているため、重複したデータが結合結果となり、クロス結合と同じ結果が得られます。

結合設定

結合結果

STEP1で述べたように、取引先4種に対してそれぞれ調味料が4種類で16行のデータが作成されています。

データ変換STEP4 出力の作成

あとは不要列を変換ノードで削除したり、出力先のDMOを指定してください。

まとめ

今回はデータ変換機能を使ってホワイトスペース分析などに利用可能なデータを作成するステップについての記事を書いてみました。
データがあまりに巨大ですと原理的にメモリ不足などでエラーになる可能性がありますので、データ量にはご注意ください。
参考になれば幸いです。

※本記事は、私が所属する会社とは一切関係のない事柄です。

Discussion