65.9K
CodeProject 正在变化。 阅读更多。
Home

Dazzling Dashboards 和 Azure Synapse Analytics 的商业智能(第 2 部分:导入和分析商业智能数据)

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2021年7月9日

CPOL

8分钟阅读

viewsIcon

4018

在本文中,我们将学习如何导入和分析商业智能数据。

在本系列的第一篇文章中,我们了解了 Azure Synapse Analytics 如何汇集数据科学家和商业智能 (BI) 专家所需的所有工具,以最大限度地发挥数据价值,并讨论了所需的具体工具。在本文中,我们将探讨如何导入和分析我们的数据。

我们将使用零售行业的 Contoso BI 演示数据集,这是一个虚构公司的广泛的销售和组织数据集。它包含大量的表。我们不需要所有这些表,但我们项目的第一个步骤是将数据上传到 Azure 云中。该数据集是 SQL Server 数据库的完整备份,因此我们可以恢复它,然后将所需的表推送到云端。

恢复数据集到 SQL Server

在恢复数据之前,请确保您已安装并运行 SQL Server,或者免费安装并运行 SQL Server。此外,请在您的计算机上安装SQL Server Management Studio (SSMS) 以连接到数据库。然后,打开并运行 SSMS,选择数据库引擎,通过服务器名称(例如 localhost\SQLEXPRESS01)连接到本地 SQL Server。

然后,我们下载并打开 ContosoBIdemoBAK.exe 以提取 ContosoRetailDW.bak 文件。我们可以将该文件放置在计算机上的任何位置。

接下来,我们右键单击数据库文件夹,然后选择还原数据库以打开向导对话框。在此向导中,我们将选项切换到设备,然后单击省略号按钮添加已提取的ContosoRetailDW.bak 文件,然后单击确定以开始还原过程。

数据库还原完成后,我们就可以在本地对任何表运行 SQL 查询了。

将数据迁移到云端

现在,让我们在云端创建一个 Azure SQL 数据库,以便将此数据迁移到其中。

登录到 Azure 门户或创建一个账户,即可获得 200 美元的免费积分。请使用非个人电子邮件地址,因为我们稍后会使用 Power BI(例如,不要使用 Gmail、Hotmail 或电信服务电子邮件地址)。

然后,在搜索栏中,找到并选择Azure SQL。然后在此页面上,单击+ 创建以开始设置新的 SQL 数据库。

然后,我们选择单个数据库,创建一个新的资源组命名数据库,并为数据库创建一个新的服务器。保存服务器的名称和登录信息。我们将需要它们来连接并迁移 SSMS 中的数据。
 

接下来,我们按检查并创建,然后按创建以部署新的服务器和数据库。然后,我们将等待其完成。

部署完成后,我们可以返回 SSMS,通过右键单击ContosoRetailDW 并选择任务 > 将数据库部署到 Microsoft Azure SQL 数据库来将本地数据库推送到 Azure,从而调出设置菜单。

注意:dbo.DimStore 表中的GeoLocationGeometry 列可能会阻止此表中的数据正确部署。如果发生这种情况,我们可以在部署到 Azure SQL 之前在 SSMS 中删除这些列。

现在,我们可以使用我们之前保存的 Azure SQL 登录凭据连接到云数据库。我们单击连接,然后在下拉菜单中选择SQL Server 身份验证,输入服务器名称,输入登录凭据,然后连接。

系统可能会提示您登录到 Microsoft Azure 以创建新防火墙规则。如果发生这种情况,您可以从 Azure 门户打开 SQL 服务器,打开设置服务器防火墙,然后启用允许 Azure 服务和资源访问此服务器,单击+ 添加客户端 IP,然后按保存

然后,我们单击下一步,然后单击完成 现在,Azure 开始将整个数据库迁移到 Azure 上的 SQL Server。这可能需要一些时间(最多几个小时),具体取决于 Internet 连接和所选的 Azure SQL 实例类型。所以,现在是时候去拿点零食了。

数据上传到云端后,我们就不再需要本地 SQL 数据库或备份文件了。如果您愿意,现在可以删除它们。

设置 Azure Synapse Analytics 工作区

我们现在已准备好开始在 Azure Synapse Analytics 中处理我们的数据。

我们首先在 Azure 门户中找到Azure Synapse Analytics,然后单击+ 创建以配置新的 Azure Synapse 工作区。

接下来,我们选择订阅资源组,并命名我们的工作区。Azure Synapse Analytics 将放置 Data Lake Storage,任何数据 blob 都会驻留在此。因此,我们单击账户名称下拉菜单下方的创建新账户,并设置文件系统名称

然后,我们转到安全选项卡,并配置一组 SQL 管理员凭据。工作区的 SQL 池使用这些凭据来处理查询和笔记本中的数据。

然后,我们按检查并创建,然后按创建来完成工作区的初始化。Azure Synapse Analytics 然后开始部署过程。

Azure Synapse Analytics 创建工作区后,我们在资源组中打开 Azure Synapse 工作区。

然后单击工作区的 Web URL。

接下来,我们需要添加一个专用 SQL 池来存储和转换我们在分析中使用的数据。首先,我们打开左侧图标底部的管理选项卡。然后,在SQL 池中,我们单击+ 新建,添加名称,并选择所需的性能级别(取决于我们的预算和性能需求)。然后,我们单击检查并创建,然后单击创建以部署工作区的新 SQL 池。

最后,我们需要一个 Spark 池来运行笔记本中的代码。让我们再次打开管理选项卡,选择Apache Spark 池,然后单击+ 新建。我们为 Spark 池命名,选择节点大小,然后选择节点数量(取决于我们的需求和预算)。然后,我们单击检查并创建,然后单击创建以部署工作区的新 Spark 池。现在,我们可以开始处理我们的数据了。

将 Contoso 数据摄取到 Synapse

我们现在可以将 Contoso BI 数据摄取到我们的工作区中。首先,我们单击工作区中的主页选项卡。然后单击摄取

让我们开始从 Azure SQL 数据库进行一次性数据加载。如果在生产环境中,我们可以将此复制数据管道计划为定期发生,例如每天、每周或每月。这样,最新的数据将始终自动准备就绪并可用。

我们需要为 Azure SQL 数据库创建一个新的连接。因此,我们将源类型设置为Azure SQL 数据库,然后单击+ 创建新连接

然后,我们选择我们的 Azure 订阅、服务器名称,并将“ContosoRetailDW”设置为我们的数据库名称。 我们可以使用已保存的 SQL 身份验证凭据进行连接。让我们单击测试连接以确保一切设置正确,然后单击创建

我们的项目不需要所有表,因此我们只勾选源表列表中的以下表:

  • dbo.DimChannel:销售渠道参考列表(例如,商店、在线、目录和经销商)
  • dbo.DimProduct:产品参考列表
  • dbo.DimPromotion:促销参考列表
  • dbo.DimStore:商店参考列表
  • dbo.FactSales:所有销售额的表

然后,我们单击下一步,并将之前部署的专用 SQL 池作为目标连接。我们继续按下一步,直到 Azure Synapse Analytics 创建管道并开始运行。管道的设置需要一些时间才能完成。我们可以单击监视来查看正在进行的管道,并等待其完成。

在 Azure Synapse Analytics 中探索数据

数据复制到 SQL 池后,我们就可以在 Azure Synapse Analytics 中处理数据了。我们将转到数据选项卡(左侧菜单中从上往下数第二个图标),并从列表中展开 SQL 池。我们应该能在其中看到导入的表。让我们尝试探索 FactSales 表进行快速测试。

我们右键单击 dbo.FactSales 表,或左键单击省略号 (操作)按钮,然后选择SELECT TOP 100 rows。Azure Synapse Analytics 会在工作区中创建一个新的 SQL 脚本,并立即运行查询以显示行表。

最后,我们创建一个笔记本,并在其中加载一些基本数据查询。选择与之前相同的 dbo.FactSales 表,但这次选择新建笔记本。然后单击加载到 DataFrame。这些操作将创建一个 Spark 笔记本,其中包含用于加载表数据的简短 Scala 脚本。

我们可以从下拉列表中选择笔记本的主要语言:Python、Scala、C# 或 SQL。或者,我们可以通过在每个条目顶部添加标签(例如 %%sql)来指定语言。我们必须先将数据加载到工作区视图中,然后才能对其进行处理。因此,我们使用类似 Spark 中的以下命令将所需的表加载到临时视图中

%%spark
val df = spark.read.sqlanalytics("instafluffsynapsesql.dbo.FactSales") 
df.createOrReplaceTempView("factsales")

现在,我们可以通过在笔记本中添加代码单元格条目然后单击全部运行来运行各种查询。以下是一些我们可以尝试用来开始分析销售数据的示例:

%%sql
/* Count Sales Rows */
SELECT COUNT (*) FROM factsales


%%sql
/* Get Sales Rows in 2009 */
SELECT * FROM factsales WHERE DateKey >= "2009-01-01T00:00:00Z" AND DateKey <= "2009-12-31T00:00:00Z" ORDER BY DateKey


%%sql
/* Calculate Sales Revenue by Date */
SELECT DATE_FORMAT(DateKey, "Y-MM-dd"), SUM(SalesAmount) FROM factsales GROUP BY DATE_FORMAT(DateKey, "Y-MM-dd") ORDER BY DATE_FORMAT(DateKey, "Y-MM-dd")

如果我们尝试将条目的视图切换到图表,我们应该会看到一些丰富多彩的数据可视化。Azure Synapse Analytics 会猜测如何最好地显示信息,但我们可能需要使用面板右侧的下拉选项来配置显示。

按时间划分的总销售收入图表如下所示:

要保存笔记本,请单击发布。将来,我们可以在开发选项卡中返回我们的笔记本。

后续步骤

现在我们已经导入了数据,并且对数据的样子有了一些了解。我们可以决定哪些内容值得包含在丰富多彩的仪表板图表中,以与我们的经理分享。

在下一篇文章中,我们将更深入地研究这些数据。我们将分析数据以回答一些业务问题,并深入了解如何扩展和改进我们的销售。我们还将创建精美的可视化效果与我们的虚构业务团队和管理层分享,以便他们获得所需信息来推动业务发展。

要了解更多关于 Azure Synapse Analytics 的信息,请注册观看Azure Synapse Analytics 实战培训系列,或继续阅读本系列的最后一篇文章,探索如何创建图表并深入了解业务数据

© . All rights reserved.