本教學課程提供如何連線並串流資料的步驟。 Snowflake Adobe Experience Platform帳戶,使用 [Flow Service API] (https://www.adobe.io/experience-platform-apis/references/flow-service/).
本指南需要您實際瞭解下列Adobe Experience Platform元件:
如需先決條件設定及相關資訊,請參閱 Snowflake 串流來源。 請閱讀 Snowflake 串流來源概觀.
如需如何成功呼叫Platform API的詳細資訊,請參閱以下指南中的 Platform API快速入門.
基礎連線會保留您的來源和平台之間的資訊,包括來源的驗證認證、連線的目前狀態,以及您唯一的基本連線ID。 基本連線ID可讓您瀏覽和瀏覽來源內的檔案,並識別您要擷取的特定專案,包括其資料型別和格式的資訊。
POST若要建立基本連線ID,請向 /connections
端點,同時提供 Snowflake 要求內文中的驗證認證。
API格式
POST /connections
要求
下列要求會建立 Snowflake:
此 auth.specName
輸入的值必須與下面的範例完全相同,包括空格。
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Snowflake base connection",
"description": "Snowflake base connection",
"auth": {
"specName": "Basic Authentication for Snowflake",
"params": {
"account": "wixnnnd-ui60793.snowflakecomputing.com",
"database": "ACME_DB",
"warehouse": "ACME_WH",
"username": "nikola15",
"schema": "PUBLIC",
"password": "xxxx",
"role": "ACCOUNTADMIN"
}
},
"connectionSpec": {
"id": "51ae16c2-bdad-42fd-9fce-8d5dfddaf140",
"version": "1.0"
}
}'
屬性 | 說明 |
---|---|
auth.params.account |
您的名稱 Snowflake 串流帳戶。 |
auth.params.database |
您的名稱 Snowflake 從中提取資料的資料庫。 |
auth.params.warehouse |
您的名稱 Snowflake 倉儲。 此 Snowflake warehouse會管理應用程式的查詢執行程式。 每個倉儲彼此獨立,且在將資料帶到Platform時必須個別存取。 |
auth.params.username |
您的使用者名稱 Snowflake 串流帳戶。 |
auth.params.schema |
(選用)與下列專案關聯的資料庫結構: Snowflake 串流帳戶。 |
auth.params.password |
您的密碼 Snowflake 串流帳戶。 |
auth.params.role |
(選用)此專案的使用者角色 Snowflake 連線。 如果未提供,則此值預設為 public . |
connectionSpec.id |
此 Snowflake 連線規格ID: 51ae16c2-bdad-42fd-9fce-8d5dfddaf140 . |
回應
成功回應會傳回新建立的基本連線及其對應的電子標籤。
{
"id": "1b614dc0-b76e-41e1-b25f-09f4a9d3f111",
"etag": "\"d300cf4e-0000-0200-0000-6447a7750000\""
}
接下來,使用基本連線ID透過向以下專案發出GET請求,以探索並瀏覽來源的資料表: /connections/{BASE_CONNECTION_ID}/explore?objectType=root
端點時,將基本連線ID作為引數提供。
API格式
GET /connections/{BASE_CONNECTION_ID}/explore?objectType=root
參數 | 說明 |
---|---|
{BASE_CONNECTION_ID} |
您的的基本連線ID Snowflake 串流來源。 |
要求
以下請求會擷取您的結構和內容 Snowflake 串流帳戶。
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/connections/1b614dc0-b76e-41e1-b25f-09f4a9d3f111/explore?objectType=root' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
回應
成功的回應會在根層級傳回來源資料的結構和內容。
{
"items": [
{
"type": "table",
"name": "ACME"
}
]
}
屬性 | 說明 |
---|---|
items.type |
表格的型別。 |
items.names |
表格的名稱。 |
來源連線會建立和管理與擷取資料之外部來源的連線。
POST若要建立來源連線,請向 /sourceConnections
的端點 Flow Service API。
API格式
POST /sourceConnections
要求
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
-H 'authorization: Bearer {ACCESS_TOKEN}' \
-H 'content-type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"name": "Snowflake Streaming Source Connection",
"description": "A source connection for Snowflake Streaming data",
"baseConnectionId": "1b614dc0-b76e-41e1-b25f-09f4a9d3f111",
"connectionSpec": {
"id": "51ae16c2-bdad-42fd-9fce-8d5dfddaf140",
"version": "1.0"
},
"params": {
"tableName": "ACME",
"timestampColumn": "dOb",
"backfill": "true"
}
}'
屬性 | 說明 |
---|---|
baseConnectionId |
貴機構的已驗證基本連線ID Snowflake 串流來源。 此ID是在先前的步驟中產生的。 |
connectionSpec.id |
的連線規格ID Snowflake 串流來源。 |
params.tableName |
中的表格名稱 Snowflake 要帶到Platform的資料庫。 |
params.timestampColumn |
用於擷取增量值的時間戳記資料行名稱。 |
params.backfill |
布林值旗標,可判斷資料是從開始(0紀元時間)擷取,還是從來源起始時間擷取。 如需此值的詳細資訊,請閱讀 Snowflake 串流來源概觀. |
回應
成功的回應會傳回您的來源連線ID及其對應的etag。 來源連線ID將用於後續步驟以建立資料流。
{
"id": "61c0c5f1-bfe5-40f7-8f8c-a4dc175ddac6",
"etag": "\"d300cf4e-0000-0200-0000-6447a7750000\""
}
若要建立資料流以串流瀏覽的資料 Snowflake 帳戶至平台,您必須向以下網站發出POST請求: /flows
端點,並提供下列值:
請依照下列連結取得如何擷取下列ID的逐步指南。
API格式
POST /flows
要求
以下請求會為您的建立串流資料流 Snowflake 帳戶。
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Snowflake Streaming Dataflow",
"description": "A dataflow for Snowflake streaming data",
"sourceConnectionIds": [
"61c0c5f1-bfe5-40f7-8f8c-a4dc175ddac6"
],
"targetConnectionIds": [
"78f41c31-3652-4a5e-b264-74331226dcf3"
],
"flowSpec": {
"id": "c1a19761-d2c7-4702-b9fa-fe91f0613e81",
"version": "1.0"
},
"transformations": [
{
"name": "Mapping",
"params": {
"mappingId": "44d42ed27c46499a80eb0c0705c38cbd",
"mappingVersion": 0
}
}
]
}'
屬性 | 說明 |
---|---|
sourceConnectionIds |
您的來源連線ID Snowflake 串流來源。 |
targetConnectionIds |
您的目標連線ID Snowflake 串流來源。 |
flowSpec.id |
為建立資料流的流程規格ID Snowflake 串流來源。 此流程規格ID可讓您使用對應轉換建立串流資料流。 此ID已修正,且為: c1a19761-d2c7-4702-b9fa-fe91f0613e81 . |
transformations.params.mappingId |
資料流的對應ID。 |
回應
成功回應會傳回您的流量ID及其對應的etag。
{
"id": "2edc08ac-4df5-4fe6-936f-81a19ce92f5c",
"etag": "\"770029f8-0000-0200-0000-6019e7d40000\""
}
依照本教學課程所述,您已為您的建立串流資料流 Snowflake 資料使用 Flow Service API。 如需Adobe Experience Platform來源的其他資訊,請瀏覽下列檔案: