Command line 如何使用cbt set(cloud bigtable命令行工具)格式化字节字符串以设置值?
我在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将此字段更新为不同的时间戳 我们
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副本,这就是它存储在那里的方式,也因为翻译/复制工具以这种方式工作。