Визуализация данных является важной частью понимания и анализа наборов данных. Она предоставляет другую перспективу и помогает получить инсайты, которые могут быть незаметны в табличном или числовом представлении. В этой статье мы рассмотрим различные способы визуализации данных в SQL Server.
Power BI
Power BI – это мощный инструмент для визуализации и анализа данных. Он позволяет импортировать данные из SQL Server и создавать интерактивные визуализации. Давайте рассмотрим пример:
SELECT
SUM(fs.[Profit]) AS Profit
,c.[Sales Territory] AS SalesTerritory
,CASE
WHEN c.[Sales Territory] = 'Rocky Mountain' THEN 1
WHEN c.[Sales Territory] = 'Mideast' THEN 2
WHEN c.[Sales Territory] = 'New England' THEN 3
WHEN c.[Sales Territory] = 'Plains' THEN 4
WHEN c.[Sales Territory] = 'Southeast' THEN 5
WHEN c.[Sales Territory] = 'Great Lakes' THEN 6
WHEN c.[Sales Territory] = 'Southwest' THEN 7
WHEN c.[Sales Territory] = 'Far West' THEN 8
END AS SalesTerritoryID
,fs.[Customer Key] AS CustomerKey
,SUM(fs.[Quantity]) AS Quantity
FROM [Fact].[Sale] AS fs
JOIN dimension.city AS c
ON c.[City Key] = fs.[City Key]
WHERE
fs.[customer key] <> 0
AND c.[Sales Territory] NOT IN ('External')
GROUP BY
c.[Sales Territory]
,fs.[Customer Key]
,CASE
WHEN c.[Sales Territory] = 'Rocky Mountain' THEN 1
WHEN c.[Sales Territory] = 'Mideast' THEN 2
WHEN c.[Sales Territory] = 'New England' THEN 3
WHEN c.[Sales Territory] = 'Plains' THEN 4
WHEN c.[Sales Territory] = 'Southeast' THEN 5
WHEN c.[Sales Territory] = 'Great Lakes' THEN 6
WHEN c.[Sales Territory] = 'Southwest' THEN 7
WHEN c.[Sales Territory] = 'Far West' THEN 8
END ;
После импорта данных в Power BI вы можете создавать визуализации с использованием языка R. Вот пример кода на R для кластеризации:
library(ggplot2)
clusters <- hclust(dist(Sales[,c(1,3,5)]), method = 'average')
clusterCut <- cutree(clusters, 3)
ggplot(Sales, aes(Profit, Quantity, color = Sales$SalesTerritory)) +
geom_point(alpha = 0.4, size = 2.5) + geom_point(col = clusterCut) +
scale_color_manual(values = c('black', 'red', 'green','yellow','blue','lightblue','magenta','brown'))
Добавив визуализацию сценария R в Power BI, вы можете увидеть визуализацию данных. Power BI также позволяет добавлять срезы данных, которые динамически обновляют визуализации на основе выбранных критериев.
Сервисы отчетов (SSRS)
Сервисы отчетов – это еще один инструмент в SQL Server, который позволяет создавать отчеты с визуализацией. Вы также можете использовать визуализации R в SSRS. Вот пример:
CREATE PROCEDURE ClusterAnalysis_Plot
AS
DECLARE @SQLStat NVARCHAR(4000)
SET @SQLStat = 'SELECT
SUM(fs.[Profit]) AS Profit
,c.[Sales Territory] AS SalesTerritory
,CASE
WHEN c.[Sales Territory] = ''Rocky Mountain'' THEN 1
WHEN c.[Sales Territory] = ''Mideast'' THEN 2
WHEN c.[Sales Territory] = ''New England'' THEN 3
WHEN c.[Sales Territory] = ''Plains'' THEN 4
WHEN c.[Sales Territory] = ''Southeast'' THEN 5
WHEN c.[Sales Territory] = ''Great Lakes'' THEN 6
WHEN c.[Sales Territory] = ''Southwest'' THEN 7
WHEN c.[Sales Territory] = ''Far West'' THEN 8
END AS SalesTerritoryID
,fs.[Customer Key] AS CustomerKey
,SUM(fs.[Quantity]) AS Quantity
FROM [Fact].[Sale] AS fs
JOIN dimension.city AS c
ON c.[City Key] = fs.[City Key]
WHERE
fs.[customer key] <> 0
AND c.[Sales Territory] NOT IN ('External')
GROUP BY
c.[Sales Territory]
,fs.[Customer Key]
,CASE
WHEN c.[Sales Territory] = ''Rocky Mountain'' THEN 1
WHEN c.[Sales Territory] = ''Mideast'' THEN 2
WHEN c.[Sales Territory] = ''New England'' THEN 3
WHEN c.[Sales Territory] = ''Plains'' THEN 4
WHEN c.[Sales Territory] = ''Southeast'' THEN 5
WHEN c.[Sales Territory] = ''Great Lakes'' THEN 6
WHEN c.[Sales Territory] = ''Southwest'' THEN 7
WHEN c.[Sales Territory] = ''Far West'' THEN 8
END ;'
DECLARE @RStat NVARCHAR(4000)
SET @RStat = 'library(ggplot2)
image_file <- tempfile()
jpeg(filename = image_file, width = 400, height = 400)
clusters <- hclust(dist(Sales[,c(1,3,5)]), method = ''average'')
clusterCut <- cutree(clusters, 3)
ggplot(Sales, aes(Profit, Quantity, color = Sales$SalesTerritory)) +
geom_point(alpha = 0.4, size = 2.5) + geom_point(col = clusterCut) +
scale_color_manual(values = c(''black'', ''red'', ''green'',''yellow'',''blue'',''lightblue'',''magenta'',''brown''))
dev.off()
OutputDataSet <- data.frame(data=readBin(file(image_file, "rb"), what=raw(), n=1e6))'
EXECUTE sp_execute_external_script
@language = N'R'
,@script = @RStat
,@input_data_1 = @SQLStat
,@input_data_1_name = N'Sales'
WITH RESULT SETS ((plot varbinary(max)));
Создав хранимую процедуру и добавив изображение в SSRS, вы можете отобразить визуализацию R в своем отчете. SSRS также позволяет добавлять параметры, чтобы сделать визуализацию более динамичной.
R Tools for Visual Studio / R Studio
Если вы предпочитаете работать с R напрямую, вы можете использовать R Tools for Visual Studio или R Studio для визуализации данных из SQL Server. Вот пример импорта данных в R с использованием пакета RODBC:
library(RODBC)
myconn <- odbcDriverConnect("driver={SQL Server};Server=Srv_Tomaz;database=WideWorldImportersDW;trusted_connection=true")
mydata <- sqlQuery(myconn, "SELECT * FROM [Fact].[Order]")
close(myconn)
После импорта данных вы можете использовать возможности визуализации R для создания графиков и диаграмм.
Заключение
Визуализация данных является важным аспектом анализа и понимания данных. SQL Server предоставляет различные инструменты и варианты для визуализации данных, такие как Power BI, Сервисы отчетов и R Tools for Visual Studio / R Studio. Используя эти инструменты, вы можете получить ценные инсайты из ваших данных и представить их в понятной форме.
Автор: Томаз Каструн
Twitter: @tomaz_tsql
Блог: http://tomaztsql.wordpress.com