V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
a1oyss0925
V2EX  ›  程序员

有老哥搞过国产化数据库吗

  •  
  •   a1oyss0925 · 85 天前 · 2749 次点击
    这是一个创建于 85 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前有个项目要给单位私有化,项目技术栈是 springboot+mysql+redis ,单位那边主要是数据库选型是海量数据库,redis 和服务器倒是没啥问题。

    网上查了下发现这数据库是基于 postgres 的,问题是这玩意完全没用过,问老哥们几个问题:

    1. 之前服务是 mysql ,数据源也就只有一个,有必要创建多个 schema 吗,还是创建数据库只用 public 就行了。
    2. 创建用户啥的流程不是很了解,看网上教程就是先创建用户,再创建数据库并且设置 owner ,但是我设置好之后发现没有权限写入数据,大伙平常使用都是怎么使用的
    3. 还有就是 mysql 到 postgres 怎么做数据迁移啊
    17 条回复    2024-08-14 09:37:02 +08:00
    yingha
        1
    yingha  
       85 天前   ❤️ 1
    直接问厂家,他们会把你伺候的服服帖帖
    boshok
        2
    boshok  
       85 天前   ❤️ 1
    上周刚联系过海量的客服,非常非常奇葩的一个产品,打客服电话还无人接听,官网下载不到任何产品/组件,连驱动都下载不到。唯一解就是联系他们公司,由销售或工程师对接,工程师说:下载必须得登记公司主体和联系电话。
    0x49
        3
    0x49  
       85 天前
    万里数据库=mysql8.0
    mark2025
        4
    mark2025  
       85 天前
    还有就是 mysql 到 postgres 怎么做数据迁移啊
    ====
    mysql SQL 迁移要注意:GROUP BY 字段和输出字段关系。mysql GROUP BY 字段在 输出区域内可以直接输出字段,pg 则输出区域必须使用聚合函数。
    joyhub2140
        5
    joyhub2140  
       85 天前   ❤️ 1
    数据库不怕国产照抄,最怕国产瞎改。。总有某些地方坑一把自己,然后网上找不到解决方法,一定需要对方工程师出马才行,必须每年交维保费。
    Nicklove
        6
    Nicklove  
       84 天前
    @boshok 国产数据库、中间件等的特色,官网啥都下不到
    dododada
        7
    dododada  
       84 天前
    搞过昆仑 db ,pg 和 mysql 的混合体,其实就是命令适配。然后我们做插件开发适配,搞了很久都不行,后来发现有个函数,只有函数名,没有实现。。。,神奇的是,加了 hook 绕过去之后,居然能跑
    ixx
        8
    ixx  
       84 天前   ❤️ 1
    “海量”是名字啊,我以为是数据级别🤣
    a1oyss0925
        9
    a1oyss0925  
    OP
       84 天前
    @yingha 我试试

    @boshok 还好是有驱动,在 mvnrepository 上能找到,而且我看官网是适配 postgres 的驱动的,甚至于连上数据库服务器直接使用 psql 都能进(海量自己的叫 vsql )

    @mark2025 目前项目基本没写 sql ,用的 mp ,底层应该会做适配吧
    CloudnuY
        10
    CloudnuY  
       84 天前
    @joyhub2140 适配过好几个品牌的国产数据库,某仓 V8 魔改了好几个地方,全都踩坑了
    zdl0929
        11
    zdl0929  
       84 天前   ❤️ 1
    还有就是 mysql 到 postgres 怎么做数据迁移啊
    ---
    刚好做了一些探索,可以参考下:
    由于 mysql 导出的导出 sql 类型的数据,sql 中表名和字段名的表示方式不同,不推荐 sql 文件形式导入。

    1. 导出 csv 数据
    select * from a into outfile "a.csv" character set utf8 fields terminated by ',' optionally enclosed by '"' lines terminated by '\r\n';

    2. 修改字段名的,使用文本编辑器打开文件,修改文件中的字段名

    3. 导入 csv 数据
    copy a from 'a.csv' DELIMITER ',' CSV;

    另外需要注意下:csv 导入数据会丢失空字符串,变为 null ,可能引起业务代码空指针异常,自行处理。例如:可以提前将空字符替换为特定字符,导入后替换回去。

    当然步骤略麻烦,最终我们是做了个迁移程序,思路其实类似上面,只是载体不是 CSV 直接通过程序,麻烦的其实是第二步,要做各种映射、转换、兼容。
    a1oyss0925
        12
    a1oyss0925  
    OP
       84 天前
    @zdl0929 上午研究了下,用 pgloader 迁移到自己本地数据库了
    datafeng
        13
    datafeng  
       84 天前
    如果代码里面大量编码了 sql ,迁移起来工作量不小吧。。
    hekkowoerld
        14
    hekkowoerld  
       84 天前
    @boshok 提前登记好,出了问题,拿你们灭口
    CheckMySoul
        15
    CheckMySoul  
       84 天前
    海量有自己的迁移工具 mysql-->海量库,兼容的话要么用海量提供的驱动(类似使用 pgsql ),要么可以让海量开 mysql 兼容模式,有个 3307 端口可以连,连进去显示 mysql 5.7
    a7851578
        16
    a7851578  
       84 天前
    为啥要跨数据库产品迁移呢? mysql 创业公司也有几家的
    andytao
        17
    andytao  
       83 天前
    好几波用户提交需求期望袋鼠支持国产数据库系统,基于用户量和付费前景考虑暂时未支持;

    袋鼠数据库工具 已经支持 不同数据库 Schema 转译,比如从 SQLite <--> MySQL <--> PostgreSQL <--> SQL Server <--> MariaDB 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1074 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 19:47 · PVG 03:47 · LAX 11:47 · JFK 14:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.