我试图在我的DataFlow管道中检索BigTable中某一行的最旧单元格(使用Beam SDK 2.4.0)。但是我似乎无法找到允许我这样做的任何类型的过滤器?
在管道的下方,最旧单元格的值将与最新单元格一起使用并写入BigQuery。这是我到目前为止检索最新单元格的原因:
input.apply("Read protos from BigTable", BigtableIO.read()
.withProjectId(config.getBigtableProject())
.withInstanceId(config.getBigtableInstance())
.withTableId(this.bigTableId)
.withRowFilter(RowFilter.newBuilder()
.setFamilyNameRegexFilter("proto")
.setCellsPerColumnLimitFilter(1)
.build()))
.apply("Row to TableRow", ParDo.of(new DoFn<Row, TableRow>() { ...
我希望有类似的东西,选择1个单元但反向顺序?
有什么想法吗?
答案 0 :(得分:2)
这个功能是可行的,但是没有简单的答案。一般来说,Bigtable只允许一种形式的订购。对于单元格,版本排序从最大到最小。
如果您想获得“最老”的概念,可以执行以下操作之一:
Long.MAX_VALUE - now
,然后您可以使用标准排序。