Phoenix踩坑填坑记录
Phoenix踩坑填坑记录
- Phoenix建表语句
- 如何添加二级索引
- 判断某表是否存在
- 判断索引是否存在
- Date类型日期,条件判断
- 杂项
记录Phoenix开发过程中的填坑记录。
部分原文地址:phoenix 常见问题与总结
Phoenix建表语句
CREATE TABLE IF NOT EXISTS BUS_INFO_GPS_DATA(busno VARCHAR(10) not null,gpsTime VARCHAR(20) not null,linename VARCHAR(30),upordown VARCHAR(2),weidu VARCHAR(20),jingdu VARCHAR(20),CONSTRAINT PK_BUS_INFO_GPS_DATA PRIMARY KEY (busno,gpsTime)) ;
如果在PRIMARY KEY (busno,gpsTime))主键当中,调换busno和gpsTime的顺序,则Phoenix建表会报错,需调整至字段顺序一致才可。
若PRIMARY KEY (busno,gpsTime)),则其他的字段属性如果设置了not null属性,会报错。
如何添加二级索引
1) 不加排序:Create INDEX 索引名 ON 表名(列名A,列表B***)
2) 加排序:Create INDEX 索引名 ON 表名(列名A DESC,列表B***)举例如下:create INDEX id_idx on tower_info("tower_id" ASC ,"create_time" DESC ,"system","sub_system")
判断某表是否存在
DatabaseMetaData connMetaData = conn.getMetaData();
String[] type = {"TABLE"};
ResultSet rs = connMetaData.getTables(null, null, null, type);
boolean testFlag = false;
while (rs.next()){String tt=rs.getString("TABLE_NAME");if(tt.equals("TEST")){testFlag = true;}String tp=rs.getString("TABLE_TYPE");System.out.println(" 表的名称 "+tt+" 表的类型 "+tp);
}
判断索引是否存在
DatabaseMetaData connMetaData = conn.getMetaData();
ResultSet index = connMetaData.getIndexInfo(null, null,“表名”, false, true);
boolean toweridIdxFlag = false;
while (index.next()){String name=index.getString("INDEX_NAME");if(name.equals("TOWERID_IDX")){toweridIdxFlag =true;}System.out.println(" 索引的名称 "+name);
}
Date类型日期,条件判断
select * from test where "create_time" >= TO_DATE(TO_CHAR(?,'yyyy-MM-dd HH:mm:ss'))
杂项
a. phoenix 使用rowkey模糊查询效率特别低
b. Phoenix中建立hbase的映射表不只是加载元数据,还会为HBase 中每一条数据增加一空列标识,如果数据量太大,可能导致超时中断。建议先建立好Phoenix映射表,然后加载数据或增加服务端配置,延长服务端超时时间。
c. 异步方式构建索引过程中,出现问题:不识别Phoenix中小写字母表,不知是不是版本低的问题。
d. 创建Phoenix二级索引后,只能通过Phoenix接口加载数据,直接操作hbase无效的,也就是说只能通过jdbc和加载CSV文件方式加载数据。
e. 为已有数据phoenix表补建索引,亦可能导致超时中断。建议建立phoenix-HBase表时即建好索引,再接数据。
Phoenix踩坑填坑记录相关推荐
- Spark踩坑填坑-聚合函数-序列化异常
Spark踩坑填坑-聚合函数-序列化异常 一.Spark聚合函数特殊场景 二.spark sql group by 三.Spark Caused by: java.io.NotSerializable ...
- [iOS]贝聊 IAP 实战之见坑填坑
大家好,我是**贝聊科技** 的 iOS 工程师 @NewPan. 这次为大家带来我司 IAP 的实现过程详解,鉴于支付功能的重要性以及复杂性,文章会很长,而且支付验证的细节也关系重大,所以这个主题会 ...
- Cobalt Strike折腾踩坑填坑记录
文章目录 0X00 背景 0x01 基础原理 0x02 关于破戒 Exit暗桩 0x03 CDN+反代隐藏Teamserver Domain Fronting Proxy 0x04 DNS上线 一个未 ...
- weex css单位,Weex系列(7) ——踩坑填坑的总总
目录 使用weex已经一年半了,踩了很多坑,也流了很多泪填上,总结一波,希望对大家有所帮助. LaunchImage 这是今年来的第一个调整,需要把 iOS8.0 and Later勾上,不然iPho ...
- Springboot中使用Mybatis框架对数据库进行联表查询,踩坑填坑
因为mybatis使用的基本是原生sql语句 所以首先从数据库开始说 以mysql数据库为例,对表的连接查询分为四种 内连接,外连接,交叉连接,和联合连接 内连接使用比较运算符根据每个表共有的列的值匹 ...
- js promises 踩坑 填坑 We have a problem with promises
We have a problem with promises promise 填坑 对于 promise return 与否,结果真的不一样哦. By: Nolan Lawson Published ...
- Pyinstaller 详解多种打包过程(去坑,填坑)。
前言 本篇文章,详细介绍pyinstaller多种打包过程.去坑,填坑. 一.安装Pyinstaller 1)使用下面的命令即可安装(win10) pip install pyinstaller 二. ...
- 老机型MacAir安装win10踩坑填坑记录
自家的一台2015前的MacAir,我个人是非常喜欢的,用了6年性能电池都没问题.老婆大人的笔记本坏了,居然指名道姓要用我这台MacAir,因为轻薄小巧.唯一的问题是老婆大人用不惯苹果系统. 开始装w ...
- 微信小程序--多视频滑动播放(踩坑,填坑)
最近在做一个关于短视频的小程序,类似于微视和快手的小程序,但是在做的过程当中碰到了好多坑,于是得一步一步的去填这个坑.先来看看最后的实现效果 在做的过程中,想要实现多个视频无限滑动播放,并且在视频原生 ...
- 踩坑-填坑之 : vue打包上线,页面无法显示
出现了什么问题,什么现象? 根据从网上down下来的iview-admin框架进行后台管理系统开发,开发过程顺利,在部署到测试服务器时,打开页面一片空白;或是打开页面时只显示首页跳转到其他页面时显示空 ...
最新文章
- 如果在chrome的新标签中继续打开开发工具
- leetcode 88
- 直播+抽奖丨eygle等4位大咖讲述DBA职业发展必备软实力
- Spring Session, Redis 实现微服务 Session 共享
- idea一直在copying resources或者一直在发布 问题解决
- python软件_Python软件的下载与安装
- 一个程序员父亲的呼吁:不要教你的孩子从小学编程!
- ZInt支持中文例子
- 10-25 查询选修张老师讲授所有课程的学生
- LeCo-1482.制作 m 束花所需的最少天数
- 21个令程序员泪流满面的瞬间 ...
- 网络硬盘 excel服务器,Excel Server Tutorial
- kubectl logs和docker logs输出日志不同的问题
- 妇女节手抄报Word电子小报
- c语言调色板5个参数,R语言中的颜色以及色板
- qt官网下载指导(新手易犯错误)
- android 系统语言切换,Android系统切换语言更新应用界面方法
- QTabWidget自定义qss样式订制
- 行云管家时光机:高效安全的磁盘快照及镜像管理
- c# 网络字节序数据传输