猿创征文|大数据开发必备的数据采集工具汇总

文章目录

  • 前言
  • 1、Flume
    • 适用场景
    • 工作方式
  • 2、Flink CDC
    • 适用场景
    • 工作方式
  • 3、Sqoop
    • 适用场景
    • 工作方式
  • 4、Canal
    • 适用场景
    • 工作方式
  • 5、Kettle
    • 适用场景
    • 工作方式


前言

随着大数据近几年的发展,已经在国内外的开发市场积累出一大批大数据开发的技术型人才,不论是批处理还是流处理各大公司都研究出一套专门解决自身公司业务的大数据解决方案。它们是市面上大数据组件的融合碰撞产生的适合自身的。

在数据处理的最前端一定是数据的采集技术,数据的采集技术也是百家争鸣,一片蓝海,对于一个优秀的大数据开发工程师,我们怎么将这些技术栈灵活的应用,前提是我们要对其认真的研究,理解其最佳的应用场景,今天我来带大家认识5种数据采集工具。
在这里插入图片描述

1、Flume

适用场景

适合用于日志数据的采集
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

当前Flume有两个版本Flume 0.9X版本的统称Flume-og,Flume1.X版本的统称Flume-ng。由于Flume-ng经过重大重构,与Flume-og有很大不同,使用时请注意区分。
在这里插入图片描述

工作方式

Flume-og采用了多Master的方式。为了保证配置数据的一致性,Flume引入了ZooKeeper,用于保存配置数据,ZooKeeper本身可保证配置数据的一致性和高可用,另外,在配置数据发生变化时,ZooKeeper可以通知Flume Master节点。Flume Master间使用gossip协议同步数据。

Flume-ng最明显的改动就是取消了集中管理配置的 Master 和 Zookeeper,变为一个纯粹的传输工具。Flume-ng另一个主要的不同点是读入数据和写出数据由不同的工作线程处理(称为 Runner)。 在 Flume-og 中,读入线程同样做写出工作(除了故障重试)。如果写出慢的话(不是完全失败),它将阻塞 Flume 接收数据的能力。这种异步的设计使读入线程可以顺畅的工作而无需关注下游的任何问题。

2、Flink CDC

适用场景

CDC 是变更数据捕获(Change Data Capture)技术的缩写,它可以将源数据库(Source)的增量变动记录,同步到一个或多个数据目的(Sink)。在同步过程中,还可以对数据进行一定的处理,例如分组(GROUP BY)、多表的关联(JOIN)等。例如对于电商平台,用户的订单会实时写入到某个源数据库;A 部门需要将每分钟的实时数据简单聚合处理后保存到 Redis 中以供查询,B 部门需要将当天的数据暂存到 Elasticsearch 一份来做报表展示,C 部门也需要一份数据到 ClickHouse 做实时数仓。随着时间的推移,后续 D 部门、E 部门也会有数据分析的需求,这种场景下,传统的拷贝分发多个副本方法很不灵活,而 CDC 可以实现一份变动记录,实时处理并投递到多个目的地。下图是一个示例,通过腾讯云 Oceanus 提供的 Flink CDC 引擎,可以将某个 MySQL 的数据库表的变动记录,实时同步到下游的 Redis、Elasticsearch、ClickHouse 等多个接收端。这样大家可以各自分析自己的数据集,互不影响,同时又和上游数据保持实时的同步。
在这里插入图片描述

工作方式

目前 Flink CDC 支持两种数据源输入方式。
(一)输入 Debezium 等数据流进行同步
例如 MySQL -> Debezium -> Kafka -> Flink -> PostgreSQL。适用于已经部署好了 Debezium,希望暂存一部分数据到 Kafka 中以供多次消费,只需要 Flink 解析并分发到下游的场景。
在这里插入图片描述
(二)直接对接上游数据库进行同步
我们还可以跳过 Debezium 和 Kafka 的中转,使用 Flink CDC Connectors(https://github.com/ververica/flink-cdc-connectors)对上游数据源的变动进行直接的订阅处理。从内部实现上讲,Flink CDC Connectors 内置了一套 Debezium 和 Kafka 组件,但这个细节对用户屏蔽,因此用户看到的数据链路如下图所示:
在这里插入图片描述

3、Sqoop

适用场景

Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。
在这里插入图片描述

工作方式

Sqoop的优点:

  1. 可以高效、可控的利用资源,可以通过调整任务数来控制任务的并发度。
  2. 可以自动的完成数据映射和转换。由于导入数据库是有类型的,它可以自动根据数据库中的类型转换到Hadoop中,当然用户也可以自定义它们之间的映射关系。
  3. 支持多种数据库,如mysql,orcale等数据库。

sqoop工作的机制:

将导入或导出命令翻译成MapReduce程序来实现在翻译出的MapReduce中主要是对InputFormat和OutputFormat进行定制。

sqoop版本介绍:sqoop1和sqoop2

sqoop的版本sqoop1和sqoop2是两个不同的版本,它们是完全不兼容的。

4、Canal

适用场景

Canal是阿里巴巴旗下的一款开源项目,用Java开发。

对数据库日志增量解析,提供增量数据的实时同步,目前支持MySQL
在这里插入图片描述

工作方式

  • canal 模拟 MySQL slave 的交互协议,伪装成 MySQL slave ,向 MySQL master 发送dump 协议
  • MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
  • canal 解析binary log 对象(原始为 byte 流)----->kafka等

在这里插入图片描述

5、Kettle

适用场景

Kettle最早是一个开源的ETL工具,全称为KDE Extraction, Transportation, Transformation and Loading Environment。在2006年,Pentaho公司收购了Kettle项目,原Kettle项目发起人Matt Casters加入了Pentaho团队,成为Pentaho套件数据集成架构师;从此,Kettle成为企业级数据集成及商业智能套件Pentaho的主要组成部分,Kettle亦重命名为Pentaho Data Integration 。Pentaho公司于2015年被Hitachi Data Systems收购。

Pentaho Data Integration以Java开发,支持跨平台运行,其特性包括:支持100%无编码、拖拽方式开发ETL数据管道;可对接包括传统数据库、文件、大数据平台、接口、流数据等数据源;支持ETL数据管道加入机器学习算法。

Pentaho Data Integration分为商业版与开源版,开源版的截止2021年1月的累计下载量达836万,其中19%来自中国 。在中国,一般人仍习惯把Pentaho Data Integration的开源版称为Kettle
在这里插入图片描述

工作方式

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少,这里我介绍一个我在工作中使用了3年左右的ETL工具Kettle,本着好东西不独享的想法,跟大家分享碰撞交流一下!在使用中我感觉这个工具真的很强大,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,其中最主要的我们通过熟练的应用它,减少了非常多的研发工作量,提高了我们的工作效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/143242.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【高数+复变函数】傅里叶变换的性质

文章目录 【高数复变函数】傅里叶变换的性质一、常见性质1.1 线性性质1.2 位移性质1.3 微分性质1.4 积分性质1.5 乘积定理1.6 能量积分 二、卷积2.1 卷积运算2.2 运算应用2.3 卷积定理 三、相关函数 【高数复变函数】傅里叶变换的性质 上一节:【高数复变函数】傅里…

怎么利用计算机向邮箱传输文件,如何使用QQ邮箱发送整个文件夹-电脑自学网

QQ邮箱只能发送单个文件,那么该如何使用QQ邮箱发送整个文件夹呢?其实方法非常简单,通过压缩文件夹就可以了,下面请看具体操作。 解决办法: 1、打开我们电脑,在磁盘中找到我们等下要在邮箱中进行发送的文件夹…

云服务器如何发送邮件

在共有云上目前都是封锁25端口的,也就是说想要在服务器上搭建SMTP是不可能的,除非申请解封25端口。 但是一般情况为了方便使用,可以直接选择第三方的SMTP服务器,如163,qq等等,省去自建的麻烦。 操作如下&a…

给别人发邮件怎么发

现如今是互联网时代,电子邮箱的普及率几乎已经到了“人手一个”的情况,而除了个人邮箱之外,很多职场人还会配备专门的工作邮箱。但由于工作邮件的专业性,它的发送与随意的个人邮件有一定区别,如何礼貌地给别人发邮件怎…

qq邮箱服务器接收和发送文件夹,将QQ邮箱打造成为你的邮箱总管-qq邮箱怎么发送文件夹...

其实邮箱多了也不是一件好事,每次进入QQ邮箱时,都要先登录到相应的网站,而且邮箱多了,用户名和密码也容易忘记。那有没有什么办法,不用登陆各个网站就能同时收各个邮箱的邮件呢!有人可能会说使用foxmail或者…

计算机 桌面上的文件怎么发送,文本文件如何发送到QQ邮箱里?

2017-11-02 怎么恢复右键菜单 向右键菜单发送到中添加二级菜单的方法 方法一: 打开同版本系统的C:Users用户名AppDataRoamingMicrosoftWindowsSendTo目录,复制全部内容,然后将复制内容粘贴到问题电脑同名文件夹即可。 方法二: 1、…

qq邮箱怎么发送html文件在哪里,QQ邮箱怎么发送文件夹

人们在发送qq邮件时希望把文件夹的内容全部发送过去,可是qq邮箱都没有发送文件夹的功能,那么文件夹中所有的文件就只有一张一张添加附件进行发送吗?其实可以把文件压缩后进行发送。QQ邮箱怎么发送文件夹?下面一起来看看qq邮箱发送文件夹教程。 操作步骤…

后台录制直播视频

1、下载软件https://pan.baidu.com/s/1nvB_qa9fS_njpQ5TPy9oGQ 密码:8888 2、打开有直播的网站,以抖音为例 3、按住F12进出开发者模式→选中网络→过滤输入:flv→在过滤结果(成功)处复制网址;如下图 4、…

网页视频怎么录制?这两个方法操作简单,录制高清!

网页视频怎么录制?当大家在观看网页上的视频、直播、网课时,想要将视频录制下来,结果发现很多视频设置了权限,不允许下载。这个时候就需要用到好用的录屏神器啦,既可以将视频录制下来,还能最大程度还原清晰…

如何用计算机录视频,如何在电脑上录制正在播放的视频?原来方法这么简单

如何在电脑上录制正在播放的视频?原来方法这么简单 2019年10月14日 12:15作者:黄页编辑:黄页 分享 如何在电脑上录制正在播放的视频?网页视频是当今比较方便的一种视频播放形式,无需下任何软件即可在线观看视频,如看电…

有没有什么免费的网页视频录制软件?PC端视频录制软件集合

有没有什么免费的网页视频录制软件?说起视频录制软件,应给没有人不知道吧,通过第三方工具将发生在屏幕上的视频录制下来,但是这样的软件工具非常多。下面就给大家介绍一下这3款软件! 超级捕快:点击左侧链接下载 超级捕快是一款…

Android中小视频录制,预览

工作中项目需求,在动态里面支持查看录制的小视频;录制视频主要用到Android中MediaRecorder这个类,在录制的过程中需要结合SurfaceView和Camera,Camera管理手机摄像头,SurfaceView负责将Camera捕捉到的图像渲染出来&…

如何下载网页上的视频

方法一:使用 Firefox浏览器中Video DownloadHelper扩展 下载知乎视频 方法二:使用 https://xbeibeix.com/api/bilibili/ 下载B站biliili的视频 1,使用GitHub项目you-get,中文解释 cd 需要下载的目录为止(下载的文件在…

html实现视频录制,保存和回放

录制和保存视频&#xff0c;通过三个按钮配合完成。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body ><div style"width: 80%; margin: 0 au…

视频录制软件哪个好,推荐几款简单实用的视频课件录制软件

日常生活中&#xff0c;我们有时候会因为工作或学习的原因&#xff0c;会使用到一些视频录制软件&#xff0c;通过视频录制软件&#xff0c;我们可以记录一些错过的细节&#xff0c;提高学习或工作效率。当然&#xff0c;现在网上的视频录制软件那么多&#xff0c;到底视频录制…

视频录制工具OBS选择区域录制

视频录制工具OBS录制时默认是对整个屏幕区域进行录制的&#xff0c;如果我们想只是录取某一屏幕区域&#xff0c;就需要进行一些修改。 相关的修改步骤如下&#xff1a; &#xff08;1&#xff09;新建一个“显示器采集”。 在弹出的对话框中&#xff0c;指定名字。 接着&…

基于Camera2和MediaRecorder实现视频录制

一、概述 视频录制&#xff0c;在一般开发中很少遇到&#xff0c;大部分开发工作都是写写页面&#xff0c;请求接口&#xff0c;展示数据等等。真要遇到&#xff0c;可能采用第三方库实现&#xff0c;一来实现快速&#xff0c;二来可能觉得别人实现的比较好。特别是在开发周期…

html 手机录视频,手机怎么录制视频 怎么用手机录视频?

问&#xff1a;手机怎么录制视频 怎么用手机录视频&#xff1f; 答&#xff1a;这里要分两种情况&#xff0c;一、安卓手机录视频&#xff0c;二、苹果手机录视频。其实录制视频是最简单的事了&#xff0c;下载一个好用的视频录制软件就可以搞定了&#xff0c;现在的视频录制软…

Hololens录制视频

说明&#xff1a; 最近老有兄弟伙在问&#xff0c;如何录制视频&#xff0c;讲道理的话这些东西Hololens官网上面都有详细的说明&#xff0c;不需要过于累赘说明&#xff1b;这里还是简要的讲讲如何录制&#xff0c;对Hololens新朋友们一点说明. 这里只对录制视频的步骤做简要说…

腾讯会议录制视频下载

背景解决方法 默认播放页面下全屏播放页面下 小总结 背景 最近在腾讯会议上参加了一场培训&#xff0c;我觉得特别棒&#xff0c;里面干货很多。老师使用了腾讯会议的云录制功能&#xff0c;然后把录制好的视频链接发给了我们。 如此优秀的培训课程&#xff0c;我想自己下载…