首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

列出Flink SQL作业中的所有源和汇

Flink SQL作业中的所有源和汇

基础概念

Apache Flink 是一个开源的流处理框架,支持批处理和流处理。Flink SQL 是 Flink 提供的一个 SQL 接口,允许用户使用 SQL 语句来定义和执行数据处理作业。在 Flink SQL 中,数据流的起点称为“源”(Source),终点称为“汇”(Sink)。

相关优势

  1. 易用性:Flink SQL 提供了类似关系型数据库的 SQL 语法,使得数据处理更加直观和易于理解。
  2. 灵活性:支持多种数据源和汇,能够处理各种格式的数据。
  3. 高性能:Flink 的流处理引擎具有低延迟和高吞吐量的特点。
  4. 容错性:Flink 提供了强大的容错机制,确保数据处理的可靠性。

类型

源(Source)

  • Kafka Source:从 Kafka 主题读取数据。
  • File Source:从文件系统读取数据。
  • Socket Source:从网络套接字读取数据。
  • Custom Source:自定义数据源。

汇(Sink)

  • Kafka Sink:将数据写入 Kafka 主题。
  • HDFS Sink:将数据写入 HDFS 文件系统。
  • Database Sink:将数据写入关系型数据库(如 MySQL、PostgreSQL)。
  • Elasticsearch Sink:将数据写入 Elasticsearch。
  • Custom Sink:自定义数据汇。

应用场景

  1. 实时数据处理:例如,实时监控系统日志、实时分析用户行为数据。
  2. 批处理作业:例如,批量导入数据到数据库、批量生成报表。
  3. 流数据转换:例如,从一种数据格式转换为另一种数据格式。
  4. 复杂事件处理:例如,检测异常行为、实时推荐系统。

示例代码

以下是一个简单的 Flink SQL 作业示例,展示了如何定义源和汇:

代码语言:txt
复制
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.api.bridge.java.StreamTableEnvironment;

public class FlinkSQLExample {
    public static void main(String[] args) throws Exception {
        // 创建执行环境
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        TableEnvironment tableEnv = TableEnvironment.create(env);

        // 注册 Kafka 源
        tableEnv.executeSql("CREATE TABLE kafka_source (" +
                " id INT, " +
                " name STRING, " +
                " event_time TIMESTAMP(3), " +
                " WATERMARK FOR event_time AS event_time - INTERVAL '5' SECOND" +
                ") WITH (" +
                " 'connector' = 'kafka', " +
                " 'topic' = 'test_topic', " +
                " 'properties.bootstrap.servers' = 'localhost:9092', " +
                " 'format' = 'json'" +
                ")");

        // 注册 HDFS 汇
        tableEnv.executeSql("CREATE TABLE hdfs_sink (" +
                " id INT, " +
                " name STRING, " +
                " event_time TIMESTAMP(3)" +
                ") WITH (" +
                " 'connector' = 'filesystem', " +
                " 'path' = 'hdfs://localhost:9000/output/', " +
                " 'format' = 'csv'" +
                ")");

        // 执行 SQL 查询并将结果写入汇
        tableEnv.executeSql("INSERT INTO hdfs_sink " +
                "SELECT id, name, event_time FROM kafka_source");
    }
}

参考链接

通过上述示例代码和参考链接,您可以了解更多关于 Flink SQL 作业中源和汇的详细信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

1w+ 字深入解读 Flink SQL 实现流处理核心技术!

如图8-5示,是一个SQL APIFlink作业常见逻辑数据流,其中使用到了动态表技术以及连续查询技术。...图8-5 SQL API作业动态表以及连续查询 这个Flink作业在执行时会包含以下3个步骤。...输入流映射为SQL API动态输入表:Flink作业会从数据源存储引擎读入输入流,然后将输入流映射(绑定)为SQL API动态输入表。...注意:虽然流处理批处理采用SQL查询技术方案不同,但是在Flink,对于同一个SQL查询来说,使用流处理在输入表上执行连续查询产出结果使用批处理在输入表上执行查询产出结果总是相同。...图8-11 将动态输出表转化为Upsert流 如图8-11示,Upsert流消息有-两种前缀,如果前缀为,则代表这条数据为插入或更新消息,如果前缀为-,则代表这条数据为删除消息,这两种数据最终都会以数据流被写入到数据存储引擎

92910

Flink1.3 指南四 命令行接口 转

