Snowflake cloud data platform 具有雪花安全视图的CDC

Snowflake cloud data platform 具有雪花安全视图的CDC,snowflake-cloud-data-platform,snowflake-stream,Snowflake Cloud Data Platform,Snowflake Stream,是否有一种方法可以启用视图上的流,以便跟踪已更改的内容 示例场景: 使用安全视图处理PII数据,通过为每个表创建两个视图,例如订单表包含客户详细信息和订单摘要,创建的视图为:vw_ORDERS&vw_ORDERS_PII 不应访问PII数据的下游流程如何识别已更改的记录? 一个选项是modifieddate,但是试图避免使用内置流功能来提高效率 不能从视图中创建流;但是,您可以在构成视图的每个表上放置一个流。然后,可以在这些流之外创建视图以隐藏PII列。不确定这是否能满足您的需求,但希望它能提供

是否有一种方法可以启用视图上的流,以便跟踪已更改的内容

示例场景: 使用安全视图处理PII数据,通过为每个表创建两个视图,例如订单表包含客户详细信息和订单摘要,创建的视图为:vw_ORDERS&vw_ORDERS_PII

不应访问PII数据的下游流程如何识别已更改的记录?


一个选项是modifieddate,但是试图避免使用内置流功能来提高效率

不能从视图中创建流;但是,您可以在构成视图的每个表上放置一个流。然后,可以在这些流之外创建视图以隐藏PII列。不确定这是否能满足您的需求,但希望它能提供一些想法:

create or replace table a (id int, col1 string, PII string);
create or replace table b (id int, col1 string, PII string);

create or replace stream a_stream on table a;
create or replace stream b_stream on table b;

insert into a values (1, 'Non-PII data in table a', 'PII data');
insert into b values (1, 'Non-PII data in table b', 'PII data');

create or replace view stream_view as
select a.ID                 A_ID,
       a.col1               A_COL1,
       b.col1               B_COL1,
       a.METADATA$ACTION    A_METADATA$ACTION,
       a.METADATA$ISUPDATE  A_METADATA$ISUPDATE,
       a.METADATA$ROW_ID    A_METADATA$ROW_ID,
       b.METADATA$ACTION    B_METADATA$ACTION,
       b.METADATA$ISUPDATE  B_METADATA$ISUPDATE,
       b.METADATA$ROW_ID    B_METADATA$ROW_ID
from a_stream A left join b_stream B 
    on a.id = b.id;

select * from stream_view;

谢谢Greg,这很有效,解决了我的问题!!达摩-你能把这个答案标记为解决方案吗?:)