何时使用 BigTableIO.write() API 与 CloudBigtableIO.CloudBigtableSingleTableBufferedWriteFn API

问题描述 投票:0回答:2

我看到有两个 API 可用于写入 GCP BigTable:

BigTableIO.write()
CloudBigtableIO.CloudBigtableSingleTableBufferedWriteFn
。我正在开发一个数据流管道,以从一个 BigTable 读取数据并将处理后的输出存储在另一个 BigTable 中。处理负载很大——10TB。

我想知道根据大数据集写入BigTable的要求,使用哪个API。

google-cloud-bigtable bigtable
2个回答
1
投票

根据您的用例,强烈建议使用 CloudBigTableIO API,因为您正在编写 Dataflow 管道。

BigtableIO
类来自 Beam SDK,而
CloudBigtableIO
类来自 Google。

一些 CloudBigTableIO 的优势包括:

  • 记录完善的 HBase API
  • 读取非常大的表时效率更高
  • Pub/Sub 作为来源更高效
  • 轻松创建自定义 DoFns

0
投票

截至 2023 年 8 月的答复(来自内部问答,分享以获得更好的可见性)

从技术上讲,它们是两种不同的实现。

  • Apache Beam 的 BigtableIO 使用 Cloud Bigtable Protos 来存储读取结果和突变。

  • CloudBigtableIO 使用 HBase 结果和 Puts。

由于两种写入都是通过批量突变完成的,因此对于单个表的大容量写入没有任何偏好。应该没关系。用户可以继续使用现有的实现。两者都被大量使用并且得到积极维护。

更新 Beam 的 HBaseIO 以与 Bigtable 的 hbase 适配器兼容(最重要的是可扩展)是一个长期目标。 HBaseIO 的一些最新更新(大约从 Beam 2.46.0 开始)反映了这一努力。

© www.soinside.com 2019 - 2024. All rights reserved.