1,简介
VoltDB数据库是一个分布式,可扩展,shared-nothing的内存数据库。使用JAVA 写的存储过程来定义事务。使用标准SQL访问数据,使用并行的单线程处理方式确保数据一致性,同时避免了传统数据库的锁,插销,资源管理开销。VoltDB 架构从一开始设计为高性能业务关键型应用的最佳解决方案,其吞吐量是当前数据库产品的 45 倍。该体系结构还允许 VoltDB 数据库随着数据量和事务要求的增长而向群集中添加处理器,从而轻松扩展。 VoltDB具有如下特点:
高吞吐量:百万次每秒
横向拓展:可以根据需求自由拓展,性能线性增长。
高可用性:数据支持副本、也可以持久化保存、除此之外,还支持双活机制。
实时数据分析:数据实时性高,因为都是内存计算。
完整ACID支持,保证事务性和可靠性。
ACID
- 原子性(Atomicity) VoltDB通过使用存储过程来确保原子性,一个存储过程执行必须等待前一个存储过程成功或因为失败而回滚结束。
- 一致性(Consistency) VoltDB强数据类型约定,在所有的数据库查询中强制schema与数据类型约束.
- 隔离性(Isolation) VoltDB事务全局(所有被影响的分区)顺序执行(没有交叉)(任何一个分区同一时间只有一个执行,即串行的)。
- 持久性(Durability) VoltDB提供K-safely机制以及snapshot,确保数据持久化。
2,安装要求
官方建议:
2.1 安装环境要求
- 本实验使用ubuntu1804
- python2.7以上,不支持python3
- java8
2.2官网注册账号,获取下载企业版链接
邮件内容如下:
注册地址https://www.voltdb.io/%e4%b8%8b%e8%bd%bdvoltdb%e4%bc%81%e4%b8%9a%e7%89%88/
2.3 下载voltdb
2.4 安装OpenJDK和python2.7
apt install openjdk-8-jdk
apt install python2.7
apt-get --reinstall install python-minimal
2.5 解压voltdb
mkdir /usr/local/voltdb9
cd /usr/local/src
tar xf voltdb-ent-9.3.1.tar.gz -C /usr/local/voltdb9
ln -s /usr/local/voltdb9/bin/voltdb /usr/bin/voltdb
ln -s /usr/local/voltdb9/bin/voltsql /usr/bin/voltsql
ln -s /usr/local/voltdb9/bin/sqlcmd /usr/bin/sqlcmd
2.6 运行
2.6.1 初始化工作空间
voltdb init
在当前目录生成voltdbroot文件夹,里面存放着数据库数据之类的东西,还有命令行快照,用来恢复数据
2.6.2 运行voltdb
voltdb start
2.6.2 通过cmd操作数据库
sqlcmd
2.6.3 关闭
voltadmin shutdown
2.6.4 连接管理后端
http://localhost:8080
3,操作测试
3.1 输入DDL语句
3.1.1 导入sql文件
示例:
$ sqlcmd < myschema.sql
或者
$ sqlcmd
1> file myschema.sql;
3.1.2 直接在 sqlcmd 提示符处输入 DDL:
示例:
$ sqlcmd
1>
2> CREATE TABLE Customer (
3> CustomerID INTEGER UNIQUE NOT NULL,
4> FirstName VARCHAR(15),
5> LastName VARCHAR (15),
6> PRIMARY KEY(CustomerID)
7> );