数据提取Skill extract-data

数据提取技能用于从数据库表中高效提取数据到CSV或Parquet文件,支持全量、增量提取,并行处理,以及灵活的过滤选项,适用于数据工程和ETL流程,关键词包括数据提取、数据库、CSV、Parquet、ETL、数据工程、增量提取、并行处理。

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

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 - 将提取的数据加载到数据仓库的技能