Pular para o conteúdo principal

Funções principais de consulta

chdb.query

Executa uma consulta SQL usando o mecanismo do chDB. Esta é a principal função de consulta, que executa instruções SQL usando o mecanismo do ClickHouse embutido. Oferece suporte a vários formatos de saída e pode trabalhar com bancos de dados em memória ou baseados em arquivos. Sintaxe
Parâmetros Retorno Retorna o resultado da consulta no formato especificado: Exceções Exemplos

chdb.sql

Executa consulta SQL usando o mecanismo do chDB. Esta é a principal função de consulta, que executa instruções SQL usando o mecanismo do ClickHouse embutido. Oferece suporte a vários formatos de saída e pode funcionar com bancos de dados em memória ou baseados em arquivo. Sintaxe
Parâmetros Retorno Retorna o resultado da consulta no formato especificado: Exceções Exemplos

chdb.to_arrowTable

Converte o resultado da consulta em uma tabela do PyArrow. Converte o resultado de uma consulta do chDB em uma tabela do PyArrow para processamento eficiente de dados em formato colunar. Retorna uma tabela vazia se o resultado estiver vazio. Sintaxe
Parâmetros Retorna Exceções Exemplo

chdb.to_df

Converte o resultado da consulta em um DataFrame do pandas. Converte o resultado de uma consulta do chDB em um DataFrame do pandas, primeiro convertendo-o em uma tabela do PyArrow e depois em pandas usando multithreading para melhor desempenho. Sintaxe
Parâmetros Retorna Lança Exemplo

Gerenciamento de conexões e sessões

As seguintes funções de sessão estão disponíveis:

chdb.connect

Cria uma conexão com o servidor em segundo plano do chDB. Esta função estabelece uma Connection com o engine de banco de dados chDB (ClickHouse). Só é permitida uma conexão aberta por processo. Várias chamadas com a mesma string de conexão retornarão o mesmo objeto de conexão.
Parâmetros: Formatos básicos Com parâmetros de consulta Tratamento de parâmetros de consulta Os parâmetros de consulta são passados para o mecanismo do ClickHouse como argumentos de inicialização. Tratamento especial de parâmetros: Para ver a lista completa de parâmetros, consulte clickhouse local --help --verbose Retorna Exceções
Apenas uma conexão por processo é suportada. Criar uma nova conexão fechará qualquer conexão existente.
Exemplos
Veja também
  • Connection - Classe de conexão com o banco de dados
  • Cursor - Cursor do banco de dados para operações da DB-API 2.0

Tratamento de exceções

class chdb.ChdbError

Bases: Exception Classe base de exceção para erros relacionados ao chDB. Essa exceção é levantada quando a execução de uma consulta do chDB falha ou encontra um erro. Ela herda da classe Exception padrão do Python e fornece informações de erro do mecanismo do ClickHouse subjacente.

class chdb.session.Session

Bases: object A sessão preserva o estado da consulta. Se path for None, ela criará um diretório temporário e o usará como caminho do banco de dados, e o diretório temporário será removido quando a sessão for fechada. Você também pode informar um path para criar um banco de dados nesse caminho, onde seus dados serão armazenados. Você também pode usar uma string de conexão para informar o path e outros parâmetros.
Exemplos
Tratamento dos argumentos da string de conexãoStrings de conexão que contêm parâmetros de consulta, como “file:test.db?param1=value1&param2=value2”: “param1=value1” será passado ao mecanismo do ClickHouse como argumento de inicialização.Para mais detalhes, consulte clickhouse local –help –verboseTratamento de alguns argumentos especiais:
  • “mode=ro” será convertido em “–readonly=1” para o ClickHouse (modo somente leitura)
Importante
  • Só pode haver uma sessão por vez. Se você quiser criar uma nova sessão, precisará fechar a sessão existente.
  • Criar uma nova sessão fechará a sessão existente.

cleanup

Faz a limpeza dos recursos da sessão com tratamento de exceções. Este método tenta fechar a sessão enquanto suprime quaisquer exceções que possam ocorrer durante o processo de limpeza. É particularmente útil em cenários de tratamento de erros ou quando você precisa garantir que a limpeza ocorra independentemente do estado da sessão. Sintaxe
Este método nunca lançará uma exceção, o que torna seguro chamá-lo em blocos finally ou destrutores.
Exemplos
Veja também
  • close() - Para fechar explicitamente a sessão, com propagação de erro

close

Fecha a sessão e libera os recursos. Este método fecha a conexão subjacente e redefine o estado global da sessão. Após chamar este método, a sessão se torna inválida e não pode mais ser usada para novas consultas. Sintaxe
Este método é chamado automaticamente quando a sessão é usada como gerenciador de contexto ou quando o objeto de sessão é destruído.
ImportanteQualquer tentativa de usar a sessão após chamar close() resultará em erro.
Exemplos

query

Executa uma consulta SQL e retorna os resultados. Este método executa uma consulta SQL no banco de dados da sessão e retorna os resultados no formato especificado. O método oferece suporte a vários formatos de saída e preserva o estado da sessão entre consultas. Sintaxe
Parâmetros Retorna Retorna os resultados da consulta no formato especificado. O tipo de retorno exato depende do parâmetro de formato:
  • Formatos de texto (CSV, JSON etc.) retornam str
  • Formatos binários (Arrow, Parquet) retornam bytes
Gera
O formato “Debug” não é suportado e será convertido automaticamente para “CSV” com um aviso. Para depuração, use os parâmetros da string de conexão.
AvisoEste método executa a consulta de forma síncrona e carrega todos os resultados na memória. Para conjuntos de resultados grandes, considere usar send_query() para resultados em streaming.
Exemplos
Veja também
  • send_query() - Para executar consultas em streaming
  • sql - Alias deste método

send_query

Executa uma consulta SQL e retorna um iterador de resultados em streaming. Este método executa uma consulta SQL no banco de dados da sessão e retorna um objeto de resultado em streaming que permite percorrer os resultados sem carregar tudo na memória de uma só vez. Isso é particularmente útil para grandes conjuntos de resultados. Sintaxe
Parâmetros Retorna Gera
O formato “Debug” não é compatível e será convertido automaticamente para “CSV”, com um aviso. Para depuração, use os parâmetros da string de conexão.
O objeto StreamingResult retornado deve ser consumido imediatamente ou armazenado adequadamente, pois mantém uma conexão com o banco de dados.
Exemplos
Veja também
  • query() - Para executar consultas sem streaming
  • chdb.state.sqlitelike.StreamingResult - Iterador de resultados em streaming

sql

Executa uma consulta SQL e retorna os resultados. Este método executa uma consulta SQL no banco de dados da sessão e retorna os resultados no formato especificado. O método oferece suporte a vários formatos de saída e mantém o estado da sessão entre consultas. Sintaxe
Parâmetros Retorno Retorna os resultados da consulta no formato especificado. O tipo de retorno exato depende do parâmetro fmt:
  • Formatos de texto (CSV, JSON etc.) retornam str
  • Formatos binários (Arrow, Parquet) retornam bytes
Exceções:
O formato “Debug” não é compatível e será convertido automaticamente para “CSV” com um aviso. Para depuração, use os parâmetros da string de conexão em vez disso.
AvisoEste método executa a consulta de forma síncrona e carrega todos os resultados na memória. Para conjuntos de resultados grandes, considere usar send_query() para resultados em streaming.
Exemplos
Veja também
  • send_query() - Para executar consultas em streaming
  • sql - Apelido deste método

Gerenciamento de estado

chdb.state.connect

Cria uma Connection para o servidor em segundo plano do chDB. Esta função estabelece uma conexão com o database engine do chDB (ClickHouse). Só é permitida uma conexão aberta por processo. Várias chamadas com a mesma string de conexão retornam o mesmo objeto de conexão. Sintaxe
Parâmetros Formatos básicos Formatos de string de conexão compatíveis: Com parâmetros de consulta Tratamento de parâmetros de consulta Os parâmetros de consulta são passados para o mecanismo do ClickHouse como argumentos de inicialização. Tratamento especial de parâmetros: Para ver a lista completa de parâmetros, consulte clickhouse local --help --verbose Retorna Gera
AvisoHá suporte para apenas uma conexão por processo. Criar uma nova conexão fechará qualquer conexão existente.
Exemplos
Veja também
  • Connection - Classe de conexão com banco de dados
  • Cursor - Cursor de banco de dados para operações da DB-API 2.0

class chdb.state.sqlitelike.Connection

Classes base: object Sintaxe

close

Fecha a conexão e libera os recursos. Este método fecha a conexão com o banco de dados e libera todos os recursos associados, incluindo cursores ativos. Após chamar este método, a conexão se torna inválida e não pode mais ser usada em outras operações. Sintaxe
Este método é idempotente: chamá-lo várias vezes é seguro.
AvisoTodas as consultas em streaming em andamento serão canceladas quando a conexão for fechada. Certifique-se de que todos os dados importantes tenham sido processados antes de fechá-la.
Exemplos

cursor

Crie um objeto Cursor para executar consultas. Este método cria um cursor de banco de dados que fornece a interface padrão DB-API 2.0 para executar consultas e obter resultados. O cursor permite um controle mais detalhado sobre a execução de consultas e a obtenção de resultados. Sintaxe
Retorna
A criação de um novo cursor substituirá qualquer cursor existente associado a esta conexão. Há suporte para apenas um cursor por conexão.
Exemplos
Veja também
  • Cursor - Implementação do cursor do banco de dados

query

Execute uma consulta SQL e retorne todos os resultados. Este método executa uma consulta SQL de forma síncrona e retorna o conjunto completo de resultados. Ele oferece suporte a vários formatos de saída e aplica automaticamente o pós-processamento específico de cada formato. Sintaxe
Parâmetros: Retorna Gera
AvisoEste método carrega todo o conjunto de resultados na memória. Para resultados grandes, considere usar send_query() para streaming.
Exemplos
Veja também

send_query

Executa uma consulta SQL e retorna um iterador de resultados em streaming. Este método executa uma consulta SQL e retorna um objeto StreamingResult que permite iterar pelos resultados sem carregar tudo na memória de uma só vez. Isso é ideal para processar grandes conjuntos de resultados. Sintaxe
Parâmetros Retorna Gera
Somente o formato “Arrow” oferece suporte ao método record_batch() no StreamingResult retornado.
Exemplos
Veja também

class chdb.state.sqlitelike.StreamingResult

Bases: object Iterador de resultados em streaming para processar resultados de consultas grandes. Esta classe fornece uma interface de iterador para transmitir resultados de consultas sem carregar todo o conjunto de resultados na memória. Ela oferece suporte a vários formatos de saída e fornece métodos para buscar resultados manualmente e para streaming de PyArrow RecordBatch.

fetch

Obtém o próximo fragmento dos resultados em streaming. Este método recupera o próximo fragmento de dados disponível no resultado da consulta em streaming. O formato dos dados retornados depende do formato especificado quando a consulta em streaming foi iniciada. Sintaxe
Retorna Exemplos

cancel

