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

> Embeddable は、高速でインタラクティブかつ完全にカスタマイズ可能なアナリティクス体験をアプリに直接組み込むための開発者向けツールキットです。

# Embeddable を ClickHouse に接続する

export const CommunityMaintainedBadge = () => {
  return <div className="CommunityMaintainedBadge">
            <div className="CommunityMaintainedIcon">
            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" viewBox="0 0 256 256">
                <path d="M244.8,150.4a8,8,0,0,1-11.2-1.6A51.6,51.6,0,0,0,192,128a8,8,0,0,1-7.37-4.89,8,8,0,0,1,0-6.22A8,8,0,0,1,192,112a24,24,0,1,0-23.24-30,8,8,0,1,1-15.5-4A40,40,0,1,1,219,117.51a67.94,67.94,0,0,1,27.43,21.68A8,8,0,0,1,244.8,150.4ZM190.92,212a8,8,0,1,1-13.84,8,57,57,0,0,0-98.16,0,8,8,0,1,1-13.84-8,72.06,72.06,0,0,1,33.74-29.92,48,48,0,1,1,58.36,0A72.06,72.06,0,0,1,190.92,212ZM128,176a32,32,0,1,0-32-32A32,32,0,0,0,128,176ZM72,120a8,8,0,0,0-8-8A24,24,0,1,1,87.24,82a8,8,0,1,0,15.5-4A40,40,0,1,0,37,117.51,67.94,67.94,0,0,0,9.6,139.19a8,8,0,1,0,12.8,9.61A51.6,51.6,0,0,1,64,128,8,8,0,0,0,72,120Z"></path>
            </svg>
        </div>
            コミュニティ管理
        </div>;
};

<CommunityMaintainedBadge />

[Embeddable](https://embeddable.com/) では、[Data Models](https://docs.embeddable.com/data-modeling/introduction) と [Components](https://docs.embeddable.com/development/introduction) をコードで定義し (自社のコードリポジトリに保存)、強力な Embeddable **ノーコード builder** でチームが利用できるように **SDK** を使用します。

その結果、高速でインタラクティブな顧客向け analytics を自社製品に直接組み込んで提供できるようになります。設計はプロダクトチーム、構築はエンジニアリングチーム、運用は顧客対応チームとデータチームが担います。まさに、あるべき形です。

組み込みの行レベルセキュリティにより、各ユーザーは自分に閲覧を許可されたデータだけを正確に見ることができます。さらに、完全に設定可能な 2 層の Caching により、大規模環境でも高速なリアルタイム analytics を提供できます。

<Steps>
  <Step title="接続の詳細情報を収集する" id="1-gather-your-connection-details">
    HTTP(S) で ClickHouse に接続するには、次の情報が必要です。

    | Parameter(s)              | Description                                               |
    | ------------------------- | --------------------------------------------------------- |
    | `HOST` and `PORT`         | 通常、TLS を使用する場合のポートは 8443、TLS を使用しない場合は 8123 です。           |
    | `DATABASE NAME`           | デフォルトでは `default` という名前のデータベースがあります。接続先のデータベース名を使用してください。 |
    | `USERNAME` and `PASSWORD` | デフォルトのユーザー名は `default` です。用途に応じたユーザー名を使用してください。           |

    ClickHouse Cloud サービスの詳細は、ClickHouse Cloud コンソールで確認できます。
    サービスを選択し、**Connect** をクリックします。

    <div className="ch-image-md">
      <Frame>
        <img src="https://mintcdn.com/private-7c7dfe99/CFFsa2agBPbviR4r/images/_snippets/cloud-connect-button.webp?fit=max&auto=format&n=CFFsa2agBPbviR4r&q=85&s=ec0a298a33ca841e947fa5e8bae47362" alt="ClickHouse Cloud サービスの接続ボタン" width="998" height="932" data-path="images/_snippets/cloud-connect-button.webp" />
      </Frame>
    </div>

    **HTTPS** を選択します。接続情報は `curl` コマンドの例として表示されます。

    <div className="ch-image-md">
      <Frame>
        <img src="https://mintcdn.com/private-7c7dfe99/CFFsa2agBPbviR4r/images/_snippets/connection-details-https.webp?fit=max&auto=format&n=CFFsa2agBPbviR4r&q=85&s=cb0fbd98aa2b5b7ca484c9f53395ee07" alt="ClickHouse Cloud HTTPS 接続情報" width="1320" height="1184" data-path="images/_snippets/connection-details-https.webp" />
      </Frame>
    </div>

    セルフマネージド ClickHouse を使用している場合、接続情報は ClickHouse 管理者によって設定されます。
  </Step>

  <Step title="ClickHouse接続タイプを作成する" id="2-create-a-clickhouse-connection-type">
    Embeddable API を使用してデータベース接続を追加します。この接続は、ClickHouse サービスへの接続に使用されます。接続は、次の API 呼び出しで追加できます。

    ```javascript title="Query" theme={null}
    // セキュリティ上の理由から、クライアントサイドからは絶対に呼び出さないでください
    fetch('https://api.embeddable.com/api/v1/connections', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        Accept: 'application/json',
        Authorization: `Bearer ${apiKey}` /* APIキーを安全に保管してください */,
      },
      body: JSON.stringify({
        name: 'my-clickhouse-db',
        type: 'clickhouse',
        credentials: {
          host: 'my.clickhouse.host',
          user: 'clickhouse_user',
          port: 8443,
          password: '*****',
        },
      }),
    });
    ```

    ```text title="Response" theme={null}
    Status 201 { errorMessage: null }
    ```

    上記は `CREATE` アクションを表していますが、`CRUD` のすべての操作を利用できます。

    `apiKey` は、Embeddable のいずれかのダッシュボードで "**Publish**" をクリックすると確認できます。

    `name` は、この接続を識別するための一意の名前です。

    * デフォルトでは、Data Models は "default" という名前の接続を参照しますが、モデルに別の `data_source` 名を指定することで、異なる Data Models を異なる接続先に接続できます (モデル内で data\_source 名を指定するだけです) 。

    `type` は、どのドライバーを使うかを Embeddable に伝えます

    * ここでは `clickhouse` を使用しますが、1 つの Embeddable ワークスペースに複数の異なるデータソースを接続できるため、`postgres`、`bigquery`、`mongodb` などを使用することもできます。

    `credentials` は、ドライバーが必要とする認証情報を含む JavaScript オブジェクトです

    * これらは安全に暗号化され、Data Models で定義したデータを取得するためにのみ使用されます。
      Embeddable では、接続ごとに読み取り専用のデータベースユーザーを作成することを強く推奨しています (Embeddable がデータベースに対して行うのは読み取りのみで、書き込みは行いません) 。

    prod、qa、test などで異なるデータベースへの接続に対応するため (または顧客ごとに異なるデータベースに対応するため) 、各接続を環境に割り当てることができます ([Environments API](https://docs.embeddable.com/data/environments) を参照) 。
  </Step>
</Steps>
