使用Flow Service API篩選來源的資料列層級資料
閱讀本指南,瞭解如何使用Flow Service API來篩選來源之資料列層級資料的步驟。
快速入門
本教學課程需要您實際瞭解下列Adobe Experience Platform元件:
使用平台API
如需如何成功呼叫Platform API的詳細資訊,請參閱Platform API快速入門的指南。
篩選來源資料 filter-source-data
以下概述篩選來源之列層級資料時應採取的步驟。
擷取您的連線規格 retrieve-your-connection-specs
篩選來源的列層級資料的第一步是擷取來源的連線規格,並判斷來源支援的運運算元和語言。
若要擷取指定來源的連線規格,請向Flow Service API的/connectionSpecs
端點提出GET要求,並提供您來源的屬性名稱做為查詢引數的一部分。
API格式
GET /connectionSpecs/{QUERY_PARAMS}
{QUERY_PARAMS}
name
屬性並在搜尋中指定"google-big-query"
來擷取Google BigQuery連線規格。下列要求會擷取Google BigQuery的連線規格。
code language-shell |
---|
|
成功的回應會傳回狀態碼200和Google BigQuery的連線規格,包括其支援的查詢語言和邏輯運運算元的資訊。
code language-json |
---|
|
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 layout-auto | |
---|---|
屬性 | 說明 |
attributes.filterAtSource.enabled |
決定查詢的來源是否支援資料列層級資料的篩選。 |
attributes.filterAtSource.queryLanguage |
決定查詢來源支援的查詢語言。 |
attributes.filterAtSource.logicalOperators |
決定可用來篩選來源之資料列層級資料的邏輯運運算元。 |
attributes.filterAtSource.comparisonOperators |
決定可用來篩選來源之列層級資料的比較運運算元。 請參閱下表,以取得比較運運算元的詳細資訊。 |
attributes.filterAtSource.columnNameEscapeChar |
決定用於逸出欄的字元。 |
attributes.filterAtSource.valueEscapeChar |
決定寫入SQL查詢時如何包圍值。 |
比較運運算元 comparison-operators
==
!=
<
>
<=
>=
like
WHERE
子句中使用來搜尋指定模式的篩選器。in
指定內嵌的篩選條件 specify-filtering-conditions-for-ingestion
在識別來源支援的邏輯運運算元和查詢語言後,您就可以使用Profile Query Language (PQL)來指定要套用至來源資料的篩選條件。
在下列範例中,條件僅會套用至與作為引數列出的節點型別所提供的值相等的選取資料。
{
"type": "PQL",
"format": "pql/json",
"value": {
"nodeType": "fnApply",
"fnName": "=",
"params": [
{
"nodeType": "fieldLookup",
"fieldName": "city"
},
{
"nodeType": "literal",
"value": "DDN"
}
]
}
}
預覽您的資料 preview-your-data
您可以預覽資料,方法是向Flow Service API的/explore
端點發出GET要求,同時提供filters
作為查詢引數的一部分,並在Base64中指定PQL輸入條件。
API格式
GET /connections/{BASE_CONNECTION_ID}/explore?objectType=table&object={TABLE_PATH}&preview=true&filters={FILTERS}
{BASE_CONNECTION_ID}
{TABLE_PATH}
{FILTERS}
code language-shell |
---|
|
成功的回應會傳回資料的內容和結構。
code language-json |
---|
|
建立篩選資料的來源連線
若要建立來源連線並擷取經過篩選的資料,請對/sourceConnections
端點提出POST要求,並在要求內文引數中提供您的篩選條件。
API格式
POST /sourceConnections
下列要求會建立來源連線,以從test1.fasTestTable
擷取資料,其中city
= DDN
。
code language-shell |
---|
|
成功的回應會傳回新建立的來源連線的唯一識別碼(id
)。
code language-json |
---|
|
篩選Marketo Engage的活動實體 filter-for-marketo
使用Marketo Engage 來源聯結器時,您可以使用列層級篩選來篩選活動實體。 目前,您只能篩選活動實體和標準活動型別。 自訂活動仍在Marketo 欄位對應之下受管理。
Marketo標準活動型別 marketo-standard-activity-types
下表概述Marketo的標準活動型別。 使用此表格作為篩選條件的參考。
使用Marketo來源聯結器時,請依照下列步驟篩選標準活動實體。
建立草稿資料流
首先,建立Marketo 資料流並將其儲存為草稿。 請參閱下列檔案,以取得有關如何建立草稿資料流的詳細步驟:
擷取您的資料流ID
草擬資料流後,您必須擷取其對應的ID。
在UI中,導覽至來源目錄,然後從頂端標題中選取 資料流程。 使用狀態列來識別所有以草稿模式儲存的資料流,然後選取資料流的名稱。 接下來,使用右側的 屬性 面板來尋找您的資料流ID。
擷取您的資料流詳細資料
接下來,您必須擷取資料流詳細資料,尤其是與資料流相關聯的來源連線ID。 若要擷取您的資料流詳細資料,請向/flows
端點提出GET要求,並提供您的資料流ID作為路徑引數。
API格式
GET /flows/{FLOW_ID}
{FLOW_ID}
下列要求會擷取資料流ID的資訊: a7e88a01-40f9-4ebf-80b2-0fc838ff82ef
。
code language-shell |
---|
|
成功的回應會傳回資料流詳細資料,包括其對應來源和目標連線的資訊。 您必須記下來源和目標連線ID,因為稍後需要這些值,才能發佈資料流。
code language-json line-numbers data-start-1 data-line-offset-4 h-23 h-26 |
---|
|
擷取您的來源連線詳細資料
接下來,使用您的來源連線ID並向/sourceConnections
端點發出GET要求,以擷取您的來源連線詳細資料。
API格式
GET /sourceConnections/{SOURCE_CONNECTION_ID}
{SOURCE_CONNECTION_ID}
code language-shell |
---|
|
成功的回應會傳回來源連線的詳細資料。 記下版本,因為您需要在下一個步驟中使用此值來更新來源連線。
code language-json line-numbers data-start-1 data-line-offset-4 h-30 |
---|
|
使用篩選條件更新您的來源連線
現在您已擁有來源連線ID及其對應版本,現在可以使用指定標準活動型別的篩選條件來發出PATCH請求。
若要更新您的來源連線,請對/sourceConnections
端點提出PATCH要求,並提供您的來源連線ID作為查詢引數。 此外,您必須提供If-Match
標頭引數,以及您來源連線的對應版本。
If-Match
標頭。 此標題的值是您要更新之資料流的唯一版本/etag。 每次成功更新資料流時,版本/etag值都會更新。API格式
PATCH /sourceConnections/{SOURCE_CONNECTION_ID}
{SOURCE_CONNECTION_ID}
code language-shell |
---|
|
成功的回應會傳回來源連線ID和etag (版本)。
code language-json |
---|
|
Publish您的來源連線
您的來源連線已隨著篩選條件而更新,您現在可以從草稿狀態繼續並發佈您的來源連線。 若要這麼做,請向/sourceConnections
端點提出POST要求,並提供草稿來源連線的識別碼,以及發佈的動作操作。
API格式
POST /sourceConnections/{SOURCE_CONNECTION_ID}/action?op=publish
{SOURCE_CONNECTION_ID}
op
op
設為publish
。下列要求會發佈草擬的來源連線。
code language-shell |
---|
|
成功的回應會傳回來源連線ID和etag (版本)。
code language-json |
---|
|
Publish您的目標連線
與上一個步驟類似,您也必須發佈目標連線,才能繼續並發佈草稿資料流。 向/targetConnections
端點發出POST要求,並提供您要發佈的草稿目標連線識別碼,以及發佈的動作操作。
API格式
POST /targetConnections/{TARGET_CONNECTION_ID}/action?op=publish
{TARGET_CONNECTION_ID}
op
op
設為publish
。下列要求發佈識別碼為7e53e6e8-b432-4134-bb29-21fc6e8532e5
的目標連線。
code language-shell |
---|
|
成功的回應會傳回已發佈目標連線的ID和對應標籤。
code language-json |
---|
|
Publish您的資料流
您的來源和目標連線均已發佈後,您現在可以繼續進行最後步驟並發佈資料流。 若要發佈您的資料流,請向/flows
端點提出POST要求,並提供您的資料流ID和用於發佈的動作操作。
API格式
POST /flows/{FLOW_ID}/action?op=publish
{FLOW_ID}
op
op
設為publish
。以下請求會發佈您的草稿資料流。
code language-shell |
---|
|
成功的回應會傳回您的資料流的ID和對應的etag
。
code language-json |
---|
|
您可以使用Experience PlatformUI來確認草稿資料流已發佈。 導覽至來源目錄中的資料流頁面,並參考您的資料流的 狀態。 如果成功,狀態現在應該設定為 已啟用。
- 已啟用篩選的資料流將只會回填一次。 您在篩選條件中所做的任何變更(無論是新增或移除)都只能對增量資料生效。
- 如果您需要擷取任何新活動型別的歷史資料,建議您建立新的資料流,並在篩選條件中使用適當的活動型別定義篩選條件。
- 您無法篩選自訂活動型別。
- 您無法預覽篩選的資料。
附錄
本節提供不同裝載的更多範例以供篩選。
奇異條件
對於只需要一個條件的案例,您可以省略初始fnApply
。
code language-json |
---|
|
使用in
運運算元
如需運運算元in
的範例,請參閱下列裝載範例。
code language-json |
---|
|
使用isNull
運運算元
如需運運算元isNull
的範例,請參閱下列裝載範例。
code language-json |
---|
|
使用NOT
運運算元
如需運運算元NOT
的範例,請參閱下列裝載範例。
code language-json |
---|
|
巢狀條件的範例
如需複雜巢狀條件的範例,請參閱以下的裝載範例。
code language-json |
---|
|