无架构数据仓库和报告

时间:2009-06-29 14:25:35

标签: reporting business-intelligence schemaless

我们有一个系统可以通过电话/网络请求/短信/电子邮件等生成许多事件,这些事件中的每一个都需要能够存储并可用于报告(用于MI / BI等)在这些事件中,每个事件都有许多变量,并且不适合任何一个特定的方案。

事件文档的结构是键值对列表(cdr = 1& name = Paul& duration = 123& postcode = l21)。目前我们有一个SQL Server系统,它使用动态生成的稀疏列来存储我们的(平面)文档,我们有针对数据运行的报告,原因很多,我正在寻找其他解决方案。

我正在寻找一个系统(开放或封闭)的建议,允许我们推送这些事件(无论架构如何),并在其上提供报告和分析。

我见过Pentaho和Jasper,但大多数人似乎都连接到一个系统来获取数据然后报告它。我真的只是希望能够推送一份文件,并让它可以报告。

尽管我喜欢CouchDB,但我正在寻找一种系统,它允许无模式提交数据并在其上进行报告(很像Pentaho,Jasper,SQL Reporting / Analytics Server等)

3 个答案:

答案 0 :(得分:3)

我认为没有任何DBMS能够满足您的需求,并且允许使用现成的报告工具。低延迟分析系统不易于快速构建。非结构化数据的低延迟非常雄心勃勃。

但是,您必须将数据保存在某种数据库中。

我认为您可能需要仔细查看您的问题域。您是在尝试运行低延迟分析报告,还是在某些事件发生时提示业务中的某些操作的运营报告?对于低延迟系统,您需要对构成运营报告的内容以及构成分析的内容非常无情。

编辑:除非企业愿意付费,否则不要理会“可能两者”的心态。投资银行和对冲基金花大价钱购买超级计算机进行“实时分析”。这不是一项微不足道的事情。当你试图建立这样一个系统并在高正常运行时间内构建它时,它就更不容易了。

即使在高级短信服务和.com应用程序等应用程序上,当您对问题进行实际范围和成本分析时,业务通常会退缩。我不能说这个。关于“实时”要求, 真的,非常无情

如果业务确实需要实时分析,那么您可以制作混合OLAP架构,其中您在事实表上有一个行进的主导分区。这是一种体系结构,其中事实表或多维数据集完全为历史数据编制索引,但具有一个未编入索引的小型前导分区,因此可以相对快速地插入数据。

分析查询将表扫描相对较小的前导数据分区,并在其他分区上使用更有效的方法。这为您提供了低延迟数据,并能够对历史数据运行高效的分析查询。

每晚运行一个进程,转到新的主要分区,并整合/索引前一个分区。

这适用于您在插入时具有位图索引(在数据库上)或物化聚合(在多维数据集上)等项目的位置。引导分区相对较小且对于表扫描而言便宜,但是有效地插入插入。翻转流程将此主要分区逐步合并到索引历史数据中,以便有效地查询报告。

编辑2 :公共字段可能是在事实表上设置为维度的候选字段(例如,调用者,时间)。较不常见的字段(可能是)编码。对于有效的架构,您可以将可选编码移动到一个或多个'junk' dimensions.

简而言之,垃圾维度是代表两个或更多代码的每个现有组合的维度。表中的行与单个系统实体无关,而是与编码的唯一组合有关。维度表上的每一行对应于原始数据中出现的不同组合。

为了获得任何分析值,您仍然需要组织数据,以便垃圾维度中的列包含始终有意义的内容。这可以追溯到一些需求工作,以确保来自源数据的映射有意义。您可以使用占位符值(例如零长度字符串('')来处理并非总是记录的项目,这可能比空值更好。

答案 1 :(得分:0)

这些系统是否是无架构的,还是只是模式尚未确定?模式是否经常更改?

答案 2 :(得分:-1)

现在我认为我看到了潜在的要求。这是一个带有自定义调查的在线或电话调查应用程序。处理此要求的方法是将分析虚拟到客户端。没有在线工具可以让您在20分钟内完成架构更改。

之前我见过这种类型的要求,归结为希望在特定调查中做一些统计数据的客户。如果你可以根据他们的特定调查中的字段(即带有命名的标题列)给他们一个CSV,他们可以将它导入excel并从那里转动它。

应该可以通过可配置的在线调查系统轻松实现,因为您应该能够阅读调查配置。客户会很高兴他们可以在Excel中使用他们的号码,因为他们不必专注于第三方工具。任何有能力的销售人员都应该能够将这一点转化为客户作为一件好事。您可以按照'的方式使用spiel。您可以使用熟悉的工具(如Excel)来分析您的数字。(如果他们倾向于那就是SAS)

将导出程序包装在网页中,以便他们可以自行下载并获取最新数据。

请注意,如果每个调查的数据量超过65535,则轮子将会脱落,因为这不适合电子表格标签。 Excel 2007将此限制增加到1048575.但是,具有此响应量的调查可能属于少数。一种可能的解决方法是提供一种方法来获取足够小的数据的随机样本,以便在Excel中使用。

编辑:我认为还有其他解决方案对此类应用程序而言足够灵活。你已经描述了调查统计的圣杯。

我仍然认为基本策略是给他们一个数据转储。您可以通过使用OLE自动化来构建数据透视表并提供部分消化的内容,从而在某种程度上预先打包它。 Excel中的数据透视表的API有点毛茸茸,但这当然是非常可行的。我编写的VBA代码过去以编程方式创建了数据透视表,所以我可以从个人经验中说这是可行的。

如果您想要计算和报告(比如)响应时间的分布,那么问题会变得有点复杂,因为您必须构建显示。如果需要,您可以以编程方式构建数据透视表,但通过这种方式自动执行报表构建将是一项相当大的工作。

您可以从R(www.r-project.org)获得一些里程,因为您可以构建一个框架,允许您导入数据并使用一些R代码生成定制报告。这不是最终用户工具,但您的客户群听起来像他们想要的预制报告。