Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Catálogo de runtime do lakehouse (BigLake Metastore)

Recurso beta

O ClickHouse oferece suporte à integração com vários catálogos (Unity, Glue, Polaris etc.). Este guia mostra as etapas para consultar suas tabelas Iceberg no catálogo de runtime do lakehouse, também conhecido como BigLake Metastore usando o ClickHouse.

Pré-requisitos

Antes de criar uma conexão do ClickHouse com o catálogo de runtime do lakehouse (BigLake Metastore), certifique-se de ter:

  • Um projeto do Google Cloud com o catálogo de runtime do lakehouse ativado
  • Credenciais padrão do aplicativo (ID do cliente OAuth e segredo do cliente) para um aplicativo, criadas por meio do Google Cloud Console
  • Um token de refresh obtido ao concluir o fluxo OAuth com os escopos apropriados (por exemplo, https://www.googleapis.com/auth/bigquery e o escopo de armazenamento do GCS)
  • Um caminho de warehouse: um GCS bucket (e um prefixo opcional) onde suas tabelas estão armazenadas, por exemplo, gs://your-bucket ou gs://your-bucket/prefix

Criando uma conexão entre o catálogo de runtime do lakehouse e o ClickHouse

Com as credenciais OAuth configuradas, crie um banco de dados no ClickHouse usando o motor de banco de dados DataLakeCatalog:

SET allow_database_iceberg = 1;

CREATE DATABASE lakehouse_runtime_catalog
ENGINE = DataLakeCatalog('https://biglake.googleapis.com/iceberg/v1/restcatalog')
SETTINGS
    catalog_type = 'biglake',
    google_adc_client_id = '<client-id>',
    google_adc_client_secret = '<client-secret>',
    google_adc_refresh_token = '<refresh-token>',
    google_adc_quota_project_id = '<gcp-project-id>',
    warehouse = 'gs://<bucket_name>/<optional-prefix>';

Consultando tabelas do catálogo de runtime do Lakehouse usando o ClickHouse

Depois que a conexão for criada, você poderá consultar as tabelas registradas no catálogo de runtime do Lakehouse.

USE LAKEHOUSE_RUNTIME_CATALOG;

SHOW TABLES;

Saída de exemplo:

┌─name──────────────────────────────────────┐
│lakehouse_runtime_catalog.my_iceberg_table │   
└───────────────────────────────────────────┘
SELECT count(*) FROM `lakehouse_runtime_catalog.my_iceberg_table`;

Para inspecionar a definição da tabela:

SHOW CREATE TABLE `lakehouse_runtime_catalog.my_iceberg_table`;

Carregando dados do Lakehouse para o ClickHouse

Para carregar dados de uma tabela no catálogo de runtime do Lakehouse para uma tabela local no ClickHouse e acelerar consultas recorrentes, crie uma tabela MergeTree e insira os dados a partir do catálogo:

CREATE TABLE clickhouse_table
(
    `id` Int64,
    `event_time` DateTime64(3),
    `user_id` String,
    `payload` String
)
ENGINE = MergeTree
ORDER BY (event_time, id);

INSERT INTO local_events
SELECT * FROM lakehouse_runtime_catalog.`icebench.my_iceberg_table`;

Após a carga inicial, consulte clickhouse_table para ter menor latência. Execute novamente INSERT INTO ... SELECT para atualizar os dados do BigLake quando necessário.

Navigation