Flink 实践教程-入门(8): 简单 ETL 作业
作者:腾讯云流计算 Oceanus 团队
流计算 Oceanus 简介
流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发、无缝连接、亚秒延时、低廉成本、安全稳定等特点的企业级实时大数据分析平台。流计算 Oceanus 以实现企业数据价值最大化为目标,加速企业实时化数字化的建设进程。
本示例使用流计算 Oceanus 平台的 ETL 功能,将 PostgreSQL 数据取出,经过时间转换函数处理后存入 PostgreSQL 中。用户无需编写 SQL 代码,只用在界面上进行简单的点击操作即可创建流计算 Oceanus ETL 作业。
前置准备
创建流计算 Oceanus 集群
进入流计算 Oceanus 控制台 [1],点击左侧【集群管理】,点击左上方【创建集群】,具体可参考流计算 Oceanus 官方文档 创建独享集群 [2]。
创建 PostgreSQL 实例
进入 PostgreSQL 控制台 [3],点击左上角【新建】创建实例,具体参考 创建 PostgreSQL 实例 [4]。进入实例数据库,创建表。
-- 用于 Source
CREATE TABLE public.oceanus8_output (
id INT,
time_one TIMESTAMP,
PRIMARY KEY(id)
); -- 手动插入数据
INSERT INTO public.oceanus8_output VALUES (1,'2020-10-01 18:00:00');
INSERT INTO public.oceanus8_output VALUES (2,'2021-10-01 18:30:24'); -- 用于 Sink
CREATE TABLE public.oceanus8_input (
id INT,
transf_one VARCHAR(50),
transf_two TIMESTAMP,
const_four INT,
PRIMARY KEY(id)
);
笔者这里使用 DBeaver 进行外网连接,更多连接方式参考官网文档 连接 PostgreSQL 实例 [5]
流计算 Oceanus 作业
进入流计算 Oceanus 控制台 [1],点击左上角【新建】创建 ETL 作业,点击【开发调试】进入作业编辑页面。ETL 作业源端可以是 MySQL、PostgreSQL,目的端可以是 MySQL、PostgreSQL、ClickHouse 和 Elasticsearch。
1. 创建 Source
单击【数据源表】右侧【添加】按钮,选择 PostgreSQL ,选择并填写数据库表相关的信息。
2. 创建 Sink
单击【数据目的表】右侧【添加】按钮,选择 PostgreSQL ,选择并填写数据库表相关的信息。
3. 映射字段
编写需要创建映射字段的业务逻辑。这里使用 DATA_FORMAT 函数将 time_one 字段类型由 TIMESTAMP 映射为 STRING,使用 TIMESTAMPADD 函数将 time_one 字段增加一周,并将常量 1000 存入 const_str 字段。

ETL 作业开发详见流计算 Oceanus 官方文档 ETL 开发指南 [6]。
添加数据源表和目的表后,可配置字段映射。字段映射分为原字段映射和新增字段映射两个部分。
原字段映射
在左侧的数据源表中可以勾选本次 ETL 作业需要从数据源表抽取的数据字段,并在右侧选择要加载进目的表的对应的映射字段名称。这样在数据源表中的数据就会复制加载到目的表中。
新增字段映射
字段生成方式有计算字段和常量字段两种。
计算字段可以对从数据源表抽取出来的字段数据进行 内置函数 数值转换或者计算。
常量字段可以输入一个自定义常量字段到目的源表相应的字段中。
字段取值
计算字段:字段取值可以输入字段值或者表达式,对每个满足的输入源数据进行表达式计算。将计算结果返回到数据目的表所选的映射字段中。
常量字段:字段取值可以输入字符串或者数字(输入类型与目的表类型要一致),这个常量字段取值将会加载到每一条数据目的表所选的映射字段中。
总结
流计算 Oceanus ETL 作业最简化了用户操作,开发人员甚至无需了解编程语言,只需要选择数据源表和目的表,并根据业务逻辑完成字段映射的配置,花费几分钟即可轻松启动 ETL 作业。
计算字段:可以对从数据源表抽取出来的字段数据进行 内置函数 [7] 数值转换或者计算。
常量字段:可以输入一个自定义常量字段到目的源表相应的字段中。
参考链接
[1] 流计算 Oceanus 控制台:https://console.cloud.tencent.com/oceanus/overview
[2] 创建独享集群:https://cloud.tencent.com/document/product/849/48298
[3] PostgreSQL 控制台:https://console.cloud.tencent.com/postgres/index
[4] 创建 PostgreSQL 实例:https://cloud.tencent.com/document/product/409/56961
[5] 连接 PostgreSQL 实例:https://cloud.tencent.com/document/product/409/40429
[6] ETL 开发指南:https://cloud.tencent.com/document/product/849/59839
[7] 内置函数:https://cloud.tencent.com/document/product/849/18083

