[英]querying larg text file containing JSON objects
我有幾千GB格式的文本文件:{“user_ip”:“xxxx”,“action_type”:“xxx”,“action_data”:{“some_key”:“some_value”...},...}
每個條目都是一行。
首先,我想輕松找到給定ip的條目。 這部分很簡單,因為我可以使用grep例如。 然而即便如此,我希望找到更好的解決方案,因為我希望盡快得到答復。
下一部分更復雜,因為我想從選定的ip和所選類型中找到條目,並在action_data中找到some_key的特定值。
可能我必須將此文件轉換為SQL db(可能是SQLite,因為它將是桌面APP),但我會問是否存在更好的解決方案?
是的,將它放入數據庫,任何數據庫。 然后查詢它將是直截了當的。
只是想提一下,Oracle Berkeley DB 11gR2(2010年4月1日發布)引入了對SQL API的支持。 實際上,SQL API 是 sqlite3()API。 因此,正如Jason所說,如果你喜歡SQLite的易用性,再加上Berkeley DB的可擴展性和並發性,你現在可以將它們放在一個庫中。
問候,
戴夫
如果您需要基於SQL的數據庫的關系保證,請務必繼續使用SQLite 。 它可以實現快速查詢,連接,聚合,排序以及您可能想到的任何類型的搜索。 聽起來這只是用戶在某些IP上執行的操作的大列表,因此您可能希望使用某種序列作為主鍵,因為其他任何屬性都不是好的候選者。
另一方面,如果您只需要進行非常簡單的查詢,例如按IP查找條目,按操作類型查找條目等,您可能需要查看Oracle Berkeley DB 。 只要您不需要任何過於花哨的搜索,Berkeley DB就會讓您存儲太字節數據並以創紀錄的速度訪問它們。
所以,看看兩者,看看什么是最適合您的用例。 它們適用於不同的東西,這可能就是為什么兩者都可以作為Android上的存儲系統使用的原因。 我認為SQLite可能會勝出,但在考慮嵌入式本地數據庫系統時,您應該始終至少考慮這兩種技術。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.