У меня есть поле в Bigtable, где хранится метка времени. Используя cbt lookup
, поле отображается следующим образом: "\x00\x00\x01d\x865W\x00"
Эта строка байтов преобразуется в целое число, например, через Python.
int.from_bytes(b"\x00\x00\x01d\x865W\x00",'big')
1531260000000
1531260000000
- это метка времени Unix в микросекундах. Преобразование в читаемый человеком формат дает 2018-07-10T22:00:00+00:00
Как мы можем обновить это поле для другой метки времени, используя cbt ?
Из документов мы получаем команду
cbt set <table> <row> family:column=val
Но как отформатировать значение, чтобы правильно его сохранить?
Я пробовал cbt set mytable row1 family:timestamp=1531260000000
, но затем cbt lookup
отображает его как 1531260000000
, а не как строку байтов, и BigQuery вообще не отображает его, что приводит к сбою из-за неправильного формата.
Я также пытался попробовать cbt set mytable row1 family:timestamp="\x00\x00\x01d\x865W\x00"
, но затем cbt lookup
отображает строку байтов с экранированными обратными слешами, которая также не работает: "\\x00\\x00\\x01d\\x865W\\x00"
Я искал в исходном коде cbt, но я не достаточно знаком с Go, чтобы выяснить это оттуда.