本文介绍如何在Lindorm计算引擎中通过SQL访问宽表数据。

表的类型

Lindorm宽表引擎支持以下两种类型的表:
  • 原生表:通过Lindorm宽表SQL创建的表。
  • HBase表:通过HBase API创建的表。

准备工作

访问原生表

您可以直接在Catalog "lindorm_table"中访问原生表。Lindorm计算引擎不支持对原生表进行DDL操作和分区操作,仅支持常规DML操作。示例语句如下:
  • 使用Catalog "lindorm_table"
    USE lindorm_table;
  • 查看表test的结构。
    SHOW CREATE TABLE test;
    返回内容如下:
    +----------------------------------------------------+
    | CREATE TABLE default.test (
      `id` INT,
      `name` STRING)
    |
    +----------------------------------------------------+
  • 在原生表中插入数据。
    INSERT INTO test VALUES (0, 'Jay');
  • 查询原生表的数据。
    SELECT * FROM test;
更多SQL语法请参见DML

访问HBase表

您可以直接在Catalog "lindorm_table"中访问HBase表。在Lindorm计算引擎中通过SQL访问HBase表,用户需要预先构建Table Schema,示例如下:

  1. 已存在HBase表,HBase表的信息如下:
    • HBase表名为myTable。
    • columnFamily名为myCF。
    • rowkey由两个字段(c0 INT, c1 STRING)构成。
    • 非rowkey字段,包括:c2 BOOLEAN, c3 BYTE, c4 SHORT, c5 LONG, c6 FLOAT, c7 DOUBLE, c8 BINARY
  2. 在计算引擎中执行以下语句,完成添加字段、设置主键和设置columnFamily操作。
    ALTER TABLE myTable ADD COLUMNS (c0 INT, c1 STRING, c2 BOOLEAN, c3 BYTE,
         c4 SHORT, c5 LONG, c6 FLOAT, c7 DOUBLE, c8 BINARY);
    ALTER TABLE myTable SET TBLPROPERTIES ('pk' = 'c0,c1', 'cf' = 'myCF');
    说明
    • HBase表中的数据编码格式需要遵从开源HBase序列化规范
    • 当rowkey由N个字段构成时,请确保前N-1个字段的数据类型不是STRING或者BINARY。
    • 在计算引擎中访问HBase表时支持的数据类型包括:BOOLEAN、BYTE、SHORT、INT、LONG、FLOAT、DOUBLE、STRING、BINARY。
  3. 通过SQL读写HBase表。在Lindorm计算引擎中通过SQL访问HBase表,对HBase表除了上述ALTER TABLE操作外不支持其他DDL操作和分区操作,仅支持常规DML操作。示例语句如下:
    • 使用Catalog "lindorm_table"
      USE lindorm_table;
    • 查看表test的结构。
      SHOW CREATE TABLE test;
      返回内容如下:
      +----------------------------------------------------+
      | CREATE TABLE default.test (
        `id` INT,
        `name` STRING)
      |
      +----------------------------------------------------+
    • 在HBase表中插入数据。
      INSERT INTO test VALUES (0, 'Jay');
    • 查询HBase表的数据。
      SELECT * FROM test;
    更多SQL语法请参见DML