当前位置: 首页 > news >正文

重庆铜梁网站建设德语网站建设

重庆铜梁网站建设,德语网站建设,网站服务器查询,哈尔滨寸金网站建设公司口碑目录 Phoenix Shell 操作 Phoenix JDBC 操作 Phoenix 二级索引 HBase整合Phoenix Phoenix 简介 Phoenix 是 HBase 的开源 SQL 皮肤。可以使用标准 JDBC API 代替 HBase 客户端 API来创建表#xff0c;插入数据和查询 HBase 数据 使用Phoenix的优点 在 Client 和 HBase …目录 Phoenix Shell 操作 Phoenix JDBC 操作 Phoenix 二级索引 HBase整合Phoenix Phoenix 简介 Phoenix 是 HBase 的开源 SQL 皮肤。可以使用标准 JDBC API 代替 HBase 客户端 API来创建表插入数据和查询 HBase 数据 使用Phoenix的优点 在 Client 和 HBase 之间放一个 Phoenix 中间层不会减慢速度Phoenix 对于用户输入的 SQL 有大量的优化手段 Phoenix 安装部署 1.下载并解压 官网地址Overview | Apache Phoenix 下载地址Phoenix Downloads | Apache Phoenix 下载好tar包之后上传到服务器上使用 tar -zxvf进行解压即可 2.server包配置 进入安装phoenix的路径下cd /opt/module/phoenix 找到server包 将其复制到hbase安装路径下的lib文件夹中并同步到其余所有节点上 3.配置环境变量 vim /etc/profile.d/my_env.sh自定义的环境变量文件 添加以下内容 #phoenix export PHOENIX_HOME/opt/module/phoenix export PHOENIX_CLASSPATH$PHOENIX_HOME export PATH$PATH:$PHOENIX_HOME/bin 4.启动phoenix 首先需要重启hbase 然后启动phoenix /opt/module/phoenix/bin/sqlline.py hadoop102,hadoop103,hadoop104:2181 出现以下界面说明启动成功 如果出现以下错误 警告: Failed to load history java.lang.IllegalArgumentException: Bad history file syntax! 说明之前之前使用过phoenix存在历史记录删除/home/用户名路径下的.sqlline文件夹即可 我的路径就是/home/why/.sqlline Phoenix Shell 操作 使用语法可以查看官网Grammar | Apache Phoenix 1.table 显示所有表 !table 或 !tables 创建表 指定单个列作为RowKey CREATE TABLE IF NOT EXISTS student( id VARCHAR primary key, name VARCHAR, age BIGINT, addr VARCHAR); 在 phoenix 中表名等会自动转换为大写若要小写使用双引号如us_population。 指定多个列的联合作为 RowKey CREATE TABLE IF NOT EXISTS student1 ( id VARCHAR NOT NULL, name VARCHAR NOT NULL, age BIGINT, addr VARCHAR CONSTRAINT my_pk PRIMARY KEY (id, name)); 注Phoenix 中建表会在 HBase 中创建一张对应的表。为了减少数据对磁盘空间的占用Phoenix 默认会对 HBase 中的列名做编码处理。具体规则可参考官网链接 Storage Formats | Apache Phoenix 若不想对列名编码可在建表语句末尾加上 COLUMN_ENCODED_BYTES 0; 插入数据 upsert into student values(1001,zhangsan, 10, beijing); 查询数据 select * from student; select * from student where id1001; 删除数据 delete from student where id1001; 删除表 drop table student; 退出命令行 !quit 2.表的映射 默认情况下 HBase 中已存在的表通过 Phoenix 是不可见的。如果要在 Phoenix 中操作 HBase 中已存在的表可以在 Phoenix 中进行表的映射。映射方式有两种视图映射和表映射 创建hbase表 在hbase shell中创建表testcreate test,info1,info2 视图映射 在phoenix中创建test的视图映射 create view test(id varchar primary key,info1.name varchar, info2.address varchar); 注意Phoenix 创建的视图是只读的所以只能用来做查询无法通过视图对数据进行修改等操作 在表中插入两条数据 put test,10001,info1:name,why put test,10001,info2:address,10086 在phoenix中查询 select * from test 注意这里的test一定要加双引号否则会将其识别为表而不是视图 查询结果如下 如何删除视图 drop view test; 视图的删除不会对hbase中的表造成任何影响在删除视图后依旧能在hbase中查询到表中的数据 表映射 create tabletest(id varchar primary key,info1.name varchar, info2.address varchar) column_encoded_bytes0; 进行表映射时不能使用列名编码需将 column_encoded_bytes 设为 0 在 Pheonix 创建表去映射 HBase 中已经存在的表是可以修改删除 HBase 中已经存在的数据的。而且删除 Phoenix 中的表那么 HBase 中被映射的表也会被删除 首先查询表中的数据 然后删除表映射 drop table test; 再去hbase中查询就会发现原表也被删除了 3.数字类型说明 HBase 中的数字底层存储为补码而 Phoenix 中的数字底层存储为在补码的基础上将符号位反转。故当在 Phoenix 中建表去映射 HBase 中已存在的表当 HBase 中有数字类型的字段时会出现解析错误的现象 测试 在hbase中创建表插入数据并扫描 create test_number,info put test_number,1001,info:number,Bytes.toBytes(1000) scan test_number,{COLUMNS info:number:toLong} 结果如下 toLong的作用是将bytes转化为long类型的数据 否则扫描出来的数据格式就是这样的 在phoenix中创建表映射 create view test_number(id varchar primary key,info.number bigint); 查询后发现结果有问题 解决方法 1.使用无符号类型 Phoenix 种提供了 unsigned_intunsigned_long 等无符号类型其对数字的编码解码方式和 HBase 是相同的如果无需考虑负数那在 Phoenix 中建表时采用无符号类型是最合适的选择 重新创建视图映射并查询 create view test_number(id varchar primary key,info.number unsigned_long); select * from test_number; 结果如下 2.自定义函数 如需考虑负数的情况则可通过 Phoenix 自定义函数将数字类型的最高位即符号位反转即可 Phoenix JDBC 操作 添加依赖 dependencygroupIdorg.apache.phoenix/groupIdartifactIdphoenix-client-hbase-2.4/artifactIdversion5.1.2/version /dependency 编写标准的jdbc代码 public static void main(String[] args) throws SQLException {//创建连接String url jdbc:phoenix:hadoop102,hadoop103,hadoop104:2181;//创建配置Properties properties new Properties();//获取连接Connection connection DriverManager.getConnection(url, properties);//编译sql语句PreparedStatement preparedStatement connection.prepareStatement(select * from student);//执行语句ResultSet resultSet preparedStatement.executeQuery();//输出结果while (resultSet.next()){System.out.println(resultSet.getString(1) : resultSet.getString(2) : resultSet.getString(3));}connection.close();//由于 Phoenix 框架内部需要获取一个 HBase 连接,所以会延迟关闭System.out.println(hello); } Phoenix 二级索引 添加如下配置到 HBase 的 HRegionserver 节点的 hbase-site.xml !-- phoenix regionserver 配置参数-- propertynamehbase.regionserver.wal.codec/namevalueorg.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec/value /property 全局索引global index Global Index 是默认的索引格式创建全局索引时会在 HBase 中建立一张新表。也就是说索引数据和数据表是存放在不同的表中的因此全局索引适用于多读少写的业务场景 写数据的时候会消耗大量开销因为索引表也要更新而索引表是分布在不同的数据节点上的跨节点的数据传输带来了较大的性能消耗在读数据的时候 Phoenix 会选择索引表来降低查询消耗的时间 语法 创建索引CREATE INDEX my_index ON my_table (my_col);删除索引DROP INDEX my_index ON my_table 示例给age列添加索引 create index my_index on student(age); 查看二级索引是否有效 通过explain语法进行查看 explain select age from student where age 10; 添加二级索引之后会变成范围扫描 但如果查询的字段不是索引字段将会变成全局扫描 explain select id,name,addr from student where age 10; 包含索引covered index 创建携带其他字段的全局索引本质还是全局索引 语法CREATE INDEX my_index ON my_table (v1) INCLUDE (v2); 示例给age列添加索引并包含addr列 create index my_index on student(age) include (addr); 查看执行计划 本地索引local index Local Index 适用于写操作频繁的场景。 索引数据和数据表的数据是存放在同一张表中且是同一个 Region避免了在写操作的时候往不同服务器的索引表中写索引带来的额外开销 语法CREATE LOCAL INDEX my_index ON my_table(my_column); 创建本地索引 CREATE LOCAL INDEX my_index ON student(age,addr); 查看执行计划 explain select id,name,addr from student where age 10;
http://www.hkea.cn/news/14283726/

