2016-01-20 70 views
1

我一直保存文件爲.csv一年多,並將這些文件連接到Tableau Desktop,以便一些最終用戶(使用Tableau Reader查看數據)。使用postgres替換csv文件(大熊貓來加載數據)

我想我決定遷移到postgreSQL,我將使用熊貓庫to_sql來填補它。

  • 我得到的每一天9個不同的文件,我處理他們每個人(我現在把它們合併成.csv.bz2格式月刊文件),通過添加列,計算,置換信息等
  • 我創建兩個使用pd.concat和pd.merge的大量csv文件,其中包含Tableau連接到的 已處理文件。這些文件是從字面上覆蓋在添加新的數據每天這是費時

是否還好還是做我的文件連接和串聯與大熊貓和輸出數據導出到Postgres的?這將是我第一次使用真正的數據庫,與學習SQL語法和創建視圖或表格相比,我更喜歡熊貓。我只是想避免一遍又一遍地覆蓋相同的csv文件(以及其他一些我遇到的csv問題)。

+1

每個問題有1個問題,目前這個問題過於寬泛 – EdChum

+0

將其縮小到我的主要問題和我最猶豫的事情上(因爲當我閱讀數據庫時,我看到了很多關於規範化表格以及我和我最初的實現肯定不會那麼幹淨......我基本上將它用作一個大的平面文件來存儲數據並將Tableau連接到) – trench

回答

2

不要太擔心正常化。正常規範化的數據庫通常比非規範化的數據庫更有效,更易於處理。另一方面,如果您將非標準化的csv數據轉儲到數據庫中,那麼如果進行適當的規範化處理,則導入函數將變得複雜得多。我想我會建議你在這個時候邁出一步。只需將處理後的csv文件加載到postgres中即可啓動。我很確定接下來的所有處理將比使用csv-files(只要確保設置正確的索引)更容易和更快速。當你開始習慣使用數據庫時,你可以開始在那裏做更多的處理。

只要記住,數據庫真正擅長的一件事就是挑選出想要處理的數據子集。儘可能地嘗試避免從數據庫中提取大量數據,因爲只打算處理其中的一部分數據。

+0

這很好聽。爲了能夠從csv文件讀取一定範圍的日期,我不得不做很多解決方法,並且我無法指定我感興趣的某個ID,因此查詢會有所幫助。 pandas to_sql是否爲我處理數據類型還是我首先在postgres中構造表並分配數據類型? – trench