互联网是有记忆的,我从网上居然找回了2006年,参加“中国首届杰出数据库工程师”评选的答辩实录文字。将近20年转瞬流逝,这篇实录中的很多专家,已经走上了更重要的工作岗位。我转录在这里,作为一个纪念。原文发布于2006-8-13。
以下是记录实录。
“主持人:各位来宾,大家上午好!欢迎大家光临由中国计算机报CSDN网站、上海市计算机协会、北京计算机协会、IBM独家赞助的2006年中国首届杰出数据库工程师评选中选现场现在开始!我是中国计算机报郭旭。
7月3日通过网上答题的公选,今天30名工程师将分6组分别进行中选面试,他们将接受最严格的评审。为了显示本次评审的公平、公正,我们将在赛迪网、新浪网上进行图文直播,同时在现场邀请了几十位数据库业内人士。下面我先介绍一下本次评选的流程共分三个步骤,第一步是选手进行评述,每人三分钟,专家向该选手提问,总共十分钟。最后一个流程是评委点评,十五分钟。下面介绍一下参加本组专家罗小沛老师,周龙骧老师,唐世渭老师,另外还特邀了一位嘉宾,王云老师主持本场讨论。
参加第一组的选手有一号选手胡波,二号倪泳智。三号邢海捷。四号选手万正勇,五号选手王涛不能来到现场。
一号:大家好!非常荣幸有机会能够参加本次活动,能够跟各位优秀的同行交流,跟各位顶级数据库大师有这么一个学习的机会,我本人是国家烟草局行业技术维护中心的系统维护组的组长,主要负责全行业烟草的维护工作,目前主要接触的数据库产品是IBMDB2的数据库,从03年之后主要的经验是做IBMDB2数据库比较大的一些项目,其中包括了北京移动、兰州移动以及天津移动的BI数据库的建设,最近一直在做国家烟草转卖局一号工程的系统维护工作,在03年之前也从事SQL数据库的建设,取得了SQL的认证,以及IBMDB2的认证。
在这几年的工作中也积累了一定的经验,希望借本次机会能够和大家一起交流,互相探讨,谢谢大家!
主持人:下面请专家提问,从罗老师开始。
一号:烟草局的行业分析系统,我是这个航母中的前期系统规划,另外包括项目中间的实施,一些技术功课,和异构数据库架构的建设,另外在后期维护里面。
另外在大型数据中心的建设上,应该怎么和应用,后台怎么能够配合应用,怎么实现满足客户的需求。另外,行业用户纤长的环境是相当复杂的,可能会有多种数据库环境在里面,比如说会有IBMDB2的数据库,也可能有SQL的数据库,在异构数据库环境中怎么给用户提供一个统一的用户接口保障异构数据库之间数据的交换能够以一个标准的接口来进行,以及在不同的数据库之间性能是怎样进行匹配,我觉得这都是在经过几年项目过程比较有收获的一点。
周老师:我提个问题,你曾经做过北京移动ODS项目,你怎样理解ODS,它的数据库在哪?以及你要建ODS平台的时候你觉得主要是克服那些困难和解决哪些关键问题?
周老师:你的工作经验主要在DB2和SQL,你怎么比较这两个系统?针对不同的应用怎么来定采用那种系统?两种系统的优势不足?
一号:这个问题涉及的范围可能比较大,我尝试的说一下。因为我前几年的经验也是用SQL,但SQL的项目集中在ORPP项目中,我用DB2的系统主要是用在类似于数据仓库、报表分析的项目中,我的感觉SQL和BB2都是业界非常领先非常优秀的数据库产品,我有一点比较深的体会,谈一下DB2的S(音译)的数据库。
像超过10个项目以上的数据库中,我想SQL分析数据库有一个非常有意思的特性,数据库各个节点都有自己的硬件资源,都有自己的日志,发起一个SQL都是分布在各个节点上运行,在项目实施的时候通过跟踪会看到发起一个SQL的请求,是分布在每个分级上面的,也就是说每个分区都会有自己的CPU资源有自己的内存资源甚至有自己独立的日志,也有单独的存储,这样的在比较大的存储中在分区内比兴来设计我们的应用,就是说非常关键的地方就是要考虑数据平均分布,也就是说我们在建一个表导入一个数据的时候怎么让我们的数据非均衡分布在我们每个分区中,另外就是IO的考量及折算才能保证我们充分利用DB2的特性实现性能的优化。
另外,谈一下SQL,他也提出了自己的RRC架构,也就是说多个节点共享一个实例,我更多的是在概念上进行的,在大的概念中其实可以,是我的一点心得,数据的运行处理得性能可能没有DB2这方面处理性能强,为什么呢?因为它一方面是多个节点共享一个事例,肯定会涉及到资源的消耗问题。另外,它在发起SQL的请求,RRC的架构只是在SQL里面进行运行的功能,在表中发起APLT(音译)修改的请求被我们会发现应用并不是平均分布在我们每一个节点上面的。
另外一个方面,SQL在开发的功能上面提供了非常好的函数,一些比较好的功能能够给我们用,但在DB2函数的功能上面我觉得在开发上面提供的稍微差一点。
二号:各位评委、各位专家大家上午好!我简单一下我的数据库经验杂谈,我可能接触的数据库角度或者一些方面比较多,主要是在数据库教学和理论里面,另外就是行业应用和数据库管理,我觉得自己的经验比较多,但不一定每部分都很深入。
实际上我做过很多门的网络教学、网络课件,在这方面主要是数据库第三版的CIO就是多媒体的补助软件,和第四版的网络课程,这在2005年的时候被评为国家级课程。还有一些新世纪网络课程的项目经验,我主要谈一下在现在的教学模式上面的一些体会。
我觉得在我进行数据库教学的过程中,现在主要体现出的两点一个是以人为本,另外是立体化的手段,主要有几种表现,一个是人交互,计算机网络,数据库技术,和多媒体的表现和自助行,高效便利的检索。
第三点,对于数据库我谈两点感想,第一是沟通,意思是说我们要理解用户,才能和开发商合乎被用户理解,第二是双赢模式,国内用户使用国产数据库也能得到降低成本的效果然后更好的服务,这样达到双赢的局面。
最后讲一下行业应用的研发,一个在数据库设计方面必须做好全局的设计规划,因为设计越细致出现的问题可能性就越小,工作的效率就越高,等量的性能提升,在编码层面往往需要比设计层面付出更多的辛苦。
罗小沛老师:你刚才讲了一下开发的情况和应用的情况,开发和应用的关系是什么?
二号:开发是应用系统底层的开发,实际上这是两种不同的体验,实现首先要考虑确定客户的需求,我们开发的数据库系统本身是通用的数据库,所以不一定是面向某个领域的,在速度和领域上面是关键的地方。
在应用层面,大部分基本上是面向特定领域的,他目的性比较强,针对所考虑也是比较细致的东西。
周老师:今天是2006年中国首届杰出数据库工程师评选终选现场,你对评选杰出数据库工程师怎么理解?
二号:大部分现在想到的工程师是行业应用方面开发的比较多,我觉得数据库本身是个很大概念的对象,不单是包括行业应用,更多包括数据库理论的一些研究,还包括数据库引擎,或包括数据库系统本身的。我看这个选手基本上这几方面都包括,有一位是哈工大的,还有几位,当然这可能是他们自己研发的.
唐世渭老师:你在做DB2的同时也做应用,你能说出比较好的项目?顺便问一下做过应用系统的运行维护吗?
唐世渭老师:应用开发你能举你认为你这方面做的比较好的项目吗?说明你里头的角色及发挥得作用。
二号:我还是跟教学这方面比较多,我们学校的一个校园网络管理系统,这个系统是校园办提出来的,是把这几十年校友做一个系统,目标很明确一个是进行有效的管理,另外是找出有价值的校园资源,我在里面因为是负责人,另外还有负责人是校园的老师,开发是由我负责的,在这其中也参与了很多开发。刚才也提到数据杂乱的问题,大部分是一些资料,他们的存储格式和方法都不一样,原先想以一个为基础,把所有的导出来,最后发现太乱太杂了,最后决定充分规划。碰到的这一问题就是建模数据库的特点,我最主要还是要了解校友部的需求。
主持人:我们2号选手还有2分钟,专家还有没有问题?没有。
下面请二号选手进行陈述。
三号:各位朋友大家好,我叫邢海捷,毕业比较工业大学,工作十年来主要是做数据库的研发与维护工作,在工作中我体会到在数据库设计方面首先要强调对数据库的需求与了解,需求了解的越透彻数据库的构建才会更稳定,数据库设计也是一门平衡的艺术,可以根据情况适当增加数据库的冗余。
在开发方面我认为要加强数据库开发人员的培训,另外对于用户口令简短的数据现在不建议MD5算法,在数据库实施设备选购时我认为既要考虑当时的购买成本也要考虑日后的维护成本。还要非常重视原有系统数据的导入与转换,确保数据库的正确性,应该建立完善的备份与恢复策略,平时的实施监控与定期的数据库健康检查应该相结合,及早发现系统潜在的问题,做到防患于未然,对数据库配置都应该在测试成功后再用到生产系统中去。
对于数据库的优化我认为现在国家提倡建设资源节约型社会,我们应该把更多的精力放到系统的效率提升以及应用软件的优化上而不要过多增加硬件资源的消耗,还要增长团队精神并且不断学习新知识新技术有选择的应用到系统中去。最后我非常赞同三分技术,七分管理和十二分建设这句话,它充分的总结了数据库建设的经验与教训。谢谢!
主持人:请专家进行提问。
罗老师:我想问问刚才你比较系统的介绍了一下你的静音,在数据库应用里面我想一共有两个环节,一个是做设计一个是维护。你在这两者之间有什么独特的心得,另外在设计过程中你认为设计目前当前存在的问题和困难在什么地方?有没有比较完善形势化的办法把数据库设计做的比较合理合适?有没有这方面的想法?
三号:在数据库设计方面因为我不是搞理论研究的,从我原来工作实践中我觉得还没有形势化的做数据库设计的方法,我觉得在数据库设计方面跟软件一样关键是对需求的理解,要深入到工程的现场去调查研究深入的了解用户他们在实际应用系统中存在的问题,他们的数据流程是什么样的,根据他们现在的业务情况以及未来的需要设提出概念模型,在概念模型的基础上转换到比较系统逻辑结构上去,在逻辑结构设计时原来可能大家比较重视达到几泛式,从现在来讲从实际情况不必强求达到某种泛式。
在数据库设计上,很多经验不足的工程师开始建索引,因为索引的开销是很多的,也可能增加其他的开销,现在对于大量的数据可以采用分区方面的设计,还可以分散IO,因为IO的处理数据较内存和CPU还是有量级上的差异的。因为很多惨痛的教训就是因为没有做好备份,或者没有做好测试,所以在维护阶段最重要的还是要做好备份与恢复和进行有效的测试。
罗老师:你在运行维护中有发现调优的时候发现过什么问题?
三号:现在我在做一个专职DDA(音译),发现系统有效能方面的问题,主要先整个观察一下系统,比如说利用SQL的一些工具,比如说SP(音译)的数据库流量情况进行分析,找出关键耗费资源最大的SQL语句,然后对SQL语句做重点优化,另外有时候开发人员不见得非常愿意让别人去优化他的SQL,对他们进行数据库方面知识的培训,比如说我就把在实际应用中把发现的SQL问题抽出来,重点解析一些对比,优化之前和优化之后的差别,挑出来的实例大概基本上有十倍以上的差别,也赢得了对优化项目的赞同,所以最后经过优化以后首先我删除了一些索引和SQL语句,建立一些方面使整个数据库物理图都有大幅度下降。我们更应该把注意力放在应用与优化上,这样才能符合我们建设节约型社会的趋势。
周老师:你在陈述中谈到一个绑定变量,能不能用两三句话把它本质说清楚?
三号:主要指我们在写SQL语句的时候,我不太清楚这个概念跟编译原理是否一致,用SQL的绑定变量有什么好处呢,在同类建立原来系统的分析数执行计划,如果是用常量形式,如果第二次执行是另外一个常量,每一次运行SQL语句的时候都认为是不的SQL语句,这样就会增加系统的开销,这样在OLTP中系统中的开销是尤为明显的。
主持人:下面有请四号选手做陈述。
接下来我们要对服务器确定了架构之后要确定服务器进行选型,比如说三年之后设计我们公司应该收100个亿,这就是我们主要设计这个系统的主要依据,选型的服务器要满足三年内100个亿的要求,这块是我们设计的出发点,我来分析这个规划的出发点就是根据系统的保单数来算的,我做的事情就是把这100亿的报保单分解出来,比如说现在系统每张保单大概是根据这些数据分解出来就变成370多万的数据,最后就得出我们的服务器需要的处理能力是多少,接下来进行确定服务器的型号。
罗老师:第一个项目是分散的,在分散的系统到集中的数据结构方面有没有什么变化和考虑的问题?
四号:一个大集中的系统会对系统的压力更高,以前分散的系统,比如说分散的系统有几百人,那么就需要分散出几百个。我们要求的性能不是呈线性上升的,需要处理得性能不是说十倍的关系可能是上百倍的关系,第一考虑的是制成非常大的数据和并发用户数。还有一个问题,在系统性能没什么关系,纯业务上的,比如说编码的问题,以前每个分公司有自己的系统的时候,只需要考虑自己,大集中之后就带来另外一个问题,要对编码做整合,我们设计的时候要做一些特别的考虑的。
唐老师:在提问有关关系前先提一个非技术问题,在你的简历表上填的是中国寿险公司,是哪个公司?
四号:是PICC。
唐老师:刚说高级专家是什么意思?
四号:因为我走的技术系列所以就称为专家。
唐老师:你公司刚建立不久,是属于财险下控股的保险公司,你参与了这个系统的开发建设?
四号:对。因为现在金融行业有一个趋势就是以开发为主,之前的做法也有一些弊端,如果说一个需求出来之后要先到IT,然后再沟通,整个过程被拉的非常长,对用户来讲是非常不满意的。从设计阶段我们全程参与做设计,只是到具体我们的工作这块我们来做,整个运维工作还是由我们来做。
唐老师:下面我想问的是这样,因为你们是甲方单位,通常都选择了合作伙伴来进行开发?
四号:对。
唐老师:在系统建设中你觉得自己的位置在什么地方?因为这是个普遍模式,普遍模式作为大型企业在建立应用系统中通常都引用合作单位,作为甲方单位数据库工程师你觉的在这个时候应该做些什么能够使得自己有很好成长核项目的完成?
四号:我们会参考项目的标准,相对来说做寿险行业做数据库方面的是相对比较晓得,由于是全国大集中的系统,我们考虑要支持大数据量大多用户数的设计,在挑服务器的时候也需要一些特别的考虑,我们还做数据运维,一定要对数据结构有所了解,如果是外包公司开发的,就可能有两难的问题,如果不是基于操作是不会掌握实际操作的,如果不掌握运维工作是没法调整的。我想从外包的情况下对DBA有一些更多的要求,主要是对第三方的协调工作。
周老师:你们在设计这套开发系统的时候以后从该南分析和逻辑分析下来的,保险行业是一个很古老的行业了,全世界这方面的大公司有都是,你对他们的系统有没有什么了解或者借鉴?是自己从头做起吗?
四号:我这么回答吧,从整个国际市场来看确实是这样,应用都是非常广泛,这样的系统优势就是储存率非常强。带来另外一个问题就是对国内业务的支撑现状不是非常好,可能在国外看来都是不可能做的事情但在国内就来做这件事情。这样就带来一个,我们选择是国外的系统还是国内的系统,国外系统扩展能力非常强,基本能力都有,国内系统就是非常灵活,能想到什么样的功能都能够实现,而且成本是非常低的,而国内系统没有经过大业务量、大数据量的考验所以扩展能力是较弱的,一般我们会结合两方面系统的优势。
周老师:现在提倡要和国际接轨,特别是保险行业更需要这方面的需要,那么你们在设计开发的方面有可能就是会形成障碍,你是怎样考虑的?
主持人:下面进入到五号选手(视频选手),王涛你能听到我的话吗?
五号:我主要是想说一下在技术支持关于项目费用的东西,对于技术方面也是相当重要的东西,现在都重视框架和SOA,可能感觉在座的各位都是各行业的高手,都是从年轻时开始积累到现在,很多人都忘了自己本身传统应该保留的东西,只是一味使用到了API,最关键是要理解数据库实现,并且是秉承的东西在一些项目中也是非常重要的。比如说前两天我把到了一个KS(音译),做业务移植,搞的很复杂,最终发现是卡在数据库方面,这种情况本身是用细节方面让它节省了,这种方法还是细节决定的,也就是细节决定成败。
主持人:有请专家对他进行提问,因为五号选手在多伦多实在没有办法赶回来。
罗老师:因为你现在在国外工作,你刚才提到细节决定思路,我很想了解在国外数据库工作经验中,你当然在国内待过,对国内数据库具体技术人员根据你的经验有什么想法和要求。
五号:我在论坛上也会经常看一看,在技术含量上有很小差别,尤其是美国很厉害的DDA(音译),在国内相比应该是强很多很多,国内感觉还是在考虑应该怎么样实现这种方法,但国外的人已经考虑怎样开始优化,怎样做的更好,国内不管是在开发和应用上还有很长很长路要走。
唐老师:你现在还在大学里吗?是在大学学习期间到IBM去技术支持做一年还是说现在已经毕业了,专门在IBM公司?
五号:我还没有毕业呢,现在做实习,实习是16个月,从去年5月份开始到今年的9月份结束,在这期间看了很多BLKS(音译),被技术问题难倒的东西,感觉挺恐怖的。
唐老师:现在对数据库的支持也是不同层次的,一个现在处在的位置是厂商对数据库运行的支持,很多是在运行单位系统集成商来支持运行系统,你自己这一年来的经历对应用单位负责应用系统支持这些数据库工程师们有些什么建议?
五号:还是应该了解这个层面的东西,毕竟看不到DB2源代码,还是有一定的问题,在美国摩根斯坦利他们有一些BUG,但他们对DB2的理解相当的深入,不会犯很愚蠢的错误,如果他们找到问题就真的是有问题了,在非IBM内部技术人士建议,多玩一玩DB2,有机会应该多参加一些DB2的讲座,这样才会理解的比较深入,在应用层面还是差的很多。
周老师:从你的材料来看DB2细节都还是比较深入了解的,发现一些问题的话的确从系统本身就有这个问题,你认为DB2这样的问题多吗?
五号:也就是说DB2的BUG?
周老师:从资料上看一些问题俗话是“硬伤”,DB2都搞了30来年了怎么还有这个问题啊?
五号:对于大系统不可能做到十分完美,只能让用户感觉在正常的操作没有问题,在极端的操作可能就会有一些问题,可能BUG比较多就会有DLOK(音译)这块,总之感觉到做的还好,不能决定说完美,因为不可能有一个系统是完美的。
王云:我很高兴听到各位选手发表了他们的经验谈和老师们的很有价值的问题,我个人感觉到跟大家交谈之下,大家的经验其实都是很丰富而且很实在的,其实蛮感动。
先抛砖引玉提个问题让他们讨论一下,好象好几个选手都谈到国内遭遇到比如说大集中或者很多信息整合,自己也感觉到国内经过过去差不多十年IT应用阶段,现在确实到了整合的阶段,不管说地区上的集中,大集中把省市集中在一起或者应用集中和单向业务做集中,我们常常说计划赶不上变化,第一个问题跟大家交流一下在我们做这些项目实施的是,一个项目从开始,从需求开始分析到设计、规划、实施到最后上线和监控一直往下走。丢个议题讲,大家有没有谈一下这个经验,当谈到计划赶不上变化,当系统需要做变化的时候,不管是需求的变化或者做整合的也好,或者数据库做好怎么样把它做设计、需求也好做一个变化,在这样的过程中有没有一些难处,这个题目太大了,做一点再收容一点,有个选手讲规范,现在有一种新的想法,如果说想造一个系统跟别的系统互动的话,是不是有一个更灵活的数据模式,不知道大家接触没有?是不是用XML的模式做交换做存储,XML是不是代替我们的计划赶不上变化,以前提到怎样做变迁,XML是不是可能有帮助,大家有没有想到对系统做调整的时候是否提供出一个新的解决方案的想法,我觉得这是很有意思的话题让他们讨论吧。
四号:因为刚才王云老师也提到系统大集中业务变化非常快,就会有各个系统整合和再造的问题,解决业务流程和业务需求在设计的时候有一种服务的概念,按照厂商的说法叫做VP(音译),那么我们在设计时确实要考虑这样的服务,这样带来得好处就是我们在做系统整合的时候流程就是的时候,只需要把这些细的服务重新整合一下,这就涉及到系统之间的整合XML的方式,折算效率上会有很大的提高。各大数据库厂商也在XML这块做了非常大的供进,作我们的系统中确实也用了很多XML,比如对银行系统的交互交流和沟通都是用XML做的,这是一个比较好的方向,来满足业务快速的变化。
五号:我本身也是想说关于SOA方面的东西,已经被这位选手说完了,都差不多吧。本身SOA也是集成在小的模块中,跟大积木一样,通过接口,接口是固定的,通过XML。IBM大概在2000年提出的东西这是一个很好的东西。
王云:刚才万正勇你提到在保险行业中数据交换已经用到XML的,在你的经验中收到的XML的DAT(音译)怎么处理呢?
四号:相对来讲从纯XML应用还是比较少一点,更多还是在应用层面来处理的。
三号:我在上中学附中的时候听老师说低下头看题,抬起头看方向,最近有XML的话题比较热,在我们目前有限的预测能力之内可能是一个方向,前些日子参加了有关SQL的讨论,XML现在实际上是作为SOA数据交换的基础,可以说是半结构化的数据库领域,很遗憾没有使用DB2对V9,对XML原声的支持,我们用了一些SQLXML,只是做了一些试验,现在对于SOA和XML应用现在有两大担心,效率和安全性的问题是需要考虑的。我参加的会议上两方专家对效率上的问题都没有正面回答,从长远发展任何一项新技术它刚开始的时候都会有人质疑惑他的效率问题,比如数据库刚开始的时候很多反对者认为效率不佳,但是随着硬件基础设施的逐步提高和对各大厂商技术支持提高效率问题他们认为逐步可以得到解决。另外,安全性问题,现在我觉得可能是一个,尤其在外部方式下是一个比较令人头疼的问题,各个系统都不敢保证自己的系统是绝对安全的,比如微软和IBM逐渐对自己的系统发布补丁,发现漏洞等。采用SOA为基础的技术以后能不能引入更多的风险呢?
二号:很多选手有说到XML项目的问题,我觉得XML它可以适用于数据交换的模式,尤其在现在的多平台上面,但是就效率问题。
王云:你有没有试试看啊?
二号:现在用的MySQL,不知道现在的DB2V9有没有,我知道第8版是没有XML的支持。
二号:我记得当初V9不是这样的,有个专家是专做XML的,他一直在做这方面的技术,在目前大数据量的情况下一个是效率慢。
王云:你真的去存储的时候其实每一个重复的东西全是用内部代码来代表它,长话短说,我不会在这边讨论太多DB2的INT(音译),将来在做一个数据库系统的模式来讲对将来解决的问题,我刚才说的计划赶不上便不管说从DAT的数据上,或者业务整合速度非常快的时候,如果把业务的增长和表格的设计上,是不是XML可以简化我们的系统要变化的过程?
二号:目前可能大部分问题都是在数据交换上。
王云:从交换真的是要到存储对不对?
二号:在设计方面我觉得确实这种需求的变化是一种XML,主要用的化确实会解决不少问题。
王云:听起来大家可能在业务上都有这种需求,大家都有所保留对性能上的支撑,刚才提到现在如果不使用这种技术的时候大家都在找一些其他解决方案,就感觉到其他的解决方案相对来讲其实也是成本也很高,甚至开发成本也会很高。
主持人:我想各位专家和各位专家有很多意犹未尽的话题,会后可以深入讨论。下面有请评审专家对本场评审进行点评。
主持人:下面宣布本场评审到此结束。
主持人:群雄逐鹿“2006年中国首届杰出数据库工程师评选终选现场”第二场现在开始!
第一,数据库就是是为企业范围内建设统一的过程。
第二,坚持持续数据资源改进。因为数据质量是数据的生命。像国外的的词语所说的一样,我们要在数据库建设中持续资源改进”。
第三,我们要处理海量数据,同时我们对数据库要求快速的数据装载和及时响应,在响应方面主要是合理使用索引技术、数据分割和汇总也能够提供响应。
第四,我们在数据仓库应用中要融入先进的管理思想和方法,提升应用价值提高客户的管理水平。
第五,直观有效的用户界面,比如说地图分析和仪表盘,这些用户界面有比较友好的表现方式可以为数据库的表现方式增色很多。
再有一点,经过五年对IT行业的服务经验,IT本身是一种提供信息服务,我们作为服务人员必须要有好的技术和专业的服务经审核态度,“态度决定一切”,如果我们做到时为客户着想的话就会做好我们的项目。
罗老师:如何保证数据质量有没有量的要求?最近我看到有人写了一本书,好象是国家税务局写的,里面提出这样的概念叫做“零误差”,你认为从你的角度看来如何界定,一个系统的数据误差应该怎样来保证它算是比较科学的论述?
唐老师:有这么几个术语,数据仓库、操作数据存储、ODS、OSERVER(音译),你对这三个术语怎么理解?
唐老师:数据仓库是这几年才发展起来的,以前只是数据库,你从你们的经验上来看是怎样过度过来的?因为原来都是数据库。
王晓刚:因为我在保险行业一直在做ODS,我们积累了很多数据,我们就需要把这些数据很好的利用起来来做一些用户支持等等这方面的应用,也要给市场一个快速反映。
唐老师:你怎么从原来的数据库怎样过度过来的?
王晓刚:当时过度是这样的,先过度核心业务系统,那时候做了集中的过度,我认为应该做分析,但当时没有做。那时候用的是ODS,现在用的是ORACLE。
主持人:有请段云峰进行三分钟的个人陈述。
罗老师:刚刚你介绍内容很丰富,光创新点就11个,当然在数据仓库建设中有一些经验和理论,我想问在中国现实情况下你刚才提到的难点和困难,你认为在技术上的难点和其他的什么因素,在这方面有没有什么可说和介绍的东西,讲完了好的东西还不足,因为建立一个大的系统毕竟不是很容易的。
唐老师:通过你对数据仓库建设过程和运行过程,如何看原数据在数据库中的重要性?
周老师:你刚才提到中国移动这个大的系统在国际上是排在前面的,面临的一个很大问题是人才问题,我们了解我国数据仓库大概有十来年的历史了,前几年一直很热,几乎各个在培养开这方面的课,平时的论文也很多,这和你刚才讲的有一个矛盾,说明我国有这么一个好的平台,这么多研究机构培养了这么多人,这个事情好象是一个比较大的问题,你那儿觉得人才非常缺乏,可是从我们感觉上来说各个学校这十来年培养了不少人,说明了沟通问题非常大是吧?
段云峰:因为我也是学校出来的,了解其中的“行情”,国内一般是侧重数据挖掘和算法的研究,而在数据仓库这个领域里面,我举个例子,我们真正要这个系统的时候真正的设计,说白话是集成研究的时候确实感觉到人才十分缺乏,但是数据仓库是很复杂的系统工程,包括ETR和后端的应用是一套的东西,在高校测算理论挖掘这方面比较多,但在数据仓库这方面的人才相对比较少。我个人多说几句,数据仓库还是在数据库的基础上,在大的数据库真正按MPP理论做的都很少,很多的都不是纯粹的为海量数据夺的工作,因为中国移动也算是个个案,但是他代表了一个方向,部分企业已经意识到这么大的数据是一个近况,而且足够得多,足够的丰富,这一点应该说是一个过程,现在底层还是在关系数据库这方面来做研究。
周老师:我觉得这个事情是需要很好的沟通,我们现在已经有那么大的公司你们的题目做不出来,解决不了,这个问题可能国外的大公司经验还是要学习,把这个问题提的比较具体委托研究机构大写来做,这样可以非常良性的为国家水平的提高。
主持人:下面请三号选手盖国强进行三分钟陈述。
罗老师:你刚刚讲的这种故障分析方法是理论探讨和实际工作中的总结,利用你的想法和实际工作经验中有没有利用他得到一些结果分析出来一些什么问题等等实例的方法和实例的印证说明它。
盖国强:我可以介绍一下,因为我在工作中一直遵循种种方法,最初是不自主的运用这种方法。举个例子,在联通的项目中可能会出现用户的故障树,我上到这个系统中首先会查看CPU资源是否十分紧张,接下来看CPU的紧张是由什么引起的,查看进程,一般有两种情况,一种是进程异常,大概占用50-80%,第二是大量进程累计。那么我们在这个项目中发现进程累计,我们发现这个SQL没有创建合理的索引,这时候找到这个问题的根本原因,这时候观察数据库它的压力马上就环节下来了,最后就得到解决了,特别是像这些应用实时性要求非常高,要求解决速度非常高,如果超过5分钟就视为是一次严重的故障,通过这种方法我都可以快速的解决这类问题。
唐老师:你说你所在单位是在华友公司,和下面提的是某公司是一回事吗?
盖国强:是一回事。
唐老师:你说管理全国30多个数据库系统是什么概念?
盖国强:在系统构建之初可能由于规划存在一些问题,在最初可能都会构建不的平台,现在就开始集中,集中到几个分省的节点或者总部的节点,到现在为止一些节点都是完成了的。唐老师:你说是为你的企业服务,30多个是你们提供服务吗?
盖国强:是。
唐老师:能否说一下系统调优方面的经验?
盖国强:实际上可以从两个方面来说。第一,当我们的数据库出现故障的时候,比如说刚才提到的例子,通常应用在测试过程中压力不大的情况不会体现出性能的问题,但上升到生产的规模中,高并发、高请求可能就会出现性能问题。故障出现的时时候我们也要解决实时的问题,系统在日常稳定的过程中我也要主动发现问题,找到具有性能问题的SQL或者应用来进行调整。举个预防性的例子,我们的应用在为联通服务的过程中有这样一些案例,当系统在上线运行过程中可以通过ORACLE的手段,来找到这SQL,通过逻辑度曲线把顶级压力进行优化,这样的工作是特别常见的,特别是在一些测试环节中。通过我们的调整性能可以提高10几倍这样一个比率。
周老师:树形的办法好象是一种霉菌的办法,好象是有先后顺序的,而且不同的运行阶段有不同的变动,一般硬件基本上没什么问题,在你的经验当中这样一个有线顺序是怎样排的?
盖国强:传统上是事后分析方法,我们在实际过程中解决是自上而下在头脑中迅速判断应该到哪个分支上去,通过Server来进行判断,这样一个信息在传输可能是光速的。我之所以提出这种方法是因为通过这种方法新的工程师在脑海中可以建立这种方法,在脑海中有序可循,然后找到问题的核心本质所在。
主持人:下面有请第四位选手陈述。
罗老师:你做这个工作目标是做研究还是想做商品呢?第一个系统和第二个系统有什么关系?
王宏志:我做的NetXML数据库是一个研究模型,后两个是实实在在的系统,已经开发完了。
因为先开发的是第二个系统,后开发的是第一个系统,第二个系统确实是为应用幅度,第一个系统是做科研中的一些研究成果希望把它变成一种系统来开发的。
唐老师:你讲的相当于两个技术路线,现在IBMDB2版本A所有双内核集中,支持XML,你说的两条技术路线,希望从实用的产品角度你能谈谈自己的看法吗?
周老师:你的XML方面做了研究开发而且用了,用了是因为你课题需要用的吗?
王宏志:课题里确实需要它来用,数据源数据是什么形式的都可以,通过RPO(音译)转化成一种XML数据存储到我们的XML存储数据终。
周老师:你用来描述全局模式吗?
王宏志:我们用XML数据存储实际的数据。
主持人:现在请第五位选手做陈述。
冯昕:现在我在摩托罗拉做的一个系统是CDMA的网管系统,负责设计和DES(音译)模块,包括数据库的备份恢复以及数据库内部的一些整理,我以前也在国内的一些企业做过,但我在国内的企业我有技术但不能得到发挥,在设计阶段没有人问我为什么要设计,我说我需要参与,别人说我需要参与,作为DBA你是没有必要参与的,怎么把我的产品交给我呢?
因为开发人员对DES(音译)是不熟悉的,用户提了一个需求但不知道DES(音译)来实现,可能开发了一些代码来做,所以我觉得这地方就是DES(音译)的问题,现在摩托罗拉这边流程就很规范,我可以在其中提出自己的建议,在设计的其中可以发挥自己的作用。
唐老师:你把自己的需求弄清楚了,把实际阶段考虑好了,你主要重视前期的完善,然后节省后面的成本。在运行过程中整个企业的发展变化的因素是比较大的,希望在前期做的很完美是有难度的,后期带来的问题来看,带来各种各样的问题能否有些建议对前期的工作,不是一般提要求,而且应该怎样做,而在做中不管是技术上和管理上的措施,这方面能不能提些建议?你是否还有一些别的体会在技术上有些建议使得运行维护阶段的成本就少了?
冯昕:这个要说一下测试,我觉得测试做的在以前的公司里面做的不是很充分,我简单的做一些功能的测试,对DES(音译)的测试做的比较少,摩托罗拉会模拟现有和五年的环境,把测试环境看几天,看一下两年之后和五年之后看什么样子,我就可以找到设计中有没有一些缺陷,在DES(音译)的时候看一下SQL语句是否能够满足五年增长的性能需求。再一个阶段,在维护阶段,我们现在是每天有一个HASCK(音译),每天都要保留一份,一年之后就会看到数据的增长情况,可以预测两年之后会有什么问题发生,做长期的监控。
周老师:刚才你谈到做DBA来说最好是在DZING(音译)每一个阶段都能够参与和理解,对后来的维护的时候可以实现高效率,我想这是一个理想的情况,但事实上不会是这样的,正好你要参加逻辑设计、概念设计,这个机会不是太多的,拿这个做一个模式不会这样的,一般DBA模式早就做好了,那个时期你该怎么来改进这个系统?
冯昕:已经有现有的系统了?
周老师:大部分是这样的情况,大多数都是系统都已经做好了,你该怎样来改进?
冯昕:我以前做过移动系统的BOSS优化,这个系统已经运行将近一年多了,对于有问题的数据库作为一个DBA首先要定位问题在哪,如果这个系统定位在应用系统没有使用变量引起SD区的混乱。高度负责人我这个系统的问题在哪,然后提交给开发人员怎样修复,但这个开发人员不认为是一个问题,我要确定是哪一行代码,应该改成什么样子,当然这不是所有的SQL都可以改的,需要一个有限级,先把最影响性能的SQL找出来,也可能5个、10个,其中一个SQL是动感地带查询的SQL语句,而且比较复杂,在之后工厂区中将近占5M的空间,当时对于开发人员来说不改SQL可以但必须把这一条SQL改掉,对于开发人员来说非常简单了,改完之后性能有很大的提高,这是一个工作的方法,就是说怎么跟开发人员做一个沟通,让开发人员意识到你这个问题影响到我数据库的性能。
主持人:三位老师还有没有问题,现在进行下面一个环节,有请王云老师上台进行我们互动讨论环节。
盖国强:王云老师刚才说的非常好,不管是实时和来量的数据也好,都是我们要发现有价值的数据,主要就是在海量的数据中找到有价值的,很重要的一点就是对数据的分析、抽取和二次使用。通过挖掘或者抽取来提供我们最有效分析汇总来提供业务方面的应用。另外,关于压缩技术,很多厂商都提供这种技术,不管是ORACLE和IBM,压缩和解压的过程中必定会消耗CPU资源,当然可以减少存储,实际上我们也尝试过一些硬件资源。对于海量存储,我想说IBM的数据库和使用的并行,有人也提到过他的并行是真正的分布式的,可以使用多个服务器多个CPU协同来完成分布式的技术,ORACLE也有这样的技术,叫RX(音译)技术,需要有一个共享的存储,通过多台主机来访问共享的设备来实现访问。这两者我认为是有本质的相同的,ORACLE是一个实时的应用。从我个人理解,应用是最主要的。另外从数据库技术本身来说通过压缩或者其他方面的技术也可以解决这样的一些问题。我所经历的也有通过硬件的层面解决的,这是我对海量数据的理解。
主持人:其他三位选手有没有发言的。
主持人:感谢各位参赛选手,下面请罗老师进行本轮比赛的专家点评!
主持人:谢谢罗老师,再次感谢上午的各位参赛老师和评委!
主持人:大家下好!“2006年中国首届杰出数据库工程师评选”终选第三场马上就要开始,我是中国计算机报张延君,向大家介绍一下第三场的专家评审团,第一位是乐嘉锦老师,第二位是施伯乐老师,第三位是唐世渭老师。选手有第一位张黎敏、第二位庞恒志、第三位冯春培、第四位王翔、第五位汪海。
主持人:下面有请三位专家对一号选手进行提问。
乐嘉锦:参加达梦4和5,3以前做过吗?
张黎敏::也做过。
张黎敏::从98年到现在。
乐嘉锦:团队稳定性是个非常重要的体会,你这个团队的核心人员动了多少?
张黎敏::到现在没有动过。从DM4核心成员到现在一直没有动过。
乐嘉锦:查询部分是对ORACLE的7.3?
张黎敏:Server。因为流动人员是比较正常的,但是主要的不能动。
乐嘉锦:你现在讲是基于代价优化,还有什么其他的优化方法?试过吗?
张黎敏:以前是基于规则。基于规则不是很死板,很灵活。
乐嘉锦:做事物处理也是你们在做死锁是怎么做?
张黎敏:造成死锁的事物只是回滚当前语句。
乐嘉锦:没有做细致的?
张黎敏:也参照了当前的做法。
唐世渭:你有运行维护的经验没有?如果有的话你认为如何在应用方面的经验分过来对你做DBMS的事情有什么促进作用,如果没有如何使得这方面的弱点?同样使得对DBMS核心有一个比较好的状态?
张黎敏:应用的经验比较少,几乎一进去这个公司以后就一直在做核心的项目,我们设计的初衷就是符合ORACLE标准,因为公司还做一些其他应用的,也会提出来一些其他不符合标准的,比如说SServer来满足在希望系统上的应用移植到我们的系统上。
施伯乐:应用是很重要的,如果没有应用很难说好不好,回滚会很多,你们有没有考虑过这些
张黎敏:应该是这样理解这方面,一个应用系统如果死锁很多的话应该在应用设计方面做一些处理,这样可能会更好一点。
施伯乐:现在事务处理保证可串行化用什么方法?
张黎敏:我们用了封锁的方法。封锁在每一个隔离级都是不一样的。
施伯乐:怎样来保障呢?
张黎敏:比如说对表对于封锁。
施伯乐:不管怎样封锁不是按照,现在我们知道两代封锁肯定是可以保证,未两代就会出现非系统化。
张黎敏:如果封锁力度很大的话是可以保证可串行化的。但效率会很低,而且在应用中可串行化的事物相对来说比较少。
施伯乐:优化做了些什么呢?在查询优化方面。
张黎敏:现在主要做统计信息,然后根据统计信息计算预判结果的大小以及O的次数,主要是针对这两个计算它的代价,把最小的代价挑出来。
施伯乐:那你要做很多试验了?
张黎敏:对,没错。我现在是做了大致的原型出来,以后还要根据不同的测试来调试它,一直达到比较优化比较精确。
乐嘉锦:封锁颗粒多大?
张黎敏:有三种,第一是表,第二是页锁,第三是行锁。
乐嘉锦:行锁用的不多?
张黎敏:行锁用的比较多一点。
施伯乐:整个关系都封锁掉了?
张黎敏:共享锁。指的是排他锁吗?排他锁没有。
王翔:我是做数据库的,加入支持队列产品怎么支持数据库分布式?
张黎敏:我们现在目前只支持连接池,就是说你有很多用户来的话我们有连接池来处理,我们在连接的时候满足很多应用的需要。
王翔:就是一个并发性的问题?如果我取一片报文,要入库,假设失败的话,你们现在数据库产品是否支持这种交易,怎么实现?
张黎敏:我们目前没有支持这种分布式的应用。
主持人:下面有请二号选手做自我陈述。
主持人:下面请各位专家对第二位选手进行提问。
施伯乐:在看你这个材料的时候,有大部分数字,但材料中归纳成功与失败的经验的地方,第七条好象都是关于复制的。第二点你的经验分布式数据的复制,这里面也提到做了通用的访问接口,这个是怎样来实现多分布式的复制?这是第一个问题。第二个问题,你还了数据库关键很重要的是提供系统的高效灵活和可扩展性,你怎样做到这两条?
庞恒志:我们用了大量的技术,我们研究了很多目前的系统,最初是一个系统一个系统做的,最后把这些系统合并起来,并且支持这些扩展性,接口在定义完之后在具体的实现上使用的方法是不一样的,用户可以通过微软的形式直接传输数据。还有就是针对不同访问的时候,具体会根据传入的方式构建不同的方案。
施伯乐:中间用了什么技术?
庞恒志:在实现上用到了MQ。
施伯乐:不是说通用吗?
庞恒志:接口是通用的,从用户来说不需要看决策的细节。
乐嘉锦:里面提到区别灵活性、可扩展性,是怎么实现的?
庞恒志:在扩展的时候可以动态的加入模块,根据具体的情况构建自己的方法。第二个灵活性方面现在大部分产品都是支持配置的,我们的配置方面除了DB2还有IM文件配置方法,除了这个之外比较重要的一点我觉得在我们提供应用程序接口,我们提供了DBI(音译)。
乐嘉锦:应用程序和你的模式好象不一定能够完全放在一起说吧?因为你在上面写的是提供了即数据库设计又要提供系统的高效灵活,实际是怎样来体现的?
庞恒志:高效和灵活性,现在的这方面的产品非常多,首先我们要采用高效率的访问方式,访问的方式具体的细节就非常多,我们通过不同的接口去访问,比如说ORACLE是通过C接口来访问,我们曾经做过这方面的测试,有JAVA接口。从灵活性角度在设计的时候就考虑到配置可能是多方面的。
乐嘉锦:是否举一个例子说明对数据库性能调试方面的经验,你维护的哪一个数据库?这个数据库通过你调优的工作而使得它性能提高了,举一个具体的例子,因为你的材料面很广,就一个很具体的工作说一下。
庞恒志:我经常会收到一些关于应用程序访问数据库访问特别慢的情况,其中有的把系统发给我,说他一个系统运动要几个小时,我拿过来看,第一点先检查这个SQL,因为我们做了很多的连接,这个数据库产品是DB2,首先考虑到的是索引,DB2有自己的索引机制,然后要考虑的是什么呢?很多表的连接往往会形成两个表连接的形式,我们根据查询优化的原则把这种做大数据查询的优化尽量向查询末端推,再把数据合起来。除了这样的问题之外还有就是很多关于参数调整,比如排序的时候排出一堆查询不了了,在这个时候要对SQL的访问量进行评估。
主持人:下面有请第三位选手进行自由陈述。
乐嘉锦:材料我预先看过了,觉得确实蛮有经验的,应该是国内的高手。我这边想提个问题,一个是对ITPER(音译)的贡献在哪里?第二我觉得你在S(音译)方面是有很多方法,你是用了怎样的创新方法?自己的创新点在哪里?
冯春培:第一个问题,ITPER大概是2001年9月份成立的,因为我习惯跟大家交流,在交流的过程中自己也得到了提升,我觉得跟大家交流经验是很好的感觉,那个时候很痴迷这类东西,自己得到了很快的提升,作这个圈子中的朋友基本上都认识,这也依赖于ITPER给我们提供这样的一个平台,我们业带来了这个圈子中的朋友成长其实这是个良性的循环,有这样一个很好的场所我觉得是对我们的行业大大的促进了,如果没有这样的平台如果大家单枪匹马的话我想这个行业不可能成长的那么快。另外您说到SQL这样一个东西,你说到创新,不存在技术上的创新,我们做应用的创新就是把一些存在的功能或者特点,即使没有看到别人这样过,但是能够结合本质实现你的目标,成本降低和各方面的降低我觉得也是一种创新。
乐嘉锦:我承认你创新了。
唐世渭:我想问一下你受教育的背景,原来学过什么?你从简历里头强调的是在网络技术论坛上跟大家比较有兴趣研究得到的成长,能不能把你受教育的情况和大家一起研究成长情况提几条对数据库工程师的成长这方面的建议?
施伯乐:你说对理论方面,光学了些理论没什么用?你数据库里面的设计了什么?
冯春培:我先澄清我没有说学理论没有用,关于设计数据库,我考虑的目标首先要基于它的应用的性能,我要考虑这样设计是否能满足我性能的需要,同时带来的存储是多少,是否要冗余,冗余有时候需要跟性能是需要调和的。
施伯乐:性能有时候会考虑吧,你的工作我不否认你做的很好,但你一定要在理论上下些功夫,性能我不反对,对基本的东西也不能放掉,数据库都隐蔽掉了,看不到什么东西,你强调的设计多一点,你做了很多工作,但我觉得你这方面要有所提高。
冯春培:谢谢!
主持人:有请第四位选手陈述。
王翔:大家上午好!我每天上班的关心的只有三件事,一是让我的系统适应业务的变化,二是130个国家,170多个组织实现共联,如何把我们的系统做运维。今天我可以把最近一、两个月做的一些工作向各位领导做下汇报。首先在使用了XML数据库会更好的把实体完成规范化设计。这也更好的符合了以往需要的结构,其次如何利用XML数据库来完成SOA应用设计,以往强调的是怎样更好封层,但对于拥有30年经验的机构,海关是直接把应用以层分割,包括这么一个很好的服务,最后再通过服务注册器来完成设计。我们在这之间永乐很多自己的处理语言,我们可能不太用开发工具来实现,而是用自己的开发语言。
施伯乐:你不要说海关,你要说自己做什么?
王翔:就是我设计的,我自己设计了海关的查询语言,此外产品设计也是我自己设计的,在完成一个工程点的结构里面我们要突出什么呢?每一个工程点往往避免不了完成工程表达,这部分也是通过XML转化为表达式来实现的,因为海关的所有每一个业务都基本上组建化了,因为MSDL是XML的,每一个工作流也是XML的,因此只要建立一个XML数据库就可以完成整个数据库的设计了。这种设计有什么好处呢?我们把资料是保存WORD文档和电子表格中一些文件中的,我们把它保存为XML,在上面架构一个XBORO(音译),第一我认为在数据库的布局上不能盲目的大集中或者盲目的分布式,在人员任务上也需要不拘一格,在我任命岗位的时候有关存储和数据库是融合的,可以充分利用他们的成熟的交换、报表进一步节省成本。谢谢大家!
主持人:下面有请专家提问。
乐嘉锦:刚才介绍了XML数据库,XML数据库跟你以前的关系库怎样相连?第二个问题,你在做DXS,里面讲了自己开发了一套完全基于XML的查询语言,这套查询语言是用在哪一个XML上的?
王翔:第一个问题XML数据库对于海关来说是不急于某一个产品的,因为以往我们吃亏太多了。
乐嘉锦:保存在XML数据库里面还是保存关系性数据库里面的DXS里面的字段的地方呢?这是有不同的概念的。
王翔:以往我们使用支持XML的数据库。我们既有系统的,只要把数据拿过去升级就可以了。您的第二个问题是?
乐嘉锦:是怎样的一种语言?
王翔:在我担任高级构架师以后我们也在自己基于自己的XML的语言,我们只是提供一个简单解析引擎就可以了。
乐嘉锦:而且没有对一个具体的XML数据库?只是SServer里面大致都能读的通?是这样吗?
王翔:只是说我们开发了这种语言,因为这语言包括查询定义,还包括行业的,03年我们在进行了一些项目实施后也做了一些内置的引擎来使用。
唐世渭:海关的系统是完全海关完全是内部中心还是有合作伙伴?
王翔:原来我们是很微软公司开发的,他们撤走之后完全是我们的人。
唐世渭:你们这就是属于甲方了,不管是银行或者电信都是属于甲方的,在碰到大的工程都会跟乙方来合作的,如何体作为甲方所谓架构师如何跟乙方合作的时候能够起到你的作用,而且同时跟乙方需要在乙方的经验中进一步提高自己?
施伯乐:你用了XML类型的数据库系统,我觉得你没有说清楚,这是你开发的还是怎样?目前还在做这方面的研究,这不是做检测的问题,还在发展还在成熟。
王翔:因为我们的OA系统需要面向12个部委和组织,包括OA的文档流程,每个流程中进行的检查和每一点的执行功能天天念,在OA里要体现这个,刚才说了我们的业务流程是以XML的形式保存在数据库里面的,我们每一步的业务过程是通过组建方式来保存或者组建下来的,规则职能也是不确定的,因此我们的更新和维护只是改数据库的字段,而不是改算法,再一个XML数据库上进行业务修改和完善。
主持人:下面有请第五位选手陈述。
乐嘉锦:第一个就是试了一下从单节点到RK(音译),又从RK(音译)回到单节点?
汪海:RK用了一年多。一般厂商说起来都会说扩到多少个节点,但实际上使用中很多东西都需要消耗资源,所以扩展形式并不是十分好,比如多个节点同时访问一个数据,传来传去会消耗很多资源。
乐嘉锦:最主要还是单点故障。
汪海:我们会用其他方法来解决单点故障,我们用了我们ORACLEIIC。因为我们是私营企业所以成本比较重要,当时没有采用小型机也是为了节省成本。
唐世渭:你在材料中提到过关于容灾和数据库,现在实际上容灾备份大家都很关心,在这方面能否简要从利用这方面过程中谈一下主要经验和教训谈一下。
汪海:我们是私营企业比较注重成本,我们把容灾定为三级,第一级是保证数据不丢,第二在数据不丢的基础上保证一部分数据,第三就是保证数据全部不丢,同时提供服务。我们实现最初级的方案用ORACLE的SLB(音译)技术,根据主库生产到容灾的数据库,容灾的数据库一直处于恢复过程中,但这一级容载不可能涉及到设备的切换,那么这个成本比较大,我们做的是第一个发展阶段。
唐世渭:这些灾点和容灾数据库发挥作用了吗?
汪海:因为没有碰到灾难,如果真的发生灾难我们起码还有一份数据在那里。
唐世渭:是在同一个城市吧?
汪海:是的,但区域相隔很远。
唐世渭:地震就很麻烦了。
汪海:地震我们也会提供磁带备份。
施伯乐:物化视图有没有修改?
汪海:物化视图是不允许修改的。
施伯乐:主要是提高速度?
施伯乐:这个不能说是物化视图,不是一般的物化视图?
汪海:就是为了同步去做的。
主持人:下面进行互动环节,有请特约主持人王小虎老师。
王小虎:不敢称呼为老师,在座有三位专家在座,很荣幸到这个地方来参加本次活动,希望有一个问题请各位参赛选手讨论一下,关于SOA大家听到可能都是从业务层面,我们怎么去更好设计我们的应用系统支持我们的业务?从运行服务器中讲,怎样做模块化的划分用服务来提供?数据库如何能够更好提供服务的角度为应用所用?请各位根据自己工作经验来进行思考回答这个问题,谢谢!
王小虎:因为我们在谈服务,我提供给你可以重复使用的一些东西,从数据角度,现在数据不完全是数据库的概念,只要是一种信息提供给对方,对方可以用很表针的方式获得。我希望探讨的是当我们做数据库从业人员数据库可以做什么?
汪海:如果所有数据库请求都在道路数据库显然对数据库的压力相当大,我们第一层是由S(音译)来完成,第二层是KS(音译)是我们公司一个的社区开发的,数据库经过前两层过滤数据库这边的压力会很小,基本上很多用户的请求基本上在上两层就解决掉了,就是在这两层保持好数据交换就行了。
王翔:在SOA屋里面首先是一个软件设计设想,通过SOA把一些以往应用做部门服务,通过服务可以完成什么呢?完成以往同步的数据服务,也可以完成以往异构的数据服务,数据的价值不是说元数据就好了,是在于模式的转换。此外通过SOA可以完成以往跨部门的畸重举个例子,各系统平台是完全不同的,只需要通过各系统完成服务,在拼凑可以完成各系统之间的树结构。在我们海关看来,这是我的意见,在业务流程本身和业务的异常完全可以看作是一种数据来使用,现在在SOA中只有一个销售通道。因此,如果有这种想法的话整个应用的设计就会变得十分简单。数据不仅仅是业务数据,因为里面还有大量部门是做运维的,运维部门大部分关心注册表,因此我们的业务要不拘一格,技术层数往往保存于层次性能,使用与以往的层面就不太方便了。
张黎敏:我现在想从数据库以及从软件的角度看待这个问题,很简单在我们看待数据库完成的事情就是说把用户的SQL语句解析出来,能够最快最有效的把信息反馈给客户,如果不能在应用层解决的话我们就需要考虑是否关系型数据库支持这个技术,如果不能支持的话是否考虑关系型数据库做些升级,如果能够满足的话我们会想在中间层做一些额外的转换来满足要求。
王小虎:非常感谢各位选手的回答!
施伯乐:今天参加这个会因为从90名到这些人,我觉得是不错的,各个选手有不同的情况,有的是对DBMA做了一些工作,有的对应用做了些工作。运用现有的技术解决现有的问题,这是很重要的,总结起来各方面做的是不错的。但是如果有更高一层要求的话,我希望对你们搞系统和应用的人应该把眼里的东西提高一点,什么东西需要往上拔,这不是科学家的态度,也不是做工程的态度。我们的工作还要实事求是,做到什么地方提到什么地方,要提高的话进一步看一看你们提高的对不对。这是第一个想法。第二个想法搞DBM的确做了大量的工作,每一个技术都有两年新,过了这边另一面过不到了,要说清楚这个基础对哪些是好的,哪些是不够的。这样我想对我们整个数据库发展有好处,我就谈这些,谢谢!
主持人:非常感谢特约主持人王小虎老师和专家以及五位选手,第三场到此结束,请大家稍事休息。
主持人:第四场选手到场的有四位,第一位选手是朱健彦,第二位选手是齐红胤,第三位选手是董国兴,第四位王忠海。由于第五位选手由于特殊原因没有到达现场,将以视频形式跟大家交流。
乐嘉锦:从你材料上看你们用的是SQLServer?
朱健彦:对。
乐嘉锦:然后用了ORACLE数据库?
乐嘉锦:到底是熟悉SQLServer还是ORACLE?
朱健彦:SQLServer比较熟悉一点。
乐嘉锦:还有互联星空?
朱健彦:这是三种方案中选了一种。
乐嘉锦:这样堆在一起我们很难看的懂。还有内部信息网,这个数据量会有多大呢?
朱健彦:本身信息量不是很大,每天大概有一万左右。
乐嘉锦:这个难度应该不是太高吧?用的还是SQLServer?
唐世渭:因为我看了对运行维护这方面工作做的比较多一些,整个新的数据库和开发,第一在这方面作为信息网这个项目以后有多大的分量,希望你能够描述一下这两者之间的关系,或者是你在你的运行维护过程中如何来体会做数据库设计应该做什么?
朱健彦:维护后来发现了问题,我对SQLServer比较熟一点,所以主要由我来做。开发数据库都是由我来负责,包括设计建模,维护有专门人员。全部是由自己开发。
唐世渭:有用户给你们反馈信息吗?
唐世渭:如何在维护反馈中得到这方面的建议来维护?
朱健彦:现在从设计上发现因为内部需求会比较多,有些系统可能纯粹的是为一个个人或者部门来做,从我设计的角度,我强调按照现有模型来做。
施伯乐:具体是怎么设计的?
朱健彦:主要是用POPRD(音译)来做。
施伯乐:规范的需求怎么样?
朱健彦:有的表我要取这个的工号和信息,有的时候可能关联4、5个表。
齐红胤:各位老师、各位嘉宾大家好,我是齐红胤,从我个人经历来说我比较侧重于数据库的建模,可能在跟各位的侧重点有所不同。下面谈一下我在工作中两点的体会。第一,总的感觉数据仓库中数据移植问题是最关键的问题,尤其对大型企业来说全企业范围内的数据整合和数据一致性问题显得相当重要,对于乙方来说,半年、一年、两年总会结束的,但对于使用来说数据仓库是一个过程,对于企业新的业务系统随时可以建立,这些数据可以无缝的整合,所以对于我们这说数据架构师来说更要重视架构的灵活性和扩展性,这样会对数据的一致性打下一致性基础。第二,从实际工作中很多数据建模的问题,跟真正的技巧关系都不是特别大,更多的是对业务理解不深刻,或者业务变动导致建模问题,所以说对数据建模师来说要在工作中积累一些数据模型知识的经验积累是非常重要的。
乐嘉锦:怎样来理解数据仓库的主题重要?
齐红胤:对于一个大型企业来说应该有企业信息模型或者说企业数据模型,这样一般一个企业自己会分为20多主题或者几十个主题,企业信息模型如果划分好了主题也就划分好了,划分主题在数据仓库架构中也是非常重要的。
乐嘉锦:而且主题会变,今天分析这个问题要面向这个主题,明天分析另外一个主题完全会面向另外一个主题,这就面临第二个问题了,上面领导要让他做什么东西,主题一直是在变的,如果不变仓库应用价值就很低很低了。
齐红胤:对对,乐老师说的非常对。
唐世渭:你在自己从事的项目中你觉得哪个是有代表性的数据仓库的项目?
齐红胤:最近的项目其实相当于是在数据仓库之上建设的分析系统,对于数据的分析整合和处理反而略少一些。
唐世渭:因为你们是以乙方开发,数据仓库本身会有一些运行数据,你对这些数据以及其中的数据系统在缺乏了解的情况下如何使得模型和数据的对应任何解决?
齐红胤:首先要建立数据模型要建立数据模型的分析,相当于对企业原有系统的分析了解原有系统的结构,这就需要业务人员的支持。另外,对原有系统要做概况分析,这是相对来说比较小的数据操作系统。对一些大型的数据操作系统来说的话会提交给相应的业务系统来实现。
唐世渭:也就是你实际上是从上而下的,有概念模型和模式模型,在装载和映射的是从下而上的,你如果对已有数据缺乏了解的话,你如何对待?
齐红胤:这个问题我觉得提的非常好,如果真的缺乏了解这个数据仓库是不会设计好的,第一是需要业务人员的支持,第二我刚才也说过需要行业经验的积累,对这个行业比较熟悉的话积累的知识比较多,对于常见的问题也就比较熟悉,这样会很好的。
主持人:感谢精彩的问答,下面其他选手有问题要问吗?如果没有的话请第三位选手董国兴的三分钟陈述。
乐嘉锦:在你的材料中看到你做的大项目比较多,在各方面工作中有很多经验以及体会。你做ORACLE性能调优做过很多,如果我给你一个ORACLE性能调优,你认为最大的问题是什么?
董国兴:首先是SQL,然后是应用系统的设计,还有软件的设计,软件设计是跟数据库系统的设计是同步的,第三才是硬件的设计。这些都完了以后在硬件资源以及这些都调好的情况下最后才是一些具体参数的调整。
乐嘉锦:做高级复制,SVS(音译)复制,SVS(音译)之间的复制和ORACLE都提供复制机制,他们之间的优劣在什么地方?
董国兴:我建议在网络不太好的情况下还是用SVS(音译)复制,如果网络好的情况下建议还是用ORACLE的复制。
唐世渭:主要你是做应用开发,后面的维护管吗?
董国兴:管。
唐世渭:作为你是不是两个也都管?
董国兴:作为我来说,我只是在开发阶段有些数据库方面的东西需要我来参与一些,但我只是后面的集成加运维这块。
唐世渭:你的运维经验能对设计者提出一些经验吗?
董国兴:可以提出一些SQL帮助一些方面的改进,拿ORACLE来说,有一些新的系统技术,比如说高级复制可以引进去,不一定通过查一个远程表来做。
施伯乐:你现在做了很多都是政务工程,数据库采用什么措施?
施伯乐:我想这方面有很多工作,因为你们的指标很强的,一年下来在国外的话几千亿的钱都是通过人家把你的信息拿过去,几千亿的累计,我想这方面仅仅是这一点是不够的。
主持人:我看刚才三号选手在介绍的时候其他几位选手都很有思考的样子,若有所思,不知道有没有问题问三号选手?这可是一个很好的机会啊,几位评审老师都在场,后面交流也可以,下面四号选手王忠海进行陈述。
乐嘉锦:数据库设计过程中库结构设计是非常关键的,要考验扩展性以后的延伸性,原来用20位而你提高到25位,而公安部到23位也依然好用。如果用20位你用25位是否浪费了资源?
王忠海:我们也不是说设计成5X4000,也不是这么设计的。
乐嘉锦:第二个问题,你设计了第一个项目是120张表,每一张表都符合第三泛式吗?
王忠海:对不起我的专业是学习无线电,数据库原理我懂不是很多。
乐嘉锦:数据库泛式模式是什么你不知道?
王忠海:我主要是从库结构这方面设计,我是根据业务的要求来设计表,因为我理论知识不是很多,但我是对数据库了解的比较多一些。
乐嘉锦:那你设计的是伊拉图(音译)了?
王忠海:我不是设计的伊拉图,因为分了很多部门的设计,是用主存的关系还是放在一张表中我考虑的比较多一些。
乐嘉锦:ORACLE数据库要你去优化,你的步骤是怎样的?
王忠海:从实际优化的经验来说,一般是我们的系统,如果是我们本身的系统,由于我们做了良好的优化,我们拿到一个新的系统的时候首先最简单的就是做SDOSKPAK(音译)的分析,然后根据ORACLE来分析可能存在的问题在哪里,如果全局都有这个问题可以先从网络上考虑,然后再从数据库操作系统本身考虑,我的习惯和前者不太一样,根据我的习惯是先去调整参数,因为我通常接触的是OFTP,所以说我习惯于调整参数,再去调整具体的SQL,如果说实际的参数没有调整先去调整SQL,发现不太合适再调整调整参数就会导致全盘改变。
唐世渭:我同意刚才乐老实说的你要提高数据库原理方面的知识,否则你根据用户需求,如果他有某一方面数据结合,对应有几张表,对这个问题你没有基本理论指导得话很可能你做出来的东西会存在问题。
王忠海:谢谢!
施伯乐:你有没有视图?
王忠海:有。
施伯乐:可不可以修改?
王忠海:不可以修改。
施伯乐:你唯一的缺点就是数据库规范都没有,我觉得你做的不少,实际做了很多工作的确很好,另外我还希望你提高一点,因为不同的规范有不同的问题。
主持人:下面还有第五位来自上海的参赛选手胡晶玉,大家可以看到他在屏幕的左上角,请他发言。
胡晶玉:大家好,我叫胡晶玉,我是上海IBM的,主要负责软件售后服务没有办法来到现场,我主要在我的工作体会中做陈述。我认为在以往的情况中有一种重硬轻软的现象,很简单的问题就比如说当他们发现现在系统性能比较差的时候最先考虑的是先升级他的硬件而不是升级他的软件。第二点,目前硬件性能提升很快,但是因为很多人他们的理论还停留在几年前甚至十几年前的水平,可以说他们在做设计的时候还用原来的理论。现在CPU的速度和内存的速度很快,如果还停留在以前的理论就会对CPU产生一种浪费,大家知道内存的不足会造成CPU的资源浪费,那么我们就要考虑到系统的优化,为什么呢?因为有些时候在架构上设计是不需要考虑的,当遇到问题的时候损失是非常大的,怎么来解决这些问题呢?我觉得有三个方法可以来解决这些问题,第一现在各个厂家都可以体现自己专业的服务,我觉得购买专业软件服务是可以解决这些问题的。第二可以采用TCH(音译)的值,这些都是各个厂家根据他们的软件做出来的,实际上是有参考价值的。比如说各个厂家都做TOC,这样对我们系统的优化是很有好处,因为我们知道买一个东西知道它能够达到什么水平,那么就按照这个水平来完善系统。我的陈述就到这里
乐嘉锦:你是DB2工程师就DB2的索引机制,你比较习惯哪种机制?第二个问题DB2机制跟其他机制有什么不一样?
胡晶玉:第二个问题我听清了,第一个问题没有听清。DB2在管理是通过CM(音译)这个软件来实现的,DB2主要是关系型数据,另外我觉得在DB2里面还有一个特点,可能大家都不会去用,就是层次性的表。对于其他非结构化的数据,比如说MTM页面、图片数据是通过CM(音译)来是的。
乐嘉锦:DB2的索引机制有几种,你比较习惯于哪几种?
胡晶玉:我觉得你所讲的是机制索引吧?
乐嘉锦:是的。
胡晶玉:机制的索引我不是很清楚他还分什么类别。
唐世渭:你不是做售后支持吗?你从售后维护这个角度来看,使用DB2在做设计的时候应该注意哪些东西?
胡晶玉:有一点,很多客户还会用S(音译),它把某一个字符代表某一个含义,这样做查询的时候就会用S,这样就会为查询留下一个隐患,我们知道这种S很难利用索引,即使利用也需要特殊方法,另外还要了解数据库的了解,比如说做大型数据库的时候,在DB28里面索引都是是很高的。另外一定进行一个优化,以及内存IO都要进行考虑,内存主要是W2做初始化优势。
施伯乐:你里面写的通过新老保证数据库仓库的性能?
胡晶玉:我们可以通过新老两套系统来进行,我们可以保证我们有两套数据,当新的技术切实使用之后可以停止使用老的数据,使用新的数据,这样可以保证数据安全性。
施伯乐:我认为这不是数据安全性的问题,数据库的安全性是另外一个问题,这是实现的时候把数据得不对称的事情,这两个不一定一样。
胡晶玉:谢谢!
主持人:让我们以热烈的掌声感谢三位专家的精彩评审,下面进入我们下一个环节,有请特邀嘉宾王小虎进行下一个互动讨论阶段。
王小虎:实际上当我们建设一个应用和应用系统不是从白纸开始的,现在越来越多的应用可能需要访问其他的业务,遗留或者正在使用几十年的系统,包括政府和刚刚提到的刑侦综合业务系统或者一些新业务的开发,这时候可能碰到一个难题,系统的选型可能是不利于做出来的,当我在此技术上在做一个整合就会面临一个数据整合的问题,通过什么样的渠道可以访问原有的数据系统,方式有那些?哪些应用会更适合这方面的技术?
董国兴:我说一下,有几个系统,国外的,在01年做的时候尤其到了地、市级使用量不大,有SQLServer的,甚至XML也有,都是由当地来写数据程序,但公安系统都是MQ的传输,MQ对实时性不是特别高的,当时是WET网,通是没有问题的,从省到市再到区县就基本上网络条件不是特别好,所以说很多情况下都是再收集数据的时候到省一级,然后从省一级到库里面是用MQ的。从检查院是连接ORACLE的SQLServer,后来做国际性SQLServer的模型,这样避免了从底层的数据交换,避免了IBM所谓数据整合的方式。
齐红胤:我觉得对于遗留系统的整合最好的方式就是找一个做系统的人提供需求做数据的好处,这可能是最好的方式,如果找不到人就要找到数据字典,进行分析自己来导,这样的话我们可以在关系型数据库中直接导出文本,直接对文本进行加载,如果非关系型系统我觉得是比较麻烦一些。
王小虎:实际上在关系型数据库更多是针对ETL来进行。如果不同遗留系统会发现不一致的情况下你怎么解决?
齐红胤:说明要做的事情就是对企业各个数据系统进行分析,找出重复的部分,之后和业务人员以及和以前开发人员一起来确定找到概念上的主数据,从而做到真正的ETL工作。
朱健彦:如果一般符合一些标准的话,我建议你放在原来的库里增加几个表,试图用这种方式来实现,如果说异构的话就涉及到用XML的方式来导。还有一个问题,异构方式还有一个问题,升级还带来一个问题,原来数据库不用了还是继续用,又继续要用的话我想应该用中间件和文本方式,我们一般用的是文本方式。
王小虎:谢谢!如果我对原有系统不能修改或者无法修改如何获得数据?不知道在线上的胡晶玉听的到这个问题还是听不到。
胡晶玉:数据交换从实际上看有这样两种方式。第一,需要手工来做,也就是说不管是哪种数据库可以先不考虑数据库的种类,把数据导出来,比如说导成一种文本或者大家可以接受的格式,任何数据库可以接受导入的文本。另外可以利用数据库的功能,我们知道不管是DB2或者ORACLE都有复制的功能,可以按照复制的定义达到某些数据的交换。第三种方式可以通过利用各厂家的产品,比如IBM的II,这是专门用在集成不同数据库的工具,通过II可以集成关系型的数据库,也可以集成一些非关心型的数据,比如说IIC产品。
主持人:下面的一个环节是有请我们的评审专家对此组进行点评。
施伯乐:我觉得五位选手都各有特色,有搞IBM系统的、还有搞技术和理论的,总的来说丰富多彩。我想数据仓库里面的问题可能有的要分清楚,要分清楚哪些是数据的问题哪些是数据仓库的问题,怎么整合。我想安全的问题还得考虑一下,希望应提高考虑一下安全问题。还有基本理论知识是需要的,为什么按有第三产值?因为发展太慢所以放弃。你不要说现在没有问题,将来出现问题怎么办?我想基本上的东西你们还是需要的。我就谈这点,谢谢大家!
主持人:非常感谢大家!下面我来宣布8月12日的评选到此结束,明天来由两场,感谢各位专家的参加,再见!
主持人:各位来宾大家上午好!欢迎大家再次光临“2006年中国首届杰出数据库工程师评选”的终选现场,我是中国计算机报的郭盈,下面介绍在现场的嘉宾,乐嘉锦老师、周立柱老师和周龙骧老师,一号选手王作敬、二号选手王明胜、三号选手牛新庄、四号选手甘荃、五号选手邹建,还有特邀嘉宾刘晶炜。
王作敬:大家好!关于数据中心建设的一些思想,由于数据中心建设是一个非常复杂的系统工程,而其中的一个矛盾就是长期的基础建设与短期见效矛盾的解决上,这个问题处理不好很容易造成整个系统出现问题甚至失败,本人认为虽然这不是1+1=2就简单而明确的问题,但是还有一些方法可以借鉴的,那就是整体规划分布实施。所谓整体规划就是把数据中心的建设基础打牢,我们通过建立公司的业务模型并使用数据建模工具来构筑整个公司的标准数据模型,在此基础上再构建面向各个主题的数据,按照我的经验,整个数据模型根据每个公司的不同,大致分为四个层面。所谓分布实施我认为当模型建好以后,既可按照轻重缓急分布立项来分布实施,华夏就是利用这种方式来组织实施的,实践证明效果也比较理想,以上就是在工作中的一些心得体会,请各位领导、专家指正,谢谢!
周立柱:你能简单的说说这些数据模型的差距吗?就像最高层,应用的是最高层,你说分了若干层,底下那层是什么,说说这两个层面有什么区别?
王作敬:最底下就是面向数据源的,是从原始数据抽取,下层是构建企业的标准数据层,这层主要是给业务处理不一致性规避,然后监理公司级的标准,在这个基础上建立数据级式,如果从标准层到数据级式层的环节多算法比较复杂的话,我建议倒是在这中间再建立一个ODS层,谢谢!标准层和基础层区别应该是面向业务的,而数据级式是面向主题的,对标准层实际有不同的说法,有的可能是面向级式的模式,我倒建议应该是一个ER模型,但对ODS这层来说根据实际情况不同可以结合SB模型和ER模型。
乐嘉锦:你在做ODS的时候不用ER模型吗?
王作敬:ODS模型是这样的,理论上说一般在数据仓库按存的数据仓库来说一般用FD(音译)比较多,但在实际的情况可能不是这样的,我们在华夏基金包括在现在的研究所FD是和ER模型相结合的,如果是一些力度比较低的,关于华夏的项目有这样一些情况,在标准层上建立的不完全是面向主题分析的应用,例如它的风险控制和审计这方面要求是对业务的力度进行分析,这样我们在实际工作中用FD模型不是特别合适。
乐嘉锦:我问的是不管是ODS层、数据级时层或者数据仓库层,概念不同得时候都是用ER模型吗?
王作敬:是这样的,只有级式用的是FD。
乐嘉锦:做级式的时候就不用ER模型啊?
王作敬:完全用的是ER模型。
周龙骧:看材料你是学数学专业,学完以后才进入这各行业,你觉得这样有什么优点?
王作敬:逻辑思维主要是比较严禁的,但有另外一个缺点,有点古板,我也感觉我的经验主要在这么多年的实际经验上,欠缺的是对计算机的基础功底比较弱,谢谢!
周立柱:你是学数学的,在数据分析上有过研究吗?
王作敬:对这个标准的建立肯定要进行业务分析,我们就是从业务分析开始的,然后构筑一步步建立标准层和数据级式。
主持人:好,那么其他选手有没有针对一号选手的问题?OK,下面请二号选手王明胜进行陈述。
主持人:谢谢二号选手的陈述,请评委老师进行提问。
周立柱:我看了你的简历是副总经理,领导啊?
王明胜:算吧。
周立柱:你还动手做事吗?
王明胜:做,一些关于安全的东西还是我来主持。
周立柱:同时你觉得在用国外数据库产品的时候觉得国内的数据库差别觉得还有哪些需要提高的地方?
王明胜:简单的做下对比,在开发中用国产数据库对我的开发量会带来一定的加大,再一个商用数据库提供的组件特别多,而且有些机制也比较完善,但用国产数据库我就会在应用当中消耗很多东西,就像在存储上同样的数据结构不能放在同一个表中,要隔成20、30个表来处理,这是从开发商来讲,从实用上来讲就是外部组件,尤其是面向管理人员操作人员不是像上数据库提供测试工具交互工具等。国外的数据库普遍都支持存储设备,国产数据在这方面遇到一些问题,现在最新我们用的是北大(音译),以支持表空间了,这样可以化解我在存储上的问题。
周龙骧:刚才你说到很多数据模型,现实实践太复杂了所以用模型来描述,最直观的就是树型模型,后来出现了关系模型,就是把一些节点之间的联系去掉了,本来描述的很好的,为什么现在用关系模型来描述数?
王明胜:我认为关系模型对处理商用模式是比较好的,再处理一些商用逻辑大批量的查询的话,大数据量查询的话关系型数据库还是比较有实用性得。
周龙骧:可是ADSM到现在还在用,最主要的就是这些。
乐嘉锦:刚才你说做数据仓库的时候是靠模型驱动不是数据驱动,你这个模型跟主题有什么关系?
王明胜:我说的模型基本上就是应用模型,因为我在建的时候大致也分了几个层,首先就是原始数据,但有一点不同,我这儿有些存储是按单元存储的,也就是说对于数据来说我就是一个记录,然后在上层进行结构化,在结构化的过程中我根据它的业务模型或者业务需求来结构化我的数据,结构化完以后相当于一部分带有商用信息或者业务信息的数据了,在这个基础上构建他的模型,也可以用于直接展现。
乐嘉锦:不是先根据主题去建模型去找数据吗?
王明胜:对。
王明胜:比如说今年5月份报表要上了,我首先要分析有那些数据,然后先抽取再结构化。反正是根据他的业务需求走。
主持人:下面请三号选手牛新庄陈述。
周龙骧:刚才你说在应用中反而回过头来学习一些基础的东西,这一点我感觉到,你能举个例子吗?
牛新庄:比如要选择一个SQL语句,但一时不知道是怎么取的,现在在看SQL的时候就知道要看一系列做一些优化的分析等等,但这些东西在过去我们都不知道,但和书本上一对就知道原来这是这样。
周立柱:你现在的工作是独立咨询顾问,就是非常独立不依赖其他公司吗?
牛新庄:对。
周立柱:高科技个体户这个比方对不对?这个工作多少年了?
牛新庄:对。我2000年的时候接一些项目开始做,那个时候就开始了。
牛新庄:我觉得最重要的是数据库的性能调优,还有就是安全。性能调优有类问题,比如说数据索引、SQL,大的项目都有这么几个共同的特性。
乐嘉锦:请你简单介绍一下性能调优一般采取的步骤。
主持人:下面有请第四位选手甘荃进行个人陈述。
甘荃:大家好!我是中联集团的甘荃,我所做的事情主要有DB2、CSS、MQ以及ORACLE的产品,我所从事的项目主要是做银行核心系统,就是说在综合系统主要的功能主要是由OLTP的功能,有一部分叫做查询和打印的功能,OLTP的事物和查询的东西并存的时候会使得我的系统性能有很大的磁盘、IO、CPU会很忙,为了处理磁盘的性能以及CPU上的负载,我们使用了数据库的分离技术把数据库一分为二,也就是说把我的数据库上实现OLTP的事物,其他数据库去实现SQL的查询和打印功能。我们目前实施的在江苏项目里面,江苏省农联社和陕西省农联社里面都已经使用了,目前正准备知识的有工商银行还有正在设计的,叫烟台商行的系统里面,也正准备使用数据库的分离技术,数据库分离的技术可以从几方面去做,有一种使用的是纯硬件技术,还有一种是使用纯软件技术,还有是手工去做。其中第一种,比如使用了IBM的ESS的FLASH拷贝(音译)的技术,比如DB2的复制技术。手工我们可以用备份源的思路来实现。
主持人:下面请评委老师对甘荃进行提问。
周立柱:你是技术总监,中联集团有多少人?
甘荃:700人吧。
周立柱:你做的工作跟江苏省都有关系,肯定公司在北京?
甘荃:对。
周立柱:我看你的材料中写了一切程序和脚本,这些都是你写的吗?
周立柱:作为技术总监你的责任一定是很全面的?
甘荃:我主要是负责客户第三方软件服务这块,做技术支持。
周立柱:一共有几个技术总监?
甘荃:有7、8个吧。
周立柱:你是唯一一个女的吧?
甘荃:有的,我们的总经理还是女的呢。
周立柱:怪不得呢。
周龙骧:你做得事情很多,但是你的表达能力还是有一点欠缺。你们现在在做技术支持,像有名的CRP软件,国际上有名的一些软件你们了解怎么样?
甘荃:我们主要是使用CSS、MQ、DB2、ORACLE这些产品,其他的产品接触的相对还是比较少。
周龙骧:你们的企业还不是很开放,好多事情都是自己封闭起来自己做,有效的东西如果用的很好的话一方面可以节省力量,另一方面可以和国际接轨,昨天有很多企业都提了这方面的希望。一方面要站在别人的肩膀上往上走,不是说什么事情都从头做起。
甘荃:是的
周龙骧:一个企业的力量还是有限的。现在国际上非常有名德国的SAP公司,你对他们有什么了解?
甘荃:这方面我了解的很少,可能我这个人做事情比较专业,其他外面的东西做的或者接触的比较少一点。
周龙骧:我觉得你们做企业应该有一个全新装置,以前唐院士是三峡工程的专家组组长,有一个工程系统没有一个公司接,还是国外公司接,如果这样做我们国家永远都起不来,如果都用外国人干是很不理想的。
甘荃:谢谢!
乐嘉锦:你的材料上也写了把一个数据库分拆成两个来用,实际上就是两个不同的系统了?
甘荃:我写的材料上是我在做的中游和黄的那个项目里面,有几个系统共用了,由同一个数据库做,系统会很忙,需要把一个数据库分离。今天我所说的是把数据库使用起来的一种思路,主库和存库是同步的一个和两个数据库的数据都是一样的,属于另外一种思路。
乐嘉锦:逻辑上是一个,数据同步就是应用对折这个数据来做的,逻辑上是一个吧?
甘荃:在物理上完全分开。
乐嘉锦:如果是两种完全是变成两个不同的系统了?
甘荃:把功能上分拆了,把应用的功能分离了,就使得我的数据库负载被分散了。目前使用的我觉得还是使用很多的。
乐嘉锦:我相信你这个系统肯定在运行了,只是分拆在做,是建设一个数据库或者两个数据库呢?
甘荃:实践起来我们分几种方式。第一种,我们一般使用叫做存储的技术,比如用IBM的FRS拷贝(音译)的技术,用磁盘的技术实时写两份技术。还有从DB2的技术来实现,实时把主库的数据抽过去,还有就是手工移过去。
周立柱:我觉得你说的东西技术手段可以理解,你这么拆分以后原来的数据系统要不要变?
甘荃:不要变。我修改的地方还是有的,只是在客户端上指向的IP地址需要修改一下。
周立柱:牵扯到打开数据库,但数据库的数据都不要变?
周龙骧:相当于几份拷贝,这就会有一致性的问题,这两个拷贝是不是一致的?如果有修改的话这两个就会不一样了。
甘荃:我们不让它改只是运行、打印
主持人:谢谢甘荃!下面有请视频选手五号邹建陈述。
主持人:请评委老师对邹建进行提问。
周立柱:你现在做DBA做了一年,负责数据库是哪个单位建的数据库?
邹建:是我自己公司的。
邹建:因为在我这边严格说没有非常重大的事件出现,应该说最大的问题就是服务器宕机了才是最大的问题,因为我们有备用的服务器系统。到目前为止我工作一年还没有重大问题出现,有时候宕机了的话会利用美国那边的技术处理,对宕机的情况我们这边是没有办法处理的。
周龙骧:我的问题是你们建立的那套系统从头到尾都是自己建立的还是说利用一些现有的工具把它做出来?
周龙骧:你的监控系统是在什么层次上面,比如说出现问题是给一个信号还是可以初步的处理一些事情?
乐嘉锦:做数据库的备份和恢复要自动化处理?你要用到工具,这个工具是你自己做的还是美国公司提供的?
邹建:监控这套工具是我做的。刚才我已经提到了我用的是ASS做的。
乐嘉锦:做自动化的工具代码要有多少行?
邹建:这个工具会包括两个部分,第一个部分是XIS(音译)包,第二个方面是数据库中的存储过程。大概用了XIS(音译)中的脚本组件,从被监控服务器到被监控服务器是通过组件改写的,这个代码行应该不超过200行代码行,存储过程的代码行就比较多,每个存储过程大概超过1000行的代码。
主持人:下面我们进入下一个环节,有请特邀嘉宾刘晶炜先生上台进行互动讨论。
刘晶炜:很高兴各位的陈述和回答,大家在数据库这个领域中应该有各自的专长,下面的讨论会关于提高的陈述和专业店展开,在座的五位至少有三位在数据仓库和数据分析领域比较广泛。先从概念入手,您在自己过去经验中是如何认识什么是数据仓库,什么是数据级式?以及刚才你们提到的从构建这套系统里面业务需求的获取或者数据驱动数据实施方法论上面的异同点在哪里?
王明胜:我先说一下我的理解,数据仓库实际上是一种技术而不是一个产品,相当于把应用的业务需求以及我的数据库存储包括第三方的分析工具等等进行综合然后来为客户提供服务的应用模式。对于级式的概念,我一直认为网上或者资料上没有明确的定义,通常都是通过业务的分层自己来定义可能这块数据是共用的,而且是一个指标,放到级式这一层可以公用,实际上是从应用分层的概念上做一个范围的划定。
王作敬:我认为数据级式BLP(音译)的一种技术,从数据仓库来看我认为是面向整个企业级的数据源或者基础数据,数据仓库是面向部门或者主题的级式。我还是觉得在构建级式上数据还是在它的准层上建立尽量适度的模式,我建议还是用ER模型来建。而级式上有它不同的特倒是用FD的方式比较好。另外,什么是最好的数据仓库呢?我个人觉得不是纯而又纯的数据仓库,而是满足企业需要的这样一套数据仓库就是一个最好的数据仓库,谢谢!
牛新庄:我对它的理解是,我认为数据仓库首先是有需求驱动的,确实产生大量的数据,怎么样能做一些更细的划分,像一些大银行的VOIP一些东西,首先他是有这方面的需求。在数据仓库中,我个人感觉一定要注意需求的理解、需求的驱动,还有需求的时效性,业务的正确性,第三点要在数据质量上得到一些重视,我个人感觉数据是最重要的。谢谢!
刘晶炜:我觉得各位的谈话有一点的启迪性,这里面你们谈话的ER模型,其实在数据库只要你用关系型数据库基本上地的都是ER模型,在这个行业中很多的准则,也经常探讨数据仓库级式里面SFS模型,你们提到一个关键的问题,数据库模型面向管理对象分析业务人员现在很多在用,怎么样让一个数据分析系统让它相对比较稳定,有没有层次,如果有层次他的层次应该怎样划分?
牛新庄:我个人感觉是这样的,因为很多时候需求是多变也是正常的。过去我们碰到这种情况,在构建模型的时候要找业务人员沟通,但是业务人员本身不懂技术,对需求的描述可能不是非常的详细,这种情况下可能造成按照他的需求报表,我个人倾向现在对各个行业我们能不能利用一些成熟的东西做一个相对稳定的信息模型,有的时候借助与这个环节对企业构建数据仓库会起到事半功倍的效果。如果让我们自己在企业内部搭建这种模型的话可能需要很长的周期性,而且也不能看到全局性。
王明胜:我改变从实际做系统的角度看层次这个问题,大致我现在分了三层到四层,第一层是业务数据包括手工录入的数据,比如散的数据信贷的数据要各方面共享就需要拆开存,业务需求的变化我怎么来做呢?要是的表也好,要求的指标也好,我都要求他们去定义,当然这种定义的标志语言现在没有规范,我自己定义一套,定义这个时候实际上完成了两个过程,一个是完成了加工过程,第二确定成型过程,再上面就是OLP的模型了,在这面我们COMW的数据。
王作敬:关于需求驱动我们在华夏的项目是采取几种方式的,一种是用调查问卷的方式,向业务部门进行调查,主要是建立企业业务模型,比如说从要素方面和产品方面向客户展开,让业务人员用通俗易懂的方式比较好的达到沟通。另外,我们在建立数据仓库的时候还是面向整个数据的层面,因为分析主要是三点。第一,现有的业务是怎样的。第二,因为是集成还要对现有的技术系统吃透。第三,还要对未来变化有前瞻性,这样做出具有前瞻性的分析报告。从这个模型来看,至少要建立三层,原始映象层和标准层我觉得还是需要的,根据企业的情况不同,甚至可以达到业务的原子力度,存储的问题倒是一个问题,因为的企业数据量比较大,我建议根据实际情况分为两到三层的存储方式。主要业务比如对标准层来说可能放在更高级的存储上,可能用次一点的存储设备,最后比较长的存储数据可能利用磁带的方式进行存储。
刘晶炜:我们还可以讨论具有现实的意义,比如你今天做了华夏银行,如也许明天可以去中信银行,哪些东西可以被重用信息标准化在你们现有信息利用方面你们是怎么考虑的?
王明胜:对于我的经验来说希望信息层基本上不用动,我的数据不是在抽取中原封不动的拿过来,整个我的定义层包括表结构的定义都是我让他们来定制。最后一层KBO这层需要变,对于整个大架构动的不会太多。
王作敬:我觉得验证的方法应该是一致的,一般的企业都会有产品和手段,根据这个基础构建业务模型然后再构建数据模型,数据模型的建立对不同的银行要有一些调整,根据不同的企业可能不需要标准层直接需要ODS层在这个基础上再构筑数据级式,在我这个两个项目有两点的考虑。这上面我构筑数据中心的应用不纯粹是面向在线分析OLP应用的,比如证券行业和金融行业在这个时候用OLP的应用是不合适的
周骧:刚才刘老师提到行业的问题,有各种银行,涉及到的术语应该考虑,还有框架和共用的东西,这些方面你们现在在应用当中是否都考虑了?
王明胜:共用的话通常上级机构这部分能共用,比如银监会,大额小额支付的,从我们开发商的角度来看,肯定在这方面也会考虑的比较多一点,因为一方面对我的软件生命周期来说是有好处的,另外对我二次建设的成本也会有所下降。另外在选型方面,这么大的东西毕竟不可能自己完成,在选择产品上我会选择我集成的产品使它将来的变化力度也大一点,或者给我的支持力度也大一点。就像现在我支持的东西选择CK(音译)占用的领域比较大,为什么我们也采用了国产数据库呢?其实是想从头到尾尝试一下国产数据库。这么选择一个是对国内软件的支持也是一种呼吁。另一方面能在支持上和针对特殊行业的改变支持上能好一点,比如说很简单的,要求是ORACLE或者IBM,针对这个应用给我来个真正东西吧,他肯定不会给,我们选择国内的数据库是好,你给我做些优化改变是可以做到的,这是我在我建设中考虑的几个方面。
王作敬:关于架构的问题我觉得国内是一种趋势,在项目的建设中对不同的行业,按金融领域来说肯定有共性和不是共性的地方,在中心建设上面我们建设了除了业务应用之外还建立了两个平台,一个是管理平台另外一个是数据访问平台。管理平台主要进行一些管理、调度和认证,访问平台恩是有关数据中心建设是提供其他公司的数据源,主要提供数据访问和数据加强,在这个平台上统一完成了这样的功能,加强了这一层以后就屏蔽封装了后台的差异。另外关于应用方面的考虑我们引进了基础平台建设的概念,也就是说我们讲基本的东西像应用的一些通讯、数据加密和认证,数据库我们做在基础层上做了封装,而在应用层上做了一个构建化的处理,形成业务构建,如果将来的业务发生变化可能只是对增加新的构建或修改原有的构建再通过基础架构平台完成通过对他的管理和调度来实现新的应用。
牛新庄:基本上在这个问题上的认识跟他们两个观点相同。
刘晶炜:现在针对甘荃来问一个问题,关于性能和数据库的效率,不光是在你们的系统,有的可能是交易性的负载,有的可能是查询类的负载,各自有限级也不一样,在这方面来说从你们来看从现在来看你过去用过什么技术,哪些技术是直接用数据库的技术?有什么优劣?
甘荃:我们会使用从数据库的配置上改一些东西,还要优化一些语句,还会对CPU及其他设备上解决问题,最后把它分离出去,我们主要是用这些思路来处理问题。
王明胜:我觉得在应用层面如果别出太大的问题还是能让开发商接受的,最主要的是你的IO、数据库磁盘一定要达到一个平衡。
主持人:下面我宣布本次评选到此结束。
主持人:现在开始第六场评选,先介绍一下选手,一号选手是李强、二号选手丁思非、三号选手袁春光、四号选手常红平、五号选手钱彦云,五号选手是不能到现场的李强。下面有请一号选手李强进行三分钟陈述。
周立柱:我问你一个技术问题,在你的材料中第三个项目中,你能不能具体说说它的难点你怎么解决?
周龙骧:在你的陈述中提到对DB2的升级,DB2新的版本正在推,DB2第9版,你怎么看?
李强:这个话题对我们做主机的是一个比较严峻的话题,现在来说甚至有的银行没有运用DB2,有的还在无用DB2的版本7,现在在国外很多银行也是升级到版本8,现在版本9现在只是出了BT(音译),而且还没有公布,我认为对我们做主机上的数据库来说,坦率的说我觉得这块的影响有待观察。因为,现在对于主机来说应用性或者兼容性各方面可能不是最重要的,最重要的是可恢复性和安全性。我现在没有看到使用DB2V9和进一步了解,但我所知道的各家银行仍停留在版本7,现在刚刚向版本8升级。
乐嘉锦:DB2中的缓存机制跟其他数据库的缓存既知又什么不一样?
李强:我认为是这样的,数据库除了DBP(音译)之外还有调法,首先是物理设计,要符合规定,比如说用DB2的BDP(音译)的首次分配有多大,根据我们的经验是首次分配是二次分配的1/4,怎么样选择你的索引,另外是否使用组合的索引,多列组合构筑索引也是一个考虑的范畴,因为多列组合的话从性能来看会更好的提高性能。
主持人:谢谢李强,下面有请第二位先手丁思非陈述。
主持人:下面有请评委老师对丁思非进行提问。
周龙骧:从你的材料上看你现在还是在职硕士,就是说先参加工作?
丁思非:因为本科生的时候本来可以保研,但我放弃了,直接上了做计算机的所,做技术人员,大概做了几年以后又回到学校中去学习理论知识,现在学软件工程。
周龙骧:导师是谁?
丁思非:现在是赵亚伟和杨大川。
周龙骧:是处于怎样的一种动机呢?
丁思非:当时老师说要培养懂技术、精管理会做人的人,尤其上研究院的时候发现很多中科院的老师他们都有很强的基础,他们再去学习理论会非常快,对我将来的工作也具有指导作用。
周立柱:在你的第一个项目中,建立了一个很好的信息系统的数据模型,你能不能简短的介绍一下这个数据模型是个什么特点?
丁思非:我觉得这是我最近一年多一直在做的事情,我们是在咨询公司中做预算的,这个模型是数据模型为核心,从领导制订决策部署下面预算执行和预算分析报表中的一个环,其中有两个叫做模型的,一个是如何建立OLP(音译)数据库,另外是间隙企业绩效管理流程的模型。
乐嘉锦:你多次讲到OLP数据库,这是怎么定义的,这个数据库怎么叫联机数据库,是为OITP做的还是怎样?是口误还是确实存在这种概念?
乐嘉锦:上一场讨论还蛮清楚的,或者是ODS层的库,或者是数据级式,或者是数据仓库,然后在这三个层上做OLP。
丁思非:为什么我一直在提创新呢?我们是利用了OLPServer去做了业务数据库存储的方式做的。
乐嘉锦:学术名词也在创新?这样我们就没有办法沟通了,我觉得有些东西可以创新,有些东西还是创新不了的。
丁思非:对对,没错。
主持人:下面有请第三位选手袁春光进行陈述。
周龙骧:刚才你介绍里头说到首先是进行逻辑设计,然后下一层是应用设计?
袁春光:对。
周龙骧:一般我们考虑是从根据应用需求进行概念设计,然后下一层是逻辑设计,再是物理设计。你怎么把逻辑设计跳到应用设计的前面去了呢?
周立柱:非常高兴你在谈论性能的问题时候有反谈的问题,如果你看一些书的话书里面已有这个事,另外你谈了索引问题,除了这些你还有什么经验,再给我们介绍一条。
袁春光:比如说最后一条简单化的一条,遵循一个简单的原则就是根据MQ再进行调整,看起来很复杂,但真正做起来确实很简单,有些人很挠头,真正贯彻了基本原则以后可能解决起来很简单,谢谢!
乐嘉锦:在你材料中讲了比较和数据库之间的操作关系,我们常说数据库新开起来可能有很多缺点传输就开始用了,等慢了以后要调整了,这时候调整往往是调整数据库内部的传输,我的意思是说数据量大的时候会影响数据库的传输,什么时候影响操作系统上的传输?
袁春光:数据库运行的平台肯定是在操作系统,比如操作系统的缓存使用,缓存是一个重要的方面,数据量大了以后这些会带来很严重的问题,虽然现在有自动配置的概念,但也不应该能完全解决这个问题,比如缓存数据库是一个很重要的方式,内存从哪里来呢?还是由操作系统来分配,整个就影响到数据库的使用,比如里面对内存的使用方式有些工作数据,有些文件数据,这些数据在操作上有不同的限制,这些限制直接影响到数据的库操作。IO也是一样,操作系统采取预取的策略,这些也存在IO的性能、平衡的问这两个层次支架的协调、交互很多时候是被DBA所忽略的。实际上很多问题源泉在于操作系统,虽然操作系统好象并不是非常的明显,但却是源泉在操作系统。
乐嘉锦:这这个回答肯定是不会错的,但操作系统在设置的时候基本上定了,如果数据量大了会有影响的话应该在开始时候没有设计好,我们调整大部分还是调整数据库内部的调整,但有的也不排除另外的情况,是操作系统有些地方的缺点,如果经常动操作系统肯定是一开始的时候没有设好。你说的完全正确,如果开始没有设计好操作系统的传输,不是因为数据量涨了而产生的。
袁春光:数据库使用的类型也会对操作系统有影响。
常红平:大家好!今天想跟大家谈谈我在从开发流程角度大型数据库方面的心得,大型数据库开发面临的一些挑战包括模块比较多,人员也比较多,甚至不在一个地方进行开发,第一点一定要按数据库功能创立多个数据库环境,如果是很复杂的话创建越多,最基本至少创建四个环境:开发环境、生产环境,管理环境,生产只是支持环境。开发人员在开发数据库上应该利用最大权限,在测试和生产数据库上应该有很多的权限。在生产数据库上开发人员的权限,只有发生问题需要人员参与的时候才由经理批准之后才可以,一个是代码管理一个是保障了开发数据库的稳定性。要有一套完善的代码模板和代码规范,代码模板可以帮助开发人员,所有开发人员都是同样的风格。要有一套完善的版本管理的规范,包括在提交代码之前要确保代码是可以运行的,提交之前要由资深开发人员审查代码。还有就是要有比较完善的文档管理,要加强沟通,因为人一多够非常重要,模块比较多的话,我的经验认为,要把模块分开,最后要加强回归测试。
周龙骧:你刚才讲的拉几个经验都是常规的,这是你在工作当中总结出来的经验还是从书上学来的?
周龙骧:在你们的工作中特别是文档管理有什么体会吗?因为在科研学校文档就比较乱,在你们公司的开发中文档管理要强调什么?
常红平:首先文档要放在一个公共的地方,我们用的工具是WNOS(音译)来存取文档,文档的版本也需要管理,如果需要变更的话需要文档版本号还要指出文档的BUG在什么地方。
周龙骧:人员的变动是不可避免的,人员变动以后如何保持运行正常?
常红平:您的问题非常好,我们业务分布在新加坡也有美国,我们加起来有100人分布在不同的地理位置,人员变动确实是不可避免的,但是我们要求所有的开发有完善的文档,我们统一代码规,某个写一个代码其他人是可以维护的,所以我们不怕人走。
周立柱:做DSW的时候我看你的项目的数据量极为庞大,有没有数据的概念?
常红平:并不是很庞大,有3、4个表大概在700、800万条数据,因为汇表非常多,另外数据库的环境也比较多,除了开发测试以外可能还要用到SP(音译)和其他的数据库互相交互。
周立柱:我看到你是高级软件工程师,对再生对数据库方面知识来说我猜想你不是唯一的,在你们的队伍中应该还有别的在做。
常红平:是这样的,因为项目要大的话分工也会比较明细,我是负责开发的,重要职责是带领我的团队开发,保证工作质量保证工作进度。
周立柱:我看到你在跟德国一家公司采用用金计算,我看到有一部分非常复杂,如果说再大还能做的到这么复杂吗?
常红平:确实是这个问题,当时访问的时候全部都是四个量,是用到4个G,如果数据量再大的话就会选其他版本。
乐嘉锦:你们使用动态SQL怎么提高性能。
乐嘉锦:但你上面写的不是这样的。
常红平:对不起,可能是我的笔误吧。
乐嘉锦:你是说动态SQL的性能是很难提高的?
常红平:对,是这样的。
主持人:下面连线一下钱彦云,请你做自我陈述。
周龙骧:你刚才提到在有的时候为了提高系统的灵活性要进行反规范化的做法,规范化的目的主要是防止信息丢失,现在你按是反其道而行之,你怎么知道信息丢掉了呢?
钱彦云:对于这种操作一般在生产系统我们都会使用泛式化的操作,这样保证数据库质量不会有异常数据进入我们的系统,但如果进行立体操作数据质量一般在EPR阶段控制数据的有效性的,进入数据仓库以后,尤其是需要多表连接的时候还是需要反应磁盘操作有些时候我们要把一些比较大的表在数据仓库中进行合并。
乐嘉锦:在你的材料里面写了ORACLE的设备有时不稳定,有时会失效,我对这个问题有些疑问,在什么时候会失效?如果真是这样的话ORACLE应该给我们赔钱了,我们用了它的触发器老是不稳定,会有这种情况吗?是程序不稳定还是ORACLE提供的东西不稳定?
周立柱:在你的申报材料上有一个工程师应用创新谈,第一页里面谈了你做的一个项目,一个叫数据仓库使用的NCR的解决方案,但又用了ORACLE关于数据引擎,多维数据库展现又跑到微软的Server2005年,有一句话说过三种数据库是异构的,带来有趣的问题,下面说如何解决ORACLE的办法,一句话采用文件接口方式,这是异构数据库采用最常用的方式,我觉得这个太普通了,我想知道这三个公司三个大产品合到一起去碰到一个应用里面有趣的问题,你应该讲到一个真的有趣的问题。
钱彦云:首先材料没有说清楚,我们公司的ODS系统实际上属于我们的一个上游系统,在我们的系统内部只有ORACLE和SQLServer两种数据库,作为上游公司我们和他们之间就是一个数据接口,NCR采用了文件接口,我觉得异构数据库之间比较有趣的问题,就是充分利用各个数据库的特点,像SQLServer的应用型很好,界面也非常好,我们可以用来作为前台的展现应用,像ORACLE它的数据引擎效率比较高,而且对海量数据的支持也比较好,对于初始过来之前的大量数据都是采用ORACLE来处理的。对于异构数据库来说,现在异构数据库之间的互联已经非常容易了,我觉得充分利用他们可以集成到一个应用里面去。
周立柱:接着再问一个问题,我觉得你干吗那么麻烦,如果我是企业的老总的话就会想到一个事,投资大了,买三套产品带来这么多麻烦,什么原因导致你这样做?
钱彦云:使用异构数据库会造成一定的麻烦,但是我们这个项目的特点是这样,对于ORACLE这个产品来说他的关系型引擎和OLTP的服务器是他的两个产品,我们需要分别购买,目前我们的设备投资只是他的常规关系型引擎,对于SQLServer2005来说它的价格比较便宜,我们主要是考虑经济运算。
刘晶炜:听了各位的陈述,这一轮主要是实干,从在座五位都能够介入,其实是数据库里面很核心的问题来入手,数据库是解决问题的,资源是有限的,也就是CPU、内存、IO的资源,我现在只信问一个问题,从你们过去的经验中在不管是用哪种类型的数据库有那些策略更好利用内存资源,以及今天把视野开拓一点,今后业界的走势你们是怎样看的,比如说IO的调整和其他方面,这样会给各位一个比较宽泛的发挥空间。
刘晶炜:你刚才提到多维方面的技术,我针对你这一点可以给你一个补充,你讲到SBS里面有两个层面,尤其是多维涉及多个层面,尤其是非常强的数据压缩。
丁思非:现在有很多的压缩方式,这样也可以很好的提高性能。
袁春光:我简单说一下这个性能,性能从我的经验来看主要是抓住应用的特点,应用多、查询多、更新多等等,根据这些应用的特点对各种资源的利用情况也不大一样,同样的资源,内存资源在数据库里面又有不同的利用方式,咱们应用了不同特点就决定了数据库里面哪个层次对内存用的多一点少一点。IO也类似,最主要的特点就是平行、并行的问题,在并行的情况下极大提高IO的访问量,最大的特点我觉得还是应用的特点,抓住了应用的特点就抓住了性能到底在哪个地方可以进行操作。
常红平:用我的经验来说,如果提到IO首先考虑到的是数据库参数。第二点就是一个建表的问题,再往下就是根据应用创建索引,同样的需求同样的索同样的数据库的情况下如果SQL语句列不一样的话性能也会发现变化,这里也涉及到不同的查询方式。最后,在数据库方面性能是一定,对于整个应用上也是一个考虑方面,怎样用数据库。
刘晶炜:钱彦云你刚才提到的一个问题也提到了第二个点,在内存方面体讲到并不是越大越好,这里面涉及到各家数据库厂商如何动态考虑内存这个领域,动态管理内存过去很多技术是预先预留一块,现在很多趋势都往这个方向发展,你们有没有利用这方面的应用。
钱彦云:目前我们的应该是ORACLE10G,在这上面我看已经实现了自动划分,但和操作系统之间还是要提前预留的,虽然它的有关一个参数可以设置SXT(音译)最大可以达到的氛围,但还没有做到像您所说的在安装过程中会自动选择最优的内存空间。
常红平:在BD2V9中有一个非常好的性能是自动优化内存,现在DB2管理还没有完全动态管理的功能,尤其是7×24小时的管理动态管理是非常危险的。
袁春光:刚才这位专家已经说过了DB2内存调整的特点,因为现在V9正在推,我觉得他遵循的原则是比较标准比较普通的,具体到各自的应用特点,尤其是一些访问量比较高的,特点都很明显,这种自动分配自动调整就不大适用,我们还是要做恰当的分配才能适应需要。
丁思非:从ORACLE的角度一上来可能就把内存占完了,不断使用内存,SQLServer源下说是可以动态管理内存的,但实际的经验我见过把内存占完了就不会调整,需要重启机器。现在我觉得这个技术比较新,虽然各家厂商说自己能提出解决方案,但是这些算法不一定非常好,我们不一定他说什么我们就听什么。
李强:在IBM大型机上情况有点不一样,因为在IBM大型机制上面数据库是直接和内存打交道的,由于要管理好内存,在主机定位上要考虑一个问题,到底哪些东西要拿到内存中去,这些东西在内存中占的百分比又是多少,我们有这样一个的概念,就是一次拿一个页面。还有一个概念,就是顺序取,一次拿一大堆页面进来,如果是一次拿一个进来所占的比例多还是一次拿一大堆所占的比例多呢。如果这个业务只是一般的查询,这里内存中摆的越来越多的情况比较好,所以有一个参数叫VPSAT,把这个参数做的高一点。如果是做培训的,一次拿一大堆页面,这个时候就不要把单一界面的数据设的那么高了,所以说这是性能调整设计上的问题,这方面是需要经验的,另外IO,突出表现就是分区表方面的处理,这么大的表,表现在哪个盘上,这些都是考虑的,尤其是在做物理设计的时候。
主持人:谢谢刘晶炜,本场评选进入到最后一个环节,有请专家对本场评选进行点评。
周龙骧:我有一个感受,咱们在创新的时候一定要已有的基础上站在别人的肩膀上往上创新,而且一些通行的理论技术都是通过全世界的同行千锤百炼,基本上在这个上面创新的余地一般是没有的,所以说最好把精力集中在真正新的方面创新。以前我国有一些经验,算法语言,结果每一家开发出来的都一样,都想创新,但基本的东西都一样,低水平的东西反而不能一致,不能规范化、标准化,所以我们要创新就需要在真的新的领域上创新。
主持人:谢谢各位老师,关于数据库文学的话题还可以继续探讨下去。那么到现在为止“2006年中国首届杰出数据库工程师评选”终选到现在就全部结束了,谢谢各位评审老师!谢谢各位参赛选手!