Real-Time Market AnalyticsClickHouse Workshops

07 自分のデータでライブダッシュボードを作る

コンテナ化されたダッシュボードを自分のノート PC で動かし、自分の ClickHouse Cloud サービスに接続して、フィルタを変えるたびにクエリ時間とスキャン行数が変わる様子を見ます。

速さを 体感 したいですか? 自分の ClickHouse Cloud サービスの forex テーブルにクエリする小さな ダッシュボードを、自分のノート PC で動かしてみましょう。インタラクティブなローソク足と出来高の チャートを描き、フィルタを変えるたびに ClickHouse のクエリ時間 とスキャンした行数を表示します。 たいてい数ミリ秒です。まさにそれが要点です。ペアを変え、日付範囲をドラッグすると、データが即座に 返ってきます。

なぜ Docker?

アプリは固定バージョンの Python を同梱した Docker コンテナ の中で動くので、手元にどの Python が 入っているか(あるいは入っていないか)は関係ありません。必要なのは Docker だけです。

ステップ1 — Docker をインストールする

まだ入れていない場合は Docker Desktop をインストールして起動してください。 以下で使う docker compose コマンドが含まれています。起動していることを確認します:

docker --version

ステップ2 — リポジトリをクローンする

ワークショップのリポジトリをクローンし、ダッシュボードのフォルダに移動します:

git clone https://github.com/ClickHouse/ClickHouse_Demos.git
cd ClickHouse_Demos
cd "$(git rev-parse --show-toplevel)/workshop_public/RTA-mini-workshop/dashboard"

ステップ3 — 接続情報を設定する

テンプレートを実際の .env ファイルにコピーし、任意のテキストエディタで開いて 自分の サービスの情報を入力します:

cp .env.example .env
# now edit .env and fill in the values below

これらは Cloud コンソールの Connect(左メニュー)→ HTTPS で確認できます:

変数入れる値
CLICKHOUSE_HOST例: abc123.ap-southeast-1.aws.clickhouse.cloud — https:// なし、ポート なし
CLICKHOUSE_PORT8443
CLICKHOUSE_USERdefault
CLICKHOUSE_PASSWORDサービス作成時に設定したパスワード
CLICKHOUSE_DATABASEforex があるデータベース(通常は default)
CLICKHOUSE_SECUREtrue

ステップ4 — 実行する

コンテナをビルドして起動します。初回はベースイメージのダウンロードと依存関係のインストールが走ります (1〜2分)。その後は一瞬です。

docker compose up --build

ポート 8000 で待ち受けている表示が出たら、ブラウザで http://localhost:8000 を開いてください。終了するときは Ctrl-C です。

試してみること

通貨ペア を切り替える、日付範囲 をドラッグする、quick range ボタンを押す。どの操作でも ClickHouse に再クエリが走り、右上のバッジに新しい クエリ時間 と スキャン行数 が表示されます。 範囲を1ペアに絞り込むと、数千行と数ミリ秒まで落ちるのが見えます。 モジュール 4.7 とまったく同じ、sort key が効いている状態です。

データが表示されませんか?

赤いバナーはアプリが ClickHouse に到達できていないことを示します。.env の値をもう一度確認して ください。host は https:// なし・ポートなし、port は 8443 です。そして forex テーブルが ロードされていることを確認してください。詳しいセットアップ手順とトラブルシューティングは ダッシュボードの README.md にあります。

このページの内容

Track your progress?

Optional. We email a link to confirm your address; progress records once you open it.

Please use your work email address, not a personal one.

Progress tracking also requires accepting the current Terms of Service in Privacy settings.

JA