自动加载Skill autoload

自动加载技能通过监控传入目录,自动推断数据文件的模式,生成配置文件,并将数据高效加载到数据仓库中,适用于快速数据集成和ETL流程优化,关键词包括:自动加载、模式推断、数据仓库、ETL、数据工程。

ETL开发 0 次安装 0 次浏览 更新于 3/15/2026

name: autoload description: 自动从传入目录推断模式并加载数据

自动加载技能

监控传入目录,自动推断新数据文件的模式,生成相应的YAML表定义,并将数据加载到数据仓库中。这是最快加载数据的方式——它将模式推断和加载结合在一步中。

使用方法

starlake autoload [选项]

选项

  • --domains <值>: 要监控的域列表,用逗号分隔(默认:全部)
  • --tables <值>: 要监控的表列表,用逗号分隔(默认:全部)
  • --clean: 在开始前覆盖现有的映射/模式文件
  • --accessToken <值>: 用于身份验证的访问令牌(例如 GCP)
  • --scheduledDate <值>: 作业的计划日期,格式:yyyy-MM-dd'T'HH:mm:ss.SSSZ
  • --options k1=v1,k2=v2: 传递给监控作业的替换参数
  • --reportFormat <值>: 报告输出格式:consolejsonhtml

工作原理

  1. 扫描传入目录中的新数据文件
  2. 从文件内容推断模式(列名、类型)
  3. metadata/load/ 中生成 _config.sl.yml{table}.sl.yml 文件
  4. 使用推断的模式将数据加载到数据仓库

传入目录在 application.sl.ymlenv.sl.yml 中定义:

# metadata/env.sl.yml
version: 1
env:
  incoming_path: "{{SL_ROOT}}/datasets/incoming"

配置上下文

自动加载在 metadata/load/{domain}/ 中创建如下表定义:

# 自动生成: metadata/load/starbake/_config.sl.yml
version: 1
load:
  name: "starbake"
  metadata:
    directory: "{{incoming_path}}/starbake"
# 自动生成: metadata/load/starbake/orders.sl.yml
version: 1
table:
  name: "orders"
  pattern: "orders_.*.json"
  attributes:
    - name: "customer_id"
      type: "long"
    - name: "order_id"
      type: "long"
    - name: "status"
      type: "string"
    - name: "timestamp"
      type: "iso_date_time"
  metadata:
    format: "JSON_FLAT"
    encoding: "UTF-8"
    array: true
    writeStrategy:
      type: "APPEND"

示例

自动加载所有传入数据

starlake autoload

自动加载特定域

starlake autoload --domains starbake

自动加载特定表

starlake autoload --domains starbake --tables orders,products

使用清理选项自动加载(重新推断模式)

覆盖现有模式文件并从数据重新推断:

starlake autoload --clean

使用JSON报告自动加载

starlake autoload --reportFormat json

相关技能

  • load - 使用预定义模式加载数据
  • infer-schema - 推断单个文件的模式
  • stage - 将文件从着陆区移动到待处理区
  • config - 配置参考