Skip to main content
Sensor.Community は、オープンな環境データを生み出す、コントリビューター主導のグローバルなセンサーネットワークです。データは世界中のセンサーから収集されています。誰でもセンサーを購入し、好きな場所に設置できます。データをダウンロードするための API は GitHub で公開されており、データは Database Contents License (DbCL) のもとで自由に利用できます。
このデータセットには 200 億件を超えるレコードが含まれているため、お使いのリソースでこの規模を処理できない場合は、以下のコマンドをそのままコピー&ペーストしないよう注意してください。これらのコマンドは、十分なサイズの ClickHouse Cloud サービス上で実行したものです。
これらのコマンドを実際に試すには、ClickHouse Cloud の無料トライアルに登録するか、セルフホストの ClickHouse をセットアップしてください。
  1. データは S3 にあるため、s3 テーブル関数を使ってファイルからテーブルを作成できます。また、データをその場でクエリすることもできます。ClickHouse に挿入する前に、まず数行を見てみましょう。
データはCSVファイルにありますが、区切り文字にはセミコロンが使われています。行は次のようになっています。
  1. ClickHouse にデータを保存するために、次の MergeTree テーブルを使用します。
  1. ここでは、S3 ファイルをクラスター内の各ノードに分散して並列に読み込む s3Cluster テーブル関数を使用します。ClickHouse Cloud ではクラスター名が default なので、以下のように実行できます。セルフマネージドのサーバーでは、default をクラスター名に置き換えてください。単一のサーバーで実行する場合は、代わりに s3 テーブル関数を使用し、最初の引数を削除して URL が最初の引数になるようにしてください。
このクエリは時間がかかります。非圧縮で約1.67Tのデータがあるためです:
レスポンスを以下に示します。行数と処理速度が表示されています。毎秒600万行を超える速度で入力されています!
  1. sensors テーブルに必要なディスク容量がどれくらいか見てみましょう。
1.67Tは310 GiBに圧縮されており、行数は206億9000万行です:
  1. データが ClickHouse に取り込まれたので、さっそく分析してみましょう。センサーの配備が進むにつれて、データ量が増えていくことがわかります:
SQL Consoleでチャートを作成し、結果を可視化できます:
  1. このクエリは、非常に暑く湿度の高い日数をカウントします。
結果の可視化を以下に示します: