刚开始接触软件工程的时候,知道其中一个步骤叫做“总体设计”,做这项工作的人就叫“软件设计师”。当时觉得这个名称比软件开发工程师酷多了。到了现在,又开始流行“架构师”(Architect)
刚开始接触软件工程的时候,知道其中一个步骤叫做“总体设计”,做这项工作的人就叫“软件设计师”。当时觉得这个名称比软件开发工程师酷多了。到了现在,又开始流行“架构师”(Architect)
,这个名称
听起来比软件设计师又酷了几分。
如今,如果你偶尔遇到一个年轻人,也就是二十出头、三十不到的样子,却客客气气地给你递上一张注明“数据仓库资深架构师”的名片。这个时候,你千万不要诧异。说来也不奇怪, BI在国内刚
发展起来没几年,在这个领域干个四五年就足以混个资深的名头了。
不过,话说回来,拿着“资深架构师”的名头去忽悠是一回事,但架构师究竟该干什么,架构设计究竟怎么进行,如何架构一个BI系统?的确是需要认真研究一番的!
第一截:模块
BI系统(或者说数据仓库系统)也同样需要架构,它作为一种软件系统,是符合一般架构原则的。首先,我们来看看架构设计中包括那些内容。 架构的重点是描述系统的结构,以及它们之间的
关联、交互接口。
BI系统可以划分成业务模型、元数据、数据质量、接口平台、报表集市、指标库等若干模块。可以看出,在这里,这些模块的命名都是静态的名词,而不是动词(例如业务建模、数据质量管理等)
。之所以如此,是因为这是在描述系统的结构而非功能。
具体来讲,业务模型是存放业务数据的结构,可以再往下细分,并有不同的分层方法。例如可以分成ODS、EDW、DM等层,也有的会根据业务复杂度或数据量考虑,舍弃ODS层。业务模型是支撑
业务分析需求的,例如报表、仪表盘、OLAP、专题应用等。
元数据为整个系统数据的形态和数据流动的过程起到支撑作用,也就是说,数据从源头开始,到最终用户眼前,其来龙去脉,每个环节的状态都需要掌握。还有人将它比喻成模块之间的粘合
剂,但我更愿意将它称作是“数据”之间的粘合剂,因为模块之间自有它们的交互接口规格来粘合。数据质量模块为衡量数据源质量、ETL 过程处理质量提供支撑。
接口平台是处于源系统和数据仓库系统之间的玩意儿,作用在于可以更方便地明确界定双方职责。当然,通常有很多系统似乎并不大愿意将职责搞得过于明确了倒宁愿糊涂一些。糊涂一些的
好处在于一开始省了好多事,但在以后扯皮的事情就少不了了。此外,报表集市为报表应用提供支持,指标库为绩效管理需求提供支持。其实,这两者还可以归入业务模型一类,因为它们都是
服务于分析需求的。
第二截:需求
之所以分成若干模块,是为了让架构清晰,降低这些模块之间的耦合,这符合“分离变化”的原则。那么,这一结构到底是否合理呢?还得看这个架构面临的需求到底是什么。做好这一步,就需
要把系统的用户分为两大类角色:一是系统运营角色,他们对系统的正常运行、维护负责;二是业务分析角色,他们需要从这个系统得到数据分析的功能。
显然,第二种角色的分析数据来源都将来自业务模型模块,而第一种角色将从剩余模块中满足自己的需要,而不直接和业务模型这个模块打交道。在架构设计中,重点应该放在如何满足系统
管理用户的需求上面。当然,只是"重点",而非舍弃业务分析角色,毕竟在业务模型模块中,还需要根据业务、数据量、分析应用等方面的特点,来进一步细化。
就笔者个人经验认为,架构设计应该是与具体业务关系不大的,这种架构应该是半通用的。之所以是半通用,是因为在系统功能上面,BI项目大同小异,而在业务需求上面,架构只需要对客户
的业务、分析需求分成几个大类,例如按行业为业务模型分类,按OLAP、报表来为分析应用分类,不需要太过细致。
下面,让我们来看看系统运营角色的需求。
首先,我们可以把这类角色再细分成两类:一是开发设计及实施者。之所以将开发者作为系统的用户,是因为数据仓库项目应该看作一个过程,而不是产品,因此在开发阶段,其实其架构最
重要的用户就是开发者,当然要为之提供便利。二是系统管理员。系统交付之后,如何监控系统运行、发现数据质量问题、应付新的分析需求等,当然都是系统管理员的分内之事。
那么,对于开发实施人员,他需要进行系统部署、ETL的开发调试、质量的稽核;对于设计人员,则需要进行模型的变更、系统调优、系统一致性分析等;而系统管理员则需要监控ETL过程、监
控系统运行、响应系统警报、接口数据管理等。这些都可以看作是用例。
这些用例就是架构设计的"需求",如何满足他们,并且保持良好的体系和清晰的结构,能够易于维护且能够满足日后肯定会增加的业务需求等等,这些都是架构师们仔细斟酌的事情。
最后,看一下分析人员的需求。举个例子来讲,某销售总监说:“我需要了解近半年来东区和西区的销售量、收入、成本对比”,这可以算是一个用例。对这个需求,架构师该如何做呢?正确做法
是,在架构中不能考虑东区、西区这些业务概念,那样就太过于细致,而是应当将这种需求抽象成一种分析应用,例如 “即席查询”。如此,架构师所着重考虑的事情就是如何满足这一类需求,
而非这一个需求。
链接:
架构设计四项原则:
1、架构设计主要面向系统用户为主;
2、架构设计的内容主要包括:系统功能需求、分析需求分类;支持这两者的后台结构,对结构进行粗略划分,以让其内部能够保持简单的交互方式;
3、架构设计中不要包含过于细致的业务术语(除非为了说明方便),要尽可能保持架构的复用;
4、如果架构设计确实包含不能被其他项目复用的地方,将这部分独立出去。(网界网-CCW)
分享到:
相关推荐
华为出品-安全架构设计方法指南,讲解安全架构设计的来源、软件系统架构与安全架构的定义,常见的系统架构表现形式,安全架构视图,安全架构设计的基本步骤和参考,基于八维度设计框架的安全架构设计方法,维度安全...
在不同的架构设计方法中出现的软件架构视图种类很多,本文介绍最常用的两种架构视图——逻辑架构视图和物理架构视图,并通过具体案例的分析说明如何运用它们进行架构设计。当观察和描述事物大局的时候,逻辑架构和...
【软考】架构设计师论文案例分享【软考】架构设计师论文案例分享【软考】架构设计师论文案例分享【软考】架构设计师论文案例分享【软考】架构设计师论文案例分享【软考】架构设计师论文案例分享【软考】架构设计师...
数字化转型企业架构设计手册 本资源是关于数字化转型企业架构设计手册的详细介绍。企业架构是一项复杂的系统性工程,旨在帮助企业实现数字化转型。该手册涵盖了企业架构的总体框架、业务架构、数据架构、技术架构、...
企业架构设计方法包括业务架构设计、数据架构设计、应用架构设计和技术架构设计四个方面。 业务架构设计是指对公司的业务能力和流程进行分析和设计,形成业务架构蓝图,指导业务流程的实现和优化。业务架构包括业务...
企业架构设计方法包括业务架构设计、数据架构设计、应用架构设计和技术架构设计四个方面。 业务架构设计是指对业务的结构化表达,描述组织如何运用业务的关键要素来实现其战略意图和目标。业务架构设计的输出是业务...
架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计...
华为企业数据架构、应用架构及技术架构设计方法 本资源摘要信息来自于一份52页的PPTX文件,标题为"华为企业数据架构、应用架构及技术架构设计方法",描述为"华为企业数据架构、应用架构及技术架构设计方法",标签为...
在IT行业中,系统架构设计是构建稳定、高效、可扩展软件系统的基石。《系统架构设计师教程》中的第五章,深入探讨了软件架构设计的核心概念、原则与实践,为读者提供了全面而深入的理解。 ### 一、软件架构设计的...
软考系统架构设计师(高级)学习笔记汇总 系统架构设计师考试大纲 系统架构设计师考试大纲和复习指南 系统架构设计师课程大纲 系统架构设计师:浅谈架构 系统架构设计师:软件架构师之路 系统架构设计师复习笔记 系统...
"系统架构设计(模板)" 系统架构设计是软件开发的重要阶段,它定义了系统的总体架构、逻辑功能架构、物理网络架构、数据架构设计、核心模块组件概要描述、出错处理设计和安全保密设计等方面的设计思想和实现方案。 ...
华为企业数据架构、应用架构及技术架构设计方法 华为企业数据架构、应用架构及技术架构设计方法是企业架构设计的核心组件之一。企业数据架构旨在整合企业内的数据资源,提高数据的Accuracy、Completeness和...
华为企业架构之业务架构设计方法 业务架构设计是企业架构的重要组成部分,旨在描述企业的治理结构、业务能力与价值链的正式蓝图。业务架构明确定义企业的治理结构、业务能力、业务活动、业务数据。 业务架构设计的...
Java架构设计示例文档涉及的知识点众多,通常它旨在为读者提供一个关于如何设计高效、可扩展和可维护的Java应用架构的参考。文档可能包含以下几个核心部分:需求分析、系统设计、技术选型、模块划分、接口设计、安全...
《产品技术开发项目-软件架构设计模板》 软件架构设计是构建高质量软件产品的重要环节,它为项目的实施提供了蓝图和指南。本文档旨在为产品经理、项目经理、系统工程师、架构师及软件开发人员提供一个清晰、全面的...
股权架构设计实操手册.pdf 股权架构设计实操手册.pdf 是一本详细介绍股权架构设计的实操手册。该手册共分为三部分,分别是顶层架构、主体架构和底层架构。 第一部分 顶层架构 在顶层架构中,手册介绍了24个核心...
《系统架构设计师真题与答案解析》是一个针对系统架构设计师这一职业资格认证考试的重要学习资源。这个压缩包包含了从2009年至2018年间的历年真题及对应的答案解析,对于备考者来说是极其宝贵的参考资料。下面将详细...
### 微信技术总监分享架构设计的核心知识点 #### 一、微信之道——至简 - **背景介绍**:微信作为一款现象级应用,其成功离不开其背后强大的技术支撑与先进的设计理念。微信技术总监周颢在腾讯大讲堂的演讲中分享...
### 系统架构设计师教程第二版知识点概览 #### 一、系统架构设计师的基本要求与基础知识 1. **绪论**: - 系统架构设计师的职业定位和发展趋势。 - 系统架构设计师应具备的基本素质和技术能力。 2. **计算机...