性能有效的 JSON 数据屏蔽 Snowflake

Performance Effective JSON data masking Snowflake

提问人:Ankit Srivastava 提问时间:12/26/2022 最后编辑:Ankit Srivastava 更新时间:12/26/2022 访问量:137

问:

我正在尝试对JSON数据执行数据屏蔽。 使用 Javascript UDF 更新嵌套 JPATH 属性列表,类似于此处所做的操作,https://www.snowflake.com/blog/masking-semi-structured-data-with-snowflake/

此外,我尝试了嵌套的 OBJECT_INSERT 语句来屏蔽特定属性,但要屏蔽多个属性,我必须构建一个子查询列表才能对上一个子查询结果执行 OBJECT INSERT,这很复杂。 前任:

FROM (
SELECT OBJECT_INSERT(VAR_COL,'LVL1',OBJECT_INSERT(VAR_COL:LVL1,'KEY1',OBJECT_INSERT(VAR_COL:LVL1.KEY1,'KEY2','VALUE',TRUE),TRUE),TRUE) AS VAR_COL
FROM TABLE
)

OBJECT_INSERT的另一个问题不允许我使用它,如果特定 JSON 行不存在 JPATH,它将添加我不想要的 JPATH。

我正在处理数百万条记录,并使用 XS Warehouse,使用 JavaScript UDF 进行简单的查询需要 15 分钟。

或者,也尝试了 Snowpark UDF,但它也显示出非常小的改进。

关于进一步提高性能的任何想法?

snowflake-cloud-data-platform 动态数据掩码

评论

0赞 NickW 12/26/2022
仅仅因为 Snowflake 可以查询 JSON 数据并不意味着保存用户将以 JSON 格式访问的数据是一个好主意。将其转换为关系格式,您的生活将变得更加轻松
0赞 Mike Walton 12/27/2022
正如@NickW所说,最好将 JSON 保留为原始形式供一般使用。您可能需要尝试对原始数据使用视图,然后将 DDM 应用于该视图。我认为这将比 UDF 更有效、更灵活。

答: 暂无答案