内容


数据架构师

开发人员 DBA 的崛起

让数据库自动运行。未来的 DBA 还有更重要的事情要做。

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 数据架构师

敬请期待该系列的后续内容。

此内容是该系列的一部分:数据架构师

敬请期待该系列的后续内容。

免费下载:IBM® DB2® Express-C 9.7.2 免费版 或者 DB2® 9.7 for Linux®, UNIX®, and Windows® 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

阅读本文的互动数字版!

以前(几年前)有一段时间,DB2 DBA 与 DB2 访问应用程序的开发人员完全是两回事。正如他们的缩写词所示,DBA 的确是 “数据库管理员”。他们创建对象(表、索引、视图、表空间,等等),备份并(在必要时)恢复数据,监控表和索引的组织(并根据需要重新组织它们),管理磁盘空间的使用情况,并采用某种 “系统” 方式对数据库进行普通维护。

与此同时,开发人员将业务功能需求转换为应用程序逻辑,设计用户界面,并决定在 DB2 表中存储什么数据元素(以及其他事项),以支持应用程序功能。开发人员和 DBA 共同创建逻辑数据库设计,定期隔离并解决与数据访问相关的应用程序性能问题;除此之外,这些角色不同的 IT 专业人员通常拥有各自的职责,没有太多交流。

DBA 面临的新形势

在很长一段时间内,这种运作模式比较合理,效果也很显著。DBA 需要时常关注 DB2 数据库(以及通过其他与之竞争的数据库管理系统实现的数据库),这要求他们运用一些非常高级的专业技能,这些技能与编程无关(除了需要编写一些 SQL 查询来从 DB2 目录获取信息之外)。开发人员通过 C、COBOL 或 Java 等语言工作,他们的 SQL 知识足以使其胜任工作。

然而,后来发生了一些事,最终增加(通常是大幅增加)了 DBA 和开发人员这两个世界之间的重叠部分。导致这种变化的一个因素是 IBM 在 DB2 中内置了所谓的自治功能。那些功能支持 DB2 在很大程度上进行自我管理。大型机平台上引入的自治特性包括 DB2 管理的数据集、Ⅱ型索引(老用户还记得与索引页面锁定之间的斗争吗?)、实用工具 TEMPLATE 和 LISTDEF、以及滑尺式 (sliding-scale) 二级空间分配。对于 DB2 for Linux®, UNIX®, and Windows® (LUW) DBA 而言,这些自治特性的好处包括自动化 RUNSTATS、自动增长数据库以及自调优内存管理。所有这些特性共同将 DBA 从数据库管理工作中解放出来,使他们有时间做其他工作。

有些 DB2 管理员(我承认我也是其中一员)的确担心此前耗时的数据库管理工作的消失,担心他们的雇主不像以前那样需要他们。其他更关注未来的 DBA 将他们的关注点转移到有价值的领域。也就是说,他们着眼于如何利用他们新获得的闲暇时间为他们的组织带来最大的利益,在此过程中,他们通常得到相似的结论:加速应用程序开发就是他们发挥其价值的领域。毕竟,硬件和中间件(比如 DB2)自身并不能给企业带来利润。而应用程序 能移动产品,照顾客户,管理存货和揭示新的机遇。使那些应用程序更快地进入生产流程,就能以一种积极的方式影响企业效益。

面向开发的 DBA

导致 DB2 DBA 更多地参与应用程序开发的另一个因素是 IBM 正在交付一些旨在减轻应用程序开发人员的编码负担的 DB2 特性。例如:

  • 触发器:这是一种灵活强大的机制,它采用用户定义操作的形式,将逻辑推送到应用程序的数据库层级中,DB2 将在某个程序更改表中的数据时自动执行这些操作。
  • 存储过程和用户定义函数: 以一种非常开放的、可重用的形式打包数据访问功能的方便的、可伸缩的、安全的方法。
  • pureXML:这是一种突破性技术,允许 DB2 识别数据库中存储的 XML 文档的分层结构,有效导航该结构,以实现数据检索和更新目的。
  • 临时数据支持(最初在 DB2 10 for z/OS 中提供): 另一种突破性技术,极大地促进了数据行版本控制(“系统时间”)和未来的时间点数据库更新(“业务时间”)。

因此,当 DB2 DBA 有更多的时间来协助应用程序开发人员时(这要归功于自治特性),他们能够通过帮助开发人员理解并有效利用 DB2 的应用程序生产力提升功能来提高数据库表的价值。除此之外,DBA 自身也越来越多地参与到了应用程序编码工作中,这得益于 DB2 的 SQL Procedural Language (SQL PL),该语言可用于为存储过程、用户定义函数(标量和表)和触发器实现了复杂的逻辑。

IT 组织影响

我在前面提到过着眼于未来的 DBA,他们将自己定位为与开发人员协作,加快影响业务的应用程序的创建和部署,为他们的雇主带来更多价值。有些管理层认可这种转变,并在组织范围内向 DBA 提供支持。作为这种支持的一项措施,管理层为面向应用程序的 DB2 DBA 引入了一些新的工作角色。

几年前我从事独立顾问工作时,曾为一家公司服务过,这家公司将这种新的工作角色称为 “ 过程 DBA”。对于该公司而言,这个角色的主要职责是 DB2 存储过程的开发和实现。还有一些组织将这种角色命名为 “开发 DBA”。无论叫什么名称,这些角色对那些资深 DBA 通常非常有吸引力,他们将这视为以新颖有趣的方式发展其事业的一种机遇。

对于开发团队而言,他们的工作受到了在 DB2 的应用程序支持特性方面经验丰富的 DBA 的支持,他们对此感到非常满意。我在前面已经提到过,有这样的可能性:DBA 可以通过以 SQL PL 编码数据访问功能来加速应用程序开发。但帮助按期交付或提前交付只是一个方面,新型 DBA 的工作还有其他一些好处。

确保可伸缩性。通过利用静态 SQL、多行(也称为块)FETCHINSERT 以及 DB2 的内置 WebSphere® MQ 接口(有时,异步处理是满足高负荷工作负载需求的关键因素),开发人员 DBA 能够帮助构建应用程序,实现最大可伸缩性。

无需程序员即可满足安全需求。角色和可靠上下文等 DB2 特性能向开发人员提供他们的工作所需的数据访问权(并向终端用户提供使用新应用程序所需的特权),同时满足安全管理员和审计员所需的精确性、可控性和可追踪性。

可重用性连锁反应。将数据访问逻辑推送到 DBMS 中后,应用程序开发的好处可能非常多。例如,可以从一个用 COBOL 编写的 CICS 事务程序轻松调用一个用来支持 Java 应用程序的 DB2 for z/OS SQL 存储过程。在 DB2 for LUW 管理的数据库中的表上定义的触发器,可以运用复杂的数据域规则获得来自用各种语言(从 C# 到 Ruby)编写的程序的插入内容。SQL 用户定义函数可以简化批处理程序以及在线交易程序的编码工作。开发人员 DBA 负责构建这些数据访问构建块,开发人员可以集中精力编写业务和用户界面逻辑。

因此,开发人员 DBA 能够做许多工作,帮助改进应用程序开发团队的工作效果。但有一点还不太清楚:相对于程序员,应该将开发应用程序的 DBA 放在什么位置呢?应该将他们 “嵌入” 开发小组中,以便他们的办公桌靠近程序员的办公桌吗?这似乎是个不错的选择,但如果这导致开发人员 DBA 被分布到各个位置分散的应用程序开发团队中,那么 DBA 可能难以聚集在一起。团队精神和思想共享可能会受到破坏。另一方面,保持 DBA 在一起工作可能会减小他们对应用程序开发的积极影响,因为他们与程序员的面对面交流时间可能会减少。事实上,这两种 DBA 放置方法(嵌入式和集中式)在不同的组织中都有成功案例。您可以根据您的环境采取合适的方式。

面向未来的角色

我在本文中描述的趋势肯定会继续下去,这里所说的趋势是指 DB2 的每个新发布(在所有平台上)都会推出一些新的自治特性和新的面向应用程序的特性。这正是使用 DB2 的组织的 IT 领导人想要的:“让 DB2 自己管理自己。让我的 DB2 专家将他们的才华应用到应用程序开发中去。这样,我的公司就能节约资金,增加收入,将我们的竞争对手远远抛到身后。” 因此,如果您认为开发人员 DBA 是一匹可以长期驾驭的骏马的话,那么我会说您的想法是正确的。让我们备马,准备出发!

参考文章
最大限度地提高数据分析性能
合作伙伴资源
Applied Analytix, Inc DBIIBM
IBM Information On DemandInternational DB2 Users Group (IDUG)Melissa Data
NetezzaNiteo PartnersQueBIT
Quest Software

相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=757794
ArticleTitle=数据架构师: 开发人员 DBA 的崛起
publish-date=09152011