如何把数据从 Mysql 导入到 Greenplum

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
对象存储 OSS,20GB 3个月
简介:

本文介绍给大家几个把数据从 Mysql 导入到 Greenplum 的方法

自阿里云推出 Greenplum 服务以来,很多公测用户希望把自己在 Mysql 中的数据放到 Greenplum 用于进行数据分析。而且很多客户的数据量相当大。在这里我向大家提供几种经过验证的向云上 Greenplum 导入大量数据的方法。

一:使用 COPY 命令导入数据

1 COPY语法

特点:
1. Greenplum 提供的原生数据导入方法。
2. 需要先把数据从 Mysql 导出成文本文件。
3. 适合少量数据上云,导入过程中数据会经过 Greenplum 的 Master 节点,所以性能不会特别理想。

二: 通过阿里云开源的工具 mysql2pgsql 导入

2 mysql2pgsql 使用方法

特点:
1. Mysql 导入 Greenplum DB 到 DB 不落地的导入方案,简单实用。
2. 推荐购买 ECS,和在 ECS 上使用该工具,特别适合从 RDS Mysql/ECS 自建实例导入数据。
3. 该工具已经开源了代码,各位可以定制自己的需求。
4. 该工具写入端也会走 Master 节点,所以性能不会特别理想。

三: 通过 OSS 导入大量数据

3 gp_oss_ext 使用方法

4 ossfs 使用方法

该方法的流程如下:
1. 购买和开通阿里云 ECS,OSS 服务。
2. 在 ECS 上使用 ossfs 包挂载购买的 oss 为本地文件系统。
3. 在 ECS 上安装 mysql 二进制RPM。
4. 使用 mysqldump 命令流式获取源库中对应表中的数据,并增量写入到 oss 中。
5. 使用 gp_oss_ext 在 Greenplum 中创建 oss 外部表,并行的将数据导入到 Greenplum 中。

mysqldump 导出举例:

nohup /home/mysql/bin/mysqldump -h192.168.1.1 -P3306 -utest -ptest testdb testtab | sed 's/),(/\n/g;s/NULL//g' | split -l 1000000 - /ossdata/testtab/data. 1>/home/test/testtab.out 2>&1 &

上面的举例有几个要点,大家可以根据自己的需求定制

1. 用户可以使用 mysqldump 导出数据,也可以使用 mysql 命令,如果数据量较大,建议使用 --quick 参数,避免内存不足。
2. mysqldump 跟上的 sed 命令是为了格式化导出的数据,以符合 Greenplum 导入的格式规范,大家可以根据需求定制这一项。
3. split 也是一个比较关键的点。它用于定制切割和存放文件的规则。原因有以下两点
    3.1 oss 上普通文件有大小限制
    3.2 gp_oss_ext 并行导入 oss 上的数据是以文件为单位并发的,推荐在 OSS 上使用虚拟文件夹存放对应一个表的所有数据。

从 OSS 装载数据的特点:

1. 这是一个应对大量数据导入到 Greenplum 的方法,可以轻松从 Mysql 导入上百G,甚至上T的数据到 Greenplum。
2. 不需要很大的缓冲临时空间,数据是流式写入到 OSS 的。
3. 导出和导入时以表为单位进行的,使用者可以并发操作多个表以提高整体的性能。
4. 该方法的性能远好于前两种,导入到云上 Greenplum 规格越大,性能也会越好。
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
9天前
|
canal 消息中间件 关系型数据库
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
79 4
|
17天前
|
关系型数据库 MySQL 数据库
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
|
11天前
|
SQL 存储 缓存
MySQL是如何保证数据不丢失的?
文章详细阐述了InnoDB存储引擎中Buffer Pool与DML操作的关系。在执行插入、更新或删除操作时,InnoDB为了减少磁盘I/O,会在Buffer Pool中缓存数据页进行操作,随后将更新后的“脏页”刷新至磁盘。为防止服务宕机导致数据丢失,InnoDB采用了日志先行(WAL)机制,通过将DML操作记录为Redo Log并异步刷新到磁盘,结合双写机制和合理的日志刷新策略,确保数据的持久性和一致性。尽管如此,仍需合理配置参数以平衡性能与数据安全性。
MySQL是如何保证数据不丢失的?
|
13天前
|
关系型数据库 MySQL 大数据
教你使用Python玩转MySQL数据库,大数据导入不再是难题!
教你使用Python玩转MySQL数据库,大数据导入不再是难题!
|
9天前
|
存储 关系型数据库 MySQL
|
9天前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
66 0
|
17天前
|
SQL 关系型数据库 MySQL
mysql误删数据后,你会怎么办?
mysql误删数据后,你会怎么办?
36 0
|
19天前
|
Kubernetes 关系型数据库 MySQL
k8s练习--通过NFS+PV+PVC+POD,部署一个MySQL服务,并将MySQL的数据进行持久化存储
本文档介绍了如何使用Kubernetes (K8s)、NFS、PersistentVolume (PV)、PersistentVolumeClaim (PVC)和Pod来部署并实现MySQL服务的数据持久化存储。Kubernetes是一个用于自动化部署、扩展和管理容器化应用的强大平台。NFS作为一种网络文件系统协议,能够使Kubernetes集群中的Pod跨节点访问共享文件。PV和PVC机制则提供了持久化的存储解决方案,确保数据即使在Pod生命周期结束后仍得以保留。
|
20天前
|
SQL 关系型数据库 MySQL
mysql不等于<>取特定值反向条件的时候字段有null值或空值读取不到数据
对于数据库开发的专业人士来说,理解NULL的特性并知道如何正确地在查询中处理它们是非常重要的。以上所介绍的技巧和实例可以帮助你更精准地执行数据库查询,并确保数据的完整性和准确性。在编写代码和设计数据库结构时,牢记这些细节将有助于你避免许多常见的错误,提高数据库应用的质量与性能。
30 0
|
20天前
|
关系型数据库 MySQL Windows
MySQL数据导入:MySQL 导入 Excel 文件.md
MySQL数据导入:MySQL 导入 Excel 文件.md

热门文章

最新文章

下一篇
DDNS