> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Databricks のセットアップ

> Databricks のサービスプリンシパル、パーソナルアクセストークン、スキーマ権限を設定し、Databricks SQL ウェアハウスを Kameleoon に接続します。

<Note>
  データウェアハウス連携は、当社の Web Experimentation および Feature Experimentation モジュールのプレミアムアドオンとしてご利用いただけます。詳細については、カスタマーサクセスマネージャーまでお問い合わせください。
</Note>

この記事では、Databricks SQL ウェアハウスへの接続を設定する方法を説明します。Databricks アカウントで実施する必要のあるいくつかの設定手順が含まれています。これらの手順は Databricks 管理者が実施することを推奨します。

Databricks 連携により、ターゲットキャンペーンやパーソナライズされたユーザー体験のためのデータ取得を簡素化できます。

**主なメリット：**

* 正確なデータ収集が可能になり、特定のオーディエンスのニーズに合わせたパーソナライズキャンペーンのオーディエンスターゲティングを強化します。
* ゴールメトリクスを駆動し、リアルタイムのパフォーマンス追跡を改善します。

## 考慮事項

この連携を使用する際には、次の点に留意してください。

* **データ量：** クエリのパフォーマンスとコストに影響する可能性があるため、扱う予定のデータ量を考慮してください。
* **クエリの複雑さ：** 複雑なクエリは実行により多くの時間とリソースを必要とします。効率のためにクエリを最適化してください。
* **データプライバシー：** ウェアハウス内でユーザーデータを扱う際は、データプライバシー規制への準拠を確保してください。
* **アクセス制御：** 組織内でこの連携を設定および使用できるユーザーを制限するため、適切なアクセス制御を実装してください。
* **データスキーマ：** データの取得と分析を容易にするため、明確で一貫性のあるデータスキーマを維持してください。
* **モニタリング：** コストとパフォーマンスを効果的に管理するため、データウェアハウスの使用状況を定期的にモニタリングしてください。
* **ドキュメント：** コラボレーションとトラブルシューティングを容易にするため、クエリ、設定、連携プロセスのドキュメントを維持してください。

## 前提条件

この連携を設定するには、次の情報が必要です。

* Databricks パーソナルアクセストークン（PAT）
* Databricks スキーマを作成し、アクセス権を付与するための適切なアクセス権。

### セットアップ

#### 1. パーソナルアクセストークン（PAT）を作成する

Kameleoon はパーソナルアクセストークンを使用して Databricks SQL ウェアハウスに認証します。Databricks の[サービスプリンシパル](https://docs.databricks.com/aws/en/admin/users-groups/service-principals)を作成し、そのサービスアカウント用の PAT を作成する必要があります。

サービスプリンシパルを作成したら、Databricks UI のサービスプリンシパル管理ページにあるサービスプリンシパル「Application Id」を使用して、Databricks CLI で PAT を生成できます。

```shell theme={null}
databricks token-management create-obo-token {Service Principal Application Id} --lifetime-seconds 7776000 --comment "Token for Kameleoon service principal"
```

#### 2. kameleoon\_configuration スキーマを作成する

##### Databricks をソースとして使用する場合

Kameleoon がポーリングするデータを含むカタログ内に、Kameleoon ポーリング設定用の専用スキーマを作成します。このスキーマは `kameleoon_configuration` と命名する必要があります。また、Kameleoon が使用するサービスプリンシパルに対して読み取りおよび書き込みのアクセス権を付与する必要があります。コマンドの例を以下に示します。

```sql theme={null}
CREATE SCHEMA my_catalog.kameleoon_configuration;
```

```sql theme={null}
GRANT CREATE TABLE ON SCHEMA my_catalog.kameleoon_configuration TO `{Service Principal Application Id}`;
```

```sql theme={null}
GRANT SELECT ON SCHEMA my_catalog.kameleoon_configuration TO `{Service Principal Application Id}`;
```

**Databricks をデスティネーションとして使用する場合：**

```sql theme={null}
CREATE SCHEMA my_catalog.kameleoon_configuration;
```

```sql theme={null}
GRANT CREATE TABLE ON SCHEMA my_catalog.kameleoon_events TO `{Service Principal Application Id}`;
```

上記のコマンドにあるように、`{Service Principal Application Id}` をサービスプリンシパルのアプリケーション ID に置き換える必要があります。

<Note>
  必要なカタログで直接クエリを実行する場合は、`my_catalog` プレフィックスを省略できます。
</Note>

#### 3. データへの読み取りアクセス権を付与する

Kameleoon は、読み取りまたは書き込みを行うテーブルへのアクセス権を持っている必要があります。これは次のようなコマンドで実現できます。

**Databricks をソースとして使用する場合：**

```sql theme={null}
GRANT SELECT ON my_catalog.user_data.user_account_table TO `{Service Principal Application Id}`; // will grant read rights on a specific table
```

```sql theme={null}
GRANT SELECT ON SCHEMA my_catalog.user_data TO `{Service Principal Application Id}`; // will grant read rights on all tables within a schema
```

**Databricks をデスティネーションとして使用する場合：**

```sql theme={null}
GRANT INSERT ON SCHEMA my_catalog.kameleoon_events TO `{Service Principal Application Id}`; // will grant write rights on all tables within a schema
```

注意：必要なカタログで直接クエリを実行する場合は、`my_catalog` プレフィックスを省略できます。

#### 4. Kameleoon IP を承認する（オプション）

[IP アクセスリスト](https://docs.databricks.com/aws/en/security/network/front-end/ip-access-list)を実装する場合は、Kameleoon のアカウントマネージャーに連絡して、承認する必要のある Kameleoon IP のリストを提供してもらってください。
