ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
عندما تقوم بتحسين نموذج البيانات و DAX الخاص بك لـ LuckyTemplates ، فمن المفيد أن تتذكر أن هناك محركين يعملان خلف الكواليس - محرك الصيغة ومحرك التخزين .
يعمل هذان المحركان معًا لإعادة النتائج المطلوبة إلى المستخدم. أنها توفر مجموعة النتائج في شكل جدول أو قيمة مقياس.
جدول المحتويات
دور محرك الصيغة
في هذه المقالة ، سنركز على محرك الصيغة.
محرك الصيغة هو محرك المستوى الأعلى الذي يدير البنية الكاملة للاستعلام.
مهما كان ما تفعله أثناء تنفيذ استعلام أو أثناء إنشاء عمود محسوب أو جدول محسوب ، يبدأ محرك الصيغة.
يفهم محرك الصيغة الاستعلامات المتلقاة ليس فقط في DAX ، ولكن أيضًا في MDX. على سبيل المثال ، عند استخدام Excel ، يمكنك إنشاء نماذج محورية استنادًا إلى الجداول المحورية ، والجداول المحورية تستخدم لغة MDX بالفعل.
هذا هو المكان الذي يبدأ فيه محرك الصيغة. نظرًا لأنه يفهم كلاً من DAX و MDX ، يمكنك استخدام نموذج LuckyTemplates آخر. ستستخدم الاستعلامات المرسلة من نموذج البيانات هذا DAX ، بينما ستستخدم الاستعلامات القادمة من النموذج المحوري MDX.
كيف يعمل محرك الصيغة
يعتبر فهم الاستعلامات التي تنشأ إما من مصدر MDX أو مصدر DAX عاملاً واحدًا فقط في أداء محرك الصيغة. يمر أيضًا بخطوات أخرى لمساعدتك في العمل على استفساراتك.
أولاً ، يجب عليه إنشاء خطة استعلام يفهمها محرك التخزين . بصفته محرك المستوى الأدنى ، لا يعرف محرك التخزين فعليًا ما إذا كان جدول محوري داخل Excel أو عنصر مرئي داخل LuckyTemplates ينفذ الاستعلام.
عند إنشاء خطة استعلام ، ينشئ محرك الصيغة خطة استعلام منطقية أولاً ، ثم ينشئ خطة استعلام فعلية. يجب أن تبدو كل من خطة الاستعلام المنطقية والفعلية متشابهة.
بعد إكمال خطة الاستعلام المادية ، يحصل المستخدم أو أداة العميل على مجموعة النتائج. من هناك ، تحدد أداة العميل كيفية استخدام النتائج أو مجموعة البيانات لعرض النتيجة النهائية للمستخدم.
القيود الرئيسية لمحرك الصيغة
يلعب محرك الصيغة دورًا كبيرًا عندما تقوم بتحسين DAX لـ LuckyTemplates باستخدام DAX Studio. ومع ذلك ، فإنه يأتي أيضًا مع بعض القيود.
أولاً ، يستخدم محرك الصيغة دائمًا نواة واحدة لإدارة العملية بأكملها بغض النظر عن عدد نوى وحدة المعالجة المركزية المتوفرة في نظامك .
عندما أقوم بفتح مدير المهام الخاص بي ، سترى أن وحدة المعالجة المركزية الخاصة بي بها ستة نوى.
على الرغم من هذه الحقيقة ، سيظل محرك الصيغة يختار أحد هذه النوى الستة للعمل معه ، بينما يترك محرك التخزين ليستخدم الباقي.
ثانيًا ، لا يمتلك محرك الصيغة وصولاً مباشرًا إلى قاعدة البيانات الخاصة بك . بسبب هذا القيد ، سيتعين عليك تخزين البيانات إما داخل الذاكرة الداخلية ، أو يمكنك تخزينها في قاعدة البيانات وإنشاء DirectQuery عبر قاعدة البيانات هذه.
كما يعتمد على محرك التخزين للحصول على البيانات في شكل ذاكرة تخزين مؤقت للبيانات. يقوم محرك الصيغة بعد ذلك بالتكرار عبر ذاكرة التخزين المؤقت للبيانات للمتابعة قبل أن يتمكن من توفير نتائج للمستخدم النهائي.
كيف يساعد محرك الصيغة في تحسين DAX للحصول على LuckyTemplates
في بعض الأحيان ، عندما تحاول تحسين نموذج البيانات أو DAX الخاص بك لـ LuckyTemplates ، ستلاحظ تباطؤ محرك التخزين أثناء تنفيذ الاستعلامات. في هذه الحالة ، يمكنك استخدام محرك الصيغة في إكمال الحساب بالكامل لتحسين العملية.
لاحظ أنه إذا انتهى محرك الصيغة ببناء الجدول بأكمله من تلقاء نفسه ، فلن يتم استخدام مجموعة النتائج التي تم إنشاؤها في العملية في الاستعلامات اللاحقة التي سيتم إنشاؤها بواسطة أداة العميل إذا كانت مماثلة للاستعلامات التي تم تنفيذها مسبقًا . ولكن في حالة قيام محرك التخزين بتوفير ذاكرة التخزين المؤقت للبيانات ، فيمكن الاحتفاظ بذاكرة التخزين المؤقت للبيانات المحددة في الذاكرة حتى تتمكن من تحسين الطلبات الواردة من أداة العميل.
كيف سيعمل ذلك؟
لنفترض أننا نكتب استعلامًا ليتم تنفيذه بالكامل بواسطة محرك التخزين ، ولكن مع بعض الجوانب التي يجب حسابها بواسطة محرك الصيغة. في هذه الحالة ، سيرسل محرك التخزين ذاكرة تخزين مؤقت للبيانات مرة أخرى إلى محرك الصيغة ويمكن الاحتفاظ بذاكرة التخزين المؤقت للبيانات (في حالة كونها بسيطة) في الذاكرة.
الآن ، إذا ظهر استعلام مشابه بعد بضع ثوانٍ ، فبدلاً من فحص نموذج البيانات بالكامل مرة أخرى ، سيستخدم محرك الصيغة أو محرك التخزين ذاكرة التخزين المؤقت للبيانات المعينة بحيث يمكن تقليل وقت الاستعلام ويمكن أن تكون تجربة المستخدم تحسن.
تقليل الحمل على محرك الفورمولا
مرة أخرى ، يفهم محرك الصيغة أكواد DAX و MDX.
لذلك إذا كنت تستخدم و ومهام أخرى ، فإن محرك الصيغة يعرف جميع الوظائف التي تستخدمها في لغة DAX وسيكون قادرًا على حلها كلها بمفرده. ومع ذلك ، قد يؤثر ذلك على أداء الاستعلام خاصة وأن محرك الصيغة يحاول القيام بكل شيء باستخدام نواة واحدة.
لهذا السبب نحتاج أيضًا إلى الانتباه إلى تقليل الحمل على محرك الصيغة وزيادة الحمل على محرك التخزين.
من الأمثلة الجيدة على مدى اختلاف الحساب داخل محرك الصيغة مقابل محرك التخزين استخدام CROSSJOIN مقابل .
عند استخدام CROSSJOIN ، سيتم تتبع كمية محدودة فقط من البيانات من خلال محرك التخزين. أما بالنسبة لبقية الحساب ، فسيتم إجراؤه بواسطة محرك الصيغة. وبالمقارنة ، فإن استخدام SUMMARIZE يعني تنفيذ الاستعلام بالكامل داخل محرك التخزين.
بالطبع ، سيعتمد هذا أيضًا على كيفية استخدام SUMMARIZE.
إذا تم استخدام SUMMARIZE كوظيفة أعمق ، فسيتم دفعها بالتأكيد إلى محرك التخزين. ولكن في بعض الحالات ، يتم استخدام SUMMARIZE جنبًا إلى جنب مع رمز مختلف يتطلب تشغيل محرك الصيغة. في هذه الحالة ، سيتدخل محرك الصيغة ويقوم بالعمل.
يمكن أن تساعدك معرفة أين يذهب الحمل على تحسين أداء استعلامك ، خاصة عندما تضع في اعتبارك ما هي السعة والقيود للمحركات التي تحت تصرفك.
الأدوات التي يمكن أن تساعد في تحسين DAX لـ LuckyTemplates
سيكون تحسين DAX أسهل إذا قمت بتعظيم الأدوات التي تجعل ذلك ممكنًا. يعد DAX Studio أحد تلك الأدوات.
لنأخذ المثال السابق حيث يأخذ محرك الصيغة الحمل الكامل لإكمال الحساب عند استخدام وظيفة SUMMARIZE. يمكن أن يساعدك DAX Studio في إعادة كتابة التعليمات البرمجية بطريقة تدفع SUMMARIZE إلى محرك التخزين ، مما يؤدي إلى تحرير الحمل على محرك الصيغة. من المحتمل أن يؤدي ذلك إلى تحسين أداء نموذج البيانات والاستعلامات الخاصة بك.
بالطبع ، يجب أن يعمل هذا بسلاسة مع الاستعلامات البسيطة. هناك أيضًا سيناريوهات أكثر تعقيدًا.
على سبيل المثال ، يمكنك إنشاء نماذج مركبة تستخدم محركي تخزين ضمن نموذج البيانات نفسه. يمكن أن يكون أحدهما لـ Vertipaq ، بينما الآخر قد يكون لـ DirectQuery. في هذه الحالة ، يجب تحسين قاعدة البيانات الخاصة بك بطريقة يتم فيها إنشاء الاستعلامات التي تم إنشاؤها لنموذج البيانات العلائقية المحدد.
لنفترض أن لديك جدولين داخل نموذج التاريخ - جدول المنتجات وجدول المبيعات. يوجد جدول المنتجات في مخزن Vertipaq ، بينما يتم تخزين جدول المبيعات ، باعتباره جدولًا أكبر ، مباشرةً داخل قاعدة البيانات من خلال اتصال DirectQuery.
لنفترض أيضًا أنك تسحب عمود العلامة التجارية إلى المصفوفة ، بالإضافة إلى مقياس إجمالي المبيعات الذي يأتي من جدول المبيعات ضمن اتصال DirectQuery.
في هذه الحالة ، سيتعين على محرك الصيغة إجراء العملية بين كلا المحركين.
أولاً ، سيتم استرداد أعمدة مفتاح المنتج والعلامة التجارية من جدول المنتجات. بعد ذلك ، سيتم استرداد أعمدة السعر الصافي والكمية ومفتاح المنتج من جدول المبيعات. بمجرد أن يكون لديه ذاكرة التخزين المؤقت للبيانات من كل من Vertipaq و DirectQuery ، سيتعين على محرك الصيغة أخذ ذاكرة التخزين المؤقت للبيانات ومحاولة الانضمام إليها لتقديم النتائج إلى المستخدم النهائي.
تقنيات تحسين استعلام DAX والدروس
أداء الاستعلام وإعداد استوديو DAX.
تحسين DAX: مكان العثور على فخ DAX المخفي
خاتمة
يلعب محرك الصيغة دورًا كبيرًا حقًا عند العمل مع DAX. ومع ذلك ، من المهم فهم كيفية عملها أولاً قبل الانتقال إليها. يعد إتقان كيفية جعل محرك الصيغة ومحرك التخزين يعملان معًا بسلاسة أمرًا أساسيًا ، خاصة إذا كنت تريد أداء استعلامات DAX بشكل أفضل.
بصفته محرك المستوى الأعلى داخل بنية خدمات التحليل ، يتعين على محرك الصيغة إجراء الكثير من العمليات. ولكن بمجرد أن تفهم أيضًا خصوصيات وعموميات محرك التخزين ، يمكنك معرفة العملية التي يجب دفعها إلى محرك التخزين وأي عملية يجب تركها داخل محرك الصيغة.
سنحفر أعمق في محرك التخزين في برنامج تعليمي منفصل.
أتمنى لك كل خير،
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.
في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.
سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.
في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.
أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.
تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.
سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX في توفير النتائج.
إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.
ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته