Ir para o conteúdo

Ingestão de dados na nuvem para Amazon Redshift

Esta página aborda tudo o que você precisa para sincronizar dados do Amazon Redshift com a Braze usando a Ingestão de dados na nuvem (CDI): os recursos a serem criados no Redshift, como conectar a fonte e criar uma sincronização na Braze, a tabela de origem para cada tipo de dado e a solução de problemas específica do Redshift.

Visão geral da configuração

  1. Na sua instância do Redshift, configure as tabelas ou visualizações que você deseja sincronizar com a Braze.
  2. Crie um usuário do Redshift para a Braze com um dos métodos de autenticação compatíveis e conceda a ele acesso às suas tabelas.
  3. Confira se o acesso da Braze às tabelas do Redshift que você deseja sincronizar está liberado. A Braze se conecta ao Redshift pela internet.
  4. Crie uma nova fonte e uma sincronização no dashboard da Braze.
  5. Valide a integração e inicie a sincronização.

Etapa 1: Configure sua tabela de origem

As etapas desta seção criam uma tabela com uma coluna PAYLOAD. Se você planeja mapear colunas com Visual ou escrever uma consulta com SQL na etapa Definição de dados, pode usar uma tabela ou visualização existente. Nesse caso, pule a etapa de criação da tabela e conceda à Braze acesso de leitura às tabelas ou visualizações que você deseja sincronizar. Para comparar as opções, consulte Escolha uma opção de definição de dados.

Você pode nomear o banco de dados, o esquema e a tabela como quiser, mas os nomes das colunas devem corresponder às definições nas guias a seguir. Você também pode usar uma visualização ou uma visualização materializada em vez de uma tabela.

Se quiser, configure um novo banco de dados e esquema para armazenar sua tabela de origem:

CREATE DATABASE BRAZE_CLOUD_PRODUCTION;
CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION;

Selecione a guia do tipo de dado que você deseja sincronizar.

Atributos do usuário, eventos personalizados e eventos de compra usam o mesmo formato de tabela de origem. Apenas o conteúdo de PAYLOAD muda.

CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.USERS_ATTRIBUTES_SYNC (
   updated_at timestamptz default sysdate,
   --at least one of external_id, alias_name and alias_label, or braze_id is required
   external_id varchar,
   --if using user alias, both alias_name and alias_label are required
   alias_label varchar,
   alias_name varchar,
   --braze_id can only be used to update existing users created through the Braze SDK
   braze_id varchar,
   --If you include both email and phone, email is used as the primary identifier
   email varchar,
   phone varchar,
   payload varchar(max)
)
  • UPDATED_AT - O horário em que esta linha foi atualizada ou adicionada à tabela. A Braze sincroniza as linhas em que UPDATED_AT é posterior ao último valor sincronizado. Linhas com o carimbo de data/hora exatamente no limite podem ser sincronizadas novamente se novas linhas tiverem esse mesmo carimbo de data/hora.
  • Colunas de identificador de usuário - Sua tabela pode conter uma ou mais colunas de identificador de usuário. Cada linha deve conter apenas um identificador (external_id, a combinação de alias_name e alias_label, braze_id, email ou phone). Uma tabela de origem pode ter colunas para um, dois, três, quatro ou todos os cinco tipos de identificador.
    • EXTERNAL_ID - Identifica o usuário que você deseja atualizar. Deve corresponder ao valor de external_id usado na Braze.
    • ALIAS_NAME e ALIAS_LABEL - Essas duas colunas criam um objeto de alias de usuário. alias_name deve ser um identificador exclusivo, e alias_label especifica o tipo de alias. Os usuários podem ter vários aliases com rótulos diferentes, mas apenas um alias_name por alias_label.
    • BRAZE_ID - O identificador de usuário da Braze. Ele é gerado pelo SDK da Braze. Não é possível criar novos usuários usando um Braze ID por meio da ingestão de dados na nuvem. Para criar novos usuários, especifique um ID de usuário externo ou um alias de usuário.
    • EMAIL - O endereço de e-mail do usuário. Se existirem vários perfis com o mesmo endereço de e-mail, o perfil atualizado mais recentemente terá prioridade nas atualizações. Se você incluir tanto o e-mail quanto o telefone, o e-mail será usado como identificador principal.
    • PHONE - O número de telefone do usuário. Se existirem vários perfis com o mesmo número de telefone, o perfil atualizado mais recentemente terá prioridade nas atualizações.
  • PAYLOAD - É uma string JSON com os campos que você deseja sincronizar com o usuário na Braze.

Para sincronizações de atributos, PAYLOAD segue o formato do objeto de atributos do usuário. Você pode incluir atributos personalizados aninhados, arrays de objetos e status de grupos de inscrições. Para ver exemplos de carga útil, consulte Configuração da tabela.

Eventos personalizados usam a mesma tabela de origem dos atributos do usuário. Crie a tabela mostrada na guia Atributos do usuário e preencha PAYLOAD com um objeto de evento.

Para sincronizar eventos, é necessário informar o nome do evento. Formate o campo time como uma string ISO 8601 ou no formato yyyy-MM-dd'T'HH:mm:ss:SSSZ. Se o campo time não estiver presente, a Braze usará o valor da coluna UPDATED_AT como horário do evento. Os demais campos, incluindo app_id e properties, são opcionais.

Você pode sincronizar um evento por linha.

{
    "app_id" : "your-app-id",
    "name" : "rented_movie",
    "time" : "2013-07-16T19:20:45+01:00",
    "properties": {
        "movie": "The Sad Egg",
        "director": "Alex Smith"
    }
}

Eventos de compra usam a mesma tabela de origem dos atributos do usuário. Crie a tabela mostrada na guia Atributos do usuário e preencha PAYLOAD com um objeto de compra.

Para sincronizar eventos de compra, é necessário informar product_id, currency e price. Formate o campo opcional time como uma string ISO 8601 ou no formato yyyy-MM-dd'T'HH:mm:ss:SSSZ. Se o campo time não estiver presente, a Braze usará o valor da coluna UPDATED_AT como horário do evento. Os demais campos, incluindo app_id, quantity e properties, são opcionais.

Você pode sincronizar um evento de compra por linha.

{
    "app_id" : "11ae5b4b-2445-4440-a04f-bf537764c9ad",
    "product_id" : "Completed Order",
    "currency" : "USD",
    "price" : 219.98,
    "time" : "2013-07-16T19:20:30+01:00",
    "properties" : {
        "products" : [ { "name": "Monitor", "category": "Gaming", "product_amount": 19.99 },
        { "name": "Gaming Keyboard", "category": "Gaming ", "product_amount": 199.99 }
        ]
    }
}

Antes de criar uma sincronização de catálogo, crie o catálogo de destino na Braze. Para ver o fluxo completo de catálogos, consulte Sincronizar e excluir dados de catálogo.

CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC (
   updated_at timestamptz default sysdate not null,
   --ID of the catalog item to be created or updated
   id varchar not null,
   --Catalog fields and values that should be added or updated
   payload varchar(max),
   --The catalog item associated with this ID should be deleted
   deleted boolean
)

Conceda ao usuário da Braze acesso a esta tabela, junto com suas outras tabelas de origem:

GRANT SELECT ON TABLE CATALOGS_SYNC TO braze_user;

O nome da integração deve corresponder exatamente ao nome do catálogo que você criou na Braze.

A Braze recomenda criar uma visualização a partir dos dados do seu catálogo para que a tabela de origem seja totalmente atualizada a cada execução da sincronização. Por exemplo, se você tiver uma tabela de dados de produtos (product_catalog_1) com product_id e mais três atributos, poderá sincronizar o seguinte:

CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC AS
SELECT
    CURRENT_TIMESTAMP as UPDATED_AT,
    Product_id as id,
    JSON_SERIALIZE(
        OBJECT (
            'attribute_1',
            attribute_1,
            'attribute_2',
            attribute_2,
            'attribute_3',
            attribute_3)
    ) as PAYLOAD FROM "product_catalog_1";

Os disparos de Canvas viabilizam a personalização zero-copy. Para saber como configurar o Canvas de destino e o que considerar, consulte Personalização zero-copy.

CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CANVAS_TRIGGERS_SYNC (
    updated_at timestamptz default sysdate not null,
    --at least one of external_id or alias_name and alias_label is required
    external_id varchar not null,
    --if using user alias, both alias_name and alias_label are required
    alias_label varchar,
    alias_name varchar,
    properties varchar(max)
 );

As sincronizações de disparo de Canvas diferem de outras sincronizações de dados de usuários de três maneiras:

  • Só há suporte para os identificadores ID externo ou alias de usuário. E-mail e números de telefone não são identificadores compatíveis.
  • Só é possível sincronizar usuários que já existem na Braze. Não é possível criar novos usuários.
  • PROPERTIES substitui a coluna PAYLOAD. Essa coluna é uma string JSON com os campos que você quer usar como propriedades de entrada no Canvas para personalização.

Sua tabela de disparos de Canvas precisa das seguintes colunas:

  • UPDATED_AT - O momento em que essa linha foi atualizada ou adicionada à tabela. A Braze sincroniza as linhas em que UPDATED_AT é posterior ao último valor sincronizado. As linhas com o timestamp exatamente no limite podem ser sincronizadas novamente se novas linhas tiverem esse mesmo timestamp.
  • EXTERNAL_ID ou ALIAS_NAME e ALIAS_LABEL como coluna de identificador de usuário. Essas colunas identificam os usuários para os quais você quer disparar o envio de mensagens do Canvas.
    • EXTERNAL_ID - Identifica o usuário que vai entrar no Canvas. Esse valor deve corresponder ao valor de external_id usado na Braze.
    • ALIAS_NAME e ALIAS_LABEL - Essas colunas criam um objeto de alias de usuário. alias_name deve ser um identificador único, e alias_label especifica o tipo de alias. Os usuários podem ter vários aliases com rótulos diferentes, mas apenas um alias_name por alias_label.
  • PROPERTIES - Uma string JSON com os campos que ficarão disponíveis como propriedades de personalização no seu Canvas. Ela deve conter informações específicas do usuário.

Conceda ao usuário da Braze acesso a esta tabela:

GRANT SELECT ON TABLE CANVAS_TRIGGERS_SYNC TO braze_user;

Para começar, selecione o tipo de dado Disparos de Canvas ao criar uma nova sincronização.

As tabelas de origem para exclusões de usuários devem incluir um ou mais tipos de identificador de usuário e um carimbo de data/hora UPDATED_AT. Colunas de carga útil não são compatíveis com dados de exclusão de usuários.

  • UPDATED_AT - O momento em que esta linha foi atualizada ou adicionada à tabela. A Braze sincroniza as linhas em que UPDATED_AT é posterior ao último valor sincronizado. As linhas que estiverem exatamente no carimbo de data/hora limite podem ser sincronizadas novamente se novas linhas tiverem esse mesmo carimbo de data/hora.
  • Colunas de identificador de usuário - Cada linha deve conter apenas um identificador: external_id, a combinação de alias_name e alias_label, ou braze_id. Uma tabela de origem pode conter colunas para um, dois ou todos os três tipos de identificador.
    • EXTERNAL_ID - Identifica o usuário que você deseja atualizar. Deve corresponder ao valor de external_id usado na Braze.
    • ALIAS_NAME e ALIAS_LABEL - Essas duas colunas criam um objeto de alias de usuário. alias_name deve ser um identificador exclusivo, e alias_label especifica o tipo de alias. Os usuários podem ter vários aliases com rótulos diferentes, mas apenas um alias_name por alias_label.
    • BRAZE_ID - O identificador de usuário da Braze. Ele é gerado pelo SDK da Braze, e não é possível criar novos usuários usando um ID da Braze por meio da ingestão de dados na nuvem. Para criar novos usuários, especifique um ID de usuário externo ou um alias de usuário.
CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.USERS_DELETES (
   updated_at timestamptz default sysdate,
   --at least one of external_id, alias_name and alias_label, or braze_id is required
   external_id varchar,
   --if using user alias, both alias_name and alias_label are required
   alias_label varchar,
   alias_name varchar,
   --braze_id can only be used to update existing users created through the Braze SDK
   braze_id varchar
);

