Conjunto de dados
Exploração de dados
clickhouse-local, uma pequena ferramenta de linha de comando
que oferece o mecanismo do ClickHouse completo, embora você também possa usar
ClickHouse Cloud, clickhouse-client ou até mesmo chDB.
Execute a consulta a seguir para selecionar os dados do bucket do S3 em que eles estão armazenados:
Query
Response
ᴺᵁᴸᴸ, então podemos adicionar algumas condições
à nossa consulta para retornar dados mais úteis:
Query
DESCRIBE:
Query
Response
Carregando os dados no ClickHouse
clickhouse-server
ou ClickHouse Cloud.
Para criar a tabela, execute o seguinte comando:
Query
LowCardinality
em várias colunas, o que altera a representação interna dos dados
para uma codificação por dicionário. Trabalhar com dados codificados por dicionário
aumenta significativamente o desempenho de consultas SELECT em muitas aplicações.
Além disso, são criadas duas colunas UInt32 MATERIALIZED, mercator_x e mercator_y,
que mapeiam as coordenadas de latitude/longitude para a projeção Web Mercator
para facilitar a segmentação do mapa em blocos:
longitude + 180desloca o intervalo de longitude de [-180, 180] para [0, 360]- Dividir por 360 normaliza isso para um valor entre 0 e 1
- Multiplicar por
0xFFFFFFFF(hexadecimal para o valor máximo de um inteiro sem sinal de 32 bits) escala esse valor normalizado para todo o intervalo de um inteiro de 32 bits
latitude + 90desloca a latitude de [-90, 90] para [0, 180]- Dividir por 360 e multiplicar por pi() converte para radianos para uso nas funções trigonométricas
- A parte
log(tan(...))é o núcleo da fórmula da projeção de Mercator - Multiplicar por
0xFFFFFFFFescala para todo o intervalo de inteiros de 32 bits
MATERIALIZED garante que o ClickHouse calcule os valores dessas
colunas quando fazemos o INSERT dos dados, sem precisar especificar essas colunas (que não fazem
parte do esquema de dados original) na instrução INSERT.
A tabela é ordenada por mortonEncode(mercator_x, mercator_y), o que produz uma
curva Z de preenchimento espacial de mercator_x, mercator_y para
melhorar significativamente o desempenho de consultas geoespaciais. Essa ordenação por curva Z garante que os dados sejam
organizados fisicamente por proximidade espacial:
minmax para acelerar as buscas: