BigQuery Python: الاستعلامات تعمل عبر الوسيط، لكن التنزيلات تفشل
تحقق مما إذا كان تنزيل نتائج BigQuery Python ينشئ عميل Storage API بشكل مستقل عن مسار HTTP الخاص بالاستعلام.
قد يكتمل الاستعلام بنجاح ومع ذلك يفشل عند تنزيل نتيجته إلى pandas. يمكن لمكتبة BigQuery Python أن تستخدم عميل BigQuery Storage API منفصلًا لذلك التنزيل.
توثّق واجهة RowIterator.to_dataframe المعامل create_bqstorage_client، الذي تكون قيمته الافتراضية true، إضافة إلى المعامل bqstorage_client. اقرأ هذه الإعدادات إلى جانب التبعيات الموجودة في التطبيق. النجاح على مسار الاستعلام العادي لا يثبت أن ناقل التنزيل الاختياري يحظى بالدعم أو الإعداد نفسه للوسيط.
| المرحلة | ما ينبغي فحصه |
|---|---|
| الحصول على بيانات الاعتماد | ناقل بيانات الاعتماد ونقطة نهاية الهوية |
| إرسال الاستعلام واستطلاعه | مسار الطلب في عميل BigQuery |
| التنزيل عبر Storage API | عميل Storage API وناقله |
لإجراء مقارنة مضبوطة، يتجنب الخيار الموثّق create_bqstorage_client=False إنشاء ذلك العميل الإضافي تلقائيًا. ويمكن أن يساعد ذلك في تحديد المسار الذي يفشل. إنه اختيار للناقل له آثار على الأداء، وليس دليلًا على أن الوسيط نفسه قد أُصلح.
إذا وفّر التطبيق عميل Storage API خاصًا به، فاضبط ذلك العميل عن قصد. لا تفترض أن كائن HTTP مخصصًا مرتبطًا بعميل آخر سيعيد ضبطه.
تناقش الأمثلة الأقدم تطبيقات httplib2 مهجورة أو خطافات مُنشئ خاصة. طابق التكامل مع جيل المكتبة المثبّت، واحتفظ بمرحلة الفشل في التقرير. خطأ تحويل DataFrame واتصال شبكة مرفوض نتيجتان مختلفتان حتى عندما يحدثان في استدعاء الأسلوب نفسه.