flink Data Source数据源

flink

Data Source数据源

Source

  • 并行度

    • 非并行:并行度只能为1

    • 并行

  • 基于集合的Source

    • fromElements

      • package com.pxj.sx.flink;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.configuration.RestOptions;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;

public class FromElementDemo {
   
   
    public static void main(String[] args) throws Exception {
   
   
        Configuration configuration = new Configuration();
        configuration.setInteger(RestOptions.PORT, 8081);
        StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(configuration);
//        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        DataStreamSource<String> daat = env.fromElements("flink", "spark", "hive");
        daat.print();


        Thread.sleep(2000000);
    }
}
	- fromElements(T ...) 方法是一个非并行的Source,可以将一到多个数据作为可变参数传入到该方法中,返回DataStreamSource。该方法返回的DataStream是一个有限数据流,数据读完后,程序退出,通常用于开发测试。

-  fromCollection

	- fromCollection可以从一个结合读取数据,返回DataStream,该方法返回的DataStream是一个有限数据流,数据读完后,程序退出,通常用于开发测试。

		- package com.pxj.sx.flink;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;

import java.util.Arrays;
import java.util.List;

public class FromCollectionDemo {
   
   
    public static void main(String[] args) throws Exception {
   
   
         StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
         List<String> wordList = Arrays.asList("flink", "spark", "hadoop", "flink");
         DataStreamSource<String> source = env.fromCollection(wordList);
         source.print(
Flink 中,集合数据源是一种常见且方便的数据源类型,它允许用户直接从内存中的集合对象(如列表、数组等)创建数据流。在头歌平台学习 Flink 集合数据源时,通常会涉及到以下几个方面的内容: ### 基本概念 集合数据源指的是将内存中的集合数据作为 Flink 程序的输入源。这种数据源在开发和测试阶段非常有用,因为它可以让开发者快速验证 Flink 程序的逻辑,而无需连接到外部数据源。 ### 代码示例 以下是一个使用 Scala 在 Flink 中使用集合数据源的简单示例代码: ```scala import org.apache.flink.streaming.api.scala._ object CollectionDataSourceExample { def main(args: Array[String]): Unit = { // 创建执行环境 val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment // 定义一个集合数据 val data = List(1, 2, 3, 4, 5) // 从集合创建数据流 val stream: DataStream[Int] = env.fromCollection(data) // 打印数据流中的元素 stream.print() // 执行任务 env.execute("Collection Data Source Example") } } ``` 上述代码中,首先创建了一个 Flink 的执行环境,然后定义了一个包含整数的列表 `data`。接着使用 `env.fromCollection(data)` 方法从集合中创建了一个数据流 `stream`。最后,通过 `stream.print()` 方法将数据流中的元素打印到控制台,并调用 `env.execute()` 方法执行任务。 ### 适用场景 - **开发与测试**:在开发和测试阶段,使用集合数据源可以快速验证 Flink 程序的逻辑,无需连接到外部数据源,提高开发效率。 - **数据模拟**:当需要模拟特定的数据集进行实验或演示时,集合数据源可以方便地创建所需的数据。 ### 注意事项 - **数据规模**:由于集合数据源是将数据存储在内存中,因此不适合处理大规模的数据。如果需要处理大规模数据,建议使用其他数据源,如文件、Kafka 等。 - **并行度**:集合数据源的并行度通常取决于集合的大小和 Flink 程序的配置。在使用集合数据源时,需要根据实际情况调整并行度,以充分利用集群资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值