如何同时设置bigtable table的maxage和maxversions?

How to set maxage and maxversions for bigtable table at the same time?

有人可以告诉我如何在 Google Cloud Platform 中同时为 bigtable table 设置 maxage 和 maxversions 策略。我尝试使用以下命令,但 table 只反映了一项政策。我需要为 bigtabletable

设置这两个策略

我使用的命令:

cbt -project <project_name> -instance <instance_name> setgcpolicy <table_name> <column_family> maxage=30d maxversions=100
cbt -project <project_name> -instance <instance_name> setgcpolicy <table_name> <column_family> "maxage=30d" && "maxversions=100"
cbt -project <project_name> -instance <instance_name> setgcpolicy <table_name> <column_family> maxage=30d and maxversions=100
cbt -project <project_name> -instance <instance_name> setgcpolicy <table_name> <column_family> maxage=30d|maxversions=100

我设置的下一个 setgcpolicy 策略只是覆盖了之前的策略。

预期输出应如下所示 -

cbt -project <project_name> -instance <instance_name> ls <table_name>
Family Name     GC Policy
-----------     ---------
rec             (age() > 30d || versions() > 100)

能否请您指导我如何实现上述输出 仅供参考,对于所有 tries/commands 我只看到下面的输出,它只显示了一个策略集。

Family Name     GC Policy
-----------     ---------
demoSeg         versions() > 1
<columne_family>          age() > 30d

你能指导我这个要求吗

谢谢

我认为您需要更新您的 cbt 工具。过去几个月添加了设置多个垃圾收集的功能,因此您可能从那时起就没有更新过。

运行 更新您的工具:

gcloud components update

我的版本是 "cbt 0.9.0 6ab8d8ff 2020-02-07 17:57:00",我能够使用您指定的命令成功完成此操作:

bigtable[master]$ cbt createtable gc-test
bigtable[master]$ cbt createfamily gc-test cf
bigtable[master]$ cbt setgcpolicy gc-test cf maxage=30d and maxversions=100
bigtable[master]$ cbt ls gc-test
Family Name GC Policy
----------- ---------
cf      (age() > 30d && versions() > 100)

还有,当使用||和 && 对于您的策略定义而不是 "and"/"or",您应该将整个策略放在引号中 (more info here):

cbt -project <project_name> -instance <instance_name> setgcpolicy <table_name> <column_family> "maxage=30d && maxversions=100"