Tablestore结合Blink公有云使用手册
前言
本文将介绍在Blink实时计算平台建立以Tablestore作为流计算的源表以及结果表作业的流程。
表格存储通道服务
表格存储通道服务是基于表格存储(Tablestore)数据接口之上的全增量一体化服务,它通过一组Tunnel Service API和SDK为用户提供了增量、全量和增量加全量三种类型的分布式数据实时消费通道。通过为数据表建立Tunnel Service数据通道,用户可以通过流式计算的方式对表中历史存量和新增的数据进行消费处理。
流计算能将Tunnel Service数据通道作为流式数据的输入,每条数据类似一个JSON格式,如下所示:
{ "OtsRecordType": "PUT", // 数据操作类型,包括PUT、UPDATE、DELETE "OtsRecordTimestamp": 1506416585740836, //数据写入时间(微秒),全量数据时为0 "PrimaryKey": [ { "ColumnName": "pk_1", //第一主键列 "Value": 1506416585881590900 }, { "ColumnName": "pk_2", //第二主键列 "Value": "string_pk_value" } ], "Columns": [ { "OtsColumnType": "Put", // 列操作类型,包括PUT、DELETE_ONE_VERSION、DELETE_ALL_VERSION "ColumnName": "attr_0", "Value": "hello_table_store", }, { "OtsColumnType": "DELETE_ONE_VERSION", // DELETE操作没有Value字段 "ColumnName": "attr_1" } ] }
其中,数据的各个主键和属性列值均可以在BLINK DDL以列名以及相应的类型映射读取,例如上述实例,我们需要定义的DDL如下所示:
create table tablestore_stream( pk_1 BIGINT, pk_2 VARCHAR, attr_0 VARCHAR, attr_1 DOUBLE, primary key(pk_1, pk_2) ) with ( type ='ots', endPoint ='http://blink-demo.cn-hangzhou.vpc.tablestore.aliyuncs.com', instanceName = "blink-demo", tableName ='demo_table', tunnelName = 'blink-demo-stream', accessId ='xxxxxxxxxxx', accessKey ='xxxxxxxxxxxxxxxxxxxxxxxxxxxx', ignoreDelete = 'false' //是否忽略delete操作的数据 );
如果字段名称有前缀,需要使用反撇,例:OTS字段名称为TEST.test,BLINK DDL定义为TEST.test
。而OtsRecordType、OtsRecordTimestamp字段以及每个Column的OtsColumnType字段都会支持通过属性字段的方式读取:
字段名 | 说明 |
---|---|
OtsRecordType | 数据操作类型 |
OtsRecordTimestamp | 数据操作时间(全量数据时为0) |
列名_OtsColumnType | 以具体列名和_"_____OtsColumnType__"_拼接,某列的操作类型 |
需要OtsRecordType和某些Column的OtsColumnType字段时,Blink提供了 HEADER
关键字用于获取源表中的属性字段,具体DDL:
create table tablestore_stream( OtsRecordType VARCHAR HEADER, OtsRecordTimestamp BIGINT HEADER, pk_1 BIGINT, pk_2 VARCHAR, attr_0 VARCHAR, attr_1 DOUBLE, attr_1_OtsColumnType VARCHAR HEADER, primary key(pk_1, pk_2) ) with ( ... );
WITH参数
参数 | 注释说明 | 备注 |
---|---|---|
endPoint | 表格存储的实例访问地址 | endPoint |
instanceName | 表格存储的实例名称 | instanceName |
tableName | 表格存储的数据表名 | tableName |
tunnelName | 表格存储数据表的数据通道名 | tunnelName |
accessId | 表格存储读取的accessKey | accessId |
accessKey | 表格存储读取的秘钥 | |
ignoreDelete | 是否忽略DELETE操作类型的实时数据 | 可选,默认为false |
SQL示例
数据同步,ots sink会以update的方式写入结果表:
create table otsSource ( pkstr VARCHAR, pklong BIGINT, col0 VARCHAR, primary key(pkstr, pklong) ) WITH ( type ='ots', endPoint ='http://blink-demo.cn-hangzhou.ots.aliyuncs.com', instanceName = "blink-demo", tableName ='demo_table', tunnelName = 'blink-demo-stream', accessId ='xxxxxxxxxxx', accessKey ='xxxxxxxxxxxxxxxxxxxxxxxxxxxx', ignoreDelete = 'true' ); CREATE TABLE otsSink ( pkstr VARCHAR, pklong BIGINT, col0 VARCHAR, primary key(pkstr, pklong) ) WITH ( type='ots', instanceName='blink-target', tableName='demo_table', accessId ='xxxxxxxxxxx', accessKey ='xxxxxxxxxxxxxxxxxxxxxxxxxxxx', endPoint='https://blink-target.cn-hangzhou.ots.aliyuncs.com', valueColumns='col0' ); INSERT INTO otsSink SELECT t.pkstr, t.pklong, t.col0 FROM otsSource AS t
流计算作业建立流程
在Blink实时计算平台数据开发模块建立新任务,并填写节点类型、Blink版本、节点名称以及目标文件夹等相关内容,如下图所示:
新建任务之后,进入该任务,点击切换为SQL模式按钮。按照之前介绍的DDL定义开发自己的任务。如下图所示:
作业完成之后,点击发布,选择运行环境及配置可用CU,此次建立的流式作业就正式启动了,可通过运维界面管理作业以及查看作业运行相关信息。如下图所示:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Tablestore入门手册-数据管理-GetRow
GetRow接口概述 GetRow接口用于读取一行数据,是Tablestore最基础的API之一。官方提供了Java、Go、Node.js、Python、PHP、C#、C++ SDK。本文以Java代码为例,对GetRow接口进行详细说明。 基本使用说明 参数说明 参数名称 是否必填 参数说明 PrimaryKey 是 主键,所有主键都需要填写 ColumnsToGet 否 需要读取的列的集合,若不设置则读取所有列 MaxVersions MaxVersions 与 TimeRange 至少设置一个 最多读取多少个版本 TimeRange MaxVersions 与 TimeRange 至少设置一个 要读取的版本范围 Filter 否 过滤器,在服务端对读取结果进行过滤 Java代码示例 public void getRow() { //构造主键,主键列必须全部指定 PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder(); primaryKeyBuilder.addPrimary...
- 下一篇
加速查询MaxCompute再对接FBI(帆软)的完整链路来啦!
概要 MaxCompute(原ODPS)是一项大数据计算服务,它能提供快速、完全托管的PB级数据仓库解决方案,使您可以经济并高效的分析处理海量离线数据。FineReport是领先的企业级Web报表工具,通过类Excel的设计器一键连接数据源,拖拽字段绑定单元格,一张实时报表就可以制作完成。既可以独立部署,也可以与其他系统无缝集成。易学易用易实施。当使用MaxCompute直接对接FBI时,由于MaxCompute本身架构的限制,当需要使用FBI查询大量数据时,性能表现会比较差,不能完全满足OLPA场景的即席查询要求。交互式分析是一款兼容Postgressql的实时交互式产品,在底层与MaxCompute无缝打通,支持直接查询、导入查询两种模式快速查询MaxCompute的数据,同时还能对接其他BI工具,实现数据源--数据查询--数据可视化分析的完整链路,完美解决MaxCompute的自身缺陷问题。本文旨在分享使用交互式分析查询MaxCompute数据,再对接FBI的完整链路,快速搭建大数据生态完整链路。 前提条件 1.开通交互式分析。2.开通MaxCompute。3.下载并安装FBI客...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果