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

# Snowflake のセットアップ

> 必要な権限を持つ Snowflake ユーザーとロールを作成し、Snowflake アカウントを Kameleoon に接続してデータウェアハウス連携を行います。

この連携を設定するには、Snowflake アカウント識別子が必要です。また、Kameleoon がウェアハウスとやり取りするために使用する、特定の権限を持つ Snowflake ユーザーと関連するロールを Snowflake アカウント内に作成する必要があります。このチュートリアルでは、Snowflake ユーザーインターフェースの Snowflake ワークシートで実行できるコマンドと、Kameleoon に必要な認証情報を提供する方法を説明します。

Snowflake 連携により、ターゲットキャンペーンやパーソナライズされたユーザー体験のためのデータ取得を簡素化し、キャンペーン結果を Snowflake データベースに保存して、分析とレポーティングを容易に行えます。

**主なメリット：**

* 正確なデータ収集が可能になり、特定のオーディエンスのニーズや嗜好に合わせてカスタマイズされたキャンペーンのオーディエンスターゲティングを強化します。
* データインジェスチョンタスクを設定し、Snowflake からデータを抽出します。
* キャンペーン結果を簡単に保存し、一元的に分析できます。
* 安全なストレージとデータ転送の効率化により、プロジェクト ID だけで意思決定に必要なデータを取得できます。

## Kameleoon UI

Snowflake ウェアハウスとの接続を作成するには、まず次のフィールドに入力する必要があります。

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/data-warehouses/snowflake/setting-up-snowflake/0.png)
</Frame>

以下のセクションでは、各フィールドについて説明し、Snowflake アカウントでそれらを設定する方法を示します。

## Snowflake 識別子

Snowflake 識別子は、[Snowflake ドキュメント](https://docs.snowflake.com/en/user-guide/admin-account-identifier)に記載されている文字列識別子です。当社のバックエンドでは、この文字列がアカウントにアクセスするための完全な URL に挿入されます：**`https://account_identifier.snowflake-computing.com`**

完全な URL ではなく、サブストリング `account_identifier` のみを入力してください。

## Snowflake ユーザーを作成する

### パスワード認証

Snowflake 連携は 2 つの認証方式をサポートしています。1 つ目はパスワード認証です。パスワード認証の場合、Snowflake UI で次のコマンドを使用して、強固なパスワードを持つ Snowflake ユーザー（この例では `KAMELEOON_USER` と呼ばれます）を作成します：

`CREATE USER KAMELEOON_USER PASSWORD='MySecurePassword';`

その後、連携を設定する際にこのパスワードを入力できます。

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/data-warehouses/snowflake/setting-up-snowflake/1.png)
</Frame>

<Note>
  Snowflake をデスティネーションとして使用する場合は、この認証方式を選択することは**できません**。次のセクションで説明する **キーペア** 方式のみが機能します。
</Note>

### キーペア認証

2 つ目の認証方式は、RSA 秘密鍵と RSA 公開鍵からなる RSA キーペアによるものです。Kameleoon はバックエンドでこのキーペアを生成し、公開鍵を提供します（秘密鍵は当社のサーバーに保存され、ウェアハウスへのクエリ時にアプリケーションが使用します）。

**Confirm** をクリックすると、Kameleoon UI に公開鍵と、作成したユーザーにこの公開鍵を割り当てるために使用できるコマンドが表示されます。この公開鍵は再表示されないため、必ずコピーしてください。公開鍵を紛失した場合は、接続を削除して再設定することで、新しいキーペアを生成できます。

<Note>
  Snowflake をデスティネーションとして使用する場合は、この認証方式を選択する**必要があり**、**パスワード方式**ではいけません。
</Note>

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/data-warehouses/snowflake/setting-up-snowflake/2.png)
</Frame>

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/data-warehouses/snowflake/setting-up-snowflake/3.png)
</Frame>

## Snowflake ロール

### 作成

次は、Snowflake ロール（この例では `KAMELEOON_ROLE` と呼ばれますが、社内の命名規則を使用できます）を作成し、ユーザー `KAMELEOON_USER` に割り当てるコマンドです：

`CREATE ROLE KAMELEOON_ROLE;`

`GRANT ROLE KAMELEOON_ROLE TO USER KAMELEOON_USER;`

### 権限の付与

まずウェアハウス（ここでは `MY_WAREHOUSE` と呼びます）へのアクセス権を付与する必要があります：

`GRANT USAGE ON WAREHOUSE MY_WAREHOUSE TO ROLE KAMELEOON_ROLE;`

Kameleoon は **`KAMELEOON`** という特定のデータベース（この名前を使用してください）と、このデータベースへの読み取りおよび書き込みアクセス権を必要とします。

`CREATE DATABASE KAMELEOON;`

`GRANT USAGE ON DATABASE KAMELEOON TO ROLE KAMELEOON_ROLE;`

`GRANT USAGE ON ALL SCHEMAS IN DATABASE KAMELEOON TO ROLE KAMELEOON_ROLE;`

`GRANT CREATE TABLE ON ALL SCHEMAS IN DATABASE KAMELEOON TO ROLE KAMELEOON_ROLE;`

#### Snowflake をソースとして使用する予定の場合

Snowflake をソースとして使用する予定の場合は、**`KAMELEOON_CONFIGURATION`** という名前のスキーマ（この名前を使用してください）を作成し、このスキーマに権限を付与する必要があります：

`CREATE SCHEMA KAMELEOON.KAMELEOON_CONFIGURATION;`

次に、Kameleoon ユーザーにデータへの読み取りアクセス権を付与する必要があります。たとえば、`MY_DATA` というデータベースに含まれる `MY_AUDIENCES` というスキーマがあり、そこからオーディエンスをポーリングしたい場合、次のコマンドで Kameleoon ユーザーに読み取りアクセス権を設定できます：

`GRANT USAGE ON DATABASE MY_DATA TO ROLE KAMELEOON_ROLE;`

`GRANT USAGE ON SCHEMA MY_DATA.MY_AUDIENCES TO ROLE KAMELEOON_ROLE;`

`GRANT SELECT ON ALL TABLES IN SCHEMA  MY_DATA.MY_AUDIENCES TO ROLE KAMELEOON_ROLE;`

#### Snowflake をデスティネーションとして使用する予定の場合

Snowflake を**デスティネーションとして**使用する予定の場合は、Kameleoon エクスポージャーイベントテーブルを格納するために `**KAMELEOON_EVENTS**` という名前のスキーマ（この名前を使用してください）を作成する必要があります：

`CREATE SCHEMA KAMELEOON.KAMELEOON_EVENTS;`

これでセットアップは完了です。Snowflake を[ソースとして](./use-snowflake-as-a-source-pulling-events-for-reporting)および/または[デスティネーションとして](./use-snowflake-as-a-destination)有効化できます。
