提取模式技能Skill extract-schema

这个技能用于从JDBC数据库提取数据库表模式(如列名、类型、约束),并生成Starlake YAML配置文件,是数据工程中反向工程数据库到Starlake项目的关键第一步。关键词包括:数据库模式提取、Starlake配置、YAML文件生成、ETL开发、数据治理、反向工程。

数据工程 0 次安装 0 次浏览 更新于 3/15/2026

名称: 提取模式 描述: 将数据库模式提取到Starlake YAML配置文件

提取模式技能

连接到JDBC数据库并提取表模式(列名、类型、约束)到Starlake YAML配置文件。这是在将现有数据库反向工程到Starlake项目中的第一步。

使用

starlake extract-schema [选项]

选项

  • --config <值>: 提取配置名称(引用metadata/extract/中的文件)
  • --outputDir <值>: 输出生成的YML文件的目录
  • --tables <值>: 要提取的特定数据库表
  • --connectionRef <值>: 在application.sl.yml中定义的JDBC连接引用
  • --all: 提取所有模式和表到外部文件夹
  • --external: 在metadata/external/文件夹中输出YML文件
  • --parallelism <值>: 提取的并行级别(默认:可用CPU核心)
  • --snakecase: 应用snake_case转换到列名
  • --reportFormat <值>: 报告输出格式:consolejsonhtml

配置上下文

提取配置文件 (metadata/extract/{名称}.sl.yml)

# metadata/extract/externals.sl.yml
版本: 1
提取:
  连接引用: "duckdb"
  jdbc模式:
    - 模式: "starbake"
      表:
        - 名称: "*"              # 提取所有表
      表类型:
        - "TABLE"                # TABLE, VIEW, SYSTEM TABLE, GLOBAL TEMPORARY

连接配置

连接必须在application.sl.yml中定义:

# metadata/application.sl.yml
版本: 1
应用:
  连接:
    duckdb:
      类型: "jdbc"
      选项:
        网址: "jdbc:duckdb:{{SL_ROOT}}/datasets/duckdb.db"
        驱动: "org.duckdb.DuckDBDriver"
    source_postgres:
      类型: jdbc
      选项:
        网址: "jdbc:postgresql://{{PG_HOST}}:5432/{{PG_DB}}"
        驱动: "org.postgresql.Driver"
        用户: "{{DATABASE_USER}}"
        密码: "{{DATABASE_PASSWORD}}"

生成输出

命令生成表YAML文件,如:

# 生成: metadata/load/starbake/orders.sl.yml
版本: 1
表:
  名称: "orders"
  模式: "orders_.*.json"
  属性:
    - 名称: "order_id"
      类型: "long"
      必需: true
    - 名称: "customer_id"
      类型: "long"
    - 名称: "status"
      类型: "string"
    - 名称: "timestamp"
      类型: "timestamp"

示例

从配置中提取所有模式

starlake extract-schema --config externals --outputDir metadata/load

使用连接引用提取

starlake extract-schema --connectionRef source_postgres --outputDir metadata/load

提取特定表

starlake extract-schema --config externals --tables starbake.orders,starbake.customers

提取所有到外部文件夹

starlake extract-schema --config externals --all --external

提取时使用蛇形命名

starlake extract-schema --config externals --outputDir metadata/load --snakecase

并行提取

starlake extract-schema --config externals --outputDir metadata/load --parallelism 8

相关技能