name: extract-data description: 从数据库表提取数据到CSV/Parquet文件
数据提取技能
将数据从数据库表提取到本地文件(CSV, Parquet)。支持全量和增量提取、并行处理以及模式/表过滤。
用法
starlake extract-data [选项]
选项
--config <值>: 提取配置名称(必需)— 引用metadata/extract/中的文件--outputDir <值>: 输出数据文件的位置(必需)--limit <值>: 限制每个表提取的记录数--numPartitions <值>: 分区表提取的并行级别--parallelism <值>: 整体提取过程的并行级别--ignoreExtractionFailure: 即使个别表失败也继续提取--clean: 在提取表之前清理其所有文件--incremental: 仅导出自上次提取以来的新数据(使用时间戳跟踪)--ifExtractedBefore <值>: 仅在上次提取早于此时同之前时提取--includeSchemas <值>: 包含的模式/域逗号分隔列表--excludeSchemas <值>: 排除的模式/域逗号分隔列表--includeTables <值>: 包含的表逗号分隔列表--excludeTables <值>: 排除的表逗号分隔列表--reportFormat <值>: 报告输出格式:console,json, 或html
配置上下文
提取配置
# metadata/extract/externals.sl.yml
version: 1
extract:
connectionRef: "source_postgres"
jdbcSchemas:
- schema: "sales"
tables:
- name: "orders"
fullExport: false
partitionColumn: "id"
numPartitions: 4
timestamp: "updated_at"
fetchSize: 1000
- name: "customers"
fullExport: true
- name: "*" # 所有剩余表
示例
全量数据提取
starlake extract-data --config externals --outputDir /tmp/output
增量提取
仅提取自上次提取以来添加/更新的行:
starlake extract-data --config externals --outputDir /tmp/output --incremental
带记录限制的提取
starlake extract-data --config externals --outputDir /tmp/output --limit 1000
提取特定模式
starlake extract-data --config externals --outputDir /tmp/output --includeSchemas sales,hr
排除特定表的提取
starlake extract-data --config externals --outputDir /tmp/output --excludeTables audit_log,temp_data
具有容错性的并行提取
starlake extract-data --config externals --outputDir /tmp/output --parallelism 8 --ignoreExtractionFailure
提取前清理
starlake extract-data --config externals --outputDir /tmp/output --clean
相关技能
- extract - 提取模式和数据的技能
- extract-schema - 仅提取模式元数据的技能
- load - 将提取的数据加载到数据仓库的技能