【问题标题】:Can talend migrate serialized data from MYSQL to PostgreSQLtalend 可以将序列化数据从 MYSQL 迁移到 PostgreSQL
【发布时间】:2017-07-04 01:14:56
【问题描述】:

我们正在使用Barebone CMS' SSO

我们拥有的 MYSQL 数据库,在 usersinfo 列 下包含序列化格式的用户个人资料字段/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_iduser_id > 列。

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

是否可以使用 Talend 实现这样的数据迁移?

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

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

谢谢

【问题讨论】:

  • 它是如何加密的?您展示的示例至少没有以任何方式加密。
  • @SamiKuhmonen Talend 中是否有反序列化然后迁移的规定?
  • 很遗憾,在此之前我从未听说过 Talend,所以不能说它可以做什么。
  • 那么,你有什么推荐的?迁移此类数据的最佳方式是什么?
  • 正如我在回答中所写的,这只是文本。数据库不在乎,只需转储并重新加载。但是要更改结构,您还必须更改使用它的应用程序。

标签: mysql postgresql database-migration talend


【解决方案1】:

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

如果您想更改以不同方式存储的数据,则必须自己处理,因为这完全取决于应用程序将数据存储在数据库中。因此,您可以让使用此数据的应用程序以单独的方式使用它,并由您将数据与序列化字符串分开。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 在这种情况下,我们必须将 tExtractJSON 组件添加到组合中,这样数据就会流动。
    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 2013-09-14
    • 1970-01-01
    • 2018-02-05
    • 2014-07-05
    • 2017-06-19
    相关资源
    最近更新 更多