第八章 综合案例——构建DVD租赁商店数据仓库③

2023-10-26

8.3.7 加载演员数据至演员维度表

1.打开Kettle工具

打开Kettle工具,创建一个转换load_dim_actor,并添加表输入,插入/更新等控件。 

2.配置表输入控件 

双击“表输入”控件,进入“表输入”配置界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。     

在SQL框中编写SQL语句,用于获取字段actor_last_update中的最大值,将该值替换为”1970-01-01 00:00:00”并赋值给临时字段max_dim_actor_last_update。

单击“预览”按钮,查看临时字段max_dim_actor_last_update是否将默认值设置为“1970-01-01 00:00:00”。 

                                                                         

3.配置表输入2控件 

双击“表输入2”控件,进入“表输入”界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。      

在SQL框中编写SQL语句,用于获取数据库sakila中数据表actor中的最新数据。                                                                          

4.配置插入/更新控件 

双击“插入/更新”控件,进入“插入/更新”界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。                                                                           

单击目标表右侧的【浏览】按钮,弹出“数据库浏览器”窗口,选择目标表,即维度表dim_actor,单击【获取字段】按钮,用来指定查询数据所需要的关键字,这里选择的是dim_actor数据表中的actor_id字段和输入流里面的actor_id字段;单击【获取和更新字段】按钮,用来指定需要更新的字段。

                                          

5.运行转换load_dim_actor ,查看结果。

单击转换工作区顶部的按钮,运行创建的转换load_dim_actor,实现加载演员数据至演员维度表dim_actor中。                                                                                


8.3.8加载电影数据至电影维度表

1.打开Kettle工具 

打开Kettle工具,创建转换load_dim_film,并添加表输入,数据库查询,值映射,增加常量,列拆分,列转行,联合查询/更新,计算器,数据库连接,分组,流查询,插入/更新等控件。 

 2.配置表输出控件

双击“表输入”控件,进入“表输入”配置界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。

在SQL框中编写SQL语句,用于获取字段film_last_update中的最大值,将该值替换为”1970-01-01 00:00:00”并赋值给临时字段max_dim_film_last_update。

单击“预览”按钮,查看临时字段max_dim_film_last_update是否将默认值设置为“1970-01-01 00:00:00”。 

                                                                       

 3.配置表输入2控件。

双击“表输入2”控件,进入“表输入”界面,单击【新建】按钮,配置数据库连接。                                                                           

在SQL框中编写SQL语句,用于获取sakila数据库中film数据表中的最新数据。

4.配置数据库查询控件 

双击“数据库查询”控件,进入“数据库查询”界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。

单击表名处的【浏览】按钮,添加数据表language,用于查询电影的语言,在“查询所需的关键字”框中,添加查询所需的关键字字段language_id,用于指定表字段和流字段的比较条件;在“查询表返回的值”框中,添加查询表返回的字段name,并重命名为language。 

5.配置数据库查询2控件 

双击“数据库查询2”控件,进入“数据库查询”界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。                                                                          

单击表名处的【浏览】按钮,添加数据表language,用于查询电影原版的语言,在“查询所需的关键字”框中,添加查询所需的关键字字段language_id,用于指定表字段和流字段的比较条件;在“查询表返回的值”框中,添加查询表返回字段name并重命名为original_language,并对于电影原版语言为Null值,则可设置默认值为Not Application。                                                                    

 

6.配置值映射控件 

双击“值映射”控件,进入“值映射”界面,在“使用的字段名”处的下拉框选择字段rating,指定对电影级别的字段rating进行映射;在“目标字段名”处添加rating_text字段,用于存储目标值;在“字段值”框中,添加源值和目标值。                                                                    

 

7.配置列拆分为多行控件 

双击 “列拆分为多行”控件,进入“列拆分为多行”界面,由于special_features字段表示的是电影的特点,而电影的特点有多个,因此要进行拆分;在“要拆分的字段”处的下拉框选择要拆分的字段special_features;在“分隔符”处指定分隔符;在“新字段名”框中,添加新的字段名,用于存放利用分隔符分割后得数据。                                                       

 

8.配置增加常量控件 

双击“增加常量”控件,进入“增加常量”配置界面,在字段框中添加常量字段Yes和No,并指定值为yes和no,用于后续判断某电影是否有预告片、是否有评论、是否删减片段以及是否有幕后等内容,有则用yes标识,反之用no标识。    

9.配置列转行控件 

双击“列转行”控件,进入“列转行”界面,在“关键字段”处的下拉框中选择关键字段special_feature,由于字段special_feature中包含一个或多个内容,因此需要对字段special_feature进行列转行操作;在“构成分组的字段”框中添加分组字段;在“目标字段框”中添加目标字段。

 

10.配置计算器控件 

双击“计算器”控件,进入“计算器”界面,在“字段”处,添加新字段,用于存储将列转行控件流中的字段special_feature字段的NULL值替换成No的数据。                                                                            

11.配置数据库连接控件 

双击“数据库连接”控件,进入“Database join”界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。                                                              

在SQL框中编写SQL语句,用于根据电影id获取电影的分类;在“The parameters to use”框中,添加编写SQL语句需要的参数,即film_id,计算器控件流中的字段film_id作为参数进行传递。                                                                     

 

12.配置数据库查询3控件 

双击“数据库查询3”控件,进入“数据库查询”界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。                                                                       

单击表名处的【浏览】按钮,添加数据表category,用于获取电影分类的id;在“查询所需的关键字”框中,添加查询所需的关键字字段category_id,用于指定表字段和流字段的比较条件;在“查询表返回的值”框中,添加查询表返回的值,即name,并重命名为category。                                                                        

 

13.配置增加常量2控件 

双击“增加常量2”控件,进入“增加常量”界面,在字段框中添加常量字段Yes,由于在“增加常量”控件中设置的常量Yes已经被替换,所以需要添加一个常量。                                                                

 

14.配置列转行2控件 

双击“列转行2”控件,进入“列转行”界面,在“关键字段”处的下拉框中选择关键字段category,根据电影分类的名称对电影进行分类;在“构成分组的字段”框中添加分组字段,在“目标字段框”中添加目标字段。

 

15.配置计算器2控件 

双击“计算器2”控件,进入“计算器”界面,在“字段”处,添加新字段,用于将列转行2控件流中字段category中的NULL值替换成No。                            

 

 16.配置联合查询/更新控件

双击“联合查询/更新”控件,进入“联合查询/更新”界面,,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。                                 

单击目标表右侧的【浏览】按钮,选择目标表,即维度表dim_film,用于加载最新的电影维度数据,并在“代理关键字”框中添加代理关键字段,并指定创建代理键为自增字段,在“关键字段”框中添加维度字段和流里的字段。

 

17.配置数据库连接2控件 

双击“数据库连接2”控件,进入“Database join”界面;单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。                                                    

在SQL框中编写SQL语句,用于根据电影id获取演员的id,从而获取演员的基本信息;在“The parameters to use”框中,添加需要的参数,即film_id。

   

 

18.配置数据库查询4控件 

双击“数据库查询4”控件,进入“数据库查询”界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。 

 单击表名处的【浏览】按钮,添加数据表dim_actor,用于获取演员的基本信息;在“查询所需的关键字”框中,添加查询所需的关键字字段actor_id,用于指定表字段和流字段的比较条件;在“查询表返回的值”框中,添加查询表返回的值。       

 

19.配置分组控件 

双击“分组”控件,进入“分组”界面,在“构成分组的字段”框中添加分组字段film_key,对“数据库查询4”控件流中的数据按字段film_key进行分组;在“聚合”框中添加聚合字段count_actors,用于统计出演某部电影的演员个数。       

 

20.配置计算器3控件 

双击“计算器3”控件,进入“计算器”界面,在“字段”处,添加新字段one和actor_weighting_factor,其中字段one为自定义的常量,指定值为1,是一个临时值,可移除;字段actor_weighting_factor用于存储演员的权重因子。    

 

21.配置流查询控件 

双击“流查询”控件,进入“流里的值查询”界面,在“Lookup step”处的下拉框选择要查询的流,即计算器3控件流;在“查询值所需的关键字”处,添加用于查询流里值的字段,即film_key,通过使用数据库查询4控件中的字段film_key去计算器3控件流中匹配相应的数据;在“指定用来接收的字段”框中,添加用来接收值的字段actor_weighting_factor,最终输出。     

 

 22.配置插入/更新控件

双击“插入/更新”控件,进入“插入/更新”界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。                                      

单击目标表右侧的【浏览】按钮,弹出“数据库浏览器”窗口,选择目标表,即维度表dim_film_actor_bridge;单击【获取字段】按钮,用来指定查询数据所需要的关键字;单击【获取和更新字段】按钮,用来指定需要更新的字段。插入/更新控件用于通过比较流与表中字段得数据,更新维度表dim_film_actor_bridge表中数据。                                                                  

23.运行转换load_dim_film。

单击转换工作区顶部的按钮,运行创建的转换load_dim_film,实现加载电影数据至电影维度表dim_film中。                                                                                  

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第八章 综合案例——构建DVD租赁商店数据仓库③ 的相关文章

  • 软件测试|SQLAlchemy环境安装与基础使用

    简介 SQLAlchemy 是一个强大的 Python 库 用于与关系型数据库进行交互 它提供了高度抽象的对象关系映射 ORM 工具 允许使用 Python 对象来操作数据库 而不必编写原生SQL查询 本文将介绍如何安装 SQLAlchem
  • 电商数据api拼多多接口获取商品实时数据价格比价api代码演示案例

    拼多多商品详情接口 接口接入入口 它的主要功能是允许卖家从自己的系统中快速获取商品详细信息 通过这个接口 卖家可以提取到商品的各类数据 包括但不限于商品标题 价格 优惠价 收藏数 下单人数 月销售量等 此外 还可以获取到商品的SKU图 详情
  • 电商数据api接口商品评论接口接入代码演示案例

    电商数据API接口商品评论 接口接入入口 提高用户体验 通过获取用户对商品的评论 商家可以了解用户对商品的满意度和需求 从而优化商品和服务 提高用户体验 提升销售业绩 用户在购买商品前通常会查看其他用户的评论 以了解商品的实际效果和质量 商
  • 深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析

    在 MongoDB 中 我们使用 find 和 find one 方法来在集合中查找数据 就像在MySQL数据库中使用 SELECT 语句来在表中查找数据一样 查找单个文档 要从MongoDB的集合中选择数据 我们可以使用 find one
  • 【计算机毕业设计】宝鸡文理学院学生成绩动态追踪系统

    研究开发宝鸡文理学院学生成绩动态追踪系统的目的是让使用者可以更方便的将人 设备和场景更立体的连接在一起 能让用户以更科幻的方式使用产品 体验高科技时代带给人们的方便 同时也能让用户体会到与以往常规产品不同的体验风格 与安卓 iOS相比较起来
  • 做测试不会 SQL?超详细的 SQL 查询语法教程来啦!

    前言 作为一名测试工程师 工作中在对测试结果进行数据比对的时候 或多或少要和数据库打交道的 要和数据库打交道 那么一些常用的sql查询语法必须要掌握 最近有部分做测试小伙伴表示sql查询不太会 问我有没有sql查询语法这一块的文档可以学习
  • 面试官问,如何在十亿级别用户中检查用户名是否存在?

    面试官问 如何在十亿级别用户中检查用户名是否存在 前言 不知道大家有没有留意过 在使用一些app注册的时候 提示你用户名已经被占用了 需要更换一个 这是如何实现的呢 你可能想这不是很简单吗 去数据库里查一下有没有不就行了吗 那么假如用户数量
  • 数据库 | 面试官:一次到底插入多少条数据合适啊?.....面试连环炮

    数据库 面试官 一次到底插入多少条数据合适啊 面试连环炮 数据库插入操作的基础知识 插入数据是数据库操作中的基础 但是 我们程序员将面临随之而来的问题 如何快速有效地插入数据 并保持数据库 性能 当你向数据库中插入数据时 这些数据直接存储到
  • Mysql中设置只允许指定ip能连接访问(可视化工具的方式)

    场景 Mysql中怎样设置指定ip远程访问连接 Mysql中怎样设置指定ip远程访问连接 navicat for mysql 设置只有某个ip可以远程链接 CSDN博客 前面设置root账户指定ip能连接访问是通过命令行的方式 如果通过可视
  • JOLT 移位转换以过滤数组中的值

    我想使用 JOLT 转换来做两件事 过滤名为 myarray 的数组中的元素 以便仅保留具有 v 518 属性的元素 过滤掉除 v 518 和 lfdn 之外的其余元素的所有属性 Input isError false isValid tr
  • 如何使用我在后续任务中添加的记录的自动生成 ID?

    我目前正在使用以下命令向表中添加一些记录OLE DB Destination 每条记录都有一个自动生成的Id场地 我想使用这个生成的Id字段作为某些子记录中的外键 我以为我能够从一个数据流线OLE DB Destination组件到另一个组
  • 当设置为 CRLF 时,SSIS 将 LF 读取为终止符

    使用 SSIS 2012 我的平面文件连接管理器我有一个分隔文件 其中行分隔符设置为CRLF 但是当它处理文件时 我有一个文本列 其中有一个LF在里面 这导致它将其读取为行终止符 从而导致失败 有任何想法吗 我没有 SSIS 经验 但作为一
  • OLE DB 目标:转换规范的字符值无效

    我的表来源 num facture TYPE actif date 1 1 1 2010 01 31 00 00 00 000 2 2 1 2011 01 31 00 00 00 000 3 3 2 2012 01 31 00 00 00
  • 重命名文件源

    我一直在从平面文件源开发 SSIS 包 该文件每天都会出现 文件名具有日期时间指示 如下所示 文件名 20190509042908 txt 我想知道如何才能度过约会部分 我希望包动态读取文件 但它应该在没有最后 6 位数字的情况下通过 我只
  • ErrorColumn 值不作为 Lineage ID 存在

    在插入目标表期间 发生的任何错误都会被重定向到错误表 我们可以在其中看到ErrorCode and ErrorColumn 问题是我们得到了一个值ErrorColumn它不存在于包中的任何地方 也就是说 没有一个列具有LineageID等于
  • 语法无效:使用初始排序键创建表排序键 auto

    我正在尝试使用target redshift将数据推送到aws redshift https pypi org project target redshift https pypi org project target redshift 我
  • 即使使用 Unicode 源和目标 (SSIS),字符也会显示不正确

    我遇到了代码页 unicode 非 unicode 问题 需要专业知识才能理解它 在 SSIS 中 我正在从 UTF8 编码的文本文件中读取数据 数据类型均为 DT WSTR unicode 字符串 目标是 NVARCHAR 它也是 uni
  • 在SSIS中导入已合并单元格的Excel

    我的问题是在读取合并 组合列单元格的 Excel 文件时 例如 将下面的excel数据读取到数据库中 Excel 输入 ID NAME DEPT FNAME LNAME 1 Akil Tiwari IT 2 Vinod Rathore IT
  • 如何忽略在另一个任务的 run() 内触发的 Luigi 任务的失败

    考虑以下任务 import luigi class YieldFailTaskInBatches luigi Task def run self for i in range 5 yield FailTask i j for j in ra
  • 从原始数据创建 n 个新行,例如 (1000....1000+n)

    我需要从 Excel 工作簿中读取数据 其中数据以这种方式存储 Company Accounts Company1 3000 3999 Company2 4000 4019 4021 4024 在 SSIS 中使用 OLE DB 目标的预期

随机推荐

  • Matlab plotyy画2个纵坐标不同的图

    目录 plotyy函数可以绘制双纵坐标的二维图 具体用法总结如下 1 如何设置双坐标 2 如何设置线型 3 加注图例 plotyy函数可以绘制双纵坐标的二维图 具体用法总结如下 1 plotyy X1 Y1 X2 Y2 以左 右不同纵轴绘制
  • 创建repo报错

    doesn t match any of the locations specified by path repo because this setting is empty 这个错误的原因所有的master和data都要配置一个path
  • 十分钟学会开发自己的Python AI应用【OpenAI API篇】

    最近 OpenAI 宣布 ChatGPT 将很快推出他们的 API 虽然我们不知道这需要多长时间 但这之前我们可以熟悉下OpenAI API 快速开发自己的AI应用 通过今天学习 OpenAI API 你将能够访问 OpenAI 的强大模型
  • python在获取网络状态时连接尝试失败应该怎么办

    如果 Python 在获取网络状态时连接尝试失败 可以采取以下措施 对检查网络连接状态 检查是否有其他设备或程序正在使用网络 确保网络连接正常 检查目标网站是否存在 如果目标网站不存在或正在维护 连接将失败 使用代理服务器 如果您的网络有限
  • 数据分析毕业设计 大数据商城人流数据分析与可视化 - python

    文章目录 0 前言 课题背景 分析方法与过程 初步分析 总体流程 1 数据探索分析 2 数据预处理 3 构建模型 总结 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两
  • npm ERR! code EPERM npm ERR! syscall open npm ERR! path D:\Program Files\nodejs\npm_packages\_cacach

    问题描述 npm ERR code EPERM npm ERR syscall open npm ERR path D Program Files nodejs npm packages cacach 问题截图 问题原因 因为nodojs的
  • Kaldi 编译问题

    今天编译Kaldi 总是冒出 Could not find any libraries usr local lib liblapack liblapack atlas libclapack that seem to be an ATLAS
  • MySQL编码设置方法 MySQL编码为utf8设置方法

    mysql的默认编码是拉丁 我每次JSP制作网页用insert语句插入数据库时汉字都会显示成问号 安装mysql后 启动服务并登陆 使用show variables命令可查看mysql数据库的默认编码 由上图可见database和serve
  • 前端学习————css实现简单登录页面

    css实现简单登录页面 一 页面展示 二 思路 1 设置背景图片 2 设置登录框框并使其处于靠右位置 3 设置登录框框内容 三 代码展示 1 HTML 2 css 一 页面展示 二 思路 1 设置背景图片 2 设置登录框框并使其处于靠右位置
  • matlab cftool光滑曲线导出为什么就不光滑了_MATLAB

    0 前言 数据可视化 data visualization 技术指的是运用计算机图形学和图像处理技术 将数据转换为图形或图像在屏幕上显示出来 并进行交互处理的技术 它涉及计算机图形学 图像处理 计算机辅助设计 计算机视觉及人机交互技术等多个
  • 常用电磁屏蔽材料介绍及技术指标

    其实在电子设备工作时 其内部及外部会存在各种电磁干扰 这些干扰会影响到设备的正常工作 通常 电子设备工作时对外界的干扰强度及其自身抗外界干扰的能力 我们将其称之为电磁兼容 电磁兼容 Electromagnetic Compatibility
  • arduino字符串处理函数charAt()提取字符

    语法 String charAt n 参数 n 字符串中的第几个字 返回值 char 功能 获取字符串中的某一个字符 字符的位置即n的位置 String str hello 定义一个字符对象 Char s str charAt 3 取对象里
  • 单链表插入与删除数据

    1 按元素大小顺序插入到链表中 2 include
  • 在eclipse中调试时,怎样查看一个变量的值?

    在要查看的变量前先设置断点 然后选中变量 右键选debug as gt Java Application 打开debug 透视图 这时在Variables 窗口中可以看到变量当前的值 如果是局部变量 也可以在局部变量窗口中查看 要知道一个方
  • 【区块链新手快速入门】如何构建一个区块链

    本文翻译自 Learn Blockchains by Building One 作者 dvf 原文链接 https hackernoon com learn blockchains by building one 117428612f46
  • go单元测试进阶篇

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 版权声明 本文由腾讯云数据库团队 原创文章 转载请注明出处 文章原文链接 https www qcloud com community article 9219850014
  • 函数的错误应用导致的致命错误(一)——strcpy

    对一个coder来说 记录一些自己所遇到的错误及解决方法是很重要的 写此系列博文 以备后用 也希望对大家有所帮助 下面是我在调试一个程序是碰到的错误 错误log F libc 7081 ABORTING invalid address or
  • linux/windows上的端口转发 —— 筑梦之路

    linux上利用iptables firewalld防火墙做端口转发 将本地的80端口 HTTP 转发到远程服务器上的8080端口 iptables 端口转发 sudo iptables t nat A PREROUTING p tcp d
  • VScode神仙插件,程序员必备

    前言 Visual Studio Code VS Code 是微软2015年推出的一个轻量但功能强大的源代码编辑器 基于 Electron 开发 支持 Windows Linux 和 macOS 操作系统 它内置了对JavaScript T
  • 第八章 综合案例——构建DVD租赁商店数据仓库③

    8 3 7 加载演员数据至演员维度表 1 打开Kettle工具 打开Kettle工具 创建一个转换load dim actor 并添加表输入 插入 更新等控件 2 配置表输入控件 双击 表输入 控件 进入 表输入 配置界面 单击 新建 按钮