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

# Microsoft Fabric

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

export const PLATFORM_0 = "Microsoft Fabric"

export const DATA_TYPE_0 = "table columns"

export const COLUMN_HEADER_0 = "Fabric Column"

export const PROPERTIES_DESCRIPTION_0 = "JSON object with event metadata"

## 개요

OneSignal + Microsoft Fabric 통합은 Fabric 레이크하우스 또는 웨어하우스에서 OneSignal로 사용자 지정 이벤트를 자동으로 동기화하여 사용자 행동을 기반으로 자동화된 메시징 캠페인 및 Journey를 트리거할 수 있습니다.

Microsoft Fabric은 데이터 엔지니어링, 데이터 과학, 실시간 분석 및 비즈니스 인텔리전스를 단일 환경에서 결합하는 통합 분석 플랫폼입니다.

***

## 요구 사항

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

### Microsoft Fabric

* 작업 영역 액세스 권한이 있는 **Microsoft Fabric 용량**
* 적절한 권한이 있는 **Service Principal**
* 이벤트 데이터를 포함하는 **SQL Endpoint**(Warehouse 또는 Lakehouse)
* 테넌트 설정에서 활성화된 **외부 API 액세스**

***

## 설정

<Steps>
  <Step title="Azure에서 Service Principal 만들기">
    OneSignal이 Fabric 리소스에 액세스할 수 있도록 새 Service Principal을 만드세요:

    1. Azure Portal에 로그인하세요
    2. **Microsoft Entra ID** > **App registrations**로 이동하세요
    3. **+ New registration**을 클릭하세요
    4. 이름 입력: "OneSignal Fabric Integration"
    5. **Accounts in this organizational directory only**를 선택하세요
    6. **Register**를 클릭하세요
    7. **Application (client) ID** 및 **Directory (tenant) ID**를 기록하세요
    8. **Certificates & secrets** 아래에서 새 클라이언트 비밀을 만드세요
    9. **client secret value**를 기록하세요
  </Step>

  <Step title="Fabric 테넌트 설정 구성">
    Service Principal에 대한 외부 액세스를 활성화하세요:

    1. Microsoft Fabric에서 **Settings** > **Admin portal**을 클릭하세요
    2. **Tenant settings**로 이동하세요
    3. **Developer settings** 아래에서 **Service principals can use Fabric APIs**를 활성화하세요
    4. **OneLake settings** 아래에서 **Users can access data stored in OneLake with apps external to Fabric**을 활성화하세요
  </Step>

  <Step title="작업 영역 액세스 권한 부여">
    Fabric 작업 영역에 Service Principal을 추가하세요:

    1. 작업 영역으로 이동하세요("My Workspace"를 사용하는 경우 공유 작업 영역 만들기)
    2. **Manage Access** > **+ Add people or groups**를 클릭하세요
    3. Service Principal을 선택하세요
    4. 역할을 **Contributor**로 설정하세요
  </Step>

  <Step title="SQL 엔드포인트 가져오기">
    데이터 소스에 대한 SQL 연결 문자열을 가져오세요:

    1. 작업 영역에서 웨어하우스/레이크하우스 위로 마우스를 가져가세요
    2. **...** > **Settings**를 클릭하세요
    3. **SQL connection string**을 복사하세요(호스트 이름입니다)
  </Step>

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

    **Microsoft Fabric**을 선택하고 다음을 제공하세요:

    * **Hostname:** 4단계의 SQL 엔드포인트
    * **Database/Catalog:** 레이크하우스 또는 웨어하우스 이름
    * **Tenant ID:** 1단계의 Directory ID
    * **Client ID:** 1단계의 Application ID
    * **Client Secret:** 1단계의 Secret 값
  </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 Fabric table structure
CREATE TABLE user_events (
    event_name STRING,
    user_id STRING,
    event_time TIMESTAMP,
    properties JSON,
    session_id STRING,
    device_type STRING
);
```

***

## 처리 모드

### SQL 쿼리 모드

동기화하기 전에 Fabric 데이터를 변환하는 사용자 지정 SQL 쿼리를 작성하세요:

```sql theme={null}
SELECT
    event_name,
    user_id,
    event_time,
    TO_JSON(STRUCT(
        session_id,
        device_type,
        product_id
    )) as properties
FROM user_events
WHERE event_time >= CURRENT_DATE - INTERVAL 7 DAYS
```

### 테이블 모드

Fabric 작업 영역에서 전체 테이블 또는 뷰를 직접 동기화하세요. OneSignal은 자동으로 열을 이벤트 필드에 매핑합니다.

***

## 제한 사항

* Fabric 용량이 필요합니다(평가판에서는 사용할 수 없음)
* SQL 엔드포인트는 외부 서비스에서 액세스할 수 있어야 합니다
* 대규모 결과 세트는 동기화 성능에 영향을 미칠 수 있습니다

***

## FAQ

### 쿼리 성능을 최적화하려면 어떻게 하나요?

Fabric 테이블에서 파티셔닝 및 인덱싱을 사용하세요. 자주 액세스하는 이벤트 데이터에 대해 Materialized View를 만드는 것을 고려하세요.

### 레이크하우스와 웨어하우스 모두에서 동기화할 수 있나요?

예, OneSignal은 레이크하우스, 웨어하우스 및 SQL 분석 엔드포인트를 포함하여 SQL 엔드포인트를 노출하는 모든 Fabric 리소스를 지원합니다.

***
