阿里云爬坑日志(二):使用 Dataworks 转换数据

2024-04-28#阿里云#Dataworks

最近开始花精力使用 Dataworks 完成数据转换相关工作。我们使用的数据源是 MaxCompute,那么就使用 MaxCompute SQL 完成数据转换。

SQL转换代码中的变量替换 🔗

Dataworks的 “数据开发”( DataStudio)提供了在线编辑器,可编写数据转换任务中的SQL代码。此处的SQL代码支持变量替换,但也仅仅支持变量替换,似乎没有更强大的能力(比如代码片段复用能力)。因此 Dataworks 的设计思路上,在“复用”这个层面上,也是传统的“复用物理模型表”,而无法复用数据转换逻辑。业界流行的 DBT 包含了若干种复用能力,包括代码片段(即 macro,宏)、Ephemeral模型(即在模型之间使用相同的CTE)、物理模型表等。

变量前后的空格 🔗

在使用变量替换时,发现变量名前后的空格,似乎也被当作了变量的一部分。比如使用下面的 SQL:

SELECT 'a' || '${exec_date}' || 'b' || '${ exec_date }' || 'c'

在点击运行按钮时,输入变量的值:

在Dataworks运行脚本

可以看到,在页面上用肉眼是无法区分这两个变量的。运行SQL代码后,得到的数据是:

_c0
a20240427b20240428c

因此,在使用变量时,一定不要在变量名的前后添加空格


加载中...