Saltar al contenido principal

Funciones principales de consulta

chdb.query

Ejecuta una consulta SQL con el motor de chDB. Esta es la función principal de consulta, que ejecuta sentencias SQL con el motor ClickHouse integrado. Admite varios formatos de salida y puede trabajar con bases de datos en memoria o basadas en archivos. Sintaxis
Parámetros Devuelve Devuelve el resultado de la consulta en el formato especificado: Genera Ejemplos

chdb.sql

Ejecuta una consulta SQL con el motor chDB. Esta es la función principal para consultas, que ejecuta sentencias SQL mediante el motor ClickHouse integrado. Admite varios formatos de salida y puede trabajar con bases de datos en memoria o basadas en archivos. Sintaxis
Parámetros Devuelve Devuelve el resultado de la consulta en el formato especificado: Genera Ejemplos

chdb.to_arrowTable

Convierte el resultado de la consulta en una tabla de PyArrow. Convierte el resultado de una consulta de chDB en una tabla de PyArrow para procesar datos de forma eficiente en formato columnar. Devuelve una tabla vacía si el resultado está vacío. Sintaxis
Parámetros Devuelve Lanza Ejemplo

chdb.to_df

Convierte el resultado de la consulta en un DataFrame de pandas. Convierte el resultado de una consulta de chDB en un DataFrame de pandas convirtiéndolo primero en una tabla de PyArrow y luego en pandas mediante multihilo para mejorar el rendimiento. Sintaxis
Parámetros Devuelve Excepciones Ejemplo

Gestión de conexiones y sesiones

Las siguientes funciones de sesión están disponibles:

chdb.connect

Crea una conexión con el servidor en segundo plano de chDB. Esta función establece una conexión con el motor de base de datos chDB (ClickHouse). Solo se permite una conexión abierta por proceso. Varias llamadas con la misma cadena de conexión devolverán el mismo objeto de conexión.
Parámetros: Formatos básicos Con parámetros de consulta Gestión de parámetros de consulta Los parámetros de consulta se pasan al motor de ClickHouse como argumentos de inicio. Gestión especial de parámetros: Para ver la lista completa de parámetros, consulta clickhouse local --help --verbose Devuelve Lanza
Solo se admite una conexión por proceso. Al crear una nueva conexión, se cerrará cualquier conexión existente.
Ejemplos
Véase también
  • Connection - Clase de conexión a la base de datos
  • Cursor - Cursor de la base de datos para operaciones de DB-API 2.0

Gestión de excepciones

class chdb.ChdbError

Bases: Exception Clase base de excepción para los errores relacionados con chDB. Esta excepción se produce cuando falla la ejecución de una consulta de chDB o se encuentra un error. Hereda de la clase estándar Exception de Python y proporciona información sobre errores del motor subyacente de ClickHouse.

class chdb.session.Session

Bases: object La sesión mantendrá el estado de la consulta. Si path es None, se creará un directorio temporal y se usará como ruta de la base de datos, y el directorio temporal se eliminará cuando se cierre la sesión. También puede pasar una ruta para crear una base de datos en esa ubicación, donde se conservarán sus datos. También puede usar una cadena de conexión para pasar la ruta y otros parámetros.
Ejemplos
Gestión de los argumentos de la cadena de conexiónLas cadenas de conexión que contienen parámetros de consulta como “file:test.db?param1=value1&param2=value2” pasarán “param1=value1” al motor de ClickHouse como argumentos de inicio.Para obtener más detalles, consulte clickhouse local –help –verboseTratamiento de algunos argumentos especiales:
  • “mode=ro” se convertiría en “–readonly=1” para ClickHouse (modo de solo lectura)
Importante
  • Solo puede haber una sesión a la vez. Si desea crear una nueva sesión, debe cerrar la existente.
  • Crear una nueva sesión cerrará la existente.

cleanup

Limpia los recursos de la sesión con control de excepciones. Este método intenta cerrar la sesión mientras suprime cualquier excepción que pueda producirse durante el proceso de limpieza. Resulta especialmente útil en escenarios de manejo de errores o cuando necesitas garantizar que la limpieza se realice independientemente del estado de la sesión. Sintaxis
Este método nunca lanzará una excepción, por lo que es seguro llamarlo en bloques finally o destructores.
Ejemplos
Véase también
  • close() - Para cerrar la sesión explícitamente con propagación de errores

close

Cierra la sesión y libera los recursos. Este método cierra la conexión subyacente y restablece el estado global de la sesión. Después de llamar a este método, la sesión deja de ser válida y no puede usarse para más consultas. Sintaxis
Este método se llama automáticamente cuando la sesión se usa como gestor de contexto o cuando se destruye el objeto de sesión.
ImportanteCualquier intento de usar la sesión después de llamar a close() provocará un error.
Ejemplos

query

Ejecuta una consulta SQL y devuelve los resultados. Este método ejecuta una consulta SQL sobre la base de datos de la sesión y devuelve los resultados en el formato especificado. El método admite varios formatos de salida y mantiene el estado de la sesión entre consultas. Sintaxis
Parámetros Devuelve Devuelve los resultados de la consulta en el formato especificado. El tipo de retorno exacto depende del parámetro de formato:
  • Los formatos de cadena (CSV, JSON, etc.) devuelven str
  • Los formatos binarios (Arrow, Parquet) devuelven bytes
Genera
El formato “Debug” no es compatible y se convertirá automáticamente a “CSV” con una advertencia. Para depuración, usa parámetros de la cadena de conexión en su lugar.
AdvertenciaEste método ejecuta la consulta de forma síncrona y carga todos los resultados en memoria. Para result sets grandes, considera usar send_query() para obtener resultados en streaming.
Ejemplos
Véase también
  • send_query() - Para ejecutar consultas en streaming
  • sql - Alias de este método

send_query

Ejecuta una consulta SQL y devuelve un iterador de resultados en streaming. Este método ejecuta una consulta SQL en la base de datos de la sesión y devuelve un objeto de resultados en streaming que permite iterar sobre los resultados sin cargarlo todo en memoria de una sola vez. Esto es especialmente útil para grandes conjuntos de resultados. Sintaxis
Parámetros Devuelve Lanza
El formato “Debug” no es compatible y se convertirá automáticamente a “CSV” con una advertencia. Para tareas de depuración, use en su lugar los parámetros de la cadena de conexión.
El objeto StreamingResult devuelto debe consumirse con prontitud o almacenarse de forma adecuada, ya que mantiene una conexión con la base de datos.
Ejemplos
Véase también
  • query() - Para ejecutar consultas sin streaming
  • chdb.state.sqlitelike.StreamingResult - Iterador de resultados en streaming

sql

Ejecuta una consulta SQL y devuelve los resultados. Este método ejecuta una consulta SQL contra la base de datos de la sesión y devuelve los resultados en el formato especificado. Admite varios formatos de salida y mantiene el estado de la sesión entre consultas. Sintaxis
Parámetros Devuelve Devuelve los resultados de la consulta en el formato especificado. El tipo de retorno exacto depende del parámetro de formato:
  • Los formatos de texto (CSV, JSON, etc.) devuelven str
  • Los formatos binarios (Arrow, Parquet) devuelven bytes
Genera:
El formato “Debug” no es compatible y se convertirá automáticamente a “CSV” con una advertencia. Para depurar, use parámetros de la cadena de conexión en su lugar.
AdvertenciaEste método ejecuta la consulta de forma síncrona y carga todos los resultados en memoria. Para conjuntos de resultados grandes, considere usar send_query() para transmitir los resultados.
Ejemplos
Véase también
  • send_query() - Para ejecutar consultas en streaming
  • sql - Alias para este método

Gestión del estado

chdb.state.connect

Crea una Connection con el servidor en segundo plano de chDB. Esta función establece una conexión con el motor de base de datos de chDB (ClickHouse). Solo se permite una conexión abierta por proceso. Varias llamadas con la misma cadena de conexión devolverán el mismo objeto de conexión. Sintaxis
Parámetros Formatos básicos Formatos de cadena de conexión admitidos: Con parámetros de consulta Manejo de parámetros de consulta Los parámetros de consulta se pasan al motor de ClickHouse como argumentos de inicio. Manejo especial de parámetros: Para ver la lista completa de parámetros, consulte clickhouse local --help --verbose Devuelve Lanza
AdvertenciaSolo se admite una conexión por proceso. Crear una nueva conexión cerrará cualquier conexión existente.
Ejemplos
Véase también
  • Connection - Clase de conexión a la base de datos
  • Cursor - Cursor de base de datos para operaciones de DB-API 2.0

clase chdb.state.sqlitelike.Connection

Bases: object Sintaxis

close

Cierra la conexión y libera los recursos. Este método cierra la conexión a la base de datos y libera todos los recursos asociados, incluidos los cursores activos. Después de llamar a este método, la conexión deja de ser válida y no puede usarse para realizar más operaciones. Sintaxis
Este método es idempotente; puede llamarse varias veces sin problema.
AdvertenciaCualquier consulta en streaming en curso se cancelará al cerrar la conexión. Asegúrese de que todos los datos importantes se hayan procesado antes de cerrarla.
Ejemplos

cursor

Crea un objeto Cursor para ejecutar consultas. Este método crea un cursor de base de datos que proporciona la interfaz estándar de DB-API 2.0 para ejecutar consultas y obtener resultados. El cursor permite un control detallado sobre la ejecución de consultas y la obtención de resultados. Sintaxis
Devuelve
Al crear un nuevo cursor, se reemplazará cualquier cursor existente asociado a esta conexión. Solo se admite un cursor por conexión.
Ejemplos
Véase también
  • Cursor - Implementación de cursor de base de datos

query

Ejecuta una consulta SQL y devuelve todos los resultados. Este método ejecuta una consulta SQL de forma síncrona y devuelve el conjunto completo de resultados. Admite varios formatos de salida y aplica automáticamente el posprocesamiento específico de cada formato. Sintaxis
Parámetros: Devuelve Genera
AdvertenciaEste método carga el conjunto de resultados completo en memoria. Para resultados grandes, considere usar send_query() para streaming.
Ejemplos
Véase también

send_query

Ejecuta una consulta SQL y devuelve un iterador de resultados en streaming. Este método ejecuta una consulta SQL y devuelve un objeto StreamingResult que le permite iterar por los resultados sin cargarlo todo en memoria de una sola vez. Esto es ideal para procesar grandes conjuntos de resultados. Sintaxis
Parámetros Devuelve Genera
Solo el formato “Arrow” admite el método record_batch() en el StreamingResult devuelto.
Ejemplos
Véase también

class chdb.state.sqlitelike.StreamingResult

Bases: object Iterador de resultados en streaming para procesar resultados de consultas de gran tamaño. Esta clase proporciona una interfaz de iterador para transmitir resultados de consultas sin cargar todo el conjunto de resultados en memoria. Admite varios formatos de salida y proporciona métodos para la recuperación manual de resultados y la transmisión de RecordBatch de PyArrow.

fetch

Obtiene el siguiente fragmento de resultados en streaming. Este método recupera el siguiente fragmento de datos disponible del resultado de la consulta en streaming. El formato de los datos devueltos depende del formato especificado al iniciar la consulta en streaming. Sintaxis
Valores devueltos Ejemplos

cancel

Cancela la consulta en streaming y libera los recursos. Este método cancela cualquier consulta en streaming en curso y libera los recursos asociados. Debe llamarse cuando se quiera dejar de procesar los resultados antes de que se agote el flujo. Sintaxis
Ejemplos

close

Cierra el resultado en streaming y libera los recursos. Alias de cancel(). Cierra el iterador del resultado en streaming y libera los recursos asociados. Sintaxis

record_batch

Crea un PyArrow RecordBatchReader para procesar lotes de forma eficiente. Este método crea un PyArrow RecordBatchReader que permite iterar de forma eficiente sobre los resultados de la consulta en formato Arrow. Esta es la forma más eficiente de procesar conjuntos de resultados grandes al usar PyArrow. Sintaxis
Parámetros Devuelve
Este método solo está disponible cuando la consulta en streaming se inició con format="Arrow". Si se usa con otros formatos, se producirá un error.
Ejemplos

Protocolo de iteración

StreamingResult es compatible con el protocolo de iteración de Python, lo que permite usarlo directamente en bucles for:

Protocolo del gestor de contexto

StreamingResult admite el protocolo del gestor de contexto para la liberación automática de recursos:

clase chdb.state.sqlitelike.Cursor

Bases: object

close

Cierra el cursor y libera los recursos. Este método cierra el cursor y libera cualquier recurso asociado. Después de llamar a este método, el cursor queda invalidado y no puede usarse en operaciones posteriores. Sintaxis
Este método es idempotente: se puede llamar varias veces sin problema. El cursor también se cierra automáticamente cuando se cierra la conexión.
Ejemplos

column_names

Devuelve una lista de nombres de columnas de la última consulta ejecutada. Este método devuelve los nombres de las columnas de la consulta SELECT ejecutada más recientemente. Los nombres se devuelven en el mismo orden en que aparecen en el conjunto de resultados. Sintaxis
Devuelve Ejemplos
Véase también

column_types

Devuelve una lista de los tipos de las columnas de la última consulta ejecutada. Este método devuelve los nombres de tipo de las columnas de ClickHouse de la consulta SELECT ejecutada más recientemente. Los tipos se devuelven en el mismo orden en que aparecen en el conjunto de resultados. Sintaxis
Devuelve Ejemplos
Véase también
  • column_names() - Obtiene información sobre los nombres de las columnas
  • description - descripción de columnas de DB-API 2.0

commit

Hace commit de cualquier transacción pendiente. Este método hace commit de cualquier transacción pendiente de la base de datos. En ClickHouse, la mayoría de las operaciones se confirman automáticamente, pero este método se proporciona por compatibilidad con DB-API 2.0.
ClickHouse normalmente confirma las operaciones automáticamente, por lo que los commit explícitos no suelen ser necesarios. Este método se proporciona por compatibilidad con el flujo de trabajo estándar de DB-API 2.0.
Sintaxis
Ejemplos

property description : list

Devuelve la descripción de las columnas según la especificación DB-API 2.0. Esta propiedad devuelve una lista de tuplas de 7 elementos que describen cada columna del conjunto de resultados de la última consulta SELECT ejecutada. Cada tupla contiene: (name, type_code, display_size, internal_size, precision, scale, null_ok) Actualmente, solo se proporcionan name y type_code; los demás campos se establecen en None. Devuelve
Esto sigue la especificación DB-API 2.0 para cursor.description. Solo los dos primeros elementos (name y type_code) contienen datos significativos en esta implementación.
Ejemplos
Véase también

execute

Ejecuta una consulta SQL y prepara los resultados para su obtención. Este método ejecuta una consulta SQL y deja los resultados listos para su obtención mediante los métodos fetch. Se encarga del análisis de los datos de resultados y de la conversión automática de tipos de datos de ClickHouse. Sintaxis
Parámetros: Excepciones
Este método sigue las especificaciones de DB-API 2.0 para cursor.execute(). Después de la ejecución, use fetchone(), fetchmany() o fetchall() para recuperar los resultados.
El método convierte automáticamente los tipos de datos de ClickHouse a los tipos de Python adecuados:
  • Tipos Int/UInt → int
  • Tipos Float → float
  • String/FixedString → str
  • DateTime → datetime.datetime
  • Date → datetime.date
  • Bool → bool
Ejemplos
Véase también

fetchall

Obtiene todas las filas restantes del resultado de la consulta. Este método obtiene todas las filas restantes del conjunto de resultados de la consulta actual a partir de la posición actual del cursor. Devuelve una tupla de tuplas de filas con la conversión adecuada de tipos de Python. Sintaxis
Devuelve:
AdvertenciaEste método carga todas las filas restantes en memoria de una sola vez. Para conjuntos de resultados grandes, considere usar fetchmany() para procesar los resultados en lotes.
Ejemplos
Véase también

fetchmany

Obtiene varias filas del resultado de la consulta. Este método recupera hasta ‘size’ filas del conjunto de resultados de la consulta actual. Devuelve una tupla de tuplas, donde cada fila contiene valores de columna con la conversión adecuada al tipo de Python. Sintaxis
Parámetros Devuelve
Este método sigue las especificaciones de DB-API 2.0. Devolverá menos de ‘size’ filas si el conjunto de resultados se agota.
Ejemplos
Véase también

fetchone

Obtiene la siguiente fila del resultado de la consulta. Este método recupera la siguiente fila disponible del conjunto de resultados de la consulta actual. Devuelve una tupla que contiene los valores de las columnas con la conversión al tipo de Python correspondiente. Sintaxis
Devuelve:
Este método sigue las especificaciones de DB-API 2.0. Los valores de las columnas se convierten automáticamente a los tipos de Python adecuados según los tipos de columna de ClickHouse.
Ejemplos
Véase también

chdb.state.sqlitelike

Convierte el resultado de la consulta en una tabla de PyArrow. Esta función convierte los resultados de las consultas de chdb al formato de tabla de PyArrow, que proporciona acceso eficiente a datos en formato columnar e interoperabilidad con otras bibliotecas de procesamiento de datos. Sintaxis
Parámetros: Devuelve Genera
Esta función requiere que tanto pyarrow como pandas estén instalados. Instálalos con: pip install pyarrow pandas
AdvertenciaLos resultados vacíos devuelven una tabla de PyArrow vacía sin esquema.
Ejemplos

chdb.state.sqlitelike.to_df

Convierte el resultado de la consulta en un DataFrame de Pandas. Esta función convierte los resultados de las consultas de chdb en un DataFrame de Pandas, convirtiéndolos primero en una tabla de PyArrow y luego en un DataFrame. Esto proporciona funcionalidades prácticas de análisis de datos con la API de Pandas. Sintaxis
Parámetros: Devuelve: Lanza
Esta función usa múltiples hilos para la conversión de Arrow a Pandas para mejorar el rendimiento en conjuntos de datos grandes.
Véase también Ejemplos

Integración con DataFrame

clase chdb.dataframe.Table

Bases:

Interfaz de la API de bases de datos (DBAPI) 2.0

chDB proporciona una interfaz compatible con Python DB-API 2.0 para conectarse a bases de datos, lo que le permite usar chDB con herramientas y frameworks que requieren interfaces de bases de datos estándar. La interfaz DB-API 2.0 de chDB incluye:
  • Conexiones: Gestión de conexiones de bases de datos mediante cadenas de conexión
  • Cursores: Ejecución de consultas y recuperación de resultados
  • Sistema de tipos: Constantes de tipo y conversores compatibles con DB-API 2.0
  • Gestión de errores: Jerarquía estándar de excepciones de bases de datos
  • Seguridad de hilos: Seguridad de hilos de nivel 1 (los hilos pueden compartir módulos, pero no conexiones)

Funciones principales

La interfaz DBAPI 2.0 (API de bases de datos) implementa las siguientes funciones principales:

chdb.dbapi.connect

Inicializa una nueva conexión de base de datos. Sintaxis
Parámetros Genera

chdb.dbapi.get_client_info()

Obtiene información sobre la versión del cliente. Devuelve la versión del cliente chDB como una cadena para mantener la compatibilidad con MySQLdb. Sintaxis
Devuelve

Constructores de tipos

chdb.dbapi.Binary(x)

Devuelve x como tipo binario. Esta función convierte la entrada al tipo bytes para usarla con campos binarios de la base de datos, de acuerdo con la especificación DB-API 2.0. Sintaxis
Parámetros Devuelve

Clase Connection

class chdb.dbapi.connections.Connection(path=None)

Bases: object Conexión compatible con DB-API 2.0 a la base de datos chDB. Esta clase proporciona una interfaz estándar de DB-API para conectarse a bases de datos chDB e interactuar con ellas. Admite tanto bases de datos en memoria como bases de datos basadas en archivos. La conexión administra el engine de chDB subyacente y proporciona métodos para ejecutar consultas, gestionar transacciones (sin efecto en ClickHouse) y crear cursores.
Parámetros Variables Ejemplos
ClickHouse no admite transacciones tradicionales, por lo que las operaciones commit() y rollback() no tienen efecto, pero se proporcionan para cumplir con DB-API.

close

Cierra la conexión a la base de datos. Cierra la conexión subyacente de chDB y marca esta conexión como cerrada. Las operaciones posteriores en esta conexión producirán un Error. Sintaxis
Lanza

commit

Realiza commit de la transacción actual. Sintaxis
Esto no tiene efecto en chDB/ClickHouse, ya que no admite transacciones tradicionales. Se incluye para cumplir con DB-API 2.0.

cursor

Crea un nuevo cursor para ejecutar consultas. Sintaxis
Parámetros Devuelve Genera Ejemplo

escape

Escapa un valor para incluirlo de forma segura en consultas SQL. Sintaxis
Parámetros Devuelve Ejemplo

escape_string

Escapa una cadena para consultas SQL. Sintaxis
Parámetros Devuelve

property open

Comprueba si la conexión está abierta. Devuelve

query

Ejecuta una consulta SQL directamente y devuelve resultados sin procesar. Este método omite la interfaz de cursor y ejecuta las consultas directamente. Para el uso estándar de DB-API, se recomienda usar el método cursor(). Sintaxis
Parámetros: Devuelve Genera Ejemplo

property resp

Obtiene la respuesta de la última consulta. Devuelve
Esta propiedad se actualiza cada vez que se llama directamente a query(). No refleja las consultas ejecutadas mediante cursores.

rollback

Deshace la transacción actual. Sintaxis
Esto es una operación no-op para chDB/ClickHouse, ya que no admite transacciones tradicionales. Se incluye para cumplir con DB-API 2.0.

Clase Cursor

class chdb.dbapi.cursors.Cursor

Bases: object Cursor de DB-API 2.0 para ejecutar consultas y obtener resultados. El cursor proporciona métodos para ejecutar sentencias SQL, gestionar los resultados de las consultas y desplazarse por los conjuntos de resultados. Admite el enlace de parámetros, operaciones masivas y sigue las especificaciones de DB-API 2.0. No cree instancias de Cursor directamente. Use Connection.cursor() en su lugar.
Ejemplos
Consulte DB-API 2.0 Cursor Objects para obtener todos los detalles de la especificación.

callproc

Ejecuta un procedimiento almacenado (implementación provisional). Sintaxis
Parámetros Devuelve
chDB/ClickHouse no admite procedimientos almacenados en el sentido tradicional. Este método se proporciona para cumplir con DB-API 2.0, pero no realiza ninguna operación. Use execute() para todas las operaciones SQL.
CompatibilidadEsta es una implementación provisional. Las características tradicionales de los procedimientos almacenados, como los parámetros OUT/INOUT, varios conjuntos de resultados y las variables del servidor, no son compatibles con el motor subyacente de ClickHouse.

close

Cierra el cursor y libera los recursos asociados. Después de cerrarlo, el cursor ya no se puede usar y cualquier operación generará una excepción. Al cerrar un cursor, se consumen todos los datos restantes y se libera el cursor subyacente. Sintaxis

