Início
Gerador de DDL JSON para ClickHouse CREATE TABLE

Gerador de DDL JSON para ClickHouse CREATE TABLE

Converta documentos JSON de amostra em DDL SQL do ClickHouse com engine MergeTree, tipos UInt/Int/Float/String/DateTime e mapeamento de colunas Array/Nested.

✨ Predefinições:
Documento JSON / NDJSON de EntradaARRAY
-- =================================================================
-- ClickHouse DDL Generated by ToolsAA (100% Client-Side Private)
-- Target Engine: MergeTree | Columns: 22
-- =================================================================

CREATE TABLE IF NOT EXISTS `default`.`analytics_events`
(
    `event_id`                   LowCardinality(String) COMMENT 'Sample: e8d1a6b0-9f12-4e9b-b234-918237465abc',
    `tenant_id`                  UInt16 CODEC(T64, ZSTD(1)) COMMENT 'Sample: 1042',
    `event_time`                 DateTime64(3, 'UTC') CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Sample: 2026-10-17T04:15:30.452Z',
    `event_name`                 LowCardinality(String) COMMENT 'Sample: button_clicked',
    `session_id`                 LowCardinality(String) COMMENT 'Sample: sess_8492019a',
    `user_id`                    LowCardinality(String) COMMENT 'Sample: usr_998124',
    `page_url`                   LowCardinality(String) COMMENT 'Sample: https://toolsaa.com/tools/json-to-clickhouse',
    `referrer`                   LowCardinality(String) COMMENT 'Sample: https://google.com',
    `client_ip`                  IPv4 COMMENT 'Sample: 192.168.1.105',
    `user_agent`                 LowCardinality(String) COMMENT 'Sample: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)',
    `device_type`                LowCardinality(String) COMMENT 'Sample: desktop',
    `browser`                    LowCardinality(String) COMMENT 'Sample: Chrome',
    `country_code`               LowCardinality(String) COMMENT 'Sample: US',
    `duration_ms`                UInt16 CODEC(T64, ZSTD(1)) COMMENT 'Sample: 320',
    `is_logged_in`               Bool CODEC(T64, ZSTD(1)) COMMENT 'Sample: true',
    `tags`                       Array(String) CODEC(ZSTD(1)) COMMENT 'Sample: ["saas","developer-tools","conversion"]',
    `properties_button_id`       Nullable(String) CODEC(ZSTD(1)) COMMENT 'Sample: btn_generate_ddl',
    `properties_source_section`  Nullable(String) CODEC(ZSTD(1)) COMMENT 'Sample: hero_banner',
    `properties_ab_test_variant` Nullable(String) CODEC(ZSTD(1)) COMMENT 'Sample: v2_compact',
    `properties_file_extension`  Nullable(String) CODEC(ZSTD(1)) COMMENT 'Sample: json',
    `properties_file_size_bytes` Nullable(UInt16) CODEC(T64, ZSTD(1)) COMMENT 'Sample: 49200',
    `properties_record_count`    Nullable(UInt8) CODEC(T64, ZSTD(1)) COMMENT 'Sample: 150'
)
ENGINE = MergeTree()
PARTITION BY toYYYYMM(event_time)
ORDER BY (`tenant_id`, `event_name`, `event_time`, `event_id`)
SETTINGS index_granularity = 8192;
22 Colunas inferidas
4 Inteiros • 0 Decimais • 15 Strings • 1 Vetores (Arrays)
MergeTree Motor de tabela
PARTITION BY toYYYYMM(event_time)
Armazenamento colunar otimizado
Granularidade do índice 8192 • ZSTD/LZ4

Gerador 100% Privado no Cliente

Zero envios para o servidor ou telemetria. Seus dados JSON, esquemas internos e estruturas proprietárias permanecem estritamente na memória do seu navegador.

Inferência Nativa de Tipos ClickHouse

Inferência inteligente de tipos colunares para UInt8-UInt64, Float32/Float64, DateTime64, LowCardinality(String), Arrays e tuplas aninhadas.

DDL MergeTree e Pipelines de Produção

Gera instantaneamente instruções CREATE TABLE para produção com ORDER BY, PARTITION BY, expressões TTL e snippets de ingestão CLI / HTTP.

Referência técnica e guia de arquitetura

Guia do Desenvolvedor: Gerador de DDL CREATE TABLE de JSON para ClickHouse — Guia de referência

Converta documentos JSON de amostra em DDL SQL do ClickHouse com engine MergeTree, tipos UInt/Int/Float/String/DateTime e mapeamento de colunas Array/Nested.

Parâmetros principais e controles

tableNamestring

Identificador do nome da tabela de destino no ClickHouse.

Padrão: events
enginestring

Mecanismo de tabela do ClickHouse que define replicação, deduplicação e formato de armazenamento.

Padrão: MergeTree()
orderBystring

Tupla de chave de ordenação que define a disposição física em disco e o índice primário esparso.

Padrão: (id, created_at)
partitionBystring

Expressão de chave de particionamento para divisão cronológica de partes de dados e descarte eficiente.

Padrão: toYYYYMM(created_at)
useLowCardinalityboolean

Converte automaticamente colunas de texto repetitivo em LowCardinality(String) para compressão por dicionário.

Padrão: true
nullableboolean

Envolve tipos inferidos em Nullable(T) quando há campos nulos, ou prioriza valores padrão zero para máxima performance.

Padrão: false

Dicas profissionais e melhores práticas

O ClickHouse armazena colunas Nullable

O ClickHouse armazena colunas Nullable usando um arquivo de máscara nula separado (*.null), reduzindo o desempenho de vetorização e a compressão em 20% a 30%. Utilize valores padrão sentinela (string vazia, 0) sempre que possível.

Para strings com menos de 10.000

Para strings com menos de 10.000 valores únicos (códigos de país, tipos de navegador, verbos HTTP), o LowCardinality(String) reduz drasticamente o espaço em disco e acelera consultas com GROUP BY.

Definição estratégica da chave ORDER BY

Mantenha a cláusula ORDER BY compacta e ordenada por seletividade (da menor para a maior cardinalidade), alinhando-a aos filtros de consulta mais frequentes para maximizar o poda de índice esparso.

Caso seu JSON contenha timestamps

Caso seu JSON contenha timestamps em milissegundos ou microssegundos (ISO 8601 fracionado), configure DateTime64(3, 'UTC') ou DateTime64(6, 'UTC') em vez do DateTime convencional de 1 segundo.

Problemas comuns e solução de problemas

Arrays vazios [] ou tipos de dados mistos causam inferência ambígua

Forneça objetos JSON representativos com elementos nos arrays ou use múltiplas linhas JSON Lines (NDJSON). Para tipos conflitantes, o ClickHouse exige String ou Variant explícito.

Colunas no ORDER BY possuem tipo Nullable gerando erro de sintaxe DDL

O ClickHouse proíbe tipos Nullable dentro de PRIMARY KEY e ORDER BY em engines MergeTree. Certifique-se de que as colunas de ordenação não sejam anuláveis.

Objetos JSON aninhados versus achatamento de colunas

O ClickHouse suporta colunas Nested e o tipo experimental JSON. Para cargas analíticas massivas, achatar propriedades aninhadas em colunas planas (ex.: user_address_city) oferece compressão e velocidade superiores.

Perguntas frequentes (FAQ)

Como este gerador mapeia os tipos de dados JSON para colunas do ClickHouse?▼

Números são avaliados para faixas inteiras específicas (UInt8/16/32/64, Int32/64) ou Float64. Strings ISO 8601 são mapeadas para Date32, DateTime ou DateTime64. Booleanos viram Bool, arrays viram Array(T) e objetos viram Tuple(...) ou Nested.

Por que a engine MergeTree é recomendada por padrão no ClickHouse?▼

A engine MergeTree é o pilar analítico do ClickHouse. Ela oferece particionamento eficiente, índices esparsos, fusão contínua de blocos em segundo plano e agregações vetorizadas ultrarrápidas em bilhões de linhas.

É possível ingerir JSON bruto no ClickHouse sem criar esquema prévio?▼

Embora versões recentes suportem o tipo experimental Object('json'), as melhores práticas de engenharia de dados recomendam CREATE TABLE explícito para obter compressão 10x a 50x melhor e performance previsível.

Meu payload JSON é enviado para algum servidor externo durante a conversão?▼

Não. Toda a inferência de tipos, construção da árvore sintática (AST) e formatação do SQL DDL são executadas estritamente no runtime JavaScript do seu próprio navegador web.

Ferramentas e utilitários relacionados

Todas as ferramentas →
Guia do Desenvolvedor: Gerador de Esquema de Tabela Google BigQuery a partir de JSONDesenvolvimento

Infira e converta objetos JSON em esquemas de tabela JSON para o Google Cloud BigQuery com suporte a RECORD, STRING, INTEGER, NUMERIC e TIMESTAMP.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de DDL CREATE TABLE de JSON para SnowflakeDesenvolvimento

Converta payloads e esquemas JSON em instruções SQL CREATE TABLE para Snowflake de nível de produção com tipos VARIANT, VARCHAR, NUMBER, BOOLEAN e TIMESTAMP_NTZ.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Variáveis e Locals Terraform HCL a partir de JSON / YAMLDesenvolvimento

Converta estruturas JSON e YAML em restrições de tipo de variáveis Terraform HCL (type = object({...})), valores padrão, blocos locals e definições terraform.tfvars.

Abrir ferramenta→
Guia do Desenvolvedor: Conversor de OpenAPI / Swagger para GraphQL SDLDesenvolvimento

Converta endpoints REST, corpos de requisição e esquemas JSON de OpenAPI 3.0/3.1 e Swagger 2.0 em tipos, consultas, mutações e definições de entrada GraphQL SDL.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Schemas TypeScript TypeBox a partir de DDL SQLDesenvolvimento

Converta instruções SQL CREATE TABLE em esquemas de validação em tempo de execução @sinclair/typebox usando Type.Object, Type.String, Type.Number e Type.Optional.

Abrir ferramenta→
Guia do Desenvolvedor do Gerador de Código cURL para Rust (reqwest e tokio)Desenvolvimento

Converta comandos cURL em requisições HTTP idiomáticas e assíncronas em Rust utilizando reqwest, serde_json, cabeçalhos customizados e runtime Tokio.

Abrir ferramenta→