Фильтрация на уровне строк в Hive с использованием Ranger
Обзор
Фильтрация на уровне строк в Hive — это функция Ranger, позволяющая управлять доступом к определенным данным внутри таблицы. Для использования фильтрации необходимо активировать плагин Ranger Hive. Пример ниже показывает, как активировать фильтрацию на уровне строк для таблицы Hive. Предполагается, что таблица Hive уже создана и заполнена данными.
В данном примере используются следующие данные:
name mass Sun 1989100000 Mercury 330 Venus 4867 Earth 5972 Mars 642 Jupiter 1898187 Saturn 568317 Uranus 86813 Neptune 102413
Политика фильтрации на уровне строк
-
В web-интерфейсе Ranger Admin выберите сервис Hive вашего кластера ADH.
Сервис Hive в Ranger
Сервис Hive в Ranger -
Откройте вкладку Row Level Filter и нажмите Add New Policy.
Вкладка Row Level Filter в Ranger
Вкладка Row Level Filter в Ranger -
Заполните параметры политики и нажмите Save.
Параметры политики фильтрации
Параметры политики фильтрацииВ колонке Row level filter ожидается выражение, которое будет выступать фильтром. Например, запрос к таблице с установленным фильтром
name='Saturn'вернет только строки, у которых в столбцеnameимеется значениеSaturn. Вы можете добавить несколько правил фильтрации и изменить порядок применения фильтров "перетаскиванием" (drag-and-drop). -
Чтобы проверить правильность работы политики, отправьте запрос к БД. В данном примере для этого используется HUE.
Результат запроса в HUE с отфильтрованными данными
Результат запроса в HUE с отфильтрованными данными