クエリは正常に完了しても、その結果を pandas にダウンロードする段階で失敗することがあります。BigQuery Python ライブラリは、そのダウンロードに別個の BigQuery Storage API クライアントを使う場合があります。

RowIterator.to_dataframe インターフェースは、既定で true になる create_bqstorage_client と、bqstorage_client 引数を文書化しています。これらの設定を、アプリケーションに存在する依存関係と併せて確認してください。通常のクエリ経路での成功は、任意のダウンロード経路が同じプロキシ対応や構成を持つことを証明しません。

段階確認すべき点
認証情報の取得認証情報の転送経路と ID エンドポイント
クエリの送信とポーリングBigQuery クライアントのリクエスト経路
Storage API 経由のダウンロードStorage API クライアントとその転送経路

制御された比較のために、文書化された create_bqstorage_client=False オプションは、その追加クライアントの自動生成を避けます。これはどの経路が失敗するかの特定に役立ちます。性能に影響する転送方式の選択であり、プロキシ自体が修復された証拠ではありません。

アプリケーションが独自の Storage API クライアントを提供する場合は、そのクライアントを意図的に構成してください。別のクライアントに接続した独自の HTTP オブジェクトが再構成すると想定しないでください。

古い例では、廃止された httplib2 実装や非公開のコンストラクタフックが論じられています。統合はインストール済みのライブラリ世代に合わせ、失敗した段階を報告に残してください。DataFrame 変換のエラーと拒否されたネットワーク接続は、同じメソッド呼び出しで起きても異なる結果です。

関連記事