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

> Trino에서 OneSignal로 사용자 지정 이벤트를 동기화하여 사용자 행동을 기반으로 자동화된 저니 및 개인화된 메시징 캠페인을 트리거하세요.

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"

## 개요

OneSignal + Trino 통합을 사용하면 Trino 클러스터에서 OneSignal로 사용자 지정 이벤트를 동기화하여 사용자 행동을 기반으로 자동화된 메시징 캠페인 및 저니를 트리거할 수 있습니다.

Trino는 여러 소스의 대규모 데이터 세트에 대해 빠른 분석 쿼리를 실행하도록 설계된 분산 SQL 쿼리 엔진입니다.

***

## 요구사항

* 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

* 네트워크 액세스가 가능한 **Trino 클러스터**
* 적절한 권한이 있는 **사용자 자격 증명**
* **TLS 연결** 지원(OneSignal 필요)
* Trino 카탈로그를 통해 액세스할 수 있는 **이벤트 데이터**

***

## 설정

<Steps>
  <Step title="Trino 연결 구성">
    OneSignal에서 **Data > Integrations**으로 이동하여 **Add Integration**을 클릭합니다.

    **Trino**를 선택하고 다음 연결 세부 정보를 제공합니다:

    * **Host:** Trino 클러스터 호스트명
    * **Username:** Trino 사용자 이름
    * **Password:** Trino 비밀번호
    * **Port:** 443(기본값) 또는 사용자 지정 포트

    <Info>
      OneSignal은 Trino에 대한 TLS 연결을 요구합니다. 인스턴스가 포트 443에서 실행되지 않는 경우 사용자 지정 포트를 지정하세요.
    </Info>
  </Step>

  <Step title="고급 동기화 엔진 구성(선택 사항)">
    성능 향상을 위해 전용 CENSUS 카탈로그를 설정합니다:

    1. `CENSUS`라는 카탈로그를 생성하고 `CENSUS`라는 스키마를 포함합니다
    2. 커넥터가 다음을 지원하는지 확인합니다:
       * `CREATE TABLE` 및 `DROP TABLE` 작업
       * 테이블 쓰기(INSERT, DELETE, UPDATE)
       * `CREATE OR REPLACE TABLE` 문
    3. OneSignal 사용자에게 `CENSUS.CENSUS` 스키마에 대한 전체 권한을 부여합니다

    <Info>
      테스트된 구성에는 MySQL, PostgreSQL, Snowflake, Iceberg 및 Delta Lake 커넥터가 포함됩니다.
    </Info>
  </Step>
</Steps>

***

### 이벤트 데이터 매핑

{PLATFORM_0} {DATA_TYPE_0}를 OneSignal의 사용자 지정 이벤트 형식에 매핑합니다:

| OneSignal 필드  | {COLUMN_HEADER_0} | 설명                         | 필수  |
| ------------- | ----------------- | -------------------------- | --- |
| `name`        | `event_name`      | 이벤트 식별자                    | Yes |
| `external_id` | `user_id`         | 사용자 식별자                    | Yes |
| `timestamp`   | `event_timestamp` | 이벤트가 발생한 시간                | No  |
| `properties`  | `event_data`      | {PROPERTIES_DESCRIPTION_0} | No  |

### 이벤트 쿼리 예시

```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;
```

### 교차 카탈로그 이벤트 쿼리

```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;
```

***

## 동기화 엔진 옵션

### 기본 동기화 엔진

* 모든 Trino 카탈로그 및 커넥터와 작동
* OneSignal 인프라에서 관리하는 상태 추적
* 추가 요구 사항 없이 더 간단한 설정

### 고급 동기화 엔진

* 로컬 상태 추적으로 향상된 성능
* 전용 `CENSUS.CENSUS` 카탈로그 및 스키마 필요
* 테이블 쓰기 작업이 있는 커넥터 지원
* 대용량 이벤트 처리에 권장

***

## 지원되는 커넥터

OneSignal의 고급 동기화 엔진은 다음과 함께 테스트되었습니다:

* **MySQL 커넥터**(읽기-쓰기 모드)
* **PostgreSQL 커넥터**(읽기-쓰기 모드)
* **Snowflake 커넥터**(읽기-쓰기 모드)
* **Iceberg 커넥터**(S3 및 AWS Glue 포함)
* **Delta Lake 커넥터**(AWS Glue 및 Starburst Galaxy 카탈로그 포함)

***

## 제한사항

* TLS 연결 필요(OneSignal 보안 요구 사항)
* 고급 동기화 엔진에는 `CREATE OR REPLACE TABLE` 지원 필요(Trino October 2023+)
* Warehouse Writeback은 아직 지원되지 않음(곧 지원 예정)
* `WITH` 절에서 사용자 지정 테이블 옵션을 제공할 수 없음

***

## FAQ

### OneSignal과 작동하는 Trino 커넥터는 무엇인가요?

읽기 작업을 지원하는 모든 커넥터는 기본 동기화 엔진과 작동합니다. 고급 동기화 엔진의 경우 테이블 쓰기 및 `CREATE OR REPLACE TABLE`을 지원하는 커넥터가 필요합니다.

### 단일 동기화에서 여러 카탈로그를 쿼리할 수 있나요?

예! Trino의 연합 쿼리 기능을 사용하면 단일 쿼리에서 여러 소스(PostgreSQL, MySQL, S3 등)의 이벤트 데이터를 결합할 수 있습니다.

### 고급 동기화 엔진이 필요한가요?

아니요, 기본 동기화 엔진은 대부분의 사용 사례에 잘 작동합니다. 향상된 성능이 필요하고 필요한 `CENSUS.CENSUS` 카탈로그를 설정할 수 있는 경우 고급 동기화 엔진을 사용하세요.
