圖資料庫比較
圖資料庫比較
圖資料庫 | 語言 | 圖引擎 | 後端儲存 | 訪問方式 | 備註 | |||
---|---|---|---|---|---|---|---|---|
Neo4j | java | Cypher http://www.opencypher.org/ | 定製化 | rest | 社群版節點限制 商業版不限制 | |||
Hugegraph 百度開源圖資料庫 | java | tinkerpop https://tinkerpop.apache.org/ | Rocksdb facebook開源 Cassandra | rest | 節點不限制 | |||
RedisGraph 官網 https://oss.redislabs.com/redisgraph/ | c | openCyper https://juejin.im/post/5aba18b85188255c4c104be2 http://www.opencypher.org/ https://github.com/opencypher/openCypher | 熱記憶體 | Redis client | 為支援高效的圖搜尋操作,RedisGraph 底層實現了一種稱為 Hexastore 的三元組儲存結構 採用稀疏矩陣表示,極大節省了記憶體https://laowei.wang/article/5d1dce6f4b3b1f3cfe5c4d2d redisGraph簡單調研 https://www.jianshu.com/p/abf5583bf7ac | |||
RedisGraph
採用熱記憶體,圖引擎cypher,關係圖使用稀疏鄰接矩陣,位操作,目前效能最佳的圖資料庫
圖表示模型
adjacent matrix
https://mathworld.wolfram.com/AdjacencyMatrix.html
新能測試:
- 啟動命令
redis-server --loadmodule /path/to/module/src/redisgraph.so
- 4000萬點,15億邊 twitter資料集
- 單機 250G記憶體 32核機器
https://redislabs.com/blog/new-redisgraph-1-0-achieves-600x-faster-performance-graph-databases/
編譯redisgraph
依賴
On Ubuntu Linux, run: apt-get install build-essential cmake m4 automake peg libtool autoconf
cmake
m4
automake
libtool
autoconf
install peg 失敗
-
需要編譯安裝https://www.piumarta.com/software/peg/ 選擇peg-0.1.18.tar.gz
-
編譯問題
https://stackoverflow.com/questions/9637551/relocation-r-x86-64-32s-against-rodata-while-compiling-on-64-bit-platform
編譯原始碼
tar -zxvf RedisGraph.tar.gz
cd RedisGraph
cd deps/rax/
vim Makefile
//Add -fPIC to CFLAGS or CXXFLAGS for make-based projects.
export CC=/opt/compiler/gcc-8.2/bin/gcc
export CXX=/opt/compiler/gcc-8.2/bin/g++
make -j8
make
make clean
find .|grep redisgraph.so
編譯及安裝問題
- 問題1,編譯失敗
…/deps/rax/rax.o: relocation r_x86_64_32 against `.rodata.str1.8’ can not be used when making a shared object; recompile with -fpic
編譯動態庫的時候需要使用
新增-fPIC
- 問題2,redis start失敗,查到版本低造成的,redis load失敗
https://github.com/RedisGraph/redisgraph-py/issues/24 - 問題3,使用4.0.20 load仍然失敗
RedisGraph requires redis-server version 5.0.7 and up
啟動後的log:
./redis-server --loadmodule /home/work/redis-graph/redisgraph.so
18067:M 27 Aug 2020 19:22:47.064 * Graph deletion will be done asynchronously.
18067:M 27 Aug 2020 19:22:47.064 * Thread pool created, using 8 threads.
18067:M 27 Aug 2020 19:22:47.064 * Maximum number of OpenMP threads set to 8
18067:M 27 Aug 2020 19:22:47.064 * Module ‘graph’ loaded from /home/work/redis-graph/redisgraph.so
18067:M 27 Aug 2020 19:22:47.065 * Ready to accept connections
測試
redis-cli client:
建立物件:
127.0.0.1:6379> GRAPH.QUERY social “CREATE (:person {name: ‘roi’, age: 33, gender: ‘male’, status: ‘married’})”
127.0.0.1:6379> GRAPH.QUERY social “CREATE (p:Person)-[:LIKES]→(t:Technology)”
查詢物件:
GRAPH.QUERY social “MATCH(Person) return Person”
參考文件
cypher語法使用 https://neo4j.com/developer/cypher/syntax/
cypher使用 https://www.cnblogs.com/ljhdo/p/5516793.html
相關文章
- 主流資料庫比較資料庫
- influxdb與傳統資料庫的比較UX資料庫
- mysql資料庫中decimal資料型別比較大小MySql資料庫Decimal資料型別
- 磁碟資料庫與記憶體資料庫的特點比較資料庫記憶體
- 資料庫系列:MySQL引擎MyISAM和InnoDB的比較資料庫MySql
- 開源向量資料庫比較:Chroma, Milvus, Faiss,Weaviate資料庫AI
- java比較mysql兩個資料庫中差異JavaMySql資料庫
- 區塊鏈與分散式資料庫的比較區塊鏈分散式資料庫
- 如何比較兩個資料庫表結構的不同資料庫
- 業務流程模型與資料流程圖的比較 - brcommunity模型流程圖Unity
- difflib: Python 比較資料集Python
- HHDESK資料夾比較功能
- 77種資料建模工具比較
- 淺談前端MOCK資料工具比較前端Mock
- 在 Linux 中用 Meld以圖形方式比較檔案和資料夾Linux
- python比較json/dictionary的庫PythonJSON
- 3 個 Python 模板庫比較Python
- mysql資料庫時間型別datetime、bigint、timestamp的查詢效率比較MySql資料庫型別
- 比較 Apache Hadoop 資料儲存格式 - techwellApacheHadoop
- mongodb資料遷移2種方式比較MongoDB
- 一款資料庫比較與同步軟體的設計與實現資料庫
- 檢視oracle資料庫中,哪些表的欄位是null值比較多Oracle資料庫Null
- 關聯式資料庫與文件資料庫對比資料庫
- K8S資料保護工具比較K8S
- 聊聊圖資料庫和圖資料庫的小知識資料庫
- 哪個品牌的雲資料庫比較好?重點關注這三個方面資料庫
- 關係型資料庫查詢語言 SQL 和圖資料庫查詢語言 nGQL 對比資料庫SQL
- Java幾種常用JSON庫效能比較JavaJSON
- HashMap,LinkedHashMap,TreeMap讀取大量資料效率的比較HashMap
- 資料湖表格式比較(Iceberg、Hudi 和 Delta Lake)
- 資料湖倉比較:Apache Hudi、Delta Lake、Apache IcebergApache
- Dapper, Ef core, Freesql 插入大量資料效能比較(二)APPSQL
- PHP基礎-資料型別-string和int比較PHP資料型別
- js 深比較和淺比較JS
- 圖資料庫對比:Neo4j vs Nebula Graph vs HugeGraph資料庫
- 聊聊何為圖資料庫和圖資料庫的小知識資料庫
- Spring Boot中兩個資料庫遷移工具Liquibase和Flyway的比較 - 4lexSpring Boot資料庫UI
- oceanbase資料庫比賽總結資料庫