文章
Michael Lei · 一月 25 阅读大约需 4 分钟

翻译文章-数据迁移工具 - 第一部分: 从 Postgres 到 IRIS

有时需要将数据和数据模型Schema从Postgres转移或迁移到IRIS。目前有几个选择可以做到这一点,但最流行的两个选项是使用DBeaver(https://openexchange.intersystems.com/package/DBeaver)或SQLGateway。第一种方法将在本文中演示,第二种方法在Robert Cemper的一篇优秀文章中介绍,使用 SQLgateway 迁移数据库(https://community.intersystems.com/post/db-migration-using-sqlgateway),请看本文中如何使用DBeaver执行这种迁移。

为迁移过程获取样本数据

在Github上可以下载一个docker compose项目来构建和运行两个数据库。:

  • 源数据库: 带有样本数据库的PostgreSQL 数据库 Docker 实例 .
  • 目标数据库: 带有Schema就绪接受源数据库的InterSystems IRIS 数据平台Docker 实例.

要获得样本并运行它,请遵循以下步骤:

  1. https://openexchange.intersystems.com/package/migration-pg-iris-dataset 下载并到 git repository.
  2. 克隆项目: git clone https://github.com/yurimarx/migration-pg-iris.git.  
  3. 到项目目录 migration-pg-iris.
  4. 执行build: docker-compose build.
  5. 运行containers: docker-compose up -d.
  6. 实例ok后在你的Docker桌面看到:

关于要迁移的数据

要迁移的数据如下所示:

从 PostgreSQL 到 IRIS 的迁移过程将包括:

  • 8 个表.
  • 1,000,000 行销售数据.
  • 250,000 行用户数据.
  • 300 行产品.
  • 500 行店铺.
  • 100 行国家.
  • 30 行城市.
  • 5 行状态名status_name.

迁移目标为 InterSystems IRIS  中USER 命名空间namespace内的 dc_test schema .

从 PostgreSQL 到 IRIS 的开源迁移工具: DBeaver

DBeaver是一个数据库工具,可以连接、创建、下拉、选择、更新和删除市场上主要数据库产品的数据对象。下载地址:https://openexchange.intersystems.com/package/DBeaver。现在按照安装说明,将这个神奇的产品安装在你的笔记本电脑或桌面。
DBeaver可以用来在数据库连接之间迁移数据,即使它们来自不同的制造商和版本。

使用DBeaver连接源和目标数据库

现在我们将设置要迁移的数据库连接。
在DBeaver里设置PostgreSQL连接:

1.  DBeaver 到 文件 File >新建 New.

2. 选择数据库连接并点击下一步:

3. 选择SQL tab > PostgreSQL 点击下一步:

4. 如图填写PostgreSQL 连接项目 :

  • Host: localhost
  • Port: 5438
  • Database: postgres
  • Username: postgres
  • Password: postgres
  • Click Finish.

 在 DBeaver设置IRIS连接:

1.    DBeaver 到 文件 File >新建 New.
2.    选择数据库连接并点击下一步:

3.    选择 SQL tab > InterSystems IRIS 并点击下一步:

4.    如果 DBeaver 要求下载InterSystems IRIS 驱动, 点击 Yes 或 Ok.
5.    如图填写InterSystems IRIS  连接项目:

  • Host: localhost
  • Database/Schema: user
  • Username: _SYSTEM
  • Password: SYS
  • Click Text Connection and Finish.

6. postgres和用户的连接可以在数据库导航器中找到:

开始迁移

执行以下步骤:
1.    打开 postgres connection > public 选择所有表。在选择的表上点击鼠标右键选择导出数据 Export Data, 如图:

2.    如图选择数据库并点击下一步

3.    点击选择按钮:

4.    选择 dc_test 并点击ok.

5.    现在有必要改变目标数据库的一些数据类型配置,因为IRIS和PostgreSQL对整数和小数值使用不同的数据类型。.
6.    展开 public.country 表, 选择第一项 (country_id) 并点击 Columns…

7.   把目标类型从 int4 改成 integer 并点击Ok.

8.    对表重复以上过程

a.    public.product.
b.    public.status_name.
c.    public.users.
d.    public.city (把city_id 和 country_id类型改成 integer ).
e.    public.store (把 store_id 和 city_id 类型改成 integer ).
f.    public.sale (把product_id, user_id 和 store_id类型改成integer,把amount改成 double   )

g.    public.order_status (把status_name_id 改成 integer).

9.    现在目标数据类型改好了, 点击下一步.

10.    设置获取 Fetch 大小为 1,000,000 并点击下一步.

11.    在Data load数据加载设置中接受默认值并点击下一步.

12.    在确认Confirm页面点击 Proceed.

13.    现在看到在数据库导航器看到在 InterSystems IRIS dc_test schema 下的所有 PostgreSQL表.

对于表来说,迁移过程非常简单,但对于视图、函数、触发器和存储过程,你需要使用ObjectScript或SQL重写SQL源代码。

迁移到 IRIS能得到什么?

总结一下:

  • API 管理.
  • 可视化报表Visual Reports (IRIS Reports).
  • 自动化机器学习AutoML (IntegratedML).
  • 多语言应用、数据开发环境(Python, Java, .NET, JavaScript).
  • 服务总线ESB.
  • BI/Analytics.
  • 自然语言处理NLP.
  • 微服务开发Microservices development.
  • 多模型数据库(SQL, JSON, Analytical Cubes, Object Oriented).
  • 数据分片Sharding.

总体来说, 迁移到 IRIS 你得到的是一个数据平台, 其他的你只有一个数据库。

1
0 79
讨论 (0)1
登录或注册以继续