database-design - 设计超大、低粒度数据库的技巧/链接/书籍?

标签 database-design postgresql data-mining data-warehouse

我公司的 SAS 程序员与研究人员合作,分析存储在一些大小约为 1Tb 的文本文件中的数据。生成的 SAS 进程可能需要数天才能运行。每当研究人员想要稍微更改一个问题时,就必须重新运行这些过程,这需要数小时或数天的时间。

SAS 程序员向我们的 DBA 团队寻求一种存储数据的方法,目的是大大提高查询性能。

两个主要的困难是:

  1. 我们只有少数几个示例查询,没有特别典型的查询集。
  2. 许多查询的形式如下

    选择计数(不同的 ID) 从表 t 其中 a = 真 和 b = 3 AND c IN(3 到 10);

但其中 WHERE 过滤器参数是未知的,并且可以包括列和属性的任意组合。也就是说,在我看来(阅读了一些关于数据仓库的知识)我们的需求排除了典型的数据仓库方法,在这种方法中我们执行一些聚合并处理更高粒度的记录。

我正在寻找任何与设计具有类似约束的数据库有关的资源。在 Bill Inmon 的 Building the Data Warehouse 中,他简要提到了“探索仓库”和“数据挖掘仓库”。使用这些术语,我发现这篇文章略有帮助:“为有效数据挖掘设计数据仓库”[ pdf ],但或多或​​少就是这样。我在搜索 re:“data mining”时发现的大部分内容都与 OLAP 有关。

我是一名 DBA 新手,我的任务是为这个设计提出一些建议。我认为在这一点上,我最有帮助的建议是建议我们在设计时尽可能避免昂贵的连接。我在这里处于困境 - 不期待奇迹,但非常欢迎任何明智的建议或阅读建议。

谢谢!

最佳答案

尽你所能阅读拉尔夫·金博尔 (Ralph Kimball) 的所有内容。

http://www.amazon.com/Data-Warehouse-Toolkit-Complete-Dimensional/dp/0471200247

您的典型查询(SELECT aggregate FROM fact JOIN dimension WHERE criteria)是星型模式的最佳选择。

忘掉“数据挖掘”吧。这不是一个有用的术语。

关注“星型模式”。构建正确的数据结构。

关于database-design - 设计超大、低粒度数据库的技巧/链接/书籍?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7247044/

相关文章:

用于食谱程序化分类的算法

c# - 预测中的蒙特卡罗模拟?

algorithm - Web挖掘-分类算法

php - 使用条件更新查询管理并发

database-design - 在数据库中存储年份/品牌/型号?

postgresql - psql : FATAL: password authentication failed for user {user}

sql - Postgres ltree 查询,计算每层树上的连接项

database-design - 数据库细化 - F 的最小覆盖(无关属性)

mysql - 项目之间共享数据..创建一个共享数据库?

postgresql -\d 命令不再适用于 psql-client 8.3(升级到 v9.0)