بيانات التصور

Azure Synapse هي خدمة تحليلات متكاملة تسرع وقت الحصول على البصيرة، عبر مستودعات البيانات وأنظمة تحليلات البيانات الضخمة. يعد تصور البيانات مكونا أساسيا في القدرة على اكتساب نظرة ثاقبة على بياناتك. فهو يساعد على جعل البيانات الكبيرة والصغيرة أسهل على البشر لفهمها. كما أنه يجعل من السهل اكتشاف الأنماط والاتجاهات والقيم المتطرفة في مجموعات من البيانات.

عند استخدام Apache Spark في Azure Synapse Analytics، هناك العديد من الخيارات المضمنة لمساعدتك في تصور بياناتك، بما في ذلك خيارات مخطط دفتر ملاحظات Synapse والوصول إلى المكتبات مفتوحة المصدر الشائعة والتكامل مع Synapse SQL وPower BI.

خيارات مخطط دفتر الملاحظات

عند استخدام دفتر ملاحظات Azure Synapse، يمكنك تحويل طريقة عرض النتائج الجدولية إلى مخطط مخصص باستخدام خيارات المخطط. هنا ، يمكنك تصور بياناتك دون الحاجة إلى كتابة أي رمز.

عرض (df) وظيفة

تتيح لك الوظيفة display تحويل الاستعلامات SQL وإطارات بيانات Apache Spark و RDDs إلى مرئيات بيانات غنية. يمكن استخدام الوظيفة display على إطارات البيانات أو RDDs التي تم إنشاؤها في PySpark و Scala و Java و .NET.

للوصول إلى خيارات المخطط:

  1. يظهر إخراج %%sql الأوامر السحرية في طريقة عرض الجدول المعروضة بشكل افتراضي. يمكنك أيضا استدعاء display(df) وظيفة Spark DataFrames أو مجموعات البيانات الموزعة المرنة (RDD) لإنتاج طريقة عرض الجدول المعروضة.

  2. بمجرد حصولك على طريقة عرض جدول معروضة، قم بالتبديل إلى طريقة عرض المخطط. built-in-charts

  3. يمكنك الآن تخصيص المرئيات عن طريق تحديد القيم التالية:

    التكوين الوصف
    نوع الرسم البياني تدعم display الوظيفة مجموعة واسعة من أنواع المخططات، بما في ذلك المخططات الشريطية ومخططات التشتت والرسوم البيانية الخطية والمزيد
    المفتاح تحديد نطاق القيم للمحور x
    القيمة تحديد نطاق القيم لقيم المحور y
    مجموعة السلسلة يستخدم لتحديد المجموعات للتجميع
    المجموع طريقة تجميع البيانات في المرئيات

    ملاحظة

    بشكل افتراضي ، display(df) ستأخذ الدالة فقط أول 1000 صف من البيانات لعرض المخططات. تحقق من التجميع على جميع النتائج وانقر فوق الزر تطبيق ، وسوف تطبق إنشاء المخطط من مجموعة البيانات بأكملها. سيتم تشغيل مهمة Spark عند تغيير إعداد المخطط. يرجى ملاحظة أن الأمر قد يستغرق عدة دقائق لإكمال الحساب وتقديم الرسم البياني.

  4. بمجرد الانتهاء من ذلك ، يمكنك عرض والتفاعل مع التصور النهائي الخاص بك!

عرض (df) التفاصيل الإحصائية

يمكنك استخدامه display(df, summary = true) للتحقق من ملخص الإحصائيات الخاص بإطار بيانات Apache Spark معين يتضمن اسم العمود ونوع العمود والقيم الفريدة والقيم المفقودة لكل عمود. يمكنك أيضا تحديد عمود معين لرؤية الحد الأدنى للقيمة والحد الأقصى للقيمة ومتوسط القيمة والانحراف المعياري. built-in-charts-summary

خيار displayHTML()

تدعم دفاتر ملاحظات Azure Synapse Analytics رسومات HTML باستخدام الوظيفة displayHTML .

الصورة التالية هي مثال على إنشاء مرئيات باستخدام D3.js.

d3-js-example

قم بتشغيل التعليمة البرمجية التالية لإنشاء المرئيات أعلاه.

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>

"""
)

عندما يتعلق الأمر بتصور البيانات ، تقدم Python مكتبات رسوم بيانية متعددة تأتي مليئة بالعديد من الميزات المختلفة. بشكل افتراضي، يحتوي كل تجمع Apache Spark في Azure Synapse Analytics على مجموعة من المكتبات مفتوحة المصدر المنسقة والشائعة. يمكنك أيضا إضافة إصدارات مكتبات & إضافية أو إدارتها باستخدام إمكانات إدارة مكتبة Azure Synapse Analytics.

Matplotlib

يمكنك عرض مكتبات التآمر القياسية، مثل Matplotlib، باستخدام وظائف العرض المضمنة لكل مكتبة.

الصورة التالية هي مثال على إنشاء مخطط شريطي باستخدام Matplotlib. Line graph example.

قم بتشغيل نموذج التعليمة البرمجية التالي لرسم الصورة أعلاه.

# 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()

بوكيه

يمكنك عرض HTML أو المكتبات التفاعلية، مثل خوخه، باستخدام displayHTML(df)ملف .

الصورة التالية هي مثال على رسم الحروف الرسومية فوق خريطة باستخدام خوخه.

bokeh-example

قم بتشغيل نموذج التعليمة البرمجية التالي لرسم الصورة أعلاه.

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)

حبكة

يمكنك عرض HTML أو المكتبات التفاعلية مثل Plotly، باستخدام displayHTML().

قم بتشغيل نموذج التعليمة البرمجية التالي لرسم الصورة أدناه.

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)

الباندا

يمكنك عرض إخراج html من إطار بيانات الباندا كإخراج افتراضي ، وسيظهر دفتر الملاحظات تلقائيا محتوى html النمطي.

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 

مكتبات إضافية

بالإضافة إلى هذه المكتبات، يتضمن وقت تشغيل Azure Synapse Analytics أيضا المجموعة التالية من المكتبات التي غالبا ما تستخدم لعرض البيانات:

يمكنك زيارة وثائق وقت تشغيل Azure Synapse Analytics للحصول على أحدث المعلومات حول المكتبات والإصدارات المتوفرة.

الاتصال إلى Power BI باستخدام Apache Spark & SQL عند الطلب

يتكامل Azure Synapse Analytics بشكل عميق مع Power BI مما يسمح لمهندسي البيانات بإنشاء حلول تحليلية.

يسمح Azure Synapse Analytics للمحركات الحسابية المختلفة لمساحة العمل بمشاركة قواعد البيانات والجداول بين تجمعات Spark الخاصة بها وتجمع SQL بدون خادم. باستخدام نموذج البيانات الوصفية المشتركة، يمكنك الاستعلام عن جداول Apache Spark باستخدام SQL عند الطلب. بمجرد الانتهاء، يمكنك توصيل نقطة النهاية SQL عند الطلب ب Power BI للاستعلام بسهولة عن جداول Spark المتزامنة.

الخطوات التالية