[实时计算flink]数据摄入YAML作业快速入门
实时计算Flink版基于Flink CDC,通过开发YAML作业的方式有效地实现了将数据从源端同步到目标端的数据摄入工作。本文介绍如何快速构建一个YAML作业将MySQL库中的所有数据同步到StarRocks中。
前提条件
-
已创建Flink工作空间,详情请参见开通实时计算Flink版。
-
上下游存储
-
已创建RDS MySQL实例,详情请参见快速创建RDS MySQL实例。
-
已创建StarRocks实例,详情请参见步骤一:创建存算一体版StarRocks实例。
说明
RDS MySQL和StarRocks需要与Flink工作空间在相同VPC下,否则需要打通网络和配置RDS MySQL的IP白名单,详情请参见如何访问跨VPC的其他服务?、实时计算Flink版如何访问公网?和操作指导。
-
背景信息
假设MySQL实例中有一个order_dw_mysql库,里面有名称为orders、orders_pay和product_catalog的3张业务表。此时,如果您希望开发一个数据摄入YAML作业,将这些表和数据都同步到StarRocks的order_dw_sr数据库中,则可以按照以下步骤进行:
-
步骤一:准备RDS MySQL测试数据
-
步骤二:开发数据摄入YAML作业
-
步骤三:启动数据摄入YAML作业
-
步骤四:在StarRocks上查看同步结果
步骤一:准备RDS MySQL测试数据
-
创建数据库和账号。
为目标实例创建名称为order_dw_mysql数据库和具有对应数据库读写权限的普通账号。具体操作请参见创建数据库和账号和管理数据库。
-
通过DMS登录RDS MySQL。
详情请参见通过DMS登录RDS MySQL。
-
在已登录的SQL Console窗口,输入如下命令后单击执行,创建数据库和三张业务表,并插入数据。
CREATE TABLE `orders` (order_id bigint not null primary key,user_id varchar(50) not null,shop_id bigint not null,product_id bigint not null,buy_fee numeric(20,2) not null, create_time timestamp not null,update_time timestamp not null default now(),state int not null );CREATE TABLE `orders_pay` (pay_id bigint not null primary key,order_id bigint not null,pay_platform int not null, create_time timestamp not null );CREATE TABLE `product_catalog` (product_id bigint not null primary key,catalog_name varchar(50) not null );-- 准备数据 INSERT INTO product_catalog VALUES(1, 'phone_aaa'),(2, 'phone_bbb'),(3, 'phone_ccc'),(4, 'phone_ddd'),(5, 'phone_eee');INSERT INTO orders VALUES (100001, 'user_001', 12345, 1, 5000.05, '2023-02-15 16:40:56', '2023-02-15 18:42:56', 1), (100002, 'user_002', 12346, 2, 4000.04, '2023-02-15 15:40:56', '2023-02-15 18:42:56', 1), (100003, 'user_003', 12347, 3, 3000.03, '2023-02-15 14:40:56', '2023-02-15 18:42:56', 1), (100004, 'user_001', 12347, 4, 2000.02, '2023-02-15 13:40:56', '2023-02-15 18:42:56', 1), (100005, 'user_002', 12348, 5, 1000.01, '2023-02-15 12:40:56', '2023-02-15 18:42:56', 1), (100006, 'user_001', 12348, 1, 1000.01, '2023-02-15 11:40:56', '2023-02-15 18:42:56', 1), (100007, 'user_003', 12347, 4, 2000.02, '2023-02-15 10:40:56', '2023-02-15 18:42:56', 1);INSERT INTO orders_pay VALUES (2001, 100001, 1, '2023-02-15 17:40:56'), (2002, 100002, 1, '2023-02-15 17:40:56'), (2003, 100003, 0, '2023-02-15 17:40:56'), (2004, 100004, 0, '2023-02-15 17:40:56'), (2005, 100005, 0, '2023-02-15 18:40:56'), (2006, 100006, 0, '2023-02-15 18:40:56'), (2007, 100007, 0, '2023-02-15 18:40:56');
步骤二:开发数据摄入YAML作业
-
登录实时计算管理控制台。
-
在左侧导航栏选择数据开发 > 数据摄入。
-
单击新建,选择MySQL到Starrocks数据同步,单击下一步。
-
填写作业名称,存储位置和选择引擎版本后,单击确定。
-
配置YAML作业代码信息。
将MySQL中order_dw_mysql数据库下的所有表同步到starrocks的order_dw_sr数据库中,代码示例如下。
source:type: mysqlhostname: rm-bp1rk934iidc3****.mysql.rds.aliyuncs.comport: 3306username: ${secret_values.mysqlusername}password: ${secret_values.mysqlpassword}tables: order_dw_mysql.\.*server-id: 5405-5415sink:type: starrocksname: StarRocks Sinkjdbc-url: jdbc:mysql://fe-c-b76b6aa51807****-internal.starrocks.aliyuncs.com:9030load-url: fe-c-b76b6aa51807****-internal.starrocks.aliyuncs.com:8030username: ${secret_values.starrocksusername}password: ${secret_values.starrockspassword}table.create.properties.replication_num: 1route:- source-table: order_dw_mysql.\.*sink-table: order_dw_sr.<>replace-symbol: <>description: route all tables in source_db to sink_dbpipeline:name: Sync MySQL Database to StarRocks
关于MySQL和Starrocks的本示例需要的配置信息说明如下表所示,数据摄入更多参数详情请参见MySQL和StarRocks。
类别
参数
说明
示例值
source
hostname
MySQL数据库的IP地址或者Hostname。
建议填写专有网络VPC地址。
rm-bp1rk934iidc3****.mysql.rds.aliyuncs.com
port
MySQL数据库服务的端口号。
3306
username
MySQL数据库服务的用户名和密码。填写您步骤一:准备RDS MySQL测试数据中创建的账号和密码信息。
说明
本示例使用变量,可以避免明文展示密码等信息,详情请参见变量管理。
${secret_values.mysqlusername}
password
${secret_values.mysqlpassword}
tables
MySQL表名。支持正则表达式以读取多个表的数据。
本文将同步order_dw_mysql数据库所有表及数据。
order_dw_mysql.\.*
server-id
数据库客户端的一个数字ID。
5405-5415
sink
jdbc-url
JDBC连接的URL。
指定FE(Front End)的IP和查询端口,格式为
jdbc:mysql://ip:port
。您可以在E-MapReduce控制台实例详情页签,查看目标实例的FE内网地址和查询端口。
jdbc:mysql://fe-c-b76b6aa51807****-internal.starrocks.aliyuncs.com:9030
load-url
连接到FE节点的HTTP服务URL。
您可以在E-MapReduce控制台实例详情页签,查看目标实例的FE内网地址和HTTP端口。
fe-c-b76b6aa51807****-internal.starrocks.aliyuncs.com:8030
username
StarRocks连接用户名和密码。
此处需要填写为您开通StarRocks时填写的用户名和密码信息。
说明
本示例使用变量,可以避免明文展示密码等信息,详情请参见变量管理。
${secret_values.starrocksusername}
password
${secret_values.starrockspassword}
route
source-table
指定生效上游表。
order_dw_mysql.\.*
sink-table
指定数据路由的目标位置。
order_dw_sr.<>
replace-symbol
在使用模式匹配功能时,用于指代上游表名的字符串。
<>
-
单击部署。
步骤三:启动数据摄入YAML作业
-
在数据摄入页面,单击部署后,在弹出的对话框中,单击确定。
-
在运维中心 > 作业运维页面,单击目标YAML作业操作中的启动。
-
单击启动。
本示例选择为无状态启动,参数配置详情请参见作业启动。作业启动后,您可以在作业运维页面观察作业的运行信息和状态。
步骤四:在StarRocks上查看同步结果
当YAML作业处于运行中后,您就可以在StarRocks查看数据同步情况。
-
通过EMR StarRocks Manager连接StarRocks实例。
-
在左侧导航栏,单击SQL Editor,在数据库页签,单击
按钮。
您会看到default_catalog下出现名称为order_dw_sr的数据库。
-
在查询列表页签,单击+文件,新建查询脚本后,输入以下SQL语句,单击运行。
SELECT * FROM default_catalog.order_dw_sr.orders order by order_id; SELECT * FROM default_catalog.order_dw_sr.orders_pay order by pay_id; SELECT * FROM default_catalog.order_dw_sr.product_catalog order by product_id;
-
在命令下方查看同步结果。
您会看到StarRocks中已存在和MySQL数据库中相同名称的表及数据。
相关文章:
[实时计算flink]数据摄入YAML作业快速入门
实时计算Flink版基于Flink CDC,通过开发YAML作业的方式有效地实现了将数据从源端同步到目标端的数据摄入工作。本文介绍如何快速构建一个YAML作业将MySQL库中的所有数据同步到StarRocks中。 前提条件 已创建Flink工作空间,详情请参见开通实时计算Flink版…...
CMOS 图像传感器:像素寻址与信号处理
CMOS image sensor : pixel addressing and signal processing CMOS image sensor 对于寻址和信号处理有三种架构 pixel serial readout and processingcolumn parallel readout and processingpixel parallel readout and processing 其中,图 (b) column paralle…...
React Native 项目使用Expo模拟器运行iOS和Android
iOS没有连接设备: 确保你已经用 USB 线将你的 iOS 设备连接到了你的 Mac。 设备未信任: 如果你的设备是第一次连接到 Mac,可能需要在设备上信任这台计算机。通常,当你连接设备时,设备上会弹出一个对话框,…...
鸿蒙-键盘弹出时 promptAction.showToast 被遮盖
可以设置弹窗显示模式showMode,支持显示在应用之上。 参考代码: promptAction.showToast({ message: Message Info, duration: 2000, showMode: promptAction.ToastShowMode.TOP_MOST }); 文档中心...
十一、pico+Unity交互开发教程——手指触控交互(Poke Interaction)
一、XR Poke Interactor 交互包括发起交互的对象(Interactor)和可被交互的对象(Interactable)。XR Interaction Toolkit提供了XR Poke Interactor脚本用于实现Poke功能。在LeftHand Controller和RightHand Controller物体下创建名…...
Request2:Post请求和Json
百度翻译拿到自己想看的数据,下图查看请求到数据的请求 preview提前看下 取出对应的RequestUrl ,看出来要使用的话得用post请求 #!/usr/bin/env python # -*- coding:utf-8 -*- import requests import json if __name__ "__main__":#1.指定…...
【C】数组及其字符串
数组及其字符数组的基本知识点,以及一个编写一个系统登录界面,输入用户名(chen)和密码(1234),用户名只能输入字符8位,密码只能输入数字12位,使用光标定位函数 例…...
Python 代码实现对《红楼梦》文本的词频统计和数据可视化
Python 代码主要实现了对《红楼梦》文本的词频统计和数据可视化 完整详细下载地址:https://download.csdn.net/download/huanghm88/89879439 python """ 实训4 基于词频的篇章语义相似度与红楼梦内容分析 步骤3 针对红楼梦词频的数据可视化 &qu…...
yjs机器学习数据操作01——数据的获取、可视化
数据的获取 1.库与模块: import sklearnfrom sklearn import datasets 2.数据集获取的API及解释 对于sklearn的数据获取,主要分为两大部分,分别是“小数据集的获取——load_xxx”和“大数据集的获取fetch_xxx” a.datasets.load_xxx(): …...
w~自动驾驶合集9
我自己的原文哦~ https://blog.51cto.com/whaosoft/12320882 #自动驾驶数据集全面调研 自动驾驶技术在硬件和深度学习方法的最新进展中迅速发展,并展现出令人期待的性能。高质量的数据集对于开发可靠的自动驾驶算法至关重要。先前的数据集调研试图回顾这些数据集&…...
232. 用栈实现队列 【复习链表】-用自定义链表实现栈 用栈实现队列
232. 用栈实现队列 已解答 简单 相关标签 相关企业 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾int pop() 从队…...
G-Set(增长集合,Grow-Only Set)
一、概念 G-Set(增长集合,Grow-Only Set)是一种冲突自由复制数据类型(Conflict-Free Replicated Data Type, CRDT),用于在分布式系统中同步和合并数据,而不需要中央协调器。G-Set 支持两种操作…...
《Vue.js 组件开发秘籍:从基础到高级》
Vue.js 组件开发是构建 Vue 应用程序的核心方法之一。以下是对 Vue.js 组件开发的介绍: 一、什么是 Vue.js 组件? 在 Vue.js 中,组件是可复用的 Vue 实例,它们封装了特定的功能和用户界面。每个组件都有自己独立的模板、逻辑和样…...
【Next.js 项目实战系列】03-查看 Issue
原文链接 CSDN 的排版/样式可能有问题,去我的博客查看原文系列吧,觉得有用的话,给我的库点个star,关注一下吧 上一篇【Next.js 项目实战系列】02-创建 Issue 查看 Issue 展示 Issue 本节代码链接 首先使用 prisma 获取所有…...
Android Settings 设置项修改
Settings 设置项 在 Android 系统上,WRITE_SETTINGS 这个权限从 API 1 就已经开始有了。 通过在 app 中设置权限 android.permission.WRITE_SETTINGS 允许 app 读/写 系统设置。 在官方文档的描述中,还有一段注意事项: Note: If the app targets API level 23 or higher,…...
Windows远程桌面到Ubuntu
在Ubuntu系统中,默认情况下root账户是被禁用的,为了安全起见,建议不要直接使用root账户登录图形界面。但是,如果出于特定的管理或维护需求,您可以按照以下步骤启用和使用root账户登录图形界面: 启用root账户…...
解释 RESTful API,以及如何使用它构建 web 应用程序(AI)
RESTful API(Representational State Transfer)是一种基于HTTP协议的软件架构风格,用于构建可扩展、可维护和可重用的网络服务。 RESTful API的特点包括: 1. 基于资源:每个API都代表一个或多个资源,这些资…...
NestJs:处理身份验证和授权
使用 Nest.js 开发项目时,处理身份验证和授权是常见的需求,可以采用以下架构和实现方式。 架构 用户认证模块 (Auth Module): 服务 (Service): 处理用户登录逻辑,生成 JWT(JSON Web Token),以及验证 token…...
Java EE规范
1、简介 Java EE的全称是Java Platform, Enterprise Edition。早期Java EE也被称为J2EE,即Java 2 Platform Enterprise Edition的缩写。从J2EE1.5以后,就改名成为Java EE。一般来说,企业级应用具备这些特征:1、数据量特别大&…...
Ollama及其Open-WebUI部署更新
目录 1 安装ollama 2 安装Open-WebUI 2.1 不使用容器安装open-webui 2.2 使用Docker安装open-webui 2.3 基于docker升级open-webui 1 安装ollama curl -fsSL https://ollama.com/install.sh | sh启动、关闭ollama systemctl start ollama systemctl stop ollama sys…...
手写 | 设计模式
这里写目录标题 观察者 vs 发布订阅 观察者 vs 发布订阅 参考代码 观察者模式,一对多,两个角色:观察者observer和被观察者/主题Subject。 Subject维护一个数组,记录有哪些Observer;通过调自身的noticefy方法…...
基于深度学习的地形分类与变化检测
基于深度学习的地形分类与变化检测是遥感领域的一个关键应用,利用深度学习技术从卫星、无人机等地球观测平台获取的遥感数据中自动分析地表特征,并识别地形的变化。这一技术被广泛应用于城市规划、环境监测、灾害预警、土地利用变化分析等领域。 1. 地形…...
进程、线程、协程
文章目录 前言一、易混概念1.1 同步vs异步1.2 并发vs并行 二、进程(Process)2.1进程概念2.2 进程三个基本状态2.3多进程方式编程 三、线程(Thread)3.1 线程的引入3.2 线程概念3.3 多线程编程3.4 GIL对多线程的影响3.5 GIL是否意味…...
嵌入式工程师成长之路(1)——元件基础(完整版)
系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 前言一、认识元件①、认识元件②、认识封装二、电阻1.上拉电阻与下拉电阻①、定义②、应用③、阻值选择④、因上下拉电…...
在Ubuntu 20.04 上安装 CoppeliaSim
在 Ubuntu 20.04 上安装 CoppeliaSim Edu V4.6.0 rev18 的步骤如下: 1. 下载安装文件: 首先,确保您已经下载了 CoppeliaSim_Edu_V4_6_0_rev18_Ubuntu20_04.tar.xz 文件。您可以从 Coppelia Robotics 的官方网站下载。 2. 解压缩文件: 打开终端&#…...
pulseaudio的相关操作(二)
这篇文章主要介绍pulseaudio playback的相关API,pulseaudio playback的具体实例可以参考[2]。如果用pulseaudio实现playback,简单地说就是创建一个playback stream,然后指定这个stream的sink,再定期的向这个stream中写数据。 mai…...
Selenium自动化测试工具
一 .Selenium简介 是一个用于Web应用程序测试的工具 Selenium的核心功能之一是测试软件在不同浏览器和操作系统上的兼容性,确保软件功能与用户需求的一致性,提升用户体验。 自动化脚本生成与执行 Selenium支持自动录制用户操作并生成多种编程语言的测…...
优化UVM环境(九)-将interface文件放在env pkg外面
书接上回: 优化UVM环境(八)-整理project_common_pkg文件 My_env_pkg.sv里不能包含interface,需要将my_intf.sv文件放在pkg之外...
mysql 主从安装
登录看第二篇 WINDOWS系统搭建MYSQL 8.0主从模式_windows mysql8.0.34主从配置-CSDN博客 Windows下MySQL8.0最新版本超详细安装教程_windowsserver安装mysql8.0-CSDN博客 启动两个服务 可执行文件路径一致问题解决: windows,同一台机器安装两个mysq…...
【C++刷题】力扣-#121-买卖股票的最佳时机
题目描述 给定一个数组 prices,其中 prices[i] 表示第 i 天的股票价格。假设你可以在第 i 天买入并在第 j 天卖出股票(i ≤ j),设计一个算法来计算你所能获取的最大利润。注意你只能持有一股股票,并且你不能同时参与多…...
郑州制作网站设计/多用户建站平台
从事.NET开发快2年了,意识到了到了自身发展受限制,也意识到了系统的学习计算机科学理论功底的重要性了。当初自己算是“无师自通”,成为了一个不知名的“代码工人”。如今在应用层Web开发“混”了2年,还算勉强吧。论天赋ÿ…...
建设银行网站电脑版/北京seo服务
一、二叉树的定义与基本术语 (一)基本概念 二叉树是n(n≥0)个结点的有限集合: ① 或者为空二叉树,即n 0。 ② 或者由一个根结点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树又分别是一…...
高校建设网站的特色/百度搜索量最大的关键词
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/83316191 LiveVideoStackCon 2018音视频技术大会上有哪些高光时刻以及技术与行业新趋势?本文试图通过大会主编的视角&#…...
网站建设属于高新技术收入吗/宁德市人口
移动通信书籍推荐 No.1,《深入理解LTE-A》 老通信人都知道这本书,咱们金辉大侠的经典著作。这本书的讲解非常透彻,适合研读。不过,价格稍微有一点点贵。 大家可能会问,都5G时代了,为啥还要推荐LTE的书&…...
wordpress 中文开发/百度人工智能
什么是线性调制广义:指已调波中被调参数随调 制信号成线性变化的调制过程。狭义:指把调制信号的频谱搬移到载波频率两侧而成为上、下边带的调制过程。此时只改变频谱中各分量的频率,但不改变各分量振幅的相对比例,使上边带的频谱结…...
网站开发要会英语吗/上海网站排名优化怎么做
1.集成jsp 由于springboot默认视图层是Thymeleaf,所以需要导一些支持jsp的jar2.导jar,让内嵌tomcat支持jsp页面 <!--tomcat-embed-jasper 为内嵌的tomcat提供解析jsp的功能--> <dependency><groupId>org.apache.tomcat.embed</groupId><…...