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.数据源

  1. 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字符串包含多个对象也只生成一条记录;如果没勾选,会生成多条记录
  2. kafka多主题多线程消费者

    • 基本使用,配置broker、consumer group、topic list、num of threads
  3. 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处理
  4. 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.操作

  1. Field Master 给指定字符串字段加密,可以选择Mast的类型
  2. Stream Selector 对数据流做分流处理
  3. Field Merger 支持数据合并,但只支持map、List结构的数据
  4. Aggregator 在一段时间间隔内做聚合指标,比如sum、avg、max、min等
  5. Delay 延迟一段时间
  6. Field Flattener 拆分map、List结构的数据成没有嵌套的数据结构
  7. 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使用指南的更多相关文章

  1. streamsets

    streamstes用户指南: https://streamsets.com/documentation/datacollector/latest/help/index.html#datacollec ...

  2. StreamSets SDC RPC Pipelines说明

    主要目的是进行跨pipeline 数据的通信,而不仅仅是内部pipeline 的通信,之间不同网络进行通信 一个参考图 pipeline 类型 origin destination 部署架构 使用多个 ...

  3. JavaScript权威指南 - 函数

    函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...

  4. UE4新手之编程指南

    虚幻引擎4为程序员提供了两套工具集,可共同使用来加速开发的工作流程. 新的游戏类.Slate和Canvas用户接口元素以及编辑器功能可以使用C++语言来编写,并且在使用Visual Studio 或 ...

  5. JavaScript权威指南 - 对象

    JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删. JavaScript中的所有事物都是对象:字符串.数字.数组.日期,等等. JavaScript对象除了可以保持自 ...

  6. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

  7. const extern static 终极指南

    const extern static 终极指南 不管是从事哪种语言的开发工作,const extern static 这三个关键字的用法和原理都是我们必须明白的.本文将对此做出非常详细的讲解. co ...

  8. Atitit.研发管理软件公司的软资产列表指南

    Atitit.研发管理软件公司的软资产列表指南 1. Isv模型下的软资产1 2. 实现层面implet1 3. 规范spec层1 4. 法则定律等val层的总结2 1. Isv模型下的软资产 Sof ...

  9. HA 高可用软件系统保养指南

    又过了一年 618,六月是公司一年一度的大促月,一般提前一个月各系统就会减少需求和功能的开发,转而更多去关注系统可用性.稳定性和管控性等方面的非功能需求.大促前的准备工作一般叫作「备战」,可以把线上运 ...

随机推荐

  1. 「每天一道面试题」Java类的生命周期包括哪几个阶段?

    一个Java类被加载到虚拟机中,它的生命周期才算开始,直到被从内存中卸载,它的生命周期才算结束.从开始到结束,它的整个生命周期包括加载.验证.准备.解析.初始化.使用和卸载7个阶段,其中验证.准备和解 ...

  2. 图论--网络流--最大流 洛谷P4722(hlpp)

    题目描述 给定 nn 个点,mm 条有向边,给定每条边的容量,求从点 ss 到点 tt 的最大流. 输入格式 第一行包含四个正整数nn.mm.ss.tt,用空格分隔,分别表示点的个数.有向边的个数.源 ...

  3. P3807【模板】卢卡斯定理

    题解大部分都是递归实现的,给出一种非递归的形式 话说上课老师讲的时候没给代码,然后自己些就写成了这样 对于质数\(p\)给出卢卡斯定理: \[\tbinom{n}{m}=\tbinom{n \bmod ...

  4. Jenkins 项目构建

    一:新建项目 (1)点击新建,输入项目名称--构建一个自由风格的软件项目,点击ok (2)构建触发器-----设置每两分钟执行一次 其中有5个参数 (*****) 第一个是代表分钟  一小时内的分钟数 ...

  5. nginx代理vue项目

    很多项目的前端都使用vue编写的,在项目上线部署的时候,有些项目要求把前端页面和后台服务部署在不同的服务器,这就要求使用nginx代理,本文就来讲讲vue项目怎么使用nginx代理. 项目github ...

  6. 支付宝小程序serverless---插入数据后获取数据的主键_id(mongodb)

    支付宝小程序serverless---插入数据后获取数据的主键_id(mongodb) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除, ...

  7. qt creator源码全方面分析(4-4)

    目录 统计接口实现 统计接口实现 我们知道,插件架构必不可少的是定义接口类,即抽象基类,描述用户需要自定义实现的内容.此外,一般还有一个管理器类,对接口类的所有实现类进行管理,并调用其中的接口进行.源 ...

  8. FOC: Park变换电角度误差带来的影响

    关于坐标变换已经在这篇博客中提到<FOC中的Clarke变换和Park变换详解>,在FOC算法的实际调试过程中会遇到很多与理论有所偏差的问题,往往这些情况下,需要对理论有较深刻的理解,才能 ...

  9. 明解JAVA 第三章答案

    练习3-1 package candle1220; import java.util.Scanner; public class Nightwatch { public static void mai ...

  10. python 数据类型: 字符串String / 列表List / 元组Tuple / 集合Set / 字典Dictionary

    #python中标准数据类型 字符串String 列表List 元组Tuple 集合Set 字典Dictionary 铭记:变量无类型,对象有类型 #单个变量赋值 countn00 = '; #整数 ...