相关文章:

  • 网站建站时间wordpress 插件 调用
  • 湖北优化网站建设手表商城网站建设方案
  • 哪个网站域名解析网站建设如何上传图片
  • 网站如何做超级链接wordpress divi主题
  • 一个域名可以做中英文两个网站吗网站开发语言啥意思
  • 电子商务网站体系结构有哪些世界杯 网站模板
  • 国外有什么优秀的网站推荐响应式布局页面
  • 用wordpress仿一个网站模板绵阳免费网站建设
  • 原阳县建站塔山双喜找人做网站安全吗
  • 亚马逊品牌注册网站建设wordpress995
  • 周宁县建设局网站网站开发与app开发原理
  • 上海比较大的外贸公司有哪些关键词搜索优化
  • 开发网站需要租服务器盐城建设企业网站
  • 网站推广的平台网站关键词优化费用
  • 灌南县城乡建设局网站做民宿哪个网站好
  • wordpress excel搜索南昌seo网站建设
  • 重庆城乡建设局网站苏州网站建设数据网络
  • 唐山网站开发公司网页开发
  • 北京城乡建设网站导航网站织梦模板
  • 跨境电商网站建设成本网站建设销售工资多少
  • 苏州网站制作计划重庆装修公司避坑指南
  • 表格模板免费下载网站便宜质量好的国产手表
  • 阿里巴巴网官方网站做网站教程pdf
  • 常州网站排名推广哈尔滨响应式网站建设公司
  • 计算机网站的开发流程公司的帐如何做网站
  • 长沙建站做企业网站公司城镇建设部网站
  • 做网站用什么服务器好关于网站制作报价
  • 网站的建设意见量品定制和衣邦人哪个好
  • 网站建设 音频插件建筑网人才
  • 珠海网络公司网站建设公司网站备案怎么做