Na página Criar sincronização de importação, defina o Tipo de dados como Excluir usuários para que as ações adequadas sejam executadas durante a execução da integração. Para saber mais, consulte Excluir usuários com a Ingestão de dados na nuvem.

Etapa 2: Configure a autenticação

A Braze se conecta ao Redshift como um usuário do banco de dados. Crie o usuário com um dos seguintes métodos de autenticação:

Método Como a Braze faz a autenticação O que você insere na Braze
Username and password Braze connects as a Redshift database user with a password. Username and Password

Username and password

A Braze se conecta ao Redshift como um usuário de banco de dados com senha. Crie um usuário para a Braze:

CREATE USER braze_user PASSWORD '{password}';

Guarde o nome de usuário e a senha em um local seguro até precisar inseri-los no dashboard da Braze ao criar a fonte.

Etapa 3: Conceda permissões ao usuário

Conceda ao usuário que você criou para a Braze acesso à sua tabela de origem:

GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION to braze_user;
GRANT SELECT ON TABLE USERS_ATTRIBUTES_SYNC TO braze_user;

Essas são as permissões mínimas necessárias para esse usuário. Se você for criar várias integrações de CDI, talvez seja melhor conceder permissões a um esquema ou gerenciar permissões usando um grupo.

Etapa 4: Permita o acesso aos IPs da Braze

Se você tiver um firewall ou outras políticas de rede, precisa liberar o acesso de rede da Braze à sua instância do Redshift. Um exemplo de endpoint de URL do Redshift é “example-cluster.ap-northeast-2.redshift.amazonaws.com”.

Alguns pontos importantes:

  • Talvez você também precise alterar seus grupos de segurança para permitir que a Braze acesse seus dados no Redshift.
  • Permita explicitamente o tráfego de entrada nos IPs da tabela e na porta usada para consultar seu cluster do Redshift (o padrão é 5439). Permita explicitamente a conectividade TCP do Redshift nessa porta, mesmo que as regras de entrada estejam definidas como “permitir tudo”.
  • O endpoint do cluster do Redshift precisa estar acessível publicamente para que a Braze consiga se conectar ao seu cluster.
    • Se você não quiser que seu cluster do Redshift fique acessível publicamente, pode configurar uma VPC e uma instância EC2 para usar um túnel SSH e acessar os dados do Redshift. Para saber mais, consulte a publicação do AWS Knowledge Center.

Permita o acesso a partir dos seguintes IPs, correspondentes à região do seu dashboard da Braze.

Para as instâncias US-01, US-02, US-03, US-04, US-05, US-06, US-07, estes são os endereços IP relevantes:

  • 23.21.118.191
  • 34.206.23.173
  • 50.16.249.9
  • 52.4.160.214
  • 54.87.8.34
  • 54.156.35.251
  • 52.54.89.238
  • 18.205.178.15

Para a instância US-08, estes são os endereços IP relevantes:

  • 52.151.246.51
  • 52.170.163.182
  • 40.76.166.157
  • 40.76.166.170
  • 40.76.166.167
  • 40.76.166.161
  • 40.76.166.156
  • 40.76.166.166
  • 40.76.166.160
  • 40.88.51.74
  • 52.154.67.17
  • 40.76.166.80
  • 40.76.166.84
  • 40.76.166.85
  • 40.76.166.81
  • 40.76.166.71
  • 40.76.166.144
  • 40.76.166.145

Para a instância US-10, estes são os endereços IP relevantes:

  • 100.25.232.164
  • 35.168.86.179
  • 52.7.44.117
  • 3.92.153.18
  • 35.172.3.129
  • 50.19.162.19

Para as instâncias EU-01 e EU-02, estes são os endereços IP relevantes:

  • 52.58.142.242
  • 52.29.193.121
  • 35.158.29.228
  • 18.157.135.97
  • 3.123.166.46
  • 3.64.27.36
  • 3.65.88.25
  • 3.68.144.188
  • 3.70.107.88

Para a instância AU-01, estes são os endereços IP relevantes:

  • 13.210.1.145
  • 13.211.70.159
  • 13.238.45.54
  • 52.65.73.167
  • 54.153.242.239
  • 54.206.45.213

