0

我有以下用例:

有一个 PubSub 主题,其中包含我想使用 Scio 聚合的数据,然后将这些聚合保存到 BigTable 中。

在我的管道中有一个CountByKey聚合。我想做的是能够为给定键增加BigTable 中的值,最好使用ReadModifyWrite. 在scio-examples其中只有与设置列值相关的更新,但没有使用原子增量。

我知道我需要创建Mutation才能在 BigTable 上执行任何操作,如下所示:

Mutations.newSetCell(
      FAMILY_NAME, COLUMN_QUALIFIER, ByteString.copyFromUtf8(value.toString), 0L)

如何从 Scio / Apache Beam 转换创建UPDATE突变以原子更新 BigTable 中的行?

4

1 回答 1

1

ReadModifyWrite我在 API下看不到任何类似的东西,com.google.bigtable.v2.Mutation所以不确定这是否可能。我看到 2 种可能的解决方法:

  • 将事件保存为 Pubsub 主题,从后端服务使用它并在那里增加
  • 在自定义中使用原始 Bigtable 客户端DoFn,请参阅BigtableDoFn获取灵感。
于 2018-09-21T09:26:48.040 回答