表结构:
达梦6中的表 data_id,data_0_0,data_0_1,...,data_23_58,data_23_59
mysql8表 data_id,max,max_time,min,min_time,avg,jfz,zmax,zmax_time,zmin,zmin_time,zavg,zjfz,fmax,fmax_time,fmin,fmin_time,favg,fjfz
说明:
1)其中两边表都是按日期每天生成一张;
2)达梦表中:data_id代表id,data_0_0代表0时0分,data_23_59代表23时59分;
3)mysql中:"data_id"=达梦."data_id","max"=整天最大值,"max_time"=整天最大值对应时间,"min"=整天最小值,"min_time"=整天最小值对应时间,"avg"=整天平均值,"jfz"=整天积分值,"zmax"=正数中的最大值,"fmax"=负数中的最大值... 其他字段同理
数据量在100万以内,
实现功能,怎么自动在每天完后将达梦6的表写入到mysql8中???
你需要在达梦6和mysql8之间建立一个数据同步的工具,可以使用ETL(Extract, Transform, Load)的方法,也就是抽取、转换、加载数据。有一些现成的工具可以实现这个功能,比如DataX、Kettle、Sqoop等。你可以根据你的需求和环境选择合适的工具。
1.在mysql8中创建一个表,用于存储达梦6中每天生成的表的名称,比如叫dm_table_name,有两个字段:table_name和create_date。
2.在ETL工具中编写一个任务,定时(比如每天凌晨)从dm_table_name中读取当天生成的表的名称,然后根据名称从达梦6中抽取数据。
3.在ETL工具中对抽取出来的数据进行转换,按照mysql8表的结构和字段计算出相应的值,比如max, min, avg等。
4.在ETL工具中将转换后的数据加载到mysql8中对应的表中。
5.在ETL工具中记录日志,监控任务的执行情况,处理异常和错误。