-
大批量处理excel文件到ODPS中方案
前言
-
最近所做的项目需要将近五千个excel文件导入到ODPS,并且excel文件内容格式全部不一样。
刚接到需求时特别的懵,不过工作还是要做的,首先通过查询dataworks中文档来看怎么实现该需求,通过文档了解到只支持csv、txt等格式进行单个上传,然后就开始着手做。
方案一
-
1 、首先按照excel文件内容创建表(下图序号1中),然后将excel文件进行处理,删除一些不必要的数据(序号2中的一些空格),然后另存为逗号分隔的csv格式文档,然后在dataworks数据开发中上传csv文件,达到将excel文件上传。(具体的可以参照官网上步骤,非常的详细,我就不啰嗦了)。
-
备注: 该方式可以实现excel文件转换成csv文件进行上云。但是由于格式不统一,需要逐个的创建表进行上传,一天只上传一百来个excel文件,效率是非常慢的。
方案二
-
通过查找发现dataworks支持RDS整库迁移的方式,于是就在想是否可以将这些excel文件批量的上传到RDS中,购买了一个RDS实例,通过半天的学习配置等,发现也无法批量的上传excel文件。
-
于是就寻找别的方式,最终通过在本机电脑上自建mysql数据库,然后用navicat连接上,通过navicat批量的上传数据到mysql 中,
-
- 接着将上传的数据整库的导出成SQL文件,由于RDS的mysql支持上传sql文件,并且最大支持100M内的文件上传,然后执行。
-
将转储SQL文件结构和数据文件上传到RDS中执行,数据便到RDS中,然后在dataworks中整库迁移数据即可全部同步完成,整个批量上传过程一下午即将五千多个excel文件全部上云。
方案三
-
由于考虑到在本机自建mysql毕竟不稳定,就打算购买ECS,然后在上边自建mysql,然后同步数据,不过该方式最终同步成功,但是不建议使用,该方式不支持整库迁移,并且只能写脚本,还要两台以上的ECS,其中一台作为代理,故不推荐该方式。
以上只是自己在使用中摸索的方法,相信还有更好更完善的方法,希望大家多多分享。
总的来说dataworks升级到2.0功能是十分强大的,数据保护伞、智能监控、数据服务、任务发布等新功能。
-