用 PolarDB - X + Flink 搭建实时数据大屏|学习笔记(一)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 快速学习用 PolarDB - X + Flink 搭建实时数据大屏

开发者学堂课程【用 PolarDB-X+Flink 搭建实时数据大屏用 PolarDB - X + Flink 搭建实时数据大屏】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/988/detail/14931


用 PolarDB - X + Flink 搭建实时数据大屏

 

内容介绍

一、PolarDB - X 主要讲解内容

二、用 PolarDB - X + Flink 搭建实时数据大屏

 

一、PolarDB - X 主要讲解内容

用 PolarDB - X + Flink 搭建实时数据大屏,这个所依赖的能力是PolarDB - X 比较有特色的能力,就是全局的变log,以前课程中也涉及到过这个能力,今天再来展示一下。

image.png

首先是围绕社区版本对应于商业2.0版本进行讲解,面向的群体是应用视角,不管是开发者还是架构师DBA还是学生想学习一下DB-X都可以听此次课程,主要内容是使用PolarDB - X过程中分场景化来介绍PolarDB - X的一些功能项.

image.png

目前为止已经进行了六讲,今天是第七讲,第一讲讲的是如何安装部署 PolarDB - X,后面讲的是如何连接使用PolarDB - X,后面讲了 PolarDB - X如何与大数据互通,在后面讲了 PolarDB - X 集群动态的扩充和缩容,后面讲了onlineddl,今天讲解 PolarDB - X 和 fink 的配合,后面也会继续讲一些其他的场景,后续内容和前面呈现的有一些不同,稍微做了一些调整,内容做了扩充

 

二、用 PolarDB - X + Flink 搭建实时数据大屏

1.环境准备

如果自己想体验需要一个这样的环境,有Linux或Mac的系统,里面需要装好dockerK8S以及PolarDB - X以及今天需要配合的 flink 这样的环境

2. PolarDB - X基本架构

image.png

在开始之前先简单了解一下PolarDB - X基本架构,PolarDB - X是一个分布式的系统,核心的有四个组件来,组成,第一个是cn分布式的计算层,负责分布式事务,数据的拆分,路由等等,第二个组件是DN数据存储的节点,为了便于理解可以简单的看成是my clar不过是深度定制的my clar,第三个组件是GMS系统,可以把它看成半圆的特殊角色的DN,最后一个组件是CDC是全局日志的节点,也是在本次演示中所相关的组件,会生成PolarDB - X基本架构系统当中全局增量的日志

3.演示内容

今天会演示两个场景,第一个是 PolarDB - X MySQL

image.png

具体来说就是PolarDB - X为主,mySQL为备,搭建一个主被同步的系统,这个场景是在第三讲demo的场景,那时出现一个问题导致链表没有搭建起来,mySQL crash表出来的时候查到了原因,所以今天会把这个demo重做一遍.

第二个场景是今天的主题,用PolarDB - X➕flink➕VUE基于vue的前端来模拟阿里的双十一的交易的大屏。

具体来说他的电路是上面这张小图所示,首先这张图分为上下两个部分,上面是业务视角或者应用开发视角,与我们打交道的一个是业务系统APP把他的数据写到下面的数据库也就是PolarDB - X里面,最终会通过大屏也就是vue的框架来展示交易实时的情况,下面显示的是数据流的方向,也就是我们今天会将PolarDB - X作为数据的源端,通过PolarDB - X提供的全局变log能力,因为是从mySQL电路板是完全兼容的,所以可以借助blink CDC mySQL connect连接到他这边获取到增量的日志,之后会建一个实时的计算,然后flink会把计算的结果写到一个 DB 里面,交易大屏就是读取 DB 数据并且进行呈现,在今天的 demo 里面,blink 计算好的结果写到了 PolarDB - X 中,所以一会儿会在PolarDB - X 中建两个库,一个用来模拟业务库,一个用来缓存实时计算结果的库。

4.PolarDB - X MySQL

接下来开始第一个demo,也就是 PolarDB - X 为主 MySQL 为备来搭建主备同步的场景,今天用的是之前在阿里云购买的ECS,先登录远端的ECS,为了便于演示,提前把今天所需要的PolarDB - X集群创建好了,他的名字叫做PolarDB - X.

可以看到有一个GMS,一个CN,两个DN和一个CDC组成的集群,现在做一下端口转发,port - forward sVc / polardb -×8527:3306-- addresS = g ,将这个PolarDB - X集群3306这个端口转发到ECS端口8527,用8527进行服务是因为会起一个mySQL,mySQL默认会占用3306,这时已经将PolarDB - X的集群端口转换好了,在启动另外一个终端连接上ECS,尝试先登陆一下PolarDB - X ,看一下里面的情况。

可以看到,目前可以正常的连接,里面没有任何库是一个空的实例,现在打开第三个终端,在这个终端中会做一件事情,启动一个mySQL的容器,然后用这个容器作为PolarDB - X 的备用库,先来看一下目前docker目前是没有与mySQL相关的容器的,现在过来启动一个,简单来看一下这个命令,启动了一个名字叫做mySQL的mySQL容器,注册密码是123456,占用的端口也是3306,用的版本是mySQL8.0.11,上次的crash也是和mySQL版本相关的,mySQL刚好是在最新的版本里面将解析blog的一段逻辑稍微做了一个调整,导致在解析所给的blog时crash为了兼容mySQL更新版本解析blog的行为,在PolarDB - X 的最新版本里面做的格式的调整,后续PolarDB - X 发了新版之后,用最新版的mySQL做同步也不会有问题,现在就创建一个这样的容器,来登录一下。

