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

各位老师,想问下, flink sql 退出client,会自动清表, 有啥好的解决方案吗?

各位老师,想问下, flink sql 退出client,会自动清表, 有啥好的解决方案吗?

展开
收起
真的很搞笑 2023-07-25 20:40:41 520 0
3 条回答
写回答
取消 提交回答
  • 在Flink SQL中,当客户端退出时,默认情况下Flink会自动清理临时表和视图。这是为了避免临时表和视图占用过多的资源,影响系统性能。

    如果您需要在客户端退出时保留临时表和视图,可以考虑以下两种解决方案:

    1. 使用Flink SQL的Session模式:在Session模式下,Flink为每个SQL客户端分配一个独立的会话ID,并将该会话ID与客户端的连接相关联。当客户端连接关闭时,会话ID也会被关闭,Flink会自动清理与该会话ID相关的临时表和视图。如果您希望保留临时表和视图,可以使用Session模式,并在客户端退出之前手动关闭会话ID。

    2. 使用Flink SQL的Catalog模式:在Catalog模式下,Flink将临时表和视图存储在外部存储系统中,例如Hive Metastore、MySQL等。当客户端退出时,Flink不会自动清理临时表和视图,而是将其保留在外部存储系统中。如果您希望保留临时表和视图,并且需要多个客户端共享这些临时表和视图,可以使用Catalog模式。

    具体选择哪种解决方案取决于您的需求和环境。如果只是简单地保留临时表和视图,Session模式可能更适合;如果需要多个客户端共享临时表和视图,并且希望将其存储在外部系统中进行持久化,Catalog模式可能更适合。

    请注意,使用Session或Catalog模式可能需要相应的配置和管理工作,具体操作和配置方式可以参考Flink的官方文档或社区资源。

    2023-07-29 17:38:22
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    Flink SQL 中,当客户端退出时,Flink 会自动清理临时表和视图。这是 Flink 的默认行为,旨在避免临时表和视图占用过多的资源,影响系统性能。
    如果您需要在客户端退出时保留临时表和视图,可以使用以下两种方式:
    使用 Flink SQL 的 session 模式:在 session 模式下,Flink 会为每个 SQL 客户端分配一个独立的会话 ID,该会话 ID 与客户端的连接相关联。当客户端连接关闭时,会话 ID 也会被关闭,Flink 会自动清理与该会话 ID 相关的临时表和视图。如果您希望保留临时表和视图,可以使用 session 模式,并在客户端退出前手动关闭会话 ID。
    使用 Flink SQL 的 catalog 模式:在 catalog 模式下,Flink 将临时表和视图存储在外部存储系统中,比如 Hive Metastore、MySQL 等。当客户端退出时,Flink 不会自动清理临时表和视图,而是将其保留在外部存储系统中。如果您希望保留临时表和视图,并且需要多个客户端共享这些临时表和视图,可以使用 catalog 模式。

    2023-07-29 17:19:48
    赞同 展开评论 打赏
  • 找个开源开发平台,此回答整理自钉群“【③群】Apache Flink China社区”

    2023-07-25 20:47:00
    赞同 展开评论 打赏

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

相关产品

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

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载