Hbase+Phoenix使用总结

比特探微
• 阅读 2351

1.Hbase中表名和列族名是大小写敏感的

如果使用小写的表名那么必须加上双引号。表名和列族名是大写则不需要双引号
2.Phoenix查询客户端超时
Error: Operation timed out. (state=TIM01,code=6000)
java.sql.SQLTimeoutException: Operation timed out.

解决方案:修改apache-phoenix-5.0.0-HBase-2.0-bin/bin/hbase-site.xml,增加以下配置

<property>
  <name>phoenix.query.timeoutMs</name>
  <value>3600000</value> 
</property>

<property>
  <name>hbase.rpc.timeout</name>
  <value>3600000</value>
</property>

3.Phoenix二级索引表与源数据表保持同步的前提

数据源表的增删改查必须通过Phoenix命令行或者客户端才能保证二级索引表与源表同步。Phoenix提供的Bulk Loading同样也能保证二级索引表与源数据表保持同步。

4.Phoenix Bulk Loading的使用

使用Loading via PSQL来导入大批量数据,要注意Loading via PSQL的文件必须是.csv后缀,不然程序无法识别到数据文件。

5.Phoenix表的管理维护

通过Phoenix创建的表,必须指定primary key(对应Hbase的rowkey),列最好指定列族名称,列类型最好指定为varchar
如果使用了Phoenix操作Hbase,删除表的话一定要使用Phoenix的api操作,如果直接用Hbase的api操作会导致Phoenix可以看见表但是操作表会报错. 通过Phoenix的api删除表同时也会删除可能存在的二级索引。

Hbase+Phoenix使用总结

点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
Wesley13 Wesley13
3年前
java 基本语法
编写Java程序时,应注意以下几点:大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass。
peter peter
4年前
mysql 修改表或表结构常用sql语句
批量修改表名的sql语句altertableold_namerenamenew_name;修改表名altertabletestaddcolumnadd_namevarchar(10);添加表列altertabletestdropcolumndel_name;删除表列altertabletestm
Wesley13 Wesley13
3年前
mysql在LINUX和WINDOWS系统下设置表名不区分大小写
1.在LINUX系统下,表的名称是区分大小写的,而在WINDOWS环境下,表名不区分大小写;2.设置表名不区分大小写:WINDOWS环境下,修改mysql安装目录下的my.ini配置文件,在【mysqld】下添加lower\_case\_table\_names的参数,将参数值设置为0区分大小写,设置为1不区分大小写
Wesley13 Wesley13
3年前
MySQL 添加列,修改列,删除列
ALTERTABLE:添加,修改,删除表的列,约束等表的定义。查看列信息:desc表名;修改表名:altertablet\_bookrenametobbb;添加列:altertable表名addcolumn字段名varchar(length);删除列:altertable表名drop
Wesley13 Wesley13
3年前
mysql表结构设计(schema design)优化建议
(复制粘贴的时候结构乱了,先这样看吧,后期考虑使用markdown写可能会好些)(以下数据库引擎默认为InnoDB)0命名相关0.1.库表名库名与应用名称尽量一致\阿里推荐\表名,字段名必须使用小写字母或数字;禁止出现数字开头,禁止两个下划线中间只出现数字.\阿里强制\表名不使用复数名词.\阿里强制\表的命名最好加上
Wesley13 Wesley13
3年前
MySQL学习——查询表里的数据
MySQL学习——查询表里的数据摘要:本文主要学习了使用DQL语句查询表里数据的方法。数据查询语法1selectdistinct列1as'别名1',...,列nas'别名n'from表名2where表达式3group
Wesley13 Wesley13
3年前
LINUX下 解决MYSQL区分大小写问题
MySQL在Linux下采用rpm方式安装后默认是:数据库名与表名\\表的别名\\变量名是严格区分大小写 修改大小写的方法:1.用root帐号登录,在/etc/my.cnf或/etc/mysql/my.cnf中的\mysqld\后添加lower\_case\_table\_names1 操作命令:vi/e
Wesley13 Wesley13
3年前
Mysql之数据操作
数据的增删改查:增:insertinto表名values();删:物理删除:deletefrom表名where条件;逻辑删除;改:update表名set列1值1,列2值2...where条件;查:全查:select\from数据表名;指定条件查:select\fr
Wesley13 Wesley13
3年前
MySQL学习笔记4——DQL
DQL(数据查询语言)一、基本查询1.字段(列)控制1)查询所有列SELECT\FROM表名;\"\"表示查询所有列2)查询指定列SELECT列1\,列2,...,列n\FROM表名;3)让完全重复的记录只显示一次当查询结果中的多行记录一模一样时,只显示一行。一般查询所有列时
线上SQL超时场景分析-MySQL超时之间隙锁 | 京东物流技术团队
前言之前遇到过一个由MySQL间隙锁引发线上sql执行超时的场景,记录一下。背景说明分布式事务消息表:业务上使用消息表的方式,依赖本地事务,实现了一套分布式事务方案消息表名:mqmessages数据量:3000多万索引:createtime和statuss