Skip to content

Transferencia de datos de Amazon S3 a Snowflake

Si tus datos se encuentran actualmente en Amazon S3, puedes transferirlos a Snowflake o a otro almacén de datos relacional mediante el proceso Extraer, Cargar, Transformar (ELT). Esta página explica cómo hacerlo.

Cómo funciona

El proceso Extraer, Cargar, Transformar (ELT) es un proceso automatizado que traslada los datos a Snowflake, lo que te permitirá utilizar los bloques de Looker de Braze para visualizar esos datos en Looker y ayudarte a obtener información y comentarios sobre tus campañas, lienzos y segmentos.

Una vez que haya configurado una exportación de Currents a S3 y esté recibiendo datos de eventos en directo, puede configurar su canalización de ELT en directo en Snowflake configurando los siguientes componentes:

Configuración de las colas de AWS SQS

Los Snowpipes Auto-ingest dependen de las colas SQS para el envío de notificaciones desde S3 a Snowpipe. Este proceso es gestionado por Snowflake tras configurar SQS.

Paso 1: Configurar la etapa externa S3

  1. Cuando configure Currents en Braze, especifique una ruta de carpeta para que sus archivos Currents sigan su bucket de S3. Aquí utilizamos currents, la ruta predeterminada de la carpeta.

  2. Crea lo siguiente en el orden indicado: En AWS, crea un nuevo par de claves pública-privada para el bucket de S3 deseado, con concesiones acordes a los requisitos de seguridad de tu organización. 2.2. En Snowflake, cree una base de datos y un esquema de su elección (denominados currents y public en el siguiente ejemplo). 2.3. Crea un escenario S3 Snowflake (llamado braze_data):

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;

3. Define el formato de archivo AVRO para tu escenario.

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/);

4. Por último, utiliza el comando show pipes; para mostrar la información de tu SQS. El nombre de la cola SQS será visible en una nueva columna llamada NOTIFICATION_CHANNEL porque esta canalización se creó como autoanálisis.

Paso 2: Crear eventos del contenedor

  1. En AWS, navega hasta el contenedor correspondiente del nuevo escenario de Snowflake. A continuación, en la pestaña Propiedades, vaya a Eventos.

Pestaña Propiedades de AWS

2. Cree nuevos eventos para cada conjunto de Datos Corrientes, según sea necesario(Mensajería, Comportamiento del Usuario), o ambos.

Creación de un nuevo evento en AWS

3. Marque la casilla correspondiente para el objeto crear notificaciones, así como el ARN en la parte inferior del formulario (de la columna del canal de notificación en Snowflake).

Configuración de Snowpipes Auto-ingest

Para que la configuración de AWS SQS produzca las tablas correctas, debes definir adecuadamente la estructura de los datos entrantes utilizando los siguientes ejemplos y esquemas determinados en nuestra documentación de Currents para eventos de interacción con mensajes o mensajería, eventos de comportamiento del usuario o del cliente, o ambos.

Es fundamental estructurar tus tablas de acuerdo con los esquemas de Braze Currents, ya que Braze Currents cargará continuamente datos en ellas a través de campos específicos con tipos de datos específicos. Por ejemplo, un user_id se cargará como cadena y se denominará user_id en los datos de Currents.

  1. Crea una tabla INTO que cargaremos continuamente utilizando la siguiente estructura del esquema Currents:
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
    );

2. Crea la tubería auto_ingest y especifica: 2.1. Qué tabla cargar 2.2 Cómo cargar la siguiente tabla

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. Crea una tabla INTO que cargaremos continuamente utilizando la siguiente estructura del esquema Currents:
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
        );

2. Crea la tubería de carga continua AUTO y especifica: 2.1. Qué tabla cargar 2.2 Cómo cargar la siguiente tabla

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/);

Para ver los tipos de análisis que puede realizar con Braze Currents, consulte nuestros Bloques Looker.

¿QUÉ TAN ÚTIL FUE ESTA PÁGINA?
New Stuff!