Интерфейс BigQuery просто обеспечивает импорт JSON для создания новых таблиц. Итак, для потоковой передачи содержимого файлов в уже существующие таблицы BigQuery вы можете написать небольшую программу на вашем любимом языке программирования, используя клиентскую библиотеку .
Я предполагаю, что ваши данные в виде JSON с разделителями строк выглядят следующим образом:
{"optout_time": 1552297349, "clicks": {"ts": 1539245349, "url": "www.google.com"}, "profile_id": "foo", ...}
{"optout_time": 1532242949, "clicks": {"ts": 1530247349, "url": "www.duckduckgo.com"}, "profile_id": "bar", ...}
Сценарий Python для работы будет выглядеть следующим образом. В качестве аргументов командной строки он принимает имена файлов json:
import json
import sys
from google.cloud import bigquery
dataset_id = "<DATASET-ID>" # the ID of your dataset
table_id = "<TABLE-ID>" # the ID of your table
client = bigquery.Client()
table_ref = client.dataset(dataset_id).table(table_id)
table = client.get_table(table_ref)
for f in sys.argv[1:]:
with open(f) as fh:
data = [json.loads(x) for x in fh]
client.insert_rows_json(table, data)
Вложенность выполняется автоматически.
Чтобы узнать, как эта операция будет выглядеть на других языках, вы можете взглянуть на эту документацию .