> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Azure Synapse

> Sincronize eventos personalizados do Azure Synapse para o OneSignal para acionar Journeys automatizados e campanhas de mensagens personalizadas com base no comportamento do usuário.

export const DATA_TYPE_0 = "event data"

export const PLATFORM_0 = "Azure Synapse"

export const COLUMN_HEADER_0 = "Synapse Column"

export const PROPERTIES_DESCRIPTION_0 = "Event metadata as JSON string"

## Visão geral

A integração OneSignal + Azure Synapse permite a sincronização de eventos personalizados do seu workspace Azure Synapse Analytics para o OneSignal para acionar campanhas de mensagens automatizadas e Journeys com base no comportamento do usuário.

Azure Synapse Analytics é o serviço de análise baseado em nuvem da Microsoft que combina integração de dados, data warehousing e análises.

***

## Requisitos

* Acesso a [Event Streams](/docs/pt-BR/event-streams) para eventos de mensagem de saída (Limitações de plano e excedentes se aplicam)
* Acesso a [Custom Events](/docs/pt-BR/custom-events) para sincronização de eventos de entrada (Limitações de plano e excedentes se aplicam)
* [Plano de Conta Atualizado](https://onesignal.com/pricing) (não disponível em apps gratuitos)

### Azure Synapse

* **Workspace Azure Synapse** com acesso ao SQL pool
* **Usuário de banco de dados** com permissões apropriadas
* **Tabelas de eventos** contendo dados comportamentais estruturados
* **Acesso ao firewall** para endereços IP do OneSignal

***

## Configuração

<Steps>
  <Step title="Criar login dedicado para o OneSignal">
    Crie um login dedicado e conta de usuário com uma senha forte e única:

    ```sql theme={null}
    USE <your-database>;

    -- Create census login with the ability to sign in with a password
    CREATE LOGIN CENSUS WITH PASSWORD = '<strong-unique-password>';

    -- Create user for the login
    CREATE USER CENSUS FOR LOGIN CENSUS;

    -- Give the census user the ability to connect to database
    GRANT CONNECT TO CENSUS;
    ```

    <Info>
      Substitua `<your-database>` pelo nome real do seu banco de dados contendo dados de eventos.
    </Info>
  </Step>

  <Step title="Conceder permissões de leitura">
    Forneça acesso somente leitura aos seus dados de eventos:

    ```sql theme={null}
    -- Give the census user the ability to read all tables
    EXEC sp_addrolemember 'db_datareader', CENSUS;

    -- Grant census user ability to read schema and data
    -- Run this for each schema you intend OneSignal to access
    GRANT SELECT, VIEW DEFINITION ON SCHEMA::<your-schema> TO CENSUS;
    ```

    <Info>
      Substitua `<your-schema>` pelo nome real do seu schema contendo dados de eventos. Repita este comando para cada schema que você deseja que o OneSignal acesse.
    </Info>
  </Step>

  <Step title="Configurar acesso ao firewall">
    Configure o firewall do Azure Synapse para permitir endereços IP do OneSignal.

    Use o Portal de Gerenciamento do Windows Azure ou execute **sp\_set\_firewall\_rule** no banco de dados primário:

    ```sql theme={null}
    -- Example: Add firewall rule for OneSignal IP range
    EXEC sp_set_firewall_rule
        N'OneSignal Access',
        'ONESIGNAL_IP_START',
        'ONESIGNAL_IP_END';
    ```

    <Warning>
      Entre em contato com o suporte do OneSignal para obter os intervalos de endereços IP atuais para sua região.
    </Warning>
  </Step>

  <Step title="Conectar ao OneSignal">
    No OneSignal, vá para **Data > Integrations** e clique em **Add Integration**.

    Selecione **Azure Synapse** e forneça os seguintes detalhes de conexão:

    * **Host:** O hostname do seu endpoint SQL do Synapse
    * **Port:** 1433 (padrão)
    * **Database:** O nome do seu banco de dados
    * **Username:** `CENSUS`
    * **Password:** A senha da Etapa 1
  </Step>
</Steps>

***

### Mapeamento de dados de evento

Mapeie seu {DATA_TYPE_0} {PLATFORM_0} para o formato de eventos personalizados do OneSignal:

| Campo OneSignal | {COLUMN_HEADER_0} | Descrição                  | Obrigatório |
| --------------- | ----------------- | -------------------------- | ----------- |
| `name`          | `event_name`      | Identificador de evento    | Sim         |
| `external_id`   | `user_id`         | Identificador de usuário   | Sim         |
| `timestamp`     | `event_timestamp` | Quando o evento ocorreu    | Não         |
| `properties`    | `event_data`      | {PROPERTIES_DESCRIPTION_0} | Não         |

### Exemplo de esquema de tabela de eventos

```sql theme={null}
-- Example Azure Synapse event table
CREATE TABLE analytics.user_events (
    event_id BIGINT IDENTITY(1,1) PRIMARY KEY,
    event_name NVARCHAR(100) NOT NULL,
    user_id NVARCHAR(255) NOT NULL,
    event_timestamp DATETIME2 DEFAULT GETUTCDATE(),
    event_data NVARCHAR(MAX),
    session_id NVARCHAR(255),
    device_type NVARCHAR(50)
)
WITH (DISTRIBUTION = HASH(user_id), CLUSTERED COLUMNSTORE INDEX);
```

### Modo de consulta SQL

Escreva consultas SQL personalizadas para transformar seus dados de eventos:

```sql theme={null}
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_data
FROM analytics.user_events
WHERE event_timestamp >= DATEADD(day, -7, GETUTCDATE())
    AND JSON_VALUE(event_data, '$.value') > 100
ORDER BY event_timestamp DESC;
```

***

## Recursos específicos do Azure

### Arquitetura distribuída

* Eventos distribuídos por `user_id` para desempenho ideal de consulta
* Índices columnstore clusterizados para cargas de trabalho de análise
* Processamento paralelo massivo (MPP) para dados de eventos em larga escala

### Integração com o ecossistema Azure

* Conecte-se ao Azure Data Factory para pipelines de eventos automatizados
* Integre com Azure Event Hubs para streaming de eventos em tempo real
* Aproveite o Azure Active Directory para autenticação

***

## Configuração avançada de rede

O OneSignal pode se conectar com sucesso a instâncias do Azure Synapse que estão usando controles avançados de rede, incluindo restrições de região, listas de permissão de endereços IP ou tunelamento SSH.

Para mais informações sobre como configurar o acesso à rede, entre em contato com seu administrador do Azure Synapse ou suporte do OneSignal.

***

## Limitações

* Baseado no protocolo de conexão do driver JDBC do SQL Server
* Requer regras de firewall explícitas para endereços IP do OneSignal
* Consultas complexas podem impactar o desempenho e os custos do SQL pool
* Operações JSON requerem indexação cuidadosa para desempenho ideal

***

## FAQ

### Posso me conectar a vários schemas do Azure Synapse?

Sim, você pode conceder ao usuário CENSUS acesso a vários schemas executando a instrução `GRANT SELECT, VIEW DEFINITION ON SCHEMA::<schema>` para cada schema contendo dados de eventos.

### Como configuro o acesso ao firewall para o OneSignal?

Use o Portal de Gerenciamento do Azure ou `sp_set_firewall_rule` para adicionar os endereços IP do OneSignal. Entre em contato com o suporte do OneSignal para os intervalos de IP atuais.

### Qual é a diferença entre a integração do Azure Synapse e do SQL Server?

O Azure Synapse usa o mesmo driver JDBC do SQL Server, mas inclui recursos de arquitetura distribuída e requer configuração específica de firewall para acesso à nuvem.
