目標
- OpenCelliD のデータを ClickHouse に読み込む
- Apache Superset を ClickHouse に接続する
- データセット内のデータを基にダッシュボードを作成する
データセットを取得する
- ClickHouse Cloud
- セルフマネージド
サンプルデータを読み込む
ClickHouse Cloud では、このデータセットを S3 から簡単にアップロードできます。ClickHouse Cloud の組織にログインするか、ClickHouse.cloud で無料トライアルを開始してください。サービスを選択し、Data sources -> Predefined sample data の順にクリックします。Sample data タブで Cell Towers データセットを選択し、Load data をクリックします。cell_towers テーブルのスキーマを確認する
SQL コンソールに接続
SQL コンソールに接続
ClickHouse Cloud サービスの一覧から、サービスをクリックします。SQL コンソールにリダイレクトされます。
DESCRIBE の出力です。各フィールド型の選択理由については、このガイドの後半で説明します。クエリ例をいくつか実行する
- タイプ別の基地局数:
- 移動体国コード (MCC) ごとの基地局:
ユースケース: Geo data を取り込む
pointInPolygon 関数を使用します。
- Polygon を保存するテーブルを作成します。
- ClickHouse Cloud
- セルフマネージド
- これはモスクワ (「新モスクワ」を除く) の大まかな形状です。
- モスクワにある基地局の数を確認します:
スキーマの確認
このテーブルのスキーマは、ディスク上でのコンパクトな保存とクエリ速度を考慮して設計されています。
radioデータは、文字列ではなくEnum8(UInt8) として保存されます。mcc、つまりモバイル国コードは、値の範囲が 1 ~ 999 であることがわかっているため、UInt16として保存されます。lonとlatはFloat64です。
Apache Superset で可視化を作成する
pip install clickhouse-connect で ClickHouse Connect を追加するだけです。Superset をインストールする必要がある場合は、すぐ下の Launch Apache Superset in Docker を開いてください。
Docker で Apache Superset を起動
Docker で Apache Superset を起動
Superset には、Docker Compose を使用して Superset をローカルにインストールする手順があります。GitHub から Apache Superset リポジトリをチェックアウトした後、最新の開発コード、または特定のタグを実行できます。
pre-release としてマークされていない最新のリリースである 2.0.0 を推奨します。docker compose を実行する前に、いくつかの作業が必要です:- 公式の ClickHouse Connect ドライバーを追加する
- Mapbox API キーを取得し、環境変数として追加する (任意)
- 実行する Superset のバージョンを指定する
公式 ClickHouse Connect ドライバー
Superset のデプロイメントで ClickHouse Connect ドライバーを利用できるようにするには、ローカルの requirements ファイルに追加します:Mapbox
これは任意です。Mapbox API キーがなくても Superset で位置データをプロットできますが、キーを追加するよう促すメッセージが表示され、地図の背景画像は表示されません (データポイントだけが表示され、地図の背景は表示されません) 。Mapbox には無料 tier もあります。このガイドで作成するサンプル可視化の一部では、たとえば経度や緯度などの位置データを使用します。Superset には Mapbox マップのサポートが含まれています。Mapbox の可視化を使用するには、Mapbox API キーが必要です。Mapbox free tier にサインアップし、API キーを生成してください。API キーを Superset で利用できるようにします:Superset バージョン 2.0.0 をデプロイ
リリース 2.0.0 をデプロイするには、次を実行します:- ClickHouseサービスを Superset の データベース として追加する
- テーブル cell_towers を Superset の データセット として追加する
- チャートをいくつか作成する
- それらのチャートを ダッシュボード に追加する
ClickHouse service を Superset のデータベースとして追加する
ClickHouse Cloud サービスの詳細は、ClickHouse Cloud コンソールで確認できます。
サービスを選択し、Connect をクリックします。
HTTPS を選択します。接続情報は
curl コマンドの例として表示されます。
セルフマネージド ClickHouse を使用している場合、接続情報は ClickHouse 管理者によって設定されます。
Superset では、データベースの種類を選択し、接続情報を入力するとデータベースを追加できます。Superset を開き、+ をクリックして、Data、Connect database の順に選択します。
一覧から ClickHouse Connect を選択します。
ClickHouse Connect が選択肢に表示されない場合は、インストールする必要があります。コマンドは
pip install clickhouse-connect です。詳しくはこちらを参照してください。接続情報を追加する
テーブル cell_towers を Superset の データセット として追加する
default) 、そして cell_towers テーブルを選択します。
いくつかのチャートを作成する
cell_towers) とチャートの種類を指定する必要があります。OpenCelliD データセットには基地局の経度・緯度の座標が含まれているため、ここでは Map チャートを作成します。deck.gL Scatterplot タイプは、地図上の密集したデータポイントを適切に表示できるため、このデータセットに適しています。
地図に使用するクエリを指定する
lon と lat には、それぞれ経度と緯度が格納されています。
mcc = 204 のフィルターを追加します (または別の mcc 値に置き換えます) 。
radio = 'UMTS' のフィルターを追加します (または別の radio 値に置き換えます。選択肢は DESCRIBE TABLE cell_towers の出力で確認できます) 。
以下は、radio = 'UMTS' および mcc = 204 でフィルターするチャートの完全な設定です。
可視化を表示するには、UPDATE CHART をクリックします。