Перейти к основному содержимому
Перейти к основному содержимому

Данные экологических датчиков

Sensor.Community — это сеть глобальных датчиков, основанная на вкладе участников, которая создает открытые экологические данные. Данные собираются с датчиков по всему миру. Любой может приобрести датчик и установить его где угодно. API для загрузки данных находится на GitHub, и данные доступны бесплатно по лицензии Database Contents License (DbCL).

к сведению

В наборе данных более 20 миллиардов записей, поэтому будьте осторожны, просто копируя и вставляя команды ниже, если ваши ресурсы не могут справиться с таким объемом. Команды ниже выполнялись на Production экземпляре ClickHouse Cloud.

  1. Данные находятся в S3, поэтому мы можем использовать функцию таблицы s3 для создания таблицы из файлов. Мы также можем запрашивать данные на месте. Давайте посмотрим на несколько строк, прежде чем внедрять их в ClickHouse:

Данные находятся в CSV файлах, но используют точку с запятой в качестве разделителя. Строки выглядят следующим образом:

  1. Мы будем использовать следующую таблицу MergeTree для хранения данных в ClickHouse:
  1. В ClickHouse Cloud есть кластер с именем default. Мы будем использовать функцию таблицы s3Cluster, которая считывает файлы из S3 параллельно с узлов в вашем кластере. (Если у вас нет кластера, просто используйте функцию s3 и удалите имя кластера.)

Этот запрос займет некоторое время - это примерно 1.67T данных в некомпрессированном виде:

Вот ответ - показывает количество строк и скорость обработки. Вводится со скоростью более 6M строк в секунду!

  1. Давайте посмотрим, сколько дискового пространства нужно для таблицы sensors:

1.67T сжато до 310 GiB, и всего 20.69 миллиардов строк:

  1. Давайте проанализируем данные после их загрузки в ClickHouse. Обратите внимание, что количество данных увеличивается с течением времени с ростом числа развернутых датчиков:

Мы можем создать график в SQL Console для визуализации результатов:

  1. Этот запрос считает количество сильно жарких и влажных дней:

Вот визуализация результата: