当前位置: 首页 > 知识库问答 >
问题:

在Flink应用程序中访问FlatMapFunction内的数据库可以吗?

雷飞虎
2023-03-14

我正在使用kafka主题作为数据流,并使用FlatMapFunction来处理数据。处理包括用更多的数据来丰富来自流的实例,这些数据从数据库获取,执行查询以收集输出,但它感觉这不是最好的方法。

阅读文档,我知道我可以从数据库查询创建数据集,但我只看到了批处理的示例

我可以使用DataStream和DataSet执行合并/减少(或其他操作)来完成吗?

使用数据集而不是直接访问数据库可以提高性能吗?

共有1个答案

冯开诚
2023-03-14

可以使用 Flink 的 DataStream API 完成这种扩充,可以采取多种方法

(1)如果您只想一次性获取所有数据,可以使用有状态的RichFlatmapFunction,该函数在其open()方法中执行查询。

(2)如果你想对每个流元素进行查询,那么你可以在FlatmapFunction中同步执行,或者查看AsyncIO以获得更高性能的方法。

(3)为了获得最佳性能,同时从外部数据库获取最新值,请查看数据库更改流中的流并使用CoProcessFunction进行流连接。类似http://debezium.io/在这里可能很有用。

 类似资料:
  • 问题内容: 我有一个待办事项列表类型应用程序,可将所有注释数据存储在sqlite3数据库中。应用程序中的每个活动都需要访问数据库以实时编辑数据的不同部分。 当前,我让每个活动都打开自己的DBManager对象(我创建的用于管理数据库的帮助程序类)。但是,这导致了问题,我想要一个稍微更全局的访问解决方案,因此我不必继续打开/关闭/创建数据库。 我正在考虑几种选择,并且希望听到每种选择的利弊以及其他建

  • 我正在设计一个android应用程序,用户可以编写一个小文档,在其中附加一些图片,并与其他朋友分享。 我只知道Java和C,希望我能用Java构建应用程序。然而,我从来没有用其他语言编程过,所以我不知道如何使这个应用程序成为用户不仅可以单独使用,而且还可以共享他们想要的一些信息的东西。 我非常愿意学习新技术,但不会过度,因为我的时间和金钱有限。 我如何做到这一点,需要什么语言/技术来实现这一点?

  • 问题内容: 在此URL中,我有一些Json数据。如何 使用该URL将数据获取到我的andorid应用程序。 我在Google中看到过引用。但是没有解决办法。 我是Andorid的新手。 请帮我。 问题答案: 做这个 : 步骤-1在您的gradle中导入排球库: 实现’com.android.volley:volley:1.1.0’ 然后在Java中编写以下代码:

  • 在我的项目中,我创建了3个Spring启动应用程序。第一个Spring启动应用程序有h2嵌入式数据库。现在我想直接从我的第二个和第三个Spring启动应用程序访问这个数据库,而无需编写任何服务来获取这些数据。所以有人能告诉我如何实现这一点吗?

  • 问题内容: 你好, 我正在使用android开发我的第一个应用程序。该应用程序将必须连接到在线数据库以存储用户数据。 我正在寻找包含MySQL数据库的云存储。但是,我的App可以直接连接到该MySQL数据库并从中推入和拉出数据吗?还是我需要做其他事情? 非常感谢您的任何建议, 问题答案: 是的,你可以这么做。 您需要的材料: 网络服务器 Web服务器中存储的数据库 还有一点Android知识:)