直观:大数据数据采集工具简介
优采云 发布时间: 2022-10-30 07:22直观:大数据数据采集工具简介
随着大数据技术体系的发展,越来越多的企业利用大数据技术来支持其业务发展。数据采集作为大数据的起点,是*敏*感*词*动获取数据的重要手段。数据采集的多样性和全面性直接影响数据质量。
企业获取数据的渠道分为内部渠道和外部渠道两种。内部渠道包括自建业务系统,如电商系统、门户网站网站、门户论坛等。外部渠道包括爬虫系统爬取的数据、三方合作平台的数据、公众的数据社交平台。那么如何从这些来源获取数据呢?下面简单介绍一下常用的data采集工具。
结构化数据采集工具。
结构化数据占分析原创数据的很大一部分,其中大部分被预处理到数据仓库中,以进行进一步的多维分析和数据挖掘。常用的数据采集工具有:
1 阿帕奇水槽
支持离线和实时数据导入,是数据集成的主要工具。
2 Apache Sqoop
主要使用JDBC等工具连接关系型数据库和Hadoop生态系统的文件系统。通过配置文件配置双向连接信息后,通过命令完成数据的导入导出。
半结构化数据采集工具
半结构化数据在日志格式中更为常见。对于记录 采集 的工具,更常见的是
1个Logstash
Logstash 与 ElasticSearch 和 Kibana 并称为 ELK,是 采集 日志的黄金搭档。
2 Apache Flume 也主要用于日志文本数据采集。
非结构化数据采集工具
1 数据X
DataX 是一个轻量级的中间件,在关系型数据库中具有出色的导入导出性能。支持多种数据类型的导入导出。
流数据采集工具
1 卡夫卡
卓越的性能和超高的吞吐量。
Binlog日志采集工具
1 运河
基于MySQL数据库的增量日志分析提供增量日志订阅和消费功能。
爬虫采集框架和工具
1 Java 堆栈、Nutch2、WebMagic 等。
2 Python 堆栈、Scrapy、PySpider
3 第三方爬虫工具,优采云、优采云、优采云等。
汇总:可观测数据采集哪家强?
先说一下我的观点,采集能力是可观察领域的一个重要环节,也是第一环节,尤其是高性能、高稳定性、统一合理的数据模型(OT)、云原生友好采集 能力。
前面写了文章来说明采集工具的一些要求和难点,所以今天我再进一步分析一下有哪些开源的采集选型工具。
首先,不用说open-telemetry-collector作为可观测领域的高手,值得借鉴和研究,主要有以下几点:
1)、遵循OT范式,这也是各大厂商制定的最佳实践。
2)、功能丰富,涵盖日志采集、链接采集、指标采集。
尽管如此,仍处于不断迭*敏*感*词*发阶段,系统规模较大。目前,中文文献和真实案例数据很少。
如果说datadog-agent是目前observable领域的开源采集工具之王,应该没人反对,随便评论一下吧。
1.功能丰富,插件化开发,支持各类数据采集、日志、链接、指标。
2.多语言混合开发,主体为golang,加入了c++/cgo,也支持python的快速采集集成。
3. 开源比较彻底,甚至数据采集的模型也是开源的。
4.支持ebpf、profiler等功能
5. 支持多平台,云原生友好。
算了,有爱好者可以自己研究源码,能学到的东西还很多。难怪别人可以变得更大更强。真的很值得期待。
ilogtail,阿里从去年到今年开源了ilogtail指标golang的源码。这两天,它已经开源了C++源代码的核心部分。它被认为是完整的。强烈推荐并研究了一段时间。可以从以下几个方面来推荐:
1、代码质量比较高,插件开发方便二次开发。
2. 功能齐全,典型的source-transform-sink插件架构,除了日志和指标,还兼容skywalking/OT。
3.生产可用性,有较好的容错机制。
4、云原生友好,支持docker/k8s的采集。
5.文档丰富,简单易学,项目也比较活跃。
不好的地方是它是用两种语言开发的,非云原生的log采集是用C++开发的,不太友好。
logkit,七牛开源,这个开源项目用了很久,源码比较熟悉。
1、非云原生环境的日志采集功能丰富。
2.同样支持api,白屏易谈,插件开发,也是典型的reader-filter-writer管道架构,但是集成指标部分不是很优雅采集 .
对于非云原生环境下的log采集来说,是一个比较好的使用场景,但是log采集里面的一些代码比较复杂,抽象有点过分,整体代码质量一般,目前存在一些潜在的错误。同时对二次开发也不友好。
filebeat/bkunifylogbeat,相信做data采集的同事应该不陌生。诚然,作为一个日志采集,filebeat应该是老手了。不说好的方面,说几个问题吧。
1、不支持多sink,即多写。
2.表现一般。应该受到大家的批评。作者还测试了6.x版本。与 logkit/ilogtail 相比,采集 的性能至少减半,甚至更多,这取决于 ack。机制。
3、在ack和资源限制方面,能力一般,否则腾讯蓝鲸不会基于filebeat7.x做一些增强。
4. 普遍支持云原生能力。
但客观地说,filebeat作为一个日志采集工具,在一般场景下还是不错的选择,生产也可以,但是如果对上面的注释有特殊要求的话,可能不是很适合。
scaylr 也是一家规模相对较小的数据分析公司,它是开源的。它是用python作为一个整体编写的。功能比较齐全。云原生支持也不错。总体思路还是可以的。,但作为一个学习,尤其是python学习,它是一个很好的竞争对手。
当然也有grafana agent/telegraf/catagraf/datakit/exporter等采集等工具,大多偏向指标数据采集,不是很亮眼,但功能,如以及各种数据源采集,就插件的丰富程度而言,还是不错的。
Vector,是的,已经被datadog获取,作为数据流水线处理工具使用。不过其实也支持log采集,功能也比较丰富,但是对原场景的支持一般,另外一个亮点是使用rust开发,对性能敏感和安全可以考虑情景。
最后,我们来谈谈 loggie,采集 工具。整体文档比较完整,云原生友好,尤其是云原生日志采集场景,代码清晰易读,架构比较简单,也是一个采集工具作者正在研究和学习。相信结合上面的一些采集工具,会有很好的化学反应。
好了,话不多说,我们整体总结一下,做个大致的选择排名,datadog>ilogtail>loggie>open-telemetry-collector>filebeat>others 追求云原生的友好性和二次开发的便利性,logie是我的首要任务。