Ranger支持对Hive数据按行进行过滤(Row Level Filter),即可以对Select返回的结果按行进行过滤,只显示满足指定条件的行。本文介绍如何将Hive数据按行进行过滤。
前提条件
- 已创建集群,并选择了Ranger服务,详情请参见创建集群。
- 已创建按行过滤的表。
操作步骤
说明 本文Ranger截图以2.1.0版本为例,其余版本请以实际界面为准。
- Hive组件配置Ranger,详情请参见文档配置Hive集成Ranger。
- 在Ranger页面,单击emr-hive。
- 配置Row Level Filter Policy。
- 单击上方的Row Level Filter页签。
- 单击右上角的Add New Policy。
- 在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 |
- 单击Add。
- 可选:测试按行过滤数据。
例如,testc用户使用
select * from default.test_row_filter;
语句,查看表
default.test_row_filter中的数据时,只能显示id≥10的数据。