[Beta]{class="badge informative"} [Ultimate]{class="badge positive"}

Transmitir datos de Snowflake al Experience Platform mediante la API Flow Service

IMPORTANT
  • 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:

TIP
El valor 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"
      }
  }'
Propiedad
Descripción
auth.params.account
El nombre de su cuenta de streaming Snowflake.
auth.params.database
Nombre de la base de datos Snowflake de la que se extraerán los datos.
auth.params.warehouse
Nombre de su almacén de Snowflake. El almacén Snowflake administra el proceso de ejecución de consultas para la aplicación. Cada almacén es independiente entre sí y se debe acceder a él de forma individual al llevar los datos a Platform.
auth.params.username
El nombre de usuario de su cuenta de streaming Snowflake.
auth.params.schema
(Opcional) El esquema de base de datos asociado con su cuenta de flujo continuo Snowflake.
auth.params.password
Contraseña de su cuenta de streaming Snowflake.
auth.params.role
(Opcional) El rol del usuario para esta conexión de Snowflake. Si no se proporciona, el valor predeterminado es public.
connectionSpec.id
Identificador de especificación de conexión Snowflake: 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
Parámetro
Descripción
{BASE_CONNECTION_ID}
Identificador de conexión base de su origen de flujo continuo Snowflake.

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"
        }
    ]
}
Propiedad
Descripción
items.type
Tipo de la tabla.
items.names
Nombre de la tabla.

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"
      }
  }'
Propiedad
Descripción
baseConnectionId
Identificador de conexión base autenticada para el origen de flujo continuo Snowflake. Este ID se generó en un paso anterior.
connectionSpec.id
Id. de especificación de conexión para el origen de flujo continuo Snowflake.
params.tableName
Nombre de la tabla de la base de datos Snowflake que desea llevar a Platform.
params.timestampColumn
Nombre de la columna de marca de tiempo que se utilizará para recuperar los valores incrementales.
params.backfill
Un indicador booleano que determina si los datos se recuperan desde el principio (hora de la época 0) o desde el momento en que se inicia el origen. Para obtener más información sobre este valor, lea la Snowflake descripción general de la fuente de transmisión.
params.timezoneValue
El valor de zona horaria indica la hora actual de la zona horaria que debe recuperarse al consultar la base de datos Snowflake. Se debe proporcionar este parámetro si la columna de marca de tiempo de la configuración está establecida en 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:

TIP
Siga los vínculos a continuación para obtener guías paso a paso sobre cómo recuperar los siguientes ID.

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
          }
        }
      ]
    }'
Propiedad
Descripción
sourceConnectionIds
Identificador de conexión de origen del origen de flujo continuo Snowflake.
targetConnectionIds
Identificador de conexión de destino del origen de flujo continuo Snowflake.
flowSpec.id
Id. de especificación de flujo para crear un flujo de datos para un origen de flujo continuo Snowflake. Este ID de especificación de flujo le permite crear un flujo de datos de flujo continuo con transformaciones de asignación. Este identificador se corrigió y es: c1a19761-d2c7-4702-b9fa-fe91f0613e81.
transformations.params.mappingId
ID de asignación para el flujo de datos.

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:

recommendation-more-help
337b99bb-92fb-42ae-b6b7-c7042161d089