如何将Snowflake表中VIEWS、CLICKS转为JSON用于Braze集成?
Snowflake生成符合Braze导入要求的表结构方案
实现思路
将原有表中的VIEWS、CLICKS字段转换为指定格式的JSON字符串,存入PAYLOAD字段,最终生成包含UPDATED_AT、EXTERNAL ID(可重命名为EXTERNAL_ID)、PAYLOAD的视图或表,满足Braze的导入格式要求。
具体SQL实现
方式1:创建视图(推荐,无需存储冗余数据)
CREATE OR REPLACE VIEW BRAZE_IMPORT_VIEW AS SELECT UPDATED_AT, "EXTERNAL ID" AS EXTERNAL_ID, TO_JSON( OBJECT_CONSTRUCT( 'VIEWS', TO_VARCHAR(VIEWS), 'CLICKS', TO_VARCHAR(CLICKS) ) ) AS PAYLOAD FROM YOUR_SOURCE_TABLE_NAME;
方式2:创建新表(用于持久化转换后的数据)
CREATE OR REPLACE TABLE BRAZE_IMPORT_TABLE AS SELECT UPDATED_AT, "EXTERNAL ID" AS EXTERNAL_ID, TO_JSON( OBJECT_CONSTRUCT( 'VIEWS', TO_VARCHAR(VIEWS), 'CLICKS', TO_VARCHAR(CLICKS) ) ) AS PAYLOAD FROM YOUR_SOURCE_TABLE_NAME;
代码说明
OBJECT_CONSTRUCT:构建包含VIEWS和CLICKS键值对的对象,通过TO_VARCHAR将数值类型的字段转换为字符串(匹配示例中JSON值的字符串格式)TO_JSON:将构建好的对象转换为标准JSON格式的字符串,存入PAYLOAD字段- 原字段
EXTERNAL ID含空格,查询时需用双引号包裹,重命名为EXTERNAL_ID可避免后续操作的格式问题
验证结果
执行以下查询确认输出结构符合要求:
SELECT UPDATED_AT, EXTERNAL_ID, PAYLOAD FROM BRAZE_IMPORT_VIEW LIMIT 1;
输出示例:
| UPDATED_AT | EXTERNAL_ID | PAYLOAD |
|---|---|---|
| 10/12/2023 | 1 | { "VIEWS": "100", "CLICKS": "100" } |
内容的提问来源于stack exchange,提问作者ibarbo
相关产品推荐
相关产品推荐

