Conjunto de datos
Exploración de datos
clickhouse-local, una pequeña herramienta de línea de comandos
que ofrece todo el motor de ClickHouse, aunque también puede usar
ClickHouse Cloud, clickhouse-client o incluso chDB.
Ejecute la siguiente consulta para seleccionar los datos del bucket de S3 donde están almacenados:
Query
Response
ᴺᵁᴸᴸ, así que podemos añadir algunas condiciones más
a nuestra consulta para obtener datos más útiles:
Query
DESCRIBE:
Query
Response
Carga de los datos en ClickHouse
clickhouse-server
o ClickHouse Cloud.
Para crear la tabla, ejecuta el siguiente comando:
Query
LowCardinality
para varias columnas, lo que cambia la representación interna de los datos
para codificarlos mediante diccionario. Trabajar con datos codificados mediante diccionario
aumenta significativamente el rendimiento de las consultas SELECT en muchas aplicaciones.
Además, se crean dos columnas UInt32 MATERIALIZED, mercator_x y mercator_y,
que convierten las coordenadas de latitud/longitud a la proyección Web Mercator
para segmentar más fácilmente el mapa en teselas:
longitude + 180desplaza el rango de longitudes de [-180, 180] a [0, 360]- Dividir entre 360 lo normaliza a un valor entre 0 y 1
- Multiplicar por
0xFFFFFFFF(hexadecimal del valor máximo de un entero sin signo de 32 bits) escala este valor normalizado al rango completo de un entero de 32 bits
latitude + 90desplaza la latitud de [-90, 90] a [0, 180]- Dividir entre 360 y multiplicar por pi() lo convierte a radianes para las funciones trigonométricas
- La parte
log(tan(...))es el núcleo de la fórmula de proyección de Mercator - Multiplicar por
0xFFFFFFFFlo escala al rango completo de enteros de 32 bits
MATERIALIZED garantiza que ClickHouse calcule los valores de estas
columnas cuando hacemos INSERT de los datos, sin tener que especificar estas columnas (que no
forman parte del esquema de datos original) en la sentencia `INSERT.
La tabla se ordena por mortonEncode(mercator_x, mercator_y), lo que genera una
curva de llenado espacial en orden Z de mercator_x, mercator_y para
mejorar significativamente el rendimiento de las consultas geoespaciales. Esta ordenación por curva en Z garantiza que los datos queden
organizados físicamente según su proximidad espacial:
minmax para acelerar la búsqueda: