问题:
我们正在寻找关于使用哪些数据库以及如何对数据建模以有效查询聚合统计数据以及与特定实体相关的统计信息的一些指导。
我们有不同的底层数据,但是这个例子应该展示基本的问题:
假设您有Facebook好友请求的数据以及随着时间的推移而进行的交互。你现在想回答以下问题:
一般的问题是,对于我们想要计算统计量的实体和计算这些统计量的相关实体,我们都有很多变化的过滤标准(国家、主题、兴趣、时间)。
非功能需求:
问题:
到目前为止我们尝试过的:
发布于 2019-12-25 20:30:30
您将讨论使用哪个数据库,但听起来您需要一个数据仓库或业务智能解决方案,而不仅仅是一个数据库。
区别(简单地说)是数据仓库(DW)可以支持多个报告视图、自定义数据模型和/或预聚合,从而允许您进行高级分析和详细筛选。数据仓库倾向于存储大量的数据,通常构建的数据仓库具有很强的可扩展性和灵活性(就数据的使用方式而言)。有关数据仓库和数据库之间差异的更多细节,请查看这篇文章。
商业智能(BI)工具是数据仓库的“更轻”版本,其目标是以极快的速度回答特定的数据问题,而不需要大量的终端用户技术知识。BI工具提供了许多可视化功能(易于配置图形和过滤器)。BI工具通常与数据仓库一起使用:数据被建模、清理并存储在仓库中,BI工具将准备好的数据拉到特定的可视化或报告中。然而,许多公司(特别是较小的公司)在没有数据仓库的情况下使用BI工具。
现在的问题是使用哪种数据仓库和/或BI解决方案.
这是一个完整的主题&远远超出了我在这里所写的范围,但是这里有几个流行的工具名称可以帮助您入门: Tableau、PowerBI、Domo、雪花、Redshift等等。
最后,还有它的数据建模部分.
总结您的需求,您有“许多变化的筛选标准”和各种统计数据,您将需要,为各种实体。
DW内部的数据模型通常使用星型、雪花或数据库模式。(网上有很多解释这些的文章。)如果您使用的是纯BI工具,您可以将数据去规范化为一个组合数据集,这将允许您选择各种过滤和计算选项,同时仍然保持高性能和速度。
让我们看一下您给出的示例:
随着时间的推移,Facebook好友请求和互动的数据。你需要回答:
您需要根据国家、主题、兴趣、时间来筛选/重新计算这些问题的答案。
一个潜在的数据集可以构造如下:
互动日期?启动人的国家?应答人的国家主题??交互作用类型?启动人的最高利益?应答者的最高利益。
这将使您能够轻松地计算按任何列分组和/或过滤的交互量。
正如你所知道的,这只是一个巨大的话题的表面,但你所要求的绝对是可行的&希望这篇文章能帮助你开始工作。还有很多咨询公司也很乐意提供帮助。(免责声明:我为其中一家咨询公司工作:)
https://stackoverflow.com/questions/59356144
复制相似问题