csv大文件處理方案-數據量超表格最大容納行數解決方案
結論先行
查看
Windows系統查看:下載Emeditor查看--推薦
Mac系統查看:Vscode查看
匯總計算
優雅方式
- 表格的Power pivot
- Tableau
- 編程計算
不優雅但可行方法
切分為多個小文件
-
linux使用split命令切分
-
使用工具切分--推薦
-
編程切分--適合懂編程小伙伴
情況
1.一個表格sheet最大容納數據量104萬行,數量太大不宜用表格裝載數據,使用csv格式裝載數據(表格設計不是用來存儲數據的,存儲數據用數據庫)
2.csv為逗號分割符文件(處理數據一種很好的格式),本質為文本文件,數據量不大可用表格直接打開,數據量大建議用文本編輯器EmEditor(只有Windows系統有此軟件)打開,此編輯器會對csv文件特殊排版處理
3.如果表格打開csv文件是亂碼,請用文本編輯器打開轉換成ANSI編碼(也可以不轉換編碼,用表格里的數據->獲取外部數據->自文本導入)
4.數據量104萬以上的數據量表格計算方法
a.使用office 2013以上版本的Power pivot進行計算,對表格使用水平要求很高,能否計算出來還和計算機內存有關
b.使用tableau等BI工具計算
c.先細分好幾個小表格計算,再合並匯總數據,此法及其麻煩,非常不建議此方法(不符合批量操作原則)
產生這種需求原因:
1.大部分是對表格不熟悉,不知道104萬行以上對表格意味着什么
2.有一部分需要這數據,但不知道數據有多少,一查發現超104萬行
3.一部分對數據不信任與不放心
4.極個別需求確實逃不開104萬行數據的(主要是要明細數據)
正確解決方案:
1.對於原因1與原因2,弄清楚需求方要做什么,做這件事的流程是什么,主要關鍵變量是什么。
經典案例:某同事,要了半年某省結算記錄(2000萬左右數據量),原因是他們領導一句話要分析某某數據。正確做法就給相對應類型數據的統計即可。
2.沒有信任成本會比較高昂,難以把控做事的粒度。
替代方案:
給統計數據+SQL截圖+抽樣明細
經典案例:一同事,曾經經常想要1000多萬明細,他對數據不放心,想存底留一份數據以后備用。問了幾個問題,數據以后你看嗎,你用什么打開這數據,你怎么計算這數據,你主要看數據的什么指標。發現數據給他他什么都做不了,然后給他了解決方案,他要的數據主要就是看月份、金額,以后只要統計即可。
3.有極個別需求確實逃不開明細的
有極個別需求必須要超過104萬行以上數據,也歸屬在不合理需求范疇,因為是絕大部分需求方處理不了這數據。
弄清楚為什么必須得是明細,我們能在明細級別上,根據對應要求在系統里幫忙實現嗎
現實狀況
1.解釋這件事有時費時費力,個人時間、精力往往不夠,數據先直接給需求方csv格式
2.不是對方業務線,不了解需求方業務,想幫忙處理也發現較難(我有數據處理技術無業務技術邏輯,對方有業務技術邏輯但沒處理這數據的技術)
總結
百萬,千萬級別數據,人看不過來,表格難以處理。正確做法是知道自己要做什么,是求和還是計數。清楚了自己要做什么,數據才有意義。需求合不合理只是相對的,如果對方完全有技術能力處理大型數據,需求是合理的。實際大部分需求方都沒這種能力,大部分是要把表格拆成好幾個表,再計算,計算完再合並,這是很不提倡的做法,但對於他們可能確是唯一的處理方法。
Changelog
210122新增結論先行
191213新增原因
180807創建