ArangoDB(一)安装与部署
ArangoDB部署
特点
NoSQL数据库
原生多模型数据库,兼有key/value、graph图和document文档数据模型
支持AQL和API来查询数据
高性能,速度极快
空间利用率高,占用的存储空间少
支持垂直和水平扩展
秒级启动
支持多种操作系统
开源免费
支持主从集群
与关系型数据库相比的优势:
1、关系表达直接、直观,易于建模;
2、插入数据高效,因为只需要插入顶点,然后通过边来维系点与点之间的关系;
3、高效的查询关联数据,尤其是上述的多层关联关系时,传统的关系型数据库,一般来说都是需要做表连接的,对资源的消耗极大。图数据库在这点上做了针对性的优化,防止局部数据的查询引发全部数据的读取。
ArangoDB程序及其作用
arangod ,数据库的守护进程
arangosh ,数据库的shell环境
arangoimp, 导入工具
arangodump 备份工具
arangorestore 恢复工具
foxx-manager 管理Foxx应用程序
aranggo-dfdb 数据文件调试器
arangob 主要用于ArangoDB的开发和测试
关键概念
AQL:arangodb query language,arangodb的查询语言,可与类似于SQL。
Database:下有多个Collection
Collections:有Docunment和Edge两种类型,这个可以类似于Oracle上的表,AQL不能操作Collections
Document:可以类似于Oracle上表中的一条记录,
Edge:可以类似于Oracle上表中的一条记录,跟Document不同的是,这个存储的是Document之间的关系。
存储引擎
版本3.2之后支持两种存储引擎 :MMFiles和RocksDB
3.4之前默认为MMFiles,3.4及之后默认采用RocksDB
部署安装
上传rpm文件
执行 rpm -ivh arangodb3-xxx.x86_64.rpm
getting-started:www.arangodb.com/docs/stable/getting-started.html
congiguring-storage-engine:https://www.arangodb.com/docs/stable/programs-arangod-server.html#storage-engine
configuration file: /etc/arangodb3/arangod.conf
start arangodb sheel client: /usr/bin/arangosh
start service: systemctl start arangodb3.service
enable service :systemctl enable arangodb3.service
设置root密码:arango-secure-installation
修改arangod配置文件:
vi /etc/arangodb3/arangod.conf
将 endpoint = tcp://127.0.0.1:8529 修改为:endpoint = tcp://本机IP:8529
修改 authentication = false
修改arangosh配置文件
vi /etc/arangodb3/arangosh.conf
将 endpoint = tcp://127.0.0.1:8529 修改为:endpoint = tcp://本机IP:8529
修改 authentication = false
查看arangodb状态:systemctl status arangodb3
启动:systemctl start arangodb3 或service arangodb3 status
重启:systemctl restart arangodb3
集群
集群特点:
满足CP的master-master模型,优先保证数据的一致性。
可扩展
故障恢复,自动选举leader,快速恢复数据服务
分布式存储,每个Collect都切割分布式存储到各个DB Server上
同步备份,每份数据都保持多个副本
集群角色:
集群中有4种节点:Agent,Coordinator,Primary(DBServer) 和 Secondary。前三者必选,Secondary可选。
Agent:集群的配置中心,负责leader的选举和数据同步服务。
Coordinator:负责集群与外界交互。coordinator指导数据存储在哪里,对查询可以做优化
Primary(DBServer):存储仓库。管理数据的分片和分片的主从复制工作
部署方式:
# 启动Master
arangodb --starter.data-dir=/root/arangodb/db1 --server.storage-engine=rocksdb start
# 启动其他节点
arangodb --starter.data-dir=/root/arangodb/db2 --server.storage-engine=rocksdb --starter.join xx.xx.xx.xxx start
arangodb --starter.data-dir=/root/arangodb/db3 --server.storage-engine=rocksdb --starter.join xx.xx.xx.xxx start
重申: Master 概念只是创建集群时的叫法,创建好之后,无Master节点,所有节点地位是一样的。
数据导出与导入
导出
arangodump --server.endpoint tcp://<ip>:<port> --server.username <username> --server.password <passwd> --server.database <database> --output-di rectory /<arangodb-bak-path>/dump-$(date "+%Y%m%d-%H:%M:%S")
导入document
arangoimp --file /path/airports.csv --collection airports --create-collection true --type csv --server.endpoint "http+tcp://{IP}2:8529"
导入edge
arangoimp --file /PATH/flights.csv --collection flights --create-collection true --type csv --create-collection-type edge --server.endpoint "http+tcp://{IP}2:8529"
关闭arangod集群
pkill -f arangod
相关文章