数据仓库开发之路之一--准备工作

2023-11-12

在数据仓库的开发过程中,需要熟悉大量的概念以及相关工具的使用,还需要了解宏观上的各种开发流程,串联起来完成最终的数据仓库项目的开发,本篇介绍一些准备工作,包括涉及到的工具介绍,以及开发过程的描述,记录学习研究的印记,并和大家讨论研究存在的相关问题。

数据仓库的开发,是完全独立于OLTP系统的,也就是独立于当前各种应用的业务系统而作的分析项目,因此要包含从数据的迁移(提取)、变换、清洗、加载等ETL操作,其中可以分为这么几个数据层。

源数据层
客户的各种业务系统中的数据,如包括企业、车辆和司机信息系统、企业录入数据和及营运等数据,里面存放了大量的事务数据。

ODS数据层
数据库用户ODS数据层主要管理把业务数据层的数据存储到ODS数据层,它的数据表主要就是来源于业务数据表,通过一些存储过程把业务数据表结构改变成基层的数据仓库的表结构。

DW数据层
数据库用户DW主要管理把ODS数据层的数据存储到DW数据层,它的数据表主要就是来源于ODS数据表,通过一些存储过程把ODS数据表结构改变成项目主题数据仓库的表结构。
DW数据层还管理一些对存储过程的记录表,方便数据仓库的维护和管理。

 

ODS是一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、操作性的、集成的全体信息的需求。常常被作为数据仓库的过渡,也是数据仓库项目的可选项之一。

因此操作数据存储(ODS) 是用于支持企业日常的全局应用的数据集合,ODS的数据具有面向主题、集成的、可变的和数据是当前的或是接近当前的4个基本特征。同样也可以看出ODS是介于DB和DW 之间的一种数据存储技术,和原来面向应用的分散的DB相比,ODS中的数据组织方式和数据仓库(DW)一样也是面向主题的和集成的,所以对进入ODS的数 据也象进入数据仓库的数据一样进行集成处理。另外ODS只是存放当前或接近当前的数据,如果需要的话还可以对ODS中的数据进行增、删和更新等操 作,虽然DW中的数据也是面向主题和集成的,但这些数据一般不进行修改,所以ODS和DW的区别主要体现数据的可变性、当前性、稳定性、汇总度上。

为什么需要有一个ODS系统呢?一般在带有ODS的系统体系结构中,ODS都具备如下几个作用:

1) 在业务系统和数据仓库之间形成一个隔离层。

2) 转移一部分业务系统细节查询的功能。

3) 完成数据仓库中不能完成的一些功能。 

 

这里我们就需要用到了IBM的DataStage工具。 DataStage 是一套专门对多种操作数据源的数据抽取、转换和维护过程进行简化和自动化,并将其输入数据集市或数据仓库目标数据库的集成工具。
DataStage可以从多个不同的业务系统中,从多个平台的数据源中抽取数据,完成转换和清洗,装载到各种系统里面。其中每步都可以在图形化工具里完成,同样可以灵活地被外部系统调度,提供专门的设计工具来设计转换规则和清洗规则等,实现了增量抽取、任务调度等多种复杂而实用的功能。其中简单的数据转换可以通过在界面上拖拉操作和调用一些DataStage预定义转换函数来实现,复杂转换可以通过编写脚本或结合其他语言的扩展来实现,并且DataStage提供调试环境,可以极大提高开发和调试抽取、转换程序的效率。
DataStage是基于客户机/服务器的数据集成架构,优化数据收集,转换和巩固的过程。它提供了一套图形化的客户工具:
  包括:Designer(设计者):创建执行数据集成任务Job的同时,对数据流和转换过程创建一个可视化的演示。
  Manager(管理者):对每个工程的各个单元,包括:库表定义,集中的数据转换,元数据连接等对象进行分类和组织。
  Director(指挥者):为启动,停止,监视作业提供交互式控制。
  Administrator(管理者):在服务器端管理DataStage的项目和使用者权限的分配 

 

启动Designer,我们可以在其中创建各种数据复制的Job,然后通过串联起来,完成整个业务数据的定时提取工作,所有工作可以在可视化界面上进行操作,还是比较方便的。

 

下图是对于不同数据源之间的数据复制过程,中间有一个Transformer的变换对象来处理数据列之间的映射关系的。

 

下图是串联各种Job对象,组装成一个完成的数据复制流程。

 

完成上面的业务数据整合复制后,就需要通过编写大量的存储过程,完成从ODS数据层到DW数据仓库层的数据清洗加载操作了,一般我们可以在Pl/Sql Developer中完成相关存储过程的编写,如下图所示:

 

通过存储过程完成数据从ODS层到DW数据仓库层的转移后,下一步就是要围绕数据仓库的模型做各种应用的分析工作了,这时候就需要用到非常强大的BI工具Business Objects了。

