×

hbase 数据库

为什么说HBase是列式数据库?用java怎么连接到mysql数据库

admin admin 发表于2022-05-27 06:52:51 浏览155 评论0

抢沙发发表评论

为什么说HBase是列式数据库


Hbase是一个面向列存储的分布式存储系统,它的优点在于可以实现高性能的并发读写操作,同时Hbase还会对数据进行透明的切分,这样就使得存储本身具有了水平伸缩性。

通常,顺序读取数据要比随机访问更快。而且,硬盘寻址时间的提升比起CPU速度的进步要慢得多 (参看摩尔定律),在使用硬盘作为存储媒介的系统上这种情况很可能还会持续一段时间。

下面简单罗列了一些选择行数据库还是列数据库的权衡依据。当然,如果能够把数据全放在内存中,那么使用内存数据库性能会更好。

特点:

因为硬盘寻址时间相较于计算机上其他部件的运行速度来说不是一般的慢,所以常用相同工作负载下的硬盘访问性能来比较行数据库和列数据库。

在只需要根据某几列来聚合数据的时候按列的数据组织方式更有效。因为这样只需要读取一部分数据,要比读取全部数据更快。

当只需要修改某一列值的时候按列的数据组织方式更有效。因为可以直接找到某列数据并改,而与行中的其他列无关。


用java怎么连接到mysql数据库


当然,首先要安装有JDK(一般是JDK1.5.X)。然后安装MySQL,这些都比较简单,具体过程就不说了。配置好这两个环境后,下载JDBC驱动mysql-connector-java-5.0.5.zip(这个是最新版的)。然后将其解压缩到任一目录。我是解压到D盘,然后将其目录下的mysql-connector-java-5.0.5-bin.jar加到classpath里,具体如下:“我的电脑”-》 “属性” -》 “高级” -》 “环境变量”,在系统变量那里编辑classpath,将D:\mysql-connector-java-5.0.5\mysql-connector-java-5.0.5-bin.jar加到最后,在加这个字符串前要加“;”,以与前一个classpath区分开。然后确定。
环境配置好了,很简单。现在,先配置MySQL,设其用户名为“root”,密码为“root”。在命令行或用一个SQL的前端软件创建Database。
我是用SQLyog的前端软件来创建Database的。
先创建数据库:
CREATE DATABASE SCUTCS;
接着,创建表:
CREATE TABLE STUDENT
(
SNO CHAR(7) NOT NULL,
SNAME VARCHAR(8) NOT NULL,
SEX CHAR(2) NOT NULL,
BDATE DATE NOT NULL,
HEIGHT DEC(5,2) DEFAULT 000.00,
PRIMARY KEY(SNO)
);
然后插入数据,可以用SQL语句insert into 《表名》 values (value1, value2, ...);
也可以用SQLyog来操作

好了,创建好了。
下面,我们来编写.java文件来演示一下如何访问MySQL数据库。
import java.sql.*;
public class JDBCTest {
public static void main(String args){
// 驱动程序名
String driver = “com.mysql.jdbc.Driver“;
// URL指向要访问的数据库名scutcs
String url = “jdbc:mysql://127.0.0.1:3306/scutcs“;
// MySQL配置时的用户名
String user = “root“;

// MySQL配置时的密码
String password = “root“;
try {
// 加载驱动程序
Class.forName(driver);
// 连续数据库
Connection conn = DriverManager.getConnection(url, user, password);
if(!conn.isClosed())
System.out.println(“Succeeded connecting to the Database!“);
// statement用来执行SQL语句
Statement statement = conn.createStatement();
// 要执行的SQL语句
String sql = “select * from student“;
// 结果集
ResultSet rs = statement.executeQuery(sql);
System.out.println(“-----------------“);
System.out.println(“执行结果如下所示:“);
System.out.println(“-----------------“);
System.out.println(“ 学号“ + “\t“ + “ 姓名“);
System.out.println(“-----------------“);
String name = null;
while(rs.next()) {

// 选择sname这列数据
name = rs.getString(“sname“);
/* 何问起 hovertree.com */
// 首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
// 然后使用GB2312字符集解码指定的字节数组
name = new String(name.getBytes(“ISO-8859-1“),“GB2312“);
// 输出结果
System.out.println(rs.getString(“sno“) + “\t“ + name);
}
rs.close();
conn.close();
} catch(ClassNotFoundException e) {

System.out.println(“Sorry,can`t find the Driver!“);
e.printStackTrace();

} catch(SQLException e) {

e.printStackTrace();

} catch(Exception e) {

e.printStackTrace();

}
}
}

接下来我们运行一下看下效果:
D:\testjdbc》javac JDBCTest.java
D:\testjdbc》java JDBCTest
Succeeded connecting to the Database!
-----------------------
执行结果如下所示:
-----------------------
学号 姓名
-----------------------
0104421 周远行
0208123 王义平
0209120 何问起
0309119 李 维
0309203 欧阳美林
0309226 柯乐义
哈哈,成功啦
-hbase

数据库的“EXEC”是什么意思应该怎么用


sqlserver中
EXEC命令有两种用法,一种是执行一个存储过程,另一种是执行一个动态的批处理

1.使用系统存储过程sp_executesql运行Unicode命令字符串
语法如下:
sp_executesql [@stmt=] stmt
[
{,[@params=] N’@parameter_name data_type [,...n]’}
{,[@param1=] ’value’ [,...n]}
]
说明:必须先将各个包含所要运行的命令语句的Unicode字符串相加在一起,再交给系统存储过程sp_executesql来运行,而不能在sp_executesql的语句中来相加各个命令字符串。
举例如下:
declare @DBName nvarchar(20),
@Tbname nvarchar(20),
@SQLString nvarchar(500)
set @DBName=N’Northwind’
set @Tbname=N’Customers’
set @SQLString=N’USE ’+@DBName+char(13) --char(13)换行
SET @SQLString=@SQLString+N’select * from ’+@Tbname
--必须先将命令字符串组合完毕后再交给sp_executesql来运行
exec sp_executesql @SQLString

2.使用EXECUTE命令运行命令字符串
要使用EXECUTE命令来运行一个命令字符串的语法如下:
EXEC[UTE] ({@string_variable|[N] ’stql_string’} [+...n])
从语法看出,可以先将包含所要运行的命令的字符串赋给一个局部变量@string_variable,再使用EXECUTE命令来运行,或是直接使用EXECUTE命令去运行一个包含所要运行的命令语句的字符串。此外,您也可以将多个包含所要运行的命令语句的字符串相加在一起,再交给EXECUTE命令来一次运行。

例:
declare @sql nvarchar(4000)
set @sql=’select * from [表] where email=’’test@163.com’’’
exec (@sql)
-数据库