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

# Databricks

> OneSignal 메시지 이벤트를 Databricks로 내보내고 Databricks 행동 이벤트를 OneSignal로 가져와서 Journeys를 트리거하고 메시징을 개인화합니다.

export const PLATFORM_0 = "Databricks"

export const DATA_TYPE_0 = "이벤트 테이블 열"

export const COLUMN_HEADER_0 = "Databricks 열"

export const PROPERTIES_DESCRIPTION_0 = "JSON으로 추가 열"

## 개요

OneSignal + Databricks 통합은 **두 가지 플로우**를 지원합니다:

* **내보내기**: 분석 및 보고를 위해 OneSignal 메시지 이벤트를 Databricks로 보냅니다.
* **가져오기**: Journeys를 트리거하고 캠페인을 개인화하기 위해 Databricks에서 OneSignal로 사용자 지정 이벤트를 보냅니다.

<Info> 내보내기와 가져오기는 별도로 구성됩니다. 둘 중 하나만 설정할 수 있습니다. </Info>

***

## OneSignal 메시지 이벤트를 Databricks로 내보내기

거의 실시간 분석 및 가시성을 위해 OneSignal에서 Databricks 레이크하우스로 모든 메시지 이벤트를 동기화합니다.

**요구 사항**

* [Professional 플랜 이상](https://onesignal.com/pricing)
* 사용자 지정 이벤트 활성화(이벤트 가져오기용)
* Databricks 플랫폼: AWS, Azure 또는 GCP
* Databricks 플랜: Premium 이상
* Databricks Unity Catalog(거버넌스 권장)
* 쿼리를 위한 Databricks SQL Warehouse
* Delta Lake 이벤트 테이블(사용자 지정 이벤트 가져오기용)

**설정 단계**

### 1. SQL warehouse 세부 정보 수집

<Steps>
  <Step title="Databricks 워크스페이스에 로그인">
    Databricks 워크스페이스에서 **SQL Warehouses**로 이동하세요.
  </Step>

  <Step title="warehouse 선택">
    warehouse를 선택하고 **Connection details** 탭을 엽니다.
  </Step>

  <Step title="다음 세부 정보 저장">
    * Server Hostname
    * Port
    * HTTP Path

    <Frame caption="Fivetran 설정을 위한 Databricks SQL 연결 세부 정보">
      <img src="https://mintcdn.com/onesignal/tNi1OgLc_p9hiq7_/images/docs/1ce7c549df4a383336633d9f258bec12107a895dc9467134d672c12c2c85923f-cluster-databricks.png?fit=max&auto=format&n=tNi1OgLc_p9hiq7_&q=85&s=1f03dbaa1a6cc6c4bdf804e49755cbf7" alt="Databricks SQL connection details for Fivetran setup" width="1810" height="988" data-path="images/docs/1ce7c549df4a383336633d9f258bec12107a895dc9467134d672c12c2c85923f-cluster-databricks.png" />
    </Frame>
  </Step>
</Steps>

### 2. 서비스 주체 만들기

<Steps>
  <Step title="Service Principals 페이지로 이동">
    **Workspace Settings > Identity and Access > Service Principals**로 이동하세요.
  </Step>

  <Step title="새 서비스 주체 추가">
    **Add Service Principal**을 클릭한 다음 **Add New**를 클릭하세요.
  </Step>

  <Step title="서비스 주체 이름 지정">
    이름을 지정하세요(예: `onesignal-sync`).

    <Frame caption="서비스 주체 추가 모달, 'Add new' 옵션 강조 표시">
      <img src="https://mintcdn.com/onesignal/56ctKxZSV4m5VEkn/images/docs/b8eeb211ceb77247f711eb312d3d68d1cb0da10788fd81fd37ae27e929e35cde-Screenshot_2025-04-01_at_9.16.12_PM.png?fit=max&auto=format&n=56ctKxZSV4m5VEkn&q=85&s=3bda750f12db717d630220bed24cdb2e" alt="Modal for adding a service principal, with the 'Add new' option highlighted" width="932" height="392" data-path="images/docs/b8eeb211ceb77247f711eb312d3d68d1cb0da10788fd81fd37ae27e929e35cde-Screenshot_2025-04-01_at_9.16.12_PM.png" />
    </Frame>
  </Step>
</Steps>

### 3. 시크릿 생성

<Steps>
  <Step title="생성된 주체 클릭" />

  <Step title="Secrets 탭으로 이동" />

  <Step title="시크릿 생성">
    **Generate Secret**을 클릭하고 안전하게 저장하세요.

    <Warning>
      시크릿은 한 번만 표시됩니다. 안전하게 저장하세요.
    </Warning>

    <Frame caption="API 인증을 위한 OAuth 시크릿 및 클라이언트 ID를 보여주는 Databricks '시크릿 생성' 모달">
      <img src="https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/ff24d4d5bf9b21e0cadf67055f1e1a5a4b517b82e9c006520a02b4fd404d259e-Screenshot_2025-03-28_at_4.14.17_PM.png?fit=max&auto=format&n=KSCNwSpBCNSQ8xdF&q=85&s=54eaae1d695bfad59b726ba005ff6f1f" alt="Databricks 'Generate secret' modal showing OAuth secret and client ID for API authentication" width="746" height="368" data-path="images/docs/ff24d4d5bf9b21e0cadf67055f1e1a5a4b517b82e9c006520a02b4fd404d259e-Screenshot_2025-03-28_at_4.14.17_PM.png" />
    </Frame>
  </Step>
</Steps>

### 4. 권한 할당

<Steps>
  <Step title="Catalog으로 이동하여 Permissions 탭 열기" />

  <Step title="Grant 클릭" />

  <Step title="서비스 주체에 다음 권한 할당">
    * USE CATALOG
    * USE SCHEMA
    * SELECT
    * MODIFY
    * CREATE SCHEMA
    * CREATE TABLE

    <Frame caption="사용자 지정 카탈로그 권한이 선택된 Databricks 주체에 대한 권한 할당 화면.">
      <img src="https://mintcdn.com/onesignal/jFWn5xzleD8du3j6/images/docs/5755c8739fd66a0f35fec57b817d54d202c64ae95bf8219645ba76abdc8fbe0b-Screenshot_2025-04-01_at_9.19.14_PM.png?fit=max&auto=format&n=jFWn5xzleD8du3j6&q=85&s=0964053615467ebd7372edd7beaf33fe" alt="Privilege assignment screen for a Databricks principal with custom catalog permissions selected" width="1034" height="812" data-path="images/docs/5755c8739fd66a0f35fec57b817d54d202c64ae95bf8219645ba76abdc8fbe0b-Screenshot_2025-04-01_at_9.19.14_PM.png" />
    </Frame>
  </Step>
</Steps>

### 5. OneSignal 연결

<Steps>
  <Step title="통합 활성화">
    OneSignal에서 **Data > Integrations > Databricks**로 이동하세요.
  </Step>

  <Step title="세부 정보 입력">
    * Server Hostname
    * Port
    * HTTP Path
    * Catalog Name
    * Schema Name
    * Service Principal 자격 증명(ID + Secret)

    <Frame caption="카탈로그, 호스트 이름, HTTP 경로 및 OAuth 자격 증명 필드가 있는 OneSignal Databricks 구성 양식.">
      <img src="https://mintcdn.com/onesignal/0qspEXXeJ8zJbkJ-/images/docs/816a07ed459d3d19910630da0cb52b2075c06d6eaf85af98e969703edab88ad5-Screenshot_2025-03-28_at_4.12.07_PM.png?fit=max&auto=format&n=0qspEXXeJ8zJbkJ-&q=85&s=cd7ba1d76deff9922dc44b25a7528eb2" alt="OneSignal Databricks Configuration form with fields for catalog, hostname, HTTP path, and OAuth credentials" width="718" height="796" data-path="images/docs/816a07ed459d3d19910630da0cb52b2075c06d6eaf85af98e969703edab88ad5-Screenshot_2025-03-28_at_4.12.07_PM.png" />
    </Frame>
  </Step>

  <Step title="통합 구성">
    * **Sync Frequency:** 15분마다
    * **Dataset/Table Names:** `onesignal_events_<app-id>` 및 `message_events`로 미리 설정(편집 가능)
    * **Event Types:** 동기화할 항목 선택—전체 또는 필요한 것만 선택
  </Step>

  <Step title="이벤트 선택">
    Databricks 카탈로그에서 받고자 하는 이벤트를 선택하세요.

    <Frame caption="동기화 상태, 데이터 세트 구성 및 선택된 메시지 이벤트 유형을 보여주는 OneSignal 이벤트 내보내기 설정 화면.">
      <img src="https://mintcdn.com/onesignal/tNi1OgLc_p9hiq7_/images/docs/1a5ff2af7dc8fc42a91ce70583a03b361fd8a343bc57fd3123f26a5d21dabbf8-Screenshot_2025-04-09_at_11.56.58_AM.png?fit=max&auto=format&n=tNi1OgLc_p9hiq7_&q=85&s=ce7eee0983e2026b1847a4d2a45cbe96" alt="OneSignal event export settings screen showing sync status, dataset configuration, and selected message event types" width="2738" height="1254" data-path="images/docs/1a5ff2af7dc8fc42a91ce70583a03b361fd8a343bc57fd3123f26a5d21dabbf8-Screenshot_2025-04-09_at_11.56.58_AM.png" />
    </Frame>
  </Step>

  <Step title="설정 완료">
    **Save**를 클릭하고 성공 확인을 기다리세요
  </Step>
</Steps>

<Note>
  초기 데이터 동기화는 BigQuery에 나타나는 데 15-30분이 걸릴 수 있습니다.

  대기하는 동안 푸시, 이메일, 인앱 또는 SMS를 통해 메시지를 보내 선택한 이벤트를 트리거하세요.
</Note>

### 6. Databricks에서 데이터 보기

1. Databricks에서 **Catalog**을 엽니다.

2. 동기화가 완료되면 구성된 스키마가 나타납니다.

3. `message_events` 테이블에 액세스하고 쿼리합니다.

   <Frame caption="프로덕션 스키마 아래 OneSignal 메시지 이벤트 테이블을 보여주는 Databricks Catalog 보기.">
     <img src="https://mintcdn.com/onesignal/tNi1OgLc_p9hiq7_/images/docs/1b59f6eff2070490f194df8a7496fab6cf17f8fc9355cfb7b77c7c076799632e-Screenshot_2025-04-01_at_9.22.01_PM.png?fit=max&auto=format&n=tNi1OgLc_p9hiq7_&q=85&s=c5908557481f292b1a659b4f0ef210ed" alt="Databricks Catalog view showing OneSignal message events table under a production schema" width="854" height="618" data-path="images/docs/1b59f6eff2070490f194df8a7496fab6cf17f8fc9355cfb7b77c7c076799632e-Screenshot_2025-04-01_at_9.22.01_PM.png" />
   </Frame>

4. 샘플 데이터 미리 보기를 위해 테이블을 클릭하세요.

   <Frame caption="동기화된 OneSignal 이벤트 필드가 있는 message_events_1 테이블의 샘플 데이터.">
     <img src="https://mintcdn.com/onesignal/6v_cVPknFpo5qSVB/images/docs/112f17e471b8e29173429bfbbd4b34fb68923c9f76faa55b06161114249fcaab-Screenshot_2025-04-01_at_9.22.08_PM.png?fit=max&auto=format&n=6v_cVPknFpo5qSVB&q=85&s=a853fe144d238a24d86b5f989261f2be" alt="Sample data from the message_events_1 table with synced OneSignal event fields" width="1196" height="374" data-path="images/docs/112f17e471b8e29173429bfbbd4b34fb68923c9f76faa55b06161114249fcaab-Screenshot_2025-04-01_at_9.22.08_PM.png" />
   </Frame>

<Info>
  스키마 누락, 권한 오류 또는 잘못된 형식의 이벤트와 같은 문제가 발생하면 `support@onesignal.com`으로 문의하세요.
</Info>

## 메시지 이벤트 및 속성

### 메시지 이벤트 종류

**속성:** `event_kind`
**유형:** `String`

메시지 및 이벤트의 종류(예: `message.push.received`, `message.push.sent`).

|   메시지 이벤트 (OneSignal)  |           `event_kind`           | 설명                                                                |
| :--------------------: | :------------------------------: | ----------------------------------------------------------------- |
|        Push Sent       |        `message.push.sent`       | 푸시 알림이 성공적으로 전송되었습니다.                                             |
|      Push Received     |      `message.push.received`     | 전달된 푸시([전달 확인](/docs/ko/confirmed-delivery) 참조).                  |
|      Push Clicked      |      `message.push.clicked`      | 사용자가 푸시를 클릭했습니다.                                                  |
|       Push Failed      |       `message.push.failed`      | 전달 실패. 메시지 보고서를 참조하세요.                                            |
|    Push Unsubscribed   |    `message.push.unsubscribed`   | 사용자가 푸시 구독을 취소했습니다.                                               |
|    In-App Impression   |     `message.iam.impression`     | 인앱 메시지가 표시되었습니다.                                                  |
|     In-App Clicked     |       `message.iam.clicked`      | 인앱 메시지를 클릭했습니다.                                                   |
|   In-App Page Viewed   |   `message.iam.page_displayed`   | 인앱 페이지가 표시되었습니다.                                                  |
|       Email Sent       |       `message.email.sent`       | 이메일이 전달되었습니다.                                                     |
|     Email Received     |     `message.email.received`     | 수신자의 메일 서버가 이메일을 수락했습니다.                                          |
|      Email Opened      |      `message.email.opened`      | 이메일이 열렸습니다. [이메일 보고서](/docs/ko/email-message-reports)를 참조하세요.     |
|   Email Link Clicked   |      `message.email.clicked`     | 이메일의 링크를 클릭했습니다.                                                  |
|   Email Unsubscribed   |   `message.email.unsubscribed`   | 수신자가 구독을 취소했습니다.                                                  |
| Email Reported As Spam | `message.email.reported_as_spam` | 스팸으로 표시되었습니다. [이메일 전달 가능성](/docs/ko/email-deliverability)을 참조하세요. |
|      Email Bounced     |      `message.email.bounced`     | 영구적인 전달 실패로 인한 반송.                                                |
|      Email Failed      |      `message.email.failed`      | 전달이 실패했습니다.                                                       |
|    Email Suppressed    |    `message.email.suppressed`    | 억제 목록으로 인해 억제되었습니다.                                               |
|        SMS Sent        |        `message.sms.sent`        | SMS가 전송되었습니다.                                                     |
|      SMS Delivered     |      `message.sms.delivered`     | SMS가 성공적으로 전달되었습니다.                                               |
|       SMS Failed       |       `message.sms.failed`       | SMS 전달이 실패했습니다.                                                   |
|     SMS Undelivered    |     `message.sms.undelivered`    | SMS가 거부되었거나 도달할 수 없습니다.                                           |

### 이벤트 데이터 스키마

사용자가 생성한 각 메시지 이벤트에 대해 다음 메타데이터가 레코드에 첨부됩니다.

|                       열 이름                      |     유형    | 설명                                      |
| :---------------------------------------------: | :-------: | --------------------------------------- |
|                    `event_id`                   |    UUID   | 이벤트의 고유 식별자                             |
|                `event_timestamp`                | Timestamp | 이벤트 발생 시간                               |
|                   `event_kind`                  |   String  | [이벤트 종류](#메시지-이벤트-종류)                   |
|            `subscription_device_type`           |   String  | 장치 유형(예: iOS, Android, Web, Email, SMS) |
|                    `language`                   |   String  | 구독 언어 코드                                |
|                    `version`                    |   String  | 통합 버전                                   |
|                   `device_os`                   |   String  | 장치 운영 체제 버전                             |
|                  `device_type`                  |   Number  | 숫자 장치 유형                                |
|                     `token`                     |   String  | 푸시 토큰, 전화번호 또는 이메일                      |
|                `subscription_id`                |    UUID   | 구독 ID                                   |
|                   `subscribed`                  |  Boolean  | 구독 상태                                   |
|                  `onesignal_id`                 |    UUID   | OneSignal 사용자 ID                        |
|                  `last_active`                  |   String  | 마지막 활성 타임스탬프                            |
|                      `sdk`                      |   String  | OneSignal SDK 버전                        |
|                  `external_id`                  |   String  | 통합 사용자 ID와 일치해야 하는 외부 사용자 ID            |
|                     `app_id`                    |    UUID   | OneSignal의 앱 ID                         |
|                  `template_id`                  |    UUID   | 템플릿 ID(해당하는 경우)                         |
|                   `message_id`                  |    UUID   | 메시지 배치/요청 ID                            |
|                  `message_name`                 |   String  | 메시지 이름                                  |
|                 `message_title`                 |   String  | 메시지 제목(영어만)                             |
|                `message_contents`               |   String  | 잘린 메시지 본문(영어만)                          |
|                 `failure_reason`                |   String  | 실패 이유(푸시 실패 및 이메일 실패 이벤트용)              |
| `_created`, `_id`, `_index`, `_fivetran_synced` |  *내부 사용*  | Fivetran 동기화 메타데이터                      |

### 참고 사항

* 저장/활성화 후 동기화는 완료하는 데 추가로 15-30분이 소요될 수 있습니다.
* 비활성화하면 비활성화 후 최종 동기화가 한 번 더 발생할 수 있습니다.
* 효율적인 데이터 동기화를 보장하기 위해 시스템은 스테이징 데이터 세트를 자동으로 생성하고 관리합니다. 이러한 데이터 세트는 `fivetran_{두 개의 무작위 단어}_staging`과 같은 패턴으로 이름이 지정되며, 기본 스키마에 통합되기 전에 처리 중에 데이터를 임시로 저장합니다. 이러한 스테이징 데이터 세트는 간소화된 워크플로를 유지하는 데 필수적이며 자동으로 다시 생성되므로 삭제하면 안 됩니다.

***

## Databricks에서 이벤트 가져오기

Databricks에서 OneSignal로 행동 이벤트 데이터를 전송하여:

* 사용자 활동을 기반으로 Journeys 트리거
* 행동 데이터를 기반으로 메시징 개인화

**요구 사항**

* 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)

- SQL Warehouse 또는 컴퓨팅 클러스터가 있는 **Databricks 워크스페이스**
- 적절한 권한이 있는 **Personal Access Token**
- Delta Lake 형식의 행동 데이터가 포함된 **이벤트 데이터 테이블**
- **Unity Catalog**(데이터 거버넌스 권장)

**설정 단계**

<Steps>
  <Step title="Databricks Personal Access Token 만들기">
    OneSignal이 Databricks 워크스페이스에 액세스할 수 있도록 Personal Access Token을 생성하세요:

    1. Databricks 워크스페이스에서 **User Settings**로 이동
    2. **Developer** 탭을 클릭한 다음 **Access tokens** 클릭
    3. **Generate new token** 클릭
    4. "OneSignal Integration"과 같은 주석을 입력하고 만료일 설정(90일 권장)
    5. 생성된 토큰 저장(OneSignal에 필요함)
  </Step>

  <Step title="SQL Warehouse 액세스 구성">
    OneSignal이 SQL Warehouse를 통해 이벤트 데이터를 쿼리할 수 있도록 하세요:

    1. Databricks 워크스페이스에서 **SQL Warehouses**로 이동
    2. OneSignal 액세스를 위한 SQL Warehouse 선택 또는 생성
    3. 연결 세부 정보에서 **Server Hostname** 및 **HTTP Path** 기록
    4. warehouse가 이벤트 데이터 테이블에 액세스할 수 있는지 확인
  </Step>

  <Step title="테이블 권한 부여">
    이벤트 데이터가 포함된 테이블에 OneSignal 읽기 액세스 권한 부여:

    ```sql theme={null}
    -- Unity Catalog이 활성화된 워크스페이스의 경우
    GRANT SELECT ON TABLE catalog.schema.event_table TO `onesignal@yourdomain.com`;

    -- Hive 메타스토어 테이블의 경우
    GRANT SELECT ON TABLE database.event_table TO `onesignal@yourdomain.com`;
    ```
  </Step>

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

    **Databricks**를 선택하고 다음을 제공:

    * **Server Hostname**: Databricks SQL Warehouse 호스트 이름
    * **HTTP Path**: SQL Warehouse HTTP 경로
    * **Personal Access Token**: 1단계에서 생성한 토큰
    * **Catalog**(선택 사항): Unity Catalog를 사용하는 경우 Unity Catalog 이름
  </Step>

  <Step title="이벤트 데이터 소스 구성">
    이벤트 데이터가 포함된 Databricks 테이블 지정:

    * **Database/Schema**: 이벤트 테이블이 포함된 데이터베이스 또는 스키마 이름
    * **Table**: 이벤트 레코드가 있는 테이블 이름(예: `user_events`)
    * **Event Query**: 이벤트 데이터를 필터링하거나 변환하기 위한 선택적 SQL 쿼리

    이벤트 테이블에는 다음에 대한 열이 포함되어야 합니다:

    * 이벤트 이름/유형(String)
    * 사용자 식별자(String)
    * 이벤트 타임스탬프(Timestamp)
    * 추가 이벤트 속성
  </Step>

  <Step title="연결 테스트">
    **Test Connection**을 클릭하여 OneSignal이 Databricks 워크스페이스에 액세스하고 이벤트 데이터를 읽을 수 있는지 확인하세요.
  </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  |

### 고급 구성

#### Unity Catalog 통합

거버넌스 데이터 액세스를 위해 Unity Catalog를 활용하세요:

```sql theme={null}
SELECT
  event_name,
  user_id,
  event_timestamp,
  to_json(
    named_struct(
      'product_id', product_id,
      'purchase_amount', purchase_amount,
      'category', category
    )
  ) as payload
FROM catalog.schema.user_events
WHERE event_timestamp >= current_timestamp() - INTERVAL 7 DAYS
```

### Delta Lake 최적화

더 나은 쿼리 성능을 위해 이벤트 테이블을 최적화하세요:

* **파티셔닝**: 더 빠른 시간 기반 쿼리를 위해 날짜(`event_date`)별로 파티션
* **Z-Ordering**: 더 나은 필터링을 위해 `user_id` 및 `event_name`으로 Z-order
* **Delta Lake 기능**: 자동 최적화를 위해 liquid clustering 사용

#### 스트리밍 이벤트 처리

실시간 이벤트 처리를 위해 다음을 고려하세요:

* **Structured Streaming**: 이벤트가 도착하는 대로 처리
* **Delta Live Tables**: 강력한 이벤트 처리 파이프라인 구축
* **Auto Loader**: 새 이벤트 파일을 지속적으로 수집

<Warning>
  SQL Warehouse에 다른 워크로드에 영향을 주지 않고 OneSignal의 쿼리를 처리할 수 있는 충분한 컴퓨팅 리소스가 있는지 확인하세요.
</Warning>

***

## FAQ

### 동일한 콘텐츠에 대해 다른 메시지 ID가 표시되는 이유는 무엇인가요?

트랜잭션 플로우를 통해 또는 여러 전송에서 재사용된 메시지 템플릿을 통해 동일한 메시지가 두 번 이상 전송될 때 발생합니다.

### OneSignal은 Databricks에서 이벤트를 얼마나 자주 동기화하나요?

OneSignal은 구성된 일정에 따라 이벤트 데이터를 동기화하며 최소 간격은 15분입니다.

### Databricks notebook을 이벤트 처리에 사용할 수 있나요?

예, notebook을 사용하여 이벤트 데이터를 처리하고 준비한 다음 OneSignal이 쿼리할 수 있는 테이블을 통해 노출할 수 있습니다.

### 이벤트 쿼리에 대한 비용 최적화는 어떻게 하나요?

쿼리 로드에 따라 자동으로 확장되는 비용 효율적인 온디맨드 컴퓨팅을 위해 서버리스 SQL Warehouse 사용을 고려하세요.

***
