如何在 Meltano 中覆盖流的主键属性或增量复制键?

aar*_*ers 6 singer-io meltano

有时我们想要覆盖流的关键属性(主键)或其增量复制键。在 Meltano 执行此操作的最佳方法是什么?

aar*_*ers 8

在 Meltano yaml 文件中,您可以使用额外的配置添加table-key-properties和/或replication-key覆盖metadata

文档参考: https: //docs.meltano.com/concepts/plugins#metadata-extra

示例 yaml 代码:

extractors:
- name: tap-postgres
  metadata:
    some_stream_id:
      table-key-properties: [id]
      replication-key: created_at
      replication-method: INCREMENTAL
Run Code Online (Sandbox Code Playgroud)

此示例将主键设置为id并将复制键设置为created_at

有关通配符的更新 (2022-03-30)

根据 @visch 的评论,通配符也可以在流名称中使用,以一次匹配多个流。比如在这些例子中:

extractors:
- name: tap-postgres
  metadata:
    "*":
      # set all streams to "full table" mode
      replication-method: FULL_TABLE
Run Code Online (Sandbox Code Playgroud)

和:

extractors:
- name: tap-postgres
  metadata:
    "*":
      # ignore primary keys for all streams
      table-key-properties: []
Run Code Online (Sandbox Code Playgroud)

  • 为了测试并从歌手或新的水龙头开始,我喜欢使用元数据:'*':复制方法:FULL_TABLE 这样我就可以看到数据并稍后找出复制内容。意识到评论很难阅读,https://gitlab.com/vischous/oracle2mssql/-/blob/master/oracle2mssql/meltano.yml#L46-48 更容易 (3认同)
  • 谢谢,@visch!我已经使用这个例子更新了我的答案。 (2认同)