CREATE TABLE
Parâmetros do mecanismo
endpoint— URL do endpoint do AzureBlobStorage com contêiner e prefixo. Opcionalmente, pode conteraccount_namese o método de autenticação usado exigir isso. (http://azurite1:{port}/[account_name]{container_name}/{data_prefix}) ou esses parâmetros podem ser fornecidos separadamente usandostorage_account_url,account_nameecontainer. Para especificar o prefixo,endpointdeve ser usado.endpoint_contains_account_name- Este sinalizador é usado para especificar seendpointcontémaccount_name, já que isso só é necessário para determinados métodos de autenticação. (Padrão: true)connection_string|storage_account_url—connection_stringinclui nome da conta e chave (Criar string de conexão) ou você também pode fornecer aqui a URL da conta de armazenamento e o nome da conta e a chave da conta como parâmetros separados (consulte os parâmetrosaccount_nameeaccount_key)container_name- Nome do contêinerblobpath- caminho do arquivo. Suporta os seguintes curingas no modoreadonly:*,**,?,{abc,def}e{N..M}, em queN,M— números,'abc','def'— strings.account_name- sestorage_account_urlfor usado, o nome da conta pode ser especificado aquiaccount_key- sestorage_account_urlfor usado, a chave da conta pode ser especificada aquiformat— O formato do arquivo.compression— Valores compatíveis:none,gzip/gz,brotli/br,xz/LZMA,zstd/zst. Por padrão, a compressão será detectada automaticamente pela extensão do arquivo. (equivale a definir comoauto).partition_strategy– Opções:WILDCARDouHIVE.WILDCARDexige um{_partition_id}no caminho, que é substituído pela chave de partição.HIVEnão permite curingas, pressupõe que o caminho seja a raiz da tabela e gera diretórios particionados no estilo Hive com Snowflake IDs como nomes de arquivo e o formato do arquivo como extensão. O padrão éWILDCARDpartition_columns_in_data_file- Usado apenas com a estratégia de particionamentoHIVE. Informa ao ClickHouse se deve esperar que as colunas de partição sejam gravadas no arquivo de dados. O padrão éfalse.extra_credentials- Useclient_idetenant_idpara autenticação. Seextra_credentialsforem fornecidas, elas terão prioridade sobreaccount_nameeaccount_key.
http://localhost:10000 por http://azurite1:10000 nos comandos abaixo, em que assumimos que o Azurite está disponível no host azurite1.
Colunas virtuais
_path— Caminho do arquivo. Tipo:LowCardinality(String)._file— Nome do arquivo. Tipo:LowCardinality(String)._size— Tamanho do arquivo em bytes. Tipo:Nullable(UInt64). Se o tamanho for desconhecido, o valor éNULL._time— Data e hora da última modificação do arquivo. Tipo:Nullable(DateTime). Se a data e hora forem desconhecidas, o valor éNULL.
Autenticação
Managed Identity- Pode ser usada ao fornecer umendpoint,connection_stringoustorage_account_url.SAS Token- Pode ser usado ao fornecer umendpoint,connection_stringoustorage_account_url. Ele é identificado pela presença de?na URL. Consulte azureBlobStorage para ver exemplos.Workload Identity- Pode ser usada ao fornecer umendpointoustorage_account_url. Se o parâmetrouse_workload_identityestiver definido na configuração, a Workload Identity será usada para autenticação.
Cache de dados
Azure oferece suporte ao cache de dados em disco local.
Consulte as opções de configuração e o uso do cache do sistema de arquivos nesta seção.
O cache é feito com base no caminho e no ETag do objeto de armazenamento, portanto o ClickHouse não lerá uma versão desatualizada do cache.
Para habilitar o cache, use a configuração filesystem_cache_name = '<name>' e enable_filesystem_cache = 1.
- adicione a seção a seguir ao arquivo de configuração do ClickHouse:
- reutilize a configuração de cache (e, portanto, o armazenamento em cache) da seção
storage_configurationdo ClickHouse, descrita aqui
PARTITION BY
PARTITION BY — Opcional. Na maioria dos casos, você não precisa de uma chave de partição e, quando ela é necessária, em geral não precisa ser mais granular do que mensal. O particionamento não acelera consultas (ao contrário da expressão ORDER BY). Você nunca deve usar um particionamento granular demais. Não particione seus dados por identificadores ou nomes de clientes (em vez disso, use o identificador ou o nome do cliente como a primeira coluna na expressão ORDER BY).
Para particionar por mês, use a expressão toYYYYMM(date_column), em que date_column é uma coluna com uma data do tipo Date. Os nomes das partições aqui têm o formato "YYYYMM".
Estratégia de particionamento
WILDCARD (padrão): substitui o caractere curinga {_partition_id} no caminho do arquivo pela chave de partição real. A leitura não é suportada.
HIVE implementa o particionamento no estilo Hive para leituras & gravações. A leitura é implementada com um padrão glob recursivo. A gravação gera arquivos no seguinte formato: <prefix>/<key1=val1/key2=val2...>/<snowflakeid>.<toLower(file_format)>.
Observação: ao usar a estratégia de particionamento HIVE, a configuração use_hive_partitioning não tem efeito.
Exemplo de estratégia de particionamento HIVE: