Как загрузить данные, возвращенные из вызова API, непосредственно в BigQuery без сохранения в GCS?

1

Я пытаюсь написать Python для:

  1. собирать данные josn или csv из API наших поставщиков,

  2. загрузить данные в BigQuery

В: Могу ли я загрузить данные непосредственно в BigQuery, не сохраняя их в GCS?

Спасибо,

Изменение: Client.load_table_from_dataframe может быть решением.

Теги:
python-3.x
google-bigquery

1 ответ

1

Пара идей:

  • Используйте потоковый API BigQuery для вставки строк в таблицы. Обратите внимание, что это связано с ценой.
  • Используйте оператор INSERT, где вы передаете значения для вставки в качестве параметров запроса. Вы должны использовать запрос формы, где вы передаете array_of_structs в качестве параметра запроса типа ARRAY<STRUCT<x INT64, y STRING, z BOOL>> (структура должна иметь соответствующий тип строки, который вы хотите использовать). Обратите внимание, что для вызовов BigQuery существует максимальный размер запроса, который, если я правильно помню, составляет 10 МБ.

Запрос:

INSERT dataset.table (x, y, z)
SELECT x, y, z
FROM UNNEST(@array_of_structs)
  • 0
    Спасибо! Я смог сделать это, используя Apps Script - 1) преобразовать данные в формат Blob 'application / octet-stream' 2) и создать задание загрузки для прямой загрузки данных. Наиболее похожим способом является load_table_from_dataframe?
  • 1
    Хорошо, отлично! Расскажите о том, что вы сделали, в качестве ответа на свой вопрос, если кто-то еще ищет подобное решение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню