Фильтрация на уровне строк в 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

Политика фильтрации на уровне строк

  1. В web-интерфейсе Ranger Admin выберите сервис Hive вашего кластера ADH.

    Сервис Hive в Ranger
    Сервис Hive в Ranger
    Сервис Hive в Ranger
    Сервис Hive в Ranger
  2. Откройте вкладку Row Level Filter и нажмите Add New Policy.

    Вкладка Row Level Filter в Ranger
    Вкладка Row Level Filter в Ranger
    Вкладка Row Level Filter в Ranger
    Вкладка Row Level Filter в Ranger
  3. Заполните параметры политики и нажмите Save.

    Параметры политики фильтрации
    Параметры политики фильтрации
    Параметры политики фильтрации
    Параметры политики фильтрации

    В колонке Row level filter ожидается выражение, которое будет выступать фильтром. Например, запрос к таблице с установленным фильтром name='Saturn' вернет только строки, у которых в столбце name имеется значение Saturn. Вы можете добавить несколько правил фильтрации и изменить порядок применения фильтров "перетаскиванием" (drag-and-drop).

  4. Чтобы проверить правильность работы политики, отправьте запрос к БД. В данном примере для этого используется HUE.

    Результат запроса в HUE с отфильтрованными данными
    Результат запроса в HUE с отфильтрованными данными
    Результат запроса в HUE с отфильтрованными данными
    Результат запроса в HUE с отфильтрованными данными
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней