Phoenix读写HBase表的有关操作

  • 准备测试用表

    • 首先执行sqlline.py进入phoenix的交互式shell环境
    • 执行如下建表脚本
    CREATE TABLE IF NOT EXISTS T_WARNING_COUNT 
                        (RK VARCHAR PRIMARY KEY,
                        BASIC_INFO.WARNING_COUNT VARCHAR,
                        BASIC_INFO.COUNT_TIME VARCHAR)
                        COLUMN_ENCODED_BYTES='NONE';
    
    • 上述语句中,如果不加上最后的COLUMN_ENCODED_BYTES='NONE',可能会导致phoenix中的表与HBase中的表映射失败,可能造成HBase写入了数据,但是通过phoenix查询却查询不到。
  • 查看表

    • 查看特定表结构


      image.png
    • 查看当前集群所有表


      image.png
  • 增加数据

    • 插入一行数据:UPSERT INTO T_WARNING_COUNT VALUES('13-1594259349089','0','1594349863000');
    • 复制表:UPSERT INTO TEST_T_WARNING_TOP SELECT * FROM T_WARNING_TOP。此处TEST_T_WARNING_TOP与T_WARNING_TOP的结构必须完全相同。
  • 删除数据

    • 删除表中主键RK为null的行:delete from T_WARNING_TOP WHERE RK IS NOT null;
    • 删除表:DROP TABLE T_WARNING_COUNT
    • 删除所有表:!dropall
  • 更新数据

    • 更新某行数据:UPSERT INTO T_WARNING_COUNT(RK, COUNTIME) VALUES('6-1594259710052',1594350223000'');
  • 有关注意事项

    • 通过Phoenix进行表操作的时候,无论是表名还是列名,最好都使用大写字母命名
    • 如果通过phoenix建立表A,则phoenix中有表A了之后,HBase中就也有表A了,无论原本HBase中有没有表A;如果只在HBase中建立表A,不在phoenix中做任何操作,则在Phoenix中则看不到表A
    • 若HBase中有表A,phoenix中没有表A,则需要建立phoenix到HBase表的映射,可以将HBase中的表映射称为视图(view)、表(table)。这种映射的建立也非常简单,建立同名同结构的表或者视图即可。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。