Managed Service for Apache Flink 的 Java 示例 - Managed Service for Apache Flink

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

Managed Service for Apache Flink 的 Java 示例

以下示例演示如何创建以 Java 编写的应用程序。

注意

大多数示例都设计为在本地、开发计算机和您选择的 IDE 上运行,以及在 Amazon Managed Service for Apache Flink 上运行。它们演示可用于传递应用程序参数的机制,以及如何正确设置依赖项,以便在不做任何更改的情况下在两个环境中运行应用程序。

此示例说明如何在记录或状态对象上定义自定义 TypeInfo,以防止序列化回退至效率较低的 Kryo 序列化。例如,当您的对象包含 ListMap 时,这是必需的操作。有关更多信息,请参阅 Apache Flink 文档中的数据类型和序列化。该示例还展示如何测试对象的序列化是否回退到效率较低的 Kryo 序列化。

代码示例:CustomTypeInfo

此示例显示一个简单的应用程序,该应用程序使用 DataStream API 从 Kinesis 数据流中读取数据并写入另一个 Kinesis 数据流。该示例演示如何使用正确的依赖项设置文件,构建 uber-JAR,然后解析配置参数,这样您就可以在本地、IDE 和 Amazon Managed Service for Apache Flink 上运行应用程序。

代码示例:GettingStarted

此示例显示使用 Table API 和 SQL 的简单应用程序。其中演示如何在同一 Java 应用程序中将 DataStream API 与 Table API 或 SQL 集成。它还演示如何使用 DataGen 连接器在 Flink 应用程序内部生成随机测试数据,而无需使用外部数据生成器。

完整示例:GettingStartedTable

此示例演示如何使用 DataStream API 的 FileSink 将 JSON 文件写入 S3 存储桶。

代码示例:S3Sink

此示例演示如何使用标准使用者或 EFO 配置从 Kinesis 数据流使用的源,以及如何为 Kinesis 数据流设置接收器。

代码示例:KinesisConnectors

此示例说明如何将数据发送到 Amazon Data Firehose(以前称为 Kinesis Data Firehose)。

代码示例:KinesisFirehoseSink

此示例演示如何使用 Prometheus 接收器连接器将时间序列数据写入 Prometheus。

代码示例:PrometheusSink

此示例演示 DataStream API 中四种类型的窗口聚合。

  1. 基于处理时间的滑动窗口

  2. 基于事件时间的滑动窗口

  3. 基于处理时间的滚动窗口

  4. 基于事件时间的滚动窗口

代码示例:Windowing

此示例说明如何向 Flink 应用程序添加自定义指标并将其发送到 CloudWatch 指标。

代码示例:CustomMetrics

此示例说明如何使用 Kafka 配置提供程序设置自定义密钥库和信任存储库,其中包含用于 Kafka 连接器的 mTLS 身份验证的证书。此技术允许您在应用程序启动时从 Amazon S3 加载所需的自定义证书以及从 AWS Secrets Manager 加载密钥。

代码示例:Kafka-mTLS-Keystore-ConfigProviders

此示例说明如何使用 Kafka 配置提供程序从 AWS Secrets Manager 获取凭证并从 Amazon S3 下载信任存储库,以便在 Kafka 连接器上设置 SASL/SCRAM 身份验证。此技术允许您在应用程序启动时从 Amazon S3 加载所需的自定义证书以及从 AWS Secrets Manager 加载密钥。

代码示例:Kafka-SASL_SSL-ConfigProviders

此示例说明如何使用 Table API /SQL 中的 Kafka 配置提供程序来设置自定义密钥库和信任存储库,其中包含用于 Kafka 连接器的 mTLS 身份验证的证书。此技术允许您在应用程序启动时从 Amazon S3 加载所需的自定义证书以及从 AWS Secrets Manager 加载密钥。

代码示例:Kafka-mTLS-Keystore-Sql-ConfigProviders

此示例说明如何利用 Apache Flink 中的侧输出在指定属性上拆分流。当尝试在流应用程序中实现死信队列(DLQ)的概念时,这种模式特别有用。

代码示例:SideOutputs

此示例说明如何使用 Apache Flink 异步 I/O 以非阻塞方式调用外部端点,并对可恢复的错误进行重试。

代码示例:AsyncIO