En esta guía, vamos a empezar a usar la variante de Python de chDB.
Primero consultaremos un archivo JSON en S3 y, después, crearemos una tabla en chDB a partir de ese archivo JSON para realizar algunas consultas sobre los datos.
También veremos cómo hacer que las consultas devuelvan datos en distintos formatos, incluidos Apache Arrow y Pandas, y, por último, aprenderemos a consultar DataFrames de Pandas.
Primero, creemos un entorno virtual:
Y ahora instalaremos chDB.
Asegúrate de tener la versión 2.0.3 o posterior:
Ahora vamos a instalar ipython:
Vamos a usar ipython para ejecutar los comandos del resto de la guía, que puedes iniciar con:
También usaremos Pandas y Apache Arrow en esta guía, así que instalemos esas bibliotecas también:
Consultar un archivo JSON en S3
Veamos ahora cómo consultar un archivo JSON almacenado en un bucket de S3.
El conjunto de datos de «No me gusta» de YouTube contiene más de 4 mil millones de filas con marcas de «No me gusta» en vídeos de YouTube hasta 2021.
Vamos a trabajar con uno de los archivos JSON de ese conjunto de datos.
Importa chdb:
Podemos usar la siguiente consulta para describir la estructura de uno de los archivos JSON:
También podemos contar cuántas filas hay en ese archivo:
Este archivo contiene algo más de 300.000 registros.
chdb todavía no admite pasar parámetros de consulta, pero podemos extraer la ruta y pasarla mediante una f-string.
Está bien hacerlo con variables definidas en tu programa, pero no lo hagas con datos proporcionados por el usuario; de lo contrario, tu consulta será vulnerable a inyecciones SQL.
El formato de salida predeterminado es CSV, pero podemos cambiarlo mediante el parámetro output_format.
chDB admite los formatos de datos de ClickHouse, así como algunos propios, incluido DataFrame, que devuelve un DataFrame de Pandas:
O, si queremos recuperar una tabla de Apache Arrow:
Creación de una tabla a partir de un archivo JSON
A continuación, veamos cómo crear una tabla en chDB.
Necesitamos usar una API diferente para hacerlo, así que primero importémosla:
A continuación, inicializaremos una sesión.
Si queremos que la sesión se conserve en disco, debemos proporcionar un nombre de directorio.
Si lo dejamos en blanco, la base de datos permanecerá en memoria y se perderá en cuanto matemos el proceso de Python.
A continuación, crearemos una base de datos:
Ahora podemos crear una tabla dislikes a partir del esquema del archivo JSON, mediante la técnica CREATE...EMPTY AS.
Usaremos la configuración schema_inference_make_columns_nullable para evitar que todos los tipos de columna se conviertan en Nullable.
A continuación, podemos usar la cláusula DESCRIBE para examinar el esquema:
A continuación, vamos a insertar datos en esa tabla:
También podríamos hacer ambos pasos de una sola vez usando la técnica CREATE...AS.
Creemos otra tabla usando esa técnica:
Por último, consultemos la tabla:
Supongamos que luego añadimos una columna adicional al DataFrame para calcular la proporción entre «me gusta» y «no me gusta».
Podríamos escribir el siguiente código:
Consultar un DataFrame de Pandas
Luego, podemos consultar ese DataFrame desde chDB:
También puedes obtener más información sobre cómo consultar DataFrames de Pandas en la guía para desarrolladores sobre consulta de DataFrames de Pandas.
Esperamos que esta guía te haya proporcionado una buena visión general de chDB.
Para obtener más información sobre cómo usarlo, consulta las siguientes guías para desarrolladores: