2016-03-19 46 views
2

我完全不熟悉使用數據庫管理數據,所以我希望我的問題不是太愚蠢,但我沒有發現任何相關的使用標題關鍵字...Python ORM - 保存或讀取文件的sql數據

我想設置一個SQL數據庫來存儲計算結果;這些都是使用python庫執行的。我的想法是使用像SQLAlchemy或peewee這樣的python ORM將結果存儲到數據庫中。然而,計算是由許多不同機器上的幾個人完成的,其中包括一些不直接連接到互聯網的機器:因此不可能簡單地使用一個公共數據庫。

將我有用什麼是節能的ORM的格式的數據,以便能夠一次我把數據傳送到主數據庫可訪問的機器再次直接讀取的方式。

總之,我想做的事:

  • 一號機:Python數據 - > ORM對象 - > ORM.fileformat
  • 聯網的機器上後調:ORM.fileformat - > ORM對象 - > SQL數據庫

有人會知道現有的ORM是否提供這種功能?

+0

你可以將其存儲在任何格式,然後將它當您連接傳輸到主數據庫,你想要的是一個統一的格式,因此轉移將很容易,那麼你需要的只是本地機器上的單個數據庫。 –

+0

是的,我的問題是,現有的ORM是否已經提供了這種功能,以幫助我省去編寫和解析文件的麻煩......這很痛苦 – Silmathoron

+1

您可以設置一個通用的數據庫,你說你不能,你設置一個在每臺機器上執行主數據庫更新時,如果連接了您對答案的評論,可能對您的羣集不太容易,或者您將數據保存在某個本地Python容器中,並在連接時執行更新。在這三種選擇之外,我沒有看到你能做什麼。一旦格式一致,編寫一個通用函數將是一個一次性的任務,應該是非常直接的,http://dev.mysql.com/doc/refman/5.7/en/load-data.html –

回答

0

好吧, 感謝MAhsan和Padraic的回答我能夠找到如何做到這一點:CSV格式確實很容易用於數據庫導入/導出。

下面舉例說明了SQLAlchemy的(import 1import 2export)和peewee

+1

由於您在兩臺計算機上都使用Python,因此您始終可以使用'pickle'序列化,不需要csv。 https://docs.python.org/3.6/library/pickle.html –

+0

沒有想到,我會試試看,謝謝! – Silmathoron

0

爲什麼有些機器無法連接到互聯網的原因是什麼?

如果實在不行,我會做的是建立一個數據庫,並在數據收集/生成的每個機器上的Python應用程序。讓每臺機器都使用該應用程序存儲到自己的本地數據庫中,然後可以在每臺機器上創建每個數據庫的轉儲並將這些結果導入到一個數據庫中。

不是理想的解決方案,但它會工作。

+0

是的:出於安全原因,因爲我們正在超級計算機上運行我們的一些計算(我們不擁有) 謝謝你的回答,如果事實證明沒有其他人,我會嘗試,儘管我不知道在羣集上運行mysql數據庫是否容易^^ – Silmathoron

+1

那麼,如果你不能在這些機器上安裝數據庫,那麼你可以將數據轉儲爲CSV文件。我相信MySQL支持使用CSV文件將數據導入表格。 – MAhsan