在日常的业务系统升级或者数据维护过程中,数据迁移是各个企业用户不得不面临的问题,尤其是数据迁移过程中要保障数据完整性、统一性和及时性,同时也需要注意源数据中的数据质量问题,比如缺失、无效、错误等问题,需要在迁移中尽可能的进行优化,以提高数据迁移后的数据质量。
假定有如下场景: SQLServer中有一些汽车类数据,需要将该数据迁移到mysql数据库,并且在数据迁移过程中做一些数据治理,以达到符合新数据库对外提供支持要求,比如数据补齐、数据修复、数据替换等。
今天将通过HuggingFists系统演示如何从sqlserver数据库将数据迁移到mysql数据库,同时在迁移过程中对数据进行治理,提升数据治理。相关演示过程我们已经录制了操作视频,可访问如下:
微信视频号:《国产低代码工具,轻松搞定数据迁移》
BiliBili:《国产免费低代码工具,轻松搞定数据迁移》
在迁移之前,需要做一些准备工作,也就是将待迁移的SQLServer数据库和目标数据库MySQL数据库先通过数据库连接器连接到HuggingFists中。
这里通过配置数据库的一些基本信息就可以完成数据库的添加,并且浏览数据库中的数据表。
下面就通过HuggingFists平台来实现该场景任务,整个过程大概分为创建流程、数据清洗、数据补齐、数据转换、数据补充、数据迁移等过程。
【创建流程】
查看下已经准备好的汽车类数据,通过sqlserver连接器将数据接入到平台进行展示,如下图:
这些数据中存在着一些问题,包括车辆号码为空、车架号数据格式不一、中英文混搭等问题,在数据迁移之前,需要将上述问题同步处理。
创建一个数据迁移流程,命名为<car_info数据迁移>
进入流程编辑页面,在左侧可以看到当前支持的算子列表,选择“输入”->“数据库”中的“SQLServer读取”算子,并配置数据库源。
点击浏览,查看通过数据连接器已经配置的sqlserver服务。
然后点击sql编辑器,进入数据表的选择,如下图:
点击确定后,自动生成相应的sql语句,这里就完成了数据源的数据选择。
【数据清洗】挑选出异常数据,如车辆号码为空的数据。
对于数据表中的异常数据,可以通过“控制”->“条件分支”的“if条件控制“来筛选,这里可以设定“条件名称=err”、“过滤条件=车辆号码is null”等配置,如下图:
这时可以通过将结果输出来指定文件,如:将结果写出到csv文件,如下:
这里就完成了数据的初步清洗,清洗出车辆号码为空的异常数据,当然也可以根据不同的目标,设置不同的数据清洗条件。
【数据补齐】
接下来实现数据补齐,将车架号为8位的数据补齐到10位。首先,在“处理”->“转换”中找到“基于条件的值设置“,拖入流程编排页面,并且选择待选值列,设置表达式将8位{车架号.length()=8}补齐到10位{strFormat(‘%sxx‘,车架号)}。
Tips:可以讲结果连接到快速输出端口,查看数据的预期输出结果。
通过上述算子完成数据的补充,同时也可以在系统中选择不同的算子完成不同的数据调整
【数据转换】修改颜色列的英文数据转换为中文。
对于颜色列字段的数据,将“颜色”转换为中文,这里需要做一个字典算子“交互式数据输入”,包含了英文和中文的对照关系,在字典中,设置两个列,分别为英文列和中文列。
然后找到“字典映射”算子,拖入流程编排页面,将“基于条件的值设置”算子的输出端口连接到其中一个输入端口,“交互式数据输入”算子的输出端口连接到另外一个输入端口。
配置“字典映射”算子,选择待映射列的字段信息为“颜色”,字典列里面的原值为en,映射值为zh。
保存,并运行快速输出,查看如下结果。
同样,这里可以通过字典的配置,也可以实现数据脱敏、数据修改等操作。
【数据补充】将原始数据增加一个字段,
返回到流程编辑页面,从算子库中选择“处理”->“集合处理”->“结构化”中的“列添加”算子,拖入编排页面,如下图:
连接“字符映射”的输出端口到“列添加”的输入端口,并且配置新增加的列名=“车辆用途”,并赋值“公用”。
执行下运行结果,
除了数据补充外,也可以进行数据的删除,包括各种行列操作。
【数据迁移】迁移到mysql数据库。
同样,返回到流程编辑页面,从算子库中选择“输出”->“数据库”中的“MySQL写出”算子,拖入编排页面,如下图:
在算子的配置页面,点击浏览,查看系统已经连接的MySQL数据库,选择已经预建好的数据库“cyber_new”,点击确定。
在表名字的配置中选择数据表“car_info”,系统会自动进行数据字段的映射,如下,如下图:
这里呢,需要做一个修改,调整颜色字段,引用新添加的颜色字段,将刚才新调整的字段颜色用“颜色_dictMapper”字段。
然后运行查看快速输出结果,已经输出了调整的数据内容。
最后,确认下数据迁移的结果,可以通过可视化查看两个数据表中的数据,如下图:
从上述两个表中可以看到,已经完成从SqlServer数据库中的迁移到MySQL数据库中。最后,进入MySQL数据库中查看下已经写入的数据,
至此,完成不仅完成了跨数据库之间的数据迁移,同时,在迁移的过程中完成了数据补充、数据转换、数据增加等操作,在数据迁移过程对数据处理提供了更多的可调整性。
【总结】
上述过程演示了结构化数据库之间的数据迁移,除了上述两个数据库外,还支持Oracle、PostgreSQL、DB2、MongoDB、MariaDB、Redis、Sybase、Couchbase、Neo4j、Hbase、达梦8等数据库间的迁移,同时也支持非结构化数据的迁移、文件数据的迁移等。
在数字化过程中,数据迁移必不可免,但迁移的工作又会面临诸如以下痛点:
数据格式不兼容:不同系统或数据库之间采用不同的数据格式或数据结构,导致数据迁移时需要进行格式转换,容易引发数据丢失或数据损坏的问题。
数据质量问题:在数据迁移过程中,暴露出数据质量问题,例如重复数据、缺失数据、不一致数据等。
迁移工具限制:一些数据迁移工具可能存在功能限制或不支持特定数据源或目标数据库,导致无法完全满足迁移需求。
迁移成本高昂:数据迁移可能需要投入大量的人力、时间和资源,尤其是在大规模数据迁移的情况下,成本可能会很高。
HuggingFists作为低代码AI应用工具,也可以提供面向包括数据迁移、数据治理等方面的能力,为后续的AI应用提供数据质量保障。
HuggingFists的下载地址如下:
【Linux版】
微云:https://share.weiyun.com/mmmowpEX
Github:https://github.com/Datayoo/HuggingFists
百度网盘:https://pan.baidu.com/s/1zV_ScCtLgFQSYEb0wLmXIQ?pwd=2024
【windows版】
微云:https://share.weiyun.com/2eDVeN8Q
Github: https://github.com/Datayoo/HuggingFists4Win/tree/main
百度网盘:https://pan.baidu.com/s/1JXgd5bEfSX8RsDb0WTocdw?pwd=2024
技术支持群二维码