取消
顯示的結果
而不是尋找
你的意思是:

有類似於磚甲骨文VPD-Feature嗎?

quakenbush
新的貢獻者三世

因為我將一些代碼移植從甲骨文到磚,我有另一個特定的問題。

在Oracle有所謂虛擬私有數據庫,VPD。這是一個簡單的安全特性用於生成一個where子句係統會增加用戶的查詢。

基本上,你設置一個“應用程序上下文”(類似一個標簽)當一個連接。這種情況下是閱讀在一個特定的函數,然後返回一個字符串連接實際的查詢的WHERE子句。

我知道Pyspark current_user()函數的/磚。然而,我不能使用它,因為它會返回BI-tool的技術的用戶名。這就是為什麼使用VPD放在第一位。

謝謝:slightly_smiling_face:

1回複1

匿名
不適用

@Roger Bieri:

在磚,你可以使用UserDefinedFunction創建一個自定義函數(UDF)功能,將應用於DataFrame。您可以使用此功能將WHERE子句添加到DataFrame基於用戶上下文。這裏有一個例子如何使用UDF將WHERE子句應用到DataFrame基於用戶上下文:

從pyspark.sql。函數從pyspark.sql進口udf。類型進口StringType #定義定製函數添加WHERE子句DataFrame def add_where_clause (user_context):如果user_context = =“context_1”:返回“column_1 > 10”elif user_context = =“context_2”:返回“column_2 < 100”:返回“#從自定義函數創建一個UDF add_where_clause_udf = UDF (add_where_clause, StringType()) #應用UDF DataFrame添加WHERE子句df = df基於用戶上下文。選擇(“*”,add_where_clause_udf (current_user ()) .alias (“where_clause”)) df_filtered = df.filter (df。where_clause ! = " ")

在這個例子中,add_where_clause是一個自定義函數,將用戶上下文作為輸入,並返回一個WHERE子句根據上下文字符串。add_where_clause_udf函數創建一個UDF的自定義函數。然後修改應用df DataFrame where_clause UDF創建一個新的列。最後,df_filtered DataFrame是由過濾行where_clause不是一個空字符串。您可以修改add_where_clause函數以適合您的特定的用例,並應用的UDF DataFrame添加WHERE子句基於用戶上下文。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map