如何建立数据仓库架构
每一个数据仓库有一个架构。这架构要么是即时的或计划过的;或隐式的或形成文件的。不幸的是,许多数据仓库开发时并没有一个明确的架构,这极大的限制了它的灵活性。在没有架构的情况下,主题区域就无法契合在一起,它们之间的连接变得无目的,并且使整个数据仓库的管理和变更都难于进行。此外,虽然它可能看起来不重要,数据仓库的架构已成为选择工具时的框架。
让我们把开发一个数据仓库与建造一个真正的房屋进行比较。你如何建造一幢300万美元的大厦呢?更不用说建造一间10万美元的房子了。你要有蓝图、图纸、技术规范、和在多个层次细节上显示这个房子将如何进行建造的标准。当然,针对房子的各种子系统要有不同版本的蓝图,如管道工程、电气、暖通空调系统(HVAC)、通信、和空间。针对所有的家用的设备也有相应的标准,包括插头、灯具、卫生洁具、门的尺寸等。
对于数据仓库,架构是对数据仓库的元素和服务的一种描述,用具体细节说明各种组件如何组合在一起,和随着时间的推移系统将如何地发展。就像这房子的比喻,数据仓库架构是一套文件、计划、模型、图纸和规范,针对每个关键的组件区域有独立的分区,并且足够详细到让专业技术人员可以实施它们。
这并是一个需求文件。需求文件说明架构需要做些什么。数据仓库架构也不是一个项目计划或任务清单;它说明数据仓库是什么,而不是怎么去做或为什么去做。
一个数据仓库的开发也并不容易,因为相对于房屋的5000年建筑史,我们发展数据仓库系统只有20年的时间。因此,我们的标准还不多,工具和技术正在快速发展,关于我们已经拥有数据仓库系统的档案还很少,而且数据仓库的术语还有很大的出入。
所以,虽然开发一个架构是困难的,但它也是可能的,并且又是至关重要的。首先,最主要的是,架构应该受业务的驱动。如果你的要求是每夜进行更新,这一要求就该包含在架构内,而你必须弄清实现你目标的技术需求。下面是一些业务需求的例子,和针对每种需求的综合技术考量:
●每夜更新――充足的数据准备能力
●全球可用性—平行或分布式服务器
●顾客层次分析――大型服务器
●新数据源――带有支持元数据的灵活工具
●可靠性――工作的控制功能
关键组件区域
一个完整的数据仓库架构包括数据和技术因素。架构可以被分为三个主要区域。首先,是基于业务流程的数据架构。其次是基础设施,包括硬件、网络、操作系统和电脑。最后,是技术区域,包含用户所需的决策制定的技术以及它们的支持结构。对这些区域将在下文分小节进行详述。
●数据架构
如上所述,在整体数据仓库架构中的数据架构部分是受业务流程所驱动的。例如,在一个制造环境里,数据模型可能包括订单、装运和帐单。每一个区域都依据一套不同的维度。但是在数据模型中对相交维度的定义必须相同。所以相同数据项应该有同样的结构和内容,并有一个创建和维护的单一流程。
当你完成一个数据仓库架构并呈现数据给你的用户,就要做出对工具的选择,但随着需求的设定,
选择就会变窄。例如,产品的功能开始融合,就像多维联机分析处理(M
OLAP)和关系型联机分析处理(ROLAP)。如果停留在你建造的立方体,多维联机分析处理(MOLAP)便可以了。它速度快又允许灵活的查询――在立方体的范围内。它的缺点是规模(整体上和一个维度内)、设计的局限性(受立方体结构所限)、需要一个专有的数据库。关系型联机分析处理(ROLAP)是多维联机分析处理(MOLAP)的一种替代方案,它克服了多维联机分析处理(MOLAP)的这些缺点。
通常,混合联机处理(HOLAP)更受欢迎,它允许一部分数据存储在维联机分析处理(MOLAP)中,另一部分数据存储在关系型联机分析处理(ROLAP)中,折衷了各自的长处。
●基础设施架构
对硬件及数据库选择的问题在于其大小、扩展性和灵活性。在大约80%的数据仓库项目中,这并不困难,大多数企业有足够的力量来应对他们的需要。
在网络、检查数据来源、数据仓库准备区、以及它们之间的任何设施方面,要确保有足够的带宽用于数据的移动。
●技术架构
技术架构被元数据目录所驱动。一切都应该受元数据所驱动。服务应该依从表格所需的参数,而不是它们的硬编码。技术架构的一个重要组件是 ETL(提取、转换和加载)流程,它涵盖了五个主要区域:
●提取-数据来自多种数据源并且种类繁多。在这个区域如果有数据的应用时必须考虑对它的压缩和加密处理。
●转换-数据转换包括代理主键的管理、整合、去标准化、清洗、转换、合并和审计。
●加载-加载通常是利用加载最优化和对整个加载周期的支持对多种目标进行加载。
●安全-管理员访问和数据加密的策略。
●元件控制--它包括元件的定义、元件安排(时间和事件)、监控、登录、异常处理、错误处理和通知。
数据准备区需要能够从多种数据源提取数据,如MVS、ORACLE、VM和其它,所以当你选择产品时要具体。它必须将数据进行压缩和加密、转化、加载(可能对多个目标)和安全处理。此外,数据准备区的活动要能够自动化进行。不同的供应商的产品做不同的事情,所以大多数企业将需要使用多种产品。
一个监控数据仓库使用的系统对查询的采集、使用的跟踪是有价值的,而且也有助于性能的调整。性能优化包括通过“管理者”工具进行的成本估算,而且应包括即时查询的时间表。有工具能够提供查询管理服务。可使用工具来针对这些和其它相关任务,
如对前台的基于服务器的查询管理和来自于多种数据源的数据。也有工具可用于报表、连通性和基础设施管理。最后,数据访问块应包括报表的服务(如发布和订阅),还应包括报表库,调度程序和分布管理员。
关于元数据
在数据仓库流程中数据的创建和管理要遵循以下的“步骤”:
●数据仓库模型
●数据源的定义
●表的定义
●数据源到目标的映射
●映射和转换信息
●物理信息(表格空间,等)
●提取数据
●转移数据
●加载统计
●业务描述
●查询请求
●数据本身
●查询统计
为显示元数据的重要性,上述的步骤列表中只有三步包括了“真正”的数据-7、8和12。其他的一切都是元数据,而且整个数据仓库流程都依赖于它。元数据目录的专业技术要素包括:
●业务规则--包括定义、推导、相关项目、验证、和层次结构信息(版本、日期等。)
●转移/转换信息--源/目的地的信息,以及DDL(数据类型、名称等等。)
●操作信息--数据加载的工作时间表、依存性、通知和信息的可靠性 (比如主机的重定向和加载平衡)。
●特定工具的信息--图形显示信息和特殊功能的支持。
●安全规则--认证和授权。
建立架构
在开发技术架构模型前,要先起草一份架构需求的文件。然后将每一项业务需求计划包含到它的架构中。根据架构的区域对这些内容进行分组(远程访问、数据准备、数据访问工具等)。了解它如何于其它区域相适应。采集区域的定义及其内容。最后提炼和形成模型的文件。
我们认识到开发一个数据仓库架构是困难的,因此要有一个周密细致的规划。但ZACHMAN框架又超出了大多数企业对数据仓库的需要,所以建议使用一个合理的折衷方案,它由四层流程所组成:业务需求、技术架构、标准和工具。
业务需求本质上驱动着架构,所以要对业务经理、分析师、高级用户进行访谈。从你的访谈中寻找主要的业务问题,以及企业战略、发展方向、挫折、业务流程、时间、可用性、业绩预期的指标。将它们一一妥善归档。
从IT的角度来看,跟现有的数据仓库/决策支持系统(DSS)的支持人员、联机分析处理(OLTP)应用组成员、数据库管理员们(DBA);以及网络、操作系统和桌面支持人员进行讨论。也要与架构师和专业规划人员进行探讨。你应该从这些讨论中得知他们从IT的观点考虑数据仓库的意见。从中了解是否有现存的构架文件、IT原则、标准文件、企业数据中心等。
关于数据仓库并没有太多现存的标准,但对于许多组件来说是有标准的。下面是一些需要牢记的标准:
●中间设备--开放数据库连接(ODBC)、对象链接与嵌入(OLE)、对象链接与嵌入数据库(OLE DB)、数据通信设备(DCE)、对象请求代理(ORB)和数据库编程(JDBC)
●数据库连接--ODBC, JDBC, OLE DB, 和其它。
●数据管理--ANSI SQL 和文件传输协议(FTP)
●网络访问--数据通信设备(DCE)、域名服务器(DNS)、和 轻量目标访问协议(LDAP)
无论它们支持的是哪种标准,主流的数据仓库工具都受元数据所驱动。然而,它们通常并不互相共享元数据而且在开放性上也所有不同。所以,要仔细研究和购买工具。架构师是你选择适当工具的向导。
一个数据仓库架构需要具体到怎样的程度呢?这个问题要问的是:它有足够的信息可以让一个有能力的团队来建立一个满足业务需求的数据仓库吗?至于它要花多长时间,随着更多的人加入到它的开发中来(即:它变成了“复杂的技术策略”)和生成的系统需要变得更复杂(即"复杂的功能”),架构的完成会呈指数倍的发展。
像数据仓库中几乎所有的事情一样,一个迭代进程是最好的。你不能一次做完所有的事情因为它太大了, 而且业务不能等。同时,数据仓库的市场还没有完备。所以从流程中影响大、高价值部分开始,然后,利用你的成功去带动另外的阶段。
总结:
综上所述,建立一个数据仓库架构的好处如下:
●提供了一个组织结构的框架--架构对什么是单独的组件、如何将它们组装在一起、谁拥有什么部分以及优先次序的问题划出了界线。
●提高了灵活性和维护性--让你能快速加入新的数据来源,接口标准允许即插即用,模型和元数据允许影响分析和单点的变化。
●更快的开发和再利用--数据仓库开发者更能够快速了解数据仓库流程、数据库内容和业务规则。
●管理和通信的工具--定义未来方向和项目范围, 确定职务和职责、对供应商传达需求。
●协调多项任务同时进行——多种、相对独立的工作有机会成功地集合。
我们建议公司对准业务需求而又要务实一些。时刻跟上数据仓库产业的进步是很重要的。最后,请记住架构总是存在的:或隐性或具体的,或无计划或计划内的。经验证明,有一个计划内和具体的架构会使数据仓库与 商业智能项目有更多的成功机会。
数据分析咨询请扫描二维码
数据分析师的工作内容涉及多个方面,主要包括数据的收集、整理、分析和可视化,以支持商业决策和问题解决。以下是数据分析师的一 ...
2024-11-21数据分析师必须掌握的技能可以从多个方面进行归纳和总结。以下是数据分析师需要具备的主要技能: 统计学基础:数据分析师需要 ...
2024-11-21数据分析入门的难易程度因人而异,总体来看,入门并不算特别困难,但需要一定的学习和实践积累。 入门难度:数据分析入门相对 ...
2024-11-21数据分析是一项通过收集、整理和解释数据来发现有用信息的过程,它在现代社会中具有广泛的应用和重要性。数据分析能够帮助人们更 ...
2024-11-21数据分析行业正在迅速发展,随着技术的不断进步和数据量的爆炸式增长,企业对数据分析人才的需求也与日俱增。本文将探讨数据分析 ...
2024-11-21数据分析的常用方法包括多种技术,每种方法都有其特定的应用场景和优势。以下是几种常见的数据分析方法: 对比分析法:通过比 ...
2024-11-21企业数字化转型是指企业利用数字技术对其业务进行改造和升级,以实现提高效率、降低成本、创新业务模式等目标的过程。这一过程不 ...
2024-11-21数据分析作为一个备受追捧的职业领域,吸引着越来越多的女性加入其中。对于女生而言,在选择成为一名数据分析师时,行业选择至关 ...
2024-11-21大数据技术专业主要学习计算机科学、数学、统计学和信息技术等领域的基础理论和技能,旨在培养具备大数据处理、分析和应用能力的 ...
2024-11-21《Python数据分析极简入门》 第2节 3 Pandas数据查看 这里我们创建一个DataFrame命名为df: importnumpyasnpi ...
2024-11-21越老越吃香的行业主要集中在需要长时间经验积累和专业知识的领域。这些行业通常知识更新换代较慢,因此随着年龄的增长,从业者能 ...
2024-11-20数据导入 使用pandas库的read_csv()函数读取CSV文件或使用read_excel()函数读取Excel文件。 支持处理不同格式数据,可指定分隔 ...
2024-11-20大数据与会计专业是一门结合了大数据分析技术和会计财务理论知识的新型复合型学科,旨在培养能够适应现代会计业务新特征的高层次 ...
2024-11-20要成为一名数据分析师,需要掌握一系列硬技能和软技能。以下是成为数据分析师所需的关键技能: 统计学基础 理解基本的统计概念 ...
2024-11-20是的,Python可以用于数据分析。Python在数据分析领域非常流行,因为它拥有丰富的库和工具,能够高效地处理从数据清洗到可视化的 ...
2024-11-20在这个数据驱动的时代,数据分析师的角色变得愈发不可或缺。他们承担着帮助企业从数据中提取有价值信息的责任,而这些信息可以大 ...
2024-11-20数据分析作为现代信息时代的支柱之一,已经成为各行业不可或缺的工具。无论是在商业、科研还是日常决策中,数据分析都扮演着至关 ...
2024-11-20数字化转型已成为当今商业世界的热点话题。它不仅代表着技术的提升,还涉及企业业务流程、组织结构和文化的深层次变革。理解数字 ...
2024-11-20在现代社会的快速变迁中,选择一个具有长期增长潜力的行业显得至关重要。了解未来发展前景好的行业不仅能帮助我们进行职业选择, ...
2024-11-20统计学专业的就业方向和前景非常广泛且充满机遇。随着大数据、人工智能等技术的快速发展,统计学的重要性进一步凸显,相关人才的 ...
2024-11-20