V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
levelworm
V2EX  ›  问与答

OLAP 数据库开发环境的搭建问题

  •  
  •   levelworm · 2021-01-20 12:20:07 +08:00 · 605 次点击
    这是一个创建于 1412 天前的主题,其中的信息可能已经有所发展或是发生改变。

    向诸位专家请教一个问题。

    我们公司的 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 就足够了,但是我需要能够从本地“远程”进去开发。我从来没学过这个,也许是个学习的机会?

    总体来说,我对搭建开发环境的脚本的期望,就是每两个星期一早上两三点的时候跑一会,等上班的时候就能看到新的环境搭建起来,那就最好了。

    3 条回复    2021-01-20 12:43:49 +08:00
    liprais
        1
    liprais  
       2021-01-20 12:28:05 +08:00   ❤️ 1
    自己装个单机版的 vertica 不就完了
    levelworm
        2
    levelworm  
    OP
       2021-01-20 12:31:16 +08:00
    @liprais 对,我是准备这么干,但是两个问题不是很确定,第一是否适合容器化?第二 schema 变化有什么比较好的同步方法?我目前也在网上搜索,实在不行,就按照自己的情况写几个脚本。
    levelworm
        3
    levelworm  
    OP
       2021-01-20 12:43:49 +08:00
    @liprais 还有个比较尴尬的地方是目前的开发机是 Windows 10,只能跑 VM,得等公司发 Mac 再说。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2712 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:31 · PVG 23:31 · LAX 07:31 · JFK 10:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.