暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
巨杉Tech:使用etlAlchemy工具迁移数据实战.pdf
269
7页
0次
2021-02-22
50墨值下载
巨杉 Tech | 使用 etlAlchemy 工具迁移数据实战
巨杉数据库架构简介
巨杉数据库 SequoiaDB 一款开源的金融级分布式关系型数据库,支持 MySQLPostgreSQL
SparkSQL 种关系型数据库实例、 MongoDB JSON 文档类数据库实例、以及 S3
象存储与 Posix 文件系统的非结构化数据实例。
SequoiaDB 适用于核心交易、数据中台和内容管理等应用场景
数据迁移步骤
那么如何从 MySQL 迁移到 SequoiaDB?之前有介绍过利用 mysqldump 以及
mydumper/myloader 进行数据库迁移,本文介绍从 MySQL SequoiaDB 快速迁移工
etlAlchemy
当应用系统需要切换数据库时,DBA 需要将旧数据库上的数据全部迁移至新数据库,数据迁
移工作主要分为以下 5 个步骤:
1. 将旧数据库的创建数据表和索引导出
2. 将旧数据库的数据表的数据导出为数据文件
3. 将旧数据库的创建数据表语句、索引创建语句根据新数据库的语法规则进行调整
4. 在新数据库中创建对应的数据表和索引
5. 将数据文件导入新数据库中
以上的数据迁移工作在数据表较多的情况下采用人工处理的方式时工作量大且慢,期望使用
脚本实现自动化。针对此数据迁移的场景,推荐一个工具 etlAlchemy
etlAlchemy 介绍
etlAlchemy 基于 Python SQLAlchemy 库实现,能够通过简短的几行代码帮助用户
速迁移整个数据库。目前,该工具支持以下的数据库:
·MySQL
·PostgreSQL
·MSSQL
·Oracle
·SQLite
虽然 etlAlchemy 目前只支持以 5 种数据库,但是由于 etlAlchemy 是基于 SQLAlchemy
库实现,理论上 SQLAlchemy 支持的所有主流的数据库,etlAlchemy 均可以通过修改源码
来增加支持,感兴趣的读者可以修改源码实现
针对上述的数据库,etlArchemy 提供了以下的功能特性:
·支持根据数据表名过滤数据表
·支持迁移 Schema,数据,索引以及外键
·支持过滤值为 null 的数据列
·支持过滤记录为空的数据表以及所有数据列的值均为 null 的数据表
·支持根据主键进行 Upsert,即目的端存在相同主键的记录则更新该记录的值,否则插
记录
·支持修改 schema包括:修改数据列名,修改数据列类型,删除数据列,数据表重命名,
删除数据表
·支持根据指定后缀名批量修改数据列名
·支持忽略数据列名包含指定后缀名的数据列
从上面支持的功能列表来看,etlAlchemy 支持的功能特性很强。etlAlchemy 工具的主要实
现思路是 etlAlchemy 对源数据库的数据表逐个进行 ETL 程处理, ETL 过程与数据迁
移工作过程比较类似,具体处理过程如下:
1. 获取数据表的索引信息,外键信息
of 7
50墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