我们正在为我们的项目使用postgresql DB。每个客户都有自己的数据库(都是一样的),即我们为所有这些数据库都有数据库关系的通用模式。
我想在这些DB中搜索特定的字段值,即哪个特定的数据库/数据库包含该值。我面临的问题是我们有15-20个数据库(在正常情况下),现在搜索每个DB都不是一个好的解决方案,所以我正在寻找一些可以在所有数据库中搜索的解决方案。
我们可以使用sqlalchemy,psycopg2搜索一些脚本,但我的偏好是,如果有任何其他解决方案可用。
任何类型的帮助,建议和指示都表示赞赏。
答案 0 :(得分:1)
坦率地说,除了在15-20个数据库中实际搜索之外,你所做的事情并不多。
你可以肯定地在另一个单独的数据库中创建一个丑陋的视图,该数据库在PG 9.3发布时使用dblink(或Postgres foreign data wrapper)查询这些外部数据库。但这只会改变下游查询外部数据库的负担。
另一种选择,如果在某种程度上改变您的架构是一种选择,那就是使用DB schemas(每个客户一个)而不是完全独立的数据库。也许有一些table inheritance可以从一个只有你可以访问的管理模式一次查询所有内容。
话虽如此,请注意,无论您实际做什么,最终都会以某种方式从多个来源查询,而不是将这些表合并在一起并携带customer_id
。