zoukankan      html  css  js  c++  java
  • [Phoenix] 三、DML语法

    摘要: 云HBASE上Phoenix支持的DML语法 从一个或者多个表中查询数据。LIMIT(或者FETCH FIRST) 在ORDER BY子句后将转换为top-N查询。

    云HBASE上Phoenix支持的DML

    1. select
    2. upsert values
    3. upsert select
    4. delete

    1. SELECT

    Screen_Shot_2017_11_21_at_23_47_23

    从一个或者多个表中查询数据。
    LIMIT(或者FETCH FIRST) 在ORDER BY子句后将转换为top-N查询。
    OFFSET子句指定返回查询结果前跳过的行数。

    示例

    SELECT * FROM TEST LIMIT 1000;
    SELECT * FROM TEST LIMIT 1000 OFFSET 100;
    SELECT full_name FROM SALES_PERSON WHERE ranking >= 5.0
        UNION ALL SELECT reviewer_name FROM 
        CUSTOMER_REVIEW WHERE score >= 8.0

    2. UPSERT VALUES

    Screen_Shot_2017_11_22_at_08_37_30

    此处upsert语义有异于标准SQL中的Insert,当写入值不存在时,表示写入数据,否则更新数据。其中列的声明是可以省略的,当省略时,values指定值的顺序和目标表中schema声明列的顺序需要一致。

    ON DUPLICATE KEY是4.9版本中的功能,表示upsert原子写入的语义,在写入性能上弱于非原子语义。相同的row在同一batch中按照执行顺序写入。

    示例

    UPSERT INTO TEST VALUES('foo','bar',3);
    UPSERT INTO TEST(NAME,ID) VALUES('foo',123);
    UPSERT INTO TEST(ID, COUNTER) VALUES(123, 0) ON DUPLICATE KEY UPDATE COUNTER = COUNTER + 1;
    UPSERT INTO TEST(ID, MY_COL) VALUES(123, 0) ON DUPLICATE KEY IGNORE;

    3. UPSERT SELECT

    Screen_Shot_2017_11_24_at_08_35_23

    从另外一张表中读取数据写入到目标表中,如果数据存在则更新,否则插入数据。插入目标表的值顺序和查询表指定查询字段一致。当auto commit被打开并且select子句没有聚合时,写入目标表这个过程是在server端完成的,否则查询的数据会先缓存在客户端再写入目标表中(phoenix.mutate.upsertBatchSize表示从客户端一次commit的行数,默认10000行)。

    示例

    UPSERT INTO test.targetTable(col1, col2) SELECT col3, col4 FROM test.sourceTable WHERE col5 < 100
    UPSERT INTO foo SELECT * FROM bar;

    4. DELETE

    Screen_Shot_2018_03_12_at_17_05_29

    删除选定的列。如果auto commit打开,删除操作将在server端执行。

    示例

    DELETE FROM TABLENAME;
    DELETE FROM TABLENAME WHERE PK=123;
    DELETE FROM TABLENAME WHERE NAME LIKE '%';

    References

    转自:https://yq.aliyun.com/articles/531683

     


    交流

    如果大家对HBase有兴趣,致力于使用HBase解决实际的问题,欢迎加入Hbase技术社区群交流:

    微信HBase技术社区群,假如微信群加不了,可以加秘书微信: SH_425 ,然后邀请您。

     

     

    ​  钉钉HBase技术社区群

  • 相关阅读:
    xls与csv文件的区别
    青音,经典爱情语录
    win7用户账户自动登录方法汇总
    How to using Procedure found Lead Blocker
    FTS(3) BSD 库函数手册 遍历文件夹(二)
    FTS(3) BSD 库函数手册 遍历文件夹(一)
    DisplayMetrics类 获取手机显示屏的基本信息 包括尺寸、密度、字体缩放等信息
    About App Distribution 关于应用发布
    FTS(3) 遍历文件夹实例
    OpenCV 2.1.0 with Visual Studio 2008
  • 原文地址:https://www.cnblogs.com/hbase-community/p/8685857.html
Copyright © 2011-2022 走看看