图数据库Graph Database
面向图的数据库
数据模型以节点和关系(边)来体现,也可以处理键值对
原生的/非原生的(RDBMS/NoSQL)
Apach Jena开源数据库
安装:
docker pull stain/jena-fuseki
启动:
docker run -d -p 3030:3030 -e "ADMIN_PASSWORD=test@jena" stain/jena-fuseki
访问:
localhost:3030
admin
test@jena
数据导入:
1、Fuseki手动导入
2、TDB导入
/jena-fuseki/tdbloader --loc=/jena-fuseki/data filename
数据查询:
fuseki-server指令打开服务器后用endpoint接口查询
SPARQL:
SELECT DISTINCT ?trackID
WHERE{
?trackID track_artist artisrID.
}
LIMIT 2
SELECT(COUNT(?trackID) AS ?num)
WHERE{
?trackID track_tag tag_name.
}
UNION
{
?trackID track_tag tag_name2.
}
其他开源数据库:
RDF4J
gStore:支持1Billion三元组规模的RDF
商业数据库:
Virtuoso
Allgrograph
Stardog
原生图数据库:
Neo4j:Cypher查询语言
OrientDB:支持多种数据库异构
Titan:图数据库中介
Benchmark
常用衡量指标:
load time
repository size
query response time
throughputs
inference support
图计算
图性质计算(pagerank/最短路径)
图挖掘
图数据库实现细节
SPO,POS,OSP
merge join /hash join
字节编码与位编码