Database-Recommendation
使用數據庫儲存從 Internet 提取的數據
我正在使用他們的 API 從社交網路探勘 5 億使用者和他們的“追隨者”。數據本身的提取不是問題,因為我可以用我的腳本來完成。然而,在記憶體列表中擁有 5 億使用者及其追隨者可能會非常昂貴。
我的腳本創建了兩個列表,一個包含我已經獲得關注者的使用者,另一個包含要查看的使用者(我會獲取每個使用者,將他們的關注者放入隊列中,寫入文件,然後轉到下一個一。)所以這將是2個我無法在記憶體中處理的長列表。所以我想到了一個數據庫。
所以最後我的問題是,對我來說,使用關係數據庫更好,還是像 Neo4j 這樣的 NoSQL、圖形、數據庫更好。我現在得到的唯一資訊是使用者 ID 和關注者的 ID,稍後我想分析它們(用於圖論研究)。我想到了一個數據庫,因為我以後可能也會嘗試添加更多資訊。
謝謝你。
表面上聽起來像是圖形數據庫問題。如果您要在使用者之間走動,neo4j 之類的可能適合您。
您可以使用文件數據庫進行更通用的處理,其中每個使用者都有一個 user_id 的 _id 和一個追隨者 _id 的數組。
也許您可以輸出到 MongoDb,然後使用 Neo4j 為專門的工作創建圖,並使用 mongodb 進行更一般的工作。MapReduce 和 MongoDb 中的聚合框架非常好(從經驗上講,雖然 MapReduce 比聚合框架(目前)強大得多)。
由於模式可能會變形,並且您不知道附加數據將是什麼,因此您可能更喜歡文件或圖形數據庫而不是 RDB。如果您希望稍後以關係方式工作,您可以在定義模式後生成 csv 提取以上傳到您選擇的 RDBMS。