0

Impala でユーザー ID に基づいて行レベルのセキュリティを実装する必要があります。私が現在行っているアプローチは、ユーザーからロールへのマッピングがあり、それを使用して次のようにマスター クエリを作成することです。

create view dervied_view as 
select *, 1 as roleid from src_table where a = 1 and b = 2
union
select *, 2 as roleid from src_table where a = 1 and b = 3
...
...

次に、次のように別のクエリを作成します。

create view well_known_named_view as 
select * from derived_view where roleid in 
(select roleid from role_mapping table where userid = effective_user());

このように、ユーザーがログインするたびに、ユーザー/ロールごとにビューを作成する必要なく、既知のビューをクエリするだけで済みます。問題は、このクエリが Hue (最も頻繁に使用される場所) でタイムアウトし、シェルで基本的なクエリを実行するのに少なくとも 10 分かかることです。これを機能させるより良い方法はありますか?

4

0 に答える 0