> ## 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にカスタムイベントを同期して、ユーザー行動に基づいた自動化されたジャーニーとパーソナライズされたメッセージングキャンペーンをトリガーします。

export const PLATFORM_0 = "Microsoft Fabric"

export const DATA_TYPE_0 = "テーブル列"

export const COLUMN_HEADER_0 = "Fabric列"

export const PROPERTIES_DESCRIPTION_0 = "イベントメタデータを含むJSONオブジェクト"

## 概要

OneSignal + Microsoft Fabric統合により、Fabricレイクハウスまたはウェアハウスからカスタムイベントを自動的にOneSignalに同期して、ユーザー行動に基づいた自動化されたメッセージングキャンペーンとジャーニーをトリガーできます。

Microsoft Fabricは、データエンジニアリング、データサイエンス、リアルタイム分析、ビジネスインテリジェンスを単一の環境にまとめた統合分析プラットフォームです。

***

## 要件

* アウトバウンドメッセージイベント用の[Event Streams](/docs/ja/event-streams)へのアクセス（プランの制限と超過料金が適用されます）
* インバウンドイベント同期用の[Custom Events](/docs/ja/custom-events)へのアクセス（プランの制限と超過料金が適用されます）
* [更新されたアカウントプラン](https://onesignal.com/pricing)（無料アプリでは利用できません）

### Microsoft Fabric

* ワークスペースアクセスを持つ**Microsoft Fabricキャパシティ**
* 適切な権限を持つ**サービスプリンシパル**
* イベントデータを含む**SQLエンドポイント**（ウェアハウスまたはレイクハウス）
* テナント設定で有効になっている**外部APIアクセス**

***

## セットアップ

<Steps>
  <Step title="Azureでサービスプリンシパルを作成">
    OneSignalがFabricリソースにアクセスするための新しいサービスプリンシパルを作成します：

    1. Azureポータルにサインインします
    2. **Microsoft Entra ID** > **アプリの登録**に移動します
    3. **+ 新しい登録**をクリックします
    4. 名前を入力：「OneSignal Fabric Integration」
    5. **この組織ディレクトリのみのアカウント**を選択します
    6. **登録**をクリックします
    7. **アプリケーション（クライアント）ID**と**ディレクトリ（テナント）ID**をメモします
    8. **証明書とシークレット**で、新しいクライアントシークレットを作成します
    9. **クライアントシークレット値**をメモします
  </Step>

  <Step title="Fabricテナント設定を構成">
    サービスプリンシパルの外部アクセスを有効にします：

    1. Microsoft Fabricで、**設定** > **管理ポータル**をクリックします
    2. **テナント設定**に移動します
    3. **開発者設定**で、**サービスプリンシパルはFabric APIを使用できます**を有効にします
    4. **OneLake設定**で、**ユーザーはFabric外部のアプリでOneLakeに保存されたデータにアクセスできます**を有効にします
  </Step>

  <Step title="ワークスペースアクセスを付与">
    サービスプリンシパルをFabricワークスペースに追加します：

    1. ワークスペースに移動します（「マイワークスペース」を使用している場合は共有ワークスペースを作成）
    2. **アクセス管理** > **+ ユーザーまたはグループを追加**をクリックします
    3. サービスプリンシパルを選択します
    4. ロールを**共同作成者**に設定します
  </Step>

  <Step title="SQLエンドポイントを取得">
    データソースのSQL接続文字列を取得します：

    1. ワークスペースで、ウェアハウス/レイクハウスの上にマウスを置きます
    2. **...** > **設定**をクリックします
    3. **SQL接続文字列**をコピーします（これがホスト名です）
  </Step>

  <Step title="OneSignalに接続">
    OneSignalで、**Data > Integrations**に移動し、**Add Integration**をクリックします。

    **Microsoft Fabric**を選択して、次を提供します：

    * **ホスト名：** ステップ4からのSQLエンドポイント
    * **データベース/カタログ：** レイクハウスまたはウェアハウス名
    * **テナントID：** ステップ1からのディレクトリID
    * **クライアントID：** ステップ1からのアプリケーションID
    * **クライアントシークレット：** ステップ1からのシークレット値
  </Step>
</Steps>

***

### イベントデータマッピング

{PLATFORM_0} {DATA_TYPE_0}をOneSignalのカスタムイベント形式にマッピングします：

| OneSignalフィールド | {COLUMN_HEADER_0} | 説明                         | 必須  |
| -------------- | ----------------- | -------------------------- | --- |
| `name`         | `event_name`      | イベント識別子                    | はい  |
| `external_id`  | `user_id`         | ユーザー識別子                    | はい  |
| `timestamp`    | `event_timestamp` | イベントが発生した時刻                | いいえ |
| `properties`   | `event_data`      | {PROPERTIES_DESCRIPTION_0} | いいえ |

### イベントテーブルスキーマの例

```sql theme={null}
-- Fabricテーブル構造の例
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テーブルでパーティション化とインデックス作成を使用します。頻繁にアクセスされるイベントデータのマテリアライズドビューの作成を検討してください。

### レイクハウスとウェアハウスの両方から同期できますか？

はい、OneSignalは、レイクハウス、ウェアハウス、SQL分析エンドポイントを含む、SQLエンドポイントを公開するすべてのFabricリソースをサポートします。

***
