存档

‘Database’ 分类的存档

主机管理和报表应用

2009年3月11日 没有评论

oracle 从10g 开始已经在OEM 上下了很大功夫,使得管理员可以从web 界面上非常容易的就了解到系统运行的各种参数,cpu ,内存,磁盘, 再加上awr 和ash 报告的, 使得管理员不用在一台一台主机的运行statspack 报告,然后解读. 而它的grid control 则不仅支持了解oracle database 的运行情况,更加可以了解各种运行程序和多主机的信息, 比如Weblogic 的运行情况,e-business suite 的运行情况,OBIEE 的运行情况, 或是另外一台或多台主机的运行情况 , 能够从一个WEB界面上了解这些信息可以很大程度上帮助管理员提高工作效率.

    普通的服务器监控软件比如开源的hyperic , nagios 都可以对操作系统的相关信息进行收集,cpu,内存,进程,文件系统,网络信息. 另外就是对某些服务进行监控,对weblogic , tomcat , smtp , apache ,database 进行检查其服务有没有掉线,如果掉线了就赶紧发邮件或短信, 但是对于服务的内部参数并不了解, weblogic 的java 虚拟机大小,连接池状态,环境变量等, oracle的内部报告awr 等。 而在这方面当然还是要由专业厂商来开发,oracle 的grid control , mysql enterprise monitor 都是可以针对自家产品生产出详细的报告.

    一台服务器这样很好,两台也很好,但是随着服务器管理数量上升,尤其是达到了上千台甚至上万台,这时候在web 管理界面上就需要更好的操作方式,能够在一个页面上展示多台主机的各方面信息才能真正的帮助到管理员. 这个时候就需要定制.

oem2

Grid Control 的页面

上图就是grid control 在一个页面上显示的ash 信息, 但是管理员往往希望在这个界面上做更多的定制,比如一个界面上只显示CPU,System IO , 或是将多个主机的信息放在一个页面里面,或者将不同主机,不同时间段的ASH 的信息通过一个图表展示出来用来做对比.

OEM 可以通过WEB界面管理oracle 数据库,但是并不是每一个数据库都需要安装OEM , 那会耗费更多的cpu,内存,磁盘, 而Grid Control 最大的特色就是通过一个界面可以管理无限多的主机,无论是oracle, OBIEE, SAP , E-Business Suite , Weblogic , Tomcat 等等. 而它管理oracle 并不需要每一台主机上都运行J2EE容器来显示数据库信息, 只需要安装一个grid control agent 就够了,需要的信息agent 发送到中央的grid control 就可以了.

oem_architecture

grid control 工作示意图

 

而报表应用是主机管理一个最重要最重要的方面, 制作报表的功能强弱,交互性的强弱,展示方式的强弱,定制性的强弱,都可以决定主机管理方式的好坏和管理员的工作负载, 不少的主机管理软件都是以perl,python 等语言来收集底层的信息, 管理台的界面则是以cgi, php 等语言来做, 但是php,cgi ,python 等语言并没有一个强力的可以展示报表的框架,很多都是很底层的语言API 来做,这在很大程度上限制了展示方式的强弱和功能的定制化,可以说并没有给管理员一个杀手级的应用.

而在主机管理里面的报表应用我则推荐使用BIRT 来做.

暂且省略在google 上可以搜索到的关于birt 的各种优势,为什么选择BIRT , 不妨先看另一则新闻:


思科公司Cisco计划在其网络设备的安全访问控制服务器(ACS)的Web界面中集成安讯开源产品BIRT。


   ACS是一项标志性的网络技术,它能将认证授权、用户与管理员访问以及策略控制结合在一起,从而有效简化用户管理。


   安讯公司Actuate于日前公布消息称,其旗下的Eclipse基金会项目BIRT将被用于Cisco安全访问控制服务器(Secure Access Control Server)的Web界面中,为网络监控与规划提供带有丰富交互性的数据。此外,该产品还被IT人员用作即席查询与报表设计工具。


   Cisco ACS采用BIRT的一大优势就是可以让用户可以轻松获取网络访问与设备管理的事务级系统活动的汇总信息。其功能还包括:网络监控与规划;获取问题检测与解决的信息;在对异常操作或趋势的早期侦测方面,用户还可基于阀值来设定警告并为授权/认证动作设置触发器。


   “直接嵌入到ACS中的安讯报表技术,使网络管理员可以监控并分析什么人、什么时候访问了网络,”Cisco工程部经理Neil Mehta在本周发布的一次声明中称,“以前,用户如果想要监控网络访问信息的话,是必须先从ACS中获取原始数据,并且自己制作报表的。” 

