1. مقدمة
تاريخ آخر تعديل: 15-09-2021
تختلف البيانات المطلوبة للحصول على معلومات مفصّلة عن الأسعار وتحسينها بطبيعتها (أنظمة مختلفة، وواقع محلي مختلف، وما إلى ذلك)، لذا من الضروري إنشاء جدول نموذج بيانات موحّد ومنظَّم جيدًا ونظيف. ويشمل ذلك السمات الرئيسية لتحسين الأسعار، مثل المعاملات والمنتجات والأسعار والعملاء. في هذا المستند، سنشرح لك الخطوات الموضّحة أدناه، ونقدّم لك بداية سريعة لتحليلات الأسعار يمكنك توسيعها وتخصيصها لتناسب احتياجاتك. يوضّح الرسم البياني التالي الخطوات التي يتناولها هذا المستند.

- تقييم مصادر البيانات: عليك أولاً الحصول على قائمة بمصادر البيانات التي سيتم استخدامها لإنشاء نموذج بيانات العملاء. في هذه الخطوة، يتم أيضًا استخدام Dataprep لاستكشاف المشاكل وتحديدها من بيانات الإدخال. على سبيل المثال، القيم الناقصة وغير المتطابقة، واتّباع أساليب تسمية غير متسقة، والتكرارات، ومشاكل صحّة البيانات، والقيم الشاذة، وما إلى ذلك.
- توحيد البيانات: بعد ذلك، يتم حلّ المشاكل التي تم تحديدها سابقًا لضمان دقة البيانات وسلامتها واتساقها واكتمالها. يمكن أن تتضمّن هذه العملية تحويلات مختلفة في Dataprep، مثل تنسيق التاريخ وتوحيد القيم وتحويل الوحدات وفلترة الحقول والقيم غير الضرورية وتقسيم بيانات المصدر أو دمجها أو إزالة تكرارها.
- التوحيد في بنية واحدة: في المرحلة التالية من مسار المعالجة، يتم ضمّ كل مصدر بيانات في جدول واحد كبير في BigQuery يحتوي على جميع السمات على أدق مستوى تفصيلي. تتيح هذه البنية غير العادية إجراء استعلامات تحليلية فعّالة لا تتطلّب عمليات ربط.
- تقديم الإحصاءات والتعلم الآلي/الذكاء الاصطناعي: بعد تنظيف البيانات وتنسيقها للتحليل، يمكن للمحللين استكشاف البيانات السابقة لفهم تأثير التغييرات السابقة في الأسعار. بالإضافة إلى ذلك، يمكن استخدام BigQuery ML لإنشاء نماذج توقّعية تقدّر المبيعات المستقبلية. يمكن دمج نتائج هذه النماذج في لوحات البيانات ضمن Looker لإنشاء "سيناريوهات ماذا لو" حيث يمكن لمستخدمي النشاط التجاري تحليل شكل المبيعات مع تغييرات معيّنة في الأسعار.
يوضّح المخطّط البياني التالي مكوّنات Google Cloud المستخدَمة لإنشاء مسار خطوات عملية تحليل تحسين الأسعار.

ما ستنشئه
سنوضّح لك هنا كيفية تصميم مستودع بيانات لتحسين الأسعار، وأتمتة عملية إعداد البيانات بمرور الوقت، واستخدام تعلُّم الآلة لتوقّع تأثير التغييرات في أسعار المنتجات، وإعداد تقارير لتقديم إحصاءات قابلة للتنفيذ لفريقك.
ما ستتعلمه
- كيفية ربط Dataprep بمصادر البيانات لتحليل الأسعار، والتي يمكن تخزينها في قواعد بيانات علائقية وملفات مسطّحة و"جداول بيانات Google" وتطبيقات أخرى متوافقة
- كيفية إنشاء مسار Dataprep لإنشاء جدول نموذج بيانات مشترك (CDM) في مستودع بيانات BigQuery
- كيفية استخدام BigQuery ML للتنبؤ بالأرباح المستقبلية
- كيفية إنشاء تقارير في Looker لتحليل المؤشرات السابقة للأسعار والمبيعات، وفهم تأثير التغييرات المستقبلية في الأسعار
المتطلبات
- مشروع Google Cloud تم تفعيل الفوترة فيه كيفية التأكّد من تفعيل الفوترة لمشروعك
- يجب تفعيل BigQuery في مشروعك. ويتم تفعيله تلقائيًا في المشاريع الجديدة. بخلاف ذلك، فعِّلها في مشروع حالي. يمكنك أيضًا الاطّلاع على مزيد من المعلومات حول كيفية بدء استخدام BigQuery من Cloud Console هنا.
- يجب أيضًا تفعيل Dataprep في مشروعك. يتم تفعيل Dataprep من Google Console، من قائمة التنقّل اليمنى في قسم "البيانات الضخمة". اتّبِع خطوات الاشتراك لتفعيلها.
- لإعداد لوحات بيانات Looker الخاصة بك، يجب أن يكون لديك إذن وصول المطوّر على إحدى مثيلات Looker. لطلب فترة تجريبية، يُرجى التواصل مع فريقنا هنا، أو يمكنك استخدام لوحة البيانات العامة لاستكشاف نتائج مسار نقل البيانات على بياناتنا النموذجية.
- خبرة في لغة الاستعلامات البنيوية (SQL) ومعرفة أساسية بما يلي: Dataprep by Trifacta وBigQuery وLooker
2. إنشاء نموذج البيانات المشتركة (CDM) في BigQuery
في هذا القسم، يمكنك إنشاء "نموذج البيانات المشترك" (CDM)، الذي يوفّر عرضًا موحّدًا للمعلومات التي تحتاج إليها لتحليلها واقتراح تغييرات في الأسعار.
- افتح وحدة تحكّم BigQuery.
- اختَر المشروع الذي تريد استخدامه لاختبار نمط المرجع هذا.
- استخدِم مجموعة بيانات حالية أو أنشئ مجموعة بيانات BigQuery. أدخِل اسمًا لمجموعة البيانات
Pricing_CDM. - إنشاء الجدول:
create table `CDM_Pricing`
(
Fiscal_Date DATETIME,
Product_ID STRING,
Client_ID INT64,
Customer_Hierarchy STRING,
Division STRING,
Market STRING,
Channel STRING,
Customer_code INT64,
Customer_Long_Description STRING,
Key_Account_Manager INT64,
Key_Account_Manager_Description STRING,
Structure STRING,
Invoiced_quantity_in_Pieces FLOAT64,
Gross_Sales FLOAT64,
Trade_Budget_Costs FLOAT64,
Cash_Discounts_and_other_Sales_Deductions INT64,
Net_Sales FLOAT64,
Variable_Production_Costs_STD FLOAT64,
Fixed_Production_Costs_STD FLOAT64,
Other_Cost_of_Sales INT64,
Standard_Gross_Margin FLOAT64,
Transportation_STD FLOAT64,
Warehouse_STD FLOAT64,
Gross_Margin_After_Logistics FLOAT64,
List_Price_Converged FLOAT64
);
3- تقييم مصادر البيانات
في هذا البرنامج التعليمي، ستستخدم نماذج لمصادر البيانات المخزّنة في جداول بيانات Google وBigQuery.
- معاملات "جداول بيانات Google" التي تحتوي على صف واحد لكل معاملة ويتضمّن تفاصيل مثل كمية كل منتج تم بيعه وإجمالي المبيعات الإجمالية والتكاليف المرتبطة بها.
- جدول بيانات Google أسعار المنتجات الذي يحتوي على سعر كل منتج لعميل معيّن في كل شهر
- جدول company_descriptions في BigQuery الذي يحتوي على معلومات العملاء الفردية
يمكن إنشاء جدول company_descriptions BigQuery باستخدام العبارة التالية:
create table `Company_Descriptions`
(
Customer_ID INT64,
Customer_Long_Description STRING
);
insert into `Company_Descriptions` values (15458, 'ENELTEN');
insert into `Company_Descriptions` values (16080, 'NEW DEVICES CORP.');
insert into `Company_Descriptions` values (19913, 'ENELTENGAS');
insert into `Company_Descriptions` values (30108, 'CARTOON NT');
insert into `Company_Descriptions` values (32492, 'Thomas Ed Automobiles');
4. إنشاء المسار
في هذه الخطوة، ستستورد نموذج مسار Dataprep الذي تستخدمه لتحويل مجموعات البيانات النموذجية المدرَجة في القسم السابق وتوحيدها. يمثّل التدفّق مسارًا أو عنصرًا يجمع بين مجموعات البيانات والوصفات، والتي تُستخدَم لتحويلها ودمجها.
- نزِّل حزمة مسار نموذج تحسين الأسعار من GitHub، ولكن لا تفكّ ضغطها. يحتوي هذا الملف على مسار نموذج تصميم تحسين الأسعار المستخدَم لتحويل البيانات النموذجية.
- في Dataprep، انقر على رمز "عمليات نقل البيانات" في شريط التنقّل الأيمن. بعد ذلك، في عرض "عمليات الربط"، انقر على استيراد من قائمة السياق. بعد استيراد المسار، يمكنك اختياره لعرضه وتعديله.

- على الجانب الأيمن من مسار العمل، يجب ربط "أسعار المنتجات" وكلّ من جداول بيانات Google الثلاث الخاصة بـ "المعاملات" كمجموعات بيانات. لإجراء ذلك، انقر بزر الماوس الأيمن على عناصر مجموعة بيانات "جداول بيانات Google" واختَر استبدال. بعد ذلك، انقر على الرابط استيراد مجموعات البيانات. انقر على رمز القلم الرصاص "تعديل المسار"، كما هو موضّح في الرسم التخطيطي التالي.

استبدِل القيمة الحالية بالرابط الذي يشير إلى المعاملات وأسعار المنتجات في "جداول بيانات Google".
عندما تحتوي "جداول بيانات Google" على عدة علامات تبويب، يمكنك اختيار علامة التبويب التي تريد استخدامها في القائمة. انقر على تعديل واختَر علامات التبويب التي تريد استخدامها كمصدر للبيانات، ثم انقر على حفظ واستيراد وإضافة إلى سير العمل. عند الرجوع إلى النافذة المنبثقة، انقر على استبدال. في هذا المسار، يتم تمثيل كل ورقة بيانات كمجموعة بيانات خاصة بها لتوضيح عملية دمج مصادر مختلفة في إعداد مسبق لاحق.

- تحديد جداول إخراج BigQuery:
في هذه الخطوة، ستربط الموقع الجغرافي لجدول الإخراج CDM_Pricing في BigQuery الذي سيتم تحميله في كل مرة تشغّل فيها مهمة Dataoprep.
في "عرض المخطط"، انقر على رمز "ناتج ربط المخطط"، ثم في "لوحة التفاصيل"، انقر على علامة التبويب "وجهات". من هناك، عدِّل كلاً من ناتج "الوجهات اليدوية" المستخدَم للاختبار، وناتج "الوجهات المُجدوَلة" المستخدَم عندما تريد برمجة سير العمل بالكامل. يُرجى اتّباع التعليمات التالية لإجراء ذلك:
- تعديل "الوجهات اليدوية" في "لوحة التفاصيل"، ضمن قسم "الوجهات اليدوية"، انقر على زر "تعديل". في صفحة إعدادات النشر، ضمن "إجراءات النشر"، إذا كان هناك إجراء نشر حالي، عدِّله، وإلا فانقر على الزر "إضافة إجراء". من هناك، انتقِل إلى مجموعات بيانات BigQuery إلى مجموعة بيانات
Pricing_CDMالتي أنشأتها في خطوة سابقة واختَر جدولCDM_Pricing. تأكَّد من وضع علامة في المربّع إلحاق هذا الجدول بكل عملية تشغيل، ثم انقر على إضافة، ثم على حفظ الإعدادات. - تعديل "الوجهات المجدوَلة"
في "لوحة التفاصيل"، ضِمن قسم "وجهات مجدولة"، انقر على تعديل.
يتم نقل الإعدادات من "وجهات يدوية"، ولن تحتاج إلى إجراء أي تغييرات. انقر على "حفظ الإعدادات".
5- توحيد البيانات
تجمع عملية الدمج والتنسيق والتنظيف للبيانات المقدمة بيانات المعاملات، ثم تربط النتيجة بأوصاف الشركة وبيانات الأسعار المجمّعة لإعداد التقارير. ستتعرّف هنا على مكوّنات المسار، والتي يمكن الاطّلاع عليها في الصورة أدناه.

