[Ultimate]{class="badge positive"}
Snowflake API를 사용하여 Flow Service 데이터를 Experience Platform으로 스트리밍
이 자습서에서는 SnowflakeAPIFlow Service 를 사용하여 계정의 데이터를 Adobe Experience Platform에 연결하고 스트리밍하는 방법에 대한 단계를 제공합니다.
시작
이 안내서를 사용하려면 Adobe Experience Platform의 다음 구성 요소에 대해 이해하고 있어야 합니다.
Experience Platform API 사용
Experience Platform API를 성공적으로 호출하는 방법에 대한 자세한 내용은 Experience Platform API 시작에 대한 안내서를 참조하십시오.
필요한 자격 증명 수집
인증에 대한 자세한 내용은 Snowflake 개요를 읽어 보십시오.
기본 연결 만들기 create-a-base-connection
기본 연결은 소스의 인증 자격 증명, 연결의 현재 상태 및 고유한 기본 연결 ID를 포함하여 소스와 Experience Platform 간에 정보를 유지합니다. 기본 연결 ID를 사용하면 소스 내에서 파일을 탐색 및 탐색하고 데이터 유형 및 형식에 대한 정보를 포함하여 수집할 특정 항목을 식별할 수 있습니다.
기본 연결 ID를 만들려면 /connections
인증 자격 증명을 요청 본문의 일부로 제공하는 동안 Snowflake 끝점에 대한 POST 요청을 만듭니다.
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
auth.params.database
auth.params.warehouse
auth.params.username
auth.params.schema
auth.params.password
auth.params.role
public
(으)로 설정됩니다.connectionSpec.id
51ae16c2-bdad-42fd-9fce-8d5dfddaf140
.응답
성공한 응답은 새로 생성된 기본 연결과 해당 etag를 반환합니다.
{
"id": "1b614dc0-b76e-41e1-b25f-09f4a9d3f111",
"etag": "\"d300cf4e-0000-0200-0000-6447a7750000\""
}
데이터 테이블 탐색 explore-your-data-tables
다음으로 기본 연결 ID를 사용하여 /connections/{BASE_CONNECTION_ID}/explore?objectType=root
끝점에 GET 요청을 하면서 기본 연결 ID를 매개 변수로 제공하여 소스의 데이터 테이블을 탐색하고 탐색합니다.
API 형식
GET /connections/{BASE_CONNECTION_ID}/explore?objectType=root
{BASE_CONNECTION_ID}
요청
다음 요청은 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
소스 연결 만들기 create-a-source-connection
소스 연결은 데이터가 수집되는 외부 소스와의 연결을 만들고 관리합니다.
소스 연결을 만들려면 /sourceConnections
API의 Flow Service 끝점에 대한 POST 요청을 만듭니다.
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",
"timezoneValue": "PST"
}
}'
baseConnectionId
connectionSpec.id
params.tableName
params.timestampColumn
params.backfill
params.timezoneValue
TIMESTAMP_NTZ
(으)로 설정된 경우 이 매개 변수를 제공해야 합니다. 지정하지 않으면 timezoneValue
의 기본값이 UTC로 설정됩니다.응답
응답이 성공하면 소스 연결 ID와 해당 etag가 반환됩니다. 소스 연결 ID는 이후 단계에서 데이터 흐름을 만드는 데 사용됩니다.
{
"id": "61c0c5f1-bfe5-40f7-8f8c-a4dc175ddac6",
"etag": "\"d300cf4e-0000-0200-0000-6447a7750000\""
}
데이터 흐름 만들기
데이터 흐름을 만들어 투어 Snowflake 계정에서 Experience Platform으로 데이터를 스트리밍하려면 다음 값을 제공하는 동안 /flows
끝점에 대한 POST 요청을 수행해야 합니다.
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
targetConnectionIds
flowSpec.id
c1a19761-d2c7-4702-b9fa-fe91f0613e81
입니다.transformations.params.mappingId
응답
성공적인 응답은 흐름 ID와 해당 etag를 반환합니다.
{
"id": "2edc08ac-4df5-4fe6-936f-81a19ce92f5c",
"etag": "\"770029f8-0000-0200-0000-6019e7d40000\""
}
다음 단계
이 자습서에 따라 Snowflake API를 사용하여 Flow Service 데이터에 대한 스트리밍 데이터 흐름을 만들었습니다. Adobe Experience Platform 소스에 대한 추가 정보는 다음 설명서를 참조하십시오.