Flink 实践教程-入门(8): 简单 ETL 作业的更多相关文章
- Flink 实践教程 - 入门(4):读取 MySQL 数据写入到 ES
作者:腾讯云流计算 Oceanus 团队 流计算 Oceanus 简介 流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发.无缝连接. ...
- Flink 实践教程:入门(1):零基础用户实现简单 Flink 任务
作者:腾讯云流计算 Oceanus 团队 流计算 Oceanus 简介 流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发.无缝连接.亚 ...
- Flink 实践教程:入门(6):读取 PG 数据写入 ClickHouse
作者:腾讯云流计算 Oceanus 团队 流计算 Oceanus 简介 流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发.无缝连接.亚 ...
- Flink 实践教程-进阶(2):复杂格式数据抽取
作者:腾讯云流计算 Oceanus 团队 流计算 Oceanus 简介 流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发.无缝连接.亚 ...
- Flink 实践教程-进阶(5):排序(乱序调整)
作者:腾讯云流计算 Oceanus 团队 流计算 Oceanus 简介 流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发.无缝连接.亚 ...
- acegi security实践教程—入门
Acegi Security概念 Acegi Security是基于J2EE的企业软件应用提供全面的安全服务.通俗的说,就是封装的安全框架.提到安全,大家脑子中第一反应肯定是权限控制.的确如此, ...
- Python编程从入门到实践笔记——变量和简单数据类型
Python编程从入门到实践笔记——变量和简单数据类型 #coding=gbk #变量 message_1 = 'aAa fff' message_2 = 'hart' message_3 = &qu ...
- Playmaker全面实践教程之简单的使用Playmaker示例
Playmaker全面实践教程之简单的使用Playmaker示例 简单的使用Playmaker示例 通过本章前面部分的学习,相信读者已经对Playmaker有了一个整体的认识和印象了.在本章的最后,我 ...
- SSIS教程:创建简单的ETL包 -- 2. 添加循环(Adding Looping)
在第 1 课:创建项目和基本包中,创建了从单个平面文件源中提取数据的包,然后使用查找转换功能对数据进行了转换,最后将数据加载到AdventureWorksDW2012 示例数据库的 FactCurre ...
随机推荐
- SignalR 在React/GO技术栈的生产应用
哼哧哼哧半年,优化改进了一个运维开发web平台. 本文记录SignalR在react/golang 技术栈的生产小实践. 1. 背景 有个前后端分离的运维开发web平台, 后端会间隔5分钟同步一次数据 ...
- Windows Terminal 和 WSL
Windows Terminal ,配置启动目录为 WSL : \\wsl$\Ubuntu\home
- ffmpeg剪视频
ffmpeg裁剪合并视频 ffmpeg提供简单的命令参数: ffmpeg -ss START -t DURATION -i INPUT -vcodec copy -acodec copy OUTP ...
- 看动画学算法之:队列queue
目录 简介 队列的实现 队列的数组实现 队列的动态数组实现 队列的链表实现 队列的时间复杂度 简介 队列Queue是一个非常常见的数据结构,所谓队列就是先进先出的序列结构. 想象一下我们日常的排队买票 ...
- 计算机中的contex理解
原文链接 https://www.xuebuyuan.com/2016635.html 1.其实简单的说就是跟当前主题有关的所有内容. 2.如说到程序的上下文,就是当前这段程序之上和之下的程序段.因 ...
- Python课程笔记(六)
今天上课补上了上次未学完比较重点的鼠标和键盘事件,同时开始学习运用turtle进行绘图. 本次课程的代码: https://gitee.com/wang_ming_er/python_course_l ...
- 字符串与模式匹配算法(四):BM算法
一.BM算法介绍 BM算法(Boyer-Moore算法)是罗伯特·波义尔(Robert Boyer)和杰·摩尔(J·Moore)在1977年共同提出的.与KMP算法不同的是,BM算法是模式串P由左向右 ...
- HBase的安装与部署
一.部署前置环境 先部署分布式的高可用版的Hadoop,即ZooKeeper+Hadoop. https://www.cnblogs.com/live41/p/15483192.html * 部署的服 ...
- DH密钥交换
DH密钥交换 密模运算 所谓幂模,就是先做一次幂运算,再做一次模运算. 模运算有以下性质: 也就是说,先模再乘和先乘再模,只要最后都模了同一个模数,结果都是一样. 有了这个性质,我们首先得到幂模运算的 ...
- Tarjan算法 求 有向图的强连通分量
百度百科 https://baike.baidu.com/item/tarjan%E7%AE%97%E6%B3%95/10687825?fr=aladdin 参考博文 http://blog.csdn ...