計算フィールドを使用したクラウドストレージの宛先への書き出されたデータの変換の実行 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文字列
この場合、出力ファイルは次のようになります。 配列の要素が_文字を使用して単一の文字列に連結される方法に注目してください。
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つの要素が、_文字を使用して1つの文字列に連結される方法に注目してください。
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つの要素が_文字を使用して単一の文字列に連結され、文字列の最後に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値の最初のfalseを返すことで、以下のマッピングのスクリーンショットに示すように、次のXDM フィールドを組み合わせることができます。
"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 フィールドを組み合わせることができます。
- 顧客による5回の購入時間を示す
"purchaseTime": ["1538097126","1569633126,"1601255526","1632791526","1664327526"]アレイ 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])