可以将序列化数据从MYSQL迁移到PostgreSQL

时间:2017-02-15 11:39:12

标签: mysql postgresql database-migration talend

我们正在使用Barebone CMS' SSO

我们拥有的 MYSQL 数据库,在 用户<的 信息栏 下包含序列化格式的用户个人资料字段/ em> 表。

例如 信息列值 a:41:{s:7:"aboutme";s:0:"";s:7:"address";s:4:"Pune";s:11:"agriculture";s:11:"Agriculture";s:13:"agri_business";s:0:"";s:22:"agri_finance_insurance";s:0:"";s:12:"agri_trading";s:0:"";s:14:"agro_chemicals";s:14:"Agro Chemicals";s:10:"alt_energy";s:0:"";s:13:"ani_husbandry";s:0:"";s:6:"avatar";s:0:"";s:13:"biotechnology";s:0:"";s:4:"city";s:4:"Pune";s:18:"contact_first_name";s:0:"";s:17:"contact_last_name";s:0:"";s:7:"country";s:5:"India";s:11:"designation";s:0:"";s:5:"email";s:24:"amolXXXXXXX@gmail.com";s:8:"farm_act";s:0:"";s:12:"farm_service";s:0:"";s:10:"first_name";s:4:"Amol";s:6:"Gender";s:4:"Male";s:12:"horticulture";s:0:"";s:14:"interest_other";s:8:"Software";s:10:"irrigation";s:0:"";s:17:"KISAN2015_barcode";s:6:"577535";s:16:"KISAN2015_status";s:5:"green";s:8:"landline";s:0:"";s:9:"last_name";s:7:"Chakane";s:9:"lattitude";s:6:"18.482";s:8:"location";s:90:"Tukai Darshan Tekdi Rd, Bijle Nagar, Kale Padal, Hadapsar, Pune, Maharashtra 412308, India";s:9:"longitude";s:6:"73.944";s:13:"machine_tools";s:0:"";s:6:"mobile";s:14:"+91-95XXXXX478";s:10:"occupation";s:27:"Farming,Certification,Other";s:16:"occupation_other";s:18:"Software Developer";s:11:"org_farming";s:0:"";s:12:"post_harvest";s:0:"";s:17:"registration_type";s:5:"email";s:5:"state";s:11:"Maharashtra";s:8:"username";s:24:"amolXXXXXXX@gmail.com";s:7:"website";s:0:"";}

我们希望将它们迁移到不同表格中的 PostgreSQL

例如我们有用户的兴趣,其价值商店“农业,乳制品,家禽”。它们以序列化格式存储在用户表的信息列中。

在PostgreSQL中,我们为兴趣创建了主表,其中存储了所有类型的兴趣,例如农业,乳制品,家禽。然后 user_interest 表将包含 interest_id user_id 列。

我们计划使用 Talend 将此数据从MYSQL迁移到PostgreSQL。

是否可以使用Talend实现此类数据迁移?

我们应该继续使用传统的PHP脚本编写方式吗?

迁移此类数据的最佳方式是什么?

由于

2 个答案:

答案 0 :(得分:0)

您显示的示例未以任何方式加密。它只是PHP数据结构的序列化版本。数据库并不关心它,它只会存储给它的字符串。

如果您想要以不同的方式更改要存储的数据,您必须自己处理,因为它是关于将数据存储在数据库中的应用程序。因此,您可以使用此数据以分离的方式使用它,也可以由您将数据与序列化字符串分开。

答案 1 :(得分:0)

Talend通过连接器直接连接到MySQL,它将以表格格式提取数据并存储在PostgreSQL中,如果你正确配置它是一个功能丰富的java开发GUI,坦白说它会吃早餐这个问题,

我目前使用talend从5个不同的数据库/一个rest api中提取数据并存储在基于PostgreSQL 8.3的amazon redshift中,我相信,

最糟糕的情况是,您也可以始终使用分隔文件组件并手动指定分隔符