利用計算欄位將陣列匯出為字串 use-calculated-fields-to-export-arrays-as-strings
- 通常提供透過計算欄位匯出陣列的功能。
瞭解如何透過計算欄位,將陣列從Real-Time CDP匯出至雲端儲存空間目的地,做為字串。 請參閱本檔案以瞭解此功能啟用的使用案例。
取得有關計算欄位的廣泛資訊 — 這些是什麼以及它們為什麼重要。 請閱讀以下連結的頁面,瞭解「資料準備」中的計算欄位,以及有關所有可用函式的詳細資訊:
Platform中的陣列和其他物件型別 arrays-strings-other-objects
在Experience Platform中,您可以使用XDM結構描述來管理不同的欄位型別。 在新增支援陣列匯出功能之前,您能夠將簡單的機碼值組型別欄位(例如字串)匯出到Experience Platform不佳的所要目的地。 先前支援匯出的欄位範例為personalEmail.address
:johndoe@acme.org
。
Experience Platform中的其他欄位型別包含陣列欄位。 深入瞭解如何在Experience PlatformUI中管理陣列欄位。 除了先前支援的欄位型別之外,您現在還可以匯出陣列物件,例如使用array_to_string
函式串連到字串中的下列範例。
organizations = [{
id: 123,
orgName: "Acme Inc",
founded: 1990,
latestInteraction: "2024-02-16"
}, {
id: 456,
orgName: "Superstar Inc",
founded: 2004,
latestInteraction: "2023-08-25"
}, {
id: 789,
orgName: 'Energy Corp',
founded: 2021,
latestInteraction: "2024-09-08"
}]
請參閱以下廣泛的範例,瞭解如何使用各種函式來存取陣列元素、轉換和篩選陣列、將陣列元素加入字串等等。
已知限制 known-limitations
請注意目前適用於此功能的下列已知限制:
- 目前不支援匯出至具有階層式結構描述 的JSON或Parquet檔案。 您可以使用
array_to_string
函式,將陣列匯出至CSV、JSON和Parquet檔案 ,但僅能匯出為字串。
先決條件 prerequisites
連線至所需的雲端儲存空間目的地,完成雲端儲存空間目的地的啟動步驟並到達對應步驟。
如何匯出計算欄位 how-to-export-calculated-fields
在雲端儲存體目的地的啟動工作流程對應步驟中,選取 新增計算欄位。
這會開啟一個模型視窗,您可在其中選取函式和欄位,以將屬性匯出為Experience Platform以外的內容。
例如,在organizations
欄位上使用array_to_string
函式,如下所示,將組織陣列匯出為CSV檔案中的字串。 檢視更多關於此專案及下方其他範例的資訊。
選取 儲存 以保留計算欄位並返回對應步驟。
回到工作流程的對應步驟,在匯出的檔案中,以您要用於此欄位的欄標題值填入 目標欄位。
準備就緒後,選取 下一步 以繼續執行啟動工作流程的下一步。
匯出陣列的支援函式範例 supported-functions
將資料啟用至以檔案為基礎的目的地時,支援所有記錄的資料準備函式。
以下專用於處理陣列匯出的函式與範例一起記錄。
array_to_string
flattenArray
filterArray
transformArray
coalesce
size_of
iif
index-based array access
add_to_array
to_array
first
last
用於匯出陣列的函式範例 examples
如需上述部分函式,請參閱以下章節中的範例和進一步資訊。 如需列出的其餘函式,請參閱「資料準備」區段🔗中的一般函式檔案。
array_to_string
函式以匯出陣列 array-to-string-function-export-arrays
使用array_to_string
函式,使用所需的分隔符號(例如_
或|
)將陣列元素串連到字串中。
例如,您可以使用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
函式以匯出篩選的陣列
使用filterArray
函式來篩選匯出陣列的元素。 您可以將此函式與上面進一步說明的array_to_string
函式結合。
繼續使用上方的organizations
陣列物件,您可以撰寫類似array_to_string('_', filterArray(organizations, org -> org.founded > 2021))
的函式,傳回在2021年或之後具有founded
值的組織。
在此情況下,您的輸出檔案看起來如下所示。 請注意陣列中符合條件的兩個元素如何使用_
字元串連成單一字串。
John,Doe,johndoe@acme.org, "{'id':123,'orgName':'Acme Inc','founded':1990,'latestInteraction':1708041600000}_{'id':789,'orgName':'Energy Corp','founded':2021,'latestInteraction':1725753600000}"
transformArray
函式以匯出轉換的陣列
使用transformArray
函式轉換匯出陣列的元素。 您可以將此函式與上面進一步說明的array_to_string
函式結合。
繼續使用上方的organizations
陣列物件,您可以撰寫類似array_to_string('_', transformArray(organizations, org -> ucase(org.orgName)))
的函式,傳回已轉換為全部大寫的組織名稱。
在此情況下,您的輸出檔案看起來如下所示。 請注意如何使用_
字元將陣列的三個元素轉換並串連為單一字串。
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年所屬的組織。
在此情況下,您的輸出檔案看起來如下所示。 請注意陣列中的三個元素如何使用_
字元串連成單一字串,而2023也會附加在字串的結尾。
`First_Name,Last_Name,Personal_Email,Organization_Member_2023
John,Doe, johndoe@acme.org,"Marketing_Sales_Finance_2023"
flattenArray
函式以匯出平面化陣列
使用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)
語法來傳回陣列中false
值的前true
個,以結合下列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欄位,如對應熒幕擷圖所示。
"purchaseTime": ["1538097126","1569633126,"1601255526","1632791526","1664327526"]
陣列,指出客戶分別購買五次personalEmail.address
字串
在此情況下,您的輸出檔案看起來如下所示。 請注意第二欄如何指出陣列中的元素數量,對應於客戶進行的個別購買數量。
`Personal_Email,Times_Purchased
johndoe@acme.org,"5"
索引型陣列存取 index-based-array-access
您可以存取陣列的索引,以從陣列匯出單一專案。 例如,與上述的size_of
函式範例類似,如果您只想在客戶第一次購買特定產品時存取和匯出,您可以使用purchaseTime[0]
匯出時間戳記的第一個元素,purchaseTime[1]
匯出時間戳記的第二個元素,purchaseTime[2]
匯出時間戳記的第三個元素,依此類推。
在此情況下,您的輸出檔案看起來如下所示,會在客戶首次購買時匯出:
`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"