كيفية استخدام وظيفة الاستعلام المباشر في Power BI

عند إنشاء تقارير Power BI، يتوقع المشاهدون تحديث التقرير بانتظام وتحديث البيانات باستمرار. كيف؟ يعمل تحديث التقارير يدويًا، لكن Power Bi Direct Query يقدم ميزة أفضل بكثير، وهي التحديث المجدول.

في هذا البرنامج التعليمي، ستتعلم كيفية الاستفادة من وظيفة Power Bi Direct Query من خلال الاتصال بمجموعة بيانات مخزنة في خادم وتشغيل الاستعلامات على بياناتك.

كن مستعدًا وزد من الإنتاجية مع توفير الوقت في العملية!

الشروط الأساسية:

سيكون هذا البرنامج التعليمي عرضًا عمليًا. لمتابعة الخطوات، تأكد من أن لديك ما يلي:

  • Power Bi desktop – يستخدم هذا البرنامج التعليمي إصدار Power Bi desktop 2.109.1021.0.
  • خادم SQL.
  • A code editor – This tutorial uses VS code version 1.71.
  • إدارة خادم SQL (SSMS) – يستخدم هذا البرنامج التعليمي إصدار إدارة خادم SQL 18.12.1.

إنشاء قاعدة بيانات SQL للإدارة باستخدام Power BI Direct Query

تتيح لك Power BI Direct Query الاتصال المباشر بمجموعة بيانات وتمنح مشروعك خيار رفع البيانات المباشرة إلى مشروعك. ولكن قبل إنشاء قاعدة بيانات SQL والاتصال، يجب عليك معرفة اسم الخادم واسم مصدر البيانات للحصول على التفاصيل الصحيحة.

لإنشاء قاعدة بيانات SQL، اتبع هذه الخطوات:

1. ابحث عن ODBC في شريط البحث الخاص بك، وابحث عن وانقر على مدير مصدر بيانات ODBC (64 بت) لفتحه.

Launching ODBC Data Sources

2. بعد ذلك، انتقل إلى علامة التبويب System DSN في نافذة مدير مصدر بيانات ODBC، وانقر فوق إضافة لبدء إضافة مصدر بيانات جديد.

Initiating adding a new data source

3. حدد تعريف السائق لخادم SQL من القائمة أدناه، وانقر على الانتهاء لإنشاء مصدر بيانات SQL.

DirectQuery لا يدعم كل مصدر بيانات. MySQL غير مدعوم، في حين أن SQL مدعوم.

Selecting SQL Server driver

4. الآن، قم بتسمية مصدر البيانات الخاص بك (MssqlDataSource)، واختر مثيل SQL (POWERSERVER\POWERSERVER) المثبت على جهازك، ثم انقر فوق “إنهاء”.

احرص على ملاحظة اسم خادم SQL واسم مصدر البيانات، حيث ستحتاج إليهما لسلسلة الاتصال بلغة Python الخاصة بك.

Naming the new data source

5. قم بمراجعة تفاصيل مصدر البيانات الخاص بك، ثم انقر فوق “اختبار مصدر البيانات” لاختبار مصدر البيانات الخاص بك.

Testing the data source

إذا كان الاتصال جيدًا، ستحصل على رسالة “اختبار تم بنجاح” كما هو موضح أدناه.

Verifying testing the data source completed

الاتصال بخادم SQL

الآن بعد أن قمت بإنشاء مصدر بيانات لخادم SQL الخاص بك، ستستخدم ذلك المصدر لإنشاء سلسلة اتصال بيانات لرمز Python الخاص بك.

1. قم بتشغيل برنامج Visual Studio الخاص بك، واضغط على CTRL + SHFT + ` لفتح وحدة تحكم جديدة.

2. بعد ذلك، قم بتشغيل أمر sqlcmd أدناه لتسجيل الدخول إلى مثيل خادم SQL الخاص بك.

sqlcmd -S SQL_SERVER -E
Connecting to the SQL server instance

3. بمجرد تسجيل الدخول، قم بتشغيل الاستعلامات التالية لإنشاء قاعدة بيانات جديدة (CREATE DATABASE) تسمى MSSQLDB.

CREATE DATABASE MSSQLDB;
GO
Creating a new SQL database

4. قم بإنشاء ملف Python DBconnect.py وأضف الكود أدناه، الذي يتيح لك الاتصال بقاعدة بيانات SQL الخاصة بك باستخدام ORM SQLAlchemy لـ Python.

يعتبر المحرك نقطة البداية لتطبيق SQLAlchemy الخاص بك. يصف المحرك حوض الاتصال واللهجة لـ مواصفات واجهة برمجة التطبيقات لقواعد البيانات في Python (DBAPI). Python DBAPI هو مواصفة داخل Python لتحديد أنماط الاستخدام الشائعة لجميع حزم الاتصال بقاعدة البيانات. تتفاعل هذه المواصفة مع قاعدة البيانات المحددة.

//DBconnect.py
import sqlalchemy as sa
from sqlalchemy import create_engine
import urllib
import pyodbc
# إنشاء سلسلة اتصال باستخدام urllib لتنسيق النص.
conn = urllib.parse.quote_plus(
# القيم لسلسلة الاتصال المأخوذة من مصدر البيانات
'Data Source Name=MssqlDataSource;'

'Driver={SQL Server};'

'Server=POWERSERVER\POWERSERVER;'

'Database=MSSQLDB;'

'Trusted_connection=yes;'

)

try:
# إنشاء اتصال بمحرك sqlalchemy
	coxn = create_engine('mssql+pyodbc:///?odbc_connect={}'.format(conn))
	print("Passed")
except:
	print("failed!")

5. قم بإنشاء ملف Python يسمى CreateTable.py في مجلدك الرئيسي وأضف الكود أدناه ، وقم بتشغيله. الكود أدناه ينشئ جدولًا يُسمى students في قاعدة بيانات SQL الخاصة بك.

//CreateTable.py
from DBconnect import coxn
from sqlalchemy import Table, Column, Integer, String, MetaData

# ينشئ بنية Metadata التي تحتوي على تعاريف للجداول
  # والكائنات المرتبطة مثل الفهرس والعرض والمشغلات ، إلخ.
meta = MetaData()

# يمثل CREATE TABLE في بناء SQL العادي لإنشاء جدول.
students = Table(
'students', meta,
Column('id', Integer, primary_key = True),
Column('name', String),
Column('lastname', String),
)

# يستخدم كائن المحرك لإنشاء جميع كائنات الجدول المحددة
  # ويخزن المعلومات في البيانات الوصفية.
meta.create_all(coxn)

6. بعد ذلك ، افتح SSMS الخاص بك ، وتحقق من قاعدة البيانات والجدول والأعمدة التي تم إنشاؤها.

Verifying Database and tables on SSMS.

7. قم بإنشاء ملف Python يسمى WriteToTable.py, أضف الكود أدناه ، وقم بتشغيله.

يحتوي هذا الكود على منطق لكتابة القيم إلى جدول قاعدة البيانات.

//WriteToTable.py
# استيراد جدول الطلاب من ملف CreateTable.py.
from CreateTable import students
# استيراد سلسلة الاتصال coxn من ملف DBconnect.py.
from DBconnect import coxn
# إدراج قيم متعددة في جدول الطلاب
ins = students.insert().values([
   {'name':'Bob','lastname':'Marley'},
   {'name':'Bob','lastname':'Dylan'}
])
conn = coxn.connect()
conn.execute(ins)

تحضير بوابة البيانات على الشبكة المحلية

الآن بعد أن قمت بإنشاء سلسلة اتصال وتمكنت من الاتصال بقاعدة البيانات، ستحتاج إلى إنشاء بوابة بيانات. ستكون هذه البوابة مسؤولة عن ربط قاعدة البيانات بـ Power BI.

1. قم بفتح بوابة البيانات على الشبكة المحلية وقم بتسجيل الدخول.

Signing in to On-premises data gateway

2. تحقق من حالة بوابة البيانات على الشبكة المحلية الخاصة بك، وتأكد من أنها متصلة بالإنترنت، كما هو موضح أدناه.

Checking if the On-premises data gateway is online

3. بعد ذلك، قم بفتح Power BI، انقر فوق الحصول على البيانات تحت علامة التبويب الرئيسية واختر SQL Server للبدء في ربط مصدر البيانات الخاص بك بـ Power BI.

Getting data from SQL server

4. الآن، قم بالاتصال بـ DirecQuery بالتالي:

  • أدخل اسم الخادم واسم قاعدة البيانات في الحقول بشكل مناسبتأكد من تحديد خيار DirectQuery.انقر على موافق للاتصال بـ DirectQuery.
Connecting to DirectQuery

5. حدد جدولًا (الطلاب) من قاعدة البيانات، وانقر فوق تحميل لتحميل البيانات.

Loading data from the database

6. بعد ذلك، انقر على رمز الجدول لاستخدام تصور الجدول لعرض البيانات.

Choosing the table visual

الجدول أدناه يظهر البيانات التي قمت بتحميلها من جدول قاعدة البيانات

Viewing data in a table visual

7. انقر على قائمة الملف للوصول إلى الإجراءات التي يمكن تنفيذها على Power BI.

Accessing the File menu

8. الآن، انقر فوق النشر → نشر إلى Power BI لنشر تقرير البيانات الخاص بك.

Publishing data report

9. انقر فتح <تقريرك> بمجرد نجاح النشر، موجهًا متصفحك إلى قائمة الأنشطة الأخيرة التي قمت بها في Power BI (الخطوة 10).

Opening the Power BI browser

10. انقر فوق التقرير لفتحه، كما هو موضح أدناه.

Opening the data report

عند إعداد البداية الأولى، قد تواجه مشكلة بوابة كما في الصورة أدناه نظرًا لعدم الاتصال بمصدر بيانات المشروع ببوابة بيانات Power BI حتى الآن.

Getting a gateway configuration error

11. انقر فوق أيقونة الإعدادات تحت عمود الإجراءات لبدء إضافة اتصال بوابة جديد. يتيح لك ذلك إصلاح خطأ تكوين البوابة.

Initiating adding a new gateway connection

12. قم بتكوين اتصال البوابة الجديد، وانقر على إنشاء لإنشاء اتصال جديد بين مصدر البيانات والبوابة.

Configuring a new data source

13. في النهاية، بمجرد رؤية تشغيل البوابة، حدد اسم مصدر البيانات (MssqlDataSource) من القائمة المنسدلة Maps to، وانقر على تطبيق.

Applying the new gateway connection

عرض وإدارة تقارير البيانات

بعد إنشاء اتصال بين البوابة و Power BI، يمكنك عرض التقرير الخاص بك وإعداد جدول تحديث.

1. انتقل إلى صفحة البداية لتقارير Power BI الخاصة بك.

أداء Power Bi Direct Query يعتمد على مصدر مجموعة البيانات الأساسي. سيحدد الوقت الذي يستغرقه مجموعة البيانات الأساسية للرد على الطلبات مدى سرعة المستخدم في عرض التقرير. أو ما إذا كان سيشاهد التقارير بنجاح في المرة الأولى.

2. بعد ذلك، انقر فوق التقرير، كما هو موضح أدناه، لفتحه.

Accessing the data report

بعد فتح التقرير، يجب أن ترى البيانات، كما هو موضح أدناه.

Viewing the data report

3. عد إلى الصفحة الرئيسية للتقرير، وانقر على تحديث → جدول التحديث لتعيين جدول تحديث مجدول للتقرير.

بالإضافة إلى إنشاء تقارير حية، يتيح لك Power Bi Direct Query تحديد تحديث مجدول، محدثًا تقاريرك تلقائيًا.

Initiating setting a scheduled refresh

4. الآن، حدد فاصل التحديث الذي تريده من القائمة المنسدلة، وانقر على تطبيق لتنفيذ التغييرات.

Setting a refresh interval

5. افتح ملف Python الخاص بك WriteToTable.py وأضف الكود أدناه لإدراج المزيد من الإدخالات في قاعدة البيانات الخاصة بك مع التالي، ثم قم بتشغيل البرنامج النصي.

تشغيل هذا الكود لا يوفر إخراجًا، ولكن ستتحقق من القيم المدرجة في الجدول لاحقًا في الخطوات التالية.

لا يوجد Power Query Editor للمصادر ثنائية الأبعاد مثل SAP Business Warehouse، مما يقيد ما يمكنك إنجازه مع بياناتك.

//WriteToTable.py
# استيراد جدول الطلاب من ملف CreateTable.py.
from CreateTable import students
# استيراد سلسلة اتصال coxn من ملف DBconnect.py.
from DBconnect import coxn

# إدراج قيم متعددة في جدول الطلاب
ins = students.insert().values([
{'name':'Damian','lastname':'Marley'},
{'name':'Rita','lastname':'Marley'},
{'name':'Ziggy','lastname':'Marley'},
{'name':'Sam','lastname':'Dylan'},
{'name':'Jakob','lastname':'Dylan'},
{'name':'Maria','lastname':'Dylan'}
])
# إنشاء مؤشر الاتصال.
conn = coxn.connect()
# تنفيذ أمر الإدراج insert().
conn.execute(ins)

6. بعد ذلك، انتقل إلى متصفح Power BI الخاص بك، وانقر على علامة التبويب Datasets + dataflows.

إذا كانت كل الأمور على ما يرام، سترى وقت التحديث الأخير ووقت التحديث التالي للمجموعة البيانية كما في اللقطة أدناه.

يرجى ملاحظة أن Power Bi Direct Query حساس للتغييرات والتنسيق. قد تحصل على خطأ إذا كان Power Query Editor الخاص بك يحتوي على خطوات معقدة.

Verifying the last refreshed time and next refresh of the dataset

كما كان متوقعاً، يحدث إعادة التحميل تلقائياً كل 15 دقيقة، ويتم تعيين تحديث القادم ليحدث بعد 15 دقيقة أخرى.

Verifying the scheduled refresh works

الاستنتاج

طوال هذا الدليل التعليمي، لقد تعلمت كيفية استخدام وظيفة Power Bi Direct Query لربط مجموعة البيانات الخاصة بك المخزنة في الخادم الخاص بك. كما لمست أيضًا تشغيل الاستعلامات مباشرة ضد البيانات الخاصة بك.

إن إنشاء التقارير هو عملية طويلة تتضمن جمع البيانات وتنظيفها وتحميلها إلى مصدر البيانات وتحميل البيانات إلى Power BI والعمل على الرسوم البيانية في Power BI. تم ذكر هذه العملية. ولكن بعد ذلك، يمكنك إما تحديث مجموعة البيانات يدويًا أو تحديث البيانات تلقائيًا وفقًا للجدول الزمني المحدد.

لدى Power BI Direct Query عيوبه عند التعامل مع البيانات وتلاعبها في مجموعة البيانات الخاصة بك. ولكن الحقيقة أنه يمكنك إنشاء تقرير مرة واحدة وعدم العمل على الجزء الخلفي مرة أخرى هي حافز ضخم عند استخدام هذه الميزة.

Source:
https://adamtheautomator.com/power-bi-direct-query/