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 <值>: 报告输出格式:console、json或html
工作原理
- 扫描传入目录中的新数据文件
- 从文件内容推断模式(列名、类型)
- 在
metadata/load/中生成_config.sl.yml和{table}.sl.yml文件 - 使用推断的模式将数据加载到数据仓库
传入目录在 application.sl.yml 或 env.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 - 配置参考