任务描述:实时获得某个文本,将文本实时导入mysql,载体使用datax
Q1:根据数据生成对应的配置文件,即job文件夹的json文件
思路:json文件里面的结构是有一定的规律的,是否可以遍历,用什么语言
首先想到的是python,遍历的方法即判断是否是字典,是否是数组,然后根据key确定value,里面有个坑就是json数据里面有些key对应的是值,有些是数组,需要进行相应的判断,一开始不知道怎么往value值添加数组,后来的思路是把value定义数组,然后往里面添加,append;至此问题解决;
Q2:如何在各种语言调用cmd运行datax驱动
思路:网上一大堆
Q3:如何把拆解的工具拼起来
思路:
用python新建的json文件,但是对文件的实时观察用的是nodejs,尝试用nodejs调用python,其中各种 血泪,用了一个下午的时间没有搞定,后用js重新按照python思路写了新建json的代码,问题解决,调用cmd运行datax驱动用nodejs解决,之前尝试过用python
Q4:困扰了两天,即文本数据里坐标是x_y,但是要求入表的是x,y。
思路1:
直接用两个分割符,","和“_”即可,可惜,datax只支持单个分割符;
思路2:
那就搞两次,先用“_”分割,存到新文件,然后再读取新文件,这里遇到的坑就是nodejs的watch功能,fs.watch会重复调用,导致重复插入,尝试使用 node-watch等一系列插件,都不行,浪费了一天的时间;
思路3:
那传数据的时候搞不定,能不能传完再搞,可以用node连接数据库,执行数据分列的sql;but!!!!!!这里发现datax的一个人性化设计,里面有postSql和preSql,可以在插表之前和插表之后执行,问题解决
Q5:数据的表名需要按照数据内部的第一行最后一列进行命名,但是Node读流都是读完的,
这里用的一个循环解决问题
网友评论