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

问题描述 投票:0回答:1

有人可以告诉我如何在 Google Cloud Platform 中同时为 bigtable 表设置

maxage
maxversions
策略吗?我尝试使用以下命令,但表中仅反映了一项策略。我需要设置这两项政策。

我使用的命令:

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)

您能否指导我如何实现上述输出 仅供参考,对于所有尝试/命令,我只看到下面的输出,其中仅显示一个策略集。

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

您能指导我这个要求吗?

google-cloud-platform cloud google-cloud-bigtable bigtable
1个回答
3
投票

我认为你需要更新你的 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)

此外,当使用 || 时和 && 作为您的策略定义,而不是“和”/“或”,您应该将整个策略放在引号中(此处有更多信息):

cbt -project <project_name> -instance <instance_name> setgcpolicy <table_name> <column_family> "maxage=30d && maxversions=100"
© www.soinside.com 2019 - 2024. All rights reserved.