تعرف على كيفية الوصول إلى البيانات والاستعلام عنها باستخدام Google BigQuery. مع أمثلة في Python و R.

مرحبا هبر!



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



أخبرنا في التعليقات إذا كنت مهتمًا بنشر منشور عن التعلم الآلي باستخدام BigQuery







نظرة عامة



في هذه المقالة ، سنلقي نظرة على كيفية تحميل بيانات Google BigQuery باستخدام Python و R ، ثم سنتحدث عن الاستعلام عن البيانات لاستخلاص رؤى مفيدة. سنستخدم مكتبة Google Cloud BigQuery للاتصال بـ BigQuery Python ومكتبة bigrquery لفعل الشيء نفسه في R.



سنناقش أيضًا مرحلتين من معالجة بيانات BigQuery باستخدام Python / R:



  • اتصال Google BigQuery والوصول إلى البيانات
  • الاستعلام عن البيانات باستخدام Python / R


تفترض هذه المقالة أن جميع بيانات المستخدم الخاصة بك مخزنة في Google BigQuery.



بايثون



Python هي واحدة من أكثر لغات الأغراض العامة شيوعًا لمعالجة البيانات. يتمتع بالاهتمام والطلب نظرًا لمرونته وسهولة استخدامه ، وفي علم البيانات ، فإنه يضم مجموعة متنوعة من المكتبات والأدوات للتفاعل مع أنظمة الجهات الخارجية.



الاتصال بـ Google BigQuery باستخدام Python



للاستعلام عن بيانات Google BigQuery باستخدام Python ، يلزمك توصيل عميل Python بمثيل BigQuery الخاص بك. يستخدم هذا مكتبة العميل السحابية لواجهة برمجة تطبيقات Google BigQuery. توجد أيضًا حلول بديلة للاتصال بـ BigQuery باستخدام Python ؛ على سبيل المثال ، تعد مكتبة BigQuery-Python الخاصة بـ tylertreat رائعة.



سنعمل مع مكتبة Google Cloud BigQuery لأنها مستقرة ومدعومة رسميًا من Google.



هذا يفترض أن لديك بالفعل بيئة تطوير Python معدة.

لتثبيت المكتبة ، قم بتشغيل الأمر التالي في سطر الأوامر:



pip install --upgrade google-cloud-bigquery


بعد ذلك ، نقوم بتوصيل العميل بقاعدة البيانات. للقيام بذلك ، تحتاج إلى تنزيل ملف JSON يحتوي على بيانات اعتماد لخدمة BigQuery. إذا لم يكن لديك واحد ، فإليك كيفية إنشاء واحد. بعد ذلك ، قم بتنزيل ملف JSON هذا على جهازك المحلي.



الآن بعد أن تم إعداد كل شيء لدينا ، نبدأ في تهيئة الاتصال. يتم استخدام كود Python التالي لهذا:



rom google.cloud import bigquery
	from google.oauth2 import service_account
	credentials = service_account.Credentials.from_service_account_file(
	'path/to/file.json')
	

	project_id = 'my-bq'
	client = bigquery.Client(credentials= credentials,project=project_id)


في المقتطف أعلاه ، ستحتاج أيضًا إلى تحديد project_idموقع ملف JSON بالمفتاح ، path/to/file.jsonمع استبدال " " بالمسار الصحيح فعليًا لملف JSON المحفوظ على الجهاز المحلي.



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



الاستعلام عن بيانات BigQuery باستخدام Python



الآن بعد أن تم إعداد عميل BigQuery وأصبح جاهزًا للاستخدام ، يمكننا الاستعلام عن الكثير من بيانات BigQuery.



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



يمكنك قراءة المزيد حول كيفية عمل هذه الطريقة في الوثائق الرسمية هنا .



هذا ما يبدو عليه كود Python للاهتمام:



query_job = client.query("""
	   SELECT *
	   FROM dataset.my_table
	   LIMIT 1000 """)
	

	results = query_job.result() #   .


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



job_config.use_legacy_sql = True
	query_job = client.query("""
	   SELECT *
	   FROM dataset.my_table
	   LIMIT 1000""", job_config = job_config)
	

	results = query_job.result() #   .


ر



لغة R هي بديل شائع للبايثون وتستخدم بنشاط في علم البيانات. إذا كنت مهتمًا بالتحليل الإحصائي المفصل والمنهجي للبيانات ، فهناك عدد قليل من اللغات التي يمكنها منافسة R.



عند العمل مع Google BigQuery ، يوفر R أيضًا مكتبة موثوقة وسهلة الاستخدام للاستعلام عن البيانات ومعالجتها. سنعمل هنا مع مكتبة Bigrquery التي أنشأها وصيانتها هادلي ويكهام ، مدير الأبحاث في RStudio.



يفترض هذا أنك قمت بالفعل بإعداد بيئة التطوير الخاصة بك في R. إذا لم يكن الأمر كذلك ، فاستخدم هذا البرنامج التعليمي لإعداد RStudio.



اتصل بـ Google BigQuery باستخدام R.



لتثبيت bigrquery ، قم بتشغيل الأمر التالي من وحدة التحكم R:



install.packages(“bigrquery”)


بكل بساطة! نحن مستعدون للذهاب.



كما هو الحال مع Python ، يلزم ترخيص عميل R للوصول إلى خدمات Google Cloud. على النحو التالي من وثائق bigrquery ، اتبع المطالبة من وحدة التحكم R لفتح عنوان URL الخاص بالترخيص ، ثم انسخ الرمز إلى وحدة التحكم.



يرجى ملاحظة ما يلي: يجب أن يتم هذا التفويض مرة واحدة فقط. ستقوم جميع الطلبات اللاحقة تلقائيًا بتحديث بيانات اعتماد الوصول.



الاستعلام عن بيانات BigQuery باستخدام R.



للاستعلام عن بيانات BigQuery باللغة R ، اتبع الخطوات التالية:



  • سنشير إلى معرف المشروع من وحدة تحكم Google Cloud ، كما تم ذلك في Python.
  • دعونا نشكل سلسلة استعلام سنطلب بها البيانات.
  • دعنا نسميها query_execمع معرف المشروع وسلسلة الاستعلام.


إليك الكود للقيام بكل هذا:



#  
	library(bigrquery)
	

	#   ID  
	project_id <- "your-project-id" 
	

	#  
	sql_string <- "SELECT * FROM dataset.my_table LIMIT 1000"
	

	#     
	query_results <- query_exec(sql_string, project = project_id, useLegacySql = FALSE)


كما هو الحال مع Python ، يمكنك تشغيل الاستعلامات المكتوبة بلغة SQL القديمة. يمكنك أيضًا تغيير القيمة useLegacySqlإلى TRUEفي وظيفتك query_exec.



خاتمة



لذلك ، قمنا بفحص مدى سهولة وبساطة العمل مع البيانات المحفوظة في Google BigQuery ، بالإشارة إليها في Python و R.



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



All Articles