Почему запрос в BigQuery такой медленный?

Пытаюсь найти способ хранения данных в рамках Google Cloud проекта, чтобы быстро их от туда достать и обработать в веб сервисе на node js. Сейчас данные хранятся в гугл таблице. В Google Cloud развернул веб сервис в AppEngine на node js. Подключился к гугл таблице через Google Sheets API. Данные из гугл таблицы забирает, но на обращение к API Google SHeets уходит много время. Время указано в миллисекундах(Например, 4100 - 4 секунды и 100 миллисекунд).

Google Sheets API - node js

Максимальное время допустимое для меня, не более 3 секунд. Этот веб сервис работает для Алисы. Алиса не ждет более 3 секунд.

Решил, что всемогущая BigQuery решит проблему и будет доставать нужные мне данные менее чем за 1 секунду. Экспортировал туда данные, создав таблицу в BigQuery. В итоге, она оказалась еще более медленной!

BigQuery - запрос данных

Место обработки выбрал Финляндия (europe-north1). Место обработки веб сервиса Франкфурт (europe-west3). Время 7.6 секунды на обработку это ужасно медленно. Создал набор данных с местом обработки Франкфурт (europe-west3). Итог - результат тот же, 7.4 секунды на выполнение.

Таблица в Франкфурт (europe-west3)

Неужели BigQuery так и должна медленно работать? Или я что-то делаю не так? Подскажите пожалуйста, как ускорить работу с БД?

Информация о данных: количество строк 6 тыс, количество столбцов 24.


Ответы (1 шт):

Автор решения: AivanF.

Google BigQuery – это аналитическая, распределённая колоночная СУБД, их назначение – быстро обрабатывать большие объёмы данных, а не маленькие. Выигрыш ощутим на агрегации данных в тысячи и более строк, где строковая СУБД начнёт зависать, а BigQuery продолжит выполняться за несколько секунд.

Ещё один потенциальный недостаток BigQuery в данной задаче – записывающиеся данные буферизуются, то есть, фактически появляются в таблице на несколько секунд, минут или даже час после записи. Потому что цель этой СУБД не в оперативной записи, а обработке.

Для хранения и манипуляции данных приложений лучше использовать СУБД строкового или NoSQL типа. Например, Google FireStore, у неё есть библиотеки для многих платформ и языков, в т.ч NodeJs. Документация.

→ Ссылка