Hbase+Phoenix+Mybatis+Springboot如何进行整合查询数据
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章给大家介绍Hbase+Phoenix+Mybatis+Springboot如何进行整合查询数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Phoenix Query S
千家信息网最后更新 2025年01月23日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 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安全错误
数据库的锁怎样保障安全
飞旭软件开发有限责任公司
qq三国如何挂云服务器
南京海奥普互联网科技有限公司
腾讯视频怎么显示无法连接服务器
甘肃戴尔服务器维修维保价格
软件开发协议审核要点
网络安全的认识哲学
深圳服务器系统运维咨询
该如何创建方舟手游服务器
网络安全产业园区协作
linux高性能服务器
unity跨平台软件开发
国家网络安全宣传周活动主场
国家关于网络安全人才培养
人口基础数据库包括哪些数据
基于服务器的车间管理
tab服务器
泉州微信插件 软件开发
智能软件开发项目信息
江苏东云互联网科技有限公司
webform绑定数据库
租个游戏服务器多少钱
新h3c服务器硬盘
服务器一键系统安装系统安装
汽车车载网络技术的论文
机器学习软件开发框架交流
国开大数据库应用技术小结练习
哈密软件开发大概费用
古斯魔兽单机数据库密码
有线宽带总服务器在哪里