Command line 如何使用cbt set(cloud bigtable命令行工具)格式化字节字符串以设置值?

Command line 如何使用cbt set(cloud bigtable命令行工具)格式化字节字符串以设置值?,command-line,bigtable,google-cloud-bigtable,Command Line,Bigtable,Google Cloud Bigtable,我在Bigtable中有一个存储时间戳的字段。使用cbt lookup,字段显示如下“\x00\x00\x01d\x865W\x00” 例如,通过Python,此bytestring将转换为整数 int.from_bytes(b"\x00\x00\x01d\x865W\x00",'big') 1531260000000 1531260000000是以微秒为单位的unix时间戳。以人类可读的格式给出2018-07-10T22:00:00+00:00 如何使用cbt将此字段更新为不同的时间戳 我们

我在Bigtable中有一个存储时间戳的字段。使用
cbt lookup
,字段显示如下
“\x00\x00\x01d\x865W\x00”

例如,通过Python,此bytestring将转换为整数

int.from_bytes(b"\x00\x00\x01d\x865W\x00",'big')
1531260000000
1531260000000
是以微秒为单位的unix时间戳。以人类可读的格式给出
2018-07-10T22:00:00+00:00

如何使用cbt将此字段更新为不同的时间戳

我们从命令中得到了命令

cbt集合族:column=val

但是如何格式化该值以正确存储它呢

我尝试了
cbt set mytable row1 family:timestamp=1531260000000
,但随后
cbt lookup
将其显示为
1531260000000
,而不是bytestring,BigQuery根本不显示它,因为格式错误而失败

我还尝试了
cbt set mytable row1 family:timestamp=“\x00\x00\x01d\x865W\x00”
,但随后
cbt lookup
显示带有转义反斜杠的bytestring,这也不起作用:
“\\x00\\x00\\x00\\x01d\\x865W\\x00”


我查看了cbt,但我对Go不够熟悉,因此无法从中找出答案。

根据这一点,您无法使用cbt传递任意字节。您提供的时间戳由cbt像字符串一样处理,这就是它被转义的原因

根据这一点,您无法使用cbt传递任意字节。您提供的时间戳由cbt像字符串一样处理,这就是它被转义的原因

从当前文档中可以看出,这可以使用$'\' 我从文档中添加了一个用于查找的示例:

cbt-project my project-instance my instance lookup my table$'\224\257\312W\365:\205d\333\2471\315\

有关更多信息,请参阅cbt参考:

从当前文档看,这可以使用$'\'完成 我从文档中添加了一个用于查找的示例:

cbt-project my project-instance my instance lookup my table$'\224\257\312W\365:\205d\333\2471\315\

有关更多信息,请参阅cbt参考:

出于好奇,为什么要将时间戳存储为单元格值?Bigtable已经为每个单元格维护了一个时间戳字段,如果您想将其覆盖为当前时间以外的内容:@DouglasMcErlean,因为它是来自另一个数据库的字段的1-1副本,这就是它存储在那里的方式,也因为翻译/复制工具以这种方式工作。出于好奇,为什么要将时间戳存储为单元格值?Bigtable已经为每个单元格维护了一个时间戳字段,如果您想覆盖它,可以将其替换为当前时间以外的内容:@DouglasMcErlean,因为它是另一个数据库中字段的1-1副本,这就是它存储在那里的方式,也因为翻译/复制工具以这种方式工作。