Cancela a consulta em streaming e libera os recursos. Este método cancela qualquer consulta em streaming em andamento e libera os recursos associados. Ele deve ser chamado quando você quiser interromper o processamento dos resultados antes que o stream termine. Sintaxe
Exemplos

close

Fecha o resultado em streaming e libera os recursos. Alias para cancel(). Fecha o iterador do resultado em streaming e libera quaisquer recursos associados. Sintaxe

record_batch

Crie um PyArrow RecordBatchReader para processar lotes com eficiência. Este método cria um PyArrow RecordBatchReader que permite iterar com eficiência pelos resultados da consulta no formato Arrow. Esta é a maneira mais eficiente de processar grandes conjuntos de resultados ao usar o PyArrow. Sintaxe
Parâmetros Retorno
Este método só está disponível quando a consulta em streaming foi iniciada com format="Arrow". Usá-lo com outros formatos gerará um erro.
Exemplos

Protocolo de iterador

StreamingResult oferece suporte ao protocolo de iteração do Python, permitindo seu uso direto em loops for:

Protocolo de gerenciador de contexto

StreamingResult é compatível com o protocolo de gerenciador de contexto para limpeza automática de recursos:

classe chdb.state.sqlitelike.Cursor

Bases: object

close

Fecha o cursor e libera os recursos. Este método fecha o cursor e libera todos os recursos associados. Após chamar este método, o cursor se torna inválido e não pode mais ser usado em operações posteriores. Sintaxe
Este método é idempotente — é seguro chamá-lo várias vezes. O cursor também é fechado automaticamente quando a conexão é encerrada.
Exemplos

column_names

Retorna uma lista com os nomes das colunas da última consulta executada. Este método retorna os nomes das colunas da consulta SELECT executada mais recentemente. Os nomes são retornados na mesma ordem em que aparecem no conjunto de resultados. Sintaxe
Retorna Exemplos
Veja também

column_types

Retorna uma lista dos tipos das colunas da última consulta executada. Este método retorna os nomes dos tipos de coluna do ClickHouse da consulta SELECT executada mais recentemente. Os tipos são retornados na mesma ordem em que aparecem no conjunto de resultados. Sintaxe
Retorna Exemplos
Veja também

commit

Executa o commit de qualquer transação pendente. Este método executa o commit de qualquer transação pendente do banco de dados. No ClickHouse, a maioria das operações é confirmada automaticamente, mas este método é fornecido para compatibilidade com a DB-API 2.0.
O ClickHouse normalmente confirma as operações automaticamente, portanto commits explícitos geralmente não são necessários. Este método é fornecido para compatibilidade com o fluxo de trabalho padrão da DB-API 2.0.
Sintaxe
Exemplos

property description : list

Retorna a descrição das colunas de acordo com a especificação DB-API 2.0. Esta propriedade retorna uma lista de tuplas de 7 itens que descrevem cada coluna no conjunto de resultados da última consulta SELECT executada. Cada tupla contém: (name, type_code, display_size, internal_size, precision, scale, null_ok) Atualmente, apenas name e type_code são fornecidos; os outros campos são definidos como None. Retorna
Isso segue a especificação DB-API 2.0 para cursor.description. Apenas os dois primeiros elementos (name e type_code) contêm dados relevantes nesta implementação.
Exemplos
Veja também

execute

Executa uma consulta SQL e prepara os resultados para recuperação. Este método executa uma consulta SQL e prepara os resultados para serem recuperados usando os métodos fetch. Ele lida com a interpretação dos dados de resultado e com a conversão automática de tipos de dados do ClickHouse. Sintaxe
Parâmetros: Exceções
Este método segue as especificações da DB-API 2.0 para cursor.execute(). Após a execução, use fetchone(), fetchmany() ou fetchall() para recuperar os resultados.
O método converte automaticamente os tipos de dados do ClickHouse para os tipos apropriados do Python:
  • Tipos Int/UInt → int
  • Tipos Float → float
  • String/FixedString → str
  • DateTime → datetime.datetime
  • Date → datetime.date
  • Bool → bool
Exemplos
Veja também

fetchall

Busca todas as linhas restantes do resultado da consulta. Este método recupera todas as linhas restantes do conjunto de resultados da consulta atual a partir da posição atual do cursor. Ele retorna uma tupla de tuplas de linhas, com a conversão adequada para tipos Python aplicada. Sintaxe
Retorna:
AvisoEste método carrega todas as linhas restantes na memória de uma só vez. Para conjuntos de resultados grandes, considere usar fetchmany() para processar os resultados em lotes.
Exemplos
Veja também

fetchmany

Recupera várias linhas do resultado da consulta. Este método recupera até ‘size’ linhas do conjunto de resultados da consulta atual. Ele retorna uma tupla de tuplas de linhas, em que cada linha contém valores de colunas com a conversão apropriada para tipos Python. Sintaxe
Parâmetros Retorno
Este método segue as especificações da DB-API 2.0. Retornará menos de ‘size’ linhas se o conjunto de resultados estiver esgotado.
Exemplos
Veja também

fetchone

Busca a próxima linha do resultado da consulta. Este método recupera a próxima linha disponível do conjunto de resultados da consulta atual. Ele retorna uma tupla contendo os valores das colunas, com a conversão adequada para tipos Python aplicada. Sintaxe
Retorna:
Este método segue as especificações da DB-API 2.0. Os valores das colunas são convertidos automaticamente para os tipos apropriados do Python com base nos tipos de coluna do ClickHouse.
Exemplos
Veja também

chdb.state.sqlitelike

