网站首页 > 技术文章 正文
Oracle Analytics Cloud能让用户在自己创建的分析目标表上创建数据流,并提供执行增量加载数据的功能。 数据流可以只对此次运行和上一次运行之间数据源中可用的增量数据进行加载操作。这样就能大大加快数据的加载速度啦!
在本文中,让我们看看如何在数据库表上执行增量加载。 下面的视频演示了配置过程,以及如何定义从上一个已处理完成的过程继续进行数据加载的方法。文章的其余部分将为您提供分步详细说明,希望对你使用Oracle Analytics Cloud有所帮助。
首先我们看看能执行增量数据加载的先决条件
- 你分析的OAC数据集(Data Sets)源表和目标表都是基于数据库的,而不是文本文件。
- 如果你的数据流中有多个数据集(Data Sets),则只能设置其中一个数据源进行增量更新。
1. 定义数据源和增量数据标识符
第一步是定位一个源表中能标识新增数据的标识列。在以下例子中,我们有一个收入事实表(SAMP_REVENUE_F),其中我们用月份主键(BILL_MTH_KEY)作为新增数据的标识符。
下一步是创建指向此表的Oracle Analytics数据源。 如下图示例:在将数据库的表创建成为Oracle Analytics Cloud的数据源过程中,很方便地给数据库表(SAMP_REVENUE_F)标记新数据标识符列(BILL_MTH_KEY)。 通过这个步骤,系统就知道如何识别数据集中的新增数据行了。
2. 定义数据流
上一步我们创建了数据源,现在让我们创建一个使用这个数据源(SAMP_REVENUE_F)的数据流。这里的关键是勾选“仅添加新数据”选择框以确保后续数据流处理仅针对源表标记为增量数据的行进行数据加载。
为了使我们列举的数据流更能理解,我们假设需要对以上的销售金额进行货币转换。 所以我们引入一个货币汇率电子表格,其中包含每月货币的转换汇率,然后根据月份列进行相互关联,然后添加一个新的计算列来计算转换后的新货币收入。
最后,让我们选择“保存数据”步骤,并为结果数据集指定名称。 确保选择数据库作为目标连接,并指定需要保存结果集的数据库表名。此时 “运行时”的下拉菜单中有两个选项可供选择。
“替换现有数据”会让数据流清空目标表并重新加载所有记录。
“将新数据添加到现有数据”可保持现有记录的完整性,并仅加载源表中的新记录。 也就是我们在上面的源数据集中定义的列标识出的新数据记录。
如下图,让我们将“运行时”选项设置为“将新数据添加到现有数据”并保存数据流。
现在,让我们第一次运行数据流。 完成后,我们可以在底层数据库中看到已创建的目标表。 由于这是数据流的第一次运行,因此源表中的所有记录都已插入到目标表中。
为了举例,现在让我们从新创建的目标表中删除一个月的数据(201812)。 在这之后,我们的源表仍有12个月的数据(1月到12月),但我们的目标表现在只有11个月; 它缺少12月。 请注意,我们没有更改源表中的数据,因此自上次运行数据流以来没有新记录。
因此,当我们第二次运行数据流时,目标表根本不会增加。 数据流设置为仅提供新数据,但源中没有新数据,因此目标表中没有任何更改。 我们可以检查目标表是否仍未加载已删除月份的数据。 如果数据流设置为全部加载,则所有数据都将在目标表中。
现在,为了完成测试,让我们手动给数据原表加载三个月的新数据。 这将代表一些增量数据。 然后让我们再次重新运行数据流。 我们将看到目标表已经增加了来自源表的三个新月数据。 但请注意,此时目标表中删除记录的那个12月数据仍然缺失,如下图所示。
还记得我们在本文开头所说的内容:如果我们回到数据流定义过程中,并在目标表中将“运行时”选项设置为“Replace Existing Data”,那么当我们再次运行数据流时,所有数据都会被全部重新加载,那被删除的12月份数据也会被补回来。
- 上一篇: RPA如何破解企业的5大技术难题? rpa如何实现
- 下一篇: 了解一下列存储及其特点 存储特性
猜你喜欢
- 2024-11-14 了解一下列存储及其特点 存储特性
你 发表评论:
欢迎- 612℃几个Oracle空值处理函数 oracle处理null值的函数
- 603℃Oracle分析函数之Lag和Lead()使用
- 592℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 589℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 583℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 576℃【数据统计分析】详解Oracle分组函数之CUBE
- 566℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 558℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- PageHelper - 最方便的 MyBatis 分页插件
- 面试二:pagehelper是怎么实现分页的,
- MyBatis如何实现分页查询?(mybatis-plus分页查询)
- SpringBoot 各种分页查询方式详解(全网最全)
- 如何在Linux上运行exe文件,怎么用linux运行windows软件
- 快速了解hive(快速了解美国50个州)
- Python 中的 pyodbc 库(pydbclib)
- Linux搭建Weblogic集群(linux weblogic部署项目步骤)
- 「DM专栏」DMDSC共享集群之部署(一)——共享存储配置
- 故障分析 | MySQL 派生表优化(mysql pipe)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)