gpt4 book ai didi

sql - 千库合一的思路

转载 作者:行者123 更新时间:2023-12-01 06:58:57 24 4
gpt4 key购买 nike

我们有一个 SQL 服务器,每个客户端都有一个数据库,我们有数百个客户端。所以想象一下:database001, database002, database003, ..., database999。我们希望将所有这些数据库合并到一个数据库中。

我们的想法是添加一个 siteId 列,001, 002, 003, ..., 999。

我们正在探索使这一过渡尽可能顺利的选项。我们很乐意听到您的任何想法。事实证明,这是一个非常具有挑战性的问题。

我听说过一种技术可以创建一个匹配然后过滤的 View 。

有什么想法吗?

最佳答案

为每个客户端数据库创建一个客户端数据库 ID。您将使用此 ID 保持数据在逻辑上分开。这是“站点 ID”概念,但您可以使用派生 key (身份字段)而不是手动创建这些数字。创建一个具有数据库名称和 ID 的表,以及您需要的任何其他元数据。

下一步是创建一个 SSIS 包,该包获取相关数据库的 ID,并将其添加到必须将其数据逻辑分离的表中。然后,您可以在每个数据库上运行相同的包,并查找相关数据库的 ID。

在您拥有唯一数据的唯一 id 并导入数据后,您将必须更改您的应用程序以适应新模式(实际上是在之前,否则您就大错特错了)。

如果您想分步执行此操作,您可以在不同的“数据库”中创建 View 或函数,以便旧客户端仍然可以访问客户端的数据,即使它已被移动。如果您的部署有一些停机时间,则可能不需要此步骤。

我建议的方法相当灵活,可以一次应用于一个客户端,具体取决于您的客户端应用程序部署方法。

关于sql - 千库合一的思路,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/632251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com