pointInPolygon para contar las torres ubicadas en Alemania y recurrirá a ClickHouse Agents para visualizar el resultado en un mapa.
Requisitos previos
Para este tutorial, necesitará:- Una cuenta de ClickHouse Cloud (300 USD en créditos gratuitos al registrarse)
- Un servicio de ClickHouse Cloud
Cargue los datos de muestra
El conjunto de datos utilizado en este tutorial procede de , la base de datos abierta de torres de telefonía móvil más grande del mundo.
En 2021, contenía decenas de millones de registros de torres de telefonía móvil de todo el mundo, con sus coordenadas geográficas y metadata como el código de país y la red.
- En ClickHouse Cloud, en el menú de la izquierda, seleccione su servicio en el menú desplegable
- Seleccione Data sources
- Haga clic en la tarjeta Add sample data
- Seleccione el conjunto de datos Cell Towers (1.1 GB)
- Use
defaultcomo base de datos de destino y haga clic enImport dataset
Examine el esquema
- Seleccione SQL console en el menú de la izquierda
- Haga clic en la pestaña + situada junto al icono de inicio para crear una nueva consulta
- En el editor SQL, escriba la siguiente consulta y haga clic en Run:
lon y lat.Ejecute consultas básicas
Ejecute la siguiente consulta para ver el número de torres de telefonía móvil por tipo:A continuación, compruebe el número de torres de telefonía móvil por código de país móvil (MCC):Puede ver que los países con más torres de telefonía móvil tienen los MCC 310, 262 y 250.
Puede usar un diccionario para sustituir los valores numéricos de la columna Una vez creado el diccionario, puede usarlo para devolver la misma lista con el nombre del país junto al MCC:
mcc por los nombres de los países:Query
Response
Incorporar datos geográficos
También puede que le interese saber cuántas torres de telefonía móvil hay dentro de un área geográfica determinada.
ClickHouse ofrece numerosas funciones geoespaciales útiles para este caso de uso, como la función A continuación, inserte en la tabla las coordenadas del contorno de Alemania (continental):Ahora puede comprobar cuántas antenas de telefonía móvil hay en la Alemania continental mediante la función
pointInPolygon.Supongamos que quiere saber cuántas antenas de telefonía móvil hay en Alemania.
Cree una tabla llamada germany con una única columna de tipo polygon:pointInPolygon:Query
Response
Opcional: Visualice los datos con ClickHouse Agents
A continuación, visualizaremos estos datos. Esta ejecución de ejemplo es opcional: ClickHouse Agents es una funcionalidad beta basada en modelos, por lo que su plan, la traza de herramientas y la salida pueden variar de una ejecución a otra.
ClickHouse Agents le permite consultar y explorar fácilmente sus datos de ClickHouse mediante una conversación, sin tener que escribir usted mismo SQL ni lógica de orquestación.
El agente interpreta su intención, planifica los pasos, llama a las herramientas que haya configurado y le devuelve los resultados.Haga clic en ClickHouse agents, debajo del nombre de su organización en la parte inferior del menú de la izquierda, para abrir ClickHouse Agents.
Puede enviar mensajes al agente de ClickHouse a través del chat.
Escriba “Visualize cell towers within Germany on a map using the
default.cell_towers and default.germany tables” y pulse enviar.
En una de las ejecuciones, el agente llevó a cabo los siguientes pasos:- Buscó el código móvil de país (Mobile Country Code) de Alemania en
mcc_country_dicty obtuvo el MCC262. - Contó las torres con
mcc = 262situadas dentro del polígono degermanymediantepointInPolygon, lo que dio como resultado 2.588.635 torres. Esta cifra es ligeramente inferior al recuento anterior porque el filtro adicional pormccexcluye las torres que, aun estando dentro del polígono, están registradas en otro país. - En lugar de representar 2,6 millones de puntos individuales, agrupó las torres en una cuadrícula de 0,1° por 0,1° redondeando
lonylat, lo que generó 4.821 celdas. Comprobó que la suma de los recuentos de las celdas daba exactamente 2.588.635, de modo que durante la agrupación no se perdió ninguna torre ni se contó ninguna dos veces. - Recuperó el polígono de
germanyy lo dibujó como contorno sobre la cuadrícula, con una escala de color logarítmica para que se aprecien tanto las celdas urbanas densas como las celdas rurales dispersas.
Próximos pasos
En este tutorial cargó el conjunto de datos de torres de telefonía móvil de OpenCelliD en ClickHouse Cloud, examinó su esquema y ejecutó consultas de agregación sobre decenas de millones de filas. Creó un diccionario para enriquecer la columna numéricamcc con los nombres de los países, almacenó el contorno de Alemania como un polígono y utilizó pointInPolygon para contar las torres situadas en su interior.
Por último, utilizó ClickHouse Agents para convertir esa pregunta en un mapa de densidad sin tener que escribir usted mismo el código de agregación ni el de visualización.
A partir de aquí, puede:
- Hacer preguntas de seguimiento al agente. Pruebe a preguntar cómo varía la densidad entre tipos de radio como
LTEyGSM, o qué ciudades tienen más torresNR. Guarde los prompts que reutilice en la biblioteca de prompts o cree un agente especializado en el Agent Builder. - Comparar países. Inserte polígonos de otros países y ejecute la misma consulta
pointInPolygonpara cada uno de ellos. El diccionario que creó le permite etiquetar los resultados con los nombres de los países. - Agrupar torres con H3 o geohash. El agente utilizó una cuadrícula de redondeo simple. ClickHouse también ofrece funciones H3 y geohash, que generan celdas jerárquicas idóneas para mapas con zoom.
- Explorar otros conjuntos de datos. El conjunto de datos de taxis de Nueva York también contiene coordenadas de recogida y destino, y el índice de conjuntos de datos de ejemplo incluye muchos más.