本文介绍如何在Lindorm计算引擎中通过SQL访问宽表数据。
表的类型
Lindorm宽表引擎支持以下两种类型的表:
- 原生表:通过Lindorm宽表SQL创建的表。
- HBase表:通过HBase API创建的表。
准备工作
- 通过SQL访问宽表数据前,需要了解使用须知。
- 根据作业的提交方式,请确保已完成了相应的初始化工作:
访问原生表
您可以直接在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;
访问HBase表
您可以直接在Catalog "lindorm_table"
中访问HBase表。在Lindorm计算引擎中通过SQL访问HBase表,用户需要预先构建Table Schema,示例如下:
- 已存在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
。
- 在计算引擎中执行以下语句,完成添加字段、设置主键和设置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。
- 通过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;
- 使用Catalog