部署为具有持久状态的应用程序 - Amazon Kinesis Data Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

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

您可以构建代码并将其导出到 Amazon S3。您可以将笔记中写入的代码推广到持续运行的流处理应用程序。在 Kinesis Data Analytics 上运行 Apache Flink 应用程序有两种模式:借助 Studio 笔记本,您可以交互式开发代码、实时查看代码结果并在笔记中可视化。部署注释以在串流模式下运行后,Kinesis Data Analytics 会为您创建一个应用程序,该应用程序可持续运行、从源读取数据、向目标写入数据、保持长时间运行的应用程序状态,并根据源流的吞吐量自动扩展。

注意

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

只有在 Studio 笔记本符合以下条件的情况下,才能从 Studio 笔记本中部署笔记本:

  • 段落必须按顺序排序。在部署您的应用程序时,注释中的所有段落将按顺序执行(left-to-right、top-to-bottom) 因为它们出现在你的笔记中。你可以通过选择查看此订单运行所有段落在你的笔记中。

  • 你的代码是 Python 和 SQL 或 Scala 和 SQL 的组合。我们目前不支持 Python 和 Scaladeploy-as-application.

  • 你的笔记应该只有以下口译员:%flink%flink.ssql%flink.pyflink%flink.ipyflink%md.

  • 使用Zeppelin 上下文宾语z不支持 。不返回任何内容的方法除了记录警告之外什么都不会有 其他方法将引发 Python 异常或无法在 Scala 中编译。

  • 注释必须导致一个 Apache Flink 作业。

  • 带备注动态表单不支持作为应用程序进行部署。

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

  • 在作为应用程序进行部署时,将跳过因在 Zeppelin 中运行而禁用的段落。例如,即使禁用的段落使用不兼容的解释器,%flink.ipyflink在笔记中%flink and %flink.ssql口译员,在将备忘录作为应用程序部署时将被跳过,不会导致错误。

  • 源代码必须至少有一个段落(Flink SQL,PyFlink或 Flink Scala),它已启用以运行以使应用程序部署成功。

  • 在段落内的解释器指令中设置并行度(例如%flink.ssql(parallelism=32)) 在注释中部署的应用程序中将被忽略。而是可以通过Amazon Web Services Management Console、Amazon Command Line Interface要么Amazon用于更改并行性和/或的APIParallelismPer根据应用程序所需的并行度级别进行 KPU 设置,或者您可以为已部署的应用程序启用自动缩放功能。

Scala /PYTHO标准

  • 你的 Scala 或 Python 代码不能使用BatchExecutionEnvironment要么BatchTableEnvironment(benvbtenvbtenv_2对于 Scala;b_envbt_envbt_env_2对于 Python)。

  • 在你的 Scala 或 Python 代码中,使用闪烁规划器(senvstenv对于 Scala;s_envst_env对于 Python)而不是旧的 “Flink” 规划器(stenv_2对于 Scala 来说,st_env_2对于 Python)。Apache Flink 项目建议在生产用例中使用 Blink 规划器,这是齐柏林和 Flink 中的默认规划器。

  • 你的 Python 段落不能使用shell 调用/任务使用!要么iPython 魔术命令%timeit要么%conda在打算作为应用程序部署的注释中。

  • 你不能使用 Scala 案例类作为传递给高阶数据流运算符的函数的参数,例如mapfilter. 有关 Scala 案例类别的信息,请参阅。案例类Scala 文档中的内容。

  • 您可以使用 Java 或 Scala 编写的 UDF 部署应用程序,但不能用 Python 编写。

SQL 标准

  • 不允许使用简单的 SELECT 语句,因为没有相当于段落的输出部分可以传送数据的地方。

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

  • 其中最多应该有一个段落中包含 DML 语句。这是因为,对于deploy-as-application功能,我们只支持向 Flink 提交一份工作。