【发布时间】:2011-09-02 10:38:11
【问题描述】:
我公司的 SAS 程序员与研究人员合作,分析存储在许多大小约为 1Tb 的文本文件中的数据。生成的 SAS 流程可能需要数天才能运行。每当研究人员想要稍微改变一个问题时,就必须重新运行这些过程,这需要更多的小时或数天时间。
SAS 程序员向我们的 DBA 团队寻求一种存储数据的方法,目的是大大提高查询性能。
两个主要困难是:
- 我们只有少数几个示例查询,没有特别典型的查询集。
-
许多查询的形式类似于
选择计数(不同的 id) 从表 t 其中 a = 真 和 b = 3 AND c IN (3 到 10);
但其中 WHERE 过滤器参数未知并且可以包括列和属性的任意组合。也就是说,在我看来(已经阅读了一些关于数据仓库的知识),我们的要求排除了典型的数据仓库方法,在这种方法中我们执行一些聚合并使用更高粒度的记录。
我正在寻找任何与设计具有类似约束条件的数据库相关的资源。在 Bill Inmon 的构建数据仓库中,他简要提到了“探索仓库”和“数据挖掘仓库”。使用这些术语,我发现这篇文章有点帮助:“Designing the Data Warehouse for Effective Data Mining”[pdf],但差不多就是这样。我在搜索 re:“数据挖掘”时发现的大部分内容都与 OLAP 相关。
我是一名新手 DBA,我的任务是为此设计提出一些建议。我认为在这一点上我最有用的建议是建议我们在设计时尽可能避免昂贵的连接。我在这里处于危险之中 - 不期待奇迹,但任何明智的建议或阅读建议都会受到欢迎。
谢谢!
【问题讨论】:
-
您能描述一下每个分析背后的工作流程吗?您是否还衡量了流程的哪个部分花费的时间最多?
标签: database-design postgresql data-mining data-warehouse