/bin/flink list (11) 列出已经调度Job(包含Job ID信息) ./bin/flink list -s (13) 列出正在运行Job(包含Job ID信息) ..../bin/flink list -r (14) 列出Flink YARN运行Job ..../bin/flink stop 备注: 取消停止Job区别如下: 调用取消Job时,作业operator立即收到一个调用cancel()方法指令以尽快取消它们。...如果operator在调用取消操作后没有停止,Flink将定期开启中断线程来取消作业直到作业停止。 调用停止Job是一种停止正在运行作业更加优雅方法。...停止仅适用于使用实现`StoppableFunction`接口那些作业。当用户请求停止作业时,所有源将收到调用stop()方法指令。但是Job还是会持续运行,直到所有来源已经正确关闭。

1.5K20
  • Apache Flink :回顾2015,展望2016

    有趣是,在 2016年 EMEA Hadoop峰会已提交议题摘要, 提及Flink高达17个议题: ? 趣味统计:开发人员(提交者)何时提交代码?...2016年发展蓝图 Flink社区已经开始讨论今后Flink发展蓝图,下面列举一些主要内容: 流式作业运行时伸缩:流式作业需要不间断运行,并且需要对一个不断变化环境作出反应。...运行时伸缩意味着为了支持特定服务等级协议,从而动态地增加减少作业并行度,或者对输入吞吐量变化作出反应。...针对静态数据集和数据流SQL查询:用户以Flink 表 API 为基础,可以通过编写SQL语句查询静态数据集,以及针对数据流进行查询从而连续产生新结果。...更加丰富流式连接、更多运行时度量以及连续数据流API增强:支持更多(例如,Amazon Kinesis,Cassandra,Flume,等等),给用户提供更多度量指标,并提供持续改进数据流

    85390

    Cloudera 流处理社区版(CSP-CE)入门

    在 CSP ,Kafka 作为存储流媒体底层,Flink 作为核心流处理引擎,支持 SQL REST 接口。...SQL Stream Builder :运行在 Flink 之上服务,使用户能够使用 SQL 创建自己流处理作业。...在 SMM 创建主题 列出过滤主题 监控主题活动、生产者消费者 Flink SQL 流生成器 Apache Flink 是一个强大现代分布式处理引擎,能够以极低延迟高吞吐量处理流数据...为例)访问使用 MV 内容是多么容易 在 SSB 创建和启动所有作业都作为 Flink 作业执行,您可以使用 SSB 对其进行监控管理。...如果您需要获取有关作业执行更多详细信息,SSB 有一个 Flink 仪表板快捷方式,您可以在其中访问内部作业统计信息计数器。

    1.8K10

    专家带你吃透 Flink 架构:一个 新版 Connector 实现

    流计算 Oceanus 提供了便捷控制台环境,方便用户编写 SQL 分析语句、ETL 作业或者上传运行自定义 JAR 包,支持作业运维管理。...数据分片(例如 kafka partition、file source 文件 split)实际数据读取逻辑混合在 SourceFunction ,导致复杂实现。...有鉴于此,Flink 社区提出了 FLIP-27 改进计划,并在 Flink 1.12 实现了基础框架,在 Flink 1.13 kafka、hive file source 已移植到新架构,...例如在 FileSource ,SplitEnumerator 负责列出所有的文件,并有可能把文件按块或者范围进行切分,SourceReader 则负责具体文件/块数据读取。...在浏览器输入 http://localhost:8081 进入 Flink UI 界面,点击 'Running Jobs',可看到我们正在运行作业,点击作业进入作业详情,选择 Checkpoints

    1.6K50

    Flink SQL 客户端如何使用

    SQL 客户端命令行界面(CLI) 能够在命令行检索可视化分布式应用实时结果。 1. 入门 本节介绍如何在命令行里启动运行你第一个 Flink SQL 程序。...1.2 执行SQL查询 CLI 启动后,你可以使用 HELP 命令列出所有可用 SQL 语句。...在这两种模式下,SQL 客户端都可以支持解析执行 Flink 支持所有类型 SQL 语句。 3.1 交互式命令行 在交互式命令行SQL 客户端读取用户输入并在获取分号 (;) 时执行语句。...STATEMENT SET 块所有语句都要经过整体优化后作为一个 Flink 作业执行。...因为指定作业名会影响后面所有的查询 DML 语句,你也可以使用 RESET 命令来重置这个配置,即使用默认作业名: Flink SQL> RESET pipeline.name; [INFO]

    6.4K31

    专家带你吃透 Flink 架构:一个 新版 Connector 实现

    流计算 Oceanus 提供了便捷控制台环境,方便用户编写 SQL 分析语句、ETL 作业或者上传运行自定义 JAR 包,支持作业运维管理。...数据分片(例如 kafka partition、file source 文件 split)实际数据读取逻辑混合在 SourceFunction ,导致复杂实现。...有鉴于此,Flink 社区提出了 FLIP-27 改进计划,并在 Flink 1.12 实现了基础框架,在 Flink 1.13 kafka、hive file source 已移植到新架构,...例如在 FileSource ,SplitEnumerator 负责列出所有的文件,并有可能把文件按块或者范围进行切分,SourceReader 则负责具体文件/块数据读取。...在浏览器输入 http://localhost:8081 进入 Flink UI 界面,点击 'Running Jobs',可看到我们正在运行作业,点击作业进入作业详情,选择 Checkpoints

    98950

    Edge2AI之使用 FlinkSSB 进行CDC捕获

    在本次实验,您将使用 Cloudera SQL Stream Builder来捕获处理来自外部数据库活动更改。...介绍 Flink SQL Stream Builder 使用 Debezium 库内置了对变更数据捕获 (CDC) 支持。...Flink 支持将 Debezium JSON Avro 消息解释为 INSERT/UPDATE/DELETE 消息到 Flink SQL 系统。...主机连接 数据库管理员必须确保允许 Flink 作业连接到 PostgreSQL 数据库。这是通过配置pg_hba.conf配置文件以允许来自运行 Flink SSB 主机连接来完成。...当使用initial快照模式时,Flink 会跟踪最后处理变更日志并将此信息存储在作业状态。当您在 SSB 停止作业时,它会创建作业状态保存点,可用于稍后恢复执行。

    1.1K20

    专家带你吃透 Flink 架构:一个新版 Connector 实现

    流计算 Oceanus 提供了便捷控制台环境,方便用户编写 SQL 分析语句、ETL 作业或者上传运行自定义 JAR 包,支持作业运维管理。...数据分片(例如 kafka partition、file source 文件 split)实际数据读取逻辑混合在 SourceFunction ,导致复杂实现。...有鉴于此,Flink 社区提出了 FLIP-27 [9] 改进计划,并在 Flink 1.12 实现了基础框架,在 Flink 1.13 kafka、hive file source 已移植到新架构...例如在 FileSource ,SplitEnumerator 负责列出所有的文件,并有可能把文件按块或者范围进行切分,SourceReader 则负责具体文件/块数据读取。.../bin/sql-client.sh 3.重新提交作业

    1.5K52

    Flink1.5发布新功能

    最新版本已经可以下载,开发者可以通过 Flink 邮件列表或 JIRA 进行反馈。以下将列出最新版本主要特性改进。 1. 流式处理进一步演化 Flink 正在给流式处理领域带来另一次重大飞跃。...此次改进也为 Flink 将来与 Kubernetes 更好集成奠定了基础。在稍后版本,有可能在不先启动 Flink 集群情况下,将作业塞进 Docker,并作为容器部署一部分。...在流式处理环境,延迟吞吐量是最为重要两个性能指标。 Flink 1.5 从两个方面对 Flink 网络栈进行了改进,即使用基于信用(credit based)流量控制改善传输延迟。...Flink 社区正在不断努力提高检查点恢复效率。以前版本使用了异步增量检查点,在新版本,主要提高了故障恢复效率。...2.5 扩展对 SQL Table API Join 支持 在 1.5.0 版本Flink 增加对基于窗口外连接支持。

    1.3K20

    eBay | Flink在监控系统上实践应用

    元数据微服务 元数据微服务框架如图2示,最上层是元数据微服务提供Restful API, 用户通过调用API来描述提交作业。...以SQLCapability为例,每个PolicySQL语句不尽相同,如果为每个Policy都创建一个作业, Job Manager开销就会很大,且不好管理。...三、Flink 作业优化监控 了解元数据驱动后,让我们来看看可以通过哪些方法实现Flink作业而优化监控。 1....当其中一个作业特别耗CPU或内存时候,就会影响其他两个作业。 在这种情况下,我们通过配置Flink可以实现作业隔离,如图7示: ?...然而在运维Flink过程,我们也发现了由于作业重启等原因导致误报少报告警情况发生,从而误导客户。因此今后我们会在Flink稳定性高可用性上投入更多。

    2.1K20

    flink sql 知其所以然(七):不会连最适合 flink sql ETL group agg 场景都没见过吧?

    语法问题:flink sql 语法其实是其他 sql 语法基本一致。基本不会产生语法问题阻碍使用 flink sql。...2.背景篇-大家不了解 flink sql 什么? 首先从大家用 flink sql 一个初衷状态出发,想一下大家在开始上手 flink sql 时,是什么样一个想法?...4.2.语法\运行问题 其实总结来说,对于接触过 sql 同学来说,除了 flink sql 窗口聚合类写法来说,其他 sql 语法都是相同,很容易理解。...flink sql ETL group agg 场景都没见过吧获取。...我们可以发现 flink sql 语法其实 hive sql,mysql 啥语法都是基本一致。所以上手 flink sql 时,语法基本不会成为我们障碍。

    1.4K20

    Dlink ?一款FlinkSQL交互式开发平台

    SQL 提交 Yarn Application Jar 提交 作业 Cancel 作业 SavePoint Cancel,Stop,Trigger 作业从 SavePoint 恢复多种机制 元数据功能...支持作业 SavePoint 触发、恢复及其管理 Dlink 支持对 FlinkSQL 作业 Jar 作业进行 SavePoint trigger、stop、cancel 操作,以及最近一次、最早一次...、指定一次自动恢复机制,当然也记录并管理了产生所有 SavePoint 信息。...支持 sql-client 所有语法及增强语法 Dlink 可以看作是一个 sql-client web 版,不过它功能远超 sql-client 开放功能。...支持执行历史 Dlink 支持对所有通过 Dlink 提交任务进行历史归档及管理。 支持异常反馈 Dlink 可以将 Flink 语句在执行过程异常完整反馈到前端页面。

    1.7K10

    Flink SQL 知其所以然(二十四):SQL DDL!

    SQL 语法篇 1.DDL:Create 子句 大家好,我是老羊,今天来学一波 Flink SQL DDL。 CREATE 语句用于向当前或指定 Catalog 中注册库、表、视图或函数。...注册后库、表、视图函数可以在 SQL 查询中使用。...注意: Flink SQL Connector 其实就是 Flink 用于链接外部数据源接口。...映射到 Flink SQL ,在 Flink SQL 要连接到 Kafka,需要使用 kafka connector Flink SQL 已经提供了一系列内置 Connector,具体可见 https...'csv':声明 Flink SQL 任务读入或者写出时对于 Kafka 消息序列化方式是 csv 格式 从这里也可以看出来 With 具体要配置哪些配置项都是每种 Connector 决定

    1.2K30

    Flink SQL 知其所以然(二十七):TopN、Order By、Limit 操作

    DML:Order By、Limit 子句 大家好,我是老羊,今天我们来学习 Flink SQL TopN、Order By、Limit 3个操作。...),然后下发新排名数据 ⭐ 数据:接收到上游数据之后,然后输出到外部存储引擎 上面三个算子也是会 24 小时一直运行。...Flink SQL 成神之路(全文 18 万字、138 个案例、42 张图) ()史上最全干货!Flink SQL 成神之路(全文 18 万字、138 个案例、42 张图) (下)史上最全干货!...奇妙解析之路 flink sql 知其所以然(七):不会连最适合 flink sql ETL group agg 场景都没见过吧?...(四)| sql api 类型系统 flink sql 知其所以然(三)| 自定义 redis 数据表(附源码) flink sql 知其所以然(二)| 自定义 redis 数据维表(附源码) flink

    2.8K21

    Flink从1.7到1.12版本升级汇总

    细粒度批作业恢复 (FLIP-1) 批作业(DataSet、Table API SQL)从 task 失败恢复时间被显著缩短了。...1.11.0 Flink 支持在 Table & SQL 作业自定义使用向量化 Python UDF,用户只需要在 UDF 修饰额外增加一个参数 udf_type=“pandas” 即可。...Pipelined Region 调度 (FLIP-119) 在之前版本Flink 对于批作业作业有两套独立调度策略。...一个 Kafka source 节点最终产生 watermark 由该节点读取所有分区 watermark 最小值决定,从而使整个系统可以获得更好(即更接近真实情况) watermark...为了消除不必要序列化反序列化开销、数据 spilling 开销,提升 Table API / SQL 上批作业作业性能, planner 当前会利用上一个版本已经引入N元算子(FLIP-92

    2.6K20

    大数据学习路线

    分布式文件系统完美地解决了海量数据存储问题,但是一个优秀数据存储系统需要同时考虑数据存储访问两方面的问题,比如你希望能够对数据进行随机访问,这是传统关系型数据库擅长,但却不是分布式文件系统擅长...为了能够让熟悉 SQL 的人员也能够进行数据分析,查询分析框架应运而生,常用有 Hive 、Spark SQLFlink SQL、 Pig、Phoenix 等。...这些 SQL 经过解析优化后转换为对应作业程序来运行,如 Hive 本质上就是将 SQL 转换为 MapReduce 作业,Spark SQLSQL 转换为一系列 RDDs 转换关系(transformations...卷二 两册,卷二可以选择性阅读,因为其中很多章节内容在实际开发很少用到。...:Azkaban、Oozie 集群部署监控:Ambari、Cloudera Manager 上面列出都是比较主流大数据框架,社区都很活跃,学习资源也比较丰富。

    89321
    领券