将多个数据库快照合并到 SQL 服务器中的一个数据库中?

Merge multiple database snapshots into one database in SQL Server?

我正在研究如何将数据库快照合并到一个数据库中。每个月我都会创建一个数据库快照,因此数据将是静态的并代表特定的月份。我之所以希望数据是静态的,是因为 Power BI 报表只需要显示拍摄快照时的数据。

因为我无法将每月数据库快照合并到一个数据库中,所以我必须复制 Power BI 报告并更改数据库名称(特定数据库快照的)我必须查询以提取数据集。

是否可以将多个数据库快照(例如 snapshot_jan17 和 snapshot_feb17)合并到一个数据库中,以便我可以从单个 Power BI 报告访问快照数据并为每个 table 表示特定快照月份(用于过滤目的)?

没有开箱即用的功能。我怀疑是否有任何第 3 方工具,因为快照数据库在文件系统中管理其存储的方式。

您可以推出自己的解决方案,也许使用 SSIS。权衡是增加文件存储。

Power BI 的最爱dimensionally modelled star schema's。如果您确实实现了自定义报告数据库,则在设计时应考虑这一点。

可能与您的问题相关。关于

I have to duplicate the Power BI report and change the database name

简而言之,您可以为 server/database 个名称设置 "Empty query" 个变量,在您的查询中使用这些变量,然后在一个地方更改您的数据源,而不是在您的每个查询中报告。


防止数据源字符串重复

默认情况下,将数据导入 PowerBI Desktop 时,每个 table 或查询都会单独存储数据源详细信息,即使它们使用相同的数据源也是如此。

这使得更改整个 PowerBI 报表的源数据库变得乏味 - 这需要单独更改每个查询源参数。

here.

中描述了一种简化方法
  1. 像往常一样导入您的数据。示例:数据源类型 - SQL 服务器, 服务器名称 - localhost, 数据库 - test1, tables - table1, table2.

  2. 在查询编辑器中,添加两个空白查询:"Get Data" -> "Blank Query", serverName 值为 = "localhost"databaseName 的值为 = "test1"

  3. 对于左侧 "Queries" 窗格中的每个 table,右侧 "Query Settings" 中的 select "Source",然后使用在步骤 2 中创建的参数替换服务器和数据库名称。

  4. 现在,当您需要更新连接字符串时,更改 serverNamedatabaseName 并刷新数据。