O ClickHouse oferece suporte à integração com vários catálogos (Unity, Glue, Polaris etc.). Este guia mostrará as etapas para consultar os dados gerenciados pelo Databricks usando o ClickHouse e o Unity Catalog.
O Databricks oferece suporte a vários formatos de dados para seu lakehouse. Com o ClickHouse, você pode consultar tabelas do Unity Catalog tanto no formato Delta quanto Iceberg.
Como este recurso é experimental, você precisará habilitá-lo usando:
SET allow_experimental_database_unity_catalog = 1;
Configurando o Unity Catalog no Databricks
Para permitir que o ClickHouse interaja com o Unity Catalog, você precisa garantir que o Unity Catalog esteja configurado para permitir a interação com um leitor externo. Isso pode ser feito seguindo o guia “Enable external data access to Unity Catalog”.
Depois que o catálogo estiver configurado, você deverá gerar credenciais para o ClickHouse. Dois métodos diferentes podem ser usados, dependendo do modo de interação com o Unity:
-
Para clientes Iceberg, use autenticação como service principal.
-
Para clientes Delta, use um Token de Acesso Pessoal (PAT).
Permissões obrigatórias do token PAT
Ao usar um PAT para acesso somente leitura, o token precisa ter permissões que permitam ao ClickHouse listar e ler os metadados do Unity Catalog. Certifique-se de que o PAT tenha pelo menos o privilégio EXTERNAL USE SCHEMA, além da permissão SELECT na tabela, USE CATALOG no catálogo pai e USE SCHEMA no schema pai.
Criando uma conexão entre Unity Catalog e ClickHouse
Com o Unity Catalog configurado e a autenticação em vigor, estabeleça uma conexão entre o ClickHouse e o Unity Catalog.
Para acessar tabelas Iceberg gerenciadas:
Agora que a conexão está estabelecida, você já pode começar a fazer consultas por meio do Unity Catalog. Por exemplo:
Para consultar uma tabela:
Backticks obrigatóriosOs backticks são obrigatórios porque o ClickHouse não oferece suporte a mais de um espaço de nomes.
Para inspecionar o DDL da tabela:
Carregando dados do seu lago de dados para o ClickHouse
Se você precisar carregar dados do Databricks para o ClickHouse, comece criando uma tabela local no ClickHouse:
Em seguida, carregue os dados da sua tabela no Unity Catalog por meio de um INSERT INTO SELECT: