SnowDDL
  • 👋Introduction
  • 🚩Getting started
  • 📋Main features
  • 🪤SnowDDL vs. Declarative DCM
  • In-depth guides
    • 👓Object identifiers
    • 📐Data types
    • 📦Object types
    • 🎭Role hierarchy
    • 🚧Permission model
    • 🔦Other guides
      • Administration user
      • Integrations
      • Inbound shares
      • Object OWNERSHIP
      • Safe & unsafe DDL
      • Dependency management
      • Short hash explained
      • Env Prefix explained
      • Team workflow
      • Limitations & workarounds
      • Fivetran
      • Airbyte
      • Encrypt user passwords
      • Iceberg Tables
  • Basic usage (CLI + YAML)
    • 💻CLI interface
    • 📦YAML configs
      • ACCOUNT PARAMETER
      • ACCOUNT POLICY
      • AGGREGATION POLICY
      • ALERT
      • AUTHENTICATION POLICY
      • BUSINESS ROLE
      • DATABASE
      • DYNAMIC TABLE
      • EVENT TABLE
      • EXTERNAL ACCESS INTEGRATION
      • EXTERNAL FUNCTION
      • EXTERNAL TABLE
      • FILE FORMAT
      • FUNCTION
      • HYBRID TABLE
      • ICEBERG TABLE
      • MASKING POLICY
      • MATERIALIZED VIEW
      • NETWORK POLICY
      • NETWORK RULE
      • PERMISSION MODEL
      • PIPE
      • PLACEHOLDER
      • PROCEDURE
      • PROJECTION POLICY
      • RESOURCE MONITOR
      • ROW ACCESS POLICY
      • SCHEMA
      • SECRET
      • SEQUENCE
      • SHARE (outbound)
      • STAGE
      • STAGE FILE
      • STREAM
      • TABLE
      • TASK
      • TECHNICAL ROLE
      • USER
      • VIEW
      • WAREHOUSE
    • 🏷️YAML placeholders
    • 📬YAML tag !include
    • 🔐YAML tag !decrypt
  • Single DB
    • 🦀Overview
  • Advanced usage (Python)
    • ⚙️Programmatic config
    • 🐍Architecture overview
      • 🔵Blueprints
      • 🟣Config
      • 🟠Parsers
      • 🟢Resolvers
      • 🔴Engine
    • 🏗️Query builder & formatter
  • Breaking changes log
    • 0.45.0 - March 2025
    • 0.41.0 - January 2025
    • 0.37.0 - December 2024
    • 0.36.0 - November 2024
    • 0.33.0 - October 2024
    • 0.27.0 - May 2024
  • Links
    • GitHub repository
    • PyPI package
    • YouTube tutorials
    • Changelog
    • LinkedIn profile
Powered by GitBook
On this page
  • Supported data types
  • Rationale
  1. In-depth guides

Data types

PreviousObject identifiersNextObject types

Last updated 23 days ago

SnowDDL supports only.

Synonyms and aliases are not allowed. Timestamp data types should be defined explicitly.

If data type has additional parameters (e.g. length), the full form should be used in all cases.

Supported data types

  • NUMBER(x,y)

  • FLOAT

  • BINARY(x)

  • BOOLEAN

  • VARCHAR(x)

  • DATE

  • TIME(x)

  • TIMESTAMP_LTZ(x)

  • TIMESTAMP_NTZ(x)

  • TIMESTAMP_TZ(x)

  • VARIANT

  • OBJECT

  • ARRAY

  • GEORGRAPHY

  • VECTOR(x,y)

  • FILE

Rationale

  • SnowDDL uses an actual data types obtained from SHOW and DESC commands to compare config with Snowflake metadata. Values should be exactly the same.

  • It is much easier to find & replace data types in config when exactly the same syntax is being used in all cases. Especially when you have 1000+ tables to manage.

  • TIMESTAMP data types have significant differences and are affected by various ACCOUNT PARAMETERS. It is very important for data engineers to understand it and to pick the correct data type depending on specific use case.

📐
native Snowflake data types