YML到DDL技能Skill yml2ddl

yml2ddl技能是一个数据工程工具,用于从Starlake YAML定义自动生成SQL DDL(数据定义语言)语句,支持BigQuery、Snowflake、PostgreSQL等多种目标数据仓库。它通过类型映射简化数据库表结构的创建和管理,提升数据管道开发效率,适用于数据仓库建设和数据治理场景。关键词:SQL DDL, YAML, 数据仓库, 数据工程, 数据库管理, ETL开发, Starlake。

数据仓库 0 次安装 0 次浏览 更新于 3/15/2026

name: yml2ddl description: 从Starlake YAML定义生成SQL DDL语句

YML到DDL技能

从您的Starlake YAML表定义生成SQL DDL(数据定义语言)语句 — CREATE TABLE, ALTER TABLE等。通过定义在types/default.sl.yml中的类型映射支持多种目标数据库。

使用

starlake yml2ddl [options]

选项

  • --datawarehouse <value>: 目标数据仓库名称 — 必须匹配types/default.sl.yml中的DDL映射键(必需)。示例:bigquery, snowflake, postgres, redshift, synapse, duckdb
  • --connection <value>: 具有读写访问权限的JDBC连接名称(用于--apply模式)
  • --output <value>: 生成的DDL文件的输出目录(默认:./{datawarehouse}/
  • --catalog <value>: 数据库目录名称(如果适用)
  • --domain <value>: 仅为此特定域生成DDL(默认:所有域)
  • --schemas <value>: 域内要生成DDL的模式逗号分隔列表
  • --apply: 直接将生成的DDL执行到数据库
  • --parallelism <value>: 并行级别(默认:可用CPU核心)
  • --reportFormat <value>: 报告输出格式:console, json, 或 html

配置上下文

types/default.sl.yml中的类型映射

DDL生成使用ddlMapping将Starlake类型映射到数据库特定类型:

# metadata/types/default.sl.yml
types:
  - name: "string"
    primitiveType: "string"
    ddlMapping:
      bigquery: "STRING"
      snowflake: "VARCHAR"
      postgres: "TEXT"
      duckdb: "VARCHAR"
      synapse: "NVARCHAR(MAX)"

  - name: "long"
    primitiveType: "long"
    ddlMapping:
      bigquery: "INT64"
      snowflake: "BIGINT"
      postgres: "BIGINT"
      duckdb: "BIGINT"

  - name: "decimal"
    primitiveType: "decimal"
    ddlMapping:
      bigquery: "NUMERIC"
      snowflake: "NUMBER(38,9)"
      postgres: "NUMERIC"

示例

为BigQuery生成DDL

starlake yml2ddl --datawarehouse bigquery

为Snowflake生成DDL(特定域)

starlake yml2ddl --datawarehouse snowflake --domain starbake

生成并应用DDL到PostgreSQL

starlake yml2ddl --datawarehouse postgres --connection my_pg_conn --apply

生成DDL到自定义输出目录

starlake yml2ddl --datawarehouse duckdb --output /tmp/ddl

为特定模式生成DDL

starlake yml2ddl --datawarehouse snowflake --domain sales --schemas orders,customers

并行DDL生成

starlake yml2ddl --datawarehouse bigquery --parallelism 4

相关技能

  • extract-script - 从模板生成提取脚本
  • xls2yml - 将Excel转换为YAML(在DDL生成之前)
  • config - 配置参考(类型映射)