开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink纯 sql 写法,怎么处理异常?遇到一条数据错误,导致后续数据都堵住了。想实现能跳过异常。

flink 纯 sql 写法,怎么处理异常?遇到一条数据错误,导致后续数据都堵住了。想实现能跳过异常的。

展开
收起
三分钟热度的鱼 2023-09-12 19:16:55 651 0
1 条回答
写回答
取消 提交回答
  • Flink 纯 SQL 写法可以使用 TRY_WITH_RESOURCE 语句来处理异常。TRY_WITH_RESOURCE 语句有 3 个子句:TRY、CATCH 和 FINALLY。TRY 子句中包含正常的业务逻辑。如果 TRY 子句中出现异常,则会执行 CATCH 子句。CATCH 子句中可以处理异常,也可以跳过异常。FINALLY 子句中包含无论如何都会执行的逻辑。

    以下是一个处理异常的 TRY_WITH_RESOURCE 语句:

    SELECT FROM table
    TRY WITH resource AS (
    SELECT
    FROM tableA
    )
    CATCH (
    e: IOException) AS (
    CAST(e.getMessage() AS STRING)
    )
    FINALLY
    SELECT FROM resource
    在上述语句中,我们使用 TRY_WITH_RESOURCE 语句来处理 IOException 异常。在 TRY 子句中,我们使用 SELECT
    FROM tableA 语句从 tableA 表中读取数据。如果 SELECT FROM tableA 语句出现异常,则会捕获异常并记录日志。在 CATCH 子句中,我们使用 CAST(e.getMessage() AS STRING) 语句将异常的错误信息转换为字符串类型。在 FINALLY 子句中,我们使用 SELECT FROM resource 语句从 resource 资源中读取数据。

    使用 TRY_WITH_RESOURCE 语句处理异常可以避免后续数据被堵住。

    2023-10-20 15:38:42
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载
    AnalyticDB基础版:云原生My SQL 敏捷数仓 立即下载
    第十二届 BigData NoSQL Meetup — 基于hbase的New sql落地实践 立即下载