pointInPolygon para contar as torres localizadas na Alemanha e usará o ClickHouse Agents para visualizar o resultado em um mapa.
Pré-requisitos
Para este tutorial, você vai precisar de:- Uma conta do ClickHouse Cloud (US$ 300 em créditos gratuitos ao se cadastrar)
- Um serviço do ClickHouse Cloud
Carregue os dados de exemplo
O conjunto de dados usado neste tutorial é do , o maior banco de dados aberto de torres de celular do mundo.
Em 2021, ele continha dezenas de milhões de registros sobre torres de celular em todo o mundo, com suas coordenadas geográficas e metadados como código do país e rede.
- No ClickHouse Cloud, no menu à esquerda, selecione seu serviço no menu suspenso
- Selecione Data sources
- Clique no card Add sample data
- Selecione o conjunto de dados Cell Towers (1.1 GB)
- Use
defaultcomo banco de dados de destino e clique emImport dataset
Examine o schema
- Selecione SQL Console no menu à esquerda
- Clique na aba + ao lado do ícone de início para criar uma nova consulta
- No editor SQL, digite a consulta a seguir e clique em Run:
lon e lat.Execute consultas básicas
Execute a consulta a seguir para ver o número de torres de celular por tipo:Em seguida, verifique o número de torres de celular por Mobile Country Code (MCC):Observe que os países com mais torres de celular têm os MCCs 310, 262 e 250.
Você pode usar um dicionário para substituir os valores numéricos da coluna Com o dicionário criado, agora você pode usá-lo para retornar a mesma lista com o nome do país junto ao MCC:
mcc pelos nomes dos países:Query
Response
Incorpore dados geográficos
Talvez você também queira saber quantas torres de celular há em uma determinada área geográfica.
O ClickHouse oferece diversas funções geoespaciais úteis para esse caso de uso, como a função Agora, insira na tabela as coordenadas do contorno da Alemanha (continental):Agora você pode verificar quantas torres de celular estão localizadas na Alemanha continental com a função
pointInPolygon.Imagine que você queira saber quantas torres de celular existem na Alemanha.
Crie uma tabela chamada germany com uma única coluna do tipo polygon:pointInPolygon:Query
Response
Opcional: visualize os dados com ClickHouse Agents
Em seguida, vamos visualizar esses dados. Esta é uma execução de exemplo opcional: o ClickHouse Agents é uma funcionalidade beta baseada em modelos, portanto o plano, o rastro de ferramentas e a saída podem variar de uma execução para outra.
O ClickHouse Agents permite consultar e explorar facilmente seus dados do ClickHouse por meio de conversas, sem que você precise escrever SQL ou lógica de orquestração.
O agente interpreta sua intenção, planeja as etapas, chama as ferramentas que você configurou e retorna os resultados para você.Clique em ClickHouse agents, abaixo do nome da sua organização, na parte inferior do menu à esquerda, para abrir o ClickHouse Agents.
Você pode enviar mensagens ao ClickHouse Agent pelo chat.
Digite “Visualize cell towers within Germany on a map using the
default.cell_towers and default.germany tables” e clique em enviar.
Em uma das execuções, o agente realizou as seguintes etapas:- Ele consultou o Mobile Country Code da Alemanha em
mcc_country_dicte encontrou o MCC262. - Ele contou as torres com
mcc = 262localizadas dentro do polígono emgermanyusandopointInPolygon, chegando a 2.588.635 torres. Esse número é um pouco menor que a contagem anterior porque o filtro adicional pormccexclui torres dentro do polígono registradas em outro país. - Em vez de plotar 2,6 milhões de pontos individuais, ele agrupou as torres em uma grade de 0,1° por 0,1° arredondando
lonelat, o que gerou 4.821 células. Em seguida, verificou que a soma das contagens das células resulta exatamente em 2.588.635, ou seja, nada foi perdido nem contado em duplicidade no agrupamento. - Ele recuperou o polígono de
germanye o desenhou como contorno sobre a grade, usando uma escala de cores logarítmica para que tanto as células urbanas densas quanto as células rurais esparsas fiquem visíveis.
Próximos passos
Neste tutorial, você carregou o conjunto de dados de torres de celular do OpenCelliD no ClickHouse Cloud, examinou seu schema e executou consultas de agregação em dezenas de milhões de linhas. Você criou um dicionário para enriquecer a coluna numéricamcc com nomes de países, armazenou o contorno da Alemanha como um polígono e usou pointInPolygon para contar as torres dentro dele.
Por fim, você usou o ClickHouse Agents para transformar essa pergunta em um mapa de densidade sem precisar escrever o código de agregação ou de plotagem.
A partir daqui, você pode:
- Fazer novas perguntas ao agente. Experimente perguntar como a densidade varia entre tipos de rádio, como
LTEeGSM, ou quais cidades têm mais torresNR. Salve os prompts que você usa com frequência na biblioteca de prompts ou crie um agente especializado no Agent Builder. - Comparar países. Insira polígonos de outros países e execute a mesma consulta
pointInPolygonpara cada um deles. O dicionário que você criou permite rotular os resultados com os nomes dos países. - Agrupar torres com H3 ou geohash. O agente usou uma grade simples de arredondamento. O ClickHouse também oferece funções H3 e geohash, que geram células hierárquicas ideais para mapas com zoom.
- Explorar outros datasets. O dataset de táxis de NYC também contém coordenadas de embarque e desembarque, e o índice de datasets de exemplo lista muitos outros.