Transferência de dados do Amazon S3 para o Snowflake
Se seus dados estiverem atualmente no Amazon S3, você poderá transferi-los para o Snowflake ou outro data warehouse relacional usando o processo ELT (Extract Load Transform).
Se você tiver casos de uso mais específicos e quiser que a Braze faça a manutenção de sua instância do Currents, entre em contato com seu gerente de conta da Braze e pergunte sobre a Braze Data Professional Services.
Processo de carregamento automatizado
Esse processo de carregamento automatizado transfere os dados para o Snowflake, o que lhe permitirá usar os blocos do Looker do Braze para visualizar esses dados no Looker e ajudar a gerar insights e feedback sobre suas campanhas, Canvas e segmentos.
Depois de configurar uma exportação do Currents para o S3 e de receber dados de eventos ao vivo, você poderá configurar seu pipeline ELT ao vivo no Snowflake configurando os seguintes componentes:
Configuração das filas do AWS SQS
Os Snowpipes de ingestão automática dependem de filas SQS para enviar notificações do S3 para o Snowpipe. Esse processo é gerenciado pelo Snowflake após a configuração do SQS.
Etapa 1: Configurar o estágio S3 externo
As tabelas em seu banco de dados são criadas a partir desse estágio.
Ao configurar o Currents na Braze, especifique uma jornada de pasta para os arquivos do Currents seguirem para o bucket S3. Aqui usamos currents
, a jornada padrão da pasta.
Em seguida, crie os seguintes itens na ordem listada:
-
Na AWS, crie um novo par de chaves público-privadas para o bucket S3 desejado, com concessões de acordo com os requisitos de segurança de sua organização.
-
No Snowflake, crie um banco de dados e um esquema de sua escolha (denominados
currents
epublic
no exemplo a seguir). -
Crie um estágio Snowflake S3 (chamado
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;
Em seguida, defina o formato de arquivo AVRO para seu palco.
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/);
Por fim, use o comando show pipes;
para mostrar suas informações de SQS. O nome da fila SQS ficará visível em uma nova coluna chamada NOTIFICATION_CHANNEL
porque esse pipe foi criado como um pipe de teste automático.
Etapa 2: Criar eventos de balde
Na AWS, navegue até o bucket correspondente do novo estágio do Snowflake. Em seguida, na guia Properties (Propriedades ), acesse Events (Eventos).
Crie novos eventos para cada conjunto de Currents Data, conforme necessário(envio de mensagens, comportamento do usuário), ou ambos.
Marque a caixa apropriada para as notificações de criação de objeto, bem como o ARN na parte inferior do formulário (da coluna do canal de notificação no Snowflake).
Configuração de Snowpipes de teste automático
Para garantir que a configuração do AWS SQS produza as tabelas corretas, é necessário definir adequadamente a estrutura dos dados de entrada usando os seguintes exemplos e esquemas determinados em nossa documentação do Currents para eventos de engajamento com mensagens ou envio de mensagens, eventos de comportamento do usuário ou do cliente, ou ambos.
É fundamental estruturar suas tabelas de acordo com os esquemas do Braze Currents, pois o Braze Currents carregará continuamente os dados nelas por meio de campos específicos com tipos de dados específicos. Por exemplo, um user_id
será carregado como uma string e chamado de user_id
nos dados do Currents.
Dependendo da sua integração com o Currents, pode haver diferentes eventos que devem ser configurados (como eventos de engajamento com mensagens ou envio de mensagens e eventos de comportamento do usuário ou do cliente). Você também pode escrever um script para parte ou todo esse processo.
Primeiro, crie uma tabela INTO
que será carregada continuamente usando a seguinte estrutura do 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
);
Em seguida, crie o pipe auto_ingest
e especifique:
- Qual tabela carregar
- Como carregar a tabela a seguir
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/);
Você deve repetir os comandos CREATE TABLE
e CREATE PIPE
para cada tipo de evento.
Primeiro, crie uma tabela INTO
que será carregada continuamente usando a seguinte estrutura do 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
);
Em seguida, crie o pipe de carga contínua AUTO e especifique:
- Qual tabela carregar
- Como carregar a tabela a seguir
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/);
Você deve repetir os comandos CREATE TABLE
e CREATE PIPE
para cada tipo de evento.
Para ver os tipos de análise de dados que você pode realizar usando o Braze Currents, consulte nossos blocos do Looker.
Entre em contato com seu gerente de conta Braze se tiver alguma dúvida ou se estiver interessado em ser orientado pelo Braze durante esse processo.