博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DWH - 自动化监控BI系统的存储空间
阅读量:6713 次
发布时间:2019-06-25

本文共 864 字,大约阅读时间需要 2 分钟。

一个完备的BI系统有多种Log及监控机制,其中一种监控是监控BI系统存储的增长趋势,BI中所谓的存储可以分为数据仓库的存储OLAP数据库的存储

数据仓库

至少到目前为止,所有的数据仓库还是基于关系型数据库所构建的,只不过数据库的设计遵循了维度数据模型而已。所以我们可以使用SQL Server提供的一系列功能来收集数据仓库中表粒度的存储大小信息,要做到这一点我相信有很多方式,其中一种是使用系统视图:

  • sys.tables

返回当前数据库所有的表

  • sys.partitions

返回当前数据库中所有的分区,该视图具有rows属性标明该分区中有多少行数据。我们知道一个表至少含有一个分区,所以我们可以通过前两个视图找到表及其分区,因而也就知道一个表有多少行(当然如果只是为了找到表的行数完全没必要这么麻烦)。

  • sys.allocation_units

返回所有的分配单元,分配单元具有很多关于数据页的信息,其中一个属性石total_pages,它标示该分配单元总共有多少个数据页面。一个分区具有一个或多个分配单元,所以我们可以通过前面三个视图找到每个表总共有多少个数据页,而每个数据页是8KB,这样就找到了每个表占多少空间。

下面是语句及返回结果展示了该种效果(因为每个表只有一个分区,所以没有做Group),我们只要将该语句封装到存储过程中就可以在ETL中使用从而自动获取DWH的存储信息:

 

OLAP数据库

我们知道SSAS自打2008之后提供了一些系统函数可以查看类似于某个Server有多少个OLAP数据库,某个OLAP数据库有多少Cube,某个Cube有什么样的度量值组、度量值、维度等信息,但是很遗憾的是没有相应的存储信息,所以最好还是不得不使用AMO编程接口来获取OLAP数据库的存储信息。

在SSIS包的Data Flow任务中添加Script Component,然后使用如下的代码:

 

最后获得的信息如下:

 

转载于:https://www.cnblogs.com/wangyubo/p/4447012.html

你可能感兴趣的文章
指针与数组区别
查看>>
showModalDialog关闭子窗口,并刷新父窗口
查看>>
我的Java开发学习之旅------>解惑Java进行三目运算时的自动类型转换
查看>>
【我的Android进阶之旅】解决strings.xml格式化占位符错误: Multiple substitutions specified in non-positional format...
查看>>
测试工程师常用的工具
查看>>
【已解决】如图,说我磁盘不够,看到var目录下有的个隐藏文件夹占了46G,不知道怎么删除...
查看>>
vmware网络的连接方式
查看>>
AngularJs的UI组件ui-Bootstrap分享(五)——Pager和Pagination
查看>>
Python基础21_类与类型, MRO, C3算法, super()
查看>>
IBM磁盘阵列及文件系统的管理
查看>>
Algs4-2.1.34罕见情况
查看>>
jQuery的属性操作
查看>>
BroadcastReceiver
查看>>
Python学习-字典的常见用法
查看>>
Python 异常处理
查看>>
前端 回顾
查看>>
按键精灵是否可以编写函数或方法,简化脚本,使脚本更加模块化?
查看>>
BZOJ3626LCA(树剖+线段树+LCA+差分)
查看>>
事件的产生,传递以及响应链
查看>>
练习4.4 萨提亚冰山理论应用
查看>>