Este mecanismo fornece integração com tabelas Delta Lake existentes no S3 e nos armazenamentos do GCP e do Azure, com suporte tanto a leituras quanto a gravações (a partir da v25.10).
Criar uma tabela DeltaLake
Para criar uma tabela DeltaLake, ela já deve existir no armazenamento S3, GCP ou Azure. Os comandos abaixo não aceitam parâmetros DDL para criar uma nova tabela.
Sintaxe
CREATE TABLE table_name
ENGINE = DeltaLake(url, [aws_access_key_id, aws_secret_access_key,] [extra_credentials])Parâmetros do mecanismo
url— URL do bucket com o caminho para a tabela Delta Lake existente.aws_access_key_id,aws_secret_access_key- Credenciais de longo prazo para o usuário da conta AWS. Você pode usá-las para autenticar suas solicitações. O parâmetro é opcional. Se as credenciais não forem especificadas, elas serão obtidas do arquivo de configuração.extra_credentials- Opcional. Usado para informar umrole_arnpara acesso baseado em função no ClickHouse Cloud. Consulte Secure S3 para ver as etapas de configuração.
Os parâmetros do mecanismo podem ser especificados usando coleções nomeadas.
Exemplo
CREATE TABLE deltalake
ENGINE = DeltaLake('http://mars-doc-test.s3.amazonaws.com/clickhouse-bucket-3/test_table/', 'ABC123', 'Abc+123')Usando coleções nomeadas:
<clickhouse>
<named_collections>
<deltalake_conf>
<url>http://mars-doc-test.s3.amazonaws.com/clickhouse-bucket-3/</url>
<access_key_id>ABC123</access_key_id>
<secret_access_key>Abc+123</secret_access_key>
</deltalake_conf>
</named_collections>
</clickhouse>CREATE TABLE deltalake
ENGINE = DeltaLake(deltalake_conf, filename = 'test_table')Sintaxe
-- Usando URL HTTPS (recomendado)
CREATE TABLE table_name
ENGINE = DeltaLake('https://storage.googleapis.com/<bucket>/<path>/', '<access_key_id>', '<secret_access_key>')Argumentos
url— URL do bucket do GCS para a tabela Delta Lake. Deve usar o formatohttps://storage.googleapis.com/<bucket>/<path>/(o endpoint da API XML do GCS) ougs://<bucket>/<path>/, que é convertido automaticamente.access_key_id— Chave de acesso do GCS. Crie-a em Google Cloud Console → Cloud Storage → Settings → Interoperability.secret_access_key— Segredo do GCS.
Coleções nomeadas
Você também pode usar coleções nomeadas. Por exemplo:
CREATE NAMED COLLECTION gcs_creds AS
access_key_id = '<access_key>',
secret_access_key = '<secret>';
CREATE TABLE gcpDeltaLake
ENGINE = DeltaLake(gcs_creds, url = 'https://storage.googleapis.com/<bucket>/<path>')Sintaxe
CREATE TABLE table_name
ENGINE = DeltaLake(connection_string|storage_account_url, container_name, blobpath, [account_name, account_key, format, compression])Argumentos
connection_string— string de conexão do Azurestorage_account_url— URL da conta de armazenamento do Azure (por exemplo, https://account.blob.core.windows.net)container_name— nome do contêiner do Azureblobpath— caminho para a tabela Delta Lake dentro do contêineraccount_name— nome da conta de armazenamento do Azureaccount_key— chave da conta de armazenamento do Azure
Grave dados usando uma tabela DeltaLake
Depois de criar uma tabela usando o motor de tabela DeltaLake, você pode inserir dados nela com:
SET allow_delta_lake_writes = 1;
INSERT INTO deltalake(id, firstname, lastname, gender, age)
VALUES (1, 'John', 'Smith', 'M', 32);As gravações no Delta Lake são um recurso Beta desabilitado por padrão e devem ser habilitadas com SET allow_delta_lake_writes = 1; (disponível a partir da versão 26.7; em versões anteriores, use SET allow_experimental_delta_lake_writes = 1;).
Cache de dados
O motor de tabela e a função de tabela DeltaLake são compatíveis com cache de dados, assim como os armazenamentos S3, AzureBlobStorage e HDFS. Consulte "motor de tabela S3" para mais detalhes.