【问题标题】:when to use Temporary table or permanent table in Flink在 Flink 中何时使用临时表或永久表
【发布时间】:2023-03-10 18:40:01
【问题描述】:

Flink 新手,我正在构建一个简单的聚合管道,例如每天的销售额。我正在使用表 api。我看到创建表有两种选择:临时表和永久表。对于永久表,我们还需要设置一个目录,例如蜂巢。所以我倾向于使用临时表,这很容易上手。但是很好奇彼此的优点和缺点。

根据文档,当 Flink 作业停止时临时表不存在。那么如果我们为 bug 修复进行 Flink Job 部署会发生什么。

谢谢!

【问题讨论】:

    标签: apache-flink flink-streaming flink-sql pyflink


    【解决方案1】:

    表不存储您的数据,而是存储元数据,即表的名称和位置。例如,对于 Kafka 支持的表,代理的地址和主题名称。

    可以使用临时表。但是,如果您想与其他应用程序共享此元数据,那么将其存储在目录中并使用永久表会很方便。

    【讨论】:

    • 所以澄清一下,使用永久表的主要原因是共享元数据?另外,您能否帮助回答在 Flink 应用程序部署期间会发生什么(比如错误修复)。特别是,如果表架构发生变化,Flink 运行时是否会识别并从之前的检查点继续工作?
    • 是的,共享元数据是使用永久表的主要(也许是唯一)原因。至于表模式更改,Flink 运行时会尝试迁移状态,但可能不会成功 - Row 类型(尚)不支持模式演变,如果您更改快照中的其他状态也可能变得不兼容您的查询。
    猜你喜欢
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    相关资源
    最近更新 更多