博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Table Store新一代数据实时消费通道:Tunnel Service介绍
阅读量:6209 次
发布时间:2019-06-21

本文共 2201 字,大约阅读时间需要 7 分钟。

概述

通道服务Tunnel Service是基于Table Store数据接口之上的全增量一体化服务,它通过一组Tunnel Service API和SDK为用户提供了增量、全量和增量加全量三种类型的分布式数据实时消费通道。通过为数据表建立Tunnel Service数据通道,用户可以简单地实现对表中历史存量和新增数据的消费处理。

Table Store NoSQL数据库非常适合元数据管理、时序数据监控、消息系统等服务应用,这些应用的一个常见设计模式就是利用增量数据流或者先全量后增量的数据流来触发一些附加的操作逻辑,这些附加操作包括:

  • 数据同步,将数据同步到缓存、搜索引擎或者数据仓库中
  • 事件驱动,触发函数计算、通知消费端消费或者调用一些API
  • 流式数据处理,对接流式或者流批一体计算引擎
  • 数据搬迁,数据备份到OSS、迁移到容量型的Table Store实例等

利用Tunnel Service,我们可以针对这些模式轻松构建高效、弹性的解决方案,如下图:

tunnel1

功能简述

Tunnel Service是Table Store在stream功能之上推出的更强大的数据通道功能,Tunnel Service提供了:

  • 全增量一体的数据通道
    Tunnel Service不仅提供增量数据消费能力,还提供了可并行的全量数据消费和全量加增量数据消费功能
  • 增量数据变化保序
    Tunnel Service会为用户数据划分一到多个可并行消费的逻辑分区channel,每个channel下的增量数据按写入时间顺序保序,不同channel的数据可以并行消费
  • 消费延迟监控
    Tunnel Service通过DescribeTunnel API提供了客户端消费数据RPO(_恢复点目标,recovery point objective_)信息,并在控制台提供了Tunnel数据消费监控
  • 数据消费能力水平扩展
    Tunnel Service提供了逻辑分区channel的自动负载均衡,通过增加消费端数量,可以水平扩展数据消费速度

快速入门

我们可以使用table store控制台快速体验tunnel service功能:

  • 在控制台选择测试数据表,在通道服务管理页面创建通道,例如创建增量类型tunnel

tunnel2

tunnel3

  • 新建的tunnel页面下,可以查看tunnel中的数据内容、消费延迟监控、逻辑分区channel下的消费数据行数统计

tunnel4

  • 在控制台数据管理页面随机写入或删除数据

tunnel5

  • 使用模拟消费按钮可以预览通道中的数据格式

tunnel6

  • 复制通道ID,使用任一语言tunnel SDK,开启新建tunnel的数据消费
// 用户自定义数据消费Callback, 即实现IChannelProcessor接口(process和shutdown)private static class SimpleProcessor implements IChannelProcessor {    @Override    public void process(ProcessRecordsInput input) {        System.out.println("Default record processor, would print records count");        System.out.println(            String.format("Process %d records, NextToken: %s", input.getRecords().size(), input.getNextToken()));        try {            // Mock Record Process.            Thread.sleep(1000);        } catch (InterruptedException e) {            e.printStackTrace();        }    }    @Override    public void shutdown() {        System.out.println("Mock shutdown");    }}  // TunnelWorkerConfig里面还有更多的高级参数,这里不做展开,会有专门的文档介绍。TunnelWorkerConfig config = new TunnelWorkerConfig(new SimpleProcessor());// 配置TunnelWorker,并启动自动化的数据处理任务。TunnelWorker worker = new TunnelWorker($tunnelId, tunnelClient, config);try {    worker.connectAndWorking();} catch (Exception e) {    e.printStackTrace();    worker.shutdown();    tunnelClient.shutdown();}
  • 在数据消费标准输出可以看到增量数据消费日志,在控制台或者使用describeTunnel接口也可以查看消费延迟,channel下的消费数据行数更新

tunnel7

SDK

表格存储钉钉

_

转载地址:http://rrzja.baihongyu.com/

你可能感兴趣的文章
Template、ItemsPanel、ItemContainerStyle、ItemTemplate
查看>>
MySQL:Innodb page clean 线程 (二) :解析
查看>>
图嵌入综述 (arxiv 1709.07604) 译文五、六、七
查看>>
垃圾回收算法优缺点对比
查看>>
正则表达式 匹配常用手机号 (13、15\17\18开头的十一位手机号)
查看>>
GitLab 11.9 正式发布,自动化工具 ChatOps 已开源
查看>>
交换机的基本原理配置(一)
查看>>
android baidupush
查看>>
Lottie 站在巨人的肩膀上实现 Android 酷炫动画效果
查看>>
Linux_异常_08_本机无法访问虚拟机web等工程
查看>>
“陪护机器人”研报:距离真正“陪护”还差那么一点
查看>>
深入框架本源系列 —— Virtual Dom
查看>>
mongodb分布式集群搭建手记
查看>>
您有一个上云锦囊尚未领取!
查看>>
Java Web的web.xml文件作用及基本配置(转)
查看>>
区块链101:区块链的应用和用例是什么?
查看>>
马约拉纳费米子:推动量子计算的“天使粒子”
查看>>
瑞立视:厚积薄发且具有“工匠精神”的中国品牌
查看>>
git与svn的区别 ?Git 与 SVN那个更好?
查看>>
使用ActionTrail Python SDK
查看>>