image.png

是正常的,可以看到里面除了系统的库没有其他的库,现在来做一下主备同步的链路,准备同步会在原端PolarDB - X 去做一个转账测试来模拟业务,同时下游mySQL会见一个blog 同步的链路,希望能够实时的把转账测试的变更同步到mySQL这边,同时会对数据做一致性的校验来确保同步的过程当中也是没有问题的。接下来在PolarDB - X 创建转账测试所需要的库。

image.png

创建好了,在mySQL里面也创建一个同样的库,接下来先把主备同步的链路搭建起来,首先在PolarDB - X 里看一下当前Binlog的情况。

image.png

有一个Binlog文件,他的位点是161626,在mySQL通过change master指令与PolarDB - X 进行链路,为了方便演示,已经提前将这个命令写好了。

这就是mySQL用来去和主之间进行搭建同步链路的指令,简单看一下,这个命令就是change master做一个ipe端口,用户名,密码给他,然后指明一下从哪个Binlog文件的什么位置开始消费开始同步,这就是这条指令的含义,写好之后再 mySQL 这边 start slave,这样两边的同步链路就开起来了,现在看一下同步链路的状态

image.png

已经在等待主节点给他发送 Binlog 的 event,再回到 PolarDB - X ,看一下test库

目前可以看到里面是没有表的,下面来启动业务也就是转账测试,这个业务简单来讲就是会连接上PolarDB - X ,然后在里面transfer test库里面创建一张表,这个表叫做counts,然后会初始化一些账号并且开始这些账户之间的转账,会有insert和update这些操作,因为这些实例都是跑在远端ECS,代码是在本地的,所以需要做一个端口转发,将远程ECS上的8527端口转换到现在演示的这台机器的8527端口上,这样本地的代码就可以直接连上了,现在已经连接好了,启动测试,转账测试已经启动,再来看一下 PolarDB - X 目前情况。

image.png

tables 这张表已经建立出来了,看一下这里面都有什么数据,使用 select*from accounts order by id命令

image.png

可以看到里面有100条数据,也就是有100个账户,每个账户初始都有1000的资金,因为已经开始转账了所以有些账户多于一千,有些少于一千,使用 select sum(balance) fromaccounts 命令来看一下他们拥有的总的钱数,因为每一笔转账都是一个事务所以总的钱数是不变的。

可以看到总的钱数一直是10万,刚才所有的操作,包括转账测试的代码都是连接上了原端 PolarDB - X 的,现在看一下 mySQL 这边是不是与预期的一样,将 account 这张表的建表同步过来了并且将里面的变更也同步过来了,首先切到主库里面看 mySQL 中是不是有了同样一种表。

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
5月前
|
存储 SQL Java
实时数仓 Hologres产品使用合集之如何使用Flink的sink连接
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
7月前
|
Java 关系型数据库 MySQL
实时计算 Flink版产品使用问题之如何实现MySQL数据库之间的实时同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
8月前
|
Cloud Native 关系型数据库 MySQL
实时计算 Flink版产品使用合集之是否支持云原生数据仓库AnalyticDBPostgreSQL到DORIS的实时数据同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
8月前
|
SQL 运维 关系型数据库
Flink+Hologres搭建实时数仓
该方案利用Flink和Hologres构建实时数仓,解决传统数仓中间层查询困难、数据不可复用和架构冗余的问题。Flink负责数据源接入和加工,将数据写入Hologres的ODS、DWD和DWS层。Hologres支持高效更新和查询,各层数据可直接服务,简化架构,提高效率。方案具备高性能(Flink与Hologres深度集成,支持实时写入查询)、高可用(主从实例确保服务稳定)和低运维(全链路Flink SQL,减少运维成本)优势。适用于实时报表、推荐系统和业务监控等场景。
138 4
|
8月前
|
分布式计算 数据处理 MaxCompute
实时计算 Flink版产品使用合集之进行实时处理时,是否需要将所有数据导入到Hologres
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
8月前
|
消息中间件 Java Kafka
实时计算 Flink版产品使用合集之可以将数据写入 ClickHouse 数据库中吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
253 1
|
8月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版产品使用合集之CDCPipelineConnectors支持哪些数据库的采集
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
SQL 关系型数据库 MySQL
基于阿里云 Flink+Hologres 搭建实时数仓
本文为您介绍如何通过实时计算 Flink 版和实时数仓 Hologres 搭建实时数仓。
2288 0
基于阿里云 Flink+Hologres 搭建实时数仓
|
8月前
|
存储 弹性计算 数据可视化
使用PolarDB-X与Flink搭建实时数据大屏
使用PolarDB-X与Flink搭建实时数据大屏
|
8月前
|
SQL 关系型数据库 MySQL
基于 Flink CDC 打造企业级实时数据集成方案
基于 Flink CDC 打造企业级实时数据集成方案
127 0
下一篇
开通oss服务