关于Flink DataSource数据接入

DataSet API支持从多种数据源中将批量数据集读到Flink系统中,并转换成DataSet数据集。三个月接入接口共有三种类型,分别是文件系统类型,Java Collection类型,以及通用类数据源。

640?wx_fmt=png

文件类数据

640

  1. readTextFile(path)/TextInputFormat

将文本内容转换为DataSet[String]类型数据集

env.readTextFile("file:///")
  1. readTextFileWithValue(path)/TextValueInputFormat

StringValue是一种可变的String型,通过String Value存储文本数据可以有效

降低String对象创建时的数量,从而降低系统性能上的开销

env.readTextFileWithValue("file:///","UTF-8")
  1. readCsvFile(path)/CavInputFormat

读取指定分割符切割的CSV文件,且可以直接换成Tuple类型,

Case Class对象或者POJOs类

env.readCsvFile("file:///",includedFields = Array(0,3))
  1. readSequenceFile(Key,Value,path)/SequenceFileInputFormat

读取SequenceFileInputFormat类型的文件,在参数中指定Key Class 和 Value Class类型,

返回结果为Tuple2[Key,Value]类型

env.readSequenceFile("file:///",includedFields = Array(0,3))

640?wx_fmt=png

集合类数据

640

  1. fromCollection(Seq)

集合类型可以是数组、List等,也可以从非空Iterable中创建

env.fromCollection(Seq("flink","hadoop")
  1. fromElements(_*)

数据集中的所有数据对象类型必须一致

env.fromElements("flink","hadoop")
  1. generateSequence(from,to)

指定from到to范围区间,然后在区间内部生成数字序列数据集

env.generateSequence(1,100000)

640?wx_fmt=png

通用数据接口

640

  1. readFile(inputFormat,path)/FileInputFormat

指定格式文件读取并转成DataSet数据集

env.readFile(new PointInputFormat(),"file:///")
  1. createInput(inputformat)/inputformat

自定义通用型数据源,将读取的数据转换为DataSet数据集。

env.createInput(JDNCInputformat.buildJDBCInputFormat)  .setDrivername("com.mysql.jdbc.Driver")  .setDBUtil("jdbc:mysql://localhost:3306/test")  .setQuery("select * from person")  .finish()

关于Flink DataSource数据接入_第1张图片

你可能感兴趣的:(关于Flink DataSource数据接入)