2012-08-03 85 views
0

我有一個要求,例如以固定的時間間隔運行'n'個select查詢並存儲該數據。這些結果需要根據客戶的要求提取。存儲查詢結果的有效方法?

我的問題是:

  • 1)它是好將其保存爲CSV文件?或者你可以建議另一種格式?
  • 2)或者,它應該作爲clob變量存儲在數據庫中嗎?

請建議任何壓縮技術來存儲這些查詢結果;另外,是否有可能僅存儲以前結果集的修訂版而不是存儲整個結果集?

注:

  • 的最小時間間隔爲每小時。
  • 查詢(n)的數量將變化(目前爲10〜200的查詢。)
  • 每個查詢的結果集大小也變化(比方說10〜1,000,000但大多10k左右。)
  • 的結果集數據在每個時間間隔之間取材並沒有太大的區別。 (行值不會經常更新)

我是新來的計算機科學和編程,也不是很瞭解存儲或數據庫設計。

回答

0

在性能方面,我認爲最好有一個用於存儲查詢結果的表。

+0

越接近cpu越好,在ram中緩存可能就像Spring Gemfire一樣。 – Eugene 2012-08-03 18:57:29

+0

但是,正如他所說,結果集可能包含數百萬個元素,並且必須存儲幾個小時,否則內存可能會成爲問題。 – kgautron 2012-08-03 19:00:23

+0

好,現在我將把它存儲在數據庫中,但不是每次存儲整個結果集,而是存儲以前結果集的差異 - [diff-match-patch](http://code.google.com/p/) google-diff-match-patch /)。如果出現任何性能問題,我會去@LekhnathKhanal建議的 – shadowfox 2012-08-04 11:45:47

0

我認爲你需要將數據存儲在數據庫中。 SQL數據庫可以爲您提供最好的服務。 對於在固定的時間間隔內存儲數據,您只需要在數據集中改變生效而不是一次又一次地存儲整個數據。我不知道你的要求是什麼,你可以承受多少基礎設施。如果你有這麼大的疑問,我建議你在Distributed System工作。使用NOSQL數據庫以獲得更好的性能。

+1

「使用NOSQL數據庫獲得更好的性能。」你在跟我開玩笑嗎?你可能只是告訴OP [使用MongoDB,因爲它是網絡規模](http://www.youtube.com/watch?v=b2F-DItXtZs)。 – 2012-08-03 19:18:55

+2

[鏈接](hbase.apache.org)發現自己的優勢。 HBase是一個Hadoop數據庫,實際上是NOSQL。想想分佈式系統在你的問題中的應用。我猜你有大量的數據集和龐大的查詢處理。 – ln2khanal 2012-08-03 19:44:09

+0

對不起,OP? @MattBall – ln2khanal 2012-08-05 23:38:16

相關問題