簡體   English   中英

如何在 Apache Superset 1.5.0 中實現后處理

[英]How to implement post-processing in Apache Superset 1.5.0

我目前正在通過匿名列配置的自定義實現來擴展當前的 Apache Superset 1.5.0 版本(如圖1所示)。 預期的想法是,如果數據集編輯器中的列設置為匿名,那么超集應該查詢來自數據庫的數據,但將它們發送到前端之前,特定列應該是匿名的。

我已經能夠將該復選框值存儲在數據庫中,因為我不熟悉后端實現,我不知道將匿名化功能的具體實現放在哪里。

我已經發現查詢結果可以在query_context_processor.py中進行后處理,但是如果將列設置為匿名,我該如何獲取信息呢?

新列配置

這不是一件微不足道的事情,依賴后處理是不安全的——它很容易被惡意用戶繞過,因為后處理是來自客戶端的請求。

我相信正確的方法是擴展列模型並向其添加anonymized屬性。 請注意,正在努力更新列模型(以及其他模型),這會使事情變得有些復雜,因為您可能還需要將邏輯添加到舊模型中,直到遷移完成。 有了這個,您將能夠確定給定數據集中的哪些列需要匿名,並且您可以在構建查詢對象時將它們替換為函數。

如果您只有幾列要匿名化,一種方法是創建一個具有匿名列的虛擬數據集,並僅向用戶授予對該數據集的訪問權限,而不是基礎表。 例如,您可以編寫以下 SQL:

SELECT
  user_id, user_username, HASH(user_email) AS anonymized_email, ...
FROM ...
...

然后將其保存為虛擬數據集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM