Saltar para o conteúdo principal
Versão 3.0.0

Integrações — ClickHouse

Esta página concentra as integrações do tdp-clickhouse com S3/MinIO e com outras ferramentas do ecossistema TDP.

Aspectos de senhas, LDAP e controle de acesso ficam em Segurança — ClickHouse.

Visão geral das integrações

S3 / MinIO

O chart suporta dois níveis diferentes de integração com S3:

  1. Integração do chart com bucket e Secret via TDPConfigurations.s3Connection
  2. Política de armazenamento do próprio ClickHouse via tdp-clickhouse.clickhouse.extraConfig

Esses dois níveis são complementares: o primeiro ajuda a preparar bucket e Secret; o segundo ensina o ClickHouse a usar S3 como disco de armazenamento.

Bucket e Secret via TDPConfigurations.s3Connection

Quando s3Connection.enabled: true, o chart executa um Job que:

  • tenta criar o bucket, se ainda não existir;
  • gera o Secret tdp-clickhouse-s3-connection com as credenciais configuradas.
TDPConfigurations:
s3Connection:
enabled: true
bucket: "<s3-bucket-name>"
accessKey: "<s3-access-key>"
secretKey: "<s3-secret-key>"
uri: "https://<s3-endpoint>"
selfSigned: false
Credenciais

Armazene accessKey e secretKey em um arquivo de valores separado, fora do Git, ou em um Secret Kubernetes já existente. Nunca os inclua diretamente no repositório.

Política de armazenamento S3 no ClickHouse

Se quiser que o ClickHouse armazene dados em S3/MinIO, adicione a configuração XML em tdp-clickhouse.clickhouse.extraConfig.

tdp-clickhouse:
clickhouse:
extraConfig: |
<yandex>
<storage_configuration>
<disks>
<default>
<keep_free_space_bytes>1073741824</keep_free_space_bytes>
</default>
<s3>
<type>s3</type>
<endpoint>https://<s3-endpoint>/<s3-bucket-name>/</endpoint>
<access_key_id><S3_ACCESS_KEY></access_key_id>
<secret_access_key><S3_SECRET_KEY></secret_access_key>
<use_https>1</use_https>
<skip_hostname_verification_for_https>1</skip_hostname_verification_for_https>
<bucket><s3-bucket-name></bucket>
<path>data/</path>
<use_environment_credentials>false</use_environment_credentials>
<path_style>true</path_style>
</s3>
</disks>
<policies>
<default>
<volumes>
<main>
<disk>default</disk>
</main>
</volumes>
</default>
<s3>
<volumes>
<main>
<disk>s3</disk>
</main>
</volumes>
</s3>
</policies>
</storage_configuration>
<openSSL>
<client>
<loadDefaultCAFile>false</loadDefaultCAFile>
<verificationMode>none</verificationMode>
<invalidCertificateHandler>
<name>AcceptCertificateHandler</name>
</invalidCertificateHandler>
</client>
</openSSL>
</yandex>

Depois de aplicar essa política, é possível criar tabelas usando storage_policy = 's3':

CREATE TABLE minha_tabela (id UInt64, valor String)
ENGINE = MergeTree()
ORDER BY id
SETTINGS storage_policy = 's3';
TLS e certificados

No exemplo acima, verificationMode: none e AcceptCertificateHandler devem ser tratados como exemplo para ambientes controlados. Em produção, prefira validação TLS adequada sempre que o endpoint S3 suportar certificados confiáveis.

Parâmetros S3 principais

ParâmetroDescriçãoPadrão
TDPConfigurations.s3Connection.enabledAtivar integração S3false
TDPConfigurations.s3Connection.bucketNome do bucket
TDPConfigurations.s3Connection.accessKeyChave de acesso
TDPConfigurations.s3Connection.secretKeyChave secreta
TDPConfigurations.s3Connection.uriEndpoint S3
TDPConfigurations.s3Connection.selfSignedAceitar certificado autoassinadofalse

Consistência entre Job S3 e extraConfig

Se você usar os dois mecanismos ao mesmo tempo, mantenha coerentes os seguintes valores:

  • bucket
  • endpoint
  • access key
  • secret key
  • política de TLS/certificados

Isso evita situações em que o bucket é criado com um endpoint, mas o ClickHouse tenta escrever noutro endpoint diferente.

Outras integrações do ecossistema

CloudBeaver

O CloudBeaver pode apontar para o ClickHouse como datasource. A configuração é feita no chart tdp-cloudbeaver — consulte Integrações — CloudBeaver.

Superset

O Superset pode consultar o ClickHouse via driver SQLAlchemy. A configuração é feita no chart tdp-superset — consulte Integrações — Superset.

Trino

O Trino pode consumir dados do ClickHouse via conector próprio. A configuração é feita no chart tdp-trino — consulte Integrações — Trino.

Combinando arquivos de valores

Terminal input
helm upgrade --install <release> \
oci://registry.tecnisys.com.br/tdp/charts/tdp-clickhouse \
-n <namespace> \
-f meu-values.yaml \
-f values-integracao.yaml