2011-10-12 68 views
2

這是我的問題: 我有很多已知的位置(我對這些沒有影響)有大量的數據。每個地點都爲我提供了大量新數據的個別時段。一些給我差異更新,一些只是整個數據集,一些通過XML,一些我必須建立一個webscrapper,一些需要認證等... 這些收集的數據應該存儲在數據庫中。我必須編寫一個API來將請求的數據以xml格式發回。收集,管理數據並通過api使其可用

許多道路通往羅馬,但我應該選擇哪一條?

你會建議我使用哪種軟件?

我熟悉C++,C#,Java,PHP,MySQL,JS,但新東西仍然可以。

我的想法是使用cron作業+ php(或shell腳本)+ curl來獲取數據。 然後,我需要一個模塊來解析和插入數據到數據庫(MySQL)。 來自客戶端的數據請求可以回答一個php腳本。

我認爲輸入數據量約爲1-5GB /天。

一個正確的答案不存在,但你能給我一些建議嗎? 如果你能告訴我更聰明的方法來做到這一點,那將是非常棒的。

非常感謝你:-)

+0

也許這將有助於更多地瞭解你的數據結構..有文件或表格數據或數據庫等一般我也想解決過去類似的問題,但我不知道任何框架/等等,這些都符合要求。 – rokdd

+0

它具有更多傳感器時間線,具有不同更新時間的> 30000個傳感器。 – vo1d

+0

從我的角度來看它看起來不那麼複雜..因爲你需要一箇中央數據庫。因爲您的所有數據具有相同的結構(id,userid,timestamp,sensorid,sensorvalue,sourceid,source_timestamp)。如果你將使用一種可用於很多語言的API,有時候編碼很難,但它應該可以工作。我在過去的json中使用,這是沒有API,但它是標準的。一個好的起點也許是認證的方式,以及你是否需要會話或每天只推送一次..也許你也可以在沒有任何api的情況下運行,如果你通過ftp或http從客戶端讀取文件。 – rokdd

回答

1

LAMP:堅持PHP和MySQL(和偶爾做出進軍的Perl/Python)的:PHP庫,存儲解決方案,可擴展性和API解決方案及其社區的可用性大小可以彌補其他任何環境的不足。

API:確保設計的API查詢(和存儲/數據庫)能夠滿足所有最終產品的需求,然後才能編寫任何導入程序。日期範圍,標記,特殊情況。

性能:如果您需要快速查詢瘋狂大型數據集,sphinx-search可以提供幫助。它不僅僅是文本搜索(標籤,二進制等),但確保你用更多的RAM來規定服務器要求。

IMPORTER:使它成爲模塊化:如同爲每個不同的數據源一樣,編寫一個可由管理員啓用/禁用的可插入導入器,當然也可以單獨測試。根據什麼是最好的和最簡單的工作選擇一種語言和庫:bash腳本沒問題。

在解析PHP的庫方面,有很多。最近流行的一個是simplehtmldom,我發現它工作得很好。

變壓器:使數據轉換程序模塊化以及因此它可以作爲一個需要時被寫入。不要讓進口商更改原始數據,只是將其作爲索引數據庫的最快途徑。無論最終結果如何,轉換例程(或更高版本的插件)都應與API查詢結合使用。

時序:有什麼不妥的cron執行,只要它們不會成爲失控或導致輸入源開始限制或阻止你,所以你需要這種意識。

VERSIONING:設計數據庫,導入等等,以便管理員可以輕鬆地回滾錯誤的數據。

供應商解決方案:退房scraperwiki - 他們做了一個企業走出刮痧工具和數據存儲。

希望這會有所幫助。出於好奇,任何項目的細節都是自願的?我的一位同事有興趣交換筆記。