Nifi + Kafka + mysql构建实时数仓

标题Nifi + Kafka + mysql构建实时数仓

Nifi 安装 Nifi安装
Kafka安装 kafka安装

一 Nifi 简介

Nifi 最重要的就是Processor(数据处理单元)和FlowFlie(数据流)

  • FlowFile: 每条“用户数据”(即,用户通过NiFi获取或者是生成的,需要进行处理和分发的数据)均被称为FlowFile。 FlowFile由两部分组成:属性和内容。 内容是用户数据本身, 属性是与用户数据关联的键值对,用来提供一些额外的信息。比如fliename,表示的就是FlowFile的文件名,如果是通过GetFile从操作系统中取的文件的话,则filename就表示的是取到的文件的名称.

    Processor:是NiFi中负责创建、发送、接收、转换、路由、拆分、合并和处理FlowFiles的业务组件。 它是NiFi用户可用于构建其数据流的最重要的构建块。

二 Nifi简单使用 移动文件

拖动图中红色创建一个组,然后在组中进行数据处理
Nifi + Kafka + mysql构建实时数仓_第1张图片
Nifi + Kafka + mysql构建实时数仓_第2张图片
工程完整数据流
Nifi + Kafka + mysql构建实时数仓_第3张图片
分步骤创建
1.创建getfile
Nifi + Kafka + mysql构建实时数仓_第4张图片
配置getfile
Nifi + Kafka + mysql构建实时数仓_第5张图片
填写要复制文件所在的目录
Nifi + Kafka + mysql构建实时数仓_第6张图片
同理创建一个putfile
Nifi + Kafka + mysql构建实时数仓_第7张图片
Nifi + Kafka + mysql构建实时数仓_第8张图片
身材flowfile
Nifi + Kafka + mysql构建实时数仓_第9张图片
enable Getfile Nifi + Kafka + mysql构建实时数仓_第10张图片
然后start
Nifi + Kafka + mysql构建实时数仓_第11张图片
同理putfile也要enable,然后start

三 Nifi实时 数仓 将生产系统mysql数据实时导入kafka 进行数据分析

Nifi 实时数仓建设全流程,数据推到kafka后,应该用flink进行实时计算和处理,这里先不介绍如何利用flink进行实时处理。只把数据推到kafka。
Nifi + Kafka + mysql构建实时数仓_第12张图片

3.1 表连接

Nifi + Kafka + mysql构建实时数仓_第13张图片
Nifi + Kafka + mysql构建实时数仓_第14张图片
Nifi + Kafka + mysql构建实时数仓_第15张图片
Nifi + Kafka + mysql构建实时数仓_第16张图片
Nifi + Kafka + mysql构建实时数仓_第17张图片
Nifi + Kafka + mysql构建实时数仓_第18张图片
Nifi + Kafka + mysql构建实时数仓_第19张图片
Nifi + Kafka + mysql构建实时数仓_第20张图片
Nifi + Kafka + mysql构建实时数仓_第21张图片

3.2 定时生成sql

Nifi + Kafka + mysql构建实时数仓_第22张图片
Nifi + Kafka + mysql构建实时数仓_第23张图片
Nifi + Kafka + mysql构建实时数仓_第24张图片
创建jsonrecordsetwriter
Nifi + Kafka + mysql构建实时数仓_第25张图片
Nifi + Kafka + mysql构建实时数仓_第26张图片
Nifi + Kafka + mysql构建实时数仓_第27张图片
Nifi + Kafka + mysql构建实时数仓_第28张图片
Nifi + Kafka + mysql构建实时数仓_第29张图片
naespace :数据库名
info_test 表名

{
	"namespace": "数据库名",
	"type": "record",
	"name": "info_test",
	"fields": [
		{
			"name": "id",
			"type": [
				"int",
				"null"
			]
		},
		{
			"name": "store_name",
			"type": [
				"string",
				"null"
			]
		},
		{
			"name": "store_code",
			"type": [
				"string",
				"null"
			]
		},
		{
			"name": "product_name",
			"type": [
				"string",
				"null"
			]
		},
		{
			"name": "src_tbName",
			"type": "string",
			"default": "info_test"
		}
	]
}

然后点击生效

3.3 分割json

Nifi + Kafka + mysql构建实时数仓_第30张图片
配置很简单
Nifi + Kafka + mysql构建实时数仓_第31张图片

3.4 向kafka发送消息

Nifi + Kafka + mysql构建实时数仓_第32张图片
Nifi + Kafka + mysql构建实时数仓_第33张图片
全部启动后,就能在kafka拿到消息

你可能感兴趣的:(nifi,bigdata)