Перемещение данных из одного столбца в другой в одной транзакции / вызов API - PullRequest
1 голос
/ 01 ноября 2019

Я использую библиотеку NodeJs для bigtable .

У меня есть два столбца. ColumnA и ColumnB.

В одном вызове / транзакции я хочу переместить данные из ColumnA в ColumnB и одновременно удалить данные в ColumnA.

Я могу сделать это в3 шага:

1 .. Получить ColumnA от bigtable

2 .. Обновление ColumnB

3 .. Delete ColumnA

Но мне было интересно, возможно ли выполнить все эти шаги за один вызов (и в идеале за одну транзакцию)?

Спасибо

1 Ответ

1 голос
/ 01 ноября 2019

Вы можете превратить эти три вызова 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 для записи данных и страницей concept .

...