メインコンテンツへスキップ
メインコンテンツへスキップ

Embeddable を ClickHouse に接続する

Community Maintained

Embeddable では、Data ModelsComponents をコードで定義し (コードは自社のリポジトリに保存されます) 、SDK を使って、これらを強力な Embeddable のノーコードビルダーでチームが利用できるようにします。

その結果、プロダクトに顧客向けの高速でインタラクティブなアナリティクスを直接組み込めるようになります。設計はプロダクトチーム、実装はエンジニアリングチーム、運用は顧客対応チームとデータチームが担います。あるべき形そのものです。

組み込みの行レベルセキュリティにより、各ユーザーには、閲覧を許可されたデータだけが表示されます。さらに、2 層の完全に設定可能なキャッシュによって、大規模環境でも高速なリアルタイムアナリティクスを提供できます。

1. 接続情報を用意する

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 をクリックします。

ClickHouse Cloud サービスの Connect ボタン

HTTPS を選択します。接続情報は、サンプルの curl コマンド内に表示されます。

ClickHouse Cloud HTTPS 接続詳細

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

2. ClickHouse 接続タイプを作成する

Embeddable API を使用してデータベース接続を追加します。この接続は、ClickHouse サービスへの接続に使用されます。接続は、次の API 呼び出しで追加できます。

// for security reasons, this must *never* be called from your client-side
fetch('https://api.embeddable.com/api/v1/connections', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Accept: 'application/json',
    Authorization: `Bearer ${apiKey}` /* keep your API Key secure */,
  },
  body: JSON.stringify({
    name: 'my-clickhouse-db',
    type: 'clickhouse',
    credentials: {
      host: 'my.clickhouse.host',
      user: 'clickhouse_user',
      port: 8443,
      password: '*****',
    },
  }),
});
Status 201 { errorMessage: null }

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

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

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

  • デフォルトでは、Data Models は "default" という名前の接続を参照しますが、モデルに別の data_source 名を指定することで、異なる Data Models を異なる接続に紐付けられます (モデル内で data_source 名を指定するだけです)

type は、使用するドライバーを Embeddable に伝えるためのものです

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

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

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

prod、qa、test などで異なるデータベースへの接続をサポートするため (または顧客ごとに異なるデータベースをサポートするため) 、各接続を環境に割り当てることができます (Environments API を参照) 。