В этой статье мы рассмотрим сервисы Google Cloud, которые могут помочь вам создавать отличные приложения для больших данных.

Google Cloud Platform предоставляет множество различных сервисов, которые покрывают все популярные потребности в данных и приложениях для больших данных. Все эти сервисы интегрированы с другими продуктами Google Cloud, и у всех есть свои плюсы и минусы. В этой статье мы рассмотрим, какие услуги GCP может предложить для данных и приложений Big Data, что они делают, какие преимущества и ограничения имеют, какова ценовая стратегия каждой услуги и какие есть альтернативы.

Cloud PubSub

Cloud PubSub - это брокер очередей сообщений, который позволяет приложениям надежно, быстро и асинхронно обмениваться сообщениями. На основе модели публикации-подписки.

На следующей диаграмме описан основной поток PubSub. Приложения издателя публикуют сообщения в теме PubSub; тема отправляет сообщения в подписки PubSub; в подписках хранятся сообщения; приложения-подписчики читают сообщения из подписок.

Преимущества

  • Высоконадежный коммуникационный уровень
  • Высокая емкость

Ограничения:

  • Максимальный размер одного сообщения - 10 МБ.
  • 10 МБ - это максимальный размер для одного запроса, это означает, что в случае, если нам нужно отправить 10 сообщений на запрос, средний максимальный размер для каждого сообщения будет 1 МБ.
  • Максимальный размер значения атрибута - 1 МБ.

Стратегия ценообразования:

Вы платите за передаваемые данные за ГБ.

Аналоги и альтернативы:

  • Апач Кафка
  • RabbitMQ
  • Amazon SQS
  • Служебная шина Azure
  • и есть много других брокеров сообщений с открытым исходным кодом

Google Cloud IoT Core

Cloud IoT Core - это реестр устройств Интернета вещей. Этот сервис позволяет подключать устройства к Google Cloud Platform, получать сообщения с устройств и отправлять сообщения на устройства. Для получения сообщений с устройств IoT Core использует Google PubSub.

Преимущества:

  • Протоколы передачи MQTT и HTTPS
  • Безопасное подключение и управление устройством

Стратегия ценообразования:

Вы платите за объем данных, передаваемых через эту услугу.

Аналоги и альтернативы:

  • AWS IoT Core
  • Azure IoT

Cloud Dataproc

Cloud Dataproc - это более быстрый, простой и экономичный способ запуска Apache Spark и Apache Hadoop в Google Cloud. Cloud Dataproc - это облачное решение, которое охватывает все операции, связанные с развертыванием кластеров Spark или Hadoop и управлением ими. Проще говоря, с помощью Dataproc вы можете создать кластер экземпляров, динамически изменять размер кластера, настраивать его и запускать там задания MapReduce.

Преимущества:

  • Очень быстрое развертывание
  • Полностью управляемый сервис, а это значит, что вам нужен только правильный код, никаких операций
  • Динамически изменять размер кластера
  • Автомасштабирование

Ограничения:

  • Нет возможности выбрать конкретную версию используемого фреймворка.
  • Вы не можете приостановить / остановить кластер Data Proc для экономии денег, только удалите кластер. Это можно сделать через Cloud Composer
  • Вы не можете выбрать менеджер кластера, только YARN

Стратегия ценообразования:

Вы платите за каждый использованный экземпляр с некоторой доплатой. GCP выставляет счет за каждую минуту работы кластера.

Аналоги и альтернативы:

  • Настройка кластера на виртуальных машинах
  • Amazon EMR
  • Azure HDInsight

Облачный поток данных

Cloud Dataflow - это управляемый сервис для разработки и выполнения широкого спектра шаблонов обработки данных, включая ETL, пакетную обработку, потоковую обработку и т. Д. Dataflow используется для построения конвейеров данных. Этот сервис основан на Apache Beam и поддерживает задания Python и Java.

Преимущества:

  • Сочетает пакетную и потоковую передачу с помощью единого API
  • Очень быстрое развертывание
  • Полностью управляемая услуга, без операционной работы
  • Динамическая перебалансировка работы
  • Автомасштабирование

