Получение данных из BigQuery занимает очень много времени - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь получить данные из BigQuery. Все работает нормально, когда я получаю небольшие данные, но когда я пытаюсь получить большие данные, это требует вечности. любой эффективный способ?

Пока я использую это:

import os
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'cred.json'
import google.auth
from google.cloud import bigquery

%load_ext google.cloud.bigquery

import google.datalab.bigquery as bq
from google.cloud.bigquery import Client

client = bigquery.Client()

Вот моя команда SQL:

sql = """
   SELECT bla, bla1, bla2
FROM table
"""
df = client.query(sql)
df.to_dataframe()

1 Ответ

1 голос
/ 15 января 2020

Вы можете получить данные BigQuery в масштабах данных быстрее, изменив метод.

Проверьте, как эти параметры отражены на диаграмме:

  • A: to_dataframe() - Использует API BigQuery tabledata.list.
  • B: to_dataframe(bqstorage_client=bqstorage_client), версия пакета 1.16.0 - использует API хранилища BigQuery с форматом данных Avro.
  • C: to_dataframe(bqstorage_client=bqstorage_client), версия пакета 1.17 .0 - Использует BigQuery Storage API с форматом данных Arrow.
  • D: to_arrow(bqstorage_client=bqstorage_client).to_pandas(), версия пакета 1.17.0 - Использует BigQuery Storage API с форматом данных Arrow.

enter image description here

Обратите внимание, как вы можете go от> 500 секунд до ~ 20, используя to_arrow(bqstorage_client=bqstorage_client).to_pandas().

См. https://medium.com/google-cloud/announcing-google-cloud-bigquery-version-1-17-0-1fc428512171

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...