数据驱动的解决方案:探索与可视化

在寻找基于数据的弹性解决方案时,本文将引导通过回答一些棘手的问题来实现。本文中,将使用自助式分析工具在云服务中可视化和探索数据。是的,这一切都与Power BI和Azure SQL数据库有关。

创建带有样本数据的Azure SQL数据库

首先,需要一个数据库来获取数据以创建洞察。要创建Azure数据库,请转到MS Azure主页并点击“创建资源”。拥有一个活跃的Azure订阅是创建Azure SQL数据库的先决条件。创建免费账户后,可以按照官方Azure SQL文档中的说明创建数据库。

之后,选择数据库并从数据库页面选择“查询编辑器(预览)”。

使用Power BI设计和开发交互式地图

假设从各个组织获取数据,他们可以提交他们位置的地理数据。他们需要回答一些问题,评分从1到10,这将创建一些定量数据,将用这些数据创建区域地图。

为上述场景创建了一个样本架构,如下所示:

--创建组织表 CREATE TABLE Organisation ( OrganisationId INT IDENTITY PRIMARY KEY, Name NVARCHAR(128) NOT NULL, HeadQuarters NVARCHAR(128), Head NVARCHAR(128) NOT NULL, Status TINYINT ) --创建位置表 CREATE TABLE Location ( LocationId INT IDENTITY PRIMARY KEY, OrganisationId INT REFERENCES Organisation (OrganisationId), Latitude NVARCHAR(256), Longitude NVARCHAR(256), Status TINYINT ) --创建问题表 CREATE TABLE Question ( QuestionId INT IDENTITY PRIMARY KEY, Description NVARCHAR(256) NOT NULL, Status TINYINT ) --创建分数表 CREATE TABLE Score ( LocationId INT REFERENCES Location (LocationId), QuestionId INT REFERENCES Question (QuestionId), Score DECIMAL(5,2) CHECK (Score <= 5.00), Status TINYINT )

接下来是添加数据...

如果想熟悉查询(选择、插入、删除等)Azure SQL数据库,可以按照的步骤进行。现在将从CSV文件加载数据到Azure SQL数据库。

使用了GLOBAL PEACE INDEX 2020的一些数据来填充问题表。选择了军事化领域和正在进行的国内外冲突领域的前25个和平国家和最不和平国家。从GPI领域分数中提取的样本数据可以在GitHub仓库中找到。

创建一个存储账户并将CSV文件加载到Azure存储账户的容器中。上传文件后,创建一个共享访问签名。然后点击生成SAS令牌和URL。然后复制Blob SAS令牌并返回到Azure SQL数据库。在这里使用数据库范围的凭据来访问Azure Blob存储,如下截图所示。

--创建数据库主密钥,如果尚未定义,请使用自己的密码。它用于在后续步骤中加密凭据秘密。否则跳过此步骤 CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'YourStrong!Password' ; --创建数据库范围的凭据。 CREATE DATABASE SCOPED CREDENTIAL MyAzureBlobStorageCredential WITH IDENTITY = 'SHARED ACCESS SIGNATURE' , SECRET = 'paste copied Blob SAS token here'; --创建外部数据源,带有CREDENTIAL选项。 --转到容器属性并复制位置URL CREATE EXTERNAL DATA SOURCE MyAzureBlobStorage WITH ( LOCATION = 'https://xxxxxxx.blob.core.windows.net/project1948', CREDENTIAL = MyAzureBlobStorageCredential , TYPE = BLOB_STORAGE ) ;

如果查询成功,可以执行以下步骤将数据加载到指定的表中。

BULK INSERT [dbo].[Question] FROM 'question.csv' WITH ( CHECK_CONSTRAINTS, DATA_SOURCE = 'MyAzureBlobStorage', DATAFILETYPE='char', FIELDTERMINATOR=',', ROWTERMINATOR='0x0a', FIRSTROW=1, KEEPIDENTITY, TABLOCK );

执行批量插入查询后,可以检查数据是否已正确加载。

类似地,在检查数据库中的外键约束后,可以将所有其他数据集加载到相应的表中。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485