Instalação
dbc:
dbc publicado para o chDB é a versão 26.7.0. Para verificar as versões disponíveis, execute:
chdb por meio de um gerenciador de drivers ADBC.
Há suporte para Linux e macOS em x86-64 e arm64.
Conexão pelo Python
dbc:
Ciclo de vida da conexão
- Todas as conexões ADBC abertas simultaneamente em um processo devem apontar para o mesmo caminho de armazenamento.
- Há suporte para várias conexões nesse caminho, inclusive conexões usadas simultaneamente por diferentes threads. Para consultas concorrentes, dê a cada worker sua própria conexão, em vez de executar operações simultâneas em uma única conexão.
- Fechar a última conexão encerra o engine embutido. Uma conexão posterior pode iniciá-lo novamente, inclusive com um caminho de armazenamento diferente, mas desligamentos e inicializações repetidos consomem tempo e memória. Mantenha pelo menos uma conexão aberta para tarefas recorrentes.
- Apenas um processo do SO pode abrir determinado diretório em disco por vez. Dê a cada processo seu próprio diretório ou use um banco de dados em memória.
Como usar o ADBC com o pacote Python chDB
dbc instala um driver ADBC nativo independente. Ele é separado da biblioteca nativa carregada pelo pacote Python chdb.
Em um mesmo processo Python, não espere que uma conexão ADBC carregada por dbc e uma conexão chdb comum compartilhem tabelas em memória ou o estado do engine. Para um determinado caminho de banco de dados, use o driver ADBC ou a API Python chdb de cada vez; não mantenha ambos abertos no mesmo caminho em disco. Para mover dados entre as duas APIs, feche todas as conexões de um lado antes de abrir as do outro ou transfira os dados explicitamente por meio do Arrow ou de arquivos.
Funcionalidades implementadas
Not yet indica uma capacidade do driver ADBC que poderá ser adicionada futuramente. Not applicable indica um recurso que não é compatível com o modelo de execução atual do chDB ou do ClickHouse.
Banco de dados
Conexão
Instrução
A ingestão em massa é compatível com os modos
create, append, create_append e replace, no banco de dados padrão ou em um banco de dados nomeado.
ClickHouse SQL e comportamento dos tipos
- As colunas não aceitam valores nulos, a menos que sejam declaradas como
Nullable(...). Um NULL tipado vinculado a uma coluna simplesStringé armazenado como uma string vazia, e não como NULL. - Use a delimitação de identificadores do ClickHouse; os exemplos usam backticks.
- Os bancos de dados do ClickHouse são mapeados para
db_schemano ADBC. Não há uma camada de catálogo acima deles, portanto, operações no escopo do catálogo não se aplicam. Decimalnão aceita escalas negativas, eDate32abrange o período de 1900-01-01 a 2299-12-31.- Um
DateTime64sem fuso horário é interpretado no fuso horário do engine. - A saída Arrow atual do ClickHouse não representa o tipo
Time; portanto, ele não pode ser lido por ADBC.
Dados binários são armazenados como
String e lidos como UTF-8. Portanto, payloads que não são UTF-8 válidos não são compatíveis com valores binary em operações de round-trip.
Exemplos
Ingestão em massa do Arrow
Parâmetros
C
dbc install chdb, o gerenciador de drivers C pode localizar o driver pelo nome:
Como o driver é verificado
- a suíte de conformidade do Apache Arrow ADBC, que verifica o contrato em C
- a suíte de validação ADBC Driver Foundry, que verifica o comportamento no nível de SQL, conversões de tipos de ida e volta, metadados e ingestão em massa