В этой статье мы рассмотрим сервисы 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:
Я должен упомянуть еще пару сервисов.
- Google Cloud Compute Engine предоставляет виртуальным машинам любую производительность.
- Google CloudSQL - это облачное решение для размещения баз данных MySQL и PostgreSQL. Имеет встроенное вертикальное и горизонтальное масштабирование, брандмауэр, шифрование, резервное копирование и другие преимущества использования облачных решений. Имеет терабайтную емкость. Поддерживает сложные запросы и транзакции
- Google Cloud Spanner - это полностью управляемая, масштабируемая служба реляционной базы данных. Поддержка SQL-запросов, автоматической репликации, транзакций. Емкость в петабайтах. Лучше всего подходит для крупномасштабных приложений баз данных, в которых хранится более пары терабайт данных. Это база данных OLTP.
- Google StackDriver отслеживает службы и инфраструктуру Google, а также ваше приложение, размещенное в GCP.
- Cloud Datalab - это способ визуализировать и исследовать ваши данные. Эта служба предоставляет облачный способ размещения записных книжек Python Jupiter.
- Google Cloud AutoML и Google AI Platform позволяют обучать и размещать высококачественные пользовательские модели машинного обучения с минимальными усилиями.
Заключение
Теперь вы знакомы с основными службами обработки данных, которые предоставляет GCP. Эти знания могут помочь вам создать хорошее решение для работы с данными. Конечно, облака - не панацея, и в случае, если вы используете облака неправильно, это может сильно повлиять на ваш ежемесячный биллинг инфраструктуры.
Итак, очень тщательно выстраивайте архитектуру своего предложения и выбирайте необходимые вам услуги для достижения необходимых бизнес-целей. Изучите все преимущества и ограничения для каждого конкретного случая. Позаботьтесь о затратах. И, конечно же, помните о масштабируемости, надежности и ремонтопригодности вашего решения.
Полезные ссылки:
Если вы хотите узнать больше, вы можете просмотреть следующее:
- Продукты Google Big Data https://cloud.google.com/products/big-data/
- Решения Google для больших данных https://cloud.google.com/solutions/big-data/
- Лаборатории инженерии данных на QwikLabs: https://www.qwiklabs.com/quests/25
- Курсы Google Data Engineering на Coursera: https://www.coursera.org/professional-certificates/gcp-data-engineering#courses
- Примеры архитектуры больших данных https://gcp.solutions/workload/Big%20Data