Ranger支持对Hive数据按行进行过滤(Row Level Filter),即可以对Select返回的结果按行进行过滤,只显示满足指定条件的行。本文介绍如何将Hive数据按行进行过滤。

前提条件

  • 已创建集群,并选择了Ranger服务,详情请参见创建集群
  • 已创建按行过滤的表。

操作步骤

说明 本文Ranger截图以2.1.0版本为例,其余版本请以实际界面为准。
  1. Hive组件配置Ranger,详情请参见文档配置Hive集成Ranger
  2. 在Ranger页面,单击emr-hive
    Ranger-2
  3. 配置Row Level Filter Policy。
    1. 单击上方的Row Level Filter页签。
    2. 单击右上角的Add New Policy
    3. Create Policy页面,配置相关参数。
      参数 描述 示例
      Policy Name Policy的名称。您可以自定义。 test-row-filter
      Hive Database 添加Hive中的数据库。 default
      Hive Table 添加表。 test_row_filter
      Select User 选择配置按行过滤的用户。 testc
      Access Types 选择授予的权限。 select
      Row Level Filter 填写过滤的函数。 id>=10
    4. 单击Add
  4. 可选:测试按行过滤数据。
    例如,testc用户使用select * from default.test_row_filter;语句,查看表default.test_row_filter中的数据时,只能显示id≥10的数据。hive-row