Как загрузить все данные в наборе данных Google BigQuery?
Есть ли простой способ напрямую загрузить все данные, содержащиеся в определенном наборе данных, в Google BigQuery? На самом деле я загружаю "as csv", делая один запрос за другим, но это не позволяет мне получить более 15 000 строк, а количество строк, которые мне нужно загрузить, превышает 5 миллионов. Спасибо
3 ответа
Вы можете запускать задания извлечения BigQuery с помощью веб-интерфейса, инструмента командной строки или API-интерфейса BigQuery. Данные могут быть извлечены
Например, используя инструмент командной строки:
Сначала установите и выполните авторизацию, используя следующие инструкции: https://developers.google.com/bigquery/bq-command-line-tool-quickstart
Затем убедитесь, что у вас есть доступное хранилище Google Cloud Storage (для этого см. Google Cloud Console).
Затем выполните следующую команду: bq extract my_dataset.my_table gs: //mybucket/myfilename.csv
Подробнее о извлечении данных с помощью API можно прочитать здесь: https://developers.google.com/bigquery/exporting-data-from-bigquery
Подробные пошаговые инструкции по загрузке большого запроса
включить биллинг
Вы должны указать номер своей кредитной карты в Google, чтобы экспортировать вывод, и вам, возможно, придется заплатить.
Но свободной квоты (1 ТБ обработанных данных) должно хватить для многих хобби-проектов.
создать проект
привязать выставление счетов к проекту
сделай свой запрос
создать новый набор данных
нажмите "Показать параметры" и включите "Разрешить большие результаты", если результат очень большой
экспортировать результат запроса в таблицу в наборе данных
создать ведро в облачном хранилище.
экспортировать таблицу в созданную папку в облачном хранилище.
убедитесь, что нажали GZIP сжатие
используйте имя как
<bucket>/prefix.gz
,Если вывод очень большой, имя файла должно быть звездочкой
*
и вывод будет разделен на несколько файлов.
загрузите таблицу из облачного хранилища на свой компьютер.
Кажется невозможным загрузить несколько файлов из веб-интерфейса, если большой файл разделен, но вы можете установить
gsutil
и запустить:gsutil -m cp -r 'gs://<bucket>/prefix_*' .
См. Также: Загрузка файлов и папок из корзины Google Storage в локальную папку.
E сть
gsutil
в Ubuntu 16.04, но это не связанный пакет.Вы должны установить и настроить, как описано в:
разархивировать локально:
for f in *.gz; do gunzip "$f"; done
Для python вы можете использовать следующий код, он будет загружать данные как фрейм данных.
from google.cloud import bigquery
def read_from_bqtable(bq_projectname, bq_query):
client = bigquery.Client(bq_projectname)
bq_data = client.query(bq_query).to_dataframe()
return bq_data #return dataframe
bigQueryTableData_df = read_from_bqtable('gcp-project-id', 'SELECT * FROM `gcp-project-id.dataset-name.table-name` ')
Да, шаги, предложенные Майклом Манучехри, являются правильным и простым способом экспорта данных из Google Bigquery.
Я написал скрипт bash, чтобы вам не приходилось каждый раз выполнять эти шаги, просто используйте мой скрипт bash. Ниже приведены ссылки на github: https://github.com/rajnish4dba/GoogleBigQuery_Scripts
объем:
1. экспорт данных на основе вашего большого запроса SQL.
2. экспорт данных на основе вашего имени таблицы.
3. перенести файл экспорта на сервер SFtp.
попробуйте и дайте мне знать ваши отзывы.
чтобы помочь использовать ExportDataFromBigQuery.sh -h