微信二维码

二维码 扫二维码马上关注
扫码咨询
数据迁移——阿里云RDS PostgreSQL

        大多数使用云服务的人使用不止一种产品。这些产品可能来自不同的云提供商,也可能在底层技术方面有所不同。所以,用户在多个云产品之间传输数据已成为基本的需求。例如:
        1、用户将数据从脱机数据中心的Oracle数据库迁移到云上的RDS PPAS。
        2、用户使用RDS MySQL作为业务事务的数据库,使用hybrid ddb作为PostgreSQL的数据仓库。
        3、用户从odp中导入大量数据到杂烩中,用于PostgreSQL进行实时分析。
        在上述情况下,数据迁移到云是不可避免的。本文将根据上述场景来说说解决办法。

一、硬件
        在开始迁移数据之前,我们需要对相关硬件有一定的了解,以便找到最合适的解决方案。
        1、相同的区域
        如果您的数据位于云上,并且与目标系统位于同一区域,那么恭喜您!你处于理想状态。尽量只迁移同一区域内的数据。当前的云产品通常配置至少1千兆以太网连接,通常约10千兆。区域内数据迁移具有低延迟、高带宽和通过所需最少数量的vswitch的能力,这使得吞吐量速度非常理想。因此,我们应该尽力确保后端数据库、前端ECS和OSS(存储大量数据)位于同一区域。
        2. 跨区域部署和部署在城市之间的区域
        部分高可用性需求的客户倾向于选择在单个城市内部署多个区域,甚至跨城市部署多个区域。此外,阿里云有很多数据产品支持本地多区域部署解决方案。同一城市或城市之间的阿里云区通过租用的线路网络连接。虽然在这些条件下传输数据的效率可能不如在同一区域内传输,但网络质量仍然相当高。网络通信效率最好的情况如下(按降序排列):同一小区>多小区在同一城市>多小区之间的城市
        例如:(华东I区B内)>(华东I区B与华东I区C之间)>(华东I区B与华北I区B之间)
        3.互联网及VPN网络
        这是将数据迁移到云的最低效和最常见的场景,如背景阅读中所述。原因是数据是通过一个物理通道传输的,该通道是公共的,无法控制。延迟通常是高的,质量可以波动。我们可以用软件来弥补这些不足。我们通常建议用户选择具有以下特性的软件和服务。
        •具有支持机制,支持可恢复的数据传输,并防止大型任务由于单个故障而失败。
        •允许高并发性来增加吞吐量。
        •使用增量数据迁移来减少服务停机时间。
二、现在让我们讨论数据交换中的数据格式。
        数据格式在不同的数据产品之间传输数据通常有两种方法:
        1、云上的数据迁移
        同时将软件或服务连接到源数据库和目标数据库,从源数据库中提取数据,将其转换为目标数据库识别的格式,然后立即将其写入目标数据库。该方法不需要中间数据存储空间,但要求较高的网络质量。如果数据太大,例如在pb级别,迁移可能需要很长时间。阿里云开源产品rds_dbsync、CDP (dataX)和数据传输服务(DTS)都属于这一类。
        2. 使用公共文件格式进行数据迁移
        如果数据大小很大,例如数据仓库中有几十tb的数据,建议使用离线迁移来传输数据。离线迁移是指将源数据库中的所有数据导出为通用数据格式,然后导入目标数据库的过程。与在云上迁移相比,离线数据迁移具有以下优势:
        •离线导出的数据通常按1:2到1:5的比例压缩,可以显著节省网络开销,提高整体效率。
        •离线迁移可以通过并行处理轻松完成,这是提高效率最有效的方式。
        对于基于文件的数据迁移,数据格式是关键。数据格式用于清楚地表达在文件中组织数据的方法。
        以下是最常用的文件格式:XT/CSV、TSV、ORC、Parquet、protobuf等。其中一些数据格式,特别是ORC和Parquet,是数据压缩格式。对于未压缩的数据,例如CSV,我们可以选择我们喜欢的数据压缩格式,例如gzip、bzip2、snappy等。
        3.通过文本/CSV文件传输数据
        •对于结构化数据,理想的数据格式是CSV。CSV是一种常用的、简单而透明的数据格式。有关更多信息,请参考:逗号分隔值(CSV)文件的常见格式和MIME类型
        •PostgreSQL CSV参数在参考文档2中指定。适用于社区和阿里巴巴云的PostgreSQL、Greenplum和hybrid ddb for PostgreSQL。
        •任何符合CSV标准的文件都可以导入PostgreSQL产品。
        o PostgreSQL通过push导入数据拷贝
        o variddb for PostgreSQL通过push写入数据副本
        CSV是一种相对简单的文本格式,其优点是它具有明确定义的语义,可以轻松地应用于甚至复杂的场景。
        •CSV文件的行分隔符是'n',即换行符
        •DELIMITER是定义列的分隔符
        o当用户数据包含分隔符时,还需要使用引号。
        o推荐的列分隔符是',','t',' |'或其他不常见的字符。
        •引号用于按列封装包含特殊字符的用户数据
        包含特殊字符的字符串将用引号括起来,以区分用户数据和控制字符。
        o如果没有必要,例如对于整数,数据将不会用引号括起来(以优化效率)。
        o引号不能与分隔符相同,双引号是默认的引号。
        o如果用户数据包含引用字符,则需要用转义字符对它们进行区分。
        •转义特殊字符
        o在需要转义的特殊字符前放置转义字符,以指示该字符不被视为特殊字符。
        o默认转义字符与引号字符相同,即双引号。
        o你可以使用" (MySQL的默认转义字符)或其他字符..
        以下是文本和CSV文件的默认控制字符。





        4、通过对象存储服务(OSS)进行数据传输
        与AWS的S3类似,对象存储服务(Object Storage Service, OSS)是一种低价存储服务,它打开了所有云产品之间的通信通道。建议用于传输海量数据。OSS支持在区域之间传输数据(跨区域数据复制),允许用户有效地将数据从一个区域传输到另一个区域。到目前为止,PostgreSQL和用于PostgreSQL云上的hybrid ddb都支持读写OSS数据源。
        •PostgreSQL + OSS读写外部数据源oss_fdw
        •混合用于PostgreSQL + OSS在并行oss_ext中导入和导出数据

最后,阿里云发布了很多的优惠活动,可以领取阿里云代金券阿里云学生优惠券来获得更大的优惠!

更多精彩内容,请关注元吉优惠券网:专注阿里云代金券阿里云服务器报价腾讯云代金券的免费领取!
更多精彩内容推荐:
阿里云个人版免费套餐 
阿里云企业版免费套餐 
阿里云RDS使用注意事项 
阿里云ECS服务器磁盘扩容办法 
阿里云服务器学生版


在线客服
热线电话

扫一扫 微信加好友