在单个 transaction/api 调用中将数据从一列移动到另一列

Move data from one column to another in a single transaction/api call

我正在使用 NodeJs library for bigtable

我有两列。列 A 和列 B。

在单个call/transaction中,我想将ColumnA中的数据移动到ColumnB中,同时删除ColumnA中的数据。

我可以分 3 个步骤完成:

1.. Get 来自 bigtable 的 ColumnA

2..Update 列 B

3..Delete 列 A

但我想知道是否可以在一次调用(最好是一次事务)中完成所有这些步骤?

谢谢

您可以通过批量突变将这三个 API 调用变成两个,但是在执行突变时无法获取值。

按照此示例在同一个批量变更中更新和删除,但请注意操作是非原子的

const entries = [
  {
    method: 'insert',
    key: 'your#key',
    data: {
      yourQualifier: {
        ColB: ColAValue
      }
    }
  }, {
    method: 'delete',
    key: 'your#key',
    data: [
      'yourQualifier:ColA'
    ]
  }
];

table.mutate(entries, callback);

有关详细信息,请查看 Cloud Bigtable writing data documentation and the write concept 页面。