Открыть сервис

Google BigQuery

Google BigQuery — это полностью управляемый серверный сервис для хранения и анализа больших данных (Big Data), предоставляемый компанией Google (входит в Alphabet Inc.). BigQuery позволяет выполнять сложные SQL-запросы к терабайтным и петабайтным наборам данных без необходимости управления инфраструктурой, кластеризацией или настройкой оборудования. Относится к классу облачных хранилищ данных (cloud data warehouse) и является одним из ключевых продуктов платформы Google Cloud Platform (GCP).

История

Разработка BigQuery началась внутри Google как внутренний проект под названием Dremel, предназначенный для быстрого анализа огромных массивов логов и данных поискового индекса. В 2010 году на конференции Google I/O было объявлено о создании коммерческого продукта на базе Dremel. Первая бета-версия BigQuery стала доступна в мае 2011 года. В 2012 году сервис перешёл в стадию общей доступности (General Availability). С тех пор BigQuery активно развивается: добавляются новые функции (автоматическое масштабирование, поддержка машинного обучения, потоковая вставка данных), а также интеграция с другими сервисами GCP.

Архитектура и устройство

Бессерверная модель (Serverless)

BigQuery не требует от пользователя создания или администрирования серверов. Ресурсы — процессор, память и дисковое пространство — автоматически выделяются и масштабируются в зависимости от нагрузки и объёма данных. Плата взимается за объём обработанных данных при выполнении запросов (on-demand) или за фиксированную мощность (flat-rate pricing).

Разделение вычислений и хранения

Архитектура разделяет операции по хранению данных и их обработке. Данные хранятся в сжатом, столбцовом формате Capacitor в распределённой файловой системе Colossus. Вычислительные ресурсы для выполнения запросов выделяются независимо. Это позволяет масштабировать каждый компонент отдельно: хранилище может расти до любого объёма (лимит по умолчанию — 25 ТБ на проект, может быть увеличен), а вычислительные слоты динамически добавляются для обработки запроса.

Столбцовое хранение

BigQuery хранит данные по колонкам, а не по строкам (как традиционные реляционные БД). Это обеспечивает высокую производительность при агрегациях и фильтрации по отдельным столбцам, а также позволяет сжимать однотипные значения более эффективно. Столбцовый формат уменьшает объём сканируемых данных при запросах.

Ключевые характеристики

Язык запросов

BigQuery использует диалект SQL (GoogleSQL), совместимый с ANSI 2011. Поддерживаются подзапросы, оконные функции, JOIN, UNION, обобщённые табличные выражения (CTE), пользовательские функции (UDF) на SQL и JavaScript, а также процедуры и триггеры.

Производительность

Запросы выполняются с использованием механизма распределённого выполнения: один запрос разбивается на множество подзапросов, которые обрабатываются параллельно на тысячах узлов. Результаты промежуточных шагов кешируются. Встроенный оптимизатор запросов автоматически выбирает оптимальный план выполнения. Время выполнения типовых запросов к терабайтным данным составляет секунды или десятки секунд.

Автоматическое сжатие и кеширование

Все данные хранятся в сжатом виде (коэффициент сжатия в среднем 10:1). Результаты повторных запросов к неизменённым данным автоматически извлекаются из кеша (без повторной обработки и списания средств).

Поддержка потоковой вставки (Streaming)

Данные могут непрерывно загружаться в BigQuery через API (streaming inserts) с задержкой в несколько секунд до появления в запросах. Поддерживается буферизация и автоматическая репликация для отказоустойчивости.

Встроенные функции машинного обучения

С помощью SQL-конструкции CREATE MODEL можно создавать и обучать модели машинного обучения прямо в BigQuery (линейная регрессия, логистическая регрессия, ARIMA, нейронные сети, матричная факторизация). Модели затем применяются для предсказаний с помощью SQL-запроса.

Режимы ценообразования

BigQuery использует модель оплаты за ресурсы, а не за время работы. Существуют две основные схемы:

Дополнительно действуют бесплатные квоты: 1 ТБ обработанных данных в месяц на проект и 10 ГБ хранилища.

Применение и типовые сценарии

Аналитика больших данных

BigQuery широко используется для анализа логов веб-сервисов, данных датчиков (IoT), финансовых транзакций, маркетинговой статистики, рекламных данных (например, после выгрузки из Google Ads, Google Analytics 4). Хранение и анализ данных в масштабах петабайт выполняется без сложной инфраструктурной подготовки.

Интеграция с экосистемой Google Cloud

Сервис глубоко интегрирован с другими продуктами GCP: Google Cloud Storage (для загрузки данных), Dataflow (для ETL-пайплайнов), Looker (для BI-отчётов), Vertex AI (для дообучения ML-моделей). Также поддерживаются внешние таблицы (External Tables), позволяющие запрашивать данные, хранящиеся в Cloud Storage (CSV, Parquet, Avro), не загружая их в постоянное хранилище BigQuery.

Реализация OLAP

Благодаря высокой скорости сканирования и агрегации BigQuery является одним из стандартных решений для оперативной аналитической обработки (OLAP). Система поддерживает возможности «звёздной» и «снежинки» схем, разрезание (partitioning) по дате или по целым числам, кластеризацию по нескольким ключам для оптимизации запросов.

Хранение и анализ логов

Сервис часто используется для централизованного сбора и анализа логов приложений, операционных систем и сетевых устройств. Применяется в распределённых системах трассировки (distributed tracing), анализа ошибок (error analysis) и мониторинга производительности.

Ограничения и критика

Безопасность и управление доступом

BigQuery предоставляет механизмы на основе ролей (IAM). Пользователи могут быть наделены ролями: bigquery.dataViewer (чтение данных), bigquery.dataEditor (запись/изменение), bigquery.jobUser (выполнение запросов), bigquery.admin (полный доступ). Доступ на уровне строк (row-level security) обеспечивается с помощью политик на основе тегов или ключей. Поддерживается шифрование данных на стороне хранилища (в состоянии покоя) и при передаче (TLS). Организации могут использовать собственные ключи шифрования (CMEK) для соответствия требованиям.

Альтернативы

На рынке облачных хранилищ данных BigQuery конкурирует с:

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →