基于行的数据库或基于列的数据库

时间:2019-05-05 09:47:32

标签: nosql bigdata analytics rdbms data-warehouse

我们正在开发一个审计系统,使审计人员可以访问上一季度处理的交易。审核员会对数据进行各种分析,以找出存在某些例外情况的无效/错误交易。

通常,这些分析需要一些图表上显示数据以查看外层,或者有时基于多个列进行重复检测。 有时涉及异常检测算法,需要使用存储过程的多个处理步骤。 请注意,分析很少涉及大行的聚合。

有时候,如果发现数据丢失或不正确,他们可以更改一些数据。 我们正在评估基于行的数据库(sql和nosql数据库)和基于列的存储库(例如数据仓库系统)。

这是数据仓库或基于行的存储(例如nosql或某些RDBMS)的用例吗?

简而言之,要求是: -偶尔更新 -主要读取过去3个月/月数据中的查询 -读取数据需要几个消息传递步骤,例如在步骤1中创建临时表,在步骤规则中与另一个表建立联接,删除一些行等。

谢谢

1 个答案:

答案 0 :(得分:1)

对于您的任务,数据的存储方式并不重要。您需要考虑如何创建实体尺寸模型,正确填充数据以及要使用的报告工具。

举个例子,这是我在项目中使用的一些常见设置:

Microsoft堆栈设置:

  • 用于数据存储的SQL Server
  • 用于数据ETL的SSIS(或者,如果您知道自己在做什么,则编写自己的存储过程)
  • 在同一SQL Server上发布维度模型。如果您的数据集很大(超过十亿条记录),请改用SSAS Tabular
  • 用于交互式报告的Power Pivot或Power BI,或用于分页报告的SSRS。

开源设置:

  • PostgreSQL用于数据存储
  • 使用存储过程和/或Python处理数据
  • 将尺寸模型发布到另一个PostgreSQL数据库。如果您的数据很大,则将尺寸模型发布到Redshift或 其他柱状数据库
  • 使用Tableau或Power BI进行交互式报告,或构建自己的报告界面。

我认为NoSQL数据库在这里是错误的选择,因为审计将需要高度结构化的数据。