向诸位专家请教一个问题。
我们公司的 OLAP 数据库是 Vertica,比较特殊的地方是 DBA 和 DevOps 在总部,也就是说我们本地的 BI 团队每次在生产环境进行CREATE TABLE
, ALTER TABLE
, DROP TABLE
或者更复杂的一些操作(比如 Projection 相关)都需要提交工单给总部进行操作,有时候也未必能够批准。
但是我们有个本地的开发环境,权限相对比较高,除了不能动 Schema 之外,其他的基本上都可以。BI 团队所有成员共享这个开发数据库,因此里头弄得比较乱。因为我的级别比较低,所以不可能给团队换环境或者换开发方法,所以我就想搭建一个自己的开发环境。
问题一:是否要放在开发机本地?现在是远程办公所以有数据流失的风险,尽管我从来不把笔记本电脑带回家。但是如果不放本地的话,以我的级别,不太可能申请到远端的容器或者虚拟机。
问题二:如果放在本地的话,如果能够尽量自动化 schema 的同步?我个人的情况是,每个小版本(两周为一个小版本)的开发环境大致上需要从生产环境拷贝至少五张表到开发环境,并导入 15-30 天的数据。如果是单 node 的情况下,大概每次需要拷贝 15-30GB 的数据。我目前的打算是一个小版本一个开发环境(即一个 Vertica 数据库),本地滚动保留最新的两个小版本,并将所有的开发脚本包括 SQL 和 Python 都按照版本上传到公司的代码仓库中。由于每个小版本当中 schema 还是有可能会有微小的变动,而开发环境必须同步更新,所以还需要考虑到 schema 的同步——这一点是我目前不太确定应该怎么做比较好,目前的想法是用脚本在凌晨自动检测 schema 的变动,一旦检测到就把新的 schema 存入到专门的表格中,并发电子邮件提醒手动更新。之所以要手动更新,是因为 schema 变动的原因有很多,我觉得以我的水平,还是手动操作比较保险。
问题三:以我的情况,本地容器化是否是比较好的选择?一个环境就是一个容器,里头有 Vertica 有 Python 就足够了,但是我需要能够从本地“远程”进去开发。我从来没学过这个,也许是个学习的机会?
总体来说,我对搭建开发环境的脚本的期望,就是每两个星期一早上两三点的时候跑一会,等上班的时候就能看到新的环境搭建起来,那就最好了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.