StreamSets使用指南
StreamSets使用指南
最近在调研Streamsets,照猫画虎做了几个最简单的Demo鉴于网络上相关资料非常少,做个记录。
1.简介
Streamsets是一款大数据实时采集和ETL工具,可以实现不写一行代码完成数据的采集和流转。通过拖拽式的可视化界面,实现数据管道(Pipelines)的设计和定时任务调度。最大的特点有:
- 可视化界面操作,不写代码完成数据的采集和流转
- 内置监控,可是实时查看数据流传输的基本信息和数据的质量
- 强大的整合力,对现有常用组件全力支持,包括50种数据源、44种数据操作、46种目的地。
对于Streamsets来说,最重要的概念就是数据源(Origins)、操作(Processors)、目的地(Destinations)。创建一个Pipelines管道配置也基本是这三个方面。
常见的Origins有Kafka、HTTP、UDP、JDBC、HDFS等;Processors可以实现对每个字段的过滤、更改、编码、聚合等操作;Destinations跟Origins差不多,可以写入Kafka、Flume、JDBC、HDFS、Redis等。
2.基本安装和基本操作
查看https://cloud.tencent.com/developer/article/1078852
目前网上的中文资料中,也就这个专题介绍的比较详细,几个常用组件的配置介绍的还可以,我也是按照这个入门的。
3.数据源
kafka单主题单进程消费者
- 基本使用,配置broker、zookeeper、consumer group、topic
- kafka的properties可以在kafka configuration设置
- offset管理,offset信息根据kafka版本保存在zookeeper或kafka里
- 如果没保存offset,默认方式是接受通道启动后的数据,如果需要from begining,设置conf为auto.offset.reset:earliest
- 如果之前保存了offset,从保存的offset+1开始处理
- 数据类型包括avro、json、log、text、delimited等
- Produce Single Record 如果勾选,json字符串包含多个对象也只生成一条记录;如果没勾选,会生成多条记录
kafka多主题多线程消费者
- 基本使用,配置broker、consumer group、topic list、num of threads
Hadoop FS Standalone
- 基本使用,配置Hadoop URI、File Directory、num of threads、File name parttern、File name parttern mode、read order等
- 配置时要明确指明文件路径、文件名模式、文件名匹配模式、读取顺序
- 文件名匹配模式有两种,glob mode(形如*.json)和正则表达式
- 文件名模式,例如.json、.txt等
- 读取顺序
- Last Modified Timestamp,按照文件的最后修改时间的升序次序读取数据,而且是嵌套读取子目录的内容
- Lexicographically Ascending File Names,按照文件名的字母升序读取数据
- 多线程处理,一个线程建立一个pipeline实例,并行处理数据
- 可以指定处理的第一份文件名称,那么之前的文件就不会处理了
- Buffer Limit指定每条记录的大小,如果记录大于这个限制,会按该条信息error处理
JDBC
- 首先安装jdbc driver
- 基本使用,配置connection、SQL query、username、password、jdbc driver
- 可以通过在where语句中设置指定列(offset column)的指定值(offset value)开始读取数据,比如从主键id大于10000的记录开始读取
- 两种查询模式
- 增量 从设置好的initial offset value开始读,会按一定的时间批次对append的数据自动更新,适用于append_only的场景,需要写明where和order by
select * from <tableName> where <offset column> > ${OFFSET} order by <offset column>
- 全量 会在时间间隔后重复执行query,会捕捉所有行的变化,不适合大规模的表,可以选择offset column和offset value
select * from <tableName>
4.操作
- Field Master 给指定字符串字段加密,可以选择Mast的类型
- Stream Selector 对数据流做分流处理
- Field Merger 支持数据合并,但只支持map、List结构的数据
- Aggregator 在一段时间间隔内做聚合指标,比如sum、avg、max、min等
- Delay 延迟一段时间
- Field Flattener 拆分map、List结构的数据成没有嵌套的数据结构
- Field Hasher 对指定字段进行encode,策略
5.目的地
基本配置跟数据源差不多。
6.一个简单的Demo
实现kafka读入数据,Stream Selector对数据流做分流,再各自写入到kafka不同的topic中。
整体架构
Streamsets1.PNG配置数据源
配置kafka consumer的基本信息,包括broker、zk、topic、consumer group
Streamsets2.jpg配置Data格式,这里选择的是json格式
Streamsets3.PNG
配置操作
配置Stream Selector,数据根据Version字段分为两类
Streamsets4.PNG
配置目的地
继续配置kafka producer
Streamsets5.jpg
7.参考内容 原文地址 : https://www.jianshu.com/p/870e1bb52da4
StreamSets使用指南的更多相关文章
- streamsets
streamstes用户指南: https://streamsets.com/documentation/datacollector/latest/help/index.html#datacollec ...
- StreamSets SDC RPC Pipelines说明
主要目的是进行跨pipeline 数据的通信,而不仅仅是内部pipeline 的通信,之间不同网络进行通信 一个参考图 pipeline 类型 origin destination 部署架构 使用多个 ...
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
- UE4新手之编程指南
虚幻引擎4为程序员提供了两套工具集,可共同使用来加速开发的工作流程. 新的游戏类.Slate和Canvas用户接口元素以及编辑器功能可以使用C++语言来编写,并且在使用Visual Studio 或 ...
- JavaScript权威指南 - 对象
JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删. JavaScript中的所有事物都是对象:字符串.数字.数组.日期,等等. JavaScript对象除了可以保持自 ...
- JavaScript权威指南 - 数组
JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...
- const extern static 终极指南
const extern static 终极指南 不管是从事哪种语言的开发工作,const extern static 这三个关键字的用法和原理都是我们必须明白的.本文将对此做出非常详细的讲解. co ...
- Atitit.研发管理软件公司的软资产列表指南
Atitit.研发管理软件公司的软资产列表指南 1. Isv模型下的软资产1 2. 实现层面implet1 3. 规范spec层1 4. 法则定律等val层的总结2 1. Isv模型下的软资产 Sof ...
- HA 高可用软件系统保养指南
又过了一年 618,六月是公司一年一度的大促月,一般提前一个月各系统就会减少需求和功能的开发,转而更多去关注系统可用性.稳定性和管控性等方面的非功能需求.大促前的准备工作一般叫作「备战」,可以把线上运 ...
随机推荐
- 数学--数论--POJ281(线性同余方程)
埃琳娜(Elina)正在阅读刘如家(Rujia Liu)写的书,其中介绍了一种表达非负整数的奇怪方法.方式描述如下: 选择k个不同的正整数a 1,a 2,-,a k.对于一些非负米,把它由每一个我(1 ...
- CodeForces 1058C C. Vasya and Golden Ticket
C. Vasya and Golden Ticket time limit per test1 second memory limit per test256 megabytes inputstand ...
- 8) drf 三大认证 认证 权限 频率
一.三大认证功能分析 1)APIView的 dispath(self, request, *args, **kwargs) 2)dispath方法内 self.initial(request, *ar ...
- Jmeter-接口测试参数化后循环断言不同内容的方法
前言 各位小伙伴在做接口自动化有没遇到过这样的问题,CSV文件参数化测试数据后,只能通过人工的的方法去查看结果,不懂写代码去循环断言返回的结果.今天我们来学习一下,不用写代码,就用响应断言,怎么实现循 ...
- HashMap面试知识点总结
主要参考 JavaGuide 和 敖丙 的文章, 其中也有参考其他的文章, 但忘记保存链接了, 文中图片也是引用别的大佬的, 请见谅. 新手上路, 若有问题, 欢迎指正. 背景 HashMap 的相关 ...
- rsync 服务及部署
1 rsync简介 1.1 什么是rsync rsync: - a fast, versatile, remote (and local) file-copying toolrsync:是一种快速,多 ...
- ssh框架整合时的延迟加载问题(no session问题)的分析以及解决方案
当我们整合完三大框架,并采用hibernate的延迟加载方案时,会出现如下的异常: 现在对这个异常进行分析,如下图所示(模拟通过id查询用户信息的过程): 上图分析了为什么会出现no session的 ...
- iOS中的几种锁的总结,三种开启多线程的方式(GCD、NSOperation、NSThread)
学习内容 欢迎关注我的iOS学习总结--每天学一点iOS:https://github.com/practiceqian/one-day-one-iOS-summary OC中的几种锁 为什么要引入锁 ...
- MongoDB介绍及开发指南
目录 一.MongoDB介绍 二.搭建MongoDB 三.Java With MongoDB 四.Spring Session MongoDB 五.MongoDB开发规范及示例 六.MongoDB + ...
- [hdu5402 Travelling Salesman Problem]YY
题意:给一个n*m的矩形,每个格子有一个非负数,求一条从(1,1)到(n,m)的路径(不能经过重复的格子),使得经过的数的和最大,输出具体的方案 思路:对于row为奇数的情况,一行行扫下来即可全部走完 ...