[Beta]{class="badge informative"} [Ultimate]{class="badge positive"}
Transmitir datos de Snowflake al Experience Platform mediante la API Flow Service
- El origen de flujo continuo Snowflake está en fase beta. Lea Resumen de fuentes para obtener más información sobre cómo usar fuentes con etiquetas beta.
- El origen de flujo continuo Snowflake está disponible en la API para los usuarios que han adquirido Real-time Customer Data Platform Ultimate.
Este tutorial proporciona pasos sobre cómo conectar y transmitir datos desde su cuenta de Snowflake a Adobe Experience Platform mediante la [Flow Service API] (https://www.adobe.io/experience-platform-apis/references/flow-service/).
Introducción
Esta guía requiere una comprensión práctica de los siguientes componentes de Adobe Experience Platform:
- Fuentes: Experience Platform permite la ingesta de datos de varias fuentes al tiempo que le ofrece la capacidad de estructurar, etiquetar y mejorar los datos entrantes mediante los servicios de Platform.
- Zonas protegidas: Experience Platform proporciona zonas protegidas virtuales que dividen una sola instancia de Platform en entornos virtuales independientes para ayudar a desarrollar y evolucionar aplicaciones de experiencia digital.
Para obtener información y configuración previas sobre el origen de flujo de Snowflake. Lea la Snowflake descripción general del origen de transmisión.
Uso de API de Platform
Para obtener información sobre cómo realizar llamadas correctamente a las API de Platform, consulte la guía sobre introducción a las API de Platform.
Crear una conexión base create-a-base-connection
Una conexión base retiene información entre el origen y Platform, incluidas las credenciales de autenticación del origen, el estado actual de la conexión y el ID único de conexión base. El ID de conexión base le permite explorar y navegar por archivos desde el origen e identificar los elementos específicos que desea introducir, incluida la información sobre sus tipos de datos y formatos.
Para crear un identificador de conexión base, realice una solicitud de POST al extremo /connections
y proporcione sus credenciales de autenticación Snowflake como parte del cuerpo de la solicitud.
Formato de API
POST /connections
Solicitud
La siguiente solicitud crea una conexión base para Snowflake:
auth.specName
debe escribirse exactamente como en el ejemplo siguiente, incluidos los espacios en blanco.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
.Respuesta
Una respuesta correcta devuelve la conexión base recién creada y su etiqueta correspondiente.
{
"id": "1b614dc0-b76e-41e1-b25f-09f4a9d3f111",
"etag": "\"d300cf4e-0000-0200-0000-6447a7750000\""
}
Exploración de las tablas de datos explore-your-data-tables
A continuación, use el identificador de conexión base para explorar y navegar por las tablas de datos de origen realizando una solicitud de GET al extremo /connections/{BASE_CONNECTION_ID}/explore?objectType=root
y proporcionando al mismo tiempo el identificador de conexión base como parámetro.
Formato de API
GET /connections/{BASE_CONNECTION_ID}/explore?objectType=root
{BASE_CONNECTION_ID}
Solicitud
La siguiente solicitud recupera la estructura y el contenido de su cuenta de flujo continuo 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}'
Respuesta
Una respuesta correcta devuelve la estructura y el contenido de los datos de origen en el nivel raíz.
{
"items": [
{
"type": "table",
"name": "ACME"
}
]
}
items.type
items.names
Crear una conexión de origen create-a-source-connection
Una conexión de origen crea y administra la conexión con el origen externo desde el que se incorporan los datos.
Para crear una conexión de origen, realice una solicitud de POST al extremo /sourceConnections
de la API Flow Service.
Formato de API
POST /sourceConnections
Solicitud
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
. Si no se proporciona timezoneValue
, el valor predeterminado es UTC.Respuesta
Una respuesta correcta devuelve el ID de conexión de origen y su etiqueta correspondiente. El ID de conexión de origen se utilizará en un paso posterior para crear un flujo de datos.
{
"id": "61c0c5f1-bfe5-40f7-8f8c-a4dc175ddac6",
"etag": "\"d300cf4e-0000-0200-0000-6447a7750000\""
}
Creación de un flujo de datos
Para crear un flujo de datos para transmitir datos de la cuenta del recorrido Snowflake a Platform, debe realizar una solicitud de POST al extremo /flows
y, al mismo tiempo, proporcionar los siguientes valores:
Formato de API
POST /flows
Solicitud
La siguiente solicitud crea un flujo de datos de flujo continuo para su cuenta de 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
Respuesta
Una respuesta correcta devuelve su ID de flujo y su etiqueta correspondiente.
{
"id": "2edc08ac-4df5-4fe6-936f-81a19ce92f5c",
"etag": "\"770029f8-0000-0200-0000-6019e7d40000\""
}
Pasos siguientes
Al seguir este tutorial, ha creado un flujo de datos de flujo continuo para los datos de Snowflake mediante la API Flow Service. Visite la siguiente documentación para obtener más información sobre las fuentes de Adobe Experience Platform: