Bagikan melalui


Memvisualisasikan data

Azure Synapse adalah layanan analitik terintegrasi yang mempercepat waktu untuk wawasan, di seluruh gudang data dan sistem analitik data besar. Visualisasi data adalah komponen kunci untuk dapat memperoleh wawasan tentang data Anda. Proses ini membantu membuat data besar dan kecil lebih mudah dipahami manusia. Proses ini juga memudahkan untuk mendeteksi pola, tren, dan titik luar dalam kelompok data.

Saat menggunakan Apache Spark di Azure Synapse Analytics, ada berbagai opsi bawaan untuk membantu Anda memvisualisasikan data Anda, termasuk opsi bagan buku catatan Synapse, akses ke pustaka sumber terbuka populer, dan integrasi dengan Synapse SQL dan Power BI.

Opsi bagan buku catatan

Saat menggunakan buku catatan Azure Synapse, Anda dapat mengubah tampilan hasil tabel menjadi bagan yang dikustomisasi menggunakan opsi bagan. Di sini, Anda dapat memvisualisasikan data Anda tanpa harus menulis kode apa pun.

fungsi display(df)

Fungsi ini display memungkinkan Anda mengubah kueri SQL dan kerangka data dan RDD Apache Spark menjadi visualisasi data yang kaya. Fungsi ini display dapat digunakan pada dataframe atau RDD yang dibuat di PySpark, Scala, Java, R, dan .NET.

Untuk mengakses opsi bagan:

  1. Output dari perintah ajaib %%sql muncul di tampilan tabel yang dirender secara default. Anda juga dapat memanggil display(df) pada fungsi Spark DataFrames atau Resilient Distributed Datasets (RDD) untuk menghasilkan tampilan tabel yang dirender.

  2. Setelah Anda memiliki tampilan tabel yang dirender, beralihlah ke Tampilan Bagan. built-in-charts

  3. Sekarang Anda bisa mengustomisasi visualisasi Anda dengan menentukan nilai berikut:

    Konfigurasi Deskripsi
    Jenis Bagan Fungsi display mendukung berbagai jenis bagan, termasuk bagan batang, plot sebar, grafik garis, dan lainnya
    Tombol Menentukan rentang nilai untuk sumbu x
    Value Menentukan rentang nilai untuk sumbu y
    Grup Seri Digunakan untuk menentukan grup untuk agregasi
    Agregasi Metode untuk mengagregasi data dalam visualisasi Anda

    Catatan

    Secara default, fungsi display(df) ini hanya akan mengambil 1000 baris data pertama untuk merender bagan. Periksa Agregasi atas semua hasil dan klik tombol Terapkan, Anda akan menerapkan pembuatan bagan dari seluruh himpunan data. Pekerjaan Spark akan dipicu saat pengaturan bagan berubah. Harap dicatat bahwa mungkin perlu waktu beberapa menit untuk menyelesaikan perhitungan dan merender bagan.

  4. Setelah selesai, Anda dapat melihat dan berinteraksi dengan visualisasi akhir Anda!

detail statistik display(df)

Anda dapat menggunakan display(df, summary = true) untuk memeriksa ringkasan statistik Apache Spark DataFrame tertentu yang menyertakan nama kolom, jenis kolom, nilai unik, dan nilai yang hilang untuk setiap kolom. Anda juga dapat memilih kolom tertentu untuk melihat nilai minimum, nilai maksimum, nilai rata-rata, dan simpangan bakunya. built-in-charts-summary

opsi displayHTML()

Buku catatan Azure Synapse Analytics mendukung grafik HTML menggunakan fungsi displayHTML tersebut.

Gambar berikut adalah contoh membuat visualisasi menggunakan D3.js.

d3-js-example

Jalankan kode berikut untuk membuat visualisasi di atas.

displayHTML("""<!DOCTYPE html>
<meta charset="utf-8">

<!-- Load d3.js -->
<script src="https://d3js.org/d3.v4.js"></script>

<!-- Create a div where the graph will take place -->
<div id="my_dataviz"></div>
<script>

// set the dimensions and margins of the graph
var margin = {top: 10, right: 30, bottom: 30, left: 40},
  width = 400 - margin.left - margin.right,
  height = 400 - margin.top - margin.bottom;

// append the svg object to the body of the page
var svg = d3.select("#my_dataviz")
.append("svg")
  .attr("width", width + margin.left + margin.right)
  .attr("height", height + margin.top + margin.bottom)
.append("g")
  .attr("transform",
        "translate(" + margin.left + "," + margin.top + ")");

// Create Data
var data = [12,19,11,13,12,22,13,4,15,16,18,19,20,12,11,9]

// Compute summary statistics used for the box:
var data_sorted = data.sort(d3.ascending)
var q1 = d3.quantile(data_sorted, .25)
var median = d3.quantile(data_sorted, .5)
var q3 = d3.quantile(data_sorted, .75)
var interQuantileRange = q3 - q1
var min = q1 - 1.5 * interQuantileRange
var max = q1 + 1.5 * interQuantileRange

// Show the Y scale
var y = d3.scaleLinear()
  .domain([0,24])
  .range([height, 0]);
svg.call(d3.axisLeft(y))

// a few features for the box
var center = 200
var width = 100

// Show the main vertical line
svg
.append("line")
  .attr("x1", center)
  .attr("x2", center)
  .attr("y1", y(min) )
  .attr("y2", y(max) )
  .attr("stroke", "black")

// Show the box
svg
.append("rect")
  .attr("x", center - width/2)
  .attr("y", y(q3) )
  .attr("height", (y(q1)-y(q3)) )
  .attr("width", width )
  .attr("stroke", "black")
  .style("fill", "#69b3a2")

// show median, min and max horizontal lines
svg
.selectAll("toto")
.data([min, median, max])
.enter()
.append("line")
  .attr("x1", center-width/2)
  .attr("x2", center+width/2)
  .attr("y1", function(d){ return(y(d))} )
  .attr("y2", function(d){ return(y(d))} )
  .attr("stroke", "black")
</script>

"""
)

Pustaka Python

Dalam hal visualisasi data, Python menawarkan beberapa pustaka grafik yang dikemas dengan banyak fitur berbeda. Secara default, setiap Kumpulan Apache Spark di Azure Synapse Analytics berisi serangkaian pustaka sumber terbuka yang dikuratori dan populer. Anda juga dapat menambahkan atau mengelola pustaka & versi tambahan dengan menggunakan kemampuan manajemen pustaka Azure Synapse Analytics.

Matplotlib

Anda dapat merender pustaka plot standar, seperti Matplotlib, menggunakan fungsi rendering bawaan untuk setiap pustaka.

Gambar berikut adalah contoh pembuatan bagan batang menggunakan Matplotlib. Line graph example.

Jalankan contoh kode berikut untuk menarik gambar di atas.

# Bar chart

import matplotlib.pyplot as plt

x1 = [1, 3, 4, 5, 6, 7, 9]
y1 = [4, 7, 2, 4, 7, 8, 3]

x2 = [2, 4, 6, 8, 10]
y2 = [5, 6, 2, 6, 2]

plt.bar(x1, y1, label="Blue Bar", color='b')
plt.bar(x2, y2, label="Green Bar", color='g')
plt.plot()

plt.xlabel("bar number")
plt.ylabel("bar height")
plt.title("Bar Chart Example")
plt.legend()
plt.show()

Bokeh

Anda dapat merender HTML atau pustaka interaktif, seperti bokeh, menggunakan displayHTML(df).

Gambar berikut adalah contoh plot glif pada peta menggunakan bokeh.

bokeh-example

Jalankan contoh kode berikut untuk menarik gambar di atas.

from bokeh.plotting import figure, output_file
from bokeh.tile_providers import get_provider, Vendors
from bokeh.embed import file_html
from bokeh.resources import CDN
from bokeh.models import ColumnDataSource

tile_provider = get_provider(Vendors.CARTODBPOSITRON)

# range bounds supplied in web mercator coordinates
p = figure(x_range=(-9000000,-8000000), y_range=(4000000,5000000),
           x_axis_type="mercator", y_axis_type="mercator")
p.add_tile(tile_provider)

# plot datapoints on the map
source = ColumnDataSource(
    data=dict(x=[ -8800000, -8500000 , -8800000],
              y=[4200000, 4500000, 4900000])
)

p.circle(x="x", y="y", size=15, fill_color="blue", fill_alpha=0.8, source=source)

# create an html document that embeds the Bokeh plot
html = file_html(p, CDN, "my plot1")

# display this html
displayHTML(html)

Plotly

Anda dapat merender HTML atau pustaka interaktif seperti Plotly, menggunakan displayHTML().

Jalankan contoh kode berikut untuk menarik gambar di bawah.

plotly-example

from urllib.request import urlopen
import json
with urlopen('https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json') as response:
    counties = json.load(response)

import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv",
                   dtype={"fips": str})

import plotly
import plotly.express as px

fig = px.choropleth(df, geojson=counties, locations='fips', color='unemp',
                           color_continuous_scale="Viridis",
                           range_color=(0, 12),
                           scope="usa",
                           labels={'unemp':'unemployment rate'}
                          )
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})

# create an html document that embeds the Plotly plot
h = plotly.offline.plot(fig, output_type='div')

