Transférer des données d’Amazon S3 vers Snowflake
Si vos données se trouvent actuellement dans Amazon S3, vous pouvez les transférer vers Snowflake ou un autre entrepôt de données relationnel à l’aide du processus d’extraction, de chargement et de transformation (ETL). Cette page vous explique comment procéder.
Si vous avez des cas d’utilisation plus spécifiques et que vous souhaitez que Braze assure le service de votre instance Braze Currents, contactez votre gestionnaire de compte Braze et renseignez-vous sur les Braze Data Professional Services.
Comment cela fonctionne-t-il ?
Le processus d’extraction, de chargement et de transformation (ETL) est un processus automatisé qui déplace les données dans Snowflake, ce qui vous permettra d’utiliser les blocs Looker de Braze pour visualiser ces données dans Looker afin d’aider à générer des informations et des retours dans vos campagnes, Canvases et segments.
Une fois que vous avez configuré une exportation Currents vers S3 et que vous recevez des données d’événements en direct, vous pouvez configurer votre pipeline ELT en direct dans Snowflake en configurant les composants suivants :
Configuration des files d’attente AWS SQS
Les Snowpipes Auto-ingest s’appuient sur les files d’attente SQS pour envoyer les notifications de S3 à Snowpipe. Ce processus est géré par Snowflake après la configuration de SQS.
Étape 1 : Configurez l’étage S3 externe
Les tables de votre base de données sont créées à ce stade.
-
Lorsque vous configurez Currents dans Braze, indiquez un chemin de dossier pour que vos fichiers Currents suivent dans votre compartiment S3. Nous utilisons ici
currents, le chemin d’accès au dossier par défaut. -
Créez les éléments suivants dans l’ordre indiqué : 2.1 Dans AWS, créez une nouvelle paire de clés publique-privée pour le compartiment S3 souhaité, avec des subventions conformes aux exigences de sécurité de votre organisation. 2.2. Dans Snowflake, créez une base de données et un schéma de votre choix (nommés
currentsetpublicdans l’exemple suivant). 2.3. Créez une scène S3 Snowflake (appeléebraze_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. Définissez le format de fichier AVRO pour votre scène.
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. Enfin, utilisez la commande show pipes; pour afficher vos informations SQS. Le nom de la file d’attente SQS sera visible dans une nouvelle colonne appelée NOTIFICATION_CHANNEL, car ce tuyau a été créé en tant que tuyau d’attente automatique.
Étape 2 : Créer des événements de compartiments
- Dans AWS, naviguez jusqu’au compartiment correspondant de la nouvelle étape Snowflake. Ensuite, sous l’onglet Propriétés, allez dans Événements.
!onglet Propriétés AWS](/docs/fr/assets/img/aws-properties.png?842cf60a53909de8ce2e9978762fa540){: height=”50%” width=”50%”}
2. Créez de nouveaux événements pour chaque ensemble de données actuelles, selon les besoins(envoi de messages, comportement de l’utilisateur), ou les deux.
Création d’un nouvel événement dans AWS](/docs/fr/assets/img/aws-events.png?ecf244dc3e6f400bb857c64c3235b1a3){: height=”50%” width=”50%”}
3. Cochez la case appropriée pour les notifications de création d’objet, ainsi que l’ARN au bas du formulaire (à partir de la colonne du canal de notification dans Snowflake).
Configuration des tuyaux d’arrosage auto-ingest
Pour que la configuration AWS SQS produise les tables correctes, vous devez définir correctement la structure des données entrantes en utilisant les exemples suivants et les schémas déterminés dans notre documentation Currents pour les événements d’engagement ou de messages, les événements de comportement des utilisateurs ou des clients, ou les deux.
Il est essentiel de structurer vos tables conformément aux schémas de Braze Currents, car Braze Currents y chargera continuellement des données par le biais de champs spécifiques avec des types de données spécifiques. Par exemple, un user_id sera chargé sous forme de chaîne de caractères et appelé user_id dans les données de Currents.
En fonction de votre intégration Currents, vous pouvez avoir différents événements que vous devez configurer (tels que les événements d’engagement ou d’envoi de messages et les événements de comportement utilisateur ou client). Vous pouvez également rédiger un script pour tout ou partie de ce processus.
- Créez une table
INTOque nous chargerons continuellement en utilisant la structure suivante du schéma 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. Créez le tuyau auto_ingest et spécifiez :
2.1. Quel tableau charger
2.2 Comment charger le tableau suivant
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/);
Vous devez répéter les commandes CREATE TABLE et CREATE PIPE pour chaque type d’événement.
- Créez une table
INTOque nous chargerons continuellement en utilisant la structure suivante du schéma 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. Créez le tuyau de chargement continu AUTO et spécifiez-le : 2.1. Quel tableau charger 2.2 Comment charger le tableau suivant
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/);
Vous devez répéter les commandes CREATE TABLE et CREATE PIPE pour chaque type d’événement.
Pour voir les types d’analyse/analytique que vous pouvez effectuer à l’aide de Braze Currents, consultez nos blocs Looker.
Contactez votre gestionnaire de compte Braze si vous avez des questions ou si vous souhaitez que Braze vous guide tout au long de ce processus.
Modifier cette page sur GitHub