我在 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 根本不显示它,因为格式错误而失败。
我也试过 try cbt set mytable row1 family:timestamp="\x00\x00\x01d\x865W\x00"
,但随后cbt lookup
显示带有转义反斜杠的字节串,这也不起作用:"\\x00\\x00\\x01d\\x865W\\x00"
我查看了 cbt的源代码,但我对 Go 不够熟悉,无法从那里弄清楚。
根据此问题,您无法使用 cbt 传递任意字节。您提供的时间戳由 cbt 像字符串一样处理,这就是它被转义的原因。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句