Skip to content

Daten von Amazon S3 zu Snowflake übertragen

Wenn sich Ihre Daten derzeit in Amazon S3 befinden, können Sie sie mit dem Prozess Extrahieren, Laden, Transformieren (ELT) in Snowflake oder ein anderes relationales Data Warehouse übertragen. Auf dieser Seite erfahren Sie, wie Sie das tun können.

Funktionsweise

Der Prozess Extrahieren, Laden, Transformieren (ELT) ist ein automatisierter Prozess, der Daten in Snowflake überträgt, sodass Sie die Braze Looker Blocks verwenden können, um diese Daten in Looker zu visualisieren und so Insights und Feedback für Ihre Campaigns, Canvases und Segments zu gewinnen.

Nachdem Sie einen Export von Currents nach S3 eingerichtet haben und Live-Ereignisdaten empfangen, können Sie Ihre Live-ELT-Pipeline in Snowflake konfigurieren, indem Sie die folgenden Komponenten einrichten:

Konfigurieren von AWS SQS-Warteschlangen

Auto-Ingest Snowpipes nutzen SQS-Warteschlangen, um Benachrichtigungen von S3 an Snowpipe zu senden. Dieser Prozess wird von Snowflake verwaltet, nachdem SQS konfiguriert wurde.

1. Schritt: Externe S3-Stage konfigurieren

  1. Wenn Sie Currents in Braze einrichten, geben Sie einen Ordnerpfad an, dem Ihre Currents-Dateien in Ihrem S3-Bucket folgen sollen. Hier verwenden wir currents, den Standard-Ordnerpfad.

  2. Erstellen Sie Folgendes in der angegebenen Reihenfolge: 2.1 Erstellen Sie in AWS ein neues Public-Private-Key-Paar für den gewünschten S3-Bucket mit Berechtigungen gemäß den Sicherheitsanforderungen Ihrer Organisation. 2.2. Erstellen Sie in Snowflake eine Datenbank und ein Schema Ihrer Wahl (im folgenden Beispiel currents und public genannt). 2.3. Erstellen Sie eine Snowflake S3-Stage (hier braze_data genannt):

1
2
3
4
5
CREATE OR REPLACE STAGE
    currents.public.braze_data
    url='s3://snowpipe-demo/'
    credentials = (AWS_KEY_ID = '...' AWS_SECRET_KEY = '...' );
show stages;
  1. Definieren Sie das AVRO-Dateiformat für Ihre Stage.
1
2
3
4
CREATE FILE FORMAT
    currents.public.currents_avro
    type = 'avro'
    compression = 'auto';
1
2
3
4
ALTER STAGE
    currents.public.braze_data
SET
    file_format = currents.public.currents_avro;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
CREATE OR REPLACE PIPE
  pipe_users_messages_pushnotification_open
    auto_ingest=true AS

COPY INTO
  users_messages_pushnotification_open
          FROM
           (SELECT
             $1:id::STRING,
             $1:user_id::STRING,
             $1:external_user_id::STRING,
              $1:time::INT,
              $1:timezone::STRING,
              $1:app_id::STRING,
              $1:campaign_id::STRING,
              $1:campaign_name::STRING,
              $1:message_variation_id::STRING,
              $1:canvas_id::STRING,
              $1:canvas_name::STRING,
              $1:canvas_variation_id::STRING,
              $1:canvas_step_id::STRING,
              $1:canvas_step_message_variation_id::STRING,
              $1:platform::STRING,
              $1:os_version::STRING,
              $1:device_model::STRING,
              $1:send_id::STRING,
              $1:device_id::STRING,
              $1:button_action_type::STRING,
              $1:button_string::STRING

              FROM
@currents.public.braze_data/currents/dataexport.prod-01.S3.integration.INTEGRATION_ID_GOES_HERE/event_type=users.messages.pushnotification.Open/);
  1. Verwenden Sie abschließend den Befehl show pipes;, um Ihre SQS-Informationen anzuzeigen. Der Name der SQS-Warteschlange wird in einer neuen Spalte namens NOTIFICATION_CHANNEL angezeigt, da diese Pipe als Auto-Ingest-Pipe erstellt wurde.

2. Schritt: Bucket-Events erstellen

  1. Navigieren Sie in AWS zum entsprechenden Bucket der neuen Snowflake-Stage. Gehen Sie dann unter dem Tab Properties zu Events.

AWS-Tab „Properties“

  1. Erstellen Sie nach Bedarf neue Events für jeden Satz von Currents-Daten (Messaging, Kundenverhalten) oder beides.

Erstellen eines neuen Events in AWS

  1. Aktivieren Sie das entsprechende Kontrollkästchen für die Benachrichtigungen zur Objekterstellung sowie den ARN am unteren Rand des Formulars (aus der Spalte „Notification Channel“ in Snowflake).

Konfigurieren von Auto-Ingest Snowpipes

Damit die AWS SQS-Konfiguration die richtigen Tabellen erzeugt, müssen Sie die Struktur der eingehenden Daten korrekt definieren. Verwenden Sie dazu die folgenden Beispiele und Schemas aus unserer Currents-Dokumentation für Messaging-Engagement- oder Messaging-Events, Kundenverhalten-Events oder beides.

Es ist entscheidend, dass Sie Ihre Tabellen gemäß den Braze-Currents-Schemas strukturieren, da Braze-Currents kontinuierlich Daten über bestimmte Felder mit bestimmten Datentypen in diese laden wird. Beispielsweise wird eine user_id als String geladen und in den Currents-Daten als user_id bezeichnet.

  1. Erstellen Sie eine Tabelle, in die (INTO) wir kontinuierlich Daten laden werden, unter Verwendung der folgenden Struktur aus dem Currents-Schema:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CREATE TABLE
  users_behaviors_app_firstsession (
        id               STRING,
        user_id          STRING,
        external_user_id STRING,
        app_id           STRING,
        time             INT,
        session_id       STRING,
        gender           STRING,
        country          STRING,
        timezone         STRING,
        language         STRING,
        device_id        STRING,
        sdk_version      STRING,
        platform         STRING,
        os_version       STRING,
        device_model     STRING
    );
  1. Erstellen Sie die auto_ingest-Pipe und geben Sie Folgendes an: 2.1. Welche Tabelle geladen werden soll 2.2 Wie die folgende Tabelle geladen werden soll
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
CREATE OR REPLACE PIPE
  pipe_users_behaviors_app_firstsession
    auto_ingest=true AS

COPY INTO
  users_behaviors_app_firstsession
          FROM
            (SELECT
              $1:id::STRING,
              $1:user_id::STRING,
              $1:external_user_id::STRING,
              $1:app_id::STRING,
              $1:time::INT,
              $1:session_id::STRING,
              $1:gender::STRING,
              $1:country::STRING,
              $1:timezone::STRING,
              $1:language::STRING,
              $1:device_id::STRING,
              $1:sdk_version::STRING,
              $1:platform::STRING,
              $1:os_version::STRING,
              $1:device_model::STRING

              FROM
@currents.public.braze_data/currents/dataexport.prod-01.S3.integration.INTEGRATION_ID_GOES_HERE/event_type=users.behaviors.app.FirstSession/);
  1. Erstellen Sie eine Tabelle, in die (INTO) wir kontinuierlich Daten laden werden, unter Verwendung der folgenden Struktur aus dem Currents-Schema:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
CREATE TABLE
    public_users_messages_pushnotification_open (
        id STRING,
        user_id STRING,
        external_user_id STRING,
        time INT,
        timezone STRING,
        app_id STRING,
        campaign_id STRING,
        campaign_name STRING,
        message_variation_id STRING,
        canvas_id STRING,
        canvas_name STRING,
        canvas_variation_id STRING,
        canvas_step_id STRING,
        canvas_step_message_variation_id STRING,
        platform STRING,
        os_version STRING,
        device_model STRING,
        send_id STRING,
        device_id STRING,
        button_action_type STRING,
        button_string STRING
        );
  1. Erstellen Sie die AUTO-Pipe für kontinuierliches Laden und geben Sie Folgendes an: 2.1. Welche Tabelle geladen werden soll 2.2 Wie die folgende Tabelle geladen werden soll
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
CREATE OR REPLACE PIPE
  pipe_users_messages_pushnotification_open
    auto_ingest=true AS

COPY INTO
  users_messages_pushnotification_open
          FROM
           (SELECT
             $1:id::STRING,
             $1:user_id::STRING,
             $1:external_user_id::STRING,
              $1:time::INT,
              $1:timezone::STRING,
              $1:app_id::STRING,
              $1:campaign_id::STRING,
              $1:campaign_name::STRING,
              $1:message_variation_id::STRING,
              $1:canvas_id::STRING,
              $1:canvas_name::STRING,
              $1:canvas_variation_id::STRING,
              $1:canvas_step_id::STRING,
              $1:canvas_step_message_variation_id::STRING,
              $1:platform::STRING,
              $1:os_version::STRING,
              $1:device_model::STRING,
              $1:send_id::STRING,
              $1:device_id::STRING,
              $1:button_action_type::STRING,
              $1:button_string::STRING

              FROM
@currents.public.braze_data/currents/dataexport.prod-01.S3.integration.INTEGRATION_ID_GOES_HERE/event_type=users.messages.pushnotification.Open/);

Informationen zu den Arten von Analytics, die Sie mit Braze-Currents durchführen können, finden Sie in unseren Looker Blocks.

New Stuff!