-
大批量處理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,其中一台作為代理,故不推薦該方式。
以上隻是自己在使用中摸索的方法,相信還有更好更完善的方法,希望大家多多分享。
-