文档首页 > > SQL语法参考> 数据定义语句> 创建输入流> HBase输入流

HBase输入流

分享
更新时间:2020/09/29 GMT+08:00

概述

创建source流从表格存储服务CloudTable的HBase中获取数据,作为作业的输入数据。HBase是一个稳定可靠,性能卓越、可伸缩、面向列的分布式云存储系统,适用于海量数据存储以及分布式计算的场景,用户可以利用HBase搭建起TB至PB级数据规模的存储系统,对数据轻松进行过滤分析,毫秒级得到响应,快速发现数据价值。CS可以从HBase中读取数据,用于过滤分析、数据转储等场景。

表格存储服务(CloudTable),是公有云基于Apache HBase提供的分布式、可伸缩、全托管的KeyValue数据存储服务,为CS提供了高性能的随机读写能力,适用于海量结构化数据、半结构化数据以及时序数据的存储和查询应用,适用于物联网IOT应用和通用海量KeyValue数据存储与查询等场景。CloudTable的更多信息,请参见《表格存储服务用户指南》

语法

语法格式

CREATE SOURCE STREAM stream_id (attr_name attr_type (',' attr_name attr_type)* )WITH (type = "cloudtable",region = "",cluster_id = "",table_name = "",table_columns = "")(TIMESTAMP BY timeindicator (',' timeindicator)?);timeindicator:PROCTIME '.' PROCTIME| ID '.' ROWTIME

语法说明

表1 语法说明

参数

是否必选

说明

type

数据源类型,“CloudTable”表示数据源为表格存储服务。

region

表格存储服务所在区域。

cluster_id

待读取数据表所属集群id。

如何查看CloudTable的集群id,请参见《表格存储服务用户指南》“查看集群基本信息”章节。

table_name

待读取数据的表名,如需指定namespace,可表示为:namespace_name:table_name 。

table_columns

待读取的列,具体形式如:"rowKey,f1:c1,f1:c2,f2:c1",并且保证与source相同的列数。

timeindicator

在流中增加时间戳,可增加Processing Time时间戳或者Event Time时间戳。

说明:
  • 若设置Processing Time时间戳,则timeindicator取值为proctime.proctime。

    当设置了proctime.proctime时,会在原有属性字段基础上多增加一个proctime系统时间戳属性,假设原有字段为3个,设置了proctime.proctime后会变成4个。

  • 若设置Event Time时间戳,可选择流中的某个属性来作为时间戳,格式为attr_name.rowtime,这里attr_name表示流中的某个属性。
  • 以上两者可以同时设置。

注意事项

用来做时间戳的属性类型必须为long或者timestamp。

示例

从CloudTable的HBase中读取对象为car_infos的表。

CREATE SOURCE STREAM car_infos (
  car_id STRING,
  car_owner STRING,
  car_age INT,
  average_speed INT,
  total_miles INT
)
WITH (
  type = "cloudtable",
  region = "cn-north-1" ,
  cluster_id = "209ab1b6-de25-4c48-8e1e-29e09d02de28",
  table_name = "carinfo",
  table_columns = "rowKey,info:owner,info:age,car:speed,car:miles"
); 
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问