Loading
关于 Salesforce Data 360
在流转换中联接数据

在流转换中联接数据

联接通过基于主键合并来自两个单独流的数据来启用数据扩充。在流数据转换中,SQL 语句中的“INNER JOIN”和“LEFT JOIN”子句用于合并来自两个不同流的数据。连接表达式由两个对象组成:一个标识在更新时触发流转换的对象,另一个指定用于评估连接的对象。

所需的 Edition

适用于:Data 360 支持的所有版本。请参阅 Data 360 版本可用性
所需用户权限
编辑流转换

权限集:

  • Data Cloud 架构师
  • 连接条件必须包含 ON 子句。ON 子句的格式为 column = column
  • ON 子句的每一侧只能从联接的一侧引用一列,而另一侧引用联接的另一侧。
  • ON 子句中使用的列必须具有相同的数据类型。
  • 多个联接可以使用其他INNER JOINLEFT JOIN子句进行组合。一个 SQL 语句最多可连接 5 个对象。
  • 在流转换中可用作源对象的任何对象都可以在联接中使用。
  • 事件时间字段列必须用于非流“参与”输入。所有其他联接必须包含联接中任一对象的主键。
  1. 为已结合记录的数据创建目标 DLO 或 DMO。
  2. 通过单击“数据转换”选项卡上的新建,创建新的流转换。
  3. 在“目标数据湖对象”或“目标数据模型对象”页面上,选择您创建的 DLO 或 DMO。
  4. 在表达式字段中,输入 SQL 语句来定义连接。
    • 使用INNER JOINLEFT JOIN指定要加入的表。
    • 使用 ON 指定谓词,该谓词确定应匹配每个表中的哪些记录并将其包含在最终结果集中。
    • 指定要包含在目标 DLO 中的列。
  5. 单击下一步
  6. 从“审查”部分,如果多个流源可用,您可以选择流源对象。
    在新记录添加到选定流源对象时,流转换源中的更改将导致转换运行。
  7. 单击保存
示例
示例

此示例演示了两个表的内部连接:会话表和客户表。会话表记录每个客户参与事件,记录客户 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 匹配记录的条件。

page_visited

session_id

timestamp

age

state

customer_name

匹配记录的条件。

结果

如果在保存数据流时选择 sessions__dll 作为流源对象,转换仅在新记录添加到sessions__dll 流对象时触发。新customer__dll记录不会触发流转换。

 
正在加载
Salesforce Help | Article