我作为数据仓库的初级sql开发人员开始在一家公司工作。从那以后我一直在浏览代码并学习维模型等。我很难看到开发人员对环境权利之外的安全措施。
但如果有人想以显着的方式编写影响仓库中数据的代码,更新错误值,插入错误数据,删除应该存在的记录并使用commit语句命中该代码,仓库的商业智能方面会产生巨大影响吗?就像他们要提取数据来创建统计数据并且存在不良数据一样,那么他们就会有糟糕的统计数据。
我们有大约7亿条记录,如果可以看到,以这种方式进行的更改将非常难以接受。
也许这是一个简单的问题,但我无法找到答案,因为在数据仓库中,您没有严格的关系约束来检查数据有效性,尤其是当您移动大数据并且数据库管理员丢弃时触发器和索引也是如此。我们从中获取源数据的事务方也不保留历史记录(这是我们的工作)。
有关此主题的任何意见和建议将受到高度赞赏,谢谢。
答案 0 :(得分:4)
在处理数据库或编写代码时,会发生错误。这就是为什么您始终将开发环境与生产环境分开的原因。在将代码部署到生产环境之前,我们大多数人还有一个中间测试环境,在这里测试新代码并验证数据。
此外,在进行任何部署之前,将进行完整备份。这样,如果在部署后发现错误,则可以恢复备份。
最好,您的开发和生产环境在不同但相同的服务器上运行。如果不可能,至少将数据保存在单独的数据库中,并使用数据库服务器的安全性,以确保没有人可以对生产数据库进行更改,除非正在进行部署。
现在,对于部署本身,请确保每次进行部署时都要检查一下清单。清单上的第一步应该是备份现有的生产环境。编写脚本以尽可能自动化部署部分。使用诸如SQL Schema Compare之类的工具来识别开发和生产数据库之间的差异等。理想情况下,部署应该是按下一个按钮,然后一切都自动部署,你可以回到开发而不用担心。