Как установить maxage и maxversions для большого стола одновременно? - PullRequest
1 голос
/ 26 февраля 2020

Может кто-нибудь, пожалуйста, сообщите мне, как я могу установить политику maxage и maxversions для таблицы Bigtable одновременно в Google Cloud Platform. Я попытался использовать приведенные ниже команды, но для таблицы отражается только одна политика. Мне нужно установить обе политики для большой таблицы

Команды, которые я использовал:

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)

Не могли бы вы подсказать мне, как добиться вышеуказанного вывода FYI, для всех попыток / команд, которые я вижу только ниже, вывод, который показывает только одну политику набор.

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

Не могли бы вы указать мне это требование

Спасибо

1 Ответ

2 голосов
/ 26 февраля 2020

Я думаю, вам нужно обновить ваш инструмент 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...