google-cloud-dataflow - 在 Apache Beam 中使用 BigTable 中的 checkAndMutate(条件写入)
问题描述
我需要使用 Apache Beam 将记录写入 BigTable。但是,如果表中已经存在特定的行键,则不能写入记录。我可以为此在 BigTable 中使用条件写入吗?我没有在文档中找到使用 Apache Beam 的示例。
解决方案
您应该能够通过创建检查行正则表达式的条件行突变来做到这一点,然后将您的突变应用于记录。这是使用 Java 客户端(不是 HBase Java)的代码,但对于其他客户端,您可以在文档中找到更多示例以及所有需要包含的包。
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);
推荐阅读
- excel - 呼叫程序无效
- javascript - Node.js 多线程:什么是工作线程,它是如何工作的?
- node.js - Socket.io 没有在 Heroku 上连接
- eslint - 如何使用 CLI 禁用 eslint 中特定规则的自动修复?
- html - 在 forEach 语句中区分多个输入形式
- python - Pandas – 保存到 csv 替换列
- github-api - Github APIcomplete_results 用于简单搜索
- typescript - 对象的类型未知,使用 AWS Cognito 身份验证
- javascript - NotFoundError:删除反应组件时找不到节点
- django - 数据未显示在数据库 django postgresql 中