У нас есть экземпляр Accumulo, и в некоторых таблицах есть данные, которые были написаны с помощью токенов видимости, которые не имеют ни один из наших текущих пользователей. По разным причинам мы не знаем, что все строки/токены видимости находятся внутри таблиц. Из-за этого у нас есть осиротевшие данные. Является ли их способом для пользователя или другого пользователя Accumulo определить, какие строки видимости для данных в данной таблице не имеют те, которые уже назначены им?Как определить личность таблицы Accumulo?
2
A
ответ
1
Существует несколько способов, и большинство из них связано с написанием кода.
- Вы можете изменить Accumulo, чтобы отключить фильтрацию видимости (требуется модификация VisibilityFilter, встроенного и обязательного итератора).
- Вы можете написать собственный главный итератор уплотнения, который преобразует видимость всех записей в нечто вроде «SUPERUSER | OLDLABEL», а затем предоставит авторизацию «SUPERUSER» пользователю, который вы хотите проверить данные. Вы также можете написать крупный итератор уплотнения, который просто сообщает, какие видимости он видит в отдельном журнале или что-то еще, что может быть проверено позже. (требуется разрешение alter-table и возможность добавить ваш итератор в путь к классам).
- Вы можете напрямую прочитать содержимое файлов (требуется прямой доступ к базовой распределенной файловой системе, см. RFile Reader и связанные классы или this other answer).
3
Вам нужно будет прочитать базовые RFiles непосредственно, чтобы это сделать. Один из способов сделать это - использовать включенную утилиту администрирования PrintInfo. Так как пользователь, который может читать файлы для отказа от HDFS, запустите:
accumulo org.apache.accumulo.core.file.rfile.PrintInfo --dump [hdfs:///path/to/files/xxx.rf]
Вы должны найти файлы, которые соответствуют вашей таблице, возможный путем сканирования таблицы метаданных для столбца «файл» семьи. Однако специфика будет зависеть от того, какая версия Accumulo вы используете.
Смежные вопросы
- 1. Как определить личность машины Windows?
- 2. Невозможно определить личность домена с помощью System.IO.Packaging
- 3. Изолированное Хранение Исключение: Невозможно определить личность домена
- 4. Ошибка сопоставления имени таблицы Accumulo Ошибка
- 5. Accumulo - Добавление нового узла
- 6. Как узнать количество записей или размер таблицы в Accumulo?
- 7. Как обновить ярлык видимости Accumulo?
- 8. Развертывание dacpac через Powershell вызвало ошибку: «Невозможно определить личность домена»
- 9. определить личность клиентов MQTT и брокера Mosquitto в сценарии IoT?
- 10. Как преобразовать реляционную схему в схему Accumulo?
- 11. Как сохранить личность при откат транзакции?
- 12. Удаление строки из таблицы на основе значения [Accumulo]
- 13. Accumulo Iterators SortedKeyValueIterator source
- 14. Adminer for Accumulo
- 15. Grails и Accumulo, получая ошибку в банке Accumulo
- 16. Область интересов Уникальность и личность
- 17. Не удалось запустить Accumulo
- 18. Accumulo - MiniAccumuloCluster Connection Refused
- 19. Hive Accumulo Интеграция
- 20. Изменить Accumulo Колонка Классификатор
- 21. Поддерживает ли Accumulo агрегацию?
- 22. Вставить в ... Выбрать *, как игнорировать личность?
- 23. PHP Личность Insights
- 24. Структуры и личность
- 25. Почему эта личность неоднозначна?
- 26. . Db2 есть личность insert?
- 27. onclick и личность объекта
- 28. HttpWebResponse Кодирование содержимого: личность
- 29. Личность и признание транспортного средства
- 30. Простой JQuery Личность Викторина
Вы можете уточнить, что вы имели в виду, когда вы сказали «встроенный и обязательный итератор»? Является ли VisibilityFilter всегда примененным Accumulo, по умолчанию? В частности, если я использовал оболочку Accumulo и запускал сканирование в таблице (например, сделал «scan -t testtable»), включился ли VisibilityFilter? Я добавлял некоторый код в VisibilityFilter, чтобы попытаться понять, что он делает, и протестировал его с помощью оболочки и выполнил сканирование, и это не выглядело так, как вызывается InvibilityFilter. – user555303
Файл VisibilityFilter всегда применяется Accumulo. Вам нужно будет отредактировать исходный код, чтобы изменить это поведение. Есть два VisibilityFilters. Существует встроенный «системный», который строго обеспечивает защиту данных, а затем существует «пользовательская» версия, которая может быть применена для вторичной фильтрации пользователем в стеке итератора. Вероятно, вы, вероятно, изменили последнее. Тем не менее, также возможно, что кто-то может наблюдать такое же поведение даже после редактирования правильного, если им не удалось надлежащим образом распространить обновленный код на путь класса компонентов сервера и перезапустить их. – Christopher
Я действительно нашел о двух классах в эти выходные (я думал, что представляю)! И да, теперь, когда я добавил код в систему VisibilityFilter, я могу получить вывод журнала. Спасибо за ваш ответ, хотя, как он объясняет, почему есть два из них! – user555303