تقنية تصور LuckyTemplates: تعرف على كيفية إنشاء لوحات تصميم الخلفية
تعرف على تقنية تصور LuckyTemplates هذه حتى تتمكن من إنشاء قوالب الخلفية واستيرادها إلى تقارير LuckyTemplates الخاصة بك.
في هذا البرنامج التعليمي ، سنلقي نظرة على المحرك الثاني داخل خدمات التحليل - محرك التخزين.
ناقشنا محرك المستوى الأعلى ، محرك الصيغة ، في برنامج تعليمي سابق. عندما يفهم المستخدمون كيفية عمل هذين المحركين ، يكون من الأسهل تحسين أداء استعلامات DAX وتحسينه.
الغرض الرئيسي من محرك التخزين هو العمل مباشرة مع قاعدة البيانات.
لا يمتلك محرك الصيغة وصولاً مباشرًا إلى قاعدة البيانات ، لذلك يمر عادةً عبر محرك التخزين لهذا الغرض.
يأتي محرك التخزين في نوعين - وضع الاستيراد و DirectQuery . يمكنك مزج كلا النوعين ومطابقتهما في نفس نموذج البيانات لإنشاء نموذج مركب.
جدول المحتويات
العمل مع وضع الاستيراد في محرك التخزين
أولاً ، دعنا نتحدث عن وضع الاستيراد. يُعرف هذا أيضًا باسم Vertipaq ، ولكنه يُسمى أيضًا xVelocity أو In Memory Columnar Database.
هناك أربعة أشياء مهمة يجب فهمها حول كيفية عمل وضع الاستيراد.
أولاً ، يقوم Vertipaq بإنشاء نسخة من البيانات مباشرة من مصدر البيانات وتخزينها في ذاكرة الوصول العشوائي بتنسيق مضغوط .
ثانيًا ، تستند البيانات التي تتم معالجتها في وضع الاستيراد إلى عملية التحديث الأخيرة . هذا يعني أنه في حالة آخر تحديث لبياناتك الأسبوع الماضي ، فإن البيانات التي تتعامل معها لا تزال هي نفسها البيانات من الأسبوع الماضي. هذا مهم بشكل خاص إذا كنت تستخدم إعدادًا مركبًا حيث يكون أحد الجداول في وضع الاستيراد والجدول الآخر في وضع DirectQuery.
لنفترض أن لديك جدول المنتجات ، الذي تم تحديثه الأسبوع الماضي ، في وضع الاستيراد. أما بالنسبة لجدول المبيعات ، فقد قررت استخدامه من خلال DirectQuery نظرًا لحجمه. لنفترض أيضًا أنك تقوم بإنشاء تقريرك استنادًا إلى كلا الجدولين حيث تقوم بإحضار عمود العلامة التجارية وإنشاء مقياس إجمالي المبيعات على نفس جدول المبيعات. تريد أيضًا تصور مبلغ المبيعات بناءً على العلامة التجارية.
سيتعين عليك تحديث البيانات القادمة من وضع الاستيراد أولاً لأنه قد ينتهي بك الأمر ببيانات حديثة ومحدثة من DirectQuery ، وبيانات قديمة من Vertipaq. سيؤدي ذلك إلى ترك بعض الصفوف الفارغة في المصفوفة والتصور الخاص بك.
الشيء التالي الذي يجب أن تعرفه عن Vertipaq هو أن العمليات الأساسية فقط مثل أو أو أو أو متاحة أصلاً . هذا يعني أنه إذا كانت هناك عمليات أخرى أكثر تعقيدًا مضمنة في خطة الاستعلام ، فسيتعين على محرك التخزين استدعاء محرك الصيغة لحل هذا الجزء من التعليمات البرمجية.
أخيرًا ، يعد محرك التخزين قاعدة بيانات محسنة للغاية بسبب الهيكل العمودي لـ Vertipaq . هذا يعني أن جميع البيانات يتم تخزينها عمودًا بعد عمود وليس صفًا بصف. بسبب هذه البنية ، سيكون Vertipaq دائمًا أسرع من اتصال DirectQuery حتى إذا قمت بإنشاء فهارس في نموذج البيانات العلائقية.
العمل مع DirectQuery في محرك التخزين
الخيار التالي المتوفر لدينا داخل خدمات تحليل LuckyTemplates هو DirectQuery. إذا كنت تستخدم اتصال DirectQuery ، فإن خدمات التحليل تعمل فقط كتمرير للاستعلامات التي تم إرسالها بواسطة محرك الصيغة.
لنفترض أنك تكتب استعلامًا. سيقوم محرك الصيغة بإنشاء خطة استعلام. سيقوم بعد ذلك بإعادة توجيه الاستعلام إلى محرك التخزين ، الذي تمت ترجمته بالفعل إلى اللغة الأصلية لقاعدة البيانات. في معظم الأحيان ، تأتي هذه الاستعلامات بلغة SQL.
إذا كان الاستعلام يستخدم DirectQuery ، فتوقع أن يكون محدثًا طوال الوقت. لا داعي للقلق بشأن آخر مرة قمت فيها بتحديث البيانات.
ستعتمد عملية تحسين كود DAX ونموذج البيانات أيضًا على كيفية إنشاء قاعدة البيانات العلائقية. إذا كانت لديك فهارس في أعمدتك ، فسيتم تحسين استعلاماتك دائمًا. ولكن إذا لم يتم تحسين قاعدة البيانات الخاصة بك من حيث إنشاء التقارير باستخدام خدمات التحليل أو LuckyTemplates ، فقد تواجه بعض تحديات الأداء. لذا كن مقصودًا في إنشاء قواعد بياناتك لتطوير التقارير.
العمل مع النماذج المركبة
الخيار الثالث هو إنشاء نموذج مركب بحيث يمكنك الحصول على جدول واحد في وضع الاستيراد وجدول آخر في DirectQuery.
عند استخدام جدولين من مصادر مختلفة ، سيرسل محرك الصيغة طلبًا واحدًا إلى Vertipaq وطلبًا آخر إلى مصدر بيانات DirectQuery. في كلتا الحالتين ، ستقوم خدمات التحليل أيضًا باسترداد ذاكرة التخزين المؤقت للبيانات من كل من Vertipaq و DirectQuery. سيستخدم محرك الصيغة بعد ذلك JOIN أو أو أي تكرار على كلا ذاكرة التخزين المؤقت للبيانات قبل تقديم النتائج إلى المستخدم النهائي.
لنفترض أنك تحاول تصور مبلغ المبيعات حسب العلامة التجارية للمنتج في تقريرك. سيرسل محرك الصيغة طلبًا إلى Vertipaq ، حيث سيقوم باسترداد المنتج والعلامة التجارية ومفتاح المنتج. بعد ذلك ، من DirectQuery ، سيحاول استرداد المبيعات وصافي السعر وكمية المبيعات ومفتاح منتج المبيعات.
بمجرد أن يكون لديه مخبأان للبيانات استنادًا إلى مفتاح المنتج ، سينضم إلى مخابئ البيانات ويحسب إجمالي مبلغ المبيعات. ثم ستقدم النتائج إلى المستخدم النهائي.
نقاط حرجة أخرى حول محرك التخزين
الآن بعد أن غطينا أنواعه المختلفة ، هناك بعض العوامل الهامة الأخرى التي تحتاج إلى معرفتها حول محرك التخزين لمساعدتك على تحسين استعلامات DAX الخاصة بك.
كما ذكرت سابقًا ، يوفر محرك التخزين ذاكرة التخزين المؤقت للبيانات مرة أخرى إلى محرك الصيغة في شكل ذاكرة تخزين مؤقت للبيانات غير المضغوطة. عندما تكون في وضع الاستيراد ، يتم تنفيذ الطلب الذي يتم إرساله مرة أخرى إلى Vertipaq في العملية بلغة xmSQL.
لغة xmSQL تشبه إلى حد ما SQL ولكنها ليست هي نفسها تمامًا. سنتحدث عن xmSWL بالتفصيل عندما نتحدث عن خطط الاستعلام في برنامج تعليمي مختلف.
من المهم أيضًا أن تتذكر أن محرك التخزين يستخدم جميع النوى المتوفرة في وحدة المعالجة المركزية الخاصة بك. تعد القدرة على استخدام نوى متعددة مفيدة في حالة وجود قطاعات متعددة في نموذج البيانات الخاص بك.
لنفترض أن لديك جدولاً في LuckyTemplates يحتوي على 12 مليون صف. سيتم بعد ذلك تقسيم هذا الجدول إلى 12 مقطعًا لأنه في كل من Power Pivot و LuckyTemplates ، يتسع كل مقطع لمليون صف. هذا على عكس خدمات التحليل بشكل عام ، حيث يستوعب جزء واحد 8 ملايين صف.
لذلك إذا كان لدي ستة نوى في وحدة المعالجة المركزية الخاصة بي ، فستقوم جميع النوى الستة بمسح أول ستة من الأجزاء الـ 12 في نفس الوقت. بمجرد الانتهاء ، سينتقلون إلى الأجزاء الستة التالية.
ولكن إذا كنت أعمل مع خدمات التحليل حيث يحتوي المقطع الافتراضي على 8 ملايين صف ، فسيتم استخدام اثنتين فقط من النوى الستة الخاصة بي - سيعالج جزء واحد 8 ملايين صف بينما يعالج الجزء الآخر 4 ملايين صف.
العمل على الاستعلامات المعقدة
ذكرت سابقًا أن وضع الاستيراد يدعم العمليات الأساسية فقط مثل MIN و MAX و SUM و COUNT و GROUPBY. إذن ماذا يحدث إذا كنت تعمل على استفسارات أكثر تعقيدًا؟
لنفترض أنك قررت استخدام جملة IF في سياق الصف ، أو تكرار متداخل مثل SUMX عبر جداول المنتجات والمبيعات.
في هذه الحالة ، لن يتمكن محرك التخزين من حل الاستعلام من تلقاء نفسه. سيقوم بعد ذلك باستدعاء محرك الصيغة ، والذي سيبدأ في حل صف الحساب المعقد بصف داخل محرك التخزين. قد يعتقد البعض أن هذا هو السيناريو المفضل ، حيث يعمل كلا المحركين معًا - لكن هذا بعيد كل البعد عن الحقيقة.
كما ترى ، عندما يحدث هذا ، لا يمكن تخزين ذاكرة التخزين المؤقت للبيانات التي ينتجها محرك التخزين مؤقتًا في حالة وجود معرف بيانات رد الاتصال في هذا الاستعلام المحدد. لذلك إذا قمت بتحديث المرئي ، فسيتعين إجراء نفس الحساب بواسطة كل من محرك الصيغة ومحرك التخزين ، على الرغم من أنك قمت للتو بتنفيذ نفس الاستعلام قبل بضع ثوانٍ. سيؤدي ذلك إلى تأخيرات في الأداء وتجربة سيئة للمستخدم.
لاحظ أيضًا أن محرك التخزين لا يعرف ما إذا تم تنفيذ الاستعلامات باستخدام DAX أو MDX. كما ذكرنا سابقًا ، تتمثل مهمة محرك الصيغة في تحويل الاستعلامات إلى اللغة الصحيحة قبل تمرير خطة الاستعلام.
أخيرًا ، يرسل محرك الصيغة الاستعلامات إلى محرك التخزين واحدًا تلو الآخر. هذا يعني أن وجود مقاطع متعددة هو أفضل حقًا بحيث يمكن تقليل وقت المسح الإجمالي داخل Vertipaq ، مع فحص مقاطع متعددة في نفس الوقت.
DAX لـ LuckyTemplates: تحسين استخدام محركات الصيغة في
تقنيات تحسين استعلام DAX Studio DAX والدروس
أداء الاستعلام وإعداد استوديو DAX
خاتمة
يساعد فهم خصوصيات وعموميات محرك التخزين في تحسين استعلامات DAX ، خاصةً إذا كنت تستخدم DAX Studio. إذا قمت أيضًا بالاطلاع على البرنامج التعليمي الذي يشرح محرك الصيغة ، فيمكنك اتخاذ قرارات أفضل حول كيفية إنشاء استعلامات أداء أفضل.
على الرغم من أن محرك الصيغة يعمل كمحرك عالي المستوى ، فلا شك أنه لا يمكن أن يعمل بشكل جيد إذا لم نضاعف كلا المحركين.
أتمنى لك كل خير،
تعرف على تقنية تصور LuckyTemplates هذه حتى تتمكن من إنشاء قوالب الخلفية واستيرادها إلى تقارير LuckyTemplates الخاصة بك.
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.
في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.
سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.
في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.
أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.
تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.
سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX في توفير النتائج.
إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.