- un entorno virtual
- un servicio de ClickHouse Cloud operativo y sus datos de conexión
- Conectarse a ClickHouse Cloud desde Jupyter notebooks mediante chDB
- Consultar conjuntos de datos remotos y convertir los resultados en DataFrames de Pandas
- Combinar datos en la nube con archivos CSV locales para analizarlos
- Visualizar datos con matplotlib
Configuración
Data sources. Después, haz clic en Predefined sample data:
Selecciona Get started en la tarjeta de datos de precios de compraventa de propiedades del Reino Unido (4GB):
Luego, haz clic en Import dataset:
ClickHouse creará automáticamente la tabla pp_complete en la base de datos default y la rellenará con 28,92 millones de filas de datos de precios.
Para reducir la probabilidad de exponer tus credenciales, te recomendamos añadir tu nombre de usuario y contraseña de Cloud como variables de entorno en tu equipo local.
Desde una terminal, ejecuta el siguiente comando para añadir tu nombre de usuario y contraseña como variables de entorno:
Las variables de entorno anteriores solo se conservan mientras dure la sesión de tu terminal.
Para configurarlas de forma permanente, agrégalas al archivo de configuración de tu shell.
localhost:8888.
Haz clic en File > New > Notebook para crear un nuevo notebook.
Se te pedirá que selecciones un kernel.
Selecciona cualquier kernel de Python que tengas disponible; en este ejemplo, seleccionaremos ipykernel:
En una celda vacía, puedes escribir el siguiente comando para instalar chDB, que usaremos para conectarnos a nuestra instancia remota de ClickHouse Cloud:
Exploración de los datos
remoteSecure de ClickHouse te permite recuperar fácilmente los datos desde ClickHouse Cloud.
Puedes indicarle a chDB que devuelva estos datos en memoria, dentro del proceso, como un DataFrame de Pandas, una forma práctica y conocida de trabajar con datos.
Escribe la siguiente consulta para recuperar los datos de UK price paid desde tu servicio de ClickHouse Cloud y convertirlos en un pandas.DataFrame:
chdb.query(query, "DataFrame") ejecuta la consulta especificada y muestra el resultado en la terminal como un Pandas DataFrame.
En la consulta, usamos la función remoteSecure para conectarnos a ClickHouse Cloud.
La función remoteSecure recibe como parámetros:
- una cadena de conexión
- el nombre de la base de datos y de la tabla que se van a usar
- tu nombre de usuario
- tu contraseña
remoteSecure se conecta al servicio remoto de ClickHouse Cloud, ejecuta la consulta y devuelve el resultado.
Según el tamaño de tus datos, esto puede tardar unos segundos.
En este caso, devolvemos un precio medio por año y filtramos por town='LONDON'.
Luego, el resultado se almacena como un DataFrame en una variable llamada df.
df.head muestra solo las primeras filas de los datos devueltos:
Ejecuta el siguiente comando en una celda nueva para comprobar los tipos de las columnas:
date es de tipo Date en ClickHouse, en el DataFrame resultante es de tipo uint16.
chDB infiere automáticamente el tipo más apropiado al devolver el DataFrame.
Con los datos ya disponibles en un formato familiar, veamos cómo han cambiado con el tiempo los precios de la vivienda en Londres.
En una nueva celda, ejecuta el siguiente comando para crear un gráfico sencillo de tiempo frente a precio para Londres con matplotlib:
file para leer archivos directamente desde tu máquina local.
En una nueva celda, ejecuta el siguiente comando para crear un nuevo DataFrame a partir del archivo .csv local.
Leer desde varias fuentes en un solo paso
Leer desde varias fuentes en un solo paso
También es posible leer desde varias fuentes en un solo paso. Para ello, puedes usar la consulta siguiente con un
JOIN:Resumen
remoteSecure(), leer archivos CSV locales con el motor de tabla file() y convertir los resultados directamente en DataFrames de Pandas para su análisis y visualización.
Con chDB, los científicos de datos pueden aprovechar las potentes capacidades de SQL de ClickHouse junto con herramientas de Python tan conocidas como Pandas y matplotlib, lo que facilita combinar múltiples fuentes de datos para realizar análisis exhaustivos.
Aunque muchos científicos de datos afincados en Londres quizá no puedan permitirse una casa o un apartamento propios a corto plazo, al menos pueden analizar el mercado que los ha dejado fuera.