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
在带有%flink
and %flink.ssql
解释器的注释中,也会在将注释部署为应用程序时跳过该段落,并且不会导致错误。要成功部署应用程序,必须至少有一个支持运行的源代码(F SQL link PyFlink 或 Flink Scala)段落。
在通过注释部署的应用程序中,在段落中的解释器指令(例如
%flink.ssql(parallelism=32)
)中设置并行度将被忽略。相反,您可以通过更新已部署的应用程序 Amazon Web Services Management Console, Amazon Command Line Interface 或者 Amazon API根据应用程序所需的并行度级别更改 Parallelism 和/或 ParallelismPerKPU设置,也可以为已部署的应用程序启用自动缩放。如果您要部署为具有持久状态的应用程序,则VPC必须能够访问互联网。如果您VPC无法访问互联网,请参阅在无法访问互联网的情况下作为具有持久状态的应用程序VPC进行部署。
Scala/Python 标准
在您的 Scala 或 Python 代码中,使用 Blink 计划程序
( senv
stenv
对于 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语句(
USE
CREATE
、ALTER
、DROP
、SET
、RESET
)必须在 DML (INSERT
) 语句之前。这是因为段落中的DML语句必须作为单个 Flink 作业一起提交。最多只能有一个段落里面有DML语句。这是因为,对于该 deploy-as-application功能,我们仅支持向 Flink 提交单个作业。
有关更多信息和示例,请参阅使用适用于 Apache Flink、Amazon Translate 和 Amazon Comprehend 的亚马逊托管服务的SQL函数翻译、编辑和分析流数据