JSON to Snowflake CREATE TABLE DDL Generator
Cloud-Data-Warehouse & DDL

JSON to Snowflake CREATE TABLE DDL Generator

Konvertieren Sie JSON-Nutzdaten und -Schemas in produktionsreife Snowflake SQL CREATE TABLE-Anweisungen mit optimierten Datentypen wie VARIANT, VARCHAR, NUMBER, BOOLEAN und TIMESTAMP_NTZ.

100% clientseitige Privatsphäre
Null Serverübertragung
Voreinstellungen:
Zielschema-KonfigurationANALYTICS_PROD.PUBLIC.SNOWFLAKE_EVENTSSTANDARDVARIANT
EingabeJSON 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;
Inferred Columns14Felder
Generierte Strukturen3Unnested objects and array elements
Snowflake EfficiencySTANDARD
100%Micro-partition and columnar compressed

Zero-Knowledge Lokale Ausführung

Alle Datenverarbeitungen, Parsen und Generierungen laufen streng im lokalen Browserspeicher ab. Keine externen Server-Uploads.

Sub-Millisekunden AST-Engine

All data payloads remain strictly local with zero external server communication.

Production Ready Export

Clean, optimized output formats ready for immediate deployment.

Technische Referenz & Architektur-Leitfaden

Entwicklerhandbuch: JSON zu Snowflake CREATE TABLE DDL Generator — Referenz-Leitfaden

Konvertieren Sie JSON-Nutzdaten und -Schemas in produktionsreife Snowflake SQL CREATE TABLE-Anweisungen mit optimierten Datentypen wie VARIANT, VARCHAR, NUMBER, BOOLEAN und TIMESTAMP_NTZ.

Wichtige Parameter & Steuerelemente

tableNameString

Der Bezeichner der Snowflake-Zieltabelle, optional mit Datenbank- und Schema-Präfix (z. B. ANALYTICS_DB.RAW_STAGING.CUSTOMERS).

Standard: JSON_RAW_RECORDS
casingEnum (UPPERCASE | LOWERCASE | PRESERVE)

Groß-/Kleinschreibung der Spaltennamen. UPPERCASE entspricht dem standardmäßigen Snowflake-Auflösungsmechanismus ohne Anführungszeichen.

Standard: UPPERCASE
nestedStrategyEnum (VARIANT | STRING | FLATTEN)

Strategie für verschachtelte JSON-Objekte und -Arrays. VARIANT nutzt Snowflakes native semi-strukturierte Speicher-Engine für flexible Abfragen.

Standard: VARIANT
detectTimestampsBoolean

Überprüft Zeichenketten auf ISO-8601-Datumsformate, um automatisch TIMESTAMP_NTZ anstelle von generischem VARCHAR zuzuweisen.

Standard: true
tableTypeEnum (PERMANENT | TRANSIENT | TEMPORARY)

Persistenzstufe der Tabelle. TRANSIENT-Tabellen verzichten auf Fail-Safe-Speicherkosten und eignen sich ideal für Staging-Pipelines.

Standard: PERMANENT

Profi-Tipps & Best Practices

Vermeiden Sie es

Vermeiden Sie es, verschachtelte JSON-Objekte krampfhaft in unzählige relationale Spalten zu zerlegen. Der Snowflake-Typ VARIANT speichert verschachtelte Daten nativ und zerlegt Subschlüssel in komprimierte Mikro-Partitionen, was eine mit relationalen Tabellen vergleichbare Abfrageleistung bei maximaler Schemageberflexibilität bietet.

Snowflake konvertiert alle Bezeichner

Snowflake konvertiert alle Bezeichner ohne Anführungszeichen automatisch in Großbuchstaben. Werden Spalten mit doppelten Anführungszeichen kleingeschrieben, müssen nachgelagerte Tools wie dbt oder BI-Plattformen jeden Spaltennamen in Anführungszeichen setzen. Nutzen Sie UPPERCASE für sauberen SQL-Code.

Verwenden Sie für Zwischenschritte

Verwenden Sie für Zwischenschritte oder Snowpipe-Landing-Tabellen das Konstrukt CREATE TRANSIENT TABLE. Sie behalten die 1-tägige Time-Travel-Funktionalität, sparen jedoch die Speicherkosten für den 7-tägigen Fail-Safe-Zeitraum bei flüchtigen Daten.

In Snowflake hat die Verwendung von

In Snowflake hat die Verwendung von unbegrenztem VARCHAR (Standard 16 MB) keinerlei negative Auswirkungen auf Speicherplatz oder Verarbeitungsgeschwindigkeit, da Spaltendaten komprimiert abgelegt werden. Dadurch werden Pipeline-Abbrüche durch unvorhergesehene Textlängen verhindert.

Häufige Fallstricke & Fehlerbehebung

Sonderzeichen oder SQL-Schlüsselwörter in JSON-Schlüsseln erzeugen Syntaxfehler

Enthalten JSON-Schlüssel Bindestriche, Leerzeichen oder reservierte SQL-Begriffe (z. B. 'order', 'date'), wählen Sie die Option PRESERVE, um die Spaltennamen in doppelte Anführungszeichen zu setzen (z. B. "user-id" VARCHAR), oder bereinigen Sie die Schlüssel mit Unterstrichen.

Ganzzahl-Erkennung (NUMBER) führt zum Abschneiden von Dezimalstellen bei künftigen Werten

Wenn im Test-JSON ganze Zahlen vorliegen, in der Produktion jedoch Fließkommazahlen (z. B. Beträge) vorkommen können, passen Sie den Typ manuell auf FLOAT oder NUMBER(18,4) an.

Inkonsistente Datentypen in Array-Stichproben führen zu Fehlern

Falls Felder in manchen Datensätzen Zahlen und in anderen Strings enthalten, definieren Sie die Zielspalte entweder als VARCHAR oder als VARIANT, um Ingestion-Abbrüche zu verhindern.

Häufig gestellte Fragen (FAQ)

Warum sollte man verschachteltes JSON als VARIANT anstelle von flachen Spalten speichern?▼

Snowflakes VARIANT-Datentyp ist für semi-strukturierte Daten optimiert. Das System analysiert JSON-Pfade intern und legt häufig abgefragte Attribute spaltenbasiert ab. Dadurch erhalten Sie relationale Abfragegeschwindigkeit via SQL (z. B. `obj:kundennummer::STRING`), ohne bei Schemaänderungen Tabellen anpassen zu müssen.

Wie handhabt Snowflake die Groß- und Kleinschreibung von Bezeichnern?▼

Alle Bezeichner ohne Anführungszeichen werden automatisch in Großbuchstaben umgewandelt und gespeichert. Nur mit doppelten Anführungszeichen umschlossene Bezeichner behalten ihre Schreibweise bei, erfordern dann aber in jeder nachfolgenden Abfrage exakte Quoting-Syntax.

Wann sollte TIMESTAMP_NTZ gegenüber TIMESTAMP_TZ bevorzugt werden?▼

TIMESTAMP_NTZ (No Time Zone) empfiehlt sich, wenn alle Datumsangaben bereits in koordinierter Weltzeit (UTC) vorliegen. TIMESTAMP_TZ sollte genutzt werden, wenn die spezifische Zeitzonenabweichung der ursprünglichen Datenquelle erhalten bleiben muss.

Verringert ein unbeschränktes VARCHAR die Abfrageleistung in Snowflake?▼

Nein. Snowflake arbeitet spaltenbasiert und komprimiert Micro-Partitionen. Ein Feld vom Typ VARCHAR reserviert keinen statischen Arbeitsspeicher, sondern verbraucht exakt so viel Speicherplatz, wie die tatsächlichen Nutzdaten benötigen.

Kann die generierte DDL direkt mit Snowpipe oder COPY INTO verwendet werden?▼

Ja. Die DDL erzeugt tabellarische Schemas, die sofort mit COPY INTO-Befehlen (z. B. unter Verwendung von `MATCH_BY_COLUMN_NAME = CASE_INSENSITIVE`) oder kontinuierlichen Snowpipe-Ladevorgängen kompatibel sind.

Verwandte Werkzeuge & Dienstprogramme

Alle Werkzeuge →