更新时间:2024-07-04 GMT+08:00

插入数据至HBase表

功能描述

INSERT INTO命令将DLI表中的数据插入到已关联的hbase表中。

语法格式

  • 将SELECT查询结果插入到表中:
    1
    2
    3
    4
    5
    6
    7
    INSERT INTO DLI_TABLE
      SELECT field1,field2...
      [FROM DLI_TEST]
      [WHERE where_condition]
      [LIMIT num]
      [GROUP BY field]
      [ORDER BY field] ...;
    
  • 将某条数据插入到表中:
    1
    2
    INSERT INTO DLI_TABLE
      VALUES values_row [, values_row ...];
    

关键字

SELECT对应关键字说明请参考基本语句

参数说明

表1 参数描述

参数

描述

DLI_TABLE

已创建跨源连接的DLI表名称。

DLI_TEST

为包含待查询数据的表。

field1,field2...,field

表“DLI_TEST”中的列值,需要匹配表“DLI_TABLE”的列值和类型。

where_condition

查询过滤条件。

num

对查询结果进行限制,num参数仅支持INT类型。

values_row

想要插入到表中的值,列与列之间用逗号分隔。

注意事项

  • DLI表必须已经存在。
  • 在“创建表关联HBase”章节创建的表中,OPTIONS里的Cols指定的列族如果不存在,insert into执行时会报错。
  • 如果插入的(rowkey, 列族, 列)已存在,则执行插入操作时,会覆盖hbase中相同的(rowkey, 列族, 列)。
  • 不建议对同一张表并发插入数据,因为有一定概率发生并发冲突,导致插入失败。
  • 不支持INSERT OVERWRITE语法。

示例

  • 查询表“user”中的数据插入表“test”中。
    1
    2
    3
    4
    5
    6
    INSERT INTO test
      SELECT ATTR_EXPR
      FROM user
      WHERE user_name='cyz'
      LIMIT 3
      GROUP BY user_age
    
  • 插入数据“1”到表“test”中
    INSERT INTO test 
      VALUES (1);