关于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()

640?wx_fmt=jpeg

Flink 中,可以使用 Flink Client 来接收数据Flink Client 是一个独立的应用程序,用于连接到 Flink 集群,并发送作业执行的命令。要使用 Flink Client 接收数据,可以按照以下步骤进行操作: 1. 首先,确保你已经安装了 Flink,并且 Flink 集群正在运行。 2. 编写一个 Flink 作业,用于接收数据,并对数据进行处理。你可以使用 Flink 的 DataStream API 或 Table API 来定义你的作业逻辑。 3. 在你的 Flink 作业中,使用 `DataStream` 或 `Table` 的 `source` 方法来定义从数据源接收数据的方式。你可以使用 Flink 提供的各种内置源(如 Kafka、Socket、文件等),或者自定义一个自己的源。 4. 使用 Flink 的 `execute` 方法来提交你的作业,例如: ``` StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); DataStream<String> dataStream = env.addSource(new YourSourceFunction()); dataStream.print(); env.execute("YourJobName"); ``` 5. 在命令行中启动 Flink Client,并指定你的作业 JAR 文件: ``` ./bin/flink run -c com.your.package.YourJobClass /path/to/your/job.jar ``` 6. Flink Client 将连接到 Flink 集群,并将你的作业提交给集群进行执行。你可以通过 Flink 的 Web UI 或日志来监控作业的执行情况。 这样,你就可以使用 Flink Client 来接收数据并执行你的作业了。希望能帮到你!如果还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值