Para a instância ID-01, estes são os endereços IP relevantes:

  • 108.136.157.246
  • 108.137.30.207
  • 16.78.128.71
  • 16.78.14.134
  • 16.78.162.208
  • 43.218.73.35

Para a instância JP-01, estes são os endereços IP relevantes:

  • 13.159.155.212
  • 54.199.221.241
  • 13.192.23.16
  • 54.250.120.139
  • 18.181.114.232
  • 3.114.38.100

Para a instância KR-01, estes são os endereços IP relevantes:

  • 43.200.215.4
  • 52.79.67.175
  • 52.79.113.60
  • 3.34.212.92
  • 54.116.134.231
  • 3.37.197.225

Etapa 5: Crie uma nova fonte no dashboard da Braze

No dashboard da Braze, acesse Configurações de dados > Ingestão de dados na nuvem > Fontes, selecione Adicionar fonte de dados e, em seguida, selecione Amazon Redshift.

Etapa 5.1: Adicione as informações de conexão do Redshift e a tabela de origem

Escolha um nome para sua fonte e insira suas credenciais e configurações do Redshift. Selecione o método de autenticação que você configurou na Etapa 2 e insira as credenciais correspondentes:

Se estiver usando um túnel de rede privada, ative o controle deslizante e insira as informações do túnel. Depois, avance para a próxima etapa.

Etapa 5.2: Teste a conexão e conecte-se à fonte

Em seguida, selecione Testar conexão. Quando o teste for bem-sucedido, conclua as configurações restantes e clique em Conectar à fonte. Se a conexão falhar, uma mensagem de erro aparecerá para ajudar a solucionar o problema.

Etapa 6: Crie uma nova sincronização no dashboard da Braze

Acesse Configurações de dados > Ingestão de dados na nuvem > Sincronizações e selecione Criar sincronização de dados.

Configure os detalhes da sincronização e defina seus dados

Insira um nome para a sincronização. Depois, selecione uma fonte ativa e um tipo de dado de sincronização. Em seguida, selecione Visual ou Tabela e insira sua tabela de origem, ou selecione SQL para escrever uma consulta SQL personalizada. Por fim, selecione Prévia e validação.

Depois que a validação for bem-sucedida, uma prévia dos dados aparecerá. Selecione Próximo: Notificações para continuar. Se a validação falhar, uma mensagem de erro aparecerá para ajudar a solucionar o problema.

Adicionar preferências de notificação

Insira um ou mais e-mails de contato para receber notificações de erros de sincronização. A Braze usa essas informações de contato para enviar notificações sobre erros de integração, como a perda inesperada de acesso a uma tabela.

Os e-mails de contato recebem apenas notificações de erros globais ou no nível da sincronização, como tabelas ausentes, problemas de permissões e outros. Eles não recebem notificações de problemas no nível da linha. Os erros globais indicam problemas críticos na conexão que impedem a execução das sincronizações.

Esses problemas podem incluir:

  • Problemas de conectividade
  • Falta de recursos
  • Problemas de permissões
  • O nível do catálogo está sem espaço (somente sincronizações de catálogo)

Definir o cronograma

Por fim, configure a sincronização como não recorrente ou recorrente.

As sincronizações não recorrentes são executadas somente quando você seleciona Sincronizar agora no dashboard ou chama o endpoint Disparar uma sincronização.

As sincronizações recorrentes podem ser executadas com frequência de até uma vez a cada 5 minutos ou com intervalo de até uma vez por mês. Por padrão, o intervalo mais curto que você pode definir no dashboard é de 15 minutos. Isso ajuda a gerenciar os custos de computação e o volume de solicitações do seu data warehouse. Para sincronizar a cada 5 minutos, entre em contato com o suporte da Braze ou com seu gerente de sucesso do cliente. A Braze agenda as sincronizações recorrentes em UTC.

Execute a sincronização

Depois de ativada, a sincronização é executada de acordo com o cronograma definido durante a configuração. Se quiser executar a sincronização fora do cronograma ou buscar os dados mais recentes, selecione Sincronizar agora. Essa execução não afeta as próximas sincronizações agendadas. Para iniciar uma sincronização automaticamente quando seus dados forem atualizados, chame o endpoint Disparar uma sincronização a partir do seu pipeline.

