美文网首页
Phoenix读写HBase表的有关操作

Phoenix读写HBase表的有关操作

作者: funOfFan | 来源:发表于2020-08-19 10:00 被阅读0次
    • 准备测试用表

      • 首先执行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)。这种映射的建立也非常简单,建立同名同结构的表或者视图即可。

    相关文章

      网友评论

          本文标题:Phoenix读写HBase表的有关操作

          本文链接:https://www.haomeiwen.com/subject/ygcrjktx.html