我在 s3 中有一个数据仓库,具有铜牌、银牌和金牌层,其中数据以增量格式保存。我需要从银表创建金表,并决定最好的方法是在 athena 中创建一个视图。该视图需要包含几个转换,其中一列的值根据另一列的值进行修改,还需要一个转换,其中根据另一列的正则表达式匹配创建和填充新列。
我已经能够在 pyspark 中执行此操作,但无法将其移动到 athena 中的 sql 语句。对于第一次转变,我尝试了这个:
CREATE OR REPLACE VIEW "test_view" AS
SELECT a.*
set property_name = (CASE
WHEN domain = 'Some.com'
THEN 'properties/4'
END);
FROM "silver_d"."silver_table" a
但是出现以下错误: 只允许一条sql语句。
有谁知道如何基于表创建视图并应用这些转换?
任何帮助将不胜感激
case 语句中的分号是引发“仅允许一个 sql 语句”错误的原因。
删除分号,删除“设置”并调整/重新格式化您的查询,如下所示:
CREATE OR REPLACE VIEW "test_view" AS
SELECT a.*,
CASE
WHEN domain = 'Some.com' THEN 'properties/4'
END as property_name
FROM "silver_d"."silver_table" a