记录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. Kafka踩坑填坑记录

    Kafka踩坑填坑记录 一.kafka通过Java客户端,消费者无法接收消息,生产者发送失败消息 二. 一.kafka通过Java客户端,消费者无法接收消息,生产者发送失败消息 在虚拟机上,搭建了3台 ...

  2. Linux踩坑填坑记录

    Linux踩坑填坑记录 yum安装失败[Errno 14] PYCURL ERROR 6 - "Couldn't resolve host 'mirrors.aliyun.com'" ...

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

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

  4. Cloudera Manager 5.9 和 CDH 5.9 离线安装指南及个人采坑填坑记

    公司的CDH早就装好了,一直想自己装一个玩玩,最近组了台电脑,笔记本就淘汰下来了,加上之前的,一共3台,就在X宝上买了CPU和内存升级了下笔记本,就自己组了个集群. 话说,好想去捡垃圾,捡台8核16线 ...

  5. IdentityServer4结合AspNetCore.Identity实现登录认证踩坑填坑记录

    也可以自定义实现,不使用IdentityServer4.AspNetIdentity这个包,当然还要实现其他接口IResourceOwnerPasswordValidator. IProfileSer ...

  6. 自制Amiibo 踩坑/填坑 指南

    去年买了台老版NS,后来得知有Amiibo这种东西的存在,但是学校附近都买不到. 再后来网上看见有人在X宝卖自制卡片,就寻思着是否能自己 DIY一套,于是掉坑里. 要想使用自制Amiibo,一共要做两 ...

  7. FreeSWITCH 安装配置的 各种坑, 填坑

    个人安装环境: OS:CentOS6.7 64位 FreeSWITCH Ver:1.6.17 一. 编译出错 安装 之前, 最好 先安装 这几个东西(如果有, 请忽略): yasm (有nasm的话 ...

  8. https填坑之旅

    Boss说,我们买了个权威证书,不如做全站式的https吧,让用户打开主页就能看到受信任的绿标.于是我们就开始了填坑之旅. [只上主域好不好?] 不好...console会报出一大堆warning因为 ...

  9. React Native填坑之旅--与Native通信之iOS篇

    终于开始新一篇的填坑之旅了.RN厉害的一个地方就是RN可以和Native组件通信.这个Native组件包括native的库和自定义视图,我们今天主要设计的内容是native库方面的只是.自定义视图的使 ...

随机推荐

  1. Vue从零开发SPA项目

    所谓SPA(single page web application),就是单页面项目的意思. vue的亮点就是我们只需要关注数据的变化,下面演示一下从零开始创建一个独立项目,并且能自定义路由,提交表单 ...

  2. java零基础之---eclipse的使用

    想写一篇关于初学者如何使用工具的博客,作为初学者使用IDE的第一个工具,深受大家喜欢,先写一篇eclipse的,然后再逐步推出idea, vscode 等 1. eclipse的下载及安装 1)百度搜 ...

  3. spark集群运行模式

    spark的集中运行模式 Local .Standalone.Yarn 关闭防火墙:systemctl stop firewalld.service 重启网络服务:systemctl restart ...

  4. java面向对象的一些知识

    (1)this和super关键字的用法 this表示调用本类实例方法和成员变量,this引用就是对一个对象的引用,如this.name  表示本类成员变量name,静态方法中不能使用this关键字. ...

  5. MyArray框架搭建与实现

    #include<iostream> using namespace std; template<class T> class MyArray { public: //构造函数 ...

  6. eclipse-切换分支-用途描述

    操作细节参考文章 https://www.cnblogs.com/sunrunzhi/p/6509448.html 分析切换分支的用途: 背景: 1. 项目开发使用分支1.分支2: 2. 分支1代码是 ...

  7. git切换分支后远程提交报错

    切换分支后提交,报错如下 解决办法

  8. ABP vNext 自动注入,暗藏天坑如斯

    导言 我们在使用ABP vNext框架时,都知道该框架为我们实现了自动依赖注入(实现自动注入需要在项目里面创建Module类,并且将Module类上的DependsOn到相应的启动Module类或调用 ...

  9. 【剑指 Offer】10-II.青蛙跳台阶问题

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008, ...

  10. 记忆中的像素块褪色了吗?用开源的体素编辑器重新做个 3D 的吧!

    本文适合对图形表现有兴趣的美术或者开发人员 本文作者:HelloGitHub-Joey 早期的的显示设备像素颗粒较大,使得显示内容的颗粒感严重,像是由一堆方块组成的.比较好的例子就是 GBA 上的游戏 ...