如果你有一个目标,想获得所有这些数据的可操作的见解,并一直在收集。那么,你如何确定模型的数据,以便实际上可以获得这些见解,并回答你的业务问题?你的计划。当规划阶段不充分或不完全,其结果是可怕的。那么分析和性能、数据完整性和安全性的问题接踵而至,将会使日常的维护和发展的成本达到了不必要的水平。
在这篇文章中,介绍了人们在数据准备分析建模时出现的一些常见的错误。如果被忽视,这些错误可能会阻碍你的分析,并影响你的见解。
让我们从使用的工具或技术方面避免三种常见的数据建模的错误开始,然后再到OLAP多维数据集和传统的BI平台上工作时大多遇到的4个问题。
避免常见的建模错误
1.开始实施时没有明确的行动计划
当涉及到的分析,如数据仓库或Elasticube建模数据资源,至关重要的是要规划出它的目标是什么。有几个原因,但主要的主题是,你不能有效地利用您的分析资源,如果你没有为他们的目标。设计一个数据模型,将允许企业用户进行调查,如网络流量和选择,如为了分析产品销售模型,网络流量和选择的价格将远远不同。
最好的做法是为每个计划运行分析领域进行规划,设计,并分配资源。这应该在商业智能(BI)项目规划阶段和全面的需求获取过程中完成。当谈到实施更改分析目标时,就会发现在性能,安全性和可行性的明显改善。
将过多的数据包括到一个资源这是可能的,采用传统的工具可能会导致查询时间和分析慢下来;但即使采用SiSense这样一个平台,优化那些庞大而不同的数据集性能时,仍然需要小心避免存储问题,数据复制,以及不必要的开销。在另一方面,没有包括所有必要的数据来回答你的业务目标中列出的问题,这是更糟糕的。
这一步的规划将使你识别分析模型的总体目标,并确保正确的数据,包括每个资源。
2.没有充分使用代理键
当分析来自多个来源的数据时,确保数据具有唯一标识符的一种流行的策略是提供代理键。然而,这并不总是必要的,或选择使用替代密钥是一种良好的做法。很多时候,数据有自然键(数据是一个唯一的值),而不用替代。这些值,如客户的ID,社会安全号码,或已经在使用的交易数据作为主密钥的复合键,是稳定的,足以保留所有的基本密钥需要的特性。
在这里,有几点要牢记:代理键不应该与数据有关系。也就是说,它不应该受业务规则的限制。这些规则可以随着时间的推移而改变,并呈现以前的唯一的值。
代理键不应该的数据的关系。也就是说,它不应该受业务规则。这些规则可以随时间改变和呈现先前唯一值非唯一。
主键应该是相当紧凑,大的,复杂的,3个或更多个字段的组合键可能是麻烦的。如果自然键候选者是紧凑和稳定的唯一值,这可能没有理由添加代理键。
当使用代理键,计划系统总是使用类似的技术生成唯一值,UUID,GUID,或max()+1。这将确保任何代理键确实是唯一的。
代理键存在某一行标记独特而不提供业务内容。这是他们提供的价值。它们不应该被用于查询,并显示给终端用户。如果是这样,你现在已经引入了一个业务内容,不应存在的数据的关系。重新考虑你的模型和查询。
3.不当的命名标准
如果命名标准不当,可能会影响与任何数据相关的活动。这是规划分析资源的数据模型的一个重要步骤。跳过这一步可能会导致很多不必要的麻烦和挫折。来自多个源的汇集数据时,这是特别真实。
数据的主要基础是一致的。这应该扩展到所提供的表、列、约束、措施等的名称,以遵循一个标准的命名约定,其好处变得非常迅速。如果你试图创建分析的查询,但你的表和措施在他们的名字后面没有任何逻辑,这将很难遵循。例如,如果你有这些表:
Production_MaterialsCosts
productionMachinesMaterialVendors
它可能是困难的,但并不是不可能的,知道这些是如何标记的,或是他们是什么,而不是每一次寻找他们。在数据模型中有一致性要更容易得多。这可能看起来像:
Production_MaterialsMaterial_Vendors
Production_MachinesMaterial_Costs
这是一个更好的方式来保持你的数据分析处于正轨,并为数据模型提供一致性。
有迹象表明,在命名标准中还有许多使用的标准方法。挑选一个适合您的组织工作并实现它,这是比较容易的。因此没有必要采用独特的命名约定。如果您是数据架构师,第一次创建分析框架,这是你的责任,以实现一个对未来的分析师遵循的标准。如果不这样做是一种严重的疏忽。
4.使用传统工具工作时常见的错误
采用传统的BI工具或RAM密集型内存系统工作时,以下的错误代价可能是极其昂贵的,SiSense用户保证快速高效的芯片数据引擎不再是一个问题。
5.错误的粒度级别
在分析中,粒度是指可以让我们看到的数据细节的水平。例如,以时间和销售规模为例,在产品推出的网上业务。粒度是多么小的一个时间框架,我们可以看一下。我们可以看看每小时,每分钟,甚至每秒的交易数量吗?如果我们有数据,看看每一秒发生多少交易,每秒的交易,这将是粒度。如果我们所拥有的数据是每小时为单位,那么我们的粒度将是每小时的交易。这不仅适用于时间维度。可是以参考一些类似每次访问成本,例如医生的办公室或每个邮政编码的客户。
这是需要一个很好的平衡的问题。你可能有太多的无关数据,可能是难以让最终用户驾驭,这可能是一个企业管理人员更感兴趣的大局。但是数据太少,又不能看到你需要的细节,此外,商业智能平台的性能可能会受到影响,特别是当与传统的商业智能工具(值得注意的是,这不应该是一个问题,因为使用现代数据分析工具具有较强的数据处理能力)。
这一点很重要,要记住,不仅在规划分析和数据模型,但是当你认为哪些数据值得捕获和储存。毕竟,如果你实际上并没有拥有它,那就不能分析数据。
并不是所有的措施都在硬数据中发现。有许多情况下,派生或计算将是必要的分析。然而,并非规划在数据模型中,这些派生值可能是一个代价昂贵的错误。当运行分析查询遗留系统,使得许多计算可以为基础设施,减缓了整个过程。此外,它可能会导致一些主要值的不一致。
正如前面提到的,这是用较少的Sisense问题,自芯片 技术可以进行这些计算特设的,没有耗尽计算机的RAM资源。但是,如果您使用的是旧版本还是内存系统,根据情况有几个方法来处理很多派生值。当有衍生值,将不断地或者用于报告或分析的目的引用的值,它可以是谨慎在ETL过程中进行这些计算,并将其存储。另外,如果计算出的值是计算密集的(即复合式),也可能是存储所导出的值是个好主意。
除了当把它们存放与不存储他们,而不是规划派生值会影响你的分析。尤其是在金融领域的指标,即计算获得该指标将是主观的。这取决于该公司和他们的方法,该公式被用于一个特定的度量。如果不使用一个一致的公式,这将会有一个数据完整性和一致性问题,将会破坏任何分析。
最好是采用适当的业务部门检查,以确保一致性的实现。规划派生值可以帮助你分析,并改善未来业绩。
6.维度层次结构
维层次结构可以威胁任何分析。有时,没有明确的方法来确定一个特定的维度是否是一个层次结构的一部分。其他时间的业务目标的分析错的关系。这是需要进一步调查的时候。如果层次结构还不清楚,需要花时间去接触业务人员,可以清理数据,以及是如何使用的。这可能是大企业高度隔离的问题。如果没有咨询许多部门,它可能会很难正确地映射你的数据模型。
如果不采取正确的层次结构,分析可能会受到严重阻碍。一个实例将是创建一个用于制造公司上层管理的仪表板。如果工厂位置层级没有正确映射,用户将无法深入数据。当然,这只是一个简单的例子。而数据模型不正确维度的层次结构,还需要过于复杂的查询来获得所需要的分析信息,创建属性关系不一致,甚至防止一些分析被完全执行。
在你的分析过程需要移动之前,最好是规划出你的数据模型和正确的层次结构。
7.忽略小数据源
不可避免的是,关键的业务数据存储在各种各样的地方。数据存储在电子表格、数据库、笔记本电脑、移动设备、备忘录、收据等,也许相当大的一部分可遇不可求,对于从所有的这些“信息孤岛”的数据采集分析。一个大的错误是基于一个不完整的数据集,忽略这些较小的数据源得出结论。
这对于规模较小的公司来说,并不具备一个连接各部门和集中的数据强大的基础设施,更是如此,还是因为加入多个数据源仍然是一个IT处理过程,不能由用户进行处理。小企业可以以指数速率增长,而与数据收集保持同步增长,通常让人头疼的一件事。因此,在企业运行分析的时候,它有许多信息孤岛,需要包括准确的结果。
例如,采用电子表格是行政助理使用跟踪客户和通信进行客户分析的关键。离开了电子表格,可能无法实现重要的连接。它可能是唯一的记录,而可能来自两个不同的来源的两个客户的名字实际上是同一个客户。这种事情可能让人头痛。
人们的底线是,一定要采取从这些数据源识别和收集数据的时间。它可以创造或打破您的分析。
结论
你可能已经注意到,当涉及到你的数据分析建模时,就有一个共同的主题,那就是规划。花时间来规划你分析的目标,并合并来自许多来源的数据。如果使用得当,数据建模变得更加容易,你的数据会分析生成更可靠,可操作的见解。
你的规划阶段应包括以上列出的要点。这也应当比实际建模时间长得多。人们要抽出时间来设置一些标准,收集所有的数据,确定各种资源的目标。