JSON to Snowflake CREATE TABLE DDL Generator
クラウドデータウェアハウス&DDL

JSON to Snowflake CREATE TABLE DDL Generator

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

100% クライアント側プライバシー
サーバー送信ゼロ
プリセット:
ターゲットスキーマ設定ANALYTICS_PROD.PUBLIC.SNOWFLAKE_EVENTSSTANDARDVARIANT
入力JSON Array
-- ============================================================================
-- Snowflake CREATE TABLE DDL
-- Target: ANALYTICS_PROD.PUBLIC.SNOWFLAKE_EVENTS
-- Generated by ToolsAA JSON to Snowflake DDL Studio
-- Strategy: VARIANT | Table Kind: STANDARD
-- ============================================================================

-- USE DATABASE ANALYTICS_PROD;
-- USE SCHEMA PUBLIC;

CREATE OR REPLACE TABLE ANALYTICS_PROD.PUBLIC.SNOWFLAKE_EVENTS (
  EVENT_ID                     VARCHAR          NOT NULL COMMENT 'Extracted from JSON key "event_id"',
  TENANT_ID                    VARCHAR          NOT NULL COMMENT 'Extracted from JSON key "tenant_id"',
  USER_ID                      VARCHAR          NOT NULL COMMENT 'Extracted from JSON key "user_id"',
  EVENT_NAME                   VARCHAR          NOT NULL COMMENT 'Extracted from JSON key "event_name"',
  EVENT_TIMESTAMP              TIMESTAMP_NTZ    NOT NULL COMMENT 'Extracted from JSON key "event_timestamp"',
  SESSION_DURATION_SECONDS     FLOAT            NOT NULL COMMENT 'Extracted from JSON key "session_duration_seconds"',
  IS_BILLED_CUSTOMER           BOOLEAN          NOT NULL COMMENT 'Extracted from JSON key "is_billed_customer"',
  CLIENT_IP                    VARCHAR          NOT NULL COMMENT 'Extracted from JSON key "client_ip"',
  USER_AGENT                   VARCHAR          NOT NULL COMMENT 'Extracted from JSON key "user_agent"',
  CONTEXT                      VARIANT          NOT NULL COMMENT 'Extracted from JSON key "context"',
  PAYLOAD                      VARIANT          NOT NULL COMMENT 'Extracted from JSON key "payload"',
  TAGS                         VARIANT          NOT NULL COMMENT 'Extracted from JSON key "tags"',
  _INGESTION_TIMESTAMP         TIMESTAMP_NTZ    DEFAULT CURRENT_TIMESTAMP() NOT NULL COMMENT 'Auto-populated ingestion timestamp',
  _SOURCE_FILE_NAME            VARCHAR(1000)    COMMENT 'Stage source path file',
  CONSTRAINT PK_SNOWFLAKE_EVENTS PRIMARY KEY (EVENT_ID, TENANT_ID, USER_ID) NOT ENFORCED
)
CLUSTER BY (EVENT_TIMESTAMP, TENANT_ID)
DATA_RETENTION_TIME_IN_DAYS = 1
COMMENT = 'Production table synthesized from JSON payload'
;

-- Quick Verification Query:
-- SELECT * FROM ANALYTICS_PROD.PUBLIC.SNOWFLAKE_EVENTS LIMIT 20;
推論されたカラム数14フィールド定義
生成構造体3展開されたオブジェクトおよび配列要素
Snowflakeストレージ最適化STANDARD
100%Micro-partition and columnar compressed

ゼロナレッジ・完全ローカル実行

すべてのデータ処理、解析、コード生成はお使いのブラウザ内部メモリで完結します。外部サーバーへの送信はゼロです。

超高速・即時リアクティブ演算

最適化されたクライアント側解析パイプラインにより、キーストロークと同時に遅延なくリアルタイムで結果を生成します。

公式仕様準拠・高信頼アーキテクチャ

IETF RFCや公式業界仕様に厳格に準拠し、エッジケースの安全な処理とメモリリークのない堅牢な実行を保証します。

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

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

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

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

tableNameString

生成対象のSnowflakeテーブル名。データベースやスキーマのプレフィックスを含めることが可能です(例: ANALYTICS_DB.RAW_STAGING.CUSTOMERS)。

初期値: JSON_RAW_RECORDS
casingEnum (UPPERCASE | LOWERCASE | PRESERVE)

カラム識別子のケース変換設定。UPPERCASEはSnowflake標準の引用符なし大文字解決に準拠し、PRESERVEはダブルクォートで囲みます。

初期値: UPPERCASE
nestedStrategyEnum (VARIANT | STRING | FLATTEN)

ネストされたJSONオブジェクトや配列の変換戦略。VARIANTを選択すると、Snowflake独自の半構造化データ型を活用できます。

初期値: VARIANT
detectTimestampsBoolean

文字列を検査してISO 8601日時フォーマットを自動検出し、VARCHARではなくTIMESTAMP_NTZ型を割り当てます。

初期値: true
tableTypeEnum (PERMANENT | TRANSIENT | TEMPORARY)

Snowflakeテーブルの永続化タイプ。TRANSIENTテーブルはFail-safeストレージ費用を削減し、ステージングパイプラインに最適です。

初期値: PERMANENT

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

進化するスキーマにはネイティブなVARIANT型を活用する

ネストされたオブジェクトを数十個の疎なカラムにフラット化する代わりに、SnowflakeのVARIANT型へ直接マッピングしてください。SnowflakeはVARIANT内部のサブキーを自動的にカラムナー化して圧縮するため、リレーショナル同等の検索性能を維持しつつスキーマ変更に対応できます。

引用符なしのUPPERCASE識別子を標準とする

Snowflakeは引用符で囲まれていない識別子を自動的に大文字として処理します。小文字をダブルクォートで保持すると、dbtやBIツール(Looker、Tableau等)でのクエリ作成時に常に二重引用符のエスケープが必要になります。通常はUPPERCASEへの統一を推奨します。

ステージング環境にはTRANSIENTテーブルを採用する

ELTパイプラインやSnowpipeの中間取り込み先としてテーブルを作成する場合、CREATE TRANSIENT TABLEを使用してください。1日間のTime Travelを保持しながら、更新頻度の高い一時テーブルにおける7日間のFail-safeストレージコストを完全に排除できます。

VARCHARのサイズ制限を明示せず最大長のまま運用する

Snowflakeにおいて長さを指定しないVARCHARは最大16MBまで格納可能ですが、ストレージ消費や検索速度のペナルティはありません。実際に保存されたデータ長のみが圧縮保存されるため、予期せぬ長文による取り込みエラーを未然に防止できます。

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

ハイフンや予約語を含むJSONキーが原因で構文エラーが発生する

JSONキーにハイフン、スペース、ドット、またはSQL予約語(order、date等)が含まれる場合、PRESERVE設定を選択してカラム名を二重引用符で囲む("user-id" VARCHAR)か、アンダースコア(_)を用いた英数字の標準識別子に正規化してください。

整数と推論された数値カラムに小数データが流入して切り捨てられる

サンプルJSONに整数値のみが含まれていても本番で小数が届く可能性があるフィールド(金額、比率など)は、型推論をFLOAT/DOUBLEまたは明示的なNUMBER(18,4)等に手動調整してください。

複数レコードのサンプル間でデータ型が混在している

一部の行で文字列、別の行で数値が混在している場合、安全策としてVARCHARへ昇格させるか、当該カラムをVARIANT型として定義することで取り込み時の型不一致エラーを防ぎます。

よくある質問 (FAQ)

ネストされたJSONをカラムにフラット化せずVARIANT型にするメリットは何ですか?▼

SnowflakeのVARIANT型は半構造化データに特化して設計されています。取り込み時にマイクロパーティション内で頻出サブキーが自動的にカラムナー構造へ分解され、統計情報が生成されます。これにより、スキーマ変更のたびにテーブル定義を変更することなく、高速なSQLクエリ(例: `payload:customer.id::STRING`)を実行できます。

Snowflakeにおけるカラム識別子の大文字・小文字の扱いはどうなっていますか?▼

引用符なしの識別子はすべて大文字(UPPERCASE)として解釈・保存されます。ダブルクォートで囲んだ場合のみ小文字や記号がそのまま保持されますが、クエリ時にも厳密な引用符指定が必要になるため、特別な理由がない限り大文字での定義が標準プラクティスです。

JSONの日時文字列にはTIMESTAMP_NTZとTIMESTAMP_TZのどちらを使うべきですか?▼

すでにUTCへ正規化されている、またはタイムゾーンオフセットを保持する必要がない場合はTIMESTAMP_NTZが最適です。元のデータソースが持つローカルタイムゾーンのオフセット情報をそのまま保持・追跡したい場合はTIMESTAMP_TZを選択してください。

VARCHARの長さを制限しない場合、Snowflakeのパフォーマンスに悪影響はありますか?▼

いいえ、影響はありません。従来のRDBMSとは異なり、Snowflakeは圧縮カラムナー形式でデータを管理するため、VARCHAR(16777216)として宣言しても実際に格納されたバイト数分しかディスクやメモリを消費しません。

生成されたDDLはSnowpipeやCOPY INTOコマンドでそのまま利用できますか?▼

はい。生成されたDDLで作成したテーブルに対して、`MATCH_BY_COLUMN_NAME = CASE_INSENSITIVE`を指定したCOPY INTOや、ステージ上のJSONをキャストしてロードするパイプラインを即座に構築できます。

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

すべてのツール →
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 クライアントコードへ瞬時に変換します。

ツールを開く→
cURL to Ruby (Net::HTTP & Faraday) コード生成ツール開発ツール

cURLコマンドをNet::HTTP、URI、Faraday、JSON解析を活用したクリーンで慣用的なRubyコードへ瞬時に変換します。

ツールを開く→
Kubernetes NetworkPolicy 生成ツール開発ツール

宣言的Kubernetes NetworkPolicyマニフェスト、ゼロトラストPod分離、名前空間インgress/egressルール、CIDR ipBlock、複数ポート定義を生成するための開発者向けガイド。

ツールを開く→