- 1、哪種python json框架做iOS APP後台服務最好
- 2、數據存在資料庫里不是更好嗎?為什麼要存在json里呢?
- 3、json能代替資料庫嗎
- 4、技術選型 – OLAP大數據技術哪家強?
- 5、數據存儲到伺服器上用JSON格式比較好還是直接資料庫比較好
- 6、開源高性能KV資料庫
如果你只需要一個可以返回json格式數據的python框架,那麼python所有的web框架都是可以的,django,flask,webpy,bottle等等都是可以的,選一個你熟悉的就可以了。
如果解決了您的問題請採納!
如果未解決請繼續追問
難道是以JSON的格式儲存,減少資料庫訪問,加快效率。訪問數量少看不出來。當訪問量大的時候,相對減輕伺服器的壓力。貌似是這樣。
少量的數據可以用json來儲存,但說到代替資料庫,那就有點嚇人了,當個笑話說說可以,千萬別傳出去。
Lambda架構的核心理念是「流批一體化」,因為隨著機器性能和數據框架的不斷完善,用戶其實不關心底層是如何運行的,批處理也好,流式處理也罷,能按照統一的模型返回結果就可以了,這就是Lambda架構誕生的原因。現在很多應用,例如Spark和Flink,都支持這種結構,也就是數據進入平台後,可以選擇批處理運行,也可以選擇流式處理運行,但不管怎樣,一致性都是相同的。
Kylin
Kylin的主要特點是預計算,提前計算好各個cube,這樣的優點是查詢快速,秒級延遲;缺點也非常明顯,靈活性不足,無法做一些 探索 式的,關聯性的數據分析。
適合的場景也是比較固定的,場景清晰的地方。
ClickHouse
Clickhouse由俄羅斯yandex公司開發。專為在線數據分析而設計。
Clickhouse最大的特點首先是快 ,為了快採用了列式儲存,列式儲存更好的支持壓縮,壓縮後的數據傳輸量變小,所以更快;同時支持分片,支持分散式執行,支持SQL。
ClickHouse很輕量級,支持數據壓縮和最終數據一致性,其數據量級在PB級別。
另外Clickhouse不是為關聯分析而生,所以多表關聯支持的不太好。
同樣Clickhouse不能修改或者刪除數據,僅能用於批量刪除或修改。沒有完整的事務支持,不支持二級索引等等,缺點也非常明顯。
與Kylin相比ClickHouse更加的靈活,sql支持的更好,但是相比Kylin,ClickHouse不支持大並發,也就是不能很多訪問同時在線。
總之ClickHouse用於在線數據分析,支持功能簡單。CPU 利用率高,速度極快。最好的場景用於行為統計分析。
Hive
Hive這個工具,大家一定很熟悉,大數據倉庫的首選工具。可以將結構化的數據文件映射為一張資料庫表,並提供完整的sql查詢功能。
主要功能是可以將sql語句轉換為相對應的MapReduce任務進行運行,這樣可能處理海量的數據批量,
Hive與HDFS結合緊密,在大數據開始初期,提供一種直接使用sql就能訪問HDFS的方案,擺脫了寫MapReduce任務的方式,極大的降低了大數據的門檻。
當然Hive的缺點非常明顯,定義的是分鐘級別的查詢延遲,估計都是在比較理想的情況。 但是作為數據倉庫的每日批量工具,的確是一個穩定合格的產品。
Presto
Presto極大的改進了Hive的查詢速度,而且Presto 本身並不存儲數據,但是可以接入多種數據源,並且支持跨數據源的級聯查詢,支持包括複雜查詢、聚合、連接等等。
Presto沒有使用MapReduce,它是通過一個定製的查詢和執行引擎來完成的。它的所有的查詢處理是在內存中,這也是它的性能很高的一個主要原因。
Presto由於是基於內存的,缺點可能是多張大表關聯操作時易引起內存溢出錯誤。
另外Presto不支持OLTP的場景,所以不要把Presto當做資料庫來使用。
Presto相比ClickHouse優點主要是多表join效果好。相比ClickHouse的支持功能簡單,場景支持單一,Presto支持複雜的查詢,應用範圍更廣。
Impala
Impala是Cloudera 公司推出,提供對 HDFS、Hbase 數據的高性能、低延遲的互動式 SQL 查詢功能。
Impala 使用 Hive的元數據, 完全在內存中計算。是CDH 平台首選的 PB 級大數據實時查詢分析引擎。
Impala 的缺點也很明顯,首先嚴重依賴Hive,而且穩定性也稍差,元數據需要單獨的mysql/pgsql來存儲,對數據源的支持比較少,很多nosql是不支持的。但是,估計是cloudera的國內市場推廣做的不錯,Impala在國內的市場不錯。
SparkSQL
SparkSQL的前身是Shark,它將 SQL 查詢與 Spark 程序無縫集成,可以將結構化數據作為 Spark 的 RDD 進行查詢。
SparkSQL後續不再受限於Hive,只是兼容Hive。
SparkSQL提供了sql訪問和API訪問的介面。
支持訪問各式各樣的數據源,包括Hive, Avro, Parquet, ORC, JSON, and JDBC。
Drill
Drill好像國內使用的很少,根據定義,Drill是一個低延遲的分散式海量數據互動式查詢引擎,支持多種數據源,包括hadoop,NoSQL存儲等等。
除了支持多種的數據源,Drill跟BI工具集成比較好。
Druid
Druid是專為海量數據集上的做高性能 OLAP而設計的數據存儲和分析系統。
Druid 的架構是 Lambda 架構,分成實時層和批處理層。
Druid的核心設計結合了數據倉庫,時間序列資料庫和搜索系統的思想,以創建一個統一的系統,用於針對各種用例的實時分析。Druid將這三個系統中每個系統的關鍵特徵合併到其接收層,存儲格式,查詢層和核心體系結構中。
目前 Druid 的去重都是非精確的,Druid 適合處理星型模型的數據,不支持關聯操作。也不支持數據的更新。
Druid最大的優點還是支持實時與查詢功能,解約了很多開發工作。
Kudu
kudu是一套完全獨立的分散式存儲引擎,很多設計概念上借鑒了HBase,但是又跟HBase不同,不需要HDFS,通過raft做數據複製;分片策略支持keyrange和hash等多種。
數據格式在parquet基礎上做了些修改,支持二級索引,更像一個列式存儲,而不是HBase schema-free的kv方式。
kudu也是cloudera主導的項目,跟Impala結合比較好,通過impala可以支持update操作。
kudu相對於原有parquet和ORC格式主要還是做增量更新的。
Hbase
Hbase使用的很廣,更多的是作為一個KV資料庫來使用,查詢的速度很快。
Hawq
Hawq是一個Hadoop原生大規模並行SQL分析引擎,Hawq採用 MPP 架構,改進了針對 Hadoop 的基於成本的查詢優化器。
除了能高效處理本身的內部數據,還可通過 PXF 訪問 HDFS、Hive、HBase、JSON 等外部數據源。HAWQ全面兼容 SQL 標準,還可用 SQL 完成簡單的數據挖掘和機器學習。無論是功能特性,還是性能表現,HAWQ 都比較適用於構建 Hadoop 分析型數據倉庫應用。
將Json格式的數據保存到資料庫本來就是很奇葩的做法。
Json更多的時候用於數據的傳輸,尤其是程序後端與前台界面之間進行交互。
功能支持
使用說明
快速上手
重打開或創建一個資料庫
註冊當TTL超時刪除事件通知
插入一條記錄,(當重複Put同key時操作等同於更新內容操作)
設置一條已存在記錄並8秒後超時自動刪除
刪除一條記錄
性能
插入隊列壓力測試
300,0005865ns/op516B/op9allocs/op
取出隊列壓力測試
200,00014379ns/op1119B/op20allocs/op
KET VALUE 集合操作
import
重打開或創建一個資料庫
註冊當TTL超時刪除事件通知
插入一條記錄,(當重複Put同key時操作等同於更新內容操作)
插入一條記錄並設置3秒後超時自動刪除
設置一條已存在記錄並8秒後超時自動刪除
刪除一條記錄
操量操作(事務) Op為put時操作插入或更新,Op為del時操作刪除
指定key取一條記錄
返回全庫的Key數據
返回所有K,V數據
按key開始位返回後續所有數據
以時間範圍查詢數據示例
匹配正則表達式為開頭的數據
struct對象的相關操作
指定key取一條記錄
返回所有記錄
按key開始過濾返回
按key範圍取數據
插入一條記錄struct對象以json保存
指定key取一條記錄
返回所有記錄
MIX 設計是基於原KV庫只有單維度存儲方式,從而缺失了二維度的存儲方式,所以MIX式庫被設計出來
寫入 raw
取出一個
查詢指定表的欄位是否存在
以raw讀出表數據
寫入及取出object
刪除指定表的指定欄位
刪除整個表所有數據
##創建支持分組的kvdb
寫入數據到分組
刪除分組
消息隊列 (FIFO)[先進先出]原則
import
重打開或創建一個隊列資料庫
推一個字元串到隊列中
推一個對象到隊列中
推一個bytes切片到隊列中
推一批bytes切片到隊列中
取出一條記錄,取出成功後記錄會被刪除
提取一條記錄,但不刪除原記錄
根據偏移量提取記錄
更新一個隊列原記錄bytes類型
更新一個隊列原記錄字元串類型
更新一個隊列原記錄對象類型
import
重打開或創建一個分組隊列資料庫
以對象存儲到隊列中
以切片存儲到隊列中
刪除指定分組
性能指標
開源地址:
wiki地址:
原創文章,作者:TAVFV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126618.html