> ## 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.

# Trino

> Sincronize eventos personalizados do Trino para o OneSignal para acionar Journeys automatizados e campanhas de mensagens personalizadas baseadas em comportamento do usuário.

export const PLATFORM_0 = "Trino"

export const DATA_TYPE_0 = "event data"

export const COLUMN_HEADER_0 = "Trino Column"

export const PROPERTIES_DESCRIPTION_0 = "Event metadata as JSON"

## Visão geral

A integração OneSignal + Trino permite a sincronização de eventos personalizados do seu cluster Trino para o OneSignal para acionar campanhas de mensagens automatizadas e Journeys baseados em comportamento do usuário.

Trino é um mecanismo de consulta SQL distribuído projetado para executar consultas analíticas rápidas contra grandes conjuntos de dados de múltiplas fontes.

***

## Requisitos

* Access to [Event Streams](/docs/en/event-streams) for outbound message events (Plan limitations and overages apply)
* Access to [Custom Events](/docs/en/custom-events) for inbound event syncing (Plan limitations and overages apply)
* [Updated Account Plan](https://onesignal.com/pricing) (not available on free apps)

### Trino

* **Cluster Trino** com acesso à rede
* **Credenciais de usuário** com permissões apropriadas
* Suporte a **conexão TLS** (exigido pelo OneSignal)
* **Dados de evento** acessíveis através de catálogos Trino

***

## Configuração

<Steps>
  <Step title="Configurar conexão Trino">
    In OneSignal, go to **Data > Integrations** and click **Add Integration**.

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

    * **Host:** Nome do host do seu cluster Trino
    * **Username:** Seu nome de usuário Trino
    * **Password:** Sua senha Trino
    * **Port:** 443 (padrão) ou sua porta personalizada

    <Info>
      O OneSignal requer uma conexão TLS para o Trino. Se sua instância não roda na porta 443, especifique sua porta personalizada.
    </Info>
  </Step>

  <Step title="Configurar Advanced Sync Engine (Opcional)">
    Para desempenho aprimorado, configure um catálogo CENSUS dedicado:

    1. Crie um catálogo chamado `CENSUS` contendo um schema chamado `CENSUS`
    2. Garanta que seu conector suporte:
       * Operações `CREATE TABLE` e `DROP TABLE`
       * Escritas de tabela (INSERT, DELETE, UPDATE)
       * Instrução `CREATE OR REPLACE TABLE`
    3. Conceda permissões completas no schema `CENSUS.CENSUS` ao seu usuário OneSignal

    <Info>
      Configurações testadas incluem conectores MySQL, PostgreSQL, Snowflake, Iceberg e Delta Lake.
    </Info>
  </Step>
</Steps>

***

### Event data mapping

Map your {PLATFORM_0} {DATA_TYPE_0} to OneSignal's custom events format:

| OneSignal Field | {COLUMN_HEADER_0} | Description                | Required |
| --------------- | ----------------- | -------------------------- | -------- |
| `name`          | `event_name`      | Event identifier           | Yes      |
| `external_id`   | `user_id`         | User identifier            | Yes      |
| `timestamp`     | `event_timestamp` | When event occurred        | No       |
| `properties`    | `event_data`      | {PROPERTIES_DESCRIPTION_0} | No       |

### Exemplo de Consulta de Evento

```sql theme={null}
-- Example: Recent high-value events across catalogs
SELECT
    event_name,
    user_id,
    event_timestamp,
    CAST(event_properties AS JSON) as event_properties
FROM catalog.schema.user_events
WHERE event_timestamp >= current_timestamp - INTERVAL '7' DAY
    AND JSON_EXTRACT_SCALAR(event_properties, '$.value') > '100'
ORDER BY event_timestamp DESC;
```

### Consultas de Evento Entre Catálogos

```sql theme={null}
-- Example: Federated query across multiple data sources
SELECT
    'combined_activity' as event_name,
    u.user_id,
    current_timestamp as event_timestamp,
    JSON_FORMAT(JSON_OBJECT(
        'web_sessions', w.session_count,
        'mobile_events', m.event_count,
        'purchase_value', p.total_value
    )) as event_properties
FROM postgres_catalog.users.profiles u
LEFT JOIN web_catalog.analytics.sessions w ON u.user_id = w.user_id
LEFT JOIN mobile_catalog.events.activities m ON u.user_id = m.user_id
LEFT JOIN purchases_catalog.orders.summary p ON u.user_id = p.user_id
WHERE u.created_date >= current_date - INTERVAL '30' DAY;
```

***

## Opções do Sync Engine

### Basic Sync Engine

* Funciona com qualquer catálogo e conector Trino
* Rastreamento de estado gerenciado pela infraestrutura OneSignal
* Configuração mais simples sem requisitos adicionais

### Advanced Sync Engine

* Desempenho aprimorado com rastreamento de estado local
* Requer catálogo e schema `CENSUS.CENSUS` dedicados
* Suporta conectores com operações de escrita de tabela
* Recomendado para processamento de eventos de alto volume

***

## Conectores Suportados

O Advanced Sync Engine do OneSignal foi testado com:

* **Conector MySQL** (modo leitura-escrita)
* **Conector PostgreSQL** (modo leitura-escrita)
* **Conector Snowflake** (modo leitura-escrita)
* **Conector Iceberg** (com S3 e AWS Glue)
* **Conector Delta Lake** (com AWS Glue e catálogos Starburst Galaxy)

***

## Limitações

* Conexão TLS obrigatória (requisito de segurança do OneSignal)
* Advanced Sync Engine requer suporte a `CREATE OR REPLACE TABLE` (Trino outubro 2023+)
* Warehouse Writeback ainda não suportado (em breve)
* Não é possível fornecer opções de tabela personalizadas na cláusula `WITH`

***

## FAQ

### Quais conectores Trino funcionam com o OneSignal?

Qualquer conector que suporte operações de leitura funciona com o Basic Sync Engine. Para o Advanced Sync Engine, você precisa de conectores que suportem escritas de tabela e `CREATE OR REPLACE TABLE`.

### Posso consultar múltiplos catálogos em uma única sincronização?

Sim! As capacidades de consulta federada do Trino permitem que você combine dados de evento de múltiplas fontes (PostgreSQL, MySQL, S3, etc.) em uma única consulta.

### Eu preciso do Advanced Sync Engine?

Não, o Basic Sync Engine funciona bem para a maioria dos casos de uso. Use o Advanced Sync Engine se você precisar de desempenho aprimorado e puder configurar o catálogo `CENSUS.CENSUS` requerido.
