一、mysql数据准备

mysql -hip -uroot -p密码
CREATE DATABASE flink;
USE flink;
CREATE TABLE user (
id INTEGER NOT NULL PRIMARY KEY,
name VARCHAR(255) NOT NULL DEFAULT 'flink',
address VARCHAR(1024),
phone_number VARCHAR(512),
email VARCHAR(255)
);
INSERT INTO user VALUES (110,"user_110","Shanghai","123567891230","user_110@foo.com");
INSERT INTO user VALUES (111,"user_111","Shanghai","123567891231","user_111@foo.com");
INSERT INTO user VALUES (112,"user_112","Shanghai","123567891232","user_112@foo.com");
查看数据
select * from user;
+-----+----------+----------+--------------+------------------+
| id | name | address | phone_number | email |
+-----+----------+----------+--------------+------------------+
| 110 | user_110 | Shanghai | 123567891230 | user_110@foo.com |
| 111 | user_111 | Shanghai | 123567891231 | user_111@foo.com |
| 112 | user_112 | Shanghai | 123567891232 | user_112@foo.com |

二、Flink环境准备

1、版本1.14.5

2、配置修改

cp /usr/local/service/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-core*.jar /usr/local/service/flink/lib/
cp /usr/local/service/hive/lib/hive-exec-2.3.7.jar /usr/local/service/flink/lib/
flink-sql-connector-mysql-cdc-2.4.1.jar
flink-sql-connector-hive-2.3.6_2.12-1.14.5.jar
flink-sql-connector-mysql-cdc-2.4.1.jar
iceberg-flink-runtime-1.14-0.13.2.jar
3、开启flink yarn,需要切换到hadoop用户,不能用root。
yarn-session.sh -s 1 -jm 1024 -tm 2048
4、新打开终端,使用flink客户端连接集群
sql-client.sh embedded -s yarn-session
5、设置checkpoint,每3秒一次
SET execution.checkpointing.interval = 3s;
6、创建source表
use default_catalog;
CREATE TABLE user_source (
database_name STRING METADATA VIRTUAL,
table_name STRING METADATA VIRTUAL,
`id` DECIMAL(20, 0) NOT NULL,
name STRING,
address STRING,
phone_number STRING,
email STRING,
PRIMARY KEY (`id`) NOT ENFORCED
) WITH (
'connector' = 'mysql-cdc',
'hostname' = 'ip地址',
'port' = '3306',
'username' = 'root',
'password' = '密码',
'database-name' = 'flink',
'table-name' = 'user'
);
7、创建catalog
drop catalog hive_catalog;
CREATE CATALOG hive_catalog WITH (
'type'='iceberg',
'catalog-type'='hive',
'uri'='thrift://172.21.0.80:7004',
'clients'='5',
'property-version'='1',
'hive-conf-dir' = '/usr/local/service/hive/conf',
'hive-version' = '2.3.7',
'default-database' = 'default',
'warehouse'='hdfs://HDFS8002254/usr/hive/warehouse/hive_catalog'
); CREATE TABLE `hive_catalog`.`default`.`sample` (
id BIGINT COMMENT 'unique id',
data STRING
); INSERT INTO `hive_catalog`.`default`.`sample` VALUES (1, 'a'); CREATE CATALOG myhive WITH (
'type' = 'hive',
'default-database' = 'default',
'hive-conf-dir' = '/usr/local/service/hive/conf',
'hive-version' = '2.3.7'
);

8、创建iceberg table

use catalog hive_catalog;

CREATE TABLE user_sink (
database_name STRING,
table_name STRING,
`id` DECIMAL(20, 0) NOT NULL,
name STRING,
address STRING,
phone_number STRING,
email STRING,
PRIMARY KEY (`id`) NOT ENFORCED);

9、流式写入数据

select * from `default_catalog`.`default_database`.`user_source`;

INSERT INTO `hive_catalog`.`default`.`user_sink` select * from
`default_catalog`.`default_database`.`user_source`;

10、实时查看数据

SELECT * FROM `hive_catalog`.`default`.`user_sink`;

参考文档:

1、基于 Flink CDC 同步 MySQL 分库分表构建实时数据湖

https://ververica.github.io/flink-cdc-connectors/master/content/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/build-real-time-data-lake-tutorial-zh.html#icebergh

2、腾讯伙伴支持

Flink客户端操作的更多相关文章

  1. HDFS的Java客户端操作代码(HDFS的查看、创建)

    1.HDFS的put上传文件操作的java代码: package Hdfs; import java.io.FileInputStream; import java.io.FileNotFoundEx ...

  2. java web 获取客户端操作系统信息

    package com.java.basic.pattern; import java.util.regex.Matcher; import java.util.regex.Pattern; /** ...

  3. Hadoop系列007-HDFS客户端操作

    title: Hadoop系列007-HDFS客户端操作 date: 2018-12-6 15:52:55 updated: 2018-12-6 15:52:55 categories: Hadoop ...

  4. 使用Java客户端操作elasticsearch(二)

    承接上文,使用Java客户端操作elasticsearch,本文主要介绍 常见的配置 和Sniffer(集群探测) 的使用. 常见的配置 前面已介绍过,RestClientBuilder支持同时提供一 ...

  5. eos开发(二)使用cleos命令行客户端操作EOS(钱包wallet基础操作)

    不知道下边这一段英文你们是不是能看懂,如果看不懂那就算了,我就是转过来随便看看的. 总之你记住nodeos.cleos和keosd这三个工程十分重要就行了,回头咱们的研究都从这三个工程杀进去. EOS ...

  6. SVN的Windows和Linux客户端操作详解

    SVN的Windows和Linux客户端操作详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Windows客户端操作 1.安装SVN客户端 a>.去官网下载svn软件 ...

  7. python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)

    一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...

  8. Hadoop HDFS的shell(命令行客户端)操作实例

    HDFS的shell(命令行客户端)操作实例 3.2 常用命令参数介绍 -help 功能:输出这个命令参数手册 -ls                  功能:显示目录信息 示例: hadoop fs ...

  9. Hadoop JAVA HDFS客户端操作

    JAVA HDFS客户端操作 通过API操作HDFS org.apache.logging.log4jlog4j-core2.8.2org.apache.hadoophadoop-common${ha ...

  10. EOS开发基础之二:使用cleos命令行客户端操作EOS(钱包wallet基础操作)

    不知道下边这一段英文你们是不是能看懂,如果看不懂那就算了,我就是转过来随便看看的. 总之你记住nodeos.cleos和keosd这三个工程十分重要就行了,回头咱们的研究都从这三个工程杀进去. EOS ...

随机推荐

  1. HTTP服务七层架构技术探讨

    作者: phpkernel  发布时间: 2012-11-26 13:27  阅读: 3998 次  推荐: 8   原文链接   [收藏]   1. 为什么分层? 计算机领域的体系结构普遍采用了分层 ...

  2. if else的多种替换方式

    1)利用逻辑判断的短路运算来实现 && 和 ||(&& 中第一个表达式为假就不会去处理第二个表达式,|| 则相反) // if为真 if (bool) { value ...

  3. Adobe PS 2024 软件分享 torrent

    Adobe-Photoshop-2024-25.5.0.375 下载工具建议使用 qBittorrent-enhance,qBittorrent, Transmission, uTorrent 等. ...

  4. 使用arcpy向server端发布服务

    import arcpy import os # Set output file names outdir = r"D:" service = "MapImageShar ...

  5. three.js 性能优化之模型转化与压缩

    模型转换 obj转gltf 安装插件 npm i -g obj2gltf 执行转换命令 obj2gltf -i 11-6.obj -o 11-6.gltf -u 模型压缩 安装gltf-pipelin ...

  6. Docker安装开源版obs对象存储服务minio,并后台运行

    ​​>Minio 是一个基于Apache License v2.0开源协议的对象存储服务,虽然轻量,却拥有着不错的性能.它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据. 例如 ...

  7. docker安装配置redis

    ​ 安装redis docker pull redis 配置数据路径 mkdir -p /home/redis/data docker启动 docker run -d -v /home/redis/d ...

  8. openEuler欧拉部署Jenkins

    一.系统优化 关闭防火墙 systemctl stop firewalld systemctl disable firewalld 二.安装Jenkins dnf -y install docker ...

  9. 【C#】【平时作业】习题-3-数组

    1. 设计一个数组用于存放10个整数,然后计算这十个整数之和? private void btn1_Click(object sender, EventArgs e) { int temp = 0; ...

  10. 开源产品测评之 SQL 上线能力

    背景 近期,我司准备引入一款 SQL 审核产品来供内部流程使用,解决目前 SQL 人工上线的流程管控问题,目标是对业内的开源产品进行调研,选型一款作为落地方案,后期如果内部有需求可能会进行二次开发.我 ...