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踩坑填坑记录相关推荐

  1. Spark踩坑填坑-聚合函数-序列化异常

    Spark踩坑填坑-聚合函数-序列化异常 一.Spark聚合函数特殊场景 二.spark sql group by 三.Spark Caused by: java.io.NotSerializable ...

  2. [iOS]贝聊 IAP 实战之见坑填坑

    大家好,我是**贝聊科技** 的 iOS 工程师 @NewPan. 这次为大家带来我司 IAP 的实现过程详解,鉴于支付功能的重要性以及复杂性,文章会很长,而且支付验证的细节也关系重大,所以这个主题会 ...

  3. Cobalt Strike折腾踩坑填坑记录

    文章目录 0X00 背景 0x01 基础原理 0x02 关于破戒 Exit暗桩 0x03 CDN+反代隐藏Teamserver Domain Fronting Proxy 0x04 DNS上线 一个未 ...

  4. weex css单位,Weex系列(7) ——踩坑填坑的总总

    目录 使用weex已经一年半了,踩了很多坑,也流了很多泪填上,总结一波,希望对大家有所帮助. LaunchImage 这是今年来的第一个调整,需要把 iOS8.0 and Later勾上,不然iPho ...

  5. Springboot中使用Mybatis框架对数据库进行联表查询,踩坑填坑

    因为mybatis使用的基本是原生sql语句 所以首先从数据库开始说 以mysql数据库为例,对表的连接查询分为四种 内连接,外连接,交叉连接,和联合连接 内连接使用比较运算符根据每个表共有的列的值匹 ...

  6. js promises 踩坑 填坑 We have a problem with promises

    We have a problem with promises promise 填坑 对于 promise return 与否,结果真的不一样哦. By: Nolan Lawson Published ...

  7. Pyinstaller 详解多种打包过程(去坑,填坑)。

    前言 本篇文章,详细介绍pyinstaller多种打包过程.去坑,填坑. 一.安装Pyinstaller 1)使用下面的命令即可安装(win10) pip install pyinstaller 二. ...

  8. 老机型MacAir安装win10踩坑填坑记录

    自家的一台2015前的MacAir,我个人是非常喜欢的,用了6年性能电池都没问题.老婆大人的笔记本坏了,居然指名道姓要用我这台MacAir,因为轻薄小巧.唯一的问题是老婆大人用不惯苹果系统. 开始装w ...

  9. 微信小程序--多视频滑动播放(踩坑,填坑)

    最近在做一个关于短视频的小程序,类似于微视和快手的小程序,但是在做的过程当中碰到了好多坑,于是得一步一步的去填这个坑.先来看看最后的实现效果 在做的过程中,想要实现多个视频无限滑动播放,并且在视频原生 ...

  10. 踩坑-填坑之 : vue打包上线,页面无法显示

    出现了什么问题,什么现象? 根据从网上down下来的iview-admin框架进行后台管理系统开发,开发过程顺利,在部署到测试服务器时,打开页面一片空白;或是打开页面时只显示首页跳转到其他页面时显示空 ...

最新文章

  1. 如果在chrome的新标签中继续打开开发工具
  2. leetcode 88
  3. 直播+抽奖丨eygle等4位大咖讲述DBA职业发展必备软实力
  4. Spring Session, Redis 实现微服务 Session 共享
  5. idea一直在copying resources或者一直在发布 问题解决
  6. python软件_Python软件的下载与安装
  7. 一个程序员父亲的呼吁:不要教你的孩子从小学编程!
  8. ZInt支持中文例子
  9. 10-25 查询选修张老师讲授所有课程的学生
  10. LeCo-1482.制作 m 束花所需的最少天数
  11. 21个令程序员泪流满面的瞬间 ...
  12. 网络硬盘 excel服务器,Excel Server Tutorial
  13. kubectl logs和docker logs输出日志不同的问题
  14. 妇女节手抄报Word电子小报
  15. c语言调色板5个参数,R语言中的颜色以及色板
  16. qt官网下载指导(新手易犯错误)
  17. android 系统语言切换,Android系统切换语言更新应用界面方法
  18. QTabWidget自定义qss样式订制
  19. 行云管家时光机:高效安全的磁盘快照及镜像管理
  20. c# 网络字节序数据传输

热门文章

  1. 50个程序员必须知道的网站,你知道么
  2. 从word中无损批量导出图片
  3. 【磨刀不误砍柴工】keil软件仿真评估代码运行时间
  4. C#之 DateGridView分页超简单
  5. Ubuntu上开发python的十大IDE
  6. RS232电平与TTL电平转换
  7. Cypress 前端测试工具的基本使用和相关命令总结
  8. C语言基础学习——基本数据类型(char型)
  9. POJ 1753 Flip Game (当蒟蒻忘记scanf要读回车时,他自闭了
  10. java切换浏览器_java – 如何切换到新的浏览器窗口,点击按钮后打开?