【问题标题】:Read similar tables from multiple MySQL databases using WS02使用 WS02 从多个 MySQL 数据库中读取相似的表
【发布时间】:2014-11-19 18:24:40
【问题描述】:

我们有一个应用程序,其中通过为每个租户拥有一个唯一的数据库 (MYSQL) 来实现多租户。表结构相同。我需要列出每个租户的所有过期产品,我想知道如何将所有这些产品合并到 WSO2 中的一个数据 Web 服务中?我知道我可以使用为表添加前缀的数据库创建查询: 例如。从 DB1.products 中选择 DB1.products.id、DB1.products.name

是否需要为每个数据库(100+租户)定义一个数据源,是否可以在数据服务操作中指定数据库名称作为输入变量? IE。从 ?.products 中选择 ?.products.id、?.products.name

感谢您的帮助。 干杯, 欧文

【问题讨论】:

    标签: mysql wso2 wso2dss


    【解决方案1】:

    如果您的意图是拥有一个通用数据服务,该服务将从专用于每个租户的那些数据库中检索这些租户特定信息,如我所见,实现此目标的最简洁方法是生成您的 SQL 查询并使用动态可发现的数据源。

    由于您使用 100 多个租户(哇,这是一个巨大的数字 :))显然您也可能为这些租户创建了 100 多个数据库。因此,您需要在每个租户(比如说“testDS”)中创建一个具有相同名称的 carbon 数据源,包装租户特定的数据库配置,例如 JDBC URL、凭据等。接下来,如果您想出了您的数据服务将使用的数据源配置为上述数据源,在运行时,它将正确选择适当的租户特定数据源,因为数据源功能完全支持多租户。这将阻止您将数据库名称等传递给 SQL 查询,并使您的数据服务配置更干净、更通用,从而使其更易于维护。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 1970-01-01
      • 1970-01-01
      • 2012-12-24
      相关资源
      最近更新 更多