先来简单自我介绍一下,我是 Mars。
目前在公司担任 Data / ML Engineer,但除了接触 Data 相关的任务之外,我本身也会去参与一些 ML 相关专案。所以对於 Data Pipeline 和 ML Pipeline 都有相关的经验。
而这次系列分享的目的,主要是希望能从自身经验中来分享一个在台湾比较少人提到跟讨论的服务工具 - Apache NiFi,这是一个 Data Pipeline 的 opensource,但通常在台湾讲到这个议题时,一开始可能都会想到像是 Apache Airflow, AWS Data Pipeline等服务工具,甚至自己额外程序撰写去执行,比较少人去联想到它。但其实这个服务在国外是成长地非常成熟,有许多很好的 UseCase,所以来透过这次的铁人30天活动让带大家能认识到这个服务的性质与使用场景。
在一开始就先来做简单的导读。如同简介所说,在这次的系列文当中,我要介绍一个 Data Pipeline 的工具服务 - Apache NiFi。
首先,到底何谓 Data Pipeline 呢?我们依据下图来简单说明,可以想像有一个既有的 Source Data
,我们从这里面读取数据,经过我们中间 Pipeline 的时候,Data 会经过一些逻辑的转换或清洗,最後再落地到 Target Data
作存放或是交由其他服务做後续处理。
其中 Source Data
和 Target Data
通常为能存放资料的地方,较常见的有:
所以简单来说,只要是能存放资料的地方,我们都可以从中取得资料,再经由 Pipeline 的转换来做写入以利於後续的任务做使用。
而 Pipeline 的转换非常多样,会依照使用场景跟需求不同而有所设计,最常见的有:
接着,由於目前大环境的现况,在实际应用中我们会很常面临到需要做大量资料转换的场景,可能要整合多个 Datasource 然後做整并处理,来给商业端或是ML相关的下游做应用,所以 Data Pipeline 在真实场景上其实是扮演着一个非常重要的角色。
也正因为其之重要性,所以延伸出许多相关服务,像是常见的 GCP Data Fusion
、GCP Dataflow
、AWS Data Pipeline
等,但这些常见的都是在各自的 Cloud,因此能对接的也都以自身 Cloud 的 Datasource 居多,例如 AWS 就只能接 AWS 自己的 DB 或 Storage,GCP 也是。那 Apache Airflow
呢?要说他是他其实在目前大多数的应用确实是,说不是也确实不是,因为 Airflow 在当初的发展理念主要是以 Workflow 为主,所以它并不是很纯的 Data pipeline 工具,这部分会在後续有一篇来单独介绍这中间的差异性。
而我们这次的主轴 Apache-NiFi,它拥有以下几个重要特点:
那 Apache-NiFi有没有缺点,其实也是有的,如下:
那基於以上特点与性质,我先在这里大概提一下,可能有些人觉得听起来不错、有些人觉得还好,但对我来说这就是一个选择
,依照不同的使用场景选择适用的工具这才是重要的,但至少在我的经验中使用 Apache Nifi 是有一定的成效跟好处,所以也希望将此服务好好地介绍给各位。在接下来的30天会带着大家一步一步地理解 Apache Nifi 的性质与特点是什麽意思,以及如何去实作操作它。
Day2-Day14: Apache NiFi 架构, Docker环境建置与 Component 介绍
Day15-Day16: NiFi 与 RDB, MongoDB 的对接
Day17-Day22: NiFi 与云端服务的对接(AWS, GCP)
Day23-Day27: NiFi 延伸应用(NiFi api, 对接 Slack等)
Day28-Day29: 工具比较与案例分享
Day30: 结论与未来
图片加文字 教学原文参考:图片加文字 这篇文章会介绍如何透过 GIMP,使用选取工具和文字工具,开启...
Q1. 什麽是 堆叠型 SQL注入? 堆叠型 SQL注入也称为 堆查询注入,英文为 stacked ...
Question link: https://leetcode.com/problems/repea...
你最万能的游戏机 Windows PC windows 为市占率最高的电脑作业,他满足了人们音乐, ...
今天来笔记一个之前从股癌上看到由 Ray Dalio 分享的一段 30 分钟的浅白经济学的影片。 ...