6. استكشاف وصفة بيانات المعاملات
أولاً، ستستكشف ما يحدث داخل "وصفة بيانات المعاملات"، والتي تُستخدَم لإعداد بيانات المعاملات. انقر على عنصر "بيانات المعاملات" في "طريقة العرض التخطيطية"، ثم انقر على الزر "تعديل الوصفة" في "لوحة التفاصيل".
تُفتح صفحة المحوّل مع عرض الوصفة في لوحة التفاصيل. تحتوي الوصفة على جميع خطوات التحويل التي يتم تطبيقها على البيانات. يمكنك التنقّل داخل الوصفة من خلال النقر بين كل خطوة من الخطوات للاطّلاع على حالة البيانات في هذا الموضع المحدّد في الوصفة.
يمكنك أيضًا النقر على قائمة "المزيد" لكل خطوة من خطوات "الوصفة"، واختيار "الانتقال إلى العنصر المحدّد" أو "تعديل" لاستكشاف طريقة عمل عملية التحويل.
- معاملات الاتحاد: الخطوة الأولى في وصفة بيانات المعاملات هي دمج المعاملات المخزّنة في أوراق مختلفة تمثّل كل شهر.
- توحيد أوصاف العملاء: الخطوة التالية في الوصفة هي توحيد أوصاف العملاء. وهذا يعني أنّ أسماء العملاء قد تكون متشابهة مع بعض التغييرات الطفيفة، ونريد توحيدها لتصبح اسمًا واحدًا. توضّح الوصفة طريقتَين محتملتَين. أولاً، تستفيد هذه الميزة من خوارزمية التوحيد التي يمكن ضبطها باستخدام خيارات توحيد مختلفة، مثل "السلاسل المتشابهة" حيث يتم تجميع القيم التي تتضمّن أحرفًا مشتركة معًا، أو "النطق" حيث يتم تجميع القيم التي تبدو متشابهة معًا. بدلاً من ذلك، يمكنك البحث عن وصف الشركة في جدول BigQuery المشار إليه أعلاه باستخدام رقم تعريف الشركة.
يمكنك الانتقال إلى الإعداد المسبق لاستكشاف الأساليب الأخرى المختلفة التي يتم تطبيقها لتنظيف البيانات وتنسيقها: حذف الصفوف أو التنسيق استنادًا إلى التصاميم أو إثراء البيانات باستخدام عمليات البحث أو التعامل مع القيم المفقودة أو استبدال الأحرف غير المرغوب فيها.
7. استكشاف وصفة بيانات أسعار المنتجات
بعد ذلك، يمكنك استكشاف ما يحدث في وصفة بيانات أسعار المنتجات، التي تربط بيانات المعاملات المُعدّة ببيانات الأسعار المجمّعة.
انقر على "نمط تصميم تحسين الأسعار" (PRICING OPTIMIZATION DESIGN PATTERN) في أعلى الصفحة لإغلاق "صفحة المحوّل" (Transformer Page) والرجوع إلى "طريقة عرض المخطط" (Flow View). من هناك، انقر على عنصر "بيانات أسعار المنتجات" وعدِّل الوصفة.
- إلغاء تجميع أعمدة الأسعار الشهرية: انقر على الوصفة بين الخطوتَين 2 و3 لمعرفة شكل البيانات قبل خطوة "إلغاء التجميع". ستلاحظ أنّ البيانات تحتوي على قيمة المعاملة في عمود منفصل لكل شهر: كانون الثاني (يناير) وشباط (فبراير) وآذار (مارس). هذا ليس تنسيقًا مناسبًا لتطبيق عملية التجميع (أي المجموع ومتوسط المعاملات) في SQL. يجب إلغاء تدوير البيانات ليصبح كل عمود صفًا في جدول BigQuery. تستفيد وصفة الطعام من الدالة unpivot لتحويل الأعمدة الثلاثة إلى صف واحد لكل شهر، ما يسهّل تطبيق عمليات حسابية على المجموعات.
- احتساب متوسط قيمة المعاملة حسب العميل والمنتج والتاريخ: نريد احتساب متوسط قيمة المعاملة لكل عميل ومنتج وتاريخ. يمكننا استخدام دالة التجميع وإنشاء جدول جديد (الخيار "التجميع كجدول جديد"). في هذه الحالة، يتم تجميع البيانات على مستوى المجموعة، ونفقد تفاصيل كل معاملة فردية. أو يمكننا اختيار الاحتفاظ بكلّ من التفاصيل والقيم المجمّعة في مجموعة البيانات نفسها (الخيار "التجميع حسب أعمدة جديدة") ما يسهّل كثيرًا تطبيق نسبة (أي النسبة المئوية لمساهمة فئة المنتج في إجمالي الأرباح). يمكنك تجربة هذا السلوك من خلال تعديل الخطوة 7 في الوصفة واختيار الخيار "التجميع حسب كجدول جديد" أو "التجميع حسب كأعمدة جديدة" لمعرفة الاختلافات.
- تاريخ الربط بالسعر: أخيرًا، يتم استخدام الربط لدمج مجموعات بيانات متعددة في مجموعة بيانات أكبر من خلال إضافة أعمدة إلى مجموعة البيانات الأولية. في هذه الخطوة، يتم دمج بيانات الأسعار مع نتائج "وصفة بيانات المعاملات" استنادًا إلى "بيانات الأسعار.رمز المنتج" = "بيانات المعاملات.رمز التخزين التعريفي" و"بيانات الأسعار.تاريخ السعر" = "بيانات المعاملات.التاريخ المالي".
لمزيد من المعلومات حول عمليات التحويل التي يمكنك تطبيقها باستخدام Dataprep، راجِع ورقة الغش الخاصة بمعالجة البيانات من Trifacta.
8. استكشاف وصفة ربط المخطط
تضمن وصفة "ربط المخطط" الأخيرة تطابق جدول نموذج البيانات المشتركة الناتج مع مخطط جدول الإخراج الحالي في BigQuery. في هذه الحالة، يتم استخدام وظيفة الاستهداف السريع لإعادة تنسيق بنية البيانات لتتطابق مع جدول BigQuery باستخدام المطابقة التقريبية لمقارنة كلا المخططَين وتطبيق التغييرات التلقائية.
9- التوحيد في بنية واحدة
بعد إعداد المصادر ووجهات البيانات واستكشاف خطوات عمليات نقل البيانات، يمكنك تشغيل عملية نقل البيانات لتحويل جدول نموذج البيانات المشتركة وتحميله إلى BigQuery.
- تشغيل ناتج "ربط المخطط": في عرض التدفق، اختَر عنصر ناتج "ربط المخطط" وانقر على الزر "تشغيل" في لوحة "التفاصيل". اختَر "بيئة تشغيل Trifacta Photon" وأزِل العلامة من المربّع "تجاهل أخطاء الوصفة". ثم انقر على زر "تشغيل". إذا كان جدول BigQuery المحدّد متوفّرًا، ستضيف أداة Dataprep صفوفًا جديدة، وإلا ستنشئ جدولاً جديدًا.
- عرض حالة المهمة: يفتح Dataprep تلقائيًا صفحة "تشغيل المهمة" حتى تتمكّن من تتبُّع تنفيذ المهمة. يجب أن يستغرق ذلك بضع دقائق للمتابعة وتحميل جدول BigQuery. عند اكتمال المهمة، سيتم تحميل ناتج نموذج البيانات المشتركة (CDM) الخاص بالأسعار في BigQuery بتنسيق نظيف ومنظَّم وموحَّد وجاهز للتحليل.
10. تقديم الإحصاءات وتعلُّم الآلة/الذكاء الاصطناعي
المتطلبات الأساسية لخدمة "إحصاءات Google"
لإجراء بعض التحليلات وإنشاء نموذج تنبؤي يحقّق نتائج مثيرة للاهتمام، أنشأنا مجموعة بيانات أكبر حجمًا وذات صلة لاكتشاف إحصاءات محدّدة. عليك تحميل هذه البيانات في مجموعة بيانات BigQuery قبل مواصلة هذا الدليل.
- نزِّل مجموعة البيانات الكبيرة من مستودع GitHub هذا.
- في وحدة تحكّم Google في BigQuery، انتقِل إلى مشروعك ومجموعة بيانات CDM_Pricing.
- انقر على القائمة وافتح مجموعة البيانات. سننشئ الجدول من خلال تحميل البيانات من ملف محلي.
انقر على الزر + إنشاء جدول وحدِّد هذه المَعلمات:
- إنشاء جدول من التحميل واختيار ملف CDM_Pricing_Large_Table.csv
- التحقّق من المخطط ومعلَمات الإدخال في ميزة "الاكتشاف التلقائي للمخطط"
- الخيارات المتقدّمة، إعدادات الكتابة المفضّلة، استبدال الجدول

- انقر على "إنشاء جدول".
بعد إنشاء الجدول وتحميل البيانات، من المفترض أن تظهر لك تفاصيل الجدول الجديد في وحدة تحكّم Google في BigQuery كما هو موضّح أدناه. باستخدام بيانات الأسعار في BigQuery، يمكننا بسهولة طرح أسئلة أكثر شمولاً لتحليل بيانات الأسعار على مستوى أعمق.

11. الاطّلاع على تأثير التغييرات في الأسعار
أحد الأمثلة على ما قد تريد تحليله هو التغيير في سلوك الطلب عندما غيّرت سعر سلعة في السابق.
- أولاً، عليك إنشاء جدول مؤقت يتضمّن سطرًا واحدًا في كل مرة يتغيّر فيها سعر المنتج، مع معلومات حول تسعير هذا المنتج، مثل عدد السلع التي تم طلبها بكل سعر وإجمالي صافي المبيعات المرتبط بهذا السعر.
create temp table price_changes as (
select
product_id,
list_price_converged,
total_ordered_pieces,
total_net_sales,
first_price_date,
lag(list_price_converged) over(partition by product_id order by first_price_date asc) as previous_list,
lag(total_ordered_pieces) over(partition by product_id order by first_price_date asc) as previous_total_ordered_pieces,
lag(total_net_sales) over(partition by product_id order by first_price_date asc) as previous_total_net_sales,
lag(first_price_date) over(partition by product_id order by first_price_date asc) as previous_first_price_date
from (
select
product_id,list_price_converged,sum(invoiced_quantity_in_pieces) as total_ordered_pieces, sum(net_sales) as total_net_sales, min(fiscal_date) as first_price_date
from `{{my_project}}.{{my_dataset}}.CDM_Pricing` AS cdm_pricing
group by 1,2
order by 1, 2 asc
)
);
select * from price_changes where previous_list is not null order by product_id, first_price_date desc