Converte o resultado da consulta em uma tabela PyArrow. Esta função converte os resultados de consultas do chdb para o formato de tabela PyArrow, que oferece acesso eficiente a dados colunares e interoperabilidade com outras bibliotecas de processamento de dados. Sintaxe
Parâmetros: Retorna Gera
Esta função requer que pyarrow e pandas estejam instalados. Instale-os com: pip install pyarrow pandas
AvisoResultados vazios retornam uma tabela PyArrow vazia, sem esquema.
Exemplos

chdb.state.sqlitelike.to_df

Converte o resultado da consulta em um DataFrame do Pandas. Esta função converte os resultados de consultas do chdb para um DataFrame do Pandas, primeiro convertendo-os em uma tabela PyArrow e depois em um DataFrame. Isso oferece recursos práticos de análise de dados com a API do Pandas. Sintaxe
Parâmetros: Retorna: Gera
Esta função usa múltiplas threads na conversão de Arrow para Pandas para melhorar o desempenho em grandes conjuntos de dados.
Veja também Exemplos

Integração com DataFrame

classe chdb.dataframe.Table

Bases:

Interface da API de Banco de Dados (DBAPI) 2.0

O chDB fornece uma interface compatível com a Python DB-API 2.0 para conectividade com bancos de dados, permitindo usar o chDB com ferramentas e frameworks que esperam interfaces de banco de dados padrão. A interface DB-API 2.0 do chDB inclui:
  • Conexões: Gerenciamento de conexões com bancos de dados por meio de strings de conexão
  • Cursores: Execução de consultas e recuperação de resultados
  • Sistema de Tipos: Constantes de tipo e conversores compatíveis com a DB-API 2.0
  • Tratamento de Erros: Hierarquia padrão de exceções de banco de dados
  • Segurança de Threads: Segurança de threads de nível 1 (threads podem compartilhar módulos, mas não conexões)

Funções principais

A interface da API de banco de dados (DBAPI) 2.0 implementa as seguintes funções principais:

chdb.dbapi.connect

Inicializa uma nova conexão com o banco de dados. Sintaxe
Parâmetros Exceções

chdb.dbapi.get_client_info()

Obtém informações da versão do cliente. Retorna a versão do cliente chDB como uma string para compatibilidade com o MySQLdb. Sintaxe
Retorna

Construtores de tipos

chdb.dbapi.Binary(x)

Retorna x como um tipo binário. Esta função converte a entrada para o tipo bytes, para uso com campos binários de banco de dados, seguindo a especificação DB-API 2.0. Sintaxe
Parâmetros Retorno

Classe de conexão

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

Bases: object Conexão compatível com DB-API 2.0 para o chDB. Esta classe fornece uma interface DB-API padrão para se conectar a bancos de dados chDB e interagir com eles. Ela oferece suporte tanto a bancos de dados em memória quanto a bancos de dados em arquivo. A conexão gerencia o engine chDB subjacente e fornece métodos para executar consultas, gerenciar transações (no-op para ClickHouse) e criar cursores.
Parâmetros Variáveis Exemplos
O ClickHouse não oferece suporte a transações tradicionais, portanto as operações commit() e rollback() não têm efeito, mas são fornecidas para conformidade com a DB-API.

close

Fecha a conexão com o banco de dados. Fecha a conexão subjacente com o chDB e marca esta conexão como fechada. Operações subsequentes nesta conexão resultarão em Error. Sintaxe
Lança

commit

Faz o commit da transação atual. Sintaxe
Esta operação é um no-op no chDB/ClickHouse, pois ele não oferece suporte a transações tradicionais. É fornecida para conformidade com a DB-API 2.0.

cursor

Cria um novo cursor para executar consultas. Sintaxe
Parâmetros Retorna Gera Exemplo

escape

Escapa um valor para incluí-lo com segurança em consultas SQL. Sintaxe
Parâmetros Retorno Exemplo

escape_string

Escapa um valor de texto para consultas SQL. Sintaxe
Parâmetros Retorna

property open

Verifica se a conexão está aberta. Retorna

query

Execute uma consulta SQL diretamente e retorne os resultados brutos. Este método contorna a interface de cursor e executa consultas diretamente. Para o uso padrão da DB-API, prefira usar o método cursor(). Sintaxe
Parâmetros: Retorna Gera Exemplo

property resp

Obtém a resposta da última consulta. Retorna
Esta propriedade é atualizada sempre que query() é chamada diretamente. Ela não reflete consultas executadas por meio de cursores.

rollback

Desfaz a transação atual. Sintaxe
Esta é uma operação sem efeito para chDB/ClickHouse, pois não há suporte a transações tradicionais. Ela é fornecida para conformidade com a DB-API 2.0.

Classe Cursor

classe chdb.dbapi.cursors.Cursor

Bases: object Cursor DB-API 2.0 para executar consultas e obter resultados. O cursor fornece métodos para executar instruções SQL, gerenciar resultados de consultas e navegar por conjuntos de resultados. Ele oferece suporte à vinculação de parâmetros, operações em massa e segue as especificações da DB-API 2.0. Não crie instâncias de Cursor diretamente. Em vez disso, use Connection.cursor().
Exemplos
Consulte DB-API 2.0 Cursor Objects para ver os detalhes completos da especificação.

callproc

Executa um procedimento armazenado (implementação de placeholder). Sintaxe
Parâmetros Retorno
chDB/ClickHouse não oferece suporte a procedimentos armazenados no sentido tradicional. Este método é fornecido para conformidade com a DB-API 2.0, mas não realiza nenhuma operação de fato. Use execute() para todas as operações SQL.
CompatibilidadeEsta é uma implementação de placeholder. Recursos tradicionais de procedimentos armazenados, como parâmetros OUT/INOUT, vários conjuntos de resultados e variáveis do servidor, não têm suporte no mecanismo do ClickHouse subjacente.

close

Fecha o cursor e libera os recursos associados. Após ser fechado, o cursor se torna inutilizável, e qualquer operação lançará uma exceção. Fechar um cursor consome todos os dados restantes e libera o cursor subjacente. Sintaxe

execute

Executa uma consulta SQL com vinculação opcional de parâmetros. Este método executa uma única instrução SQL com substituição opcional de parâmetros. Ele oferece suporte a vários estilos de marcadores de posição de parâmetros para maior flexibilidade. Sintaxe
Parâmetros Retorno Estilos de parâmetro Exemplos
Exceções

executemany(query, args)

Executa uma consulta várias vezes com diferentes conjuntos de parâmetros. Este método executa com eficiência a mesma consulta SQL várias vezes, com valores de parâmetros diferentes. É especialmente útil para operações de INSERT em massa. Sintaxe
Parâmetros Retorno Exemplos
Este método melhora o desempenho de operações de INSERT e UPDATE com várias linhas ao otimizar o processo de execução da consulta.

fetchall()

Obtém todas as linhas restantes do resultado da consulta. Sintaxe
Retorna Gera
AvisoEste método pode consumir muita memória com conjuntos de resultados grandes. Considere usar fetchmany() para conjuntos de dados grandes.
Exemplo

fetchmany

Obtém várias linhas do resultado da consulta. Sintaxe
Parâmetros Retorno Exceções Exemplo

fetchone

Obtém a próxima linha do resultado da consulta. Sintaxe
Retorna Gera Exemplo

max_stmt_length = 1024000

Tamanho máximo da instrução gerada por executemany(). O valor padrão é 1024000.

mogrify

Retorna a consulta exata que seria enviada ao banco de dados. Este método mostra a consulta SQL final após a substituição de parâmetros, o que é útil para depuração e geração de logs. Sintaxe
Parâmetros Retorno Exemplo
Este método segue a extensão da DB-API 2.0 usada pelo Psycopg.

nextset

Avança para o próximo conjunto de resultados (não suportado). Sintaxe
Retorno
O chDB/ClickHouse não oferece suporte a múltiplos conjuntos de resultados em uma única consulta. Este método é fornecido para conformidade com a DB-API 2.0, mas sempre retorna None.

setinputsizes

Define os tamanhos de entrada dos parâmetros (implementação sem efeito). Sintaxe
Parâmetros
Este método não faz nada, mas é exigido pela especificação DB-API 2.0. O chDB ajusta automaticamente o tamanho dos parâmetros internamente.

setoutputsizes

Define os tamanhos das colunas de saída (implementação sem efeito). Sintaxe
Parâmetros
Este método não faz nada, mas é exigido pela especificação DB-API 2.0. O chDB gerencia automaticamente, de forma interna, o dimensionamento da saída.

Classes de erro

Classes de exceção para operações de banco de dados no chdb. Este módulo fornece uma hierarquia completa de classes de exceção para tratar erros relacionados a banco de dados no chdb, seguindo a Especificação da API de Banco de Dados do Python v2.0. A hierarquia de exceções está estruturada da seguinte forma:
Cada classe de exceção representa uma categoria específica de erros de banco de dados:
Essas classes de exceção estão em conformidade com a especificação Python DB API 2.0 e fornecem um tratamento de erros consistente em diferentes operações de banco de dados.
Veja também Exemplos

exceção chdb.dbapi.err.DataError

Bases: DatabaseError Exceção gerada para erros decorrentes de problemas nos dados processados. Esta exceção é gerada quando operações de banco de dados falham devido a problemas com os dados em processamento, como:
  • Operações de divisão por zero
  • Valores numéricos fora do intervalo
  • Valores de data/hora inválidos
  • Erros de truncamento de string
  • Falhas na conversão de tipo
  • Formato de dados inválido para o tipo da coluna
Gera Exemplos

exceção chdb.dbapi.err.DatabaseError

Bases: Error Exceção lançada para erros relacionados ao banco de dados. Esta é a classe base para todos os erros relacionados ao banco de dados. Ela engloba todos os erros que ocorrem durante operações no banco de dados e que estão relacionados ao próprio banco de dados, e não à interface. Cenários comuns incluem:
  • Erros na execução de SQL
  • Problemas de conectividade com o banco de dados
  • Problemas relacionados a transações
  • Violações de restrições específicas do banco de dados
Ela serve como classe pai para tipos mais específicos de erro de banco de dados, como DataError, OperationalError, etc.

exceção chdb.dbapi.err.Error

Bases: StandardError Exceção que é a classe base de todas as outras exceções de erro (exceto Warning). Esta é a classe base de todas as exceções de erro no chdb, excluindo avisos. Ela serve como classe pai para todas as condições de erro de banco de dados que impedem a conclusão bem-sucedida das operações.
Esta hierarquia de exceções segue a especificação Python DB API 2.0.
Ver também
  • Warning - Para avisos não fatais que não impedem a conclusão da operação

exceção chdb.dbapi.err.IntegrityError

Bases: DatabaseError Exceção lançada quando a integridade relacional do banco de dados é comprometida. Essa exceção é lançada quando operações no banco de dados violam restrições de integridade, incluindo:
  • Violações de restrição de chave estrangeira
  • Violações de chave primária ou de restrição de unicidade (chaves duplicadas)
  • Violações de restrição CHECK
  • Violações de restrição NOT NULL
  • Violações de integridade referencial
Levanta Exemplos

exceção chdb.dbapi.err.InterfaceError

Bases: Error Exceção gerada para erros relacionados à interface do banco de dados, e não ao próprio banco de dados. Essa exceção é gerada quando há problemas na implementação da interface do banco de dados, como:
  • Parâmetros de conexão inválidos
  • Uso incorreto da API (chamada de métodos em conexões fechadas)
  • Erros de protocolo no nível da interface
  • Falhas na importação ou na inicialização do módulo
Gera
Esses erros normalmente são erros de programação ou problemas de configuração que podem ser resolvidos corrigindo o código do cliente ou a configuração.

exceção chdb.dbapi.err.InternalError

Base: DatabaseError Exceção gerada quando o banco de dados encontra um erro interno. Esta exceção é gerada quando o sistema de banco de dados encontra erros internos que não são causados pela aplicação, como:
  • Estado inválido do cursor (o cursor não é mais válido)
  • Inconsistências no estado da transação (a transação está fora de sincronia)
  • Problemas de corrupção no banco de dados
  • Corrupção da estrutura interna de dados
  • Erros de banco de dados em nível de sistema
Gera
AvisoErros internos podem indicar problemas graves no banco de dados que exigem a atenção de um administrador de banco de dados. Esses erros normalmente não podem ser recuperados por meio da lógica de retry no nível da aplicação.
Esses erros geralmente estão fora do controle da aplicação e podem exigir a reinicialização do banco de dados ou operações de reparo.

exceção chdb.dbapi.err.NotSupportedError

Bases: DatabaseError Exceção gerada quando um método ou a API do banco de dados não tem suporte. Essa exceção é gerada quando a aplicação tenta usar recursos do banco de dados ou métodos da API que não têm suporte na configuração ou versão atual do banco de dados, como:
  • Solicitar rollback() em conexões sem suporte a transações
  • Usar recursos SQL avançados sem suporte na versão do banco de dados
  • Chamar métodos não implementados pelo driver atual
  • Tentar usar recursos do banco de dados desabilitados
Gera Exemplos
Consulte a documentação do banco de dados e os recursos do driver para evitar esses erros. Considere fallbacks apropriados sempre que possível.

exceção chdb.dbapi.err.OperationalError

Bases: DatabaseError Exceção gerada para erros relacionados à operação do banco de dados. Esta exceção é gerada para erros que ocorrem durante a operação do banco de dados e que não estão necessariamente sob o controle do programador, incluindo:
  • Desconexão inesperada do banco de dados
  • Servidor do banco de dados não encontrado ou inacessível
  • Falhas no processamento de transações
  • Erros de alocação de memória durante o processamento
  • Esgotamento de espaço em disco ou de recursos
  • Erros internos do servidor do banco de dados
  • Falhas de autenticação ou autorização
Levanta
Esses erros geralmente são transitórios e podem ser resolvidos tentando novamente a operação ou ao corrigir problemas no nível do sistema.
AvisoAlguns erros operacionais podem indicar problemas graves no sistema que exigem intervenção administrativa.

exceção chdb.dbapi.err.ProgrammingError

Bases: DatabaseError Exceção gerada para erros de programação em operações de banco de dados. Essa exceção é gerada quando há erros de programação no uso do banco de dados pelo aplicativo, incluindo:
  • Tabela ou coluna não encontrada
  • A tabela ou o índice já existe no momento da criação
  • Erros de sintaxe SQL em instruções
  • Número incorreto de parâmetros especificados em instruções preparadas
  • Operações SQL inválidas (por exemplo, DROP em objetos inexistentes)
  • Uso incorreto de métodos da API de banco de dados
Gera Exemplos

exceção chdb.dbapi.err.StandardError

Bases: Exception Exceção relacionada a operações com o chdb. Esta é a classe base para todas as exceções relacionadas ao chdb. Ela herda da classe Exception interna do Python e serve como raiz da hierarquia de exceções para operações de banco de dados.
Esta classe de exceção segue a especificação Python DB API 2.0 para o tratamento de exceções de banco de dados.

exceção chdb.dbapi.err.Warning

Bases: StandardError Exceção gerada para avisos importantes, como truncamento de dados durante a inserção etc. Esta exceção é gerada quando a operação no banco de dados é concluída, mas com avisos importantes que devem ser levados ao conhecimento da aplicação. Cenários comuns incluem:
  • Truncamento de dados durante a inserção
  • Perda de precisão em conversões numéricas
  • Avisos de conversão de conjunto de caracteres
Isso segue a especificação da Python DB API 2.0 para exceções de aviso.

Constantes do módulo

chdb.dbapi.apilevel = '2.0'

Cria um novo objeto string a partir do objeto fornecido. Se encoding ou errors for especificado, o objeto deverá expor um buffer de dados que será decodificado usando a codificação fornecida e o manipulador de erros. Caso contrário, retorna o resultado de object._\_str_\_() (se definido) ou repr(object).
  • encoding usa ‘utf-8’ por padrão.
  • errors usa ‘strict’ por padrão.

chdb.dbapi.threadsafety = 1

Converte um número ou uma string em um inteiro, ou retorna 0 se nenhum argumento for fornecido. Se x for um número, retorna x._int_(). Para números de ponto flutuante, isso trunca em direção a zero. Se x n’ão for um número ou se base for fornecida, x deverá ser uma instância de string, bytes ou bytearray que represente um literal inteiro na base informada. O literal pode ser precedido por ‘+’ ou ‘-’ e estar cercado por espaços em branco. A base padrão é 10. As bases válidas são 0 e 2-36. Base 0 significa interpretar a base a partir da string como um literal inteiro.

chdb.dbapi.paramstyle = 'format'

Crie um novo objeto string a partir do objeto fornecido. Se encoding ou errors for especificado, o objeto deverá expor um buffer de dados que será decodificado usando a codificação fornecida e o manipulador de erros. Caso contrário, retorna o resultado de object._str_() (se definido) ou repr(object). encoding tem como padrão ‘utf-8’. errors tem como padrão ‘strict’.

Constantes de tipo

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

frozenset estendido para comparação de tipos da DB-API 2.0. Esta classe estende frozenset para dar suporte à semântica de comparação de tipos da DB-API 2.0. Ela permite uma verificação de tipos flexível, em que itens individuais podem ser comparados com o conjunto usando operadores de igualdade e desigualdade. Isso é usado para constantes de tipo como STRING, BINARY, NUMBER etc., permitindo comparações como “field_type == STRING”, em que field_type é um único valor de tipo. Exemplos

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

frozenset estendido para comparação de tipos no DB-API 2.0. Esta classe estende frozenset para dar suporte à semântica de comparação de tipos do DB-API 2.0. Ela permite uma verificação de tipos flexível, em que itens individuais podem ser comparados com o conjunto usando operadores de igualdade e de desigualdade. Isso é usado para constantes de tipo como STRING, BINARY, NUMBER etc., permitindo comparações como “field_type == STRING”, em que field_type é um único valor de tipo. Exemplos

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

frozenset estendido para comparação de tipos na DB-API 2.0. Esta classe estende frozenset para oferecer suporte à semântica de comparação de tipos da DB-API 2.0. Ela permite uma verificação de tipos flexível, em que itens individuais podem ser comparados com o conjunto usando operadores de igualdade e desigualdade. Isso é usado para constantes de tipo como STRING, BINARY, NUMBER etc., permitindo comparações como “field_type == STRING”, em que field_type é um único valor de tipo. Exemplos

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

frozenset estendido para comparação de tipos na DB-API 2.0. Esta classe estende frozenset para dar suporte à semântica de comparação de tipos da DB-API 2.0. Ela permite uma verificação de tipos mais flexível, em que itens individuais podem ser comparados com o conjunto usando operadores de igualdade e de desigualdade. Isso é usado para constantes de tipo como STRING, BINARY, NUMBER etc., permitindo comparações como “field_type == STRING”, em que field_type é um único valor de tipo. Exemplos

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

frozenset estendido para comparação de tipos da DB-API 2.0. Esta classe estende frozenset para oferecer suporte à semântica de comparação de tipos da DB-API 2.0. Ela permite uma verificação de tipos flexível, em que itens individuais podem ser comparados com o conjunto usando operadores de igualdade e de desigualdade. Isso é usado para constantes de tipo como STRING, BINARY, NUMBER etc., para permitir comparações como “field_type == STRING”, em que field_type é um único valor de tipo. Exemplos

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

frozenset estendido para comparação de tipos da DB-API 2.0. Esta classe estende frozenset para dar suporte à semântica de comparação de tipos da DB-API 2.0. Ela permite uma verificação de tipos flexível, na qual itens individuais podem ser comparados com o conjunto usando operadores de igualdade e desigualdade. Isso é usado para constantes de tipo como STRING, BINARY, NUMBER etc., permitindo comparações como “field_type == STRING”, em que field_type é um único valor de tipo. Exemplos

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

frozenset estendido para comparação de tipos na DB-API 2.0. Esta classe estende frozenset para dar suporte à semântica de comparação de tipos da DB-API 2.0. Ela permite uma verificação de tipos flexível, em que itens individuais podem ser comparados com o conjunto usando operadores de igualdade e de desigualdade. Isso é usado para constantes de tipo como STRING, BINARY, NUMBER etc., permitindo comparações como “field_type == STRING”, em que field_type é um único valor de tipo. Exemplos

chdb.dbapi.ROWID = frozenset({})

frozenset estendido para comparação de tipos da DB-API 2.0. Esta classe estende frozenset para oferecer suporte à semântica de comparação de tipos da DB-API 2.0. Ela permite uma verificação de tipos flexível, na qual itens individuais podem ser comparados com o conjunto usando operadores de igualdade e desigualdade. Isso é usado para constantes de tipo como STRING, BINARY, NUMBER etc., permitindo comparações como “field_type == STRING”, em que field_type é um único valor de tipo. Exemplos
Exemplos de uso Exemplo de consulta básica:
Trabalhando com dados:
Gerenciamento de conexões:
Melhores práticas
  1. Gerenciamento de conexões: Sempre feche conexões e cursores ao concluir
  2. Gerenciadores de contexto: Use instruções with para limpeza automática
  3. Processamento em lote: Use fetchmany() para grandes conjuntos de resultados
  4. Tratamento de erros: Envolva operações de banco de dados em blocos try-except
  5. Vinculação de parâmetros: Use consultas parametrizadas sempre que possível
  6. Gerenciamento de memória: Evite fetchall() para conjuntos de dados muito grandes
  • A interface DB-API 2.0 do chDB é compatível com a maioria das ferramentas de banco de dados para Python
  • A interface oferece segurança de thread de Nível 1 (threads podem compartilhar módulos, mas não conexões)
  • As strings de conexão oferecem suporte aos mesmos parâmetros que as sessões do chDB
  • Todas as exceções padrão da DB-API 2.0 são suportadas
Aviso
  • Sempre feche cursores e conexões para evitar vazamentos de recursos
  • Grandes conjuntos de resultados devem ser processados em lotes
  • A sintaxe de vinculação de parâmetros segue o estilo de formato: %s

Funções Definidas pelo Usuário (UDF)

Módulo de funções definidas pelo usuário para o chDB. Este módulo fornece recursos para criar e gerenciar Funções Definidas pelo Usuário (UDFs) no chDB. Ele permite estender os recursos do chDB por meio da escrita de funções Python personalizadas que podem ser chamadas em consultas SQL.

chdb.udf.chdb_udf

Decorador para UDFs (funções definidas pelo usuário) em Python do chDB. Sintaxe
Parâmetros Observações
  1. A função deve ser sem estado. Apenas UDFs são compatíveis, não UDAFs.
  2. O tipo de retorno padrão é String. O tipo de retorno deve ser um dos tipos de dados do ClickHouse.
  3. A função deve aceitar argumentos do tipo String. Todos os argumentos são strings.
  4. A função será chamada para cada linha de entrada.
  5. A função deve ser uma função Python pura. Importe todos os módulos usados NA FUNÇÃO.
  6. O interpretador Python usado é o mesmo utilizado para executar o script.
Exemplo

chdb.udf.generate_udf

Gera arquivos de configuração de UDF e scripts executáveis. Esta função cria os arquivos necessários para uma função definida pelo usuário (UDF) no chDB:
  1. Um script executável em Python que processa os dados de entrada
  2. Um arquivo de configuração XML que registra a UDF no ClickHouse
Sintaxe
Parâmetros
Esta função normalmente é chamada pelo decorador @chdb_udf e não deve ser invocada diretamente pelos usuários.

Utilitários

Funções utilitárias e auxiliares do chDB. Este módulo contém várias funções utilitárias para trabalhar com o chDB, incluindo inferência de tipos de dados, auxiliares de conversão de dados e utilitários de depuração.

chdb.utils.convert_to_columnar

Converte uma lista de dicionários para o formato colunar. Esta função recebe uma lista de dicionários e a converte em um dicionário no qual cada chave corresponde a uma coluna e cada valor é uma lista de valores dessa coluna. Valores ausentes nos dicionários são representados como None. Sintaxe
Parâmetros Retorna Exemplo

chdb.utils.flatten_dict

Achata um dicionário aninhado. Esta função recebe um dicionário aninhado e o transforma em uma estrutura plana, concatenando as chaves aninhadas com um separador. Listas de dicionários são serializadas como strings JSON. Sintaxe
Parâmetros Retorno Exemplo

chdb.utils.infer_data_type

Infere o tipo de dado mais adequado para uma lista de valores. Esta função analisa uma lista de valores e determina o tipo de dado mais apropriado para representar todos os valores da lista. Ela considera tipos inteiros, inteiros sem sinal, decimais e de ponto flutuante, e usa “string” por padrão se os valores não puderem ser representados por nenhum tipo numérico ou se todos os valores forem None. Sintaxe
Parâmetros Retorna
  • Se todos os valores da lista forem None, a função retorna “string”.
  • Se algum valor da lista for uma string, a função retorna imediatamente “string”.
  • A função assume que valores numéricos podem ser representados como inteiros, decimais ou números de ponto flutuante com base em seu intervalo e precisão.

chdb.utils.infer_data_types

Infere os tipos de dados de cada coluna em uma estrutura de dados colunar. Esta função analisa os valores de cada coluna e infere o tipo de dado mais adequado para cada uma, com base em uma amostra dos dados. Sintaxe
Parâmetros Retorna

Classes Abstratas Base

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

Bases: ABC

abstractmethod read

Lê um número especificado de linhas das colunas fornecidas e retorna uma lista de objetos, em que cada objeto é uma sequência de valores de uma coluna.
Parâmetros Retorno

class chdb.rwabc.PyWriter

Bases: ABC

abstractmethod finalize

Monta e retorna os dados finais a partir dos blocos. Deve ser implementado por subclasses.
Retorno

abstractmethod write

Salva colunas de dados em blocos. Deve ser implementado pelas subclasses.
Parâmetros

Tratamento de exceções

class chdb.ChdbError

Bases: Exception Classe base de exceção para erros relacionados ao chDB. Essa exceção é gerada quando a execução de uma consulta no chDB falha ou encontra um erro. Ela herda da classe Exception padrão do Python e fornece informações de erro do mecanismo subjacente do ClickHouse. A mensagem da exceção normalmente contém informações detalhadas sobre o erro do ClickHouse, incluindo erros de sintaxe, incompatibilidades de tipo, ausência de tabelas/colunas e outros problemas na execução de consultas. Variáveis Exemplos
Esta exceção é gerada automaticamente por chdb.query() e funções relacionadas quando o mecanismo do ClickHouse subjacente reporta um erro. Você deve capturar essa exceção ao lidar com consultas que possam falhar para fornecer o tratamento de erro adequado no seu aplicativo.

Informações sobre a versão

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

Sequência imutável embutida. Se nenhum argumento for fornecido, o construtor retornará uma tupla vazia. Se iterable for especificado, a tupla será inicializada a partir dos itens de iterable. Se o argumento for uma tupla, o valor retornado será o mesmo objeto.

chdb.engine_version = '25.5.2.1'

Cria um novo objeto string a partir do objeto fornecido. Se encoding ou errors forem especificados, o objeto deverá expor um buffer de dados que será decodificado usando o encoding e o tratador de erros informados. Caso contrário, retorna o resultado de object._str_() (se definido) ou repr(object).
  • encoding usa ‘utf-8’ por padrão.
  • errors usa ‘strict’ por padrão.

chdb.__version__ = '3.6.0'

Crie um novo objeto do tipo string a partir do objeto fornecido. Se encoding ou errors forem especificados, o objeto deverá expor um buffer de dados que será decodificado usando a codificação fornecida e o manipulador de erros indicado. Caso contrário, retorna o resultado de object._str_() (se definido) ou repr(object).
  • encoding usa ‘utf-8’ por padrão.
  • errors usa ‘strict’ por padrão.
Última modificação em 19 de junho de 2026