前言:
关系型数据库要符合第一范式即原子性,因此字段多值情况只能分行处理,如下表,假设keys是terms、appl_dt,则no, predict_pay_dt, actual_pay_dt 是多值
如果要转换成NoSQL或collection对象,需要以keys分组,然后列转成行(或列转成collection)。
ETL开源工具Kettle也有行扁平化,不过不能分组进行,功能有限。
现以Java实现,示例:
public static List<Fpd> columnToLine(Connection conn) {
List<Fpd> fpdList = new ArrayList<Fpd>();
Fpd preFpd = new Fpd();
Fpd fpd = new Fpd();
List<Integer> preAgrList = new ArrayList<Integer>();
List<Integer> agrList = new ArrayList<Integer>();
List<

本文探讨了如何将关系型数据库中多值字段的行数据转换为NoSQL格式,通过Java实现列转行并按键分组。同时指出,尽管ETL工具Kettle有行扁平化功能,但无法实现分组转换。文章还提供了转换后数据批量插入关系型数据库的示例,并提到了DeepCopy在值传递中的应用。
最低0.47元/天 解锁文章
1370

被折叠的 条评论
为什么被折叠?