- بعد ذلك، وبعد إنشاء الجدول المؤقت، يمكنك حساب متوسط التغيير في الأسعار على مستوى رموز التخزين التعريفية:
select avg((previous_list-list_price_converged)/nullif(previous_list,0))*100 as average_price_change from price_changes;
- أخيرًا، يمكنك تحليل ما يحدث بعد تغيير السعر من خلال النظر إلى العلاقة بين كل تغيير في السعر وإجمالي عدد السلع التي تم طلبها:
select
(total_ordered_pieces-previous_total_ordered_pieces)/nullif(previous_total_ordered_pieces,0)
بِصفة
price_changes_percent_ordered_change,
(list_price_converged-previous_list)/nullif(previous_list,0)
بِصفة
price_changes_percent_price_change
from price_changes
12. إنشاء نموذج توقّعات السلاسل الزمنية
بعد ذلك، باستخدام إمكانات تعلُّم الآلة المضمّنة في BigQuery، يمكنك إنشاء نموذج توقّع السلاسل الزمنية ARIMA للتنبؤ بكمية كل سلعة سيتم بيعها.
- أولاً، عليك إنشاء نموذج ARIMA_PLUS
create or replace `{{my_project}}.{{my_dataset}}.bqml_arima`
options
(model_type = 'ARIMA_PLUS',
time_series_timestamp_col = 'fiscal_date',
time_series_data_col = 'total_quantity',
time_series_id_col = 'product_id',
auto_arima = TRUE,
data_frequency = 'AUTO_FREQUENCY',
decompose_time_series = TRUE
) as
select
fiscal_date,
product_id,
sum(invoiced_quantity_in_pieces) as total_quantity
from
`{{my_project}}.{{my_dataset}}.CDM_Pricing`
group by 1,2;
- بعد ذلك، يمكنك استخدام الدالة ML.FORECAST لتوقُّع المبيعات المستقبلية لكل منتج:
select
*
from
ML.FORECAST(model testing.bqml_arima,
struct(30 as horizon, 0.8 as confidence_level));
- وبعد توفّر هذه التوقعات، يمكنك محاولة فهم ما قد يحدث إذا رفعت الأسعار. على سبيل المثال، إذا رفعت سعر كل منتج بنسبة% 15، يمكنك احتساب إجمالي الأرباح المقدّرة للشهر التالي باستخدام طلب بحث على النحو التالي:
select
sum(forecast_value * list_price) as total_revenue
from ml.forecast(mode testing.bqml_arima,
struct(30 as horizon, 0.8 as confidence_level)) forecasts
left join (select product_id,
array_agg(list_price_converged
order by fiscal_date desc limit 1)[offset(0)] as list_price
from `leigha-bq-dev.retail.cdm_pricing` group by 1) recent_prices
using (product_id);
13. إنشاء تقرير
بعد أن يتم تجميع بيانات الأسعار غير العادية في BigQuery، وبعد أن تعرف كيفية تنفيذ طلبات بحث مفيدة في هذه البيانات، حان الوقت لإنشاء تقرير يتيح لمستخدمي النشاط التجاري استكشاف هذه المعلومات واتّخاذ إجراءات بشأنها.
إذا كان لديك مثيل Looker، يمكنك استخدام LookML في مستودع GitHub هذا لبدء تحليل بيانات الأسعار لهذا النمط. ما عليك سوى إنشاء مشروع Looker جديد وإضافة LookML واستبدال عملية الربط وأسماء الجداول في كل ملف من ملفات العرض لتتطابق مع إعدادات BigQuery.
في هذا النموذج، ستجد الجدول المشتق ( في ملف عرض البيانات هذا) الذي عرضناه سابقًا لفحص تغييرات الأسعار:
view: price_changes {
derived_table: {
sql: select
product_id,
list_price_converged,
total_ordered_pieces,
total_net_sales,
first_price_date,
lag(list_price_converged) over(partition by product_id order by first_price_date asc) as previous_list,
lag(total_ordered_pieces) over(partition by product_id order by first_price_date asc) as previous_total_ordered_pieces,
lag(total_net_sales) over(partition by product_id order by first_price_date asc) as previous_total_net_sales,
lag(first_price_date) over(partition by product_id order by first_price_date asc) as previous_first_price_date
from (
select
product_id,list_price_converged,sum(invoiced_quantity_in_pieces) as total_ordered_pieces, sum(net_sales) as total_net_sales, min(fiscal_date) as first_price_date
from ${cdm_pricing.SQL_TABLE_NAME} AS cdm_pricing
group by 1,2
order by 1, 2 asc
)
;;
}
...
}
بالإضافة إلى نموذج ARIMA في BigQuery ML الذي عرضناه سابقًا، وذلك لتوقّع المبيعات المستقبلية ( في ملف عرض البيانات هذا)
view: arima_model {
derived_table: {
persist_for: "24 hours"
sql_create:
create or replace model ${sql_table_name}
options
(model_type = 'arima_plus',
time_series_timestamp_col = 'fiscal_date',
time_series_data_col = 'total_quantity',
time_series_id_col = 'product_id',
auto_arima = true,
data_frequency = 'auto_frequency',
decompose_time_series = true
) as
select
fiscal_date,
product_id,
sum(invoiced_quantity_in_pieces) as total_quantity
from
${cdm_pricing.sql_table_name}
group by 1,2 ;;
}
}
...
}
يحتوي LookML أيضًا على لوحة بيانات نموذجية. يمكنك الوصول إلى نسخة تجريبية من لوحة البيانات هنا. يقدّم الجزء الأول من لوحة البيانات للمستخدمين معلومات رفيعة المستوى حول التغييرات في المبيعات والتكاليف والأسعار وهوامش الربح. بصفتك مستخدمًا تجاريًا، قد تحتاج إلى إنشاء تنبيه لمعرفة ما إذا كانت المبيعات قد انخفضت إلى أقل من X%، لأنّ ذلك قد يعني أنّه عليك خفض الأسعار.

يتيح القسم التالي، المعروض أدناه، للمستخدمين التعرّف على المؤشرات المتعلقة بتغييرات الأسعار. يمكنك هنا التوغّل في منتجات معيّنة للاطّلاع على سعر القائمة الدقيق والأسعار التي تم تغييرها إليها، ما قد يكون مفيدًا في تحديد منتجات معيّنة لإجراء المزيد من البحث بشأنها.

أخيرًا، في أسفل التقرير، ستجد نتائج نموذج BigQueryML. باستخدام الفلاتر في أعلى لوحة بيانات Looker، يمكنك بسهولة إدخال مَعلمات لمحاكاة سيناريوهات مختلفة مشابهة لما هو موضّح أعلاه. على سبيل المثال، معرفة ما سيحدث إذا انخفض حجم الطلبات إلى% 75 من القيمة المتوقّعة، وتم رفع الأسعار في جميع المنتجات بنسبة %25، كما هو موضّح أدناه

يتم ذلك باستخدام المَعلمات في LookML، والتي يتم دمجها بعد ذلك مباشرةً في عمليات حساب المقاييس المتوفّرة هنا. باستخدام هذا النوع من التقارير، يمكنك العثور على السعر الأمثل لجميع المنتجات أو التوغّل في منتجات معيّنة لتحديد الأماكن التي يجب فيها رفع الأسعار أو خفضها، ومعرفة النتيجة التي ستتحقق من الإيرادات الإجمالية والصافية.
14. التكيّف مع أنظمة التسعير
على الرغم من أنّ هذا البرنامج التعليمي يحوّل عيّنات من مصادر البيانات، ستواجه تحديات مشابهة جدًا في البيانات المتعلقة بأصول التسعير المتوفرة على منصاتك المختلفة. تتوفّر أصول التسعير بتنسيقات تصدير مختلفة (غالبًا xls وsheets وcsv وtxt وقواعد البيانات العلائقية وتطبيقات الأعمال) للنتائج الموجزة والمفصّلة، ويمكن ربط كل منها بـ Dataprep. ننصحك بالبدء بوصف متطلبات التحويل بشكل مشابه للأمثلة المقدَّمة أعلاه. بعد توضيح المواصفات وتحديد أنواع عمليات التحويل المطلوبة، يمكنك تصميمها باستخدام Dataprep.
- أنشئ نسخة من مسار Dataprep (انقر على زر **... "**المزيد" على يسار المسار واختَر الخيار "تكرار") الذي ستخصّصه، أو ابدأ من البداية باستخدام مسار Dataprep جديد.
- الربط بمجموعة بيانات الأسعار الخاصة بك تتوافق Dataprep تلقائيًا مع تنسيقات الملفات، مثل Excel وCSV و"جداول بيانات Google" وJSON. يمكنك أيضًا الاتصال بأنظمة أخرى باستخدام موصّلات Dataprep.
- أرسِل أصول البيانات إلى فئات التحويل المختلفة التي حدّدتها. أنشئ وصفة واحدة لكل فئة. استلهِم بعض الأفكار من مسار العمل المقدَّم في نمط التصميم هذا لتحويل البيانات وكتابة وصفاتك الخاصة. إذا واجهتك أي مشكلة، لا تقلق، يمكنك طلب المساعدة في مربّع حوار المحادثة في أسفل يمين شاشة Dataprep.
- اربط وصفتك بمثيل BigQuery. لست بحاجة إلى إنشاء الجداول يدويًا في BigQuery، إذ سيتولّى Dataprep ذلك تلقائيًا. عند إضافة الناتج إلى سير العمل، نقترح اختيار "وجهة يدوية" وإسقاط الجدول في كل عملية تشغيل. اختبِر كل إعداد مسبق على حدة إلى أن تحقّق النتائج المتوقّعة. بعد الانتهاء من الاختبار، عليك تحويل الناتج إلى "إلحاق بالجدول" في كل عملية تشغيل لتجنُّب حذف البيانات السابقة.
- يمكنك ربط المسار اختياريًا بتشغيله وفقًا لجدول زمني. ويكون هذا الإجراء مفيدًا إذا كانت عمليتك بحاجة إلى التشغيل بشكل مستمر. يمكنك تحديد جدول زمني لتحميل الردّ كل يوم أو كل ساعة استنادًا إلى مدى حداثة البيانات المطلوبة. إذا قرّرت تنفيذ المسار وفقًا لجدول زمني، عليك إضافة "إخراج وجهة الجدول الزمني" في المسار لكل وصفة.
تعديل نموذج تعلُّم الآلة في BigQuery
يقدّم هذا البرنامج التعليمي نموذج ARIMA. ومع ذلك، هناك مَعلمات إضافية يمكنك التحكّم فيها عند تطوير النموذج للتأكّد من أنّه يناسب بياناتك على أفضل وجه. يمكنك الاطّلاع على مزيد من التفاصيل في المثال الوارد في مستنداتنا هنا. بالإضافة إلى ذلك، يمكنك أيضًا استخدام دوال BigQuery ML.ARIMA_EVALUATE وML.ARIMA_COEFFICIENTS وML.EXPLAIN_FORECAST للحصول على مزيد من التفاصيل حول النموذج واتّخاذ قرارات التحسين.
تعديل تقارير Looker
بعد استيراد LookML إلى مشروعك الخاص كما هو موضّح أعلاه، يمكنك إجراء تعديلات مباشرة لإضافة حقول إضافية وتعديل العمليات الحسابية أو المَعلمات التي أدخلها المستخدم وتغيير الرسومات البيانية في لوحات البيانات لتناسب احتياجات نشاطك التجاري. يمكنك الاطّلاع على تفاصيل حول التطوير في LookML هنا وتصوّر البيانات في Looker هنا .
15. تهانينا
أصبحت الآن على دراية بالخطوات الرئيسية المطلوبة لتحسين أسعار منتجات البيع بالتجزئة.
ما هي الخطوات التالية؟
استكشاف أنماط مرجعية أخرى للإحصاءات الذكية