layout: post title: “Oracle培训总结” date: 2019-05-14 author: “马赛琦” tags: - 培训 - 数据仓库

ADW介绍

ADW是Autonomous Data Warehouse的缩写,译为自治数据仓库。对于ADW的理解,主要分为“自治”和“数据仓库”两个概念。

数据仓库

数据仓库(简称为数仓)是一个很耳熟能详的概念了,我摘录了一些百度相关词条:

  1. 数据仓库,英文名称Data Warehouse,简写为DW。数据仓库顾名思义,是一个很大的数据存储集合,出于企业的分析性报告和决策支持目的而创建,对多样的业务数据进行筛选与整合。它为企业提供一定的BI(商业智能)能力,指导业务流程改进、监视时间、成本、质量以及控制。

  2. 数据仓库的输入方是各种各样的数据源,最终的输出用于企业的数据分析、数据挖掘、数据报表等方向。

  3. ETL:英文全称是 Extract-Transform-Load 的缩写,用来描述将数据从来源迁移到目标的几个过程,包括:

  • Extract**,**数据抽取,也就是把数据从数据源读出来。

  • Transform**,**数据转换,把原始数据转换成期望的格式和维度。如果用在数据仓库的场景下,Transform也包含数据清洗,清洗掉噪音数据。

  • Load**,**数据加载,把处理后的数据加载到目标处,比如数据仓库。

自治

Oracle在数据仓库前面加了自治用以区分于传统数仓,因此自治我认为就是Oracle数仓的“卖点”或者说是特色,这是其有别与其他传统数仓的地方。那么,具体ADW有哪些特别的地方:

  1. ADW不仅仅是一个单一的服务,基于Oracle Cloud的相关技术基础支持,ADW可以实现完善的ETL流程,达到数据仓库输入输出一条龙服务。得益于Oracle云计算服务,ADW的可用性,安全性都得到了一定的保障,也缩小了一定的运营成本,节省了劳动力。除此以外,ADW的数据导入方便,有一定扩展性,很适应于当下流行的敏捷开发。

  2. ADW广泛适用SasS、PaaS和IaaS。

  3. ADW可以通过Oracle Cloud中的OAC进行分析,也可以通过其他第三方工具进行分析,不强依赖于OAC。

  4. 数据导入多样性,支持各种数据迁移方式:

OAC介绍

OAC是Oracle AnalyticsCloud的缩写,译为Oracle分析云。OAC的主要功能是将海量数据以不同的维度绘制成数据图表,方便开发人员分析数据,做出符合于业务需求的分析结果。

根据Oracle杭州培训讲师张华先生原话,OAC是一个轻建模,重业务的工具,本质上OAC还是以业务为导向进行设计的(OAC数据导入后会自动以列名进行关联建模)。

OAC的数据源具有多样性,可以从Oracle Cloud的ADW导入,也可以从本地或其他的第三方数据源进行导入,不强依赖于ADW。

使用流程

本节将展示ADW和OAC粗略的使用步骤,详细使用步骤参考文末提供的网站。

总述

创建ADWC(Autonomous Data Warehouse Cloud)实例,通过各种方式导入数据进入ADWC。

创建OAC实例。在OAC实例中创建连接,创建数据集(可以从ADW进行导入),创建项目进行分析。

ADW使用

创建ADWC实例

登录Oracle控制台,选择Autonomous Data Warehouse,点击Create Autonomous Date Warehouse,按照流程创建ADWC实例。

连接ADWC实例

  1. 这里通过sql developer连接ADWC。

  2. 接着1.2.1中创建的ADWC实例,选择Service console,在页面上点击Administration,点击Download Client Credentials下载wallet文件(无需解压)

  3. 打开sql developer,连接创建的ADWC(需选择wallet文件进行安全验证)

  4. 选择数据模式,共有三种,具体区别如图:

加载数据

新建表(可以通过语句的方式),点击导入数据,这里有两种方式:

  1. 从本地文件导入数据

  2. 从Oracle对象存储导入数据

  • 上传文件至Oracle对象存储中

  • 使用PL/SQL包DBMS_CLOUD加载数据

  1. 排除数据故障,格式错误,进行数据加载

外部数据查询导入

  1. 不导入数据,直接查询外部数据(从Oracle对象存储中)

  2. 从Oracle对象存储中导入数据。(与1.2.3中不同的是,这里选择新建表,直接从Oracle对象存储中新建表并导入数据,无需提前准备表结构)

OAC使用

创建OAC实例

  1. 点击网页上“我的仪表盘”

  2. 选择“分析”,按流程创建一个OAC实例

  3. 导入连接和数据集

这里以从ADW导入为例,导入其他连接和数据在网页上选择ADW的地方可以选择。

  1. 创建连接。点击创建,点击连接,选择ADW,输入相关信息

  2. 创建数据集。点击创建,点击数据集,选择上一步创建的连接

  3. 修改导入数据的类型(属性/度量)方便后续不同维度展示数据

  4. 点击项目按钮,点击创建项目,选择第3步创建的数据集

  5. 导入多个数据集时,OAC会自动按照列名进行建模(需注意,事实表需要最先导入),按照需求自行修改建模

  6. 按照需求选择合适的图例与维度生成数据报表,进行数据分析。

  7. OAC允许导出到本地.dvd文件通过DVD桌面版进行本地编辑。一般来讲,本地的编辑和速度拉取会很慢,在我的感受中推荐使用线上OAC进行编辑。

数据分析思路与方式

通过1.2和1.3,我们已经通过ADW+OAC的方式创建了我们的数仓,这就好了数据分析的前期准备,接下来讨论下分析数据的方式与思路。

思路

  1. 正如前文所说,OAC的设计是重业务的,首先应该考虑我们的业务需求,我们应该要分析什么,找一个切入点,提出一些问题与假设。

  2. 在第1步的基础上,我们已经拥有一些假设。我们通过OAC选择合适的图例与度量角度,绘制数据图表来先筛掉一些不正确的假设。

  3. 在第2步的基础上,我们已经拥有一些正确或可能正确的假设,我们需要进一步的细分与考量,绘制出更多度量方式的数据图表进行确定与分析。

  4. 完成了前3步后,我们会拥有大量的数据图表,这就是我们的分析过程,最终会有分析结论,我们将这些过程与结论整理归纳,最终这就完成了数据分析。

小例子

这里我们以Oracle培训中的一个小实验场景进行说明:一家饭店随着月份销售额开始逐步下降,于是开始分析原因:

  1. 猜想可能和商圈,店面,天气有关系。因此,我们首先以商圈,门店,销售额,月份为维度生成数据图表。

  2. 在生成的数据图表中,我们不能直观感受到销售额下降与商圈店面有关系,因此排除进和商圈,店面有关系的可能。

  3. 验证我们的第二个猜想,会不会和天气有关?因此我们以PM2.5,销售额,月份为维度生成数据图表,从图表中我们可以直观感受到随着每月PM2.5的增加,销售额也逐步下降。

  4. 初步证实了我们的猜想,进一步细分我们的猜想:

  • 销售额的来源分为外卖和堂食

  • 外卖和堂食每份价格不一样,一般堂食会比外卖贵一些,所以认为用销售量更加清楚

  1. 在第4步的基础上,我们将我们的细分的猜想绘制成数据图表。

  2. 读表,我们发现随着PM2.5的增加,外卖的销售量显著增加,但堂食的销量显著降低;尽管外卖销量增加,但外卖增加的销售额不能后弥补堂食降低的销量对应的销售额。

  3. 最终确认了我们的猜想,天气影响了销售额,具体表现在PM2.5的增加导致了堂食的销量减少,对于外卖而言,销量增加

心得与总结

这是我第一次接触大数据相关的东西,也是第一次实际感受数仓的实际使用,对我而言是新鲜又有趣。我觉得有两点最让我感到惊艳。

第一点是数仓的建立。在这次培训之前,公司内部的技术交流会也曾讨论过数仓,当时第一感觉就是数仓的建立原来是那么繁琐漫长的事情。通过这次ADW的使用培训,我看到ADW的数据导入显得更为优雅,支持各种各样的数据格式,支持各种各样的数据源渠道,支持各种各样的数据导入方式,着实为数仓的建立剩下不少时间。

第二点是OAC的使用。将数据用数据图表的方式去呈现,确实比看枯燥的数据,关心复杂的结构关系来的更加有趣直观。不过,在实际的感受中,我发现在这个流程中,数仓建立与图表绘制本身不是一件很难的事,用数据分析创造出有价值的分析结果,能够服务于业务需求这是一件需要用心设计的事。