Skip to content

完全自定义配置

索引引擎管道的主要配置部分如下所述。每个配置部分可以用 Python(用于 Python API 模式)和 YAML 表示,但为了简洁起见,这里展示的是 YAML。

使用自定义配置是高级用例。大多数用户可能更愿意使用默认配置

索引引擎示例

示例目录包含几个如何使用索引引擎进行_自定义配置_的示例。

大多数示例包括两种不同的运行管道方式,这两种方式都包含在示例的 run.py 中:

  1. 主要使用 Python API
  2. 主要使用管道配置文件

运行示例:

  • 运行 poetry shell 以激活包含所需依赖项的虚拟环境。
  • root 目录运行 PYTHONPATH="$(pwd)" python examples/path_to_example/run.py

例如,要运行 single_verb 示例,您可以运行以下命令:

poetry shell
PYTHONPATH="$(pwd)" python examples/single_verb/run.py

配置部分

> extends

此配置允许您扩展一个或多个基础配置文件。

# 单个基础
extends: ../base_config.yml
# 多个基础
extends:
  - ../base_config.yml
  - ../base_config2.yml

> root_dir

此配置允许您设置管道的根目录。所有数据输入和输出都假定相对于此路径。

root_dir: /workspace/data_project

> storage

此配置允许您定义管道的输出策略。

  • type: 要使用的存储类型。选项有 filememoryblob
  • base_dir(仅限 type: file):存储数据的基本目录。相对于配置根目录。
  • connection_string(仅限 type: blob):用于 blob 存储的连接字符串。
  • container_name(仅限 type: blob):用于 blob 存储的容器。

> cache

此配置允许您定义管道的缓存策略。

  • type: 要使用的缓存类型。选项有 filememoryblob
  • base_dir(仅限 type: file):存储缓存的基本目录。相对于配置根目录。
  • connection_string(仅限 type: blob):用于 blob 存储的连接字符串。
  • container_name(仅限 type: blob):用于 blob 存储的容器。

> reporting

此配置允许您定义管道的报告策略。报告文件是生成的工件,总结了管道的性能指标并发出任何错误消息。

  • type: 要使用的报告类型。选项有 filememoryblob
  • base_dir(仅限 type: file):存储报告的基本目录。相对于配置根目录。
  • connection_string(仅限 type: blob):用于 blob 存储的连接字符串。
  • container_name(仅限 type: blob):用于 blob 存储的容器。

> workflows

此配置部分定义了管道的工作流 DAG。在这里,我们定义了一个工作流数组,并在步骤中表达它们的相互依赖关系:

  • name: 工作流的名称。这在配置的其他部分用于引用工作流。
  • steps: 该工作流包含的 DataShaper 步骤。如果一个步骤以 workflow:<workflow_name> 的形式定义输入,则假定它依赖于该工作流的输出。
workflows:
  - name: workflow1
    steps:
      - verb: derive
        args:
          column1: "col1"
          column2: "col2"
  - name: workflow2
    steps:
      - verb: derive
        args:
          column1: "col1"
          column2: "col2"
        input:
          # 依赖关系在此处建立
          source: workflow:workflow1

> input

  • type: 要使用的输入类型。选项有 fileblob
  • file_type: 文件类型字段区分不同的输入类型。选项有 csvtext
  • base_dir: 读取输入文件的基本目录。相对于配置文件。
  • file_pattern: 匹配输入文件的正则表达式。正则表达式必须为文件过滤器中的每个字段命名组。
  • post_process: 在执行主要工作流之前应用于输入的 DataShaper 工作流定义。
  • source_column(仅限 type: csv):包含数据源/作者的列
  • text_column(仅限 type: csv):包含数据文本的列
  • timestamp_column(仅限 type: csv):包含数据时间戳的列
  • timestamp_format(仅限 type: csv):时间戳的格式
    input:
      type: file
      file_type: csv
      base_dir: ../data/csv # 包含CSV文件的目录,相对于配置文件
      file_pattern: '.*[\/](?P<source>[^\/]+)[\/](?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})_(?P<author>[^_]+)_\d+\.csv$' # 匹配CSV文件的正则表达式
      # 一个额外的文件过滤器,使用文件模式中的命名组进一步过滤文件
      # file_filter:
      #   # source: (source_filter)
      #   year: (2023)
      #   month: (06)
      #   # day: (22)
      source_column: "author" # 包含数据来源/作者的列
      text_column: "message" # 包含数据文本的列
      timestamp_column: "date(yyyyMMddHHmmss)" # 可选,包含数据时间戳的列
      timestamp_format: "%Y%m%d%H%M%S" # 可选,时间戳的格式
      post_process: # 可选,在数据进入工作流之前处理数据的步骤集
        - verb: filter
          args:
            column: "title",
            value: "My document"
    
    input:
      type: file
      file_type: csv
      base_dir: ../data/csv # 包含CSV文件的目录,相对于配置文件
      file_pattern: '.*[\/](?P<source>[^\/]+)[\/](?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})_(?P<author>[^_]+)_\d+\.csv$' # 匹配CSV文件的正则表达式
      # 一个额外的文件过滤器,使用文件模式中的命名组进一步过滤文件
      # file_filter:
      #   # source: (source_filter)
      #   year: (2023)
      #   month: (06)
      #   # day: (22)
      post_process: # 可选,在进入工作流程之前处理数据的一系列步骤
        - verb: filter
          args:
            column: "title",
            value: "My document"