作为具有持久状态的应用程序进行部署 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前称为 Amazon Kinesis Data Analytics for Apache Flink。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

作为具有持久状态的应用程序进行部署

您可以构建自己的代码并将其导出到 Amazon S3。您可以将您在笔记中编写的代码提升到持续运行的流处理应用程序。在 Managed Service for Apache Flink 上运行 Apache Flink 应用程序有两种模式:使用 Studio 笔记本,您可以交互式地开发代码,实时查看代码结果,并在笔记中对其进行可视化。将备注部署为在流模式下运行后,Managed Service for Apache Flink 会为您创建一个持续运行、从源中读取数据、写入目标、维护长时间运行的应用程序状态并根据源流的吞吐量自动缩放的应用程序。

注意

将应用程序代码导出到 S3 存储桶必须与 Studio 笔记本位于同一区域。

只有在 Studio 笔记本上部署满足以下条件的笔记:

  • 段落必须按顺序排序。部署应用程序时,注释中的所有段落将按笔记中显示的顺序 (left-to-right, top-to-bottom) 执行。您可以通过在备注中选择 “运行所有段落” 来检查此顺序。

  • 你的代码是 Python 和SQL或者 Scala 和。SQL我们目前不支持 Python 和 Scala。 deploy-as-application

  • 您的笔记应该只有以下解释器:%flink%flink.ssql%flink.pyflink%flink.ipyflink%md

  • 不支持使用齐柏林飞艇上下文对象z。不返回任何内容的方法除了记录警告之外什么都不做。其他方法会引发 Python 异常或无法在 Scala 中编译。

  • 注释必须生成一个 Apache Flink 任务。

  • 不支持将带有动态表单的注释部署为应用程序。

  • 在部署为应用程序时,将跳过 %md (Markdown) 段落,因为这些段落应包含人类可读的文档,不适合作为生成的应用程序的一部分运行。

  • 在部署为应用程序时,将跳过禁止在齐柏林飞艇中运行的段落。即使禁用的段落使用了不兼容的解释器,例如,%flink.ipyflink在带有%flinkand %flink.ssql解释器的注释中,也会在将注释部署为应用程序时跳过该段落,并且不会导致错误。

  • 要成功部署应用程序,必须至少有一个支持运行的源代码(F SQL link PyFlink 或 Flink Scala)段落。

  • 在通过注释部署的应用程序中,在段落中的解释器指令(例如%flink.ssql(parallelism=32))中设置并行度将被忽略。相反,您可以通过更新已部署的应用程序 AWS Management Console, AWS Command Line Interface 或者 AWS API根据应用程序所需的并行度级别更改 Parallelism 和/或 ParallelismPerKPU设置,也可以为已部署的应用程序启用自动缩放。

  • 如果您要部署为具有持久状态的应用程序,则VPC必须能够访问互联网。如果您VPC无法访问互联网,请参阅在无法访问互联网的情况下作为具有持久状态的应用程序VPC进行部署

Scala/Python 标准

  • 在您的 Scala 或 Python 代码中,使用 Blink 计划程序senvstenv对于 Scala;s_env对于 st_env Python),而不是使用较旧的 “Flink” 计划程序(stenv_2对于 Scala,st_env_2对于 Python)。Apache Flink 项目建议在生产用例中使用 Blink 计划程序,这是齐柏林飞艇和 Flink 中的默认计划程序。

  • 你的 Python 段落不得使用 shell 调用/赋值,也!不得在要作为应用程序%timeit部署的注释%conda中使用IPython魔法命令

  • 您不能使用 Scala 案例类作为传递给高阶数据流运算符(如和)的函数的参数。map filter有关 Scala 案例类的信息,请参阅 Scala 文档CASECLASSES中的。

SQL标准

  • 不允许使用简单的SELECT语句,因为没有任何地方可以与段落的输出部分相提并论,可以传递数据。

  • 在任何给定的段落中,DDL语句(USECREATEALTERDROPSETRESET)必须在 DML (INSERT) 语句之前。这是因为段落中的DML语句必须作为单个 Flink 作业一起提交。

  • 最多只能有一个段落里面有DML语句。这是因为,对于该 deploy-as-application功能,我们仅支持向 Flink 提交单个作业。

有关更多信息和示例,请参阅使用适用于 Apache Flink、Amazon Translate 和 Amazon Comprehend 的亚马逊托管服务的SQL函数翻译、编辑和分析流数据