ホーム
JSONからClickHouse CREATE TABLE DDL生成ツール

JSON to ClickHouse CREATE TABLE DDL ジェネレーター

サンプルJSONドキュメントを解析し、MergeTreeエンジン、UInt/Int/Float/String/DateTime型、Array/Nestedカラムマッピングを備えた最適なClickHouse SQL DDLに変換します。

✨ プリセット:
入力 JSON / NDJSONARRAY
-- =================================================================
-- 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 推論カラム数
4 整数列 • 0 浮動小数点列 • 15 文字列 • 1 配列
MergeTree テーブルエンジン
PARTITION BY toYYYYMM(event_time)
カラムナー最適化ストレージ
インデックス粒度 8192 • ZSTD/LZ4

100% クライアントサイド完全保護

サーバーへのデータ送信は一切ありません。入力されたすべての JSON、スキーマ、データ構造はブラウザ内でのみ安全に処理されます。

ClickHouse ネイティブ型推論

UInt8-UInt64、Float32/Float64、DateTime64、LowCardinality(String)、Array、Nested Tuple 階層へのスマートな列指向型推論。

本番向け MergeTree DDL とパイプライン

ORDER BY、PARTITION BY、TTL 式、CLI や HTTP インジェストスニペットを含む本番対応の CREATE TABLE 文を即座に生成します。

技術リファレンス&アーキテクチャガイド

JSONからClickHouse CREATE TABLE DDL生成ツール — リファレンスガイド

サンプルJSONドキュメントを解析し、MergeTreeエンジン、UInt/Int/Float/String/DateTime型、Array/Nestedカラムマッピングを備えた最適なClickHouse SQL DDLに変換します。

主要パラメータ&設定項目

tableNamestring

作成対象となるClickHouseテーブルの識別子名。

初期値: events
enginestring

データ複製、重複排除、ストレージ挙動を決定するClickHouseテーブルエンジン。

初期値: MergeTree()
orderBystring

ディスク上の物理ソート順とスパース主インデックスを定義するソートキータプル。

初期値: (id, created_at)
partitionBystring

データパートを時系列などで論理分割し、不要パートの高速削除を可能にするパーティションキー式。

初期値: toYYYYMM(created_at)
useLowCardinalityboolean

出現頻度の高い文字列や列挙的カラムを辞書圧縮用のLowCardinality(String)に自動変換します。

初期値: true
nullableboolean

null許容値をNullable(T)でラップするか、ClickHouseのデフォルト値(0や空文字)を優先して高速化するかを指定します。

初期値: false

プロの活用テクニック&推奨設定

カラムナ速度を最大化するため非Nullableを優先

ClickHouseではNullableカラムに専用のnullマスクファイル(*.null)が作成され、ベクトル化実行速度とディスク圧縮効率が20〜30%低下します。真に必要な場合を除きデフォルト値(空文字列や0)の採用を推奨します。

低カーディナリティ文字列にはLowCardinality(String)を活用

国コードやブラウザ種別、HTTPメソッドなどユニーク値が1万件以下の文字列列にはLowCardinality(String)を指定することで、メモリフットプリントを劇的に削減しGROUP BYクエリを大幅に高速化できます。

最適なORDER BYソートキーの選定

ORDER BY句は絞り込み頻度が高くカーディナリティの低いカラムから順に配置し、スパースインデックスのプルーニング効率を最大化する構成にしてください。

ミリ秒・マイクロ秒精度にはDateTime64を採用

JSON内のタイムスタンプがミリ秒やマイクロ秒を含むISO 8601形式の場合、標準の1秒単位DateTimeではなくDateTime64(3, 'UTC')またはDateTime64(6, 'UTC')を指定してください。

よくあるトラブルと解決策

空配列 [] や複数型の混在により型推論が曖昧になる

要素が入った代表的なJSONオブジェクトまたは複数行JSON(NDJSON)を入力してください。混在型の場合はStringまたはVariant型への明示的な指定が必要です。

ORDER BYにNullable型が含まれDDL構文エラーが発生する

ClickHouseのMergeTreeファミリーでは、PRIMARY KEYおよびORDER BYソートキーにNullable型を含めることが禁止されています。ソートカラムは非Nullableに設定してください。

ネストされたJSONオブジェクトの扱い(Nestedかフラット化か)

ClickHouseはNested型や実験的JSON型をサポートしていますが、大規模分析処理では階層をドット区切りカラム(例: user_address_city)にフラット化する方が高い圧縮率とクエリ性能が得られます。

よくある質問 (FAQ)

このジェネレーターはどのようにJSON型をClickHouse型にマッピングしますか?▼

数値は整数範囲(UInt8/16/32/64、Int32/64)またはFloat64に評価されます。ISO 8601日付文字列はDate32、DateTime、DateTime64に、ブール値はBool、配列はArray(T)、オブジェクトはTuple(...)またはNestedに自動推論されます。

なぜClickHouseではMergeTreeエンジンがデフォルトで推奨されるのですか?▼

MergeTreeはClickHouseの分析エンジンの核であり、パーティション分割、スパースインデックス、バックグラウンドでの自動マージ、数十億行に対する圧倒的なベクトル化集計性能を提供するためです。

スキーマを定義せずJSONを直接ClickHouseに取り込むことはできますか?▼

実験的なObject('json')型も存在しますが、本番環境では明示的なCREATE TABLEでカラム型を定義する方が10〜50倍高い圧縮率と予測可能な高速クエリ、厳格なデータ検証を実現できます。

入力したJSONデータが外部サーバーに送信されることはありますか?▼

いいえ。JSONのスキーマ推論、型評価、AST生成、SQLフォーマットはすべてブラウザ内のJavaScriptランタイムで完結して実行されます。外部通信は一切発生しません。

関連するおすすめ開発ツール

すべてのツール →
JSONからGoogle BigQueryテーブルスキーマ生成ツール開発ツール

JSONオブジェクトを解析し、RECORDモード、STRING、INTEGER、NUMERIC、TIMESTAMPフィールドを含むGoogle Cloud BigQueryテーブルスキーマJSONを自動推論・変換します。

ツールを開く→
JSONからSnowflake CREATE TABLE DDL生成ツール開発ツール

JSONペイロードやスキーマから、VARIANT、VARCHAR、NUMBER、BOOLEAN、TIMESTAMP_NTZなどの最適化されたデータ型を備えたSnowflake SQL CREATE TABLE文を自動生成します。

ツールを開く→
JSON / YAML から Terraform HCL 変数・Locals 生成ツール開発ツール

JSON および YAML データを Terraform HCL の変数型制約 (type = object({...}))、デフォルト値、locals ブロック、terraform.tfvars 定義へ自動変換します。

ツールを開く→
OpenAPI・Swagger GraphQL SDL スキーマ変換 技術リファレンス開発ツール

OpenAPI 3.0/3.1およびSwagger 2.0のRESTエンドポイント、リクエストボディ、JSON SchemaをGraphQL SDLの型定義、Query、Mutation、Inputへマッピングする開発者向け技術仕様書。

ツールを開く→
SQL DDLからTypeBox TypeScriptスキーマへの変換ツール開発ツール

SQLのCREATE TABLE文を解析し、Type.Object、Type.String、Type.Number、Type.Optionalを用いた@sinclair/typeboxランタイム検証スキーマとStatic型定義へ高速変換します。

ツールを開く→
cURL から Rust (reqwest & tokio) コードジェネレーター開発ツール

cURL コマンドを、reqwest、serde_json、カスタムヘッダー、Tokio 非同期ランタイムを活用した慣用的で安全な Rust HTTP クライアントコードへ瞬時に変換します。

ツールを開く→