【发布时间】:2021-02-05 11:57:37
【问题描述】:
我有一个具有以下结构的数组:
var array = [
{
"dim_label": "...",
"dim_name": "...",
"field_label": "...",
"field_name": "..."
},
{
"dim_label": "...",
"dim_name": "...",
"field_label": "...",
"field_name": "..."
}
]
我需要在 Snwoflake 过程中循环它并将必要的行合并到它们的相关表中。我当前的程序是从 CSV 暂存文件中读取并像这样进行合并:
var field_label_query = "MERGE INTO SAT_FIELD AS D "+
"USING (SELECT T.$"+FIELD_LABEL_POSITION+", T.$"+FIELD_ONA_POSITION+" FROM "+FILE_FULL_PATH+"(FILE_FORMAT=>"+FILE_FORMAT_NAME+") T) ST "+
"ON D.FIELD_NAME_HASH_KEY = md5(ST.$"+FIELD_ONA_POSITION+") "+
"WHEN NOT MATCHED THEN "+
"INSERT (SAT_FIELD_HASH_KEY, LOAD_DT, LOAD_END_DT, RECORD_SRC, FIELD_LABEL_NAME, FIELD_NAME_HASH_KEY) "+
"VALUES(MD5(ST.$"+FIELD_LABEL_POSITION+"), current_timestamp(), NULL, 'ONA', ST.$"+FIELD_LABEL_POSITION+", md5(ST.$"+FIELD_ONA_POSITION+"))";
是否可以在不将数组数据添加到临时表的情况下进行合并?
【问题讨论】:
-
您是否尝试过仅使用数组的
LATERAL FLATTEN?您可以在 USING 选择中使用 CTE。 -
雪花中的 CTE 是什么?
-
@MikeWalton 希望您能帮上忙,先生。
标签: snowflake-cloud-data-platform