在 Snowflake 事实表中反透视多个度量列

问题描述 投票:0回答:0

我正在尝试取消透视具有以下结构的事实表

source : 
customer_id , product_id, week, measure1 , measure2 , measure3 ... measure10 
CUST_101,PROD_101, W10,10,20,30...100

to

target : 
customer_id , product_id,week,measure_code, measure_value
CUST_101,PROD_101, W10,'MSR1',10
CUST_101,PROD_101, W10,'MSR2',20
CUST_101,PROD_101, W10,'MSR3',30
CUST_101,PROD_101, W10,'MSR4',40
CUST_101,PROD_101, W10,'MSR5',50
CUST_101,PROD_101, W10,'MSR6',60
CUST_101,PROD_101, W10,'MSR7',70
CUST_101,PROD_101, W10,'MSR8',80
CUST_101,PROD_101, W10,'MSR9',90
CUST_101,PROD_101, W10,'MSR10',100

Data volume in  source table :  ~ 15 ~ 25  million records in incremental batches

我打算按照Unpivot multiple columns in Snowflake中的建议使用UNION ALL

方法

INSERT 到 Target (customer_id, product_id,week,measure_code, measure_value) 选择 customer_id , product_id,week,'MSR1',measure1 从源头 联合所有 选择 customer_id , product_id,week,'MSR2',measure2 从源头 ... 选择 customer_id , product_id,week,'MSR10',measure10 来自源头

有没有更优化的方法来完成这个? 我的目标是存储过程在 30 分钟内完成运行并使用中型仓库。

谢谢, 阿达什

sql performance snowflake-cloud-data-platform sql-insert unpivot
© www.soinside.com 2019 - 2024. All rights reserved.