Beta Ultimate

Stream Snowflake Daten an die Experience Platform mithilfe der Flow Service API

Letzte Aktualisierung: 2023-10-31
  • Themen:
  • Sources
    Weitere Informationen zu diesem Thema
  • Erstellt für:
  • Developer
    User
    Admin
    Leader
WICHTIG
  • Die Snowflake Streaming-Quelle befindet sich in der Beta-Phase. Bitte lesen Sie die Quellen - Übersicht für weitere Informationen zur Verwendung von Beta-beschrifteten Quellen.
  • Die Snowflake Streaming-Quelle ist in der API für Benutzer verfügbar, die Real-time Customer Data Platform Ultimate erworben haben.

In diesem Tutorial erfahren Sie, wie Sie Daten aus Ihrem Snowflake -Konto in Adobe Experience Platform mithilfe der [Flow Service API] (https://www.adobe.io/experience-platform-apis/references/flow-service/).

Erste Schritte

Dieses Handbuch setzt ein Verständnis der folgenden Komponenten von Adobe Experience Platform voraus:

  • Quellen: Experience Platform ermöglicht die Aufnahme von Daten aus verschiedenen Quellen und bietet Ihnen die Möglichkeit, die eingehenden Daten mithilfe von Platform-Services zu strukturieren, zu kennzeichnen und anzureichern.
  • Sandboxes: Experience Platform bietet virtuelle Sandboxes, die eine einzelne Platform-Instanz in separate virtuelle Umgebungen unterteilen, damit Sie Programme für digitale Erlebnisse entwickeln und weiterentwickeln können.

Für die Einrichtung der Voraussetzungen und Informationen zum Snowflake Streaming-Quelle. Bitte lesen Sie die Snowflake Streaming-Quellübersicht.

Verwenden von Platform-APIs

Informationen zum Aufrufen von Platform-APIs finden Sie im Handbuch unter Erste Schritte mit Platform-APIs.

Erstellen einer Basisverbindung

Bei einer Basisverbindung werden Informationen zwischen Ihrer Quelle und Platform gespeichert, einschließlich der Authentifizierungsdaten Ihrer Quelle, des aktuellen Verbindungsstatus und Ihrer eindeutigen Kennung der Basisverbindung. Mit der Kennung der Basisverbindung können Sie Dateien aus Ihrer Quelle heraus analysieren und darin navigieren und die spezifischen Elemente identifizieren, die Sie erfassen möchten, einschließlich Informationen zu ihren Datentypen und Formaten.

Um eine Basis-Verbindungs-ID zu erstellen, stellen Sie eine POST-Anfrage an die /connections Endpunkt beim Bereitstellen Snowflake Authentifizierungsberechtigungen als Teil des Anfragetexts.

API-Format

POST /connections

Anfrage

Die folgende Anfrage erstellt eine Basisverbindung für Snowflake:

TIPP

Die auth.specName -Wert genau wie im Beispiel unten angegeben werden, einschließlich der Leerzeichen.

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"
      }
  }'
Eigenschaft Beschreibung
auth.params.account Der Name Ihres Snowflake Streaming-Konto.
auth.params.database Der Name Ihres Snowflake Datenbank, aus der Daten abgerufen werden.
auth.params.warehouse Der Name Ihres Snowflake Warehouse. Die Snowflake Warehouse verwaltet den Prozess der Ausführung der Abfrage für die Anwendung. Jedes Warehouse ist unabhängig voneinander und muss einzeln aufgerufen werden, wenn Daten an Platform übermittelt werden.
auth.params.username Der Benutzername für Ihre Snowflake Streaming-Konto.
auth.params.schema (Optional) Das Datenbankschema, das Ihrer Snowflake Streaming-Konto.
auth.params.password Das Kennwort für Ihre Snowflake Streaming-Konto.
auth.params.role (Optional) Die Rolle des Benutzers für diese Snowflake Verbindung herzustellen. Wenn dieser Wert nicht angegeben wird, wird standardmäßig public.
connectionSpec.id Die Snowflake-Verbindungsspezifikations-ID: 51ae16c2-bdad-42fd-9fce-8d5dfddaf140.

Antwort

Eine erfolgreiche Antwort gibt die neu erstellte Basisverbindung und das zugehörige eTag zurück.

{
    "id": "1b614dc0-b76e-41e1-b25f-09f4a9d3f111",
    "etag": "\"d300cf4e-0000-0200-0000-6447a7750000\""
}

Datentabellen durchsuchen

Verwenden Sie anschließend die Basis-Verbindungs-ID, um die Datentabellen Ihrer Quelle zu durchsuchen und durch sie zu navigieren, indem Sie eine GET-Anfrage an die /connections/{BASE_CONNECTION_ID}/explore?objectType=root -Endpunkt bei der Bereitstellung Ihrer Basis-Verbindungs-ID als Parameter angeben.

API-Format

GET /connections/{BASE_CONNECTION_ID}/explore?objectType=root
Parameter Beschreibung
{BASE_CONNECTION_ID} Die Kennung der Basisverbindung Ihrer Snowflake Streaming-Quelle.

Anfrage

Die folgende Anfrage ruft die Struktur und den Inhalt Ihrer Snowflake Streaming-Konto.

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}'

Antwort

Eine erfolgreiche Antwort gibt die Struktur und den Inhalt der Quelldaten auf der Stammebene zurück.

{
    "items": [
        {
            "type": "table",
            "name": "ACME"
        }
    ]
}
Eigenschaft Beschreibung
items.type Der Typ der Tabelle.
items.names Der Name der Tabelle.

Erstellen einer Quellverbindung

Eine Quellverbindung erstellt und verwaltet die Verbindung zu der externen Quelle, aus der Daten erfasst werden.

Um eine Quellverbindung zu erstellen, stellen Sie eine POST-Anfrage an den /sourceConnections-Endpunkt der Flow Service-API.

API-Format

POST /sourceConnections

Anfrage

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"
      }
  }'
Eigenschaft Beschreibung
baseConnectionId Die authentifizierte Basis-Verbindungs-ID für Ihre Snowflake Streaming-Quelle. Diese ID wurde in einem früheren Schritt generiert.
connectionSpec.id Die Verbindungsspezifikations-ID für die Snowflake Streaming-Quelle.
params.tableName Der Name der Tabelle in Snowflake -Datenbank, die Sie in Platform importieren möchten.
params.timestampColumn Der Name der Zeitstempelspalte, die zum Abrufen inkrementeller Werte verwendet wird.
params.backfill Eine boolesche Kennzeichnung, die bestimmt, ob Daten vom Anfang (0 Epochenzeit) oder von dem Zeitpunkt an abgerufen werden, zu dem die Quelle initiiert wird. Weitere Informationen zu diesem Wert finden Sie im Abschnitt Snowflake Streaming-Quellübersicht.
params.timezoneValue Der Zeitzonenwert gibt an, welche Zeitzone zur aktuellen Zeit abgerufen werden soll, wenn die Snowflake Datenbank. Dieser Parameter sollte angegeben werden, wenn die Spalte mit dem Zeitstempel in der Konfiguration auf TIMESTAMP_NTZ. Wenn nicht angegeben, timezoneValue ist standardmäßig UTC.

Antwort

Bei einer erfolgreichen Antwort werden Ihre Kennung der Quellverbindung und das zugehörige eTag zurückgegeben. Die Kennung der Quellverbindung wird in einem späteren Schritt zum Erstellen eines Datenflusses verwendet.

{
    "id": "61c0c5f1-bfe5-40f7-8f8c-a4dc175ddac6",
    "etag": "\"d300cf4e-0000-0200-0000-6447a7750000\""
}

Erstellen eines Datenflusses

So erstellen Sie einen Datenfluss zum Streamen von Daten aus der Tour Snowflake -Konto für Platform erstellen, müssen Sie eine POST-Anfrage an die /flows -Endpunkt unter Angabe der folgenden Werte:

TIPP

Folgen Sie den unten stehenden Links, um schrittweise Anleitungen zum Abrufen der folgenden IDs zu erhalten.

API-Format

POST /flows

Anfrage

Die folgende Anfrage erstellt einen Streaming-Datenfluss für Ihre Snowflake -Konto.

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
          }
        }
      ]
    }'
Eigenschaft Beschreibung
sourceConnectionIds Die Kennung der Quellverbindung für Ihre Snowflake Streaming-Quelle.
targetConnectionIds Die Zielverbindungs-ID für Ihre Snowflake Streaming-Quelle.
flowSpec.id Die Flussspezifikations-ID zum Erstellen eines Datenflusses für eine Snowflake Streaming-Quelle. Mit dieser Flussspezifikations-ID können Sie einen Streaming-Datenfluss mit Zuordnungstransformationen erstellen. Diese ID ist fest und lautet: c1a19761-d2c7-4702-b9fa-fe91f0613e81.
transformations.params.mappingId Die Zuordnungs-ID für Ihren Datenfluss.

Antwort

Bei einer erfolgreichen Antwort werden Ihre Fluss-ID und das zugehörige eTag zurückgegeben.

{
    "id": "2edc08ac-4df5-4fe6-936f-81a19ce92f5c",
    "etag": "\"770029f8-0000-0200-0000-6019e7d40000\""
}

Nächste Schritte

In diesem Tutorial haben Sie einen Streaming-Datenfluss für Ihre Snowflake Daten, die Flow Service API. Weitere Informationen zu Adobe Experience Platform-Quellen finden Sie in der folgenden Dokumentation:

Auf dieser Seite