Published on

December 24, 2018

Визуализация данных в SQL Server

Визуализация данных является важной частью понимания и анализа наборов данных. Она предоставляет другую перспективу и помогает получить инсайты, которые могут быть незаметны в табличном или числовом представлении. В этой статье мы рассмотрим различные способы визуализации данных в 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

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.