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

# SingleStore

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

export const PLATFORM_0 = "SingleStore"

export const DATA_TYPE_0 = "event data"

export const COLUMN_HEADER_0 = "SingleStore Column"

export const PROPERTIES_DESCRIPTION_0 = "Event metadata as JSON"

## 개요

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

SingleStore는 실시간 분석 및 고성능 애플리케이션을 위해 설계된 분산 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)

### SingleStore

* **SingleStoreDB Cloud** 또는 **SingleStoreDB v7.1+**
* 적절한 권한이 있는 **데이터베이스 사용자**
* 구조화된 행동 데이터가 포함된 **이벤트 테이블**
* OneSignal에서 SingleStore 클러스터로의 **네트워크 연결**

***

## 설정

<Steps>
  <Step title="OneSignal용 전용 사용자 생성">
    강력하고 고유한 비밀번호로 전용 사용자 계정을 생성합니다:

    ```sql theme={null}
    -- Create census user with the ability to sign in with a password
    CREATE USER CENSUS IDENTIFIED BY '<strong-unique-password>';
    ```
  </Step>

  <Step title="이벤트 데이터에 대한 권한 부여">
    이벤트 데이터가 포함된 스키마에 대한 읽기 전용 액세스를 제공합니다:

    ```sql theme={null}
    -- Grant read-only access to schema with event data
    GRANT SELECT ON analytics.* TO CENSUS;

    -- Repeat for additional schemas if needed
    GRANT SELECT ON events.* TO CENSUS;
    ```

    <Info>
      이벤트 데이터가 포함된 스키마가 여러 개 있는 경우 각 스키마에 대해 `GRANT SELECT` 문을 반복합니다.
    </Info>
  </Step>

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

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

    * **Host:** SingleStore 클러스터 엔드포인트
    * **Port:** 3306(기본값)
    * **Database:** 데이터베이스 이름
    * **Username:** `CENSUS`
    * **Password:** 1단계의 비밀번호
  </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 SingleStore event table
CREATE TABLE analytics.user_events (
    event_id BIGINT AUTO_INCREMENT PRIMARY KEY,
    event_name VARCHAR(100) NOT NULL,
    user_id VARCHAR(255) NOT NULL,
    event_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    event_data JSON,
    session_id VARCHAR(255),
    device_type VARCHAR(50)
);
```

### SQL Query 모드

사용자 지정 SQL 쿼리를 작성하여 이벤트 데이터를 변환합니다:

```sql theme={null}
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_data
FROM analytics.user_events
WHERE event_timestamp >= DATE_SUB(NOW(), INTERVAL 7 DAY)
    AND JSON_EXTRACT_STRING(event_data, 'value') > '100'
ORDER BY event_timestamp DESC;
```

***

## 고급 네트워크 구성

OneSignal은 지역 제약 조건 및 IP 주소 허용 목록을 포함한 고급 네트워킹 제어를 사용하는 SingleStore 인스턴스에 성공적으로 연결할 수 있습니다.

네트워크 액세스 구성에 대한 자세한 내용은 SingleStore 관리자 또는 OneSignal 지원팀에 문의하세요.

***

## 제한 사항

* 실시간 분석 쿼리는 트래픽이 많은 기간 동안 클러스터 성능에 영향을 미칠 수 있습니다
* JSON 작업은 분산 실행을 위해 최적화되어야 합니다

***

## FAQ

### 여러 SingleStore 스키마에 연결할 수 있나요?

예, 이벤트 데이터가 포함된 각 스키마에 대해 `GRANT SELECT` 문을 실행하여 CENSUS 사용자에게 여러 스키마에 대한 액세스 권한을 부여할 수 있습니다.

### OneSignal은 SingleStore Cloud를 지원하나요?

예, OneSignal은 SingleStoreDB Cloud 및 온프레미스 SingleStoreDB v7.1+ 설치를 모두 지원합니다.