Ограничения:

  • Основано на одном решении, поэтому наследует все ограничения Apache Beam.
  • Максимальный размер значения одного элемента в Streaming Engine составляет 100 МБ.

Стратегия ценообразования:

Счета за задания Cloud Dataflow выставляются посекундно в зависимости от фактического использования Cloud Dataflow.

Аналоги и альтернативы:

  • Настроить кластер на виртуальных машинах и запустить Apache Beam через встроенный бегун
  • Насколько я знаю, у других облачных провайдеров аналогов нет

Google Cloud Dataprep

Dataprep - это инструмент для визуализации, изучения и подготовки данных, с которыми вы работаете. Вы можете создавать конвейеры для ETL ваших данных для разных хранилищ. И делать это на простом и понятном веб-интерфейсе.

Например, вы можете использовать Dataprep для создания конвейера ETL для извлечения необработанных данных из GCS, очистки этих данных, преобразования в необходимое представление и загрузки данных в BigQuery. Кроме того, вы можете запланировать ежедневное / еженедельное / другое задание, которое будет запускать этот конвейер для новых необработанных данных.

Преимущества:

  • Упростите строительство трубопроводов ETL
  • Обеспечьте понятный и удобный веб-интерфейс
  • Автоматизируйте большую часть ручной работы для инженеров по данным
  • Встроенный планировщик
  • Для выполнения заданий ETL Dataprep использует Google Dataflow.

Ограничения:

  • Работает только с BigQuery и GCS

Стратегия ценообразования:

За хранение данных вы платите за хранение данных. За выполнение заданий ETL вы платите за Google Dataflow.

Cloud Composer

Cloud Composer - это служба оркестровки рабочих процессов для управления обработкой данных. Cloud Composer - это облачный интерфейс для Apache Airflow. Composer позволяет автоматизировать задания ETL, например, может создавать кластер Dataproc, выполнять преобразования извлеченных данных (через задание Dataproc PySpark), загружать результаты в BigQuery и затем выключать кластер Dataproc.

Преимущества

  • Заполняет пробелы в других решениях GCP, таких как Dataproc
  • Наследует все преимущества Apache Airflow

Ограничения:

  • Предоставляет веб-интерфейс Airflow на общедоступном IP-адресе
  • Наследует все ограничения Apache Airflow

Стратегия ценообразования:

Вы платите только за ресурсы, на которых развернут Composer. Но Composer будет развернут до 3-х экземпляров.

Аналоги и альтернативы:

  • Пользовательский развернутый Apache Airflow
  • Другое решение с открытым исходным кодом для оркестровки

BigQuery

BigQuery - это хранилище данных.

BigQuery позволяет нам хранить и запрашивать массивные наборы данных размером до сотен петабайт. BigQuery хорошо знаком с базами данных отношений по своей структуре, он имеет структуру таблиц, использует SQL, также поддерживает пакетную и потоковую запись в базу данных, интегрирован со всеми сервисами GCP, включая Dataflow, Apache Spark, Apache Hadoop и т. Д. Лучше всего использовать в интерактивных очередях и офлайн-аналитике.

Преимущества:

  • Огромная емкость, до сотен петабайт
  • SQL
  • Пакетная и потоковая запись
  • Поддержка сложных запросов
  • встроенный ML (пока просто-глупо)
  • Бессерверный
  • Общие наборы данных - вы можете обмениваться наборами данных между разными проектами
  • Глобальные местоположения
  • Все популярные инструменты обработки данных имеют интерфейсы к BigQuery.

Ограничения:

  • Не поддерживает транзакции, но кому нужны переходы в решении OLAP
  • Максимальный размер строки 10Мб

Стратегия ценообразования:

Вы платите отдельно за хранимую информацию (за каждый Гб) и за выполненные запросы.

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

Аналоги и альтернативы:

  • Амазонка Redshift
  • Azure Cosmos DB

Облако BigTable

Google Cloud BigTable - это служба базы данных больших данных NoSQL от Google. Это та же база данных, которая используется во многих основных сервисах Google, включая поиск, аналитику, карты и Gmail. Bigtable предназначен для обработки огромных рабочих нагрузок с неизменно низкой задержкой и высокой пропускной способностью, поэтому это отличный выбор как для операционных, так и для аналитических приложений, включая Интернет вещей, пользовательскую аналитику и анализ финансовых данных.

Cloud Bigtable на базе Apache HBase.

Эта база данных имеет очень большую емкость и ее рекомендуется использовать, если у вас есть данные более терабайта. BigTable лучше всего подходит для данных временных рядов и данных Интернета вещей.

Преимущества

  • Имеет хорошую производительность для данных объемом 1 ТБ и более.
  • Изменение размера кластера без простоев
  • Невероятная масштабируемость
  • Поддержка API Apache HBase

Ограничения:

  • Очень плохая производительность на данных менее 300 Гб
  • Не подходит для реального времени
  • Не поддерживает операции ACID
  • Максимальный размер одного значения - 100 Мб.
  • Максимальный размер всех значений в строке - 256 Мб.
  • Максимальный размер жесткого диска - 8 Тб на узел.
  • Минимум 3 узла в кластере

Стратегия ценообразования:

BigTable стоит очень дорого. Вы платите и за узлы (минимум 0,65 доллара в час за узел), и за емкость хранилища (минимум 26 долларов за терабайт в месяц).

Аналоги и альтернативы:

  • настраиваемый развернутый Apache HBase

Облачное хранилище

GCS - это хранилище BLOB-объектов для файлов. Здесь вы можете хранить любое количество файлов любого размера.

Преимущества:

  • Хороший API для всех популярных языков программирования и операционных систем.
  • Неизменяемые файлы
  • Версии файлов
  • Подходит для файлов любого размера
  • Подходит для любого количества файлов
  • Etcetera

Стратегия ценообразования:

У GCS есть несколько тарифных планов. В стандартном плане вы платите за 1 ГБ сохраненных данных.

Аналоги и альтернативы:

  • Amazon S3
  • Хранилище BLOB-объектов Azure

Другие облачные сервисы Google:

Я должен упомянуть еще пару сервисов.

  1. Google Cloud Compute Engine предоставляет виртуальным машинам любую производительность.
  2. Google CloudSQL - это облачное решение для размещения баз данных MySQL и PostgreSQL. Имеет встроенное вертикальное и горизонтальное масштабирование, брандмауэр, шифрование, резервное копирование и другие преимущества использования облачных решений. Имеет терабайтную емкость. Поддерживает сложные запросы и транзакции
  3. Google Cloud Spanner - это полностью управляемая, масштабируемая служба реляционной базы данных. Поддержка SQL-запросов, автоматической репликации, транзакций. Емкость в петабайтах. Лучше всего подходит для крупномасштабных приложений баз данных, в которых хранится более пары терабайт данных. Это база данных OLTP.
  4. Google StackDriver отслеживает службы и инфраструктуру Google, а также ваше приложение, размещенное в GCP.
  5. Cloud Datalab - это способ визуализировать и исследовать ваши данные. Эта служба предоставляет облачный способ размещения записных книжек Python Jupiter.
  6. Google Cloud AutoML и Google AI Platform позволяют обучать и размещать высококачественные пользовательские модели машинного обучения с минимальными усилиями.

Заключение

Теперь вы знакомы с основными службами обработки данных, которые предоставляет GCP. Эти знания могут помочь вам создать хорошее решение для работы с данными. Конечно, облака - не панацея, и в случае, если вы используете облака неправильно, это может сильно повлиять на ваш ежемесячный биллинг инфраструктуры.

Итак, очень тщательно выстраивайте архитектуру своего предложения и выбирайте необходимые вам услуги для достижения необходимых бизнес-целей. Изучите все преимущества и ограничения для каждого конкретного случая. Позаботьтесь о затратах. И, конечно же, помните о масштабируемости, надежности и ремонтопригодности вашего решения.

Полезные ссылки:

Если вы хотите узнать больше, вы можете просмотреть следующее: