南大通用数据迁移之GaussDB_To_GBase8a(一)迁移综述

原文链接:https://www.gbase.cn/community/post/3857

更多精彩内容尽在南大通用GBase技术社区(https://www.gbase.cn/community),南大通用致力于成为用户最信赖的数据库产品供应商。



1.从GaussDB迁移到GBase 8a的可行性

        从产品架构角度分析GaussDB迁移到GBase 8a MPP Cluster的可行性可以总结如下:
        GaussDB 200和GBase 8a都属于MPP架构数据库产品,架构上的相似性意味着从GaussDB迁移到GBase 8a是现实可行的;
        从两款产品的逻辑架构上进行对比,GaussDB 200和GBase 8a均采用了MPP+Share Nothing的无共享并行处理架构。
        GaussDB 200集群管理模块CM(Cluster Manager)对应GBase 8a的gcware(corosync)和gcmonit模块、Coordinator(CN)模块对应GBase 8a的gcluster模块,Datanode(DN)模块对应GBase 8a的gnode模块。

GaussDB逻辑架构

GBase 8a MPP Cluster逻辑架构

        GaussDB和GBase 8a都支持ANSI SQL标准,因此两个产品中大量语句的语法一致或高度相似,因此语法迁移方面的整体难度可控;
        GaussDB和GBase 8a均提供标准的API接口,在第三方工具和外围系统生态上也具备高度相似性,对迁移后上下游系统的变动和影响较小。
        GaussDB与GBase 8a MPP Cluster数据库在接口、工具、语言等方面的对比如下:


        GaussDB支持行存和列存两种类型的表。行存表与事务型数据库存储和操作模式一样,存储和操作模式与GBase 8s数据库基本一致。列存表与GBase 8a MPP的存储和操作模式基本一致。GaussDB行存表和列存表在业务操作上如果有关联性能较差,所以在GaussDB的实际生产环境中一般也是建议相关业务表全部建成行存表或者全部建成列存表。所以迁移的时候可以选择行存业务迁移至GBase 8s,列存业务迁移至GBase 8a MPP。如果行存和列存业务有交集或者需要混合HDFS存储的需求,可以迁移至GBase UP,GBase UP平台底层融合了GBase 8s、GBase 8a MPP和Hadoop,GBase UP下的多异构数据库对上层用户透明,对底层数据能流动交互。
        对于GaussDB迁移至GBase 8a MPP,行存表的业务改动量较多一些,列存表的业务改动很少,鉴于上述大量相同点,总的工作量是可控和可接受的工作。

2.迁移流程概述

GaussDB 200迁移至GBase 8a MPP Cluster的总体流程如下图所示:

DDL迁移:
        DDL迁移采用一次性迁移的方式进行,可以从GaussDB导出DDL脚本,按照GBase 8a MPP Cluster语法对导出的脚本使用脚本方式进行批量修改;
数据迁移:
        将GaussDB数据库的表数据通过接口以规定的分隔符导出成平面文件,然后使用FTP/NFS等方式发送到GBase 8a MPP Cluster可以访问的文件系统,再通过GBase 8a MPP Cluster提供的批量数据加载工具完成数据加载。
程序/脚本迁移:
        程序和脚本迁移包括仓库ETL和各层数据加工程序/脚本、GaussDB库内存储过程等。迁移采用人工迁移审核的方式。
        对于脚本类型的程序,如果perl脚本程序,需要对ETL连接数据库的具体方式进行转换,对于每日批量加工业务的调度,需要针对性的对调度程序进行重新配置,如informatica、kattle等工具的数据库连接部分配置、mapping映射关系的调整等。
工具接口迁移:
        工具接口迁移,主要指GaussDB数据库上下游的第三方工具,如ETL工具、BI工具等的接口迁移和联调工作,主要是将连接GaussDB的第三方工具接口配置为连接GBase 8a MPP Cluster的接口,涉及的接口主要包括JDBC、ODBC等标准接口和对应的jar包或驱动程序的重新安装和连接配置,并对联通性和工具的基本功能进行验证。

3.数据模型区别概述

集群内业务隔离方式不同:
        GaussDB 200中可以使用Database和Schema实现业务的隔离,区别在于Database的隔离更加彻底,各个Database之间共享资源极少,可实现连接隔离、权限隔离等,Database之间无法直接互访,一个集群内,用户自定义的Database数量建议不超过3个,最多支持128个。Schema隔离的方式共用资源较多,可以通过grant与revoke语法便捷地控制不同用户对各Schema及其下属对象的权限。创建用户时会自动的创建同名的Schema,用户也可以单独创建新的Schema。
GBase 8a MPP Cluster使用Database实现业务隔离,用户自定义Database的数量没有限制,不同Database之间可以互相访问。不支持用户创建Schema。
数据的物理存储和逻辑管理方式不同:
        GaussDB 200支持自定义表空间,数据库的数据逻辑上以表空间来管理,表空间使用率达到90%,表空间中的表变为只读,需要扩容表空间后表可恢复正常读写。GBase 8a MPP不同版本对表空间的支持度不一样,V95以上(含)版本支持用户自定义表空间,V86版本不支持用户自定义表空间。
GaussDB 200创建数据库时可以指定表空间,一个数据库可以指定多个表空间,一个表空间也可以被多个数据库指定,但是一个表的数据只能归属于一个表空间,不能跨表空间。
GaussDB 200数据的底层物理存储是一个表的数据由多个datafile segment(数据文件)组成,每个datafile segment里有很多数据单元CU(等同于GBase 的DC),每个CU默认存60000个记录(可调,值在10000-60000之间),datafile segment满1G就分离出新的datafile segment(推荐的数据文件格式是xfs格式)。数据库操作数据的最小粒度是1个block为8k,即8k是数据库的io单位。
        GBase 8a MPP物理存储推荐的文件格式是ext4,表数据也是由多个数据文件(segment)组成,数据文件是以2G作为分割,满2G就分离出新的数据文件。每个数据文件由很多数据单元DC组成,每个DC固定存储65535个记录,不可调。
        GaussDB 200是分布式架构,数据分布在各个DN上。每三个数据节点组成一个安全环,类似8a老版本的安全组,每个数据节点可以存储多个主分片,每个主分片有两个副本,分别存储在安全环内的另两个数据节点上:备节点和从备节点。主节点故障后备节点启用为主节点,原主节点变为备节点。从备DN不占用实际存储空间,仅在主、备DN故障时才起作用,且只存储数据日志,不存储数据页面。这点与GBase 8a MPP不同,GBase 8a MPP可以有多个副本,但是没有从备的概念,每个副本都是实际存储的主片的备份数据。
GaussDB 200数据分布到DN上的分布方式推荐hash分布、Replication,对应于GBase 8a MPP的随机分布表和复制表。GaussDB 200和GBase 8a MPP的hash分布列选取原则一样,都是数据均分、业务操作避免节点间拉表,但是GaussDB的hash分布列支持多列组合作为分布列,GBase 8a MPP只支持单列作为分布列。
        GaussDB 200支持各个节点上的表数据进一步分区存储,即是在一个节点内部对数据按照用户指定的策略对数据做进一步的水平分表,GaussDB 200支持范围分区(Range Partitioning)。GBase 8a MPP 不同的版本对分区的支持情况不同,V95以下的版本不支持表分区。
        GaussDB 200的表数据存储类型支持行存和列存两种,引擎也分别由行执行引擎和列执行引擎对应,列执行引擎的性能(除indexscan相关的算子)比行执行引擎性能要好很多。行存表和列存表在建表时指定,行存和列存表的关联耗费资源大,性能低。GaussDB 200中有业务关联的表一般是统一建立成行存表或者列存表。
1)GaussDB 200的行存
        与GBase 8a MPP的行列混存概念不一样,GaussDB 200的行存是与oracle、mysql等事务数据库一样的存储模式,是以记录为单位存入数据文件中,读取时也是按记录读取,即100列的表,只读取一列也需要把其余列的数据按记录的粒度读取出来。所以GaussDB 200的行存表中,一条记录最大不能超过1个datafile segment大小即不能超过1G。当然,GaussDB 200的行存表在主外键、约束、字段的属性设置等方面与oracle等事务数据库一样,也支持常规的修改表和字段的属性。
2)GaussDB 200的列存
        与GBase 8a MPP的列存存储方式一样,存储和读取都是以纵向列进行,查询时如果100列的表只读取其中一列,不会连带读取出相关记录的其他字段出来。与GBase 8a MPP一样,列存的表不支持主、外键功能,字段属性的alter也与GBase 8a MPP 类似,不支持alter table 列的很多属性,具体参考SQL语法迁移部分。GBase 8a MPP的行存列本质上仍然是列存。
事务的支持度不同
        GaussDB 200有全局事务管理模块GTM(Global Transaction Manager),即含GTM进程的特殊MPPDBServer,负责生成和维护全局事务ID、事务快照、时间戳等需要全局唯一的信息。GaussDB 200是基于MVCC(多版本并发控制)并结合两阶段锁的方式进行事务管理。
        GaussDB 200默认是自动提交,即每条sql作为一个事务自动提交,这跟GBase 8a MPP相同。GaussDB支持事务块,支持数据库事务ACID特性,用户可以通过start transaction命令显式启动一个事务块。GBase 8a MPP不同版本对事务的支持程度不同,V95以下版本建议不使用事务。


原文链接:https://www.gbase.cn/community/post/3857

更多精彩内容尽在南大通用GBase技术社区(https://www.gbase.cn/community),南大通用致力于成为用户最信赖的数据库产品供应商。


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容