【IT168 技术文档】大多数数据库管理员 (DBA) 在管理其组织的数据和 Microsoft SQL Server 实现时都遇到了某种形式的商业智能 (BI)。许多其他不具有 DBA 职责的 IT 专业人员可能听说过 BI,但并未切身体验过 BI,甚至完全不清楚什么是 BI。在本文中,您将了解到究竟什么是 BI。一旦您了解 BI 技术的真正用途以及如何在 Microsoft BI 平台上构造 BI 解决方案,您就会知道为什么 BI 不仅仅适用于 DBA。如果您了解 BI,就能够在您组织的 BI 计划出现(这些计划将出现)时更好地支持这些计划,并且您将了解如何使用 BI 来跟踪和分析与您的角色相关的数据,从而使您的工作更加轻松,并加深对这些数据的理解。
本文是一系列介绍 Microsoft BI 堆栈的文章的第一篇。在这篇文章中,我定义了 BI 并简要描述了 BI 解决方案的高级体系结构。我还讲解了构建 BI 解决方案的过程。若要深入了解本文中提到的 SQL Server BI 技术,您可以阅读本期杂志中由 Derek Comingore 编写的随附文章(请见“为 BI 解决方案构建数据基础”)和下期杂志中由 Scot Reagin 和我编写的随附文章。
什么是 BI?
几年前,在我和别人合著 Business Intelligence:Making Better Decisions Faster(《商业智能:更快地做出更好的决策》,Microsoft Press,2002)时,我的同行就哪些技术应归入 BI 的范畴并纳入本书覆盖范围这个问题的意见很不统一,我对此十分惊讶。听到 BI 专业人员就哪些工具是 BI 工具,哪些工具不是 BI 工具发表了不同的意见使我受到了启发。IT 行业中仍存在着这样的观念差异,并且很多人还在继续争论 BI 的定义。在我看来,BI 既与业务流程有关,也与技术有关,因此我将从这个角度来开始定义 BI。
作为一个业务流程,BI 是您为收集和分析数据而执行的一系列活动,您可以通过与他人共享分析结果来做出更好的决策并增强您的业务。无论您是需要信息以决定如何使日常工作更高效还是需要为长期规划(如下一年的预算)提供支持,您用来查找、传输、格式化和研究数据的步骤都是 BI 的一部分。此外,BI 还包括用于使结果可供日后参考的过程,这样您和其他人便能够在研究这些数据后估计您的决策所产生的影响。一般来说,BI 是一个迭代过程。您可以分析数据来了解发生的事情,可以采取措施来确保始终发生好的事情并避免发生坏的事情,然后可以分析数据来确定您的措施是让事情变得更好还是更差了,以及外部因素是帮助还是阻碍了您的工作。
由于 BI 具有如此广泛的定义,您每天甚至在记下少量信息或创建列表来帮助您做出决策时也会用到 BI。通过将技术引入到您用来收集、分析和共享信息的部分或所有业务流程中,可以让这些流程更高效。在采用 BI 技术时,旨在从小处着手的组织通常会先使用该技术来解决特定问题。随着时间的推移,组织会将重心转变为在整个组织中发布信息,从而使 BI 技术的使用范围逐渐扩大。随着其 BI 策略的日趋成熟,组织通常会获得更复杂的工具,以便能更好地与数据进行交互并更深入地研究数据。
查询您的公司数据库时出现了什么问题?
在 BI 的任何定义中,数据始终是重点。您可能想知道,在您只需查询组织的一个或多个数据库便能获得所需数据时,为何还要费心创建 BI 解决方案?在以下情况下,您可能不需要正式的 BI 解决方案:您是您正在收集的数据的唯一使用者,您有访问公司数据库的工具、技能和安全权限,您需要的所有数据都在这些源中。相比之下,如果您需要定期与技术技能和安全权限有所不同的其他人共享信息,则需要创建一个易于使用和维护的 BI 解决方案。您还需要考虑的是,当您的同事获悉这个灵巧的 BI 解决方案后,他们也会想使用它。为了满足这个预期需求,您的解决方案应一开始就是可扩展的。
从表面上看,允许公司内部的每个人通过运行报告来从企业数据库获取数据可能看起来是个好主意,但这个方法将不会在 DBA 中广受欢迎。他们会告诉您,直接查询企业数据库可能会引发一些问题。以下是几个更常见的问题:
· 如果组织的数据以不同格式存储在各个平台上,则将这些数据整合成一类对分析很有用的常见格式可能是一大难题。无法将数据从源表直接复制到常见目标表中,而必须在存储数据之前以某种方式操作数据。
· 数据定义在多个数据库之间可能是不一致的,并且难以协调看起来类似的数据。例如,可以按照一组业务规则来计算销售数据库中的收益,但会受到总帐数据库中的一组完全不同的业务规则的约束。
· 可能已为每个数据库创建了结构并进行了优化,以便插入数据或执行查询。即使您只需要查询一个数据库,运行分析查询通常也需要汇总大量数据,这是一项需要耗费大量数据库资源的操作。因此,查询的执行时间可能较长,并会与执行插入、更新或查询操作的其他应用程序争用资源。
· 历史数据通常在企业数据库中存档而不是无限期地维护。如果您需要查看随时间变化的趋势(一个常见的 BI 活动),您的解决方案可能必须成为一个不在企业数据库中保存的数据的存储库。
· 企业数据库可能没有分析所需的某些数据。这些数据可能以平面文件、电子表格或非结构化数据格式(如 Microsoft Word 文档)的形式存在。获取用户存储在其本地计算机或大脑中的信息会更加棘手。
· 即使数据可用,质量问题有时也意味着您无法从源直接使用它。您可能需要下载数据并对其进行清理,然后才能分析数据。除非可以在源中清理数据,否则每当您访问数据时都需要手动清理它 - 确保您每次都应用相同的规则。此外,您无法确保使用相同数据的其他人都会应用相同规则来清理数据。
为了解决与数据访问相关的这些问题,BI 解决方案通常会包含一个为保存用于分析的数据而专门创建的数据库。拥有这样一个数据库就意味着您可以避免在生成数据的活动和使用数据的活动之间出现任何资源争用问题。进一步来说,您可以重构数据,使汇总数据的查询能更快地运行。当您需要合并不同数据源中的数据时,您可以对这些数据进行集中管理,并应用业务逻辑以将这些数据设为含义一致的常见格式。您也可以将来自数据库之外的其他源(如 XML 文档或电子表格)的数据合并到此中心位置。创建单独的数据库的另一个好处是,您可以在从源数据库中清除历史数据后根据需要保留历史数据。最后,您可以自动执行清理和增强数据的过程以便分析,从而确保每次访问数据时都应用相同的规则。