BigQuery Python: interogările funcționează prin proxy, descărcările eșuează
Verificați dacă descărcarea rezultatului BigQuery Python creează un client Storage API independent de calea HTTP a interogării.
O interogare se poate încheia cu succes și totuși poate eșua la descărcarea rezultatului în pandas. Biblioteca BigQuery Python poate folosi un client BigQuery Storage API separat pentru acea descărcare.
Interfața RowIterator.to_dataframe documentează create_bqstorage_client, a cărui valoare implicită este true, și un argument bqstorage_client. Citiți aceste setări împreună cu dependențele prezente în aplicație. Succesul pe calea obișnuită a interogării nu dovedește că transportul opțional de descărcare are același suport de proxy sau aceeași configurație.
| Etapă | Ce trebuie inspectat |
|---|---|
| Obținerea acreditărilor | Transportul acreditărilor și endpoint-ul de identitate |
| Trimiterea și interogarea unei cereri | Calea cererii clientului BigQuery |
| Descărcarea prin Storage API | Clientul Storage API și transportul său |
Pentru o comparație controlată, opțiunea documentată create_bqstorage_client=False evită crearea automată a acelui client suplimentar. Acest lucru poate ajuta la identificarea căii care eșuează. Este o alegere de transport cu implicații de performanță, nu o dovadă că proxy-ul în sine a fost reparat.
Dacă aplicația furnizează propriul client Storage API, configurați deliberat acel client. Nu presupuneți că un obiect HTTP personalizat atașat altui client îl reconfigurează.
Exemplele mai vechi discută implementări httplib2 depășite sau cârlige private de constructor. Potriviți integrarea cu generația bibliotecii instalate și păstrați etapa de eșec în raport. O eroare de conversie DataFrame și o conexiune de rețea respinsă sunt rezultate diferite chiar și atunci când apar în același apel de metodă.