使用 Flink SQL 访问 Tablestore 源表

简介:     本文将介绍如何使用使用 Flink SQL 通过流处理的方式访问 Tablestore 源表。 在流计算场景下,用户可以基于[通道服务](https://help.aliyun.com/document_detail/102489.html),利用CDC(数据变更捕获)技术,通过 Flink 完成流式消费和计算。 Flink on Tablesto

    本文将介绍如何使用使用 Flink SQL 通过流处理的方式访问 Tablestore 源表。
在流计算场景下,用户可以基于通道服务,利用CDC(数据变更捕获)技术,通过 Flink 完成流式消费和计算。 Flink on Tablestore 可以提供 at-least-once 一致性语义。

Tablestore 简介

    Tablestore 启发自 Google 的 Bigtable 论文,从 2009 年开始,在阿里云的飞天团队内,开始孵化。经过 10 年的锤炼,如今在集团、公有云和专有云积累了各式各样的客户和场景。
    Tablestore 是一款 Serverless 云原生存储引擎,Serverless 相比实例售卖类型的产品,在业务有波峰波谷时天生就有较大的优势,基于 Bigtable 的主存储采用行的方式进行存储,可以支撑单表亿级别的 QPS。下面列了一些 Tablestore 的核心特性:
image.png

前置准备

    由于本文是 Flink SQL - Tablestore 使用系列的第一篇文章,将会有一些篇幅介绍Flink实时计算平台的申请与使用。以下是几个前置准备步骤:

    1. 购买 Flink 服务,步骤参见实时计算Flink版-产品文档,建议购买 Blink 独享集群(Flink 全托管 / 半托管暂不支持 Tablestore 源表)。如下图所示:

image.png
image.png

    2. 创建Flink集群以及项目,如下图所示:

image.png

快速开始

步骤一 创建 Tablestore 源表和数据通道

    1. 创建 Tablestore 源表

    本文demo中所创建出来的表名为 Demo, 其中,CellNumber、StartTime 作为数据表的主键,分别代表主叫号码和通话发生时间,CalledNumber、Duration 和 BaseStationNumber 三列为数据表的预定义列,分别代表被叫号码、通话时长和基站号码,数据示例如下图所示。

image.png

    2. 在主表上创建数据通道,如下图所示,通道列表里面会显示该通道的名字、ID 以及类型。其中,通道名会用于后续的流式处理。

image.png

步骤二 编写 Flink SQL 任务并启动

    1. 进入 Flink 项目开发平台,进行任务开发,如下图所示:

image.png

    2. 编写流任务

# 创建tablestore源表
CREATE TABLE Demo (
    CellNumber                VARCHAR,
    StartTime                BIGINT,
    BaseStationNumber        VARCHAR,
    CalledNumber            VARCHAR,
    Duration                BIGINT,
    OtsRecordType            VARCHAR header,
    OtsRecordTimestamp        BIGINT header,
    Duration_OtsColumnType    VARCHAR header
) WITH (
    type ='ots',
    endPoint ='https://instance_name.cn-hangzhou.vpc.tablestore.aliyuncs.com',
    instanceName = 'instance_name',
    tableName ='table_name',
    tunnelName = 'tunnel_name',
    accessId ='access_xxxxxx_id',
    accessKey ='access_xxxxxx_key',
    ignoreDelete = 'true'
);

# 创建print结果表(打印到taskmanager.out中)
CREATE TABLE print_sink (
    CellNumber                VARCHAR,
    StartTime                BIGINT,
    BaseStationNumber        VARCHAR,
    CalledNumber            VARCHAR,
    Duration                BIGINT,
    OtsRecordType            VARCHAR,
    OtsRecordTimestamp        BIGINT,
    Duration_OtsColumnType    VARCHAR
) WITH (
  type='print'
);

# 创建数据转换过程
INSERT INTO print_sink
SELECT *
FROM Demo;

    源表字段header配置:

    - OtsRecordType:数据操作类型,包括PUT, UPDATE, DELETE。
    - OtsRecordTimestamp:数据操作时间(全量数据时,OtsRecordTimestamp为0)。
    - <列名>_OtsColumnType:某列的操作类型,包括PUT, UPDATE, DELETE。

    源表参数配置:

    - type:数据源类型,tablestore源表为ots。
    - endPoint: 表格存储实例访问地址,建议用VPC地址。
    - instanceName:实例名。
    - tableName:表名
    - tunnelName:tunnel名。
    - accessId: 阿里云账号AK ID。
    - accessKey:阿里云账号AK Secret。
    - ignoreDelete: 是否忽略delete操作,默认值为false。

    更详细的配置请参考:Flink官方文档-创建表格存储Tablestore源表

    3. 点击保存后,上线。点击运维,查看流计算任务运行情况。具体如下图所示:

image.png

步骤三 观察流计算结果

    在上面的 Case 中,我们将 Tablestore 源表上的数据打印到 Taskmanager 的输出中,具体运维与结果观察方式如下图所示:
image.png
image.png

欢迎加入

    表格存储 Tablestore 推出了很多贴近用户场景的文章与示例代码,欢迎大家加入我们的钉钉公开交流群一起讨论,群号:23307953。(1 群已满员,欢迎加入 2 群)
image.png

相关实践学习
阿里云表格存储使用教程
表格存储(Table Store)是构建在阿里云飞天分布式系统之上的分布式NoSQL数据存储服务,根据99.99%的高可用以及11个9的数据可靠性的标准设计。表格存储通过数据分片和负载均衡技术,实现数据规模与访问并发上的无缝扩展,提供海量结构化数据的存储和实时访问。 产品详情:https://www.aliyun.com/product/ots
目录
相关文章
|
8月前
|
SQL 人工智能 JSON
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
简介:本文整理自阿里云高级技术专家李麟在Flink Forward Asia 2025新加坡站的分享,介绍了Flink 2.1 SQL在实时数据处理与AI融合方面的关键进展,包括AI函数集成、Join优化及未来发展方向,助力构建高效实时AI管道。
1067 43
|
8月前
|
SQL 人工智能 JSON
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
本文整理自阿里云的高级技术专家、Apache Flink PMC 成员李麟老师在 Flink Forward Asia 2025 新加坡[1]站 —— 实时 AI 专场中的分享。将带来关于 Flink 2.1 版本中 SQL 在实时数据处理和 AI 方面进展的话题。
476 0
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
|
9月前
|
SQL 消息中间件 Kafka
Flink SQL 详解:流批一体处理的强大工具
Flink SQL 是 Apache Flink 提供的 SQL 引擎,支持流批一体处理,统一操作流数据与批数据,具备高性能、低延迟、丰富数据源支持及标准 SQL 兼容性,适用于实时与离线数据分析。
1174 1
|
8月前
|
存储 分布式计算 数据处理
「48小时极速反馈」阿里云实时计算Flink广招天下英雄
阿里云实时计算Flink团队,全球领先的流计算引擎缔造者,支撑双11万亿级数据处理,推动Apache Flink技术发展。现招募Flink执行引擎、存储引擎、数据通道、平台管控及产品经理人才,地点覆盖北京、杭州、上海。技术深度参与开源核心,打造企业级实时计算解决方案,助力全球企业实现毫秒洞察。
714 0
「48小时极速反馈」阿里云实时计算Flink广招天下英雄
|
运维 数据处理 数据安全/隐私保护
阿里云实时计算Flink版测评报告
该测评报告详细介绍了阿里云实时计算Flink版在用户行为分析与标签画像中的应用实践,展示了其毫秒级的数据处理能力和高效的开发流程。报告还全面评测了该服务在稳定性、性能、开发运维及安全性方面的卓越表现,并对比自建Flink集群的优势。最后,报告评估了其成本效益,强调了其灵活扩展性和高投资回报率,适合各类实时数据处理需求。
|
存储 分布式计算 流计算
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
本文介绍了阿里云开源大数据团队在实时计算领域的最新成果——向量化流计算引擎Flash。文章主要内容包括:Apache Flink 成为业界流计算标准、Flash 核心技术解读、性能测试数据以及在阿里巴巴集团的落地效果。Flash 是一款完全兼容 Apache Flink 的新一代流计算引擎,通过向量化技术和 C++ 实现,大幅提升了性能和成本效益。
4265 74
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
zdl
|
消息中间件 运维 大数据
大数据实时计算产品的对比测评:实时计算Flink版 VS 自建Flink集群
本文介绍了实时计算Flink版与自建Flink集群的对比,涵盖部署成本、性能表现、易用性和企业级能力等方面。实时计算Flink版作为全托管服务,显著降低了运维成本,提供了强大的集成能力和弹性扩展,特别适合中小型团队和业务波动大的场景。文中还提出了改进建议,并探讨了与其他产品的联动可能性。总结指出,实时计算Flink版在简化运维、降低成本和提升易用性方面表现出色,是大数据实时计算的优选方案。
zdl
699 56
|
人工智能 Apache 流计算
Flink Forward Asia 2024 上海站|探索实时计算新边界
Flink Forward Asia 2024 即将盛大开幕!11 月 29 至 30 日在上海举行,大会聚焦 Apache Flink 技术演进与未来规划,涵盖流式湖仓、流批一体、Data+AI 融合等前沿话题,提供近百场专业演讲。立即报名,共襄盛举!官网:https://asia.flink-forward.org/shanghai-2024/
1515 33
Flink Forward Asia 2024 上海站|探索实时计算新边界
|
消息中间件 关系型数据库 MySQL
Flink CDC 在阿里云实时计算Flink版的云上实践
本文整理自阿里云高级开发工程师阮航在Flink Forward Asia 2024的分享,重点介绍了Flink CDC与实时计算Flink的集成、CDC YAML的核心功能及应用场景。主要内容包括:Flink CDC的发展及其在流批数据处理中的作用;CDC YAML支持的同步链路、Transform和Route功能、丰富的监控指标;典型应用场景如整库同步、Binlog原始数据同步、分库分表同步等;并通过两个Demo展示了MySQL整库同步到Paimon和Binlog同步到Kafka的过程。最后,介绍了未来规划,如脏数据处理、数据限流及扩展数据源支持。
890 0
Flink CDC 在阿里云实时计算Flink版的云上实践