Набор данных
Исследование данных
clickhouse-local — небольшую утилиту командной строки,
которая предоставляет полноценный движок ClickHouse, хотя вы также можете использовать
ClickHouse Cloud, clickhouse-client или даже chDB.
Выполните следующий запрос, чтобы выбрать данные из S3 бакета, где они хранятся:
Query
Response
ᴺᵁᴸᴸ, поэтому можем добавить в запрос несколько дополнительных условий,
чтобы получить более пригодные для анализа данные:
Query
DESCRIBE:
Query
Response
Загрузка данных в ClickHouse
clickhouse-server
или ClickHouse Cloud.
Чтобы создать таблицу, выполните следующую команду:
Query
LowCardinality
для нескольких столбцов: он изменяет внутреннее представление данных
этих типов на словарное кодирование. Работа с данными, закодированными с помощью словаря, значительно
повышает производительность запросов SELECT во многих приложениях.
Кроме того, создаются два MATERIALIZED столбца типа UInt32 — mercator_x и mercator_y,
которые сопоставляют координаты lat/lon с проекцией Web Mercator
для более удобного разбиения карты на тайлы:
longitude + 180сдвигает диапазон долготы из [-180, 180] в [0, 360]- Деление на 360 нормализует значение до диапазона от 0 до 1
- Умножение на
0xFFFFFFFF(hex-представление максимального 32-битного беззнакового целого) масштабирует это нормализованное значение до полного диапазона 32-битного целого
latitude + 90сдвигает диапазон широты из [-90, 90] в [0, 180]- Деление на 360 и умножение на pi() переводит значение в радианы для тригонометрических функций
- Часть
log(tan(...))— это основа формулы проекции Меркатора - умножение на
0xFFFFFFFFмасштабирует значение до полного диапазона 32-битного целого
MATERIALIZED гарантирует, что ClickHouse вычислит значения этих
столбцов при INSERT данных, без необходимости явно указывать эти столбцы (которые не входят
в исходную схему данных) в операторе `INSERT.
Таблица упорядочена по mortonEncode(mercator_x, mercator_y), что создает
пространственно-заполняющую Z-кривую для mercator_x, mercator_y, чтобы существенно
повысить производительность геопространственных запросов. Такое упорядочивание по Z-кривой гарантирует, что данные
физически организованы по пространственной близости:
minmax для ускорения поиска: