我需要使用Apache Beam将记录写入BigTable。但是,如果表中已经存在特定的行键,则不得写入记录。我可以在BigTable中使用条件写入吗?我在文档中没有找到使用Apache Beam的示例。
您应该能够通过创建条件行突变来检查行正则表达式,然后将您的突变应用于记录来做到这一点。这是使用Java客户端(不是HBase Java)的代码,但是对于其他客户端,您可以在documentation中找到更多示例以及要包含的所有必需软件包。
String rowkey = "YOUR_ROWKEY";
Mutation mutation =
Mutation.create().setCell(COLUMN_FAMILY_NAME, COLUMN_QUALIFIER, timestamp, VALUE);
Filter filter = FILTERS.key().regex("^YOUR_ROWKEY$");
ConditionalRowMutation conditionalRowMutation =
ConditionalRowMutation.create(tableId, rowkey).condition(filter).otherwise(mutation);