execute

Ejecuta una consulta SQL con enlace opcional de parámetros. Este método ejecuta una sola sentencia SQL con sustitución opcional de parámetros. Admite varios estilos de marcadores de posición para parámetros, lo que aporta flexibilidad. Sintaxis
Parámetros Devuelve Estilos de parámetros Ejemplos
Excepciones

executemany(query, args)

Ejecuta una consulta varias veces con distintos conjuntos de parámetros. Este método ejecuta de forma eficiente la misma consulta SQL varias veces con distintos valores de parámetros. Resulta especialmente útil para operaciones de INSERT masivas. Sintaxis
Parámetros Devuelve Ejemplos
Este método mejora el rendimiento de las operaciones INSERT y UPDATE de varias filas al optimizar el proceso de ejecución de la consulta.

fetchall()

Obtiene todas las filas restantes del resultado de la consulta. Sintaxis
Devuelve Lanza
AdvertenciaEste método puede consumir grandes cantidades de memoria con conjuntos de resultados grandes. Considere usar fetchmany() para conjuntos de datos grandes.
Ejemplo

fetchmany

Devuelve varias filas del resultado de la consulta. Sintaxis
Parámetros Devuelve Lanza Ejemplo

fetchone

Obtiene la siguiente fila del resultado de la consulta. Sintaxis
Devuelve Lanza Ejemplo

max_stmt_length = 1024000

Tamaño máximo de la sentencia generada por executemany(). El valor predeterminado es 1024000.

mogrify

Devuelve la cadena de consulta exacta que se enviaría a la base de datos. Este método muestra la consulta SQL final tras la sustitución de parámetros, lo que resulta útil para tareas de depuración y registro. Sintaxis
Parámetros Devuelve Ejemplo
Este método sigue la extensión de DB-API 2.0 que utiliza Psycopg.

nextset

Pasa al siguiente conjunto de resultados (no se admite). Sintaxis
Devuelve
chDB/ClickHouse no admite múltiples conjuntos de resultados en una sola consulta. Este método se proporciona para cumplir con DB-API 2.0, pero siempre devuelve None.

setinputsizes

Establece los tamaños de entrada de los parámetros (sin efecto). Sintaxis
Parámetros
Este método no realiza ninguna acción, pero es obligatorio según la especificación DB-API 2.0. chDB gestiona automáticamente el tamaño de los parámetros de forma interna.

setoutputsizes

Establece los tamaños de las columnas de salida (implementación sin efecto). Sintaxis
Parámetros
Este método no hace nada, pero es obligatorio según la especificación DB-API 2.0. chDB gestiona automáticamente el tamaño de salida de forma interna.

Clases de excepciones

Clases de excepción para las operaciones de base de datos en chdb. Este módulo proporciona una jerarquía completa de clases de excepción para manejar errores relacionados con la base de datos en chdb, siguiendo la especificación v2.0 de la Python Database API. La jerarquía de excepciones está estructurada de la siguiente manera:
Cada clase de excepción representa una categoría específica de errores de base de datos:
Estas clases de excepción cumplen con la especificación de Python DB API 2.0 y proporcionan un manejo de errores coherente en distintas operaciones de base de datos.
Véase también Ejemplos

excepción chdb.dbapi.err.DataError

Bases: DatabaseError Excepción que se produce por errores debidos a problemas con los datos procesados. Esta excepción se genera cuando las operaciones de la base de datos fallan debido a problemas con los datos que se están procesando, como por ejemplo:
  • Operaciones de división por cero
  • Valores numéricos fuera de rango
  • Valores de fecha/hora no válidos
  • Errores por truncamiento de cadenas
  • Errores de conversión de tipos
  • Formato de datos no válido para el tipo de columna
Lanza Ejemplos

excepción chdb.dbapi.err.DatabaseError

Bases: Error Excepción generada para errores relacionados con la base de datos. Esta es la clase base para todos los errores relacionados con la base de datos. Abarca todos los errores que se producen durante las operaciones de base de datos y están relacionados con la propia base de datos, en lugar de con la interfaz. Los casos habituales incluyen:
  • Errores de ejecución de SQL
  • Problemas de conectividad con la base de datos
  • Problemas relacionados con transacciones
  • Infracciones de restricciones específicas de la base de datos
Esta es la clase principal para tipos de errores de base de datos más específicos, como DataError, OperationalError, etc.

excepción chdb.dbapi.err.Error

Bases: StandardError Excepción que es la clase base de todas las demás excepciones de error (no Warning). Esta es la clase base de todas las excepciones de error en chdb, excluidas las advertencias. Sirve como clase padre de todas las condiciones de error de la base de datos que impiden la correcta finalización de las operaciones.
Esta jerarquía de excepciones sigue la especificación Python DB API 2.0.
Véase también
  • Warning - Para advertencias no fatales que no impiden la finalización de la operación

excepción chdb.dbapi.err.IntegrityError

Bases: DatabaseError Excepción que se produce cuando la integridad relacional de la base de datos se ve afectada. Esta excepción se produce cuando las operaciones de la base de datos infringen restricciones de integridad, entre ellas:
  • Infracciones de restricciones de clave foránea
  • Infracciones de clave primaria o de restricción de unicidad (claves duplicadas)
  • Infracciones de restricciones CHECK
  • Infracciones de restricciones NOT NULL
  • Infracciones de integridad referencial
Genera Ejemplos

exception chdb.dbapi.err.InterfaceError

Bases: Error Excepción que se genera por errores relacionados con la interfaz de la base de datos, y no con la propia base de datos. Esta excepción se genera cuando hay problemas con la implementación de la interfaz de la base de datos, como:
  • Parámetros de conexión no válidos
  • Uso incorrecto de la API (llamadas a métodos en conexiones cerradas)
  • Errores de protocolo a nivel de interfaz
  • Fallos al importar o inicializar el módulo
