CU访谈录之高峡 技术人员需要一颗永不泯灭的好奇心!
hello大家好,今天给大家带来的是2014年即将举办的DTCC大会中的演讲嘉宾高峡老师。下面就是本次访谈内容!
arron刘:高峡老师好,感谢您百忙之中抽出时间来接受我们的采访,首先请高峡老师简单介绍一下自己的经历以及从事的工作?
高峡:CU的网友大家好,我叫高峡,是重庆众意网科技有限公司创始人兼CTO,主持产品研发,市场开发,咨询管理,项目实施等全面经营管理工作,创新性的提出虚拟立方体技术,解决从二维数据库向多维数据集转换的通路,领导BI商务智能产品开发,领导实现电信行业网管商务智能项目。
arron刘:能不能给我们介绍一下您当时是怎么选择进入SQL Server这个数据库领域呢?
高峡:94年在做本科毕业设计的时候,接触到SYBASE,当时非常入迷,觉得数据库这个东西非常神奇,从此就一发不可收拾了;后来在IBM新加坡的时候做了SQL SERVER的数据分析家,主要做一个基本的报表分析;从2000年到美国以后,才接触到一些高层次的设计和系统的训练,同时参加了SQL SERVER的培训课程,再加上公司的业务数据库都是基于SQL SERVER,所以一直做到现在。
今天有朋友问到我中美两国科技企业大的区别是什么,美国的科技企业中每个员工都有一个Mentor导师,导师指导你如何正确的解决问题,如何调整技术思维,我的导师当时在公司兼职上班,一般都不来,来,就是公司出大事了,或者是大的架构调整,年薪是30万美金,我之所以在SQL SERVER领域有一些成就,都是导师不停的告诉我正确的思维方法,解决技巧,求知精神和一颗永不泯灭的好奇心!所以我建议如果对某个领域感兴趣的同学,好是找一个非常耐心的导师!
arron刘:我们都知道您是一名多面手,DB系列的东西都做过,包括DB Admin, Development, Architect,您能给我们简单介绍一下您眼中的DBA是什么样的?DBA这个角色随着SQL Server的版本更迭后,有什么变化?
高峡: 我先谈一下DBA的角色,在数据库领域一共有三种角色:
1. DB Architect 数据库架构师,架构师主要负责数据库的架构,包括数据库模型的建立,优化,用户行为分析,数据流程的梳理等等非常的数据主题;
2. DB Developer 数据库开发者,主要做SQL 代码的编写,所以对性能要求非常高,我们常常看到一些非常低劣的代码,比如EXIST,全表扫描,游标的滥用等等,这些都是开发者的问题;
3. DB Admin 数据库管理员,他们主要负责数据库24*7的UP AND RUNNING,数据库备份和恢复,磁盘空间的预警,数据库碎片的管理,数据库迁移,升级,数据库锁的探测,高损耗查询对数据库的损伤等等。
所以我们现在谈的DBA实际上是第三种角色DB Admin,数据库版本对DBA提出的要求非常高。接下来讲讲SQL SERVER的几个版本区别:
SQL SERVER 2005提出的分区,DBA必须熟悉各种分区策略和基准标杆,我以前在一个互联网公司里面工作,数据库的IO压力非常大,经常是10万用户同时在线,分区之后,IO一下就降下来了;
SQL SERVER 2008提出的PowerShell,这是微软推出的脚本管理语言,对DBA非常有用,比如这个场景,DBA现在有100台数据库服务器需要管理,需要做一个数据库空间消耗的报告,以便在未来做硬件规划,这时候PowerShell就有用了,轻松的一个脚本就可以得出这个报告;
SQL SERVER 2012提出的Always On,SQL Server2012中新增的AlwaysOn是一个新增高可用性解决方案。在AlwaysOn之前,SQL Server已经有的高可用性和数据恢复方案,比如数据库镜像,日志传送和故障转移集群.都有其自身的局限性。而AlwaysOn作为微软新退出的解决方案,提取了数据库镜像和故障转移集群的优点。
arron刘:总所周知SQL Server安全问题一直备受大家关注,在你的工作实践中有什么心得可分享?比如说根据企业自身的情况,如何设置一些佳的安全策略?从业界来说,通常配置安全的步骤和思路 是怎样的?
高峡: 安全问题也是SQL SERVER备受诟病的地方,但是有一些也是设计模式的问题:
1. 比如密码,信用卡号码的明文存取,这是一个大的安全漏洞,我的一些客户的IT审计部门对这里看得非常紧。
2. SQL 注入,这也是一段时间内在数据库层面上面发生的安全漏洞,实际上也是设计模式,因为命令参数和AD HOC代码的执行空间是不一样的
3. 数据库权限设定,我在一家公司里面,就有由于数据库权限分配不当,一个在线数据库无端被开发人员误删除,对公司造成巨大损失
数据库安全策略是企业应该关注的问题:
1. 资源列表,包括各种数据库资源,表,视图,存储过程等等
2. 访问权限,包括对上述各种资源的访问权限设定
3. 系统管理权限,包括备份,恢复,策略等等
4. Policy 策略管理是SQL SERVR 2008推出的一个非常好的特征,比如可以在数据库命名规则上面设定统一的规则权限。
arron刘:现在是一个大数据的时代,在实际的工作中,一般数据量大了以后,就不太好处理,你认为如何处理好大数据?在设计数据库方面,为大数据可以提前做好哪些 优化?
高峡: 大数据时代可能需要过很久才会来临,之前我们应该做一下准备:
1. 海量数据的思维: 一条SQL语句是如何执行的,返回10条数据或10000条数据的时候,执行方式会不会有所不同,对数据库的损耗会不会有巨变,各种数据库的负载指标会不会发生变化;
2. 摆脱程序员思维:程序员喜欢用过程化的程序设计来设计数据库查询,比如光标的滥用,实际上数据库擅长的实体是Table表,这是一个集合,集合里面有索引,集合之间有各种连接,这些才会关系型数据库擅长的地方,所以查询的时候一定要把这些优势发挥出来;
3. 海量并发的思维:开发者通常开发出来的代码没有考虑到海量并发的时候对数据库的损耗,比如一条SQL 语句,1个用户和10000个用户的时候,对系统资源的各种锁定是不一样的。
arron刘:看您的履历上说您做过多次数据仓库设计,能不能给我们简单讲讲数据库和数据仓库的有哪些区别?
高峡: 数据库主要是面向业务的,以ER模型为主导,强调的是并发,高效。
数据仓库主要是面向主题分析的,以维度模型为主导,强调的是海量,分析。
举一个场景,比如我有一个在线订单数据库,有10万人访问,他们的访问模式是高并发,细粒度,每个访问都是基于细节的,比如插入一个订单,修改客户姓名,查询我的订单,涉及的数据量都非常小,并发非常高;数据仓库建好之后,企业内部的管理人员要进行分析了,比如要分析卖的好的是什么商品,为企业做80%贡献的20%的客户在哪里等等,企业内部的分析的并发数是很少的,通常在几十-到几百个左右,但是他们的目标数据通常是针对全量数据,几亿条数据,而且他们需要的是自助型的数据探索,所以以主题构建的维度模型对他们更合适。
arron刘:BI项目实施,是技术架构和业务架构谁先确定?谁主谁辅呢? BI的实施面临着哪些挑战呢?BI未来的发展趋势是?
高峡: 业务架构其实是重要的,我们通常BI项目的失败都是由于业务架构的混乱,各种指标的不清晰造成的。BI的发展趋势:
1. 自助型BI,这是一个潮流,在自住型BI中,重要的就是维度模型,要把业务数据库中的实体和关系,抽象成维度模型的维度和度量值,这才是重要的基础;
2. 云BI,这也是一个大的趋势,但是在中国很长一段时间内不会发生,目前的中国企业还是对数据看得非常紧张,你让他把数据放在云端是非常不切实际的
arron刘:我看见您在这次DTCC大会上将要分享“谈数据仓库下数据库设计模式变迁”你能不能简单介绍一下一个数据库的数据库的设计方案应该包含哪些内容?
高峡: 数据库设计包括以下内容:1. 对业务模式的理解,包括理解业务流程,业务单据的交互等等,这样才能抽象出各种数据库实体和关系 2. 对用户模式的理解,包括用户数量,用户的行为模式等等 3. 对设计模式的理解,包括海量用户的应对,包括范式和反范式的合理应用, EAV模式,XML模式,OODB,图形数据库各种数据库的合理应用
arron刘:后请您分享一下您对数据库这个行业的职业职业发展路线是怎么看的?都需要什么能力?你对刚从事数据库行业的新人以及想从事这行的人有什么建议?
高峡: 数据库行业的职业发展曲线正好是我上面提到的三种角色:
1. 初级的时候,可以从SQL 代码开始学习,了解业务和建模的关系,知道如何撰写高质量的代码;
2. 的时候,可以做一些DBA的工作,知道数据库的资源损耗检测,知道各种锁的检测等等
3. 的时候,就是做架构师的工作了,设计数据模型,数据流程,系统交付,性能调优等等
其实重要的能力,我上面提过了----一颗永不泯灭的好奇心!
相关文章