GaussDB(DWS)数据库的数据迁移实操【玩转PB级数仓GaussDB(DWS)】
1.1先了解一下Gauss数据库
Gauss数据库并非完全自主开发。它可以看作是基于PostgreSQL 9.2的一次神奇的修改。正如Redhat和Android都源于LINUX的研发,IBM AIX和IOS都源于UNIX的研发一样,制造商基于开源资源进一步开发和推出自己的产品是行业规范。其中,分布式GaussDB 200/300将开源内容改变得面目全非,自我研究的比例已经相当高。
此外,华为已开放GaussDB 100单机版,完全放弃赚取商业利润,并邀请行业领袖参与GaussDB的开发和建设。是否单独研究这个问题已不再是问题。
环境配置:CentOS Linux release 7.9.2009 (Core)
1.1.1 GaussDB明显的优点
GaussDB产品可支持X86、ARM、GPU、NPU等异构架构。由此可见,未来的目标市场不仅是国内服务器市场,未来5G也将带来更多计算应用场景。
GaussDB是业界第一个AI原生(人工智能原始)数据库。首次将人工智能技术融入分布式数据库的全生命周期,实现自我运维、自我管理、自调优、故障自诊断和自我修复。第一个基于深度强化学习的自校正算法已将整个行业的调整性能提高了60%以上。
GaussDB可以构建在华为IT架构的底层生态系统上,包括网络设备、芯片、操作系统、云计算、人工智能等。这些都与华为IT架构高度耦合。
2.1 实操GaussDB(DWS)数据库
2.1.1 mysql数据迁移到gaussDB案例
原理图:
连接MySQL实例,查看MySQL数据库情况。
mysql -h <host>-P <port>-u <userName>-p--ssl-ca=<caDIR>
云下MySQL数据迁移:
CDM通过公网IP访问MySQL数据库,CDM与GaussDB(DWS)在同一个VPC下,CDM分别与MySQL和DWS建立JDBC连接。
云上RDS-MySQL数据迁移:
RDS、CDM和GaussDB(DWS)均在同一个VPC下,CDM分别与MySQL和DWS建立JDBC连接。如果云上RDS与DWS不在一个VPC,则CDM通过弹性公网IP访问RDS。
show variables like '%secure%'
在secure_file_priv地址下mkdir aaa;
修改文件权限chmod -R 777 aaa;
select * from i18n_message into outfile '/tmp/etl/temp.dat' fields terminated by ''';
下载数据并上传至GaussDB
导入GaussDB
COPY I18N_MESSAGE FROM '/home/gaussdba/app/bin/temp.dat' WITH DELIMITER '''';
查询库表。
use <databasename>;
show full tables;
注意:
-
执行出现如下错误:column “TASK.TASK_ID” must appear in the GROUP BY clause or be used in an aggregate function ,原因是:select的字段与Group by中的字段要一致或不一致的字段必须使用聚合函数;
-
由于GaussDB(DWS)数据库对表名大小写不敏感,如果原MySQL数据库中存在大小写混用的表名或者纯大写的表名,例如Table01、TABLE01,需要先修改表名为纯小写后才支持迁移,否则会导致迁移后,GaussDB(DWS)无法识别该表。
-
MySQL中的ifnull函数用nvl函数替换;
-
建议将MySQL也设置成大小写不敏感模式,修改方法:修改/etc/my.cnf参数lower_case_table_names=1,并重启MySQL服务。
2.1.1 最后
华为公司智能数据平台CTO武新曾说,数据库需要长期扎实的投入,华为态度非常坚定,目标是要像5G一样,打造中国出品的世界级数据库GaussDB,在不久的将来实现全面超越并引领数据库技术的发展。
在华为GaussDB发布中有一行文字:向数学致敬、向科学家致敬。前人的积累必将影响我们现在的科技。GaussDB,不仅蕴含着华为对数学和科学的敬畏,也承载着华为对基础软件的坚持和梦想以及我们中国人,中国IT人对国产数据库的未来与希望。