計算フィールドを使用したクラウドストレージの宛先への書き出されたデータの変換の実行 data-transformation-calculated-fields
クラウドストレージの宛先に書き出されたデータに対して様々な変換を実行するには、書き出しワークフローのマッピング手順で計算フィールド機能を使用する必要があります。 計算フィールドについて詳しくは、以下にリンクされているページを参照してください。 これらのページには、データ準備の計算フィールドの概要と、使用可能なすべての関数の詳細が含まれています。
前提条件 prerequisites
データ変換に計算フィールドを使用するには:
- 目的のクラウドストレージの宛先に 接続 します。 目的のクラウドの宛先に接続する場合は、Export arrays, maps, objects オプションをオフ に切り替えます。
- クラウドストレージ宛先の アクティベーション手順 を実行し、 マッピング 手順に進みます。
計算フィールドの操作方法 how-to-export-calculated-fields
array_to_string 関数を使用してフィールドを文字列に連結する必要があります。クラウドストレージ宛先のアクティベーションワークフローのマッピング手順で、「Add calculated field」を選択します。
これにより、Experience Platformから属性を書き出す関数とフィールドを選択できるモーダルウィンドウが開きます。
例えば、以下に示すように、「array_to_string」フィールドで organizations 関数を使用して、組織の配列を CSV ファイルの文字列として書き出します。 この例およびその他の例の詳細は以下 をご覧ください。
「Save」を選択して計算フィールドを保持し、マッピングステップに戻ります。
戻るワークフローのマッピングステップで、エクスポートされたファイルのこのフィールドに必要な列ヘッダーの値を Target field に入力します。
準備ができたら、[ Next ] を選択してアクティベーションワークフローの次の手順に進みます。
データ変換を実行するためにサポートされている関数のサンプル supported-functions
ファイルベースの宛先に対してデータをアクティブ化する場合、ドキュメントに記載されているすべての データ準備関数 がサポートされます。
以下の関数は、配列の書き出しの処理やフィールドへのハッシュ化の適用に固有の関数で、例とともに説明しています。
array_to_stringflattenArrayfilterArraytransformArraycoalescesize_ofiifindex-based array accessadd_to_arrayto_arrayfirstlast
データ変換の実行に使用する関数の例 examples
上記の関数の一部については、以下の節の例と詳細情報を参照してください。 リストに表示されたその他の関数については、 データ準備セクションの汎用関数のドキュメント を参照してください。
配列を書き出す array_to_string 関数 array-to-string-function-export-arrays
array_to_string 関数を使用すると、_ や | などの目的の区切り文字を使用して、配列の要素を文字列に連結できます。 この関数は、Experience Platformから CSV ファイルに配列の要素を書き出す場合に便利です。
例えば、array_to_string('_',organizations) 構文を使用して、マッピングのスクリーンショットに示すように、以下の XDM フィールドを組み合わせることができます。
organizations配列person.name.firstName糸person.name.lastName糸personalEmail.address糸
この場合、出力ファイルは次のようになります。 配列の要素が _ 文字を使用して 1 つの文字列に連結されていることに注意してください。
First_Name,Last_Name,Personal_Email,Organization
John,Doe,johndoe@acme.org, "{'id':123,'orgName':'Acme Inc','founded':1990,'latestInteraction':1708041600000}_{'id':456,'orgName':'Superstar Inc','founded':2004,'latestInteraction':1692921600000}_{'id':789,'orgName':'Energy Corp','founded':2021,'latestInteraction':1725753600000}"
フィルターされた配列を書き出す filterArray 関数 filter-array
書き出された配列の要素をフィルターするには、filterArray 関数を使用します。 この関数は、上記の array_to_string 関数と組み合わせることができます。
上記の organizations 配列オブジェクトを続けて、array_to_string('_', filterArray(organizations, org -> org.founded > 2021)) のような関数を記述すると、2021 年以降の founded の値を持つ組織が返されます。
この場合、出力ファイルは次のようになります。 条件を満たす配列の 2 つの要素が、_ 文字を使用して単一の文字列に連結される方法に注意してください。
John,Doe,johndoe@acme.org, "{'id':123,'orgName':'Acme Inc','founded':1990,'latestInteraction':1708041600000}_{'id':789,'orgName':'Energy Corp','founded':2021,'latestInteraction':1725753600000}"
変換された配列を書き出す transformArray 関数 transform-array
transformArray 関数を使用して、書き出された配列の要素を変換します。 この関数は、上記の array_to_string 関数と組み合わせることができます。
上記の organizations 配列オブジェクトを続けて、array_to_string('_', transformArray(organizations, org -> ucase(org.orgName))) のような関数を記述し、組織の名前をすべて大文字に変換して返すことができます。
この場合、出力ファイルは次のようになります。 配列の 3 つの要素がどのように変換され、_文字を使用して 1 つの文字列に連結されるかに注目してください。
John,Doe,johndoe@acme.org,ACME INC_SUPERSTAR INC_ENERGY CORP
iif 配列をエクスポートする関数 iif-function-export-arrays
iif関数を使用して、特定の条件下で配列の要素をエクスポートします。たとえば、上から organizations 配列オブジェクトを続けると、 iif(organizations[0].equals("Marketing"), "isMarketing", "isNotMarketing")のような単純な条件関数を記述できます。
この場合、出力ファイルは次のようになります。 この場合、配列の最初の要素はマーケティングなので、その人物はマーケティング部門のメンバーです。
`First_Name,Last_Name, Personal_Email, Is_Member_Of_Marketing_Dept
John,Doe, johndoe@acme.org, "isMarketing"
配列を書き出す add_to_array 関数 add-to-array-function-export-arrays
書き出された配列に要素を追加するには、add_to_array 関数を使用します。 この関数は、上記の array_to_string 関数と組み合わせることができます。
上記の organizations 配列オブジェクトを続けて、source: array_to_string('_', add_to_array(organizations,"2023")) のような関数を記述して、2023 年にユーザーが属する組織を返すことができます。
この場合、出力ファイルは次のようになります。 配列の 3 つの要素が、_ 文字を使用して 1 つの文字列に連結され、文字列の末尾にも 2023 が追加されていることに注意してください。
`First_Name,Last_Name,Personal_Email,Organization_Member_2023
John,Doe, johndoe@acme.org,"Marketing_Sales_Finance_2023"
フラット化された配列を書き出すための flattenArray 関数 flatten-array
flattenArray 関数を使用して、書き出された多次元配列をフラット化します。 この関数は、上記の array_to_string 関数と組み合わせることができます。
上記の organizations 配列オブジェクトを続けて、array_to_string('_', flattenArray(organizations)) のような関数を記述できます。 array_to_string 関数は、デフォルトで入力配列を文字列にフラット化します。
結果の出力は、前述の array_to_string 関数と同じです。
配列を書き出す coalesce 関数 coalesce-function-export-arrays
coalesce 関数を使用して、配列の最初の null 以外の要素にアクセスし、文字列に書き出します。
例えば、coalesce(subscriptions.hasPromotion) 構文を使用して、配列の値の最初の true を返すことで、マッピングスクリーンショットに示されているように、以下の XDM フィールド false 組み合わせることができます。
"subscriptions.hasPromotion": [null, true, null, false, true]配列person.name.firstName文字列person.name.lastName文字列personalEmail.address文字列
この場合、出力ファイルは次のようになります。 配列の最初の null 以外の true 値がファイルに書き出されます。
First_Name,Last_Name,hasPromotion
John,Doe,true
配列を書き出す size_of 関数 sizeof-function-export-arrays
size_of関数を使用して、配列に存在する要素の数を示します。例えば、複数のタイムスタンプを持つ purchaseTime 配列オブジェクトがある場合、size_of 関数を使用して、ある人物が個別に購入した回数を示すことができます。
たとえば、マッピング スクリーンショットに示すように、以下の XDM つのフィールドを組み合わせることができます。
"purchaseTime": ["1538097126","1569633126,"1601255526","1632791526","1664327526"]顧客による 5 つの購入時間を示す配列personalEmail.address糸
この場合、出力ファイルは次のようになります。 2 番目の列が、顧客による個別の購入の数に対応する、配列の要素の数を示していることに注意してください。
`Personal_Email,Times_Purchased
johndoe@acme.org,"5"
インデックス・ベースのアレイ・アクセス index-based-array-access
配列のインデックスにアクセスして、配列から 1 つの項目を書き出すことができます。 例えば、size_of 関数の前述の例と同様に、顧客が特定の製品を初めて購入したときにのみアクセスして書き出しを行う場合は、purchaseTime[0] を使用してタイムスタンプの最初の要素を書き出 purchaseTime[1]、タイムスタンプの 2 番目の要素を書き出 purchaseTime[2]、タイムスタンプの 3 番目の要素を書き出すことができます。
この場合、出力ファイルは次のようになります。顧客が初めて購入したときに書き出されます。
`Personal_Email,First_Purchase
johndoe@acme.org,"1538097126"
配列を書き出す first 関数と last 関数 first-and-last-functions-export-arrays
first 関数と last 関数を使用して、配列の最初または最後の要素を書き出します。 例えば、前の例で使用した複数のタイムスタンプを含む purchaseTime 配列オブジェクトで続けて、これらを使用して、人物による最初または最後の購入時間を書き出す関数を使用できます。
この場合、出力ファイルは次のようになります。顧客が購入を行った最初と最後の時間が書き出されます。
`Personal_Email,First_Purchase, Last_Purchase
johndoe@acme.org,"1538097126","1664327526"
ハッシュ関数 hashing-functions
使用可能な関数はその他配列または配列から要素をエクスポートするためのものです。 ハッシュ関数を使用して、エクスポートされたファイルの属性をハッシュできます。 たとえば、属性に個人を特定できる情報がある場合は、エクスポート時にそれらのフィールドハッシュできます。
文字列値を直接ハッシュできます(例: md5(personalEmail.address))。 必要に応じて、次のように、配列内の要素が文字列であると仮定して、配列フィールドの個人要素ハッシュこともできます。 md5(purchaseTime[0])
サポートされているハッシュ関数は次のとおりです。
sha1sha1(organizations[0])sha256sha256(organizations[0])sha512sha512(organizations[0])hashhash("crc32", organizations[0], "UTF-8")md5md5(organizations[0], "UTF-8")crc32crc32(organizations[0])