Genera
Estos errores suelen ser errores de programación o problemas de configuración que pueden resolverse corrigiendo el código cliente o la configuración.

excepción chdb.dbapi.err.InternalError

Bases: DatabaseError Excepción que se lanza cuando la base de datos encuentra un error interno. Esta excepción se produce cuando el sistema de base de datos detecta errores internos que no han sido causados por la aplicación, como por ejemplo:
  • Estado de cursor no válido (el cursor ya no es válido)
  • Inconsistencias en el estado de la transacción (la transacción está desincronizada)
  • Problemas de corrupción de la base de datos
  • Corrupción de la estructura interna de datos
  • Errores de base de datos a nivel del sistema
Lanza
AdvertenciaLos errores internos pueden indicar problemas graves en la base de datos que requieren la atención de un administrador de bases de datos. Por lo general, estos errores no se pueden recuperar mediante la lógica de reintento a nivel de la aplicación.
Por lo general, estos errores están fuera del control de la aplicación y pueden requerir reiniciar la base de datos o realizar operaciones de reparación.

excepción chdb.dbapi.err.NotSupportedError

Bases: DatabaseError Excepción que se produce cuando no se admite un método o una API de base de datos. Esta excepción se produce cuando la aplicación intenta usar funciones de la base de datos o métodos de la API que no son compatibles con la configuración o la versión actuales de la base de datos, por ejemplo:
  • Solicitar rollback() en conexiones sin compatibilidad con transacciones
  • Usar funciones avanzadas de SQL no compatibles con la versión de la base de datos
  • Llamar a métodos no implementados por el controlador actual
  • Intentar usar funciones de la base de datos deshabilitadas
Genera Ejemplos
Consulte la documentación de la base de datos y las capacidades del controlador para evitar estos errores. Considere alternativas de recuperación adecuadas cuando sea posible.

excepción chdb.dbapi.err.OperationalError

Bases: DatabaseError Excepción que se produce ante errores relacionados con el funcionamiento de la base de datos. Esta excepción se produce por errores que ocurren durante el funcionamiento de la base de datos y que no están necesariamente bajo el control del programador, entre ellos:
  • Desconexión inesperada de la base de datos
  • Servidor de base de datos no encontrado o inaccesible
  • Fallos en el procesamiento de transacciones
  • Errores de asignación de memoria durante el procesamiento
  • Falta de espacio en disco o agotamiento de recursos
  • Errores internos del servidor de base de datos
  • Fallos de autenticación o autorización
Lanza
Estos errores suelen ser transitorios y pueden resolverse reintentando la operación o corrigiendo problemas a nivel del sistema.
AdvertenciaAlgunos errores operativos pueden indicar problemas graves del sistema que requieren intervención administrativa.

exception chdb.dbapi.err.ProgrammingError

Bases: DatabaseError Excepción que se produce por errores de programación en operaciones de base de datos. Esta excepción se produce cuando hay errores de programación en el uso que hace la aplicación de la base de datos, entre ellos:
  • Tabla o columna no encontrada
  • La tabla o el índice ya existen al intentar crearlos
  • Errores de sintaxis SQL en sentencias
  • Número incorrecto de parámetros especificados en sentencias preparadas
  • Operaciones SQL no válidas (p. ej., DROP sobre objetos inexistentes)
  • Uso incorrecto de métodos de la API de base de datos
Lanza Ejemplos

excepción chdb.dbapi.err.StandardError

Bases: Exception Excepción relacionada con las operaciones en chdb. Esta es la clase base para todas las excepciones relacionadas con chdb. Hereda de la clase Exception integrada de Python y actúa como raíz de la jerarquía de excepciones para las operaciones de base de datos.
Esta clase de excepción sigue la especificación Python DB API 2.0 para el manejo de excepciones de bases de datos.

excepción chdb.dbapi.err.Warning

Bases: StandardError Excepción que se genera para advertencias importantes, como truncamientos de datos durante la inserción, etc. Esta excepción se genera cuando la operación de base de datos se completa, pero con advertencias importantes que deben señalarse a la aplicación. Entre los casos más comunes se incluyen:
  • Truncamiento de datos durante la inserción
  • Pérdida de precisión en conversiones numéricas
  • Advertencias de conversión de conjunto de caracteres
Esto sigue la especificación Python DB API 2.0 para las excepciones de advertencia.

Constantes del módulo

chdb.dbapi.apilevel = '2.0'

Crea un nuevo objeto de cadena a partir del objeto dado. Si se especifican encoding o errors, el objeto debe exponer un búfer de datos que se decodificará con la codificación indicada y el gestor de errores correspondiente. De lo contrario, devuelve el resultado de object._\_str_\_() (si está definido) o de repr(object).
  • encoding tiene como valor predeterminado ‘utf-8’.
  • errors tiene como valor predeterminado ‘strict’.

chdb.dbapi.threadsafety = 1

Convierte un número o una cadena en un entero, o devuelve 0 si no se proporciona ningún argumento. Si x es un número, devuelve x._int_(). En los números de coma flotante, esto trunca hacia cero. Si x no es un número o si se proporciona base, entonces x debe ser una cadena, bytes o una instancia de bytearray que represente un literal entero en la base indicada. El literal puede ir precedido de ‘+’ o ‘-’ y estar rodeado de espacios en blanco. La base predeterminada es 10. Las bases válidas son 0 y 2-36. La base 0 significa interpretar la base a partir de la cadena, como en un literal entero.

chdb.dbapi.paramstyle = 'format'

Crea un nuevo objeto de cadena a partir del objeto dado. Si se especifica encoding o errors, el objeto debe exponer un búfer de datos que se decodificará usando la codificación indicada y el manejador de errores. De lo contrario, devuelve el resultado de object._str_() (si está definido) o repr(object). El valor predeterminado de encoding es ‘utf-8’. El valor predeterminado de errors es ‘strict’.

Constantes de tipo

