دليل المبتدئين إلى Google BigQuery لتحليل مجموعات البيانات الضخمة

دقائق القراءة: 6

مقدمة إلى Google BigQuery

لم يعد تخزين البيانات في ملفات CSV أو جداول Excel كافياً عند التعامل مع كميات ضخمة من السجلات. إذا كنت تحتاج إلى تحليل ملايين الصفوف خلال ثوانٍ، فإن BigQuery يُعد من أبرز الحلول السحابية التي تستحق الاهتمام. في هذا الدليل العملي للمبتدئين، سنتعرف إلى ماهية Google BigQuery، وكيفية الوصول إلى البيانات العامة، وطريقة كتابة الاستعلامات الأولى لتحليل البيانات بكفاءة وبتكلفة مدروسة.

واجهة توضيحية عن Google BigQuery وتحليل البيانات الضخمة على السحابة

ما هو BigQuery ولماذا يُستخدم؟

BigQuery هو مستودع بيانات مؤسسي ضمن منصة Google Cloud، صُمم خصيصاً لمعالجة البيانات الضخمة وتحليلها بسرعة عالية. تعتمد هذه الخدمة على بنية serverless، ما يعني أنك لا تحتاج إلى إدارة الخوادم أو ضبط البنية التحتية بنفسك، بل تركز مباشرة على الاستعلام والتحليل.

يسمح لك BigQuery بتنفيذ استعلامات SQL القياسية على ملايين أو حتى مليارات السجلات خلال وقت قصير. كما يمكن تخزين البيانات داخل BigQuery نفسه أو في Google Cloud Storage ضمن ملفات وحاويات buckets. وتزداد قوته عند دمجه مع خدمات أخرى مثل Dataflow وData Studio، مما يجعله خياراً ممتازاً لأعمال التحليلات المتقدمة ولوحات المتابعة واتخاذ القرار.

قبل البدء باستخدام BigQuery

حتى تتمكن من تطبيق الخطوات الواردة في هذا الشرح، يُفترض أن تكون لديك المتطلبات التالية:

  • حساب فعّال على Google Cloud Platform.
  • مشروع تم إنشاؤه مسبقاً داخل Google Cloud.
  • بيئة العمل أو sandbox جاهزة للاستخدام.

في هذا المقال سنعتمد على مجموعة بيانات عامة وفرتها Google لتجربة BigQuery عملياً دون الحاجة إلى رفع بيانات خاصة بك.

كيفية الوصول إلى مجموعة بيانات عامة

توفر Google Cloud Public Dataset Program عدداً من مجموعات البيانات المفتوحة للعامة. ومن بين الأمثلة المفيدة للتجربة، مجموعة بيانات Hacker News التي تضم القصص والتعليقات المنشورة منذ انطلاق المنصة في عام 2006 وحتى الوقت الحالي.

للبدء، انتقل إلى مجموعة بيانات Hacker News ثم اضغط على زر VIEW DATASET. بعد تسجيل الدخول إلى حسابك، ستُفتح نافذة محرر BigQuery Editor وبداخلها مجموعة البيانات الجاهزة للاستكشاف.

واجهة تسجيل الدخول وفتح مجموعة بيانات عامة في محرر BigQuery

كيف تُنظَّم واجهة BigQuery؟

يعتمد BigQuery على هيكل هرمي من أربع طبقات رئيسية، وفهم هذا التنظيم يسهل عليك التنقل بين البيانات والاستعلامات:

  • المشاريع: وهي الحاويات العليا التي تُخزن ضمنها الموارد والبيانات.
  • مجموعات البيانات: توجد داخل المشروع وتُستخدم لتنظيم الجداول.
  • الجداول: تحتوي على البيانات الفعلية التي ستُجري عليها الاستعلامات.
  • المهام: تمثل العمليات المنفذة على البيانات مثل تشغيل الاستعلامات أو تحميل البيانات أو تصديرها.

شرح هيكل BigQuery من المشاريع إلى مجموعات البيانات والجداول والمهام

من المهم أيضاً الانتباه إلى أن بعض الجداول تكون مقسمة حسب اليوم، لذلك قد تحتاج إلى استخدام الرمز * عند الاستعلام عن نطاق زمني واسع. وقد تجد كذلك جدولاً من نوع intraday يوفّر بيانات آخر 24 ساعة.

كيفية فحص بنية الجدول Schema

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

عرض بنية الجدول والأعمدة داخل BigQuery

معاينة البيانات قبل الاستعلام

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

معاينة صفوف البيانات داخل جدول BigQuery قبل تنفيذ الاستعلام

أساسيات الاستعلام عن البيانات الكبيرة باستخدام SQL

تعتمد عمليات التحليل في BigQuery على استعلامات SQL. ومن خلال هذه اللغة يمكنك قراءة البيانات، وإنشاء الجداول، وتحديث بعض البنى، وتنفيذ تحليلات متقدمة.

المكوّنات الأساسية لأي استعلام

  • SELECT: لتحديد الأعمدة التي تريد إرجاعها في النتائج.
  • FROM: لتحديد الجدول الذي يحتوي على البيانات.
  • WHERE: لإضافة شروط تصفية السجلات.
  • ORDER BY: لترتيب النتائج تصاعدياً أو تنازلياً.
  • GROUP BY: لتجميع النتائج وتنفيذ عمليات التجميع مثل العدّ أو المجموع.

كيفية كتابة أول استعلام في BigQuery

