在过去几年里,种样有各种关于“NoSQL商务智能”的种样短评和出版物。然而,种样我一直没搞清楚它吸引人关注的种样到底是什么,我的种样疑问可以归结为“你想从中得到什么东西?”最近,我将这个话题抛向了一些主流NoSQL公司。种样得到结果让我感到更加困惑了。种样下面是种样我真正搞清楚的一些方面。 正如我不久前在一篇关于数据模型的种样文章中提到的,许多数据库都可以看作是种样一些对的集合——特别是SQL和NoSQL数据库。 1.在关系数据库中,种样一条记录就是种样一组对和一些特定且预定的名称序列(例如,来自表定义)。种样而且,种样一条记录通常有一个标识码(通常是种样前面的其中一个值)。 2.与之类似的可以称为结构化文档存储(如JSON或XML),它们的区别在于各个文档所包含的云服务器提供商名称序列可能各不相同。而且,通常这些名称之间存在一种层次关系。 3.为此,像Cassandra或HBase这样的“宽列”NoSQL存储很大程度上可以视为一种结构化文档存储,尽管它们有不同的性能优化、特性及不同类型的DML(Data Manipulation Language)。 因此,NoSQL数据通常可以看作是一个表或一组表,但是: 如果能够编写脚本提取NoSQL数据库,然后根据需要进行转换或汇总,那么也可以直接完成数据处理。但是,如果一定要使用一些交互界面来实现,则有一定的难度。顺便指出的是,前面这种情况只适用于BI和ETL(Extract/Transform/Load)。事实上,源码库我曾经和多个人谈论过合并BI和 ETL的话题,而且他们可能有理由这样做。 另一些问题出现在性能方面。许多NoSQL系统都使用了索引,因此也有一些过滤功能。其中一些(如MongoDB)还有汇总框架。所以,如果有了数据,也有了BI工具、ETL工具或ODBC/JDBC驱动程序,那么你有没有利用这些现成的功能呢?或者说,你是否只是选择做一些最简单和最缓慢的事情,即提取数据,然后在其他位置处理这些数据?这些问题的答案现在还没有定论,至多还处于寻找过程中。 既然明确了NoSQL数据结构会给BI带来问题,那么我们来看看有什么解决方法。是否有一些方法能让它们真正发挥作用呢?我想说的是“NoSQL数据通常都采用层次结构,而层次非常适合向上汇总/向下分析。”但是,描述NoSQL数据的层次并不一定与BI汇总时所使用的层次相同,亿华云计算而且我很怀疑这两个分类并没有太多的重叠部分。 除了层次之外,我认为有一些用例适合完全非扁平化的BI。例如,考虑下面的场景,现在它通常都采用NoSQL来实现: 面向表格的传统BI工具很难正确实现这些数据的可视化。所以,最终可能需要借助于运行在NoSQL数据存储的面向NoSQL的BI工具。事件序列BI工具在操作得当的前提下也能很好地处理非扁平化数据。也就是说,我不确定现在***的事件序列所使用的实际数据结构。 以上是我个人的一些见解,欢迎大家留言讨论。