chdb.dbapi.STRING = frozenset({247, 253, 254})

frozenset ampliado para la comparación de tipos de DB-API 2.0. Esta clase amplía frozenset para admitir la semántica de comparación de tipos de DB-API 2.0. Permite una verificación de tipos flexible en la que los elementos individuales pueden compararse con el conjunto mediante operadores tanto de igualdad como de desigualdad. Se utiliza para constantes de tipo como STRING, BINARY, NUMBER, etc., lo que permite comparaciones como “field_type == STRING”, donde field_type es un único valor de tipo. Ejemplos

chdb.dbapi.BINARY = frozenset({249, 250, 251, 252})

frozenset ampliado para la comparación de tipos de DB-API 2.0. Esta clase amplía frozenset para admitir la semántica de comparación de tipos de DB-API 2.0. Permite una verificación de tipos flexible en la que los elementos individuales pueden compararse con el conjunto mediante operadores tanto de igualdad como de desigualdad. Se utiliza para constantes de tipo como STRING, BINARY, NUMBER, etc., lo que permite comparaciones como “field_type == STRING”, donde field_type es un único valor de tipo. Ejemplos

chdb.dbapi.NUMBER = frozenset({0, 1, 3, 4, 5, 8, 9, 13})

frozenset ampliado para la comparación de tipos de DB-API 2.0. Esta clase amplía frozenset para admitir la semántica de comparación de tipos de DB-API 2.0. Permite una verificación de tipos flexible en la que los elementos individuales pueden compararse con el conjunto mediante operadores de igualdad y desigualdad. Se utiliza para constantes de tipo como STRING, BINARY, NUMBER, etc., lo que permite comparaciones como “field_type == STRING”, donde field_type es un único valor de tipo. Ejemplos

chdb.dbapi.DATE = frozenset({10, 14})

frozenset ampliado para la comparación de tipos de DB-API 2.0. Esta clase amplía frozenset para admitir la semántica de comparación de tipos de DB-API 2.0. Permite una verificación de tipos flexible en la que los elementos individuales pueden compararse con el conjunto mediante operadores de igualdad y desigualdad. Se usa para constantes de tipo como STRING, BINARY, NUMBER, etc., para permitir comparaciones como “field_type == STRING”, donde field_type es un único valor de tipo. Ejemplos

chdb.dbapi.TIME = frozenset({11})

frozenset ampliado para la comparación de tipos de DB-API 2.0. Esta clase amplía frozenset para admitir la semántica de comparación de tipos de DB-API 2.0. Permite una verificación de tipos flexible, en la que los elementos individuales pueden compararse con el conjunto mediante operadores de igualdad y desigualdad. Se usa para constantes de tipo como STRING, BINARY, NUMBER, etc., lo que permite comparaciones como “field_type == STRING”, donde field_type es un único valor de tipo. Ejemplos

chdb.dbapi.TIMESTAMP = frozenset({7, 12})

frozenset ampliado para la comparación de tipos de DB-API 2.0. Esta clase amplía frozenset para admitir la semántica de comparación de tipos de DB-API 2.0. Permite una verificación de tipos flexible, en la que los elementos individuales pueden compararse con el conjunto mediante operadores de igualdad y desigualdad. Se utiliza para constantes de tipo como STRING, BINARY, NUMBER, etc., lo que permite comparaciones como “field_type == STRING”, donde field_type es un único valor de tipo. Ejemplos

chdb.dbapi.DATETIME = frozenset({7, 12})

frozenset ampliado para la comparación de tipos de DB-API 2.0. Esta clase amplía frozenset para admitir la semántica de comparación de tipos de DB-API 2.0. Permite una verificación de tipos flexible en la que los elementos individuales pueden compararse con el conjunto mediante operadores de igualdad y de desigualdad. Se usa para constantes de tipo como STRING, BINARY, NUMBER, etc., para permitir comparaciones como “field_type == STRING”, donde field_type es un único valor de tipo. Ejemplos

chdb.dbapi.ROWID = frozenset({})

frozenset ampliado para la comparación de tipos en DB-API 2.0. Esta clase amplía frozenset para admitir la semántica de comparación de tipos de DB-API 2.0. Permite una verificación de tipos flexible en la que los elementos individuales pueden compararse con el conjunto mediante operadores de igualdad y de desigualdad. Se utiliza para constantes de tipo como STRING, BINARY, NUMBER, etc., lo que permite comparaciones como “field_type == STRING”, donde field_type es un único valor de tipo. Ejemplos
Ejemplos de uso Ejemplo de consulta básica:
Trabajar con datos:
Gestión de conexiones:
Buenas prácticas
  1. Gestión de conexiones: Cierre siempre las conexiones y los cursores al terminar
  2. Administradores de contexto: Use bloques with para una limpieza automática
  3. Procesamiento por lotes: Use fetchmany() para conjuntos de resultados grandes
  4. Manejo de errores: Encapsule las operaciones de base de datos en bloques try-except
  5. Vinculación de parámetros: Use consultas parametrizadas siempre que sea posible
  6. Gestión de memoria: Evite fetchall() con conjuntos de datos muy grandes
  • La interfaz DB-API 2.0 de chDB es compatible con la mayoría de las herramientas de bases de datos de Python
  • La interfaz proporciona seguridad para hilos de nivel 1 (los hilos pueden compartir módulos, pero no conexiones)
  • Las cadenas de conexión admiten los mismos parámetros que las sesiones de chDB
  • Se admiten todas las excepciones estándar de DB-API 2.0
Advertencia
  • Cierre siempre los cursores y las conexiones para evitar fugas de recursos
  • Los conjuntos de resultados grandes deben procesarse por lotes
  • La sintaxis de vinculación de parámetros sigue el estilo de formato: %s

Funciones definidas por el usuario (UDF)