# display this html
displayHTML(h)

Pandas

Anda dapat melihat output html dari kerangka data panda sebagai output default, notebook akan secara otomatis menampilkan konten html bergaya.

Panda graph example.

import pandas as pd 
import numpy as np 

df = pd.DataFrame([[38.0, 2.0, 18.0, 22.0, 21, np.nan],[19, 439, 6, 452, 226,232]], 

                  index=pd.Index(['Tumour (Positive)', 'Non-Tumour (Negative)'], name='Actual Label:'), 

                  columns=pd.MultiIndex.from_product([['Decision Tree', 'Regression', 'Random'],['Tumour', 'Non-Tumour']], names=['Model:', 'Predicted:'])) 

df 

Pustaka tambahan

Selain pustaka ini, Runtime Azure Synapse Analytics juga menyertakan rangkaian pustaka berikut yang sering digunakan untuk visualisasi data:

Anda dapat membuka dokumentasi Runtime Azure Synapse Analytics untuk mengetahui informasi terbaru tentang pustaka dan versi yang tersedia.

Pustaka R (Pratinjau)

Ekosistem R menawarkan beberapa pustaka grafik yang dikemas dengan berbagai fitur. Secara default, setiap Kumpulan Apache Spark di Azure Synapse Analytics berisi serangkaian pustaka sumber terbuka yang dikuratori dan populer. Anda juga dapat menambahkan atau mengelola pustaka & versi tambahan dengan menggunakan kemampuan manajemen pustaka Azure Synapse Analytics.

ggplot2

Pustaka ggplot2 populer untuk visualisasi data dan analisis data eksploratif.

Screenshot of a ggplot2 graph example.

library(ggplot2)
data(mpg, package="ggplot2") 
theme_set(theme_bw()) 

g <- ggplot(mpg, aes(cty, hwy))

# Scatterplot
g + geom_point() + 
  geom_smooth(method="lm", se=F) +
  labs(subtitle="mpg: city vs highway mileage", 
       y="hwy", 
       x="cty", 
       title="Scatterplot with overlapping points", 
       caption="Source: midwest")

rBokeh

rBokeh adalah pustaka plot R asli untuk membuat grafik interaktif yang didukung oleh pustaka visualisasi Bokeh.

Untuk menginstal rBokeh, Anda dapat menggunakan perintah berikut:

install.packages("rbokeh")

Setelah diinstal, Anda dapat memanfaatkan rBokeh untuk membuat visualisasi interaktif.

Screenshot of a rBokeh graph example.

library(rbokeh)
p <- figure() %>%
  ly_points(Sepal.Length, Sepal.Width, data = iris,
    color = Species, glyph = Species,
    hover = list(Sepal.Length, Sepal.Width))

R Plotly

Pustaka grafik R Plotly membuat grafik interaktif berkualitas publikasi.

Untuk menginstal Plotly, Anda dapat menggunakan perintah berikut:

install.packages("plotly")

Setelah diinstal, Anda dapat memanfaatkan Plotly untuk membuat visualisasi interaktif.

Screenshot of a Plotly graph example.

library(plotly) 

fig <- plot_ly() %>% 
  add_lines(x = c("a","b","c"), y = c(1,3,2))%>% 
  layout(title="sample figure", xaxis = list(title = 'x'), yaxis = list(title = 'y'), plot_bgcolor = "#c7daec") 

fig

Highcharter

Highcharter adalah pembungkus R untuk pustaka Highcharts JavaScript dan modulnya.

Untuk menginstal Highcharter, Anda dapat menggunakan perintah berikut:

install.packages("highcharter")

Setelah diinstal, Anda dapat memanfaatkan Highcharter untuk membuat visualisasi interaktif.

Screenshot of a Highcharter graph example.

library(magrittr)
library(highcharter)
hchart(mtcars, "scatter", hcaes(wt, mpg, z = drat, color = hp)) %>%
  hc_title(text = "Scatter chart with size and color")

Menyambungkan ke Power BI menggunakan Apache Spark dan SQL Sesuai Permintaan

Azure Synapse Analytics terintegrasi secara mendalam dengan Power BI yang memungkinkan insinyur data untuk membangun solusi analitik.

Azure Synapse Analytics memungkinkan mesin komputasi ruang kerja yang berbeda untuk berbagi database dan tabel antara kumpulan Spark dan kumpulan SQL tanpa server. Dengan menggunakan model metadata bersama, Anda dapat meminta tabel Apache Spark menggunakan SQL sesuai permintaan. Setelah selesai, Anda dapat menghubungkan titik akhir sesuai permintaan SQL ke Power BI untuk membuat kueri tabel Spark yang disinkronkan dengan mudah.

Langkah berikutnya