لنأخذ مثالاً عملياً: نريد معرفة أكثر 5 نطاقات domains مشاركةً على Hacker News خلال عام 2021. للقيام بذلك، اضغط على زر Compose New Query لفتح محرر الاستعلامات، ثم اكتب الاستعلام التالي:

زر إنشاء استعلام جديد في محرر BigQuery

SELECT REGEXP_EXTRACT(url, '//([^/]*)/?') AS domain, COUNT(*) AS total
FROM `bigquery-public-data.hacker_news.full`
WHERE url != ''
  AND EXTRACT(YEAR FROM timestamp) = 2021
GROUP BY domain
ORDER BY total DESC
LIMIT 5

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

التحقق التلقائي من صحة الاستعلام وتقدير حجم البيانات في BigQuery

بعد ذلك، اضغط على زر Run، وخلال ثوانٍ قليلة ستظهر النتائج أمامك.

نتائج تنفيذ استعلام SQL داخل BigQuery

إذا رغبت في عرض النتائج بصيغة JSON، يمكنك فتح تبويب JSON. كما ستجد معلومات إضافية مفيدة ضمن قسم Execution details، مثل مراحل التنفيذ وكمية البيانات المقروءة والزمن المستغرق.

الاستعلام عن عدة جداول باستخدام Wildcard Tables

في بعض الحالات، تكون البيانات موزعة على عدة جداول متشابهة في الاسم، وهنا يأتي دور Wildcard Tables. تسمح لك هذه الميزة بكتابة استعلام مختصر يستهدف كل الجداول المطابقة لنمط محدد.

على سبيل المثال، يمكن أن يكون النمط بالشكل التالي:

FROM tablename.stories_*

عند استخدام هذا الأسلوب، يمكنك الاستفادة من العمود الوهمي _TABLE_SUFFIX داخل جملة WHERE لتحديد الجداول المطلوبة فقط، بدلاً من فحصها كلها. هذا يقلل عدد bytes scanned ويساعد على خفض التكلفة بشكل ملحوظ.

مثال على التصفية باستخدام _TABLE_SUFFIX

WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 36 MONTH))
AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))

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

كيفية استخدام UNNEST لتسطيح البيانات

عند التعامل مع الحقول المتداخلة أو المصفوفات من النوع ARRAY داخل BigQuery، ستحتاج أحياناً إلى تحويل هذه القيم إلى صفوف مستقلة. تُعرف هذه العملية باسم flattening، وتتم باستخدام العامل UNNEST.

تأخذ الدالة UNNEST مصفوفة من القيم وتحوّل كل عنصر فيها إلى صف منفصل داخل نتيجة تشبه الجدول.

SELECT *
FROM UNNEST(['Ambreen', 'Abdul', 'Adam', 'David']) AS names;

مثال على استخدام UNNEST لتحويل عناصر المصفوفة إلى صفوف في BigQuery

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

حفظ الاستعلامات ومشاركتها

يتيح لك BigQuery حفظ الاستعلامات للعودة إليها لاحقاً أو مشاركتها مع الآخرين. توجد ثلاثة أنواع رئيسية من الاستعلامات المحفوظة:

  • خاص Private: لا يراه إلا المستخدم الذي أنشأه.
  • على مستوى المشروع Project-level: يمكن لأعضاء المشروع الذين يملكون الصلاحيات المناسبة الوصول إليه.
  • عام Public: يمكن لأي شخص يمتلك الرابط الاطلاع عليه.

يُعد حفظ الاستعلامات مفيداً جداً عند العمل ضمن فرق تحليل البيانات، أو عند الحاجة إلى تكرار نفس التحليل دورياً دون إعادة كتابة الأوامر من الصفر.

نصائح عملية لتحسين الأداء وتقليل التكلفة في BigQuery

  • تجنب استخدام SELECT * إلا عند الضرورة القصوى.
  • اختر الأعمدة التي تحتاجها فقط لتقليل حجم البيانات المقروءة.
  • استخدم WHERE لتصفية السجلات مبكراً.
  • اعتمد على _TABLE_SUFFIX عند الاستعلام عن الجداول المجزأة زمنياً.
  • راجع تقدير حجم المعالجة قبل تشغيل الاستعلام.
  • استفد من المعاينة Preview لفهم البيانات بسرعة دون تنفيذ استعلام كامل.

استخدامات متقدمة تستحق الاستكشاف

ما تناولناه هنا هو مدخل عملي مبسط فقط، لكن BigQuery أوسع بكثير من ذلك. يمكنك مثلاً تصدير بيانات Firebase Analytics إلى BigQuery ثم تنفيذ استعلامات تحليلية متقدمة عليها. كما يمكنك استخدام BigQuery ML لبناء نماذج تعلم آلي مباشرة عبر استعلامات SQL دون الحاجة إلى مغادرة بيئة التحليل.

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

الخلاصة التقنية

Google BigQuery ليس مجرد أداة لتنفيذ استعلامات سريعة، بل منصة تحليل بيانات متكاملة تجمع بين الأداء العالي والمرونة وقابلية التوسع. للمبتدئين، تكمن أهم نقطة في تعلم كيفية كتابة استعلامات دقيقة، واختيار الجداول والأعمدة بذكاء، والتحكم في حجم البيانات المفحوصة لتقليل التكلفة. وإذا أتقنت أساسيات مثل SELECT وWHERE وGROUP BY وUNNEST و_TABLE_SUFFIX، فستمتلك قاعدة قوية للانتقال إلى تحليلات أكثر تقدماً داخل منظومة Google Cloud.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *