TabSeparated, Native, etc.).
Cenários de uso:
- Exportação de dados do ClickHouse para arquivo.
- Conversão de dados de um formato para outro.
- Atualização de dados no ClickHouse por meio da edição de um arquivo no disco.
No momento, este motor não está disponível no ClickHouse Cloud. Em vez disso, use a função de tabela S3.
Uso no Servidor ClickHouse
Format especifica um dos formatos de arquivo disponíveis. Para executar
consultas SELECT, o formato deve ter suporte para entrada e, para executar
consultas INSERT – para saída. Os formatos disponíveis estão listados na seção
Formatos.
O ClickHouse não permite especificar um caminho no sistema de arquivos para File. Ele usará a pasta definida pela configuração path na configuração do servidor.
Ao criar uma tabela usando File(Format), ele cria um subdiretório vazio nessa pasta. Quando os dados são gravados nessa tabela, eles são colocados no arquivo data.Format dentro desse subdiretório.
Você pode criar manualmente esse subdiretório e arquivo no sistema de arquivos do servidor e então usar ATTACH para associá-lo às informações da tabela com o nome correspondente, para que seja possível consultar os dados desse arquivo.
Tenha cuidado com essa funcionalidade, porque o ClickHouse não acompanha alterações externas nesses arquivos. O resultado de gravações simultâneas via ClickHouse e fora do ClickHouse é indefinido.
Exemplo
file_engine_table:
/var/lib/clickhouse/data/default/file_engine_table.
2. Crie manualmente o arquivo /var/lib/clickhouse/data/default/file_engine_table/data.TabSeparated com o seguinte conteúdo:
Uso no ClickHouse-local
Format. Os fluxos padrão de entrada/saída podem ser especificados usando nomes numéricos ou legíveis por pessoas, como 0 ou stdin, 1 ou stdout. É possível ler e gravar arquivos comprimidos com base em um parâmetro adicional do motor ou na extensão do arquivo (gz, br ou xz).
Exemplo:
Detalhes da implementação
- Várias consultas
SELECTpodem ser executadas concorrentemente, mas as consultasINSERTaguardam umas às outras. - Há suporte para criar um novo arquivo por meio de uma consulta
INSERT. - Se o arquivo existir,
INSERTacrescentará novos valores ao arquivo. - Não há suporte para:
ALTERSELECT ... SAMPLE- Índices
- Replicação
PARTITION BY
PARTITION BY — Opcional. É possível criar arquivos separados particionando os dados com base em uma chave de partição. Na maioria dos casos, você não precisa de uma chave de partição e, mesmo quando ela é necessária, em geral não precisa ser mais granular do que por mês. O particionamento não acelera as 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 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 seguem o formato "YYYYMM".
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— Horário da última modificação do arquivo. Tipo:Nullable(DateTime). Se o horário for desconhecido, o valor éNULL.
Configurações
- engine_file_empty_if_not_exists - permite selecionar dados vazios de um arquivo inexistente. Desativado por padrão.
- engine_file_truncate_on_insert - permite truncar o arquivo antes de inserir dados nele. Desativado por padrão.
- engine_file_allow_create_multiple_files - permite criar um novo arquivo a cada inserção se o format tiver sufixo. Desativado por padrão.
- engine_file_skip_empty_files - permite ignorar arquivos vazios durante a leitura. Desativado por padrão.
- storage_file_read_method - método de leitura de dados do arquivo de armazenamento, um dos seguintes:
read,pread,mmap. O método mmap não se aplica ao clickhouse-server (ele se destina ao clickhouse-local). Valor padrão:preadpara clickhouse-server,mmappara clickhouse-local.