2

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

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

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

我见过 Pentaho 和 Jasper,但大多数似乎都连接到系统以从中获取数据,然后对其进行报告。我真的只是希望能够将文档推入并使其可供报告。

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

4

2 回答 2

3

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

不过,您将不得不将数据保存在某种数据库中。

我认为您可能需要仔细研究您的问题域。您是在尝试运行低延迟分析报告,还是在某些事件发生时提示业务内部采取某些行动的运营报告?对于低延迟系统,您需要对什么构成运营报告和什么构成分析非常无情。

编辑:除非企业准备好付款,否则不鼓励“可能两者兼而有之”的心态。投资银行和对冲基金斥巨资购买超级计算机来进行“实时分析”。这不是一项微不足道的工作。当您尝试构建这样一个系统并构建它以实现高正常运行时间时,它就更不简单了。

即使在诸如收费短信服务和 .com 应用程序之类的应用程序上,当您对问题进行现实的范围和成本分析时,企业也经常会退缩。我不能这么说。对“实时”要求要非常非常无情。

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

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

每晚运行一个进程,滚动到新的前导分区并合并/索引先前的前导分区。

这适用于您拥有诸如位图索引(在数据库上)或物化聚合(在多维数据集上)之类的插入成本很高的项目。前导分区相对较小且表扫描成本低,但对涓流插入很有效。翻转过程逐渐将此引导分区合并到索引历史数据中,从而可以有效地查询它以获取报告。

编辑 2: 公共字段可能是在事实表上设置为维度的候选者(例如调用者、时间)。不太常见的领域是(大概)编码。对于有效的模式,您可以将可选编码移动到一个或多个“垃圾”维度。.

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

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

于 2009-06-29T14:59:03.460 回答
-1

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

我以前见过这种类型的要求,归结为客户想要对特定调查进行一些统计。如果您可以根据他们特定调查中的字段(即带有命名标题列)为他们提供 CSV,他们可以将其导入 excel 并从那里进行透视。

应该很容易通过可配置的在线调查系统实现,因为您应该能够阅读调查配置。客户会很高兴他们可以在 Excel 中使用他们的数字,因为他们不必担心第三方工具。任何称职的销售人员都应该能够将其作为一件好事转给客户。您可以使用类似“并且您可以使用 Excel 等熟悉的工具来分析您的数字”的说法。 (或 SAS,如果他们有这种倾向)

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

请注意,如果您在每次调查中拥有超过 65535 名受访者的较大数据量,则轮子将会脱落,因为这不适合电子表格选项卡。Excel 2007 将此限制增加到 1048575。但是,具有这种响应量的调查可能是少数。一种可能的解决方法是提供一种方法来获取数据的随机样本,这些样本足够小,可以在 Excel 中使用。

编辑:我认为没有其他解决方案对这种类型的应用程序足够灵活。您已经描述了调查统计数据的圣杯。

我仍然认为基本策略是给他们一个数据转储。您可以通过使用 OLE 自动化来构建数据透视表并提供部分消化的内容,从而在一定程度上对其进行预打包。Excel 中用于数据透视表的 API 有点复杂,但这当然是可行的。我过去曾编写过以编程方式创建数据透视表的 VBA 代码,因此我可以根据个人经验说这是可行的。

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

您可能会从 R ( www.r-project.org ) 获得一些好处,因为您可以构建一个框架,让您可以使用一些 R 代码导入数据并生成定制报告。这不是最终用户工具,但您的客户群听起来他们无论如何都想要罐装报告。

于 2009-06-29T16:04:23.467 回答