Hbase+Phoenix+Mybatis+Springboot如何进行整合查询数据
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章给大家介绍Hbase+Phoenix+Mybatis+Springboot如何进行整合查询数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Phoenix Query S
千家信息网最后更新 2025年12月01日Hbase+Phoenix+Mybatis+Springboot如何进行整合查询数据
这篇文章给大家介绍Hbase+Phoenix+Mybatis+Springboot如何进行整合查询数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
Phoenix Query Server提供了一种与Phoenix和HBase交互的替代方法。很快,这将允许从JVM以外的环境进行访问。
在4.x和5.0版本中,查询服务器及其JDBC客户端是标准Phoenix发行版的一部分。它们不需要其他依赖项。
在5.0版本之后,查询服务器已被捆绑到phoenix-queryserver存储库中,并且其版本号已重置为1.0。在撰写本文时,没有独立查询服务器的发行版本。
由于我们安装的是apache-phoenix-5.0.0-HBase-2.0,所以里面内置了queryserver
1.启动queryserver,默认监听8765
> apache-phoenix-5.0.0-HBase-2.0-bin/bin/queryserver.py
2.自定义配置 vim hbase-site.xml
| 属性 | 描述 | 默认 |
|---|---|---|
| phoenix.queryserver.http.port | 指定服务器将侦听的端口。默认值为8765。 | 8765 |
| phoenix.queryserver.metafactory.class | 要实例化的Avatica Meta.Factory类。 | org.apache.phoenix.queryserver.server.PhoenixMetaFactoryImpl |
| phoenix.queryserver.serialization | 传输/序列化格式,PROTOBUF或JSON。 | PROTOBUF |
//将默认的8765端口改成8888phoenix\.queryserver\.http\.port 8888
3.pom.xml中引入Phoenix客户端
//轻量级客户端org.apache.phoenix phoenix-queryserver-client 5.0.0-HBase-2.0
4.完整的pom.xml
4.0.0 com.rumenz phoenix 0.0.1-SNAPSHOT phoenix Demo project for Spring Boot 1.8 UTF-8 UTF-8 2.3.0.RELEASE org.springframework.boot spring-boot-starter-web mysql mysql-connector-java runtime org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.0 org.apache.phoenix phoenix-queryserver-client 5.0.0-HBase-2.0 com.alibaba druid 1.1.21 org.springframework.boot spring-boot-dependencies ${spring-boot.version} pom import org.apache.maven.plugins maven-compiler-plugin 3.8.1 1.8 1.8 UTF-8 org.springframework.boot spring-boot-maven-plugin 2.3.0.RELEASE com.rumenz.phoenix.PhoenixApplication repackage repackage
5.数据源配置
package com.rumenz.phoenix;import com.alibaba.druid.pool.DruidDataSource;import org.apache.phoenix.queryserver.client.Driver;import org.mybatis.spring.annotation.MapperScan;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import javax.sql.DataSource;@Configuration@MapperScan(basePackages = "com.rumenz.phoenix.mapper")public class PhoenixForMybatisConfiguration { @Autowired private DataSourceProperties dataSourceProperties; @Bean public DataSource phoenixDataSource() { DruidDataSource druidDataSource = new DruidDataSource(); //设置Phoenix驱动 druidDataSource.setDriverClassName(Driver.class.getName()); druidDataSource.setUrl(dataSourceProperties.getUrl()); return druidDataSource; }}6.数据库操作类UserMapper
注意:由于我的HBase数据库表名和字段名都是小写所以我这里表名和字段名必须加上双引号,否则表名和字段名会变成大写,找不到对应关系,会报错。
如果HBase数据库中表名和字段名都是大写,那么则不需要双引号
package com.rumenz.phoenix.mapper;import com.rumenz.phoenix.entity.User;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Select;@Mapperpublic interface UserMapper { //表名和字段名必须加上双引号,否则表名和字段名会变成大写,找不到对应关系,会报错 @Select("select * from \"test2\" where \"id\"=#{id}") User selectById(Integer id);}7.实体类
package com.rumenz.phoenix.entity;public class User { private Integer id; private String name; private Integer age; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + '}'; }}8.访问控制UserController
package com.rumenz.phoenix.controller;import com.rumenz.phoenix.entity.User;import com.rumenz.phoenix.mapper.UserMapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/user/")public class UserController { @Autowired private UserMapper userMapper; @GetMapping("index") public String index(){ User user = userMapper.selectById(1); return user.toString(); }}9.访问http://127.0.0.1:8080/user/index
User{id=1, name='rumenz', age=30}关于Hbase+Phoenix+Mybatis+Springboot如何进行整合查询数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
数据
字段
查询
服务器
版本
服务
大写
客户
客户端
引号
数据库
UTF-8
整合
内容
名都
更多
端口
会报
发行
帮助
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云服务器免费试用活动
2020土地变更调查数据库标准
诺顿网络安全专业版密钥
学习软件开发的所有环境
数据库模式的定义
用数据库i怎么存图片
赣服通服务器
小学生网络安全法ppt课件
视频监控系统管理服务器
steam未转变者怎么进服务器
小学学校网络安全责任制落实方案
文山手机软件开发
苏州太仓市软件开发工作
广东安联网络安全技术有限公司
南京网络安全会
学生数据库中学号属于什么型
磊科255p网络安全设置
香肠派对一直服务器中断怎么办
成都税务软件开发者
c数据库开发实例
大学生对于网络安全的认识
香港软件开发公司名称
车载网络技术目的
提高网络安全保护能力
独立服务器有什么副作用
蓝裔科技互联网孙波
智能云服务器电脑配置
已经安装好的服务器怎么拆下来
网络技术和科技发展论文
深圳系统软件开发平台