ETL示例解决方案 —— Sakila示例之load_dim_store转换(笔记六)

load_dim_store转换

load_dim_store转换的结构和load_dim_customer非常相似,就是为了加载缓慢维度变化维度表load_dim_store。
ETL示例解决方案 —— Sakila示例之load_dim_store转换(笔记六)
  在该转换中,变更数据捕获的原理与load_dim_staff转换load_dim_customer转换的原理基本相同,它同样使用 “ 维度更新查询 ” 步骤来加载并维护维度历史信息。区别在于数据源表和目标表变成了store和dim_store。和load_dim_customer转换类似,转换load_dim_store也使用了 “ 映射(子转换)”步骤来调用fetch_address转换以取得商店的地址。
  load_dim_store转换有一个之前没有遇到的步骤: “ Database lookup(数据库查询)”步骤。该步骤的名称是 “ Store Manager Lookup ”,该步骤使用SQL语句从数据库中查询数据。ETL示例解决方案 —— Sakila示例之load_dim_store转换(笔记六)
  SQL语句使用前面步骤传来的数据作为SQL参数,这些参数一般是数据库中的主键或者唯一约束,该步骤的输出列包括了输入列的所有字段,加上在查询中新增的字段,该步骤一般有下面几个用途:

  • 数据清洗和一致性:和值映射步骤类似,数据库查询步骤可以用于数据清洗和一致性。它们之间的区别在于值映射步骤中查询的值是作为常量录入的,而数据库查询步骤的值来源于关系数据库。
  • 反正规化:类似SQL语句中的join连接符把不同的列连接起来,“ 数据库查询 ” 可以把输入流中的列和数据库查询的列连接起来形成新的输出。
  • 维度表查询:当加载事实表时,数据库查询步骤可以查询维度表的主键值。
      从功能上将,load_dim_store转换里的 “ Store Manager Lookup ” 数据库查询步骤用于反正规化源数据库里的store表,以便可以加载到dim_store维度表中,这里的 “ 数据库查询 ” 步骤属于维度管理系统。
      其余步骤参照笔记(四)里面的内容详细了解。

运行成功截图:
ETL示例解决方案 —— Sakila示例之load_dim_store转换(笔记六)