Módulo de funciones definidas por el usuario para chDB. Este módulo ofrece funciones para crear y gestionar funciones definidas por el usuario (UDF) en chDB. Permite ampliar las capacidades de chDB mediante funciones personalizadas de Python que pueden llamarse desde consultas SQL.

chdb.udf.chdb_udf

Decorador para UDF (función definida por el usuario) de Python en chDB. Sintaxis
Parámetros Notas
  1. La función debe ser sin estado. Solo se admiten UDFs, no UDAFs.
  2. El tipo de retorno predeterminado es String. El tipo de retorno debe ser uno de los tipos de datos de ClickHouse.
  3. La función debe aceptar argumentos de tipo String. Todos los argumentos son cadenas.
  4. La función se llamará para cada línea de entrada.
  5. La función debe ser una función de Python pura. Importe todos los módulos utilizados EN LA FUNCIÓN.
  6. El intérprete de Python utilizado es el mismo que se usa para ejecutar el script.
Ejemplo

chdb.udf.generate_udf

Genera archivos de configuración de UDF y scripts ejecutables. Esta función crea los archivos necesarios para una función definida por el usuario (UDF) en chDB:
  1. Un script ejecutable en Python que procesa los datos de entrada
  2. Un archivo de configuración XML que registra la UDF en ClickHouse
Sintaxis
Parámetros
Esta función suele ser invocada por el decorador @chdb_udf y no debería ser invocada directamente por los usuarios.

Utilidades

Funciones utilitarias y herramientas auxiliares para chDB. Este módulo contiene varias funciones utilitarias para trabajar con chDB, incluidas la inferencia de tipos de datos, las herramientas de conversión de datos y las utilidades de depuración.

chdb.utils.convert_to_columnar

Convierte una lista de diccionarios a un formato columnar. Esta función toma una lista de diccionarios y la transforma en un diccionario en el que cada clave corresponde a una columna y cada valor es una lista de valores de esa columna. Los valores ausentes en los diccionarios se representan como None. Sintaxis
Parámetros Devuelve Ejemplo

chdb.utils.flatten_dict

Aplana un diccionario anidado. Esta función toma un diccionario anidado y lo aplana, concatenando las claves anidadas con un separador. Las listas de diccionarios se serializan como cadenas JSON. Sintaxis
Parámetros Devuelve Ejemplo

chdb.utils.infer_data_type

Infiere el tipo de dato más adecuado para una lista de valores. Esta función examina una lista de valores y determina el tipo de dato más apropiado para representar todos los valores de la lista. Tiene en cuenta tipos enteros, enteros sin signo, decimales y de coma flotante, y usa “string” de forma predeterminada si los valores no pueden representarse con ningún tipo numérico o si todos los valores son None. Sintaxis
Parámetros Devuelve
  • Si todos los valores de la lista son None, la función devuelve “string”.
  • Si algún valor de la lista es una cadena, la función devuelve inmediatamente “string”.
  • La función asume que los valores numéricos pueden representarse como enteros, decimales o números de coma flotante según su rango y precisión.

chdb.utils.infer_data_types

Infiere los tipos de datos de cada columna en una estructura de datos columnar. Esta función analiza los valores de cada columna e infiere el tipo de dato más adecuado para cada una, a partir de una muestra de los datos. Sintaxis
Parámetros Devuelve

Clases base abstractas

class chdb.rwabc.PyReader(data: Any)`

Bases: ABC

abstractmethod read

Lee un número determinado de filas de las columnas dadas y devuelve una lista de objetos, donde cada objeto es una secuencia de valores correspondiente a una columna.
Parámetros Returns

class chdb.rwabc.PyWriter

Bases: ABC

abstractmethod finalize

Reúne y devuelve los datos finales a partir de bloques. Debe ser implementado por las subclases.
Devuelve

abstractmethod write

Guarda columnas de datos en bloques. Las subclases deben implementarlo.
Parámetros

Gestión de excepciones

class chdb.ChdbError

Bases: Exception Clase base de excepción para errores relacionados con chDB. Esta excepción se produce cuando falla la ejecución de una consulta de chDB o se produce un error. Hereda de la clase Exception estándar de Python y proporciona información sobre el error del motor de ClickHouse subyacente. El mensaje de la excepción suele contener información detallada del error de ClickHouse, incluidos errores de sintaxis, incompatibilidades de tipos, ausencia de tablas o columnas y otros problemas de ejecución de consultas. Variables Ejemplos
Esta excepción se genera automáticamente mediante chdb.query() y las funciones relacionadas cuando el motor de ClickHouse subyacente informa de un error. Debe capturar esta excepción al gestionar consultas que podrían fallar para proporcionar un manejo de errores adecuado en su aplicación.

Información de la versión

chdb.chdb_version = ('3', '6', '0')

Secuencia inmutable incorporada. Si no se proporciona ningún argumento, el constructor devuelve una tupla vacía. Si se especifica iterable, la tupla se inicializa a partir de sus elementos. Si el argumento es una tupla, el valor devuelto es el mismo objeto.

chdb.engine_version = '25.5.2.1'

Crea un nuevo objeto de cadena a partir del objeto dado. Si se especifican encoding o errors, el objeto debe exponer un búfer de datos que se decodificará con la codificación y el gestor de errores indicados. De lo contrario, devuelve el resultado de object._str_() (si está definido) o repr(object).
  • encoding usa ‘utf-8’ de forma predeterminada.
  • errors usa ‘strict’ de forma predeterminada.

chdb.__version__ = '3.6.0'

Crea un nuevo objeto de tipo cadena a partir del objeto dado. Si se especifican encoding o errors, el objeto debe exponer un búfer de datos que se decodificará usando la codificación indicada y el manejador de errores correspondiente. De lo contrario, devuelve el resultado de object._str_() (si está definido) o repr(object).
  • encoding tiene como valor predeterminado ‘utf-8’.
  • errors tiene como valor predeterminado ‘strict’.
Última modificación el 12 de junio de 2026