模式推断Skill infer-schema

这个技能用于从数据文件(如CSV、JSON、XML、Parquet)中自动推断出Starlake表的模式,并生成对应的YAML配置文件。适用于数据工程中的模式发现、元数据管理和ETL开发流程,帮助数据团队快速建立数据结构。关键词:数据模式推断,ETL开发,YAML配置,文件分析,元数据生成。

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

name: infer-schema description: 从数据文件推断Starlake模式

模式推断技能

分析数据文件(CSV、JSON、XML、Parquet)并推断Starlake表模式,生成检测到的列名、类型和格式元数据的对应YAML配置文件。

使用方法

starlake infer-schema [选项]

选项

  • --input <value>:要分析的数据文件或目录的路径(必需)
  • --domain <value>:生成模式的域名(例如 starbake
  • --table <value>:生成模式的表名(例如 orders
  • --outputDir <value>:YAML文件的输出目录(默认:metadata/load
  • --write <value>:写入模式:OVERWRITEAPPEND
  • --format <value>:强制输入文件格式:DSVJSONJSON_FLATJSON_ARRAYXMLPARQUET
  • --rowTag <value>:XML文件的行标签(例如 record
  • --variant:推断模式为单一变体属性(schema-on-read)
  • --clean:在写入前删除之前的YAML文件
  • --encoding <value>:输入文件编码(默认:UTF-8
  • --from-json-schema:输入文件是JSON模式文件(不是数据)
  • --reportFormat <value>:报告输出格式:consolejsonhtml

生成输出

该命令生成一个表YAML文件,例如:

# 生成: metadata/load/starbake/orders.sl.yml
version: 1
table:
  name: "orders"
  pattern: "orders_.*.json"
  attributes:
    - name: "customer_id"
      type: "long"
      sample: "9"
    - name: "order_id"
      type: "long"
      sample: "99"
    - name: "status"
      type: "string"
      sample: "Pending"
    - name: "timestamp"
      type: "iso_date_time"
      sample: "2024-03-01T09:01:12.529Z"
  metadata:
    format: "JSON_FLAT"
    encoding: "UTF-8"
    array: true
    writeStrategy:
      type: "APPEND"

示例

从CSV文件推断

starlake infer-schema --domain starbake --table order_lines --input /data/order-lines_20240301.csv --format DSV

从JSON文件推断

starlake infer-schema --domain starbake --table orders --input /data/orders_20240301.json

从XML文件推断

starlake infer-schema --domain starbake --table products --input /data/products.xml --rowTag record

从Parquet文件推断

starlake infer-schema --domain starbake --table events --input /data/events.parquet

从JSON模式推断

starlake infer-schema --domain starbake --table orders --input /schemas/orders.json --from-json-schema

覆盖现有模式

starlake infer-schema --domain starbake --table orders --input /data/orders.json --clean

推断为变体(读取时模式)

starlake infer-schema --domain starbake --table events --input /data/events.json --variant

相关技能