Configure integrações ou usuários adicionais (opcional)

Você pode configurar várias integrações com a Braze. Ao criar sincronizações adicionais, você pode reutilizar credenciais existentes se estiver se conectando à mesma conta do Redshift.

Se você reutilizar o mesmo usuário em várias integrações, não poderá excluir o usuário no dashboard da Braze até que ele seja removido de todas as sincronizações ativas.

Use o Redshift como fonte conectada

Uma fonte conectada é uma alternativa zero-copy à sincronização de dados com a Braze. A Braze consulta sua instância do Redshift diretamente para criar segmentos CDI, sem copiar os dados subjacentes. Para conhecer os conceitos, as limitações e as implicações de custo, consulte Fontes conectadas.

Etapa 1: Crie o usuário e conceda permissões

Crie um usuário para a Braze com um dos métodos da Etapa 2: Configure a autenticação. Depois, conceda a ele as seguintes permissões:

GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION to braze_user;
GRANT CREATE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION to braze_user;
GRANT SELECT ON TABLE USERS_ATTRIBUTES_SYNC TO braze_user;

Crie um usuário para sua fonte conectada. Esse usuário é usado para gerar a lista de tabelas disponíveis nas suas extensões de segmento CDI e para consultar as tabelas de origem ao criar novos segmentos. Depois que a fonte conectada for criada, a Braze identificará os nomes e as descrições de todas as tabelas disponíveis para o usuário no esquema de origem. Se você for criar várias integrações de CDI, talvez seja melhor conceder permissões a um esquema ou gerenciar permissões usando um grupo.

Você pode conceder acesso a todas as tabelas de um esquema ou conceder privilégios apenas a tabelas específicas. Todas as tabelas às quais a função da Braze tiver acesso ficarão disponíveis para consulta na extensão de segmento CDI. Lembre-se de conceder ao usuário acesso a todas as novas tabelas assim que forem criadas ou de definir permissões padrão para o usuário.

A permissão create table é necessária para que a Braze possa criar uma tabela com os resultados da consulta da sua extensão de segmento CDI antes de atualizar o segmento na Braze. A Braze cria uma tabela temporária por segmento, que existe apenas enquanto a Braze atualiza o segmento.

A configuração de acesso à rede é a mesma da Etapa 4.

Etapa 2: Crie a fonte conectada na Braze

Acesse Configurações de dados > Ingestão de dados na nuvem > Fontes conectadas, selecione Adicionar fonte de dados e, em seguida, selecione Amazon Redshift.

Em Configurar fonte, insira o seguinte:

  • Credenciais: URL do host do Redshift, Porta e os campos do seu método de autenticação. Insira Username and Password.
  • Configuração: Banco de dados e Esquema

Se necessário, ative Conectar com túnel SSH e insira Host do túnel, Porta do túnel e Nome de usuário do túnel.

Escolha um nome para a fonte conectada. Esse nome aparece na lista de fontes disponíveis quando você cria uma nova extensão de segmento CDI.

Configure um tempo máximo de execução para essa fonte. A Braze interrompe automaticamente todas as consultas que excederem o tempo máximo de execução. O tempo máximo permitido é de 60 minutos; um tempo menor reduz os custos na sua conta do Redshift. Essa configuração se aplica às consultas executadas por meio dessa fonte, incluindo sincronizações e extensões de segmento CDI que a utilizam.

Etapa 3: Finalize a configuração do Redshift

Se suas credenciais estiverem com Conectar com túnel SSH selecionado, anote a chave pública RSA exibida na etapa Testar conexão e adicione-a ao usuário do túnel SSH.

Depois de adicionar a chave ao usuário, selecione Testar conexão na Braze e, em seguida, selecione Concluído. Sua fonte conectada está criada e pronta para uso nas extensões de segmento CDI.

Você pode configurar várias fontes conectadas com a Braze, mas cada fonte deve ser configurada para se conectar a um esquema diferente. Ao criar fontes adicionais, você pode reutilizar credenciais existentes se estiver se conectando à mesma conta do Redshift.

Formate uma carga útil a partir de colunas existentes

Se você prefere armazenar cada atributo em uma coluna própria internamente, precisa converter essas colunas em uma string JSON para preencher a sincronização com a Braze. Use esta consulta no Redshift para formatar as colunas de origem em campos de CDI.

CREATE TABLE "EXAMPLE_USER_DATA"
    (attribute_1 string,
     attribute_2 string,
     attribute_3 number,
     my_user_id string);

SELECT
    CURRENT_TIMESTAMP as UPDATED_AT,
    my_user_id as EXTERNAL_ID,
    JSON_SERIALIZE(
        OBJECT (
            'attribute_1',
            attribute_1,
            'attribute_2',
            attribute_2,
            'yet_another_attribute',
            attribute_3)
    ) as PAYLOAD FROM "EXAMPLE_USER_DATA";

Para mais orientações de otimização, consulte Melhores práticas da Ingestão de dados na nuvem.

Solução de problemas

O teste de conexão está lento

O teste de conexão é executado no seu data warehouse, então aumentar a capacidade do warehouse pode melhorar a velocidade. Usar uma instância SQL serverless minimiza o tempo de aquecimento e melhora a taxa de processamento das consultas, mas pode gerar custos de integração um pouco maiores.

Permissão negada para a relação {table_name}

Se você receber este erro:

  • Conceda a permissão usage no esquema para esse usuário.
  • Conceda a permissão select na tabela para esse usuário.

Erro ao criar conexão

Se você receber este erro, verifique se o endpoint e a porta do Redshift estão corretos.

Erro ao criar túnel SSH

Se você receber este erro:

  • Verifique se a chave pública exibida no seu dashboard da Braze está no host EC2 usado para o túnel SSH.
  • Verifique se o seu nome de usuário está correto.
  • Verifique se o túnel SSH está correto.

Identificador de snapshot inválido

Se a Braze retornar um erro Invalid snapshot identifier durante a etapa Testar conexão ou a configuração da sincronização, significa que o Redshift não consegue resolver a referência de snapshot usada quando seu objeto de origem é consultado.

No Redshift, um snapshot é um backup de um cluster em um determinado momento. Cada snapshot tem um identificador exclusivo que o Redshift usa para referenciar esse estado de backup. Para saber mais, consulte Snapshots e backups do Amazon Redshift.

Esse erro pode ocorrer quando os metadados mudam enquanto a Braze valida o objeto de origem, por exemplo durante operações de cópia, recuperação ou replicação de snapshots. Para saber mais, consulte cópia de snapshots para outra região da AWS e recuperação de um cluster a partir de um snapshot.

Para solucionar o problema:

  1. Verifique as configurações da fonte na Braze, incluindo o endpoint do cluster, o banco de dados, o esquema e o nome do objeto.
  2. Execute a mesma consulta diretamente no Redshift para confirmar que a tabela ou visualização pode ser lida e está estável.
  3. Tente novamente depois que as atividades de snapshot, recuperação, redimensionamento ou replicação em andamento forem concluídas.
  4. Se o problema persistir, consulte uma visualização materializada em vez de uma tabela base que muda com frequência.

Uma visualização materializada armazena resultados de consulta pré-calculados que você pode atualizar de acordo com um cronograma, o que pode tornar as leituras mais estáveis para as sincronizações de CDI. Para saber mais, consulte visualizações materializadas no Amazon Redshift.

Exemplo:

CREATE MATERIALIZED VIEW ingestion.users_attributes_mv AS
SELECT updated_at, external_id, alias_label, alias_name, braze_id, email, phone, payload
FROM ingestion.users_attributes_sync;

REFRESH MATERIALIZED VIEW ingestion.users_attributes_mv;

Depois de criar a visualização materializada, use o nome dela como objeto de origem na sua sincronização de CDI da Braze, em vez da tabela base.

Onde executar as verificações SQL

Execute as verificações de validação diretamente no editor SQL do Redshift, na mesma tabela ou visualização usada pela sua integração de CDI. Use o Query Editor v2. Para saber mais, consulte Usar o Amazon Redshift Query Editor v2.

New Stuff!