Descrição
O formatoSQLite lê e grava arquivos de banco de dados SQLite.
Na saída, o ClickHouse grava o resultado da consulta em uma única tabela do banco de dados SQLite. Na entrada, o ClickHouse lê uma única tabela do banco de dados SQLite.
No caso de arquivos regulares locais, o ClickHouse abre o arquivo de banco de dados SQLite diretamente. Para os demais streams de entrada e de saída, o ClickHouse materializa o banco de dados SQLite em memória.
Na entrada, o ClickHouse lê, por padrão, a primeira tabela do banco de dados SQLite. É possível alterar esse comportamento com a configuração input_format_sqlite_table_name. Na saída, o nome de tabela padrão é table, que pode ser alterado com a configuração output_format_sqlite_table_name.
Exemplo de uso
Correspondência de tipos de dados
Quando o ClickHouse grava dados no formatoSQLite, ele cria uma tabela SQLite com os seguintes tipos declarados:
Em colunas
Float32 e Float64, valores diferentes de NaN são gravados com as classes de armazenamento nativas do SQLite, enquanto valores NaN são gravados com a serialização de texto do ClickHouse. Valores Bool e valores inteiros comuns também são gravados com as classes de armazenamento nativas do SQLite. Inteiros largos e tipos complexos são gravados com a serialização de texto do ClickHouse. Valores NULL são gravados como NULL do SQLite.
Ao inferir um schema a partir de uma entrada SQLite, o ClickHouse usa o mesmo mapeamento do motor de banco de dados SQLite:
Por padrão, o ClickHouse encapsula o tipo inferido em
Nullable se a coluna SQLite correspondente permitir NULL; colunas NOT NULL continuam não Nullable. Você pode alterar esse comportamento com a configuração schema_inference_make_columns_nullable.
A inferência de esquema não preserva os tipos de dados originais do ClickHouse. Por exemplo, Bool é gravado como INTEGER do SQLite e inferido como Int64, enquanto Date, DateTime, Decimal, UUID, IPv4, IPv6, Enum, Array, Tuple e Map são gravados como TEXT do SQLite e inferidos como String.
Quando a estrutura da tabela do ClickHouse é especificada explicitamente, valores de ponto flutuante são lidos como valores REAL do SQLite, com fallback para texto no caso de NaN. Os demais valores do SQLite são lidos como texto e convertidos para os tipos do ClickHouse solicitados.