BigQuery Python: užklausos veikia per tarpinį serverį, atsisiuntimai nepavyksta
Patikrinkite, ar BigQuery Python rezultatų atsisiuntimas sukuria atskirą Storage API klientą, nepriklausomą nuo užklausos HTTP kelio.
Užklausa gali sėkmingai baigtis ir vis tiek nepavykti atsisiunčiant jos rezultatą į pandas. BigQuery Python biblioteka tam atsisiuntimui gali naudoti atskirą BigQuery Storage API klientą.
RowIterator.to_dataframe sąsaja dokumentuoja create_bqstorage_client, kurio numatytoji reikšmė yra true, ir bqstorage_client argumentą. Skaitykite tuos nustatymus kartu su priklausomybėmis, esančiomis programoje. Sėkmė įprastame užklausos kelyje neįrodo, kad pasirenkamas atsisiuntimo transportas turi tokią pačią tarpinio serverio paramą ar konfigūraciją.
| Etapas | Ką tikrinti |
|---|---|
| Kredencialų gavimas | Kredencialų transportas ir tapatybės endpoint |
| Užklausos pateikimas ir apklausa | BigQuery kliento užklausos kelias |
| Atsisiuntimas per Storage API | Storage API klientas ir jo transportas |
Kontroliuojamam palyginimui dokumentuota parinktis create_bqstorage_client=False išvengia automatiško to papildomo kliento sukūrimo. Tai gali padėti nustatyti, kuris kelias nepavyksta. Tai transporto pasirinkimas su našumo pasekmėmis, o ne įrodymas, kad pats tarpinis serveris buvo sutaisytas.
Jei programa pateikia savo Storage API klientą, sukonfigūruokite tą klientą sąmoningai. Nelaikykite, kad prie kito kliento prijungtas pasirinktinis HTTP objektas jį perkonfigūruoja.
Senesni pavyzdžiai kalba apie pasenusias httplib2 implementacijas arba privačius konstruktoriaus kabliukus. Suderinkite integraciją su įdiegtos bibliotekos karta ir išsaugokite nepavykusį etapą ataskaitoje. DataFrame konvertavimo klaida ir atmestas tinklo ryšys yra skirtingi rezultatai, net kai jie įvyksta tame pačiame metodo iškvietime.