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 分かかることです。これを機能させるより良い方法はありますか?