Специально для обучения дата-инженеров и архитекторов DWH сегодня разберем, как построить LakeHouse на Greenplum и объектном хранилище Cloudian HyperStore, совместимом с AWS S3. Что такое Cloudian HyperStore Object Storage, как оно совмещается с Greenplum и при чем здесь Apache Cassandra с интеграционным фреймворком PXF.
Что такое объектное хранилище Cloudian HyperStore
Сегодня все больше компаний уходят от локальных BI-системы на базе внутренних DWH к облачным платформам аналитики больших данных, которые напрямую подключаются к озерам данных на AWS S3 и других подобных объектных хранилищах. Такая сервисная модель делает анализ данных более гибким, обеспечивая масштабируемость и снижение затрат на инфраструктуру. Такая гибридная архитектура объединения хранилища данных с озером называется Data Lakehouse, о чем мы писали здесь и здесь.
Реализовать архитектуру Lakehouse в локальной корпоративной среде можно на основе MPP-СУБД Greenplum и облачного объектного хранилища Cloudian HyperStore, которое полностью совместимо с S3. Это хранилище основано на мощной NoSQL-СУБД Apache Cassandra, которая используется для хранения метаданных объекта, данных учетной записи пользователя и данных об использовании сервиса. При этом данные Cassandra не хранятся на дисках данных HyperStore, а метаданные реплицируются в соответствии с политикой хранилища. Размещение и репликация объектов S3 в кластере HyperStore основаны на схеме консистентного кэширования, которая использует пространство целочисленных токенов в диапазоне от 0 до 2127 -1, которые назначаются узлам HyperStore. Для каждого объекта S3 по мере его загрузки в хранилище рассчитывается хэш. Объект сохраняется в узле с наименьшим значением токена, которое больше или равно значению хэша объекта. Репликация реализуется как сохранение объекта на узлах с токенами, имеющими минимально большее значение.
В отличие от классического хранилища на базе Cassandra с консистентным хэшированием, где один токен присваивается одному физическому узлу, в Cloudian HyperStore каждому физическому хосту присваивается больше токенов (максимум 256). По сути, кластер хранилища состоит из очень большого количества «виртуальных узлов» с большим количеством токенов на каждом физическом хосте. Каждый диск на хосте отвечает за свой набор реплик объектов. Сбой на диске затронет только расположенные на нем реплики объектов, а другие диски на хосте продолжат работать, обеспечивая отказоустойчивость и надежное хранение данных.
Аналитическая MPP-СУБД Greenplum интегрируется c платформами хранения данных с помощью интеграционного фреймворка PXF, который мы рассматривали здесь и здесь. PXF представляет собой расширение базы данных, позволяющее выполнять параллельный высокопроизводительный доступ к данным и федеративные запросы к связанным наборам данных во внешнем хранилище, с основных серверных узлов Greenplum. Это намного сокращает время выполнения SQL-запросов, т.к. их можно выполнять сразу на месте, без передачи данных по сети. Коннекторы PXF обеспечивают интеграцию Greenplum с Hadoop HDFS, AWS S3 и другими хранилищами данных. А поскольку Cloudian Hyperstore Object Storage является 100% совместимым с AWS S3, неудивительно, что именно PXF реализует взаимодействие этого хранилища данных с Greenplum. Как это настроить в рамках организации Lakehouse, мы рассмотрим далее.
Подключение Greenplum к хранилищу Cloudian HyperStore
Чтобы подключить Greenplum к Cloudian HyperStore, надо настроить файл cloudian-site.xml в PXF, указав URL-адрес конечной точки клиента S3, ключ доступа и секретный ключ. Отредактированный файл следует сохранить файл в директории $PXF_HOME/servers/cloudian.
В заключение отметим, что Cloudian HyperStore может развертываться локально, а не в облаке, что означает физическую близость с кластером Greenplum, позволяя напрямую взаимодействовать через высокоскоростную сеть.
После подключения можно работать с хранилищем данных Cloudian HyperStore средствами Greenplum. Например, рассмотрим, как быстро анализировать данные, непосредственно находящиеся в S3-озере Cloudian HyperStore. Данные загружаются из различных источников данных непосредственно в одну или несколько корзин, совместимых с S3. Как обычно, в случае работы с Greenplum, нужно создать внешнюю таблицу, куда будут вставлены данные для анализа.
Для этого создадим WRITABLE EXTERNAL TABLE “pxf_ext_tbl_cloudian_w”, связанную с cloudian:
- SERVER указывает на имя сервера в папке $PXF_HOME/servers/;
- greenplum – это название корзины;
- cloudian_test – имя папки.
- filetxt – это не файл, а подпапка cloudian_test.
И вставим данные в эту внешнюю таблицу.
Для чтения данных создадим другую внешнюю таблицу pxf_ext_tbl_cloudian_r, связанную с cloudian. Теперь Greenplum, используя PXF, может выполнять массовый параллельный высокопроизводительный доступ и запросы к этим данным из таблицы pxf_ext_tbl_cloudian_r.
Результаты этих запросов также могут храниться в корзинах S3, чтобы другие пользователи могли быстро получить к ним доступ.
В заключение отметим, что для защиты данных от потери можно использовать утилиты резервного копирования и восстановления Greenplum, которые могут применять Cloudian Object Store в качестве репозитория для резервных копий и мгновенного доступа для быстрого восстановления. Благодаря распределенному характеру архитектур Greenplum и Cloudian Hyperstore эти процессы резервного копирования и восстановления могут выполняться несколькими параллельными потоками. Это повышает производительность и эффективность, обеспечивая малые значения метрик эксплуатационной надежности RPO и RTO для оперативного восстановления.
Кроме того, Cloudian Hyperstore может реплицировать данные между разными ЦОД, дополнительно повышая отказоустойчивость корпоративных решений хранения и аналитики больших данных.
Узнайте больше про администрирование и эксплуатацию Greenplum и Arenadata DB для эффективного хранения и аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
Источники