Instalación
dbc:
dbc publicado para chDB corresponde a la versión 26.7.0. Para consultar las versiones disponibles, ejecute:
chdb desde un administrador de drivers ADBC.
Linux y macOS son compatibles con las arquitecturas x86-64 y arm64.
Conexión desde Python
dbc:
Ciclo de vida de las conexiones
- Todas las conexiones ADBC abiertas simultáneamente en un proceso deben usar la misma ruta de almacenamiento.
- Se admiten varias conexiones a esa ruta, incluidas las utilizadas de forma concurrente desde distintos threads. Para queries concurrentes, asigne a cada worker su propia conexión en lugar de ejecutar operaciones simultáneas en una única conexión.
- Al cerrar la última conexión, se apaga el engine embedded. Una conexión posterior puede volver a iniciarlo, incluso con una ruta de almacenamiento diferente, pero los apagados y arranques repetidos consumen tiempo y memoria. Mantenga al menos una conexión abierta para tareas repetitivas.
- Solo un proceso del sistema operativo puede abrir un directorio en disco determinado a la vez. Asigne a cada proceso su propio directorio o utilice una database en memoria.
Uso de ADBC con el paquete chDB para Python
dbc instala un driver ADBC nativo independiente. Es distinto de la biblioteca nativa que carga el paquete chdb para Python.
En un proceso de Python, no espere que una conexión ADBC cargada por dbc y una conexión chdb normal compartan tablas en memoria ni el estado del engine. Para una ruta de base de datos determinada, use el driver ADBC o la API de chdb para Python, pero no ambos a la vez; no mantenga ambos abiertos en la misma ruta en disco. Para mover datos entre las dos API, cierre todas las conexiones de una antes de abrir las de la otra, o transfiera los datos explícitamente mediante Arrow o archivos.
Funcionalidad implementada
Not yet indica una capacidad del controlador ADBC que se podrá añadir más adelante. Not applicable indica una funcionalidad que no se ajusta al modelo de ejecución actual de chDB o ClickHouse.
Base de datos
Conexión
Sentencia
La ingestión masiva admite los modos
create, append, create_append y replace en la base de datos predeterminada o en una base de datos con nombre.
ClickHouse SQL y comportamiento de los tipos
- Las columnas no admiten valores NULL, salvo que se declaren como
Nullable(...). Un NULL tipado vinculado a una columnaStringsinNullablese almacena como una cadena vacía, no como NULL. - Use las comillas para identificadores de ClickHouse; los ejemplos usan comillas invertidas.
- Las bases de datos de ClickHouse se asignan a
db_schemade ADBC. No existe una capa de catálogo por encima de ellas, por lo que las operaciones con ámbito de catálogo no son aplicables. Decimalno acepta escalas negativas yDate32abarca desde 1900-01-01 hasta 2299-12-31.- Un
DateTime64sin zona horaria se interpreta en la zona horaria del motor. - La salida Arrow actual de ClickHouse no representa el tipo
Time, por lo que no se puede volver a leer mediante ADBC.
Los datos binarios se almacenan como
String y se vuelven a leer como UTF-8. Por tanto, las cargas útiles que no son UTF-8 válidas no son compatibles como valores binary de ida y vuelta.
Ejemplos
Ingestión masiva desde Arrow
Parámetros
C
dbc install chdb, el administrador de controladores de C puede resolver el controlador por nombre:
Cómo se verifica el driver
- la suite de conformidad de Apache Arrow ADBC, que verifica el contrato de C
- la suite de validación de ADBC Driver Foundry, que verifica el comportamiento a nivel de SQL, los recorridos de ida y vuelta de tipos, los metadatos y la ingestión masiva