SQL 服务器 - 实时和历史仪表板读取表单表

SQL server - realtime and historical dashboard reading form tables

我使用 Azure SQL 数据库在 azure 上托管了 APPS 服务,其中包含大约 15 个表: - 援助 - 用户 - 事件日志 等等

目前我有大约 150k 条记录,每天我的数据库都会收到大约 2000 条与新用户相关的新帮助。在我的应用程序上,我有一个 cron,它每 1 分钟对所有表进行大量操作(更新、插入等)。

现在我的目标是创建一些漂亮的仪表板,它将为管理员显示数据(如援助状态、援助延迟数量等)——基本上是从这些表格中读取数据。它还应该提供按日期(从 - 到日期)过滤的可能性 - 因此在最坏的情况下,很少有用户可以同时生成一个月的报告(大约 60k 条记录)。我害怕直接在我的 prod 数据库上执行它,因为事实上,我已经 cron 进行了很多操作,所以我担心锁定。

我的想法是: - sql 数据库仓库 -> 最大的问题是它的成本。 - 复制到第二个数据库,它将用于查询仪表板的数据。 - 我不相信这个解决方案。 - 复制到 noSQL 数据库(仅推送重要信息)并将其用作仪表板的来源。 - 到目前为止,我还没有这种解决方案的经验。

你有什么建议最好吗?

最后,我使用了 Azure 的 Geo-replication 选项,它使用快照隔离,非常棒!甚至 MS Azure 也建议将此异地复制数据库用作用于只读操作的第二个数据库!我已经测试过并且工作得很好 :)

您可以使用 Azure 自动化来安排那些 运行 每分钟的任务,而不是从应用程序中执行。您可以进一步了解 Azure 自动化 here.

考虑使用 SQL Azure 数据同步,而不是使用异地复制。使您的主数据库成为“中心”数据库,并使用副本进行报告。您可以详细了解 SQL 数据同步 here

您还可以按照 here 的说明使用 Power BI 创建仪表板。

希望对您有所帮助。