BigQuery Python: τα ερωτήματα λειτουργούν μέσω του proxy, οι λήψεις αποτυγχάνουν
Ελέγξτε αν η λήψη αποτελεσμάτων του BigQuery Python δημιουργεί πελάτη Storage API ανεξάρτητα από τη διαδρομή HTTP του ερωτήματος.
Ένα ερώτημα μπορεί να ολοκληρωθεί με επιτυχία και παρ' όλα αυτά να αποτύχει κατά τη λήψη του αποτελέσματός του στο pandas. Η βιβλιοθήκη BigQuery Python μπορεί να χρησιμοποιήσει ξεχωριστό πελάτη BigQuery Storage API για αυτή τη λήψη.
Η διεπαφή RowIterator.to_dataframe τεκμηριώνει το create_bqstorage_client, που από προεπιλογή είναι true, και ένα όρισμα bqstorage_client. Διαβάστε αυτές τις ρυθμίσεις μαζί με τις εξαρτήσεις που υπάρχουν στην εφαρμογή. Η επιτυχία στη συνηθισμένη διαδρομή ερωτήματος δεν αποδεικνύει ότι το προαιρετικό κανάλι λήψης έχει την ίδια υποστήριξη ή διαμόρφωση proxy.
| Στάδιο | Τι πρέπει να ελεγχθεί |
|---|---|
| Απόκτηση διαπιστευτηρίων | Το κανάλι μεταφοράς διαπιστευτηρίων και το τελικό σημείο ταυτότητας |
| Υποβολή και ερώτηση κατάστασης ερωτήματος | Η διαδρομή αιτήματος του πελάτη BigQuery |
| Λήψη μέσω Storage API | Ο πελάτης Storage API και το κανάλι μεταφοράς του |
Για ελεγχόμενη σύγκριση, η τεκμηριωμένη επιλογή create_bqstorage_client=False αποφεύγει την αυτόματη δημιουργία αυτού του πρόσθετου πελάτη. Αυτό μπορεί να βοηθήσει στον εντοπισμό της διαδρομής που αποτυγχάνει. Είναι επιλογή καναλιού μεταφοράς με επιπτώσεις στην απόδοση, όχι απόδειξη ότι ο ίδιος ο proxy επισκευάστηκε.
Αν η εφαρμογή παρέχει τον δικό της πελάτη Storage API, διαμορφώστε αυτόν τον πελάτη σκόπιμα. Μην υποθέσετε ότι ένα προσαρμοσμένο αντικείμενο HTTP που είναι συνδεδεμένο σε άλλον πελάτη θα τον επαναδιαμορφώσει.
Παλαιότερα παραδείγματα συζητούν παρωχημένες υλοποιήσεις httplib2 ή ιδιωτικά άγκιστρα κατασκευαστή. Αντιστοιχίστε την ενσωμάτωση με τη γενιά βιβλιοθήκης που είναι εγκατεστημένη και διατηρήστε το στάδιο αποτυχίας στην αναφορά. Ένα σφάλμα μετατροπής σε DataFrame και μια απορριφθείσα σύνδεση δικτύου είναι διαφορετικά αποτελέσματα ακόμη και όταν συμβαίνουν στην ίδια κλήση μεθόδου.