在众多的管理信息系统中一般都应用数据仓库技术,进行数据的统计和分析,而数据仓库的建立、使用、管理及维护等方面都需要工具的支持。有些管理信息系统的业务处理数据库同数据仓库系统一起推广使用,因此大大减少了从业务数据库到数据仓库的数据抽取、集成和转换的复杂程度,但无论数据仓库中数据的来源和抽取方式是什么,对数据仓库的维护、管理、分析、统计都需要用客户端报表/分析工具来完成。在众多的联机分析处理产品中,BO公司的Business Object不失为一个好工具。


Business Object具有以下几个特点:前端分析手段灵活,表现方式多样,语义层构建工具应用面广,应用简单,具有文档管理的数据刷新功能,可以利用资料库对不同用户的操作权限进行管理。
Business Object是一个由多个产品组成的产品族,主要包括Business Object,Designer,Document Agent,Supervisor,Business Miner五个产品。这几个产品功能如下:

(1)Bupervisor:Supervisor是BO自身的安全管理工具。在Spervisor中可以建立和维护资料库,在资料库中可以建立BO的用户和用户组,通过对不同用户赋予不同的操作权限,来实现对Business Object的使用用户、定制查询(universe)以及查询报告的安全管理。实际上多个用户定制查询及查询结果的共享时通过资料库实现的。

(2)Designer:Designer是一个多编模型构建工具,它可以将关系库中的表通过类、对象及对象明细等工具映射到多维模型的维、维元素及度量指标上,使用户在符合业务逻辑的多维模型上构建查询。

(3)Business Object:Business Object是一个查询定制和统计报表(图形)生成工具。它利用Designer建立多维模型定制各类查询,查询方式包括Business Object定制查询语义层(universe)、手写SQL语句、存储过程及个人数据文件等,在Business Object 4 1版中还将支持OLAP Pannel,从而使其可以利用其他厂商的OLAP服务器的功能。Business Object将查询结果以多种报表形式及统计图形的方式提交给用户。用户可以在查询结果上进行进一步的分析,如向下/向上钻取(Drill Up/Drill Down)等。另外,在Business Object中还提供了一种script语言,?该语言风格类似Visual Basic,在程序中可以以面向对象的编程风格调用Business Object提供的丰富类库。得script语言可以定制出更为友好的查询界面。

(4)Document Agent:Document Agent是专为工作组用户的文档管理及查询结果刷新而建立的。一组用户对应一个Document Agent,不同用户的查询报表(图形)均可发送到Document Agent供同组的其他用户共享。Document Agent还可以定义统计报表(图形)的刷新频度。

在管理机构由于用户的不同使应用角色与工具也不尽相同:
(1)报表设计人员:负责制作固定报表以外的灵活报表,使用工具为BO;负责根据业务需求定制新的固定报表,使用工具为BO Designer;承担前台报表的分发、管理及刷新,使用工具为BO Document Agent。

(2)普通报表用户和高级报表用户:L浏览固定报表,使用工具为BO Reader;浏览报表设计人员设计的灵活报表,使用工作为BO Reader。

(3)数据仓库管理员:完成数据库管理员(DBA)的正常工作;负责数据仓库数据的刷新维护、用户管理等工作,使用工具主要是数据库的管理工具以及BO Supervisor。

 

通过BO Designer,完成表之间的语义关系的设计以及相关度量、维度的设计,为报表设计奠定基础。

 

 

通过BO控制台,启动InfowView,对报表进行相关的设计工作。

 

 

完成以上工作后,报表的前端展示其实是比较方便的,可以通过调用BO的报表生成页面就可以了,给报表生成页面附带相关的参数即可,具体的例子可以参考BO自带的很多相关Demo,在此不再赘述。

 

上述的内容只是我对数据仓库应用的初步了解和认识,纰漏之处难免,随着学习的进行,认识的深入,应用的开展,项目经验的增加,希望更多东西能够明朗化,深入化,坚固化。

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

数据仓库开发之路之一--准备工作 的相关文章

随机推荐

  • 数组实例的find()和findIndex()

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 数组实例的find方法 用于找出第一符合条件的数组成员 它的参数是一个回调函数 所有的数组成员依次执行该回调函数 直到找出第一个返回值为true的成员 然后返回该成员 如果
  • 一定要会用selenium的等待,3种等待方式解读

    很多人问 这个下拉框定位不到 那个弹出框定位不到 各种定位不到 其实大多数情况下就是两种问题 有frame 没有加等待 殊不知 你的代码运行速度是什么量级的 而浏览器加载渲染速度又是什么量级的 就好比闪电侠和凹凸曼约好去打怪兽 然后闪电侠打
  • ad Hoc打包测试

    一 iOS证书 首先介绍一下iOS证书 iOS证书分两种 1 开发证书 用来给你 开发人员 做真机测试 2 发布证书 又分为两种 发布到app store 和发布测试的ad hoc证书 本文就详细讲解 ad hoc证书的创建 二 什么时候用
  • 基于STM32的ESP8266天气时钟(2)--------MCU获取天气数据

    前言 上一章节我们通过串口调试助手 成功获取到天气数据 这一节我们将通过MCU的串口发送 接收功能 实现MCU获取天气数据 传送门 基于STM32F103的网络天气时钟 1 通过串口获取天气 文章目录 1 摘要 2 硬件准备 2 1 WIF
  • fabric.js保存自定义属性重新渲染

    项目开发中 用到了fabric js开发一系列画布功能 其中 在做画布的序列化和反序列化功能时候 自定义的属性并不能够直接保存下来 这时候则需要我们自己做一些事情啦 下面是我的一个解决方法 在添加画布对象到画布上面之前 修改画布的toObj
  • 学习笔记之30个常用的maven命令

    maven 命令的格式为 mvn plugin name goal name 可以接受的参数如下 D 指定参数 如 Dmaven test skip true 跳过单元测试 P 指定 Profile 配置 可以用于区分环境 e 显示mave
  • 用react 写一个lyout页面

    可以使用 React 创建一个布局页面 首先 你需要在你的项目中安装 React 和 ReactDOM 然后你就可以开始创建你的布局页面了 你可以使用 JSX 语法在你的布局页面中创建 HTML 元素 例如 下面的代码创建了一个带有一个标题
  • Linux下libxml库编程(二)

    http leansmall blog 163 com blog static 51617691200811171560790 3 3 重要操作 3 3 1 创建XML文档 创建一个xml文档流程如下 l 用xmlNewDoc函数创建一个文
  • 【2】Midjourney注册

    随着AI技术的问世 2023年可以说是AI爆炸性成长的一年 近期最广为人知的AI服务除了chatgpt外 就是从去年五月就已经问世的AI绘画工具mid journey了 几个AI工具也代表了人工智能的热门阶段 只要输入一段文字 AI就会根据
  • 2021-07-19PHP面试笔试题记录

    1 执行以下代码 输出结果是 正确结果为 echo class b something 2 执行以下代码 输出结果是
  • vue2 cli4 打包chunk文件太多解决办法

    由于项目原因npm run build打包后chunk文件很多下 想减少chunk文件数量 在vue config js文件中添加webpack插件 文件头加var webpack require webpack 这样chunk文件数量就变
  • 华为交换机配置MSTP

    文章目录 1 拓扑图 2 任务描述 3 SW1配置 4 SW2配置 5 SW3配置 6 SW4配置 1 拓扑图 2 任务描述 在交换机SW1 SW2 SW3 SW4上配置MSTP防止二层环路 具体要求如下 VLAN10数据流默认经过SW3转
  • 程序媛菜鸡面经(八 - offer篇)

    投简历 简历是要多投的 但是有时候投多了简历也会有问题 头条 没有面试机会 在看过简历后HR发邮件告知我 从简历上能看出你是一位很优秀的人 但看不出你在前端 技术方面的竞争力 当时投的是旧版简历 于是我回邮问简历有误能否重申 至今未有回音
  • 子网掩码的作用

    IP地址由网络和主机两部分标识组成 IP地址由 网络标识 网络地址 和 主机标识 主机地址 两部分组成 在局域网内相互间通信的网络必须具有相同网络地址 也叫相同的网段 在同一个网段内每个设备的主机地址都不相同 在IPV4中 IP地址由32位
  • Vue中query与params两种传参的区别

    query语法 this router push path 地址 query id 123 这是传递参数 this route query id 这是接受参数 params语法 this router push name 地址 params
  • linux系统哪个好用

    linux系统哪个好用 1 Ubuntu服务器 Ubuntu是众所周知的最佳LinuxServerDistro 它能为您提供出色的用户体验 如果你是Linux世界的新手 选择Ubuntu作为你的服务器发行版将是最好的 使用此服务器 您可以做
  • Mac系统如何在圣诞节让电脑屏幕下雪?

    对于苹果 Mac 电脑上的 终端 应用 可能大家在平时用得不多 所以对它应该都会比较陌生 其实这个终端应用是用于让用户可以直接输入一些系统指令 让它执行相应的操作 比如简单的显示当前目录中的文件 显示日期与时间 删除文件等操作都是可以的 今
  • Android项目Gradle: Download gradle-6.5-bin.zip一直卡住解决方法

    1 首先停止gradle的下载 通过迅雷或浏览器将gradle下载下来 下载地址为 https services gradle org distributions gradle 6 5 bin zip 其他版本的gradle同理 2 打开C
  • 二级MS Office高级应用

    1 在长度为n的有序线性表中进行二分查找 最坏的情况下需要比较的次数是 O log2n 以2为底n对数 解析 当有序线性表为顺序存储时才可以用二分查找 可以证明的是对于长度为n的有序线性表 最坏的情况下 二分查找只需要比较O log2n 次
  • 数据仓库开发之路之一--准备工作

    在数据仓库的开发过程中 需要熟悉大量的概念以及相关工具的使用 还需要了解宏观上的各种开发流程 串联起来完成最终的数据仓库项目的开发 本篇介绍一些准备工作 包括涉及到的工具介绍 以及开发过程的描述 记录学习研究的印记 并和大家讨论研究存在的相