新闻 大数据系统设计,大数据量系统的数据库结构设计

大数据系统设计,大数据量系统的数据库结构设计

2019.06.12

数据库工程师在不同的公司发展的不同阶段有着不同的职责和职位。一般来说,数据库工程师只负责数据库的运行和维护,包括数据库的安装、监控、备份和恢复,但从广义上来说,数据库工程师的责任要大得多。


它需要覆盖产品从需求设计、测试到交付的整个生命周期。在此过程中,它不仅负责数据库管理系统的建设。建设和维护,还参与数据库的前期设计,中期数据库测试和后期数据库容量管理和性能优化。


对于初创企业,数据库工程师可能是兼职运营工程师,从域名应用程序开始,到服务器,配置网络设备,部署操作系统,安装数据库,设计和部署监视,防止漏洞和攻击,等等。大公司对数据库工程师的工作要求越来越高。以下是来自不同维度的数据库工程师的职责。


1. 产品发布前数据库工程师的职责是数据库访问,包括:1)熟悉产品业务;2)产品数据库设计评审:包括体系结构合理性评估、满足需求的存储容量和性能评估、是否需要缓存、是否需要冗余备份等。同时,有必要为数据库模式设计提供合理的建议。产品能满足网上出版的基本要求,运行稳定;3)资源评估,包括所需的服务器资源、网络资源和资源分配,同时检查产品预算应用资源的合理性,控制服务成本;4)资源就绪,应用服务器和基本环境/域名就绪。


2. 在产品发布阶段,数据库工程师负责数据库发布的具体工作。特定数据库的安装、部署和初始化完成后,数据库工程师将向外部世界提供服务。在线数据库的升级也属于发布类。此时,产品发布一般应保证在线发布,在不中断外部服务的情况下完成数据库升级。对于大型和复杂的更改,还存在中断服务发布然后重新提供服务的情况,但是这种情况需要数据库工程师通过尽可能多的技术手段来避免。


3.产品运维的主要任务包括:

1)监控:实时监控数据库服务的状态,包括数据库会话、数据库日志、数据文件片段、表空间监控、用户访问监控等,随时检测数据库服务的异常操作和资源消耗情况;输出重要的日常数据库服务操作报告。评估数据库服务的整体运作,找出潜在的数据库风险;

2)备份:制定并实施数据库备份计划,灾难发生时恢复数据库信息,并在适当的媒体上维护档案或备份数据。根据实际需要改变数据库的备份策略,对数据的日常备份进行监控。

3)安全审核:为不同的数据库管理系统用户提供不同的访问权限,保护数据库不受未经授权的访问和破坏。例如,一类用户可能只允许检索数据,而另一类用户可能具有更新数据和删除记录的权限。

4)故障处理:及时处理数据库服务中的任何异常,避免问题扩大,甚至尽可能暂停服务。在此之前,数据库工程师需要制定计划来处理各种服务异常,如机房/网络故障、程序bug等。当出现问题时,他们可以自动或手动执行计划来停止损失。

5)容量管理:包括资源评估、容量扩充、机房迁移、交通调度等数据库规模扩充后的规划与实施。


4. 数据库性能优化产品向外界提供服务最重要的一点是用户体验,用户体验对产品的可用性和响应速度非常重要。而如何利用最合理的资源支持产品,提供高可用性和高速的用户体验也是数据库工程师的重要职责。