我们有一个系统,由于一个电话/web请求/sms/email等原因而产生许多事件,这些事件中的每一个都需要被存储并可用于报告(用于MI/BI等),每个事件都有许多变量,并且不适合任何一个特定的方案。
事件文档的结构是键值对列表(cdr= 1&name=Paul&duration=123&postcode=l21)。目前,我们有一个SQL Server系统,它使用动态生成的稀疏列来存储我们的(平面)文档,其中有针对数据运行的报告,原因有很多,我正在研究其他解决方案。
我正在寻找一个系统的建议(开放或关闭),允许我们将这些事件推入其中(不管模式如何),并在此基础上提供报告和分析。
我见过宾得和贾斯珀,但大多数人似乎都是连接到一个系统上,把数据从里面拿出来,然后再报告。我真的只想把一个文档推入其中,并让它可以被报告。
虽然我非常喜欢CouchDB,但我正在寻找一个允许模式的系统--减少数据的提交和在其之上的报告(就像宾得、贾斯珀、SQLReporting/Analytics等)
发布于 2009-06-29 14:59:03
我不认为有任何DBMS会做你想做的,并允许一个现成的报告工具被使用。低延迟分析系统不是快速和容易构建的。对非结构化数据的低延迟是相当雄心勃勃的。
不过,您必须将数据持久化到某种数据库中。
我认为你可能需要仔细看看你的问题领域。您是试图运行低延迟分析报告,还是在某些事件发生时在业务中提示一些操作报告?对于低延迟系统,您需要对什么构成操作报告和什么构成分析非常无情。
编辑:除非企业做好了支付的准备,否则会抑制这种“潜在的两种”心态。投资银行和对冲基金花费巨资购买超级计算机来进行“实时分析”。这可不是件小事。当您尝试这样一个系统并为高正常运行时间构建它时,这就更不简单了。
即使是在诸如贴现率短信服务和.com应用等应用程序上,当你对问题进行现实的范围和成本分析时,业务也会退缩。我怎么说都不够。在“实时”需求方面做,真的非常无情的。
如果业务真的非常需要实时分析,那么您可以在事实表上创建混合OLAP体系结构,其中有一个前进的领先分区。这是一种体系结构,其中事实表或多维数据集对历史数据完全进行索引,但是有一个小的前导分区,没有索引,因此插入数据的速度相对较快。
分析查询将表扫描相对较小的领先数据分区,并在其他分区上使用更有效的方法。这为您提供了低延迟数据和对历史数据运行高效分析查询的能力。
每晚运行一个流程,该流程滚动到一个新的前导分区,并将前一个铅分区合并/索引。
如果您有位图索引(在数据库上)或物化聚合(在多维数据集上)之类的项,在插入上是很昂贵的,这是非常有效的。铅分区相对较小,而且对于表扫描来说很便宜,但可以有效地将插入插入。滚转过程将这个引导分区逐步合并到索引的历史数据中,这样就可以有效地查询报表。
编辑2:公共字段可能是在事实表上设置为维度的候选字段(例如调用方,时间)。较不常见的字段是(大概)编码。对于一个有效的模式,您可以将可选代码移动到一个或多个“垃圾”尺寸。中。
简单地说,垃圾维度表示两个或多个代码的每个现有组合。表中的行与单个系统实体无关,而与唯一的编码组合有关。维度表上的每一行对应于原始数据中的不同组合。
为了具有任何分析值,您仍然需要组织数据,以便垃圾维度中的列包含持续有意义的内容。这可以追溯到一些需求,以确保来自源数据的映射是合理的。您可以使用占位符值(如零长度字符串('') )来处理不总是记录的项,这可能比空值更好。
发布于 2009-06-29 16:04:23
现在我想我看到了潜在的需求。这是一个在线或电话调查应用程序与自定义调查。处理此要求的方法是将分析结果转移到客户端。没有任何在线工具会让您在20分钟内扭转模式更改。
我以前见过这种类型的需求,它归结为客户想要在特定的调查中做一些统计。如果您可以根据特定调查中的字段(即带有命名标题列)给他们一个CSV,他们可以将其导入excel并从那里将其转到excel中。
这应该是相当容易实现从一个可配置的在线调查系统,因为你应该能够阅读调查配置。客户端会很高兴他们可以在Excel中使用他们的数字,因为他们不需要在第三方工具上发号施令。任何有能力的销售人员都应该能够把这件事告诉客户是件好事。您可以使用类似于“以及您可以使用类似Excel这样的熟悉工具来分析您的数字”。(或者SAS,如果他们是那样的倾向)
将出口商包在一个网页中,这样他们就可以自己下载并获取最新的数据。
请注意,如果每次调查的数据量都超过65535人,那么就不会有麻烦了,因为这不适合电子表格选项卡。Excel 2007将此限制提高到1048575。然而,具有这一数量的答复的调查很可能是少数。一个可能的解决办法是提供一种方法来获取足够小到可以在Excel中使用的数据的随机样本。
编辑:,我不认为有其他的解决方案对于这种类型的应用是足够灵活的。你描述了一个调查统计的圣杯。
我仍然认为,基本的策略是给他们一个数据转储。您可以在一定程度上通过使用OLE自动化来构建枢轴表并交付部分消化的内容来对其进行预打包。Excel中的枢轴表API有点多毛,但这当然是可行的。我曾经编写过VBA代码,在过去通过编程创建了枢轴表,所以我可以从个人经验中说,这样做是可行的。
如果您想要计算和报告响应时间的分布(比方说),那么这个问题就会变得更加复杂,因为您需要构造这些显示。如果有必要的话,您可以编程构建枢轴图,但是通过excel实现报表构建的自动化将是一项相当大的工作。
您可以从R (www.r-project.org)获得一些里程,因为您可以构建一个框架,允许您导入数据并使用一些R代码生成定制报告。这不是一个最终用户的工具,但你的客户群听起来像他们想要罐头报告无论如何。
https://stackoverflow.com/questions/1058619
复制相似问题