set_visibility
Определение
Задает выражение видимости для одной или нескольких существующих ячеек таблицы. Требует имя таблицы, выражение с использованием доступных меток видимости и словарь, содержащий спецификации для сканирования нужных ячеек.
Использование
set_visibility '[<namespace_name>:]<table_name>',
'<visibility_expression>',
{COLUMNS => <columns_array[]>[,
TIMERANGE => [<timestamp_start>, <timestamp_end>]][,
TIMESTAMP => <cell_timestamp>][,
ROWPREFIXFILTER => '<row_prefix>'][,
STARTROW => '<start_row_key>'][,
STOPROW => '<stop_row_key>'][,
FILTER => "<filter_description>"]}
| Параметр | Описание |
|---|---|
namespace_name |
Имя пространства имен |
table_name |
Имя таблицы |
visibility_expression |
Логическое выражение, которое относится к существующей метке видимости.
Могут использоваться следующие логические операторы: |
columns_array |
Массив строк, указанных в формате |
timestamp_start |
Начальное значение для поиска временных меток ячеек |
timestamp_end |
Конечное значение для поиска временных меток ячеек |
cell_timestamp |
Временная метка ячейки |
row_prefix |
Префикс для поиска ключей строки |
start_row_key |
Начальное значение для поиска ключей строки |
stop_row_key |
Конечное значение для поиска ключей строки |
filter_description |
Фильтр, используемый для поиска ячеек таблицы |
Примеры
Установка видимости для всех существующих ячеек определенного столбца
hbase(main):010:0> set_visibility 'ns1:temp2', 'PRIVATE|SECRET', {COLUMNS => ['cf1:c1']}
1 row(s)
Took 0.0841 seconds
Попытка использования всех доступных параметров
hbase(main):009:0> set_visibility 'ns1:temp2', 'PRIVATE|SECRET', {COLUMNS => ['cf1:c1'], TIMERANGE => [1303668804000, 1303668904000], TIMESTAMP => 1303668804000, ROWPREFIXFILTER => 'r', STARTROW => 'r1', STOPROW => 'r2', FILTER => "ValueFilter(=, 'regexstring:value*')"}
0 row(s)
Took 0.0427 seconds
Попытка использования несуществующих меток видимости
hbase(main):013:0> set_visibility 'ns1:temp2', 'Z&Y', {COLUMNS => ['cf1:c1']}
ERROR: org.apache.hadoop.hbase.exceptions.FailedSanityCheckException: Invalid visibility label Z
at org.apache.hadoop.hbase.regionserver.HRegion.doBatchMutate(HRegion.java:4119)
at org.apache.hadoop.hbase.regionserver.HRegion.put(HRegion.java:2975)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.mutate(RSRpcServices.java:2806)
at org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:42000)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:130)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304)
Set the visibility expression on one or more existing cells.
Pass table name, visibility expression, and a dictionary containing
scanner specifications. Scanner specifications may include one or more
of: TIMERANGE, FILTER, STARTROW, STOPROW, ROWPREFIXFILTER, TIMESTAMP, or COLUMNS
If no columns are specified, all columns will be included.
To include all members of a column family, leave the qualifier empty as in
'col_family:'.
The filter can be specified in two ways:
1. Using a filterString - more information on this is available in the
Filter Language document attached to the HBASE-4176 JIRA
2. Using the entire package name of the filter.
Examples:
hbase> set_visibility 't1', 'A|B', {COLUMNS => ['c1', 'c2']}
hbase> set_visibility 't1', '(A&B)|C', {COLUMNS => 'c1',
TIMERANGE => [1303668804000, 1303668904000]}
hbase> set_visibility 't1', 'A&B&C', {ROWPREFIXFILTER => 'row2',
FILTER => "(QualifierFilter (>=, 'binary:xyz')) AND
(TimestampsFilter ( 123, 456))"}
This command will only affect existing cells and is expected to be mainly
useful for feature testing and functional verification.
Took 0.5326 seconds