【问题标题】:Using ksqldb to join data from multiple types of source connectors使用 ksqldb 连接来自多种类型的源连接器的数据
【发布时间】:2022-12-23 05:43:30
【问题描述】:

我们正在评估 ksqldb 作为我们组织的 ETL 工具。我们的整个应用程序托管在 Microsoft Azure 上,并且大多数 PaaS 产品在我们的组织中更受欢迎。然而,一个用例是我们有多个微服务和它们自己的数据库,我们希望将数据库中的表连接在一起,以生成一些非规范化格式的数据,用于其他一些任务。一个示例是包含用户数据的Users 表,而Orders 表包含所有订单。 Users 可能是 MySQL 中的 SQL 格式,而 Orders 可能是 MongoDB 中的 NoSQL 格式。现在我们需要根据user_idOrdersUsers表连接在一起生成一些报告。这可以在 ksqldb 中通过在流/表上使用一些连接并向每个数据库添加源连接器来完成。然后我们可以编写一个接收器连接器到一个新的 MongoDB 数据库,该数据库可以包含连接的 Users_Orders 信息。因此,如果添加了新数据并且连接器和连接正在运行,我们在Users_Orders 中的连接数据也将得到更新。

在 Azure Event Hub 中,我读到由于某些 licensing issues,无法在生产中使用 ksqldb。所以我的问题是:

在进入 Azure HDInsights 或 Confluent Cloud 等其他产品之前,是否有任何运行 ksqldb 的方法来实现相同的解决方案(可能类似于管理您自己的 Kafka 集群)?

【问题讨论】:

    标签: azure apache-kafka etl ksqldb


    【解决方案1】:

    你不一定需要 ksql;您应该能够使用 Azure (Databricks) 中提供的 SparkSQL 执行类似的操作。您不一定需要 Kafka / EventHub,因为 Spark 可以自行读取、加入和写入 Mongo/JDBC 数据(使用适当的插件)。

    ksqlDB 不是 Azure 托管服务的主要原因是它与 Confluent Licensing 冲突,但这并不妨碍您自己运行它,只要您还遵守不公开提供 ksqlDB REST API 的许可限制作为公开可用/付费的 API。我没有亲自尝试过,但是 ksqlDB 应该可以单独对抗 EventHubs,我认为您不需要像文档中建议的那样自行管理 Kafka。

    【讨论】:

    • 是的,您应该能够自行托管 KSQLDB 并连接到事件中心。虽然从未尝试过。
    猜你喜欢
    • 2017-07-11
    • 2021-09-24
    • 2012-08-18
    • 2011-08-12
    • 1970-01-01
    • 2015-04-03
    • 2016-10-28
    • 1970-01-01
    • 2014-05-01
    相关资源
    最近更新 更多