Introdução
- A interface principal é o objeto
Clientno pacoteclickhouse_connect.driver. Esse pacote principal também inclui várias classes auxiliares e funções utilitárias usadas para se comunicar com o servidor ClickHouse, além de implementações de contexto para o gerenciamento avançado de consultas de inserção e seleção. - O pacote
clickhouse_connect.datatypesfornece uma implementação base e subclasses para todos os tipos de dados não experimentais do ClickHouse. Sua funcionalidade principal é a serialização e desserialização de dados do ClickHouse no formato colunar binário “Native” do ClickHouse, usado para garantir o transporte mais eficiente entre o ClickHouse e as aplicações cliente. - As classes Cython/C no pacote
clickhouse_connect.cdriverotimizam algumas das serializações e desserializações mais comuns, proporcionando um desempenho significativamente melhor em comparação com Python puro. - Há um dialeto SQLAlchemy no pacote
clickhouse_connect.cc_sqlalchemy, baseado nos pacotesdatatypesedbi. Essa implementação oferece suporte à funcionalidade Core do SQLAlchemy, incluindo consultasSELECTcomJOINs (INNER,LEFT OUTER,FULL OUTER,CROSS), cláusulasWHERE,ORDER BY,LIMIT/OFFSET, operaçõesDISTINCT, instruções lightweightDELETEcom condiçõesWHERE, introspecção de tabelas e operações DDL básicas (CREATE TABLE,CREATE/DROP DATABASE). Embora não ofereça suporte a recursos avançados de ORM nem a recursos avançados de DDL, ela fornece recursos robustos de consulta adequados para a maioria das cargas de trabalho analíticas no banco de dados ClickHouse voltado para OLAP. - O driver principal e a implementação ClickHouse Connect SQLAlchemy são o método preferido para conectar o ClickHouse ao Apache Superset. Use a conexão de banco de dados
ClickHouse Connectou a string de conexão do dialeto SQLAlchemyclickhousedb.
O driver Python oficial ClickHouse Connect usa o protocolo HTTP para se comunicar com o servidor ClickHouse. Isso permite suporte a balanceadores de carga HTTP e funciona bem em ambientes corporativos com firewalls e proxies, mas oferece compressão e desempenho ligeiramente inferiores em comparação com o protocolo nativo baseado em TCP, além de não oferecer suporte a alguns recursos avançados, como cancelamento de consultas. Para alguns casos de uso, você pode considerar usar um dos drivers Python da comunidade que usam o protocolo nativo baseado em TCP.
Requisitos e compatibilidade
¹O ClickHouse Connect foi testado explicitamente nas plataformas listadas. Além disso, wheels binários não testados (com otimização em C) são gerados para todas as arquiteturas compatíveis com o excelente projeto
cibuildwheel. Por fim, como o ClickHouse Connect também pode ser executado como Python puro, a instalação a partir do código-fonte deve funcionar em qualquer instalação recente do Python.
²O suporte ao SQLAlchemy é limitado às funcionalidades do Core (consultas, DDL básico). Recursos de ORM não são compatíveis. Consulte a documentação de SQLAlchemy Integration Support para mais detalhes.
³O ClickHouse Connect geralmente funciona bem com versões fora do intervalo oficialmente suportado.
Instalação
pip install clickhouse-connect
O ClickHouse Connect também pode ser instalado a partir do código-fonte:
- faça
git clonedo repositório no GitHub. - (Opcional) execute
pip install cythonpara compilar e habilitar as otimizações em C/Cython - vá para o diretório raiz do projeto com
cde executepip install .
Política de suporte
Uso básico
Obtenha os detalhes da conexão
Os detalhes do seu serviço do ClickHouse Cloud estão disponíveis no console do ClickHouse Cloud.
Selecione um serviço e clique em Connect:
Escolha HTTPS. Os detalhes de conexão são exibidos em um comando
curl de exemplo.
Se você estiver usando ClickHouse autogerenciado, os detalhes de conexão são definidos pelo administrador do seu ClickHouse.
Estabeleça uma conexão
- Conectar-se a um servidor ClickHouse em localhost.
- Conectar-se a um serviço do ClickHouse Cloud.
Use uma instância do cliente ClickHouse Connect para se conectar a um servidor ClickHouse no localhost:
Use uma instância do cliente ClickHouse Connect para se conectar a um serviço do ClickHouse Cloud:
Interaja com seu banco de dados
command do cliente:
insert do cliente com um array bidimensional de linhas e valores:
query do cliente: