Função de tabela file
SELECT em arquivos e INSERT neles, semelhante à função de tabela s3. Use file ao trabalhar com arquivos locais e s3 ao trabalhar com buckets em armazenamento de objetos, como S3, GCS ou MinIO.
A função file pode ser usada em consultas SELECT e INSERT para ler arquivos ou gravar neles.
Sintaxe
SELECT, path também pode ser uma expressão que retorna um Array(String):
Argumentos
Valor retornado
Exemplos de gravação em um arquivo
Gravar em um arquivo TSV
test.tsv:
Gravação particionada em vários arquivos TSV
PARTITION BY ao inserir dados em uma função de tabela do tipo file, será criado um arquivo separado para cada partição. Dividir os dados em arquivos separados ajuda a melhorar o desempenho das operações de leitura.
test_1.tsv, test_2.tsv e test_3.tsv.
Exemplos de leitura a partir de um arquivo
SELECT a partir de um arquivo CSV
user_files_path na configuração do servidor e prepare um arquivo test.csv:
test.csv para uma tabela e selecione as duas primeiras linhas:
Inserindo dados de um arquivo em uma tabela
table.csv, contido em archive1.zip e/ou archive2.zip:
Globs no path
* será adicionado implicitamente ao path para que
todos os arquivos do diretório sejam selecionados.
*— Representa uma quantidade arbitrária de caracteres, exceto/, incluindo a string vazia.?— Representa um único caractere arbitrário.{some_string,another_string,yet_another_one}— Substitui qualquer uma das strings'some_string', 'another_string', 'yet_another_one'. As strings podem conter o símbolo/.{N..M}— Representa qualquer número>= Ne<= M.**- Representa todos os arquivos dentro de uma pasta, recursivamente.
{} são semelhantes às funções de tabela remote e hdfs.
Exemplos
some_dir/some_file_1some_dir/some_file_2some_dir/some_file_3another_dir/some_file_1another_dir/some_file_2another_dir/some_file_3
some_dir usando o curinga * implícito:
Se sua lista de arquivos contiver intervalos numéricos com zeros à esquerda, use a construção com chaves para cada dígito separadamente ou use
?.file000, file001, … , file999:
big_dir/, de forma recursiva:
file002 em qualquer pasta do diretório big_dir/, recursivamente:
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 do arquivo for desconhecido, o valor seráNULL._time— Data e hora da última modificação do arquivo. Tipo:Nullable(DateTime). Se a data e hora forem desconhecidas, o valor seráNULL.
configuração use_hive_partitioning
use_hive_partitioning é definida como 1, o ClickHouse detecta o particionamento no estilo Hive no caminho (/name=value/) e permite usar colunas de partição como colunas virtuais na consulta. Essas colunas virtuais terão os mesmos nomes definidos no caminho particionado.
Exemplo
Use a coluna virtual criada com o particionamento no estilo Hive