在流转换中联接数据
联接通过基于主键合并来自两个单独流的数据来启用数据扩充。在流数据转换中,SQL 语句中的“INNER JOIN”和“LEFT JOIN”子句用于合并来自两个不同流的数据。连接表达式由两个对象组成:一个标识在更新时触发流转换的对象,另一个指定用于评估连接的对象。
所需的 Edition
| 适用于:Data 360 支持的所有版本。请参阅 Data 360 版本可用性。 |
| 所需用户权限 | |
|---|---|
| 编辑流转换 | 权限集:
|
- 连接条件必须包含
ON子句。ON子句的格式为column = column ON子句的每一侧只能从联接的一侧引用一列,而另一侧引用联接的另一侧。- ON 子句中使用的列必须具有相同的数据类型。
- 多个联接可以使用其他
INNER JOIN或LEFT JOIN子句进行组合。一个 SQL 语句最多可连接 5 个对象。 - 在流转换中可用作源对象的任何对象都可以在联接中使用。
- 事件时间字段列必须用于非流“参与”输入。所有其他联接必须包含联接中任一对象的主键。
- 为已结合记录的数据创建目标 DLO 或 DMO。
- 通过单击“数据转换”选项卡上的新建,创建新的流转换。
- 在“目标数据湖对象”或“目标数据模型对象”页面上,选择您创建的 DLO 或 DMO。
- 在表达式字段中,输入 SQL 语句来定义连接。
- 单击下一步。
-
从“审查”部分,如果多个流源可用,您可以选择流源对象。
在新记录添加到选定流源对象时,流转换源中的更改将导致转换运行。
- 单击保存。
示例
此示例演示了两个表的内部连接:会话表和客户表。会话表记录每个客户参与事件,记录客户 ID 及其页面访问的时间戳。客户表存储客户信息,例如年龄、性别和 ID。加入这些数据允许进行分析,例如确定来自特定州并在指定日期访问页面的客户数量。
目标 DLO
通过复制会话表的现有 DLO,创建新的 DLO。包括客户表中联接所需的列。
SQL 表达式
SELECT
sessions__dll.page_visited__c as page_visited__c,
sessions__dll.sesson_id__c as session_id__c,
sessions__dll.timestamp__c as timestamp__c,
sessions__dll.user_id__c as user_id__c,
customers_dll.age__c as age__c,
ustomers_dll.state__c as state__c,
customers_dll.customer_name__c as customer_name__c
FROM session__dll INNER JOIN customer__dll
ON customers__dll.customer_id__c = sessions__dll.user_id__c| SQL | 描述 |
|---|---|
FROM session__dll INNER JOIN customer__dll |
要连接的表。 |
ON customers__dll.customer_id__c = sessions__dll.user_id__c |
匹配记录的条件。 |
|
匹配记录的条件。 |
结果
如果在保存数据流时选择 sessions__dll 作为流源对象,转换仅在新记录添加到sessions__dll
流对象时触发。新customer__dll记录不会触发流转换。
本文章是否解决您的问题?
请与我们共享您的想法,以便我们进行改进!
