本文为您介绍如何创建实时计算表格存储TableStore维表。

什么是表格存储TableStore

表格存储(TableStore,OTS),是根据99.99%的高可用以及11个9的数据可靠性的设计标准,构建在阿里云飞天分布式系统之上的分布式NoSQL数据存储服务。表格存储通过数据分片和负载均衡技术,实现数据规模与访问并发上的无缝扩展,提供海量结构化数据的存储和实时访问服务。

示例

实时计算支持表格存储TableStore作为维表,示例如下。
CREATE TABLE ots_dim_table (
 id int,
 len int,
 content VARCHAR,
 PRIMARY KEY (id),
 PERIOD FOR SYSTEM_TIME--定义了维表的变化周期。
) WITH (
 type='ots',
 endPoint='<yourEndpoint>'
 instanceName='<yourInstanceName>',
 tableName='<yourTableName>',
 accessId='<yourAccessId>',
 accessKey='<yourAccessKey>',
);
说明
  • 在声明维表时,必须要指名主键。
  • 在维表JOIN时,ON条件必须包含所有主键的等值条件。
  • OTS的主键即表的Rowkey。

WITH参数

参数 注释说明
instanceName 实例名
tableName 表名
endPoint 实例访问地址
accessId AccessKey ID
accessKey AccessKey Secret

CACHE参数

参数 注释说明 备注
cache 缓存策略 默认为None,可选LRU
cacheSize 缓存大小 当选择LRU缓存策略后,可以设置缓存大小,默认为10000行。
cacheTTLMs 缓存超时时间,单位为毫秒。 当选择LRU缓存策略后,可以设置缓存失效的超时时间。

测试案例

CREATE TABLE datahub_input1 (
id            BIGINT,
name        VARCHAR,
age           BIGINT
) WITH (
type='datahub'
);

CREATE TABLE phoneNumber(
name VARCHAR,
phoneNumber bigint,
primary key(name),
PERIOD FOR SYSTEM_TIME--定义维表的变化周期。
)with(
type='ots'
);

CREATE TABLE result_infor(
id bigint,
phoneNumber bigint,
name VARCHAR
)with(
type='rds'
);

INSERT INTO result_infor
SELECT
t.id
,w.phoneNumber
,t.name
FROM datahub_input1 as t
JOIN phoneNumber FOR SYSTEM_TIME AS OF PROCTIME() as w --必须指定维表JOIN。
ON t.name = w.name;
			

关于维表的详细语法请参见维表JOIN语句