Cisco 是在网络设备制造上最大的公司了,其选择BIRT 作为WEB管理控制台的报表应用我想应该很能说明问题了,以Cisco 需要管理的设备数之巨大,数据量之巨大,管理复杂度之巨大,相信已经是毋庸置疑的,而其管理网络设备的应用方式跟主机管理基本上都是面对一样的问题.

我在之前的 从php 调用birt (http://www.gemini5201314.net/?p=1131) 的文章已经提到如果主机管理的管理控制台是使用php,python 之类的语言已经可以使用birt 来做报表应用了, 应该对不少管理软件的报表应用加强了不少. 而使用java 开发的管理软件像是grid control , hyperic 则在这方面早已拥有天生优势了.

 

收集数据

如何收集主机管理数据,能够收集到哪些数据,收集数据的方式,数据储存的方式则是另一个摆在大集群主机管理管理员面前的难题. 使用grid control 或是hyperic 的工作方式, 在每台服务器上部署agent , agent 定时收集需要收集的数据,然后发送给中央管理控制台,中央管理控制台把这些数据储存在数据库中,中央控制台随时都可以按照管理员要求的方式来读取这些数据以了解服务器实时的信息.

像是普通的cpu,io,磁盘的各种信息自然都不在话下,而grid control 对于展示ash , awr, top session 等oracle DBA 最关心的信息使用图表的方式对于DBA  快速理解这些信息提供了不少的方便,另外像是每个tablespace 使用率,library cache hit ratio 等各种信息都可以在grid control 里面方便的找到.

而hyperic agent 的sigar api 和oracle 插件也可以收集到很多oracle 相关的信息. 象是Physical Reads/Writes , Logical Reads/Writes , User Commits , CPU Total Time , CPU Time Parse , Cache Hit Ratio , Redo Size Generated, Sorts Rows , Disk Space Used 等许多oracle 重要的信息, 有了这些信息你同样可以制造出自己的ash , awr 统计信息.

 

展现方式

使用一个页面展现有限的信息已经不能满足主机数量急剧上升的管理需要, 能在一个页面上展现每台主机更多的信息,或者一个页面上展现多台主机的信息才是管理员真正需要的.

SpotlightOnUnix

Quest 的Spotlight on Unix

上图很漂亮不是吗,能通过非常简单快速的方式展示多台主机的这种信息则会更快的帮助管理员了解系统.

而在成功收集了数据之后,就会有一些新的问题更容易解决了:

列出目前所有主机中工作负载最高的10个, 显示其ash. 然后你在下转到top session. top sql.

显示过去3个月中,physical reads/writes , logical reads/writes 最高的10 台主机.

把不同的主机不同时间段的工作负载进行对比.

显示过去3个月中,磁盘增长率最高的机组,或是目前磁盘使用率达到70%以上的主机,

而这些信息如果没法收集到一个数据库中,就没有办法得出这些报表. 而得到了这些报表之后,管理方式上就会产生一些差异. 比如你能了解下午3点是一个用户高峰,那你统计了工作负载信息最高的主机之后,你自然知道了你的程序在那些应用上繁忙,针对那些繁忙的程序,繁忙的数据库进行优化就行了. 那些经常性使用率不高的主机则可以多一些应用,对主机资源上也更好优化.

再比如磁盘使用上,你能够快速的得到所有的磁盘使用率,使用增长率,你就自然知道了那些磁盘可能会空间不够,并且你知道磁盘历史的使用增长率,你可以预测到什么时间差不多该给哪些磁盘加容量了, 可以从一定程度上避免被动的等到监控软件发现磁盘到达阈值而报警. 主动预测和被动报警在管理上则是完全不一样的.

 

Grid Control 虽然已经在大规模主机管理上已经走在领导位置,但是各个管理员,各个公司的环境,每个人的使用习惯都是不一样的,在主机管理上是需要越来越多的定制和开发,尤其是报表的分析型需求会越来越多, 展现方式会越来越动态. 相信oracle以后会让开发人员如何在其平台上定制方面下功夫,至少这是一个方向,其他各个服务器监控软件开发商无论是商业的还是开源的都会在展现需求上下功夫,尤其是如何让客户进行定制化的自己开发作为发展方向.

 

本文图片都不是自己截的,spotlight on unix 来自eygle.com , grid control 来自dba story

 

参考资料:

http://www.eygle.com/archives/2008/12/dba20_oem_grid_control.html

eygle 谈dba 2.0 和grid control 的使用

 

http://www.dbform.com/html/2008/547.html

kamus 谈oem 在税务的应用

 

http://www.ixdba.com/html/y2008/m12/297-oracle-9i-after-performance.html

dba story 谈grid control

 

http://www.rittmanmead.com/2008/11/28/thoughts-on-obiee-performance-optimization-diagnostics/

mark rittman 谈grid control 管理OBIEE

 

http://www.actuatechina.com/news_cisco.php

http://www.intelligententerprise.com/channels/performance_management/showArticle.jhtml?articleID=213403848

Cisco 将birt 加入其管理控制台以满足报表数据分析需求

 

http://www.hyperic.com/products/sigar.html

http://www.hyperic.com/products/oracle-monitoring.html

hyperic 的sigar api和 oracle 插件的功能

Greenplum , Aster Data 和Myspace , Fox Interactive Media

2009年3月7日 没有评论

在 dbms2 看到两篇文章分别介绍Myspace 使用Aster Data 做分析型数据仓库和myspace 的父公司Fox Interactive Media 使用Greenplum 做分析数据仓库, Aster Data 和 Greenplum 作为两个都实现了数据库级别的MapReduce 的data warehosue数据库(先有这些大客户,后才有mapreduce 技术的),其案例还是非常值得关注的.

Fox 的greenplum 数据库有几百T ,它目前是在慢慢的使用greenplum 数据库慢慢的替换之前的Aster Data ,Fox/Greenplum 在自己的优势项方面非常满意,并且也比Myspace 的Aster Data 数据库要大,不过显然在使用次数跟并发上比myspace 少的多, 不过Aster Data 数据库似乎有数据输入也会删除一些数据, 不过Greenplum 数据库一直在不停的增加数据(这根myspace 应用有关,后面会提到). 另外一方面,Fox 使用了一种sandbox 的数据库架构,无论分析员怎么创建和删除表,底层的数据都不会受到影响,eBay 也在其Teredata 应用上使用了同样的方式.Dell 的DATALLegro 数据仓库也是一样的.

Myspace 使用Aster Data 构建了一个200+ 普通服务器的集群,管理200+T 的数据,每天以2-3 TB 增加. Aster 支持一个data warehouse 和若干个data marts , 并且myspace 使用其做myspace music 项目,这是一个面向最终用户的分析型数据库,(每个用户都可以在上面分析歌曲的各种数据,这种面向最终用户的分析型数据库不知道全世界还有没有第二个案例,技术太牛了) , 以myspace 的超海量用户,并发性和高可用性都是其特色之一,它可以无缝的支持失效转移,服务器一运行就是几个星期.

两个都有视频展示和案例介绍, 建议大家去看看

 

Fox 使用greenplum 那个没什么好看的,速度很慢,而且里面都是男的.

Myspace 使用Aster Data 那个真的建议大家去看看,里面有美女,真的!!! 绝对没拿恐龙骗你,

myspace 的data service vice president 是个短发,属于很精明能干类型的美女,很有个性的女生,事业型男士最爱.

Chief Data Architect 则是标准长发美女,黑色头发(外国美女中还是黑发比较接受,金发就……), 有一点邻家女孩的味道,很标致的美女,我觉得是里面最漂亮的一个.

Data Warehouse Architect 是…… , 嗯… , 属于熟女,30岁以上家庭型男士最爱(这样应该比较合适)

Data Warehouse Manager 好像有一点拉丁血统,嘴唇比较厚,不知道该跟舒淇比还是朱莉娅罗伯茨比, 头发是褐黄相间,有点混血的味道,标准的轻熟女.  三个女人一台戏,myspace 这四个女人那哪能让男性员工好好工作呀.

……嗯,我还准备说什么的呀,咦?我现在讲到哪了,我怎么会扯到这里来的,算了,突然发现自己有其他重要事情去做了, 就到这里吧.

 

 

参考资料:

http://www.asterdata.com/blog/index.php/2009/03/04/myspace-expands-usage-of-aster-data-systems-%E2%80%93-check-out-the-video/

myspace 的视频地址, 有美女哦

 

http://www.dbms2.com/2009/03/05/myspaces-multi-hundred-terabyte-database-running-on-aster-data/

dbms2 介绍myspace 的

 

http://www.dbms2.com/2009/03/05/fox-interactive-medias-multi-hundred-terabyte-database-running-on-greenplum/

dbms2 介绍fox 的.

Gartner 2008 Data Warehouse Vendor 魔力象限

2009年1月13日 没有评论

gartner 在08年12月份再次发布了他的data warehouse 提供商魔力象限. 有5家新的提供商进入魔力象限, 但领军人物基本还是一样

Teradata 还是遥遥领先, 不管有多少厂商告诉你teredata 很贵, 很私有,很不open , 但是其市场份额还是攀高, 毕竟任何一个公司都需要信息, 而且teradata 和第二梯队的oracle 与IBM 更远了,

Netezza 第一次进入领导象限, 大有像Teradata 靠齐的趋势

Microsoft 和DATAllegro 还在整合中

Greenplum 和Sybase IQ 基本没变,倒是Sybase IQ 跑到第四象限去了.

HP 新出的Neoview 战略倒是进入了第四象限

Vertica 其实出现也有一段时间了,不过第一次进入Gartner 的象限, 还算不错.

其余就不说了吧, 看图就够了.

163473_0001

2008 Gartner 的data warehouse vendor magic quadrant

 

y1pxTBo51uYE148vR8TzCyR-2oE4ZOdJoZ726BfjO_KTDKty7ns4440ZjYuEhzaUpMPq_lbJBCn4kI

2007 Gartner 的data warehouse vendor magic quadrant

 

参考资料

http://mediaproducts.gartner.com/reprints/microsoft/vol3/article7/article7.html

分类: Database 标签:

到底有多少面向BI的数据库

2009年1月1日 1 条评论

BI作为一个方兴未艾的领域, 在我们还没来得及数清到底有多少BI 工具提供商的时候, 大大小小的专门面向BI的数据仓库解决方案已经进入竞争激烈的市场, 其中不乏传统的数据库大鳄,更有不少新兴的创业公司,当然也少不了开源数据库厂商的参与.

 

除开传统的商业智能方面数据库四大天王:teradata , oracle,ibm, microsoft 之外, 也有不少后期之秀不断挑战,像是我们熟知的"以列为导向的"Sybase IQ . 除开我们众所周知的明星之外, 下面介绍一些大家不太熟悉的有潜力的挑战者, 让我们开始这场选秀活动吧(Rock and Roll) :!

bidatabasequadrant

                    Garnter 的数据库魔力四象限

我们看到最接近Sybase IQ 的Netezza 公司是非常有实力的挑战者之一 , 它的主要特点就是面向商业智能并且专注于商业智能领域的应用,其主要产品为Netezza Performance Server系列数据仓库专用设备,为了能够分析商业数据,其数据仓库专用设备中整合了数据库、服务器和存储等各项功能, 你可能对这家公司不太熟悉,但是这家成立于2000年的公司早已经是中高端市场的老大了, 早已经是混的风声水起,即使是Oracle Open World 大会上,oracle 与hp 推出了硬件和软件组合的两款Exadata Programmable Storage Server 和HP Oracle Database Machine , Netezza 一样毫不含糊, 立刻展开针对这个组合的宣传,Netezza is fast, Netezza has more processing power, Netezza handles analytics inside the box,netezza is integrated in one box,from one vendor, netezza needs no tunning or indexing, 甚至打出了连圣诞老人都想要netazza 的广告, 专门针对oracle 销售策略,俨然一副我是老大,就算你是oracle 和hp 跟我抢食也要看你有几分斤两.

公司网址:http://www.netezza.com/

 

Greenplum 也是非常耀眼的新星之一 , 其首要目标就是直指PB 级别的超大型数据仓库, 其shared-nothing 的架构更是不像Teradata 和netezza 一样需要专属高端硬件配合, 任何Intel , AMD 芯片的普通服务器都能很容易的搭建集群环境, SQL Parallel Process + MapReduce 技术优势更是其宣传的最大卖点,Teredata 共有5家客户达到PB 级别,其中ebay 和walmart 的级别更是2PB 和 1.1 PB , Greenplum 这个运行在普通PC Server 上通过集群的高性能数据库相信在不久的将来也会很快有真正的PB 级别的案例产生. 在获得Sun ,SAP 等公司的风投后共获得4200万美元资金,更在中国建立合作伙伴关系开发国内市场,SUN 更是直言不讳的想通过Greenplum 的优势杀入商业智能市场,带动其服务器,储存和Solaris 的销售, 国内的淘宝团队也开始考虑使用greenplum + hadoop 的技术构建商业智能平台, 它不仅支持SQL、MapReduce、R、Pythons 等编程语言,新的3.2 功能还增加了GUI , 性能管理器的功能. 如果你嫌Teredata 和 Oracle RAC 太昂贵的话, Greenplum 一定在你构建超大型数据仓库的考虑范围之内. 注意它虽然构建在Postgresql 之上,但是数据库本身是闭源的商业产品, 因为Postgresql 是BSD license 的.

首页: http://www.greenplum.com

http://rdc.taobao.com/blog/dw/archives/category/greenplum

淘宝的一些greenplum 研究.

 

DATAllegro  是一家已经被microsoft 收购的公司,为了补充SQL Server 在商业智能方面的应用. 它同时也提供专属的硬件,microsoft 收购之后已经着手进行整合,产品的最终版本可能要到2010年上半年才能面世. 数据库的规模大概在百T左右.

http://www.datallegro.com/

 

Kognitio是一家提供数据仓库主机托管解决方案提供商(APS),第一次进入Gartner , 主要市场针对UK.

http://www.kognitio.com

 

Sand Technology 是一家加拿大的公司,主要市场在UK,Germany , US. 也是基于列的数据库, 主要强调用廉价的低速磁盘获得可接受的查询性能.

http://www.sand.com/

http://www.dbms2.com/2008/12/16/introduction-to-sand-technology/

 

除了能够上Garnter 的一些厂商之外,还有很多商业产品都各自有其技术优势: 像是Clearpace   比较强调数据归档和压缩,查询性能也能够与Oracle 匹敌(当然没有Netezza 那么肯定的强调) .

还有vertica , 也是强调基于列和网格的数据库,也能进行高性能的分析查询.运行于普通的硬件上,大客户包括JP Morgan Chase 等,Vmware 上还有一个装好的vertica analytic database 虚拟机给你玩, 它的ETL 性能测试还刷新的新的ETL记录,一小时转载了5.4TB 的数据.

http://www.vmware.com/appliances/directory/1266

vmware 虚拟机的下载地址.

 

kickfire 一家基于mysql 数据库,但是面向商业智能的基于列的数据库提供商.

还有太多就不一一列举了

http://www.paraccel.com

http://db.cs.yale.edu/hstore/

http://www.asterdata.com

http://www.exasol.com/

http://pyrrhodb.msroot.paisley.ac.uk/org/

每个都是各有强调重点, 技术特长不一.

 

就像OLTP 数据库中众多的厂商也没有阻止开源数据库的脚步,data warehouse 数据库中自然也不乏开源的身影.

比较有名的像是Infobright (http://www.infobright.org) , 这是一个基于mysql 的储存引擎, 同样也是基于列计算, 其最大的宣传重点在于高压缩比率和知识网络, 宣传的压缩比率经常在10:1 – 40:1 之间, 其知识网格技术可以不使用索引也能够进行高效率的查询运算.另外还有高速的数据装载工具, 当然还有一些技术上的限制比如缺乏国际支持, 并发性不高, 不能利用多核,没得到Windows或Solaris支持,没有ALTER TABLE有关的支持等, 详情可以查看

http://tech.it168.com/a2008/1024/209/000000209206.shtml

 

Bizgres(http://bizgres.org) , 是一个多厂商合作的,主要由greenplum 领导,基于postgresql 的商业智能数据库, 它最大的强调重点就是和其他开源的商业智能工具和平台提供商有很好的合作,像是JasperSoft reporting tools 和Kinetic Networks ETL tools

 

enterprisedb (http://www.enterprisedb.com) , 在基于postgresql 的基础上构建了OLTP 的数据库,主要走商业路线, 在商业智能领域则是另外一款产品grid sql , 或者说postgresql plus , 听名字就知道强调网格计算, 使运行在普通PC Server 上的数据库可以轻松进行并行计算完成复杂查询,再加上postgresql 本来就有的不少高级特性(物化视图,bitmap index 和分区) , 使得在中小型数据仓库中也值得一试.

 

MonetDB (http://monetdb.cwi.nl/) , 强调其在数据挖掘上的应用,OLAP , GIS, XML Query , 文本和多媒体查询. 有windows 和linux 两个版本, 如果你有特殊的商业智能应用,或者科研机构之类的可以研究一下.

 

LucidDB (http://www.luciddb.org/) 将是今天最后一个介绍的数据库, 它强调自己是第一个也是唯一一个只为数据仓库目的建造的数据库,同样也有 列储存,bitmap indexing , hash join/aggregation 等常见数据仓库技术, 新版中强调在线热备份和基于时间点的快照功能, 另外一个最大的特色就是和开源的商业智能厂商之间有很好的合作, 像是开源ETL工具中的kettle 和talend 都有其插件帮助装载数据, 还有pentaho 最有名的产品,开源OLAP 中的实际标准mondrian 的支持:automatic Mondrian aggregate table designer add-onMondrian source replication . (注: mondrian aggregate 是pentaho 2.0 新功能之一, 查看我写的pentaho 2.0 新功能一览(http://www.gemini5201314.net/?p=108) )

它同时是Eigenbase 项目的一部分,主要也是强调商业智能和数据仓库这一块的一个项目,和一个商业的中间件sqlstream 可以很好的组合( stream processing ,the SQLstream continuous query engine , 实现实时数据仓库的一个中间件,主要做CDC change data capture, mondrian 的主开发者很喜欢这个东西, 他已经写了两篇介绍这个玩意

http://julianhyde.blogspot.com/2008/12/streaming-analytics-over-content-feeds.html

http://julianhyde.blogspot.com/2008/12/streaming-content-feeds-part-2-forging.html

 

好吧,今天就到这里吧,Until next time.

分类: BI, Database 标签:

oracle 分页排序的两种方式

2008年12月22日 没有评论

我们都知道oracle  的rownum 是一个伪列, 它会在select 之后就产生, 先于from xxx (更加不用说where xxx 和 order , group 了) , 所以如果你不排序的话,下面这种典型的oracle 分页语句是可以的:

1
2
3
4
5
SELECT * FROM 
 
(SELECT t.*,rownum row_num FROM mytable t ) b 
 
WHERE b.row_num BETWEEN 1 AND 10

或者也可以是Hibernate 里面严格的 大于 小于格式 , 记得一定要先小于.

1
2
3
4
5
SELECT * FROM 
 
(SELECT t.* , rownum FROM mytable t WHERE t.rownum<100 ) b
 
WHERE b.rownum > 50 .

但是如果要排序的话,由于rownum 是先于from 语句的(更加不用说where 和order 了), 所以必须要先嵌套:

排序分页的第一种方式:

1
2
3
4
5
6
7
SELECT * FROM 
 
(SELECT a.*,rownum row_num FROM 
 
SELECT * FROM mytable t ORDER BY t.id DESC) a
 
) b WHERE b.row_num BETWEEN 1 AND 10

 

另外一种就是使用minus 操作

排序分页的第二种方式

1
2
3
4
5
6
7
8
9
10
11
SELECT rownum,page.*
    FROM ( SELECT Page.*
        FROM lb_sys_twork page
            WHERE page.state=1
            ORDER BY unit_code,
            code) Page    <br />        WHERE rownum &lt; 50 MINUS SELECT rownum,page.*
        FROM ( SELECT Page.*
            FROM lb_sys_twork page
            WHERE page.state=1
            ORDER BY unit_code,
            code) Page    <br />        WHERE rownum &lt; 30

参考资料

1 . http://www.duduwolf.com/post/74.asp

    minus  方式

2. http://www.blogjava.net/joessy/articles/1398.html

    嵌套方式

分类: Database, Oracle 标签: