Выгрузка данных из Greenplum с GPSS

Greenplum для разработчика и дата-инженера примеры курсы обучение, GPSS Greenplum выгрузка данных, разработчик Greenplum, использование Greenplum, Школа Больших Данных Учебный Центр Коммерсант

Почему потоковый сервер Greenplum выгружает данные во внешние системы пакетно: тонкости утилиты gpfdist и YAML-файла конфигурации выгрузки. Возможности и ограничения GPSS-сервера при выгрузке данных во внешние системы из MPP-СУБД.

Потоковый сервер Greenplum

Ключевым отличием Greenplum от PostgreSQL является поддержка механизма массово-параллельной обработки, благодаря чему эта MPP-СУБД относится к стеку Big Data. Для этого в Greeplum есть целый ряд архитектурных решений и административных утилит. Одним из таких инструментов, обеспечивающего работу с большими объемами данных, является потоковый сервер Greenplum (GPSS, Greenplum Streaming Server). Он представляет собой gRPC-сервер, определение службы которого включает операции и сообщения, необходимые для подключения к VMware Greenplum и проверки метаданных Greenplum.

Экземпляр GPSS-сервера принимает потоковые данные от одного или нескольких клиентов, используя внешние таблицы Greenplum для преобразования и вставки данных в целевую таблицу. Источник данных и формат данных зависят от клиента. Также можно выгрузить данные из базы данных Greenplum в файл, используя доступные для записи внешние таблицы. Определение службы gRPC-сервер GPSS также включает операции и сообщения, необходимые для записи данных от клиента в таблицу VMware Greenplum.

Интеграция с внешними источниками данных, например, Apache NiFi, Kafka, RabbitMQ, S3-совместимое объектное хранилище, и пр. реализуется с помощью gPRC. Взаимодействие GPSS-сервера с сегментами кластера Greenplum, т.е. узлами, на которых непосредственно хранятся данные, реализуется по протоколу HTTP. С файловыми и объектными хранилищами GPSS-сервера взаимодействует по протоколам, которые поддерживают эти внешние системы.

Greenplum Streaming Server
Greenplum Streaming Server

О том, как GPSS-сервер позволяет организовать массовую загрузку данных в Greenplum из внешних источников, мы уже писали здесь. А сейчас рассмотрим обратный процесс, т.е. выгрузку данных и файлов из этой MPP-БД.

Выгрузка данных

Потоковый сервер Greenplum предоставляет платформу для поддержки нескольких заданий, используя протокол утилиты gpfdist для подключения к Greenplum и многопоточную архитектуру этой базы данных. Утилита gpfdist – это программа файлового сервера, которая использует протокол HTTP, чтобы параллельно обслуживать внешние файлы данных для сегментов Greenplum. Экземпляр gpfdist может обрабатывать 200 МБ/с. При этом многие процессы gpfdist выполняются одновременно, каждый из которых обслуживает часть данных, подлежащих загрузке.

Чтобы указать, какие данные, из каких таблиц, материализованных представлений и других запросов нужно выгрузить во внешнюю систему, следует запустить команду клиента GPSS-сервер gpsscli load с названием YAML-файла, где прописана конфигурация выгрузки. Этот файл формата YAML версии 3 имеет четкую спецификацию разделов и ограниченный список ключевых слок, которые можно использовать, чтобы задать параметры, которые идентифицируют исходные таблицы или запросы, а также информация о подключении к базе данных и расположении целевого файла с выгруженными из базы данными. Также можно настроить размер пакета для выгрузки в файлы, поскольку GPSS-сервер извлекает данные из Greenplum, сохраняет их в своей памяти как файлы. Еще можно задать количество строк, которые необходимо получить перед записью на диск и интервал в миллисекундах с момента последней записи в файл. Чем больше эти параметры, тем больший объем данных одновременно сбрасывается на диск, что повышает выгрузку. Для управления частотой и интервалом перезапуска заданий выгрузки есть опция, которая также позволяет отправлять уведомления, когда задание остановлено. Можно использовать эту опцию для подсчета количества выгруженных строк или записи любой другой статистики о задании.

Утилита gpsscli обрабатывает ключевые слова YAML-файла конфигурации по порядку, используя отступы (пробелы) для определения иерархии документа и связей между разделами. Регистр ключевых слов не имеет значения, а вот отступы очень важны. Впрочем, чувствительность к отступам характерна для любого инструмента, работающего с форматом YMAL, например, SwaggerEditor или AsyncAPI Studio тоже выдают ошибки при нарушении отступов в YMAL-спецификациях синхронного и асинхронного API.

Потоковый сервер Greenplum позволяет выгрузить из базы данных информацию в CSV- или JSON-файл на хосте, где работает сам GPSS. Этот метод поддерживает следующие функции:

  • поддержка нескольких запросов для получения данных из базы, чтобы выгруженные данные были результатом их объединения;
  • фильтрация и сопоставление столбцов;
  • поддержка спецсимволов, включая разделители, кавычки, знак новой строки и заголовок столбца для целевого файла;
  • возможность создания более одного файла с выгруженными данными;
  • поддержка других функций YAML-файла конфигурации, включая расписание, задачи, оповещения.

Целевой URL-адрес должен указывать на местоположение на том же хосте, где работает потоковый сервер Greenplum. Он не должен указывать на имя удаленного хоста или IP-адрес. Если нужно выгрузить данные из базы данных на удаленный URL-адрес или хост, следует там запустить GPSS-сервер.

Если исходная таблица слишком велика для выгрузки в один файл, можно создать несколько заданий выгрузки, чтобы разделить большие файлы на более мелкие части. Причем эти задания можно запускать параллельно. При этом инкрементальная выгрузка данных не поддерживается, возможна только полная выгрузка. Однако, с помощью запросов можно разделить большие таблицы на разделы, например, используя дату в качестве стратегии партиционирования. Таким образом, GPSS может отдельно выгружать в файлы самые последние данные. Поскольку Greenplum Streaming Server использует этот gpfdist-протокол, данные выгружаются непосредственно из сегментов в файлы в пакетном режиме. Из-за этого невозможно гарантировать порядок данных в разных сегментах.

Освойте администрирование и эксплуатацию Greenplum для аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Источники

  1. https://docs.vmware.com/en/VMware-Greenplum-Streaming-Server/index.html
  2. https://docs.vmware.com/en/VMware-Greenplum-Streaming-Server/1.11/greenplum-streaming-server/unloading-gpss.html
  3. https://docs.vmware.com/en/VMware-Greenplum-Streaming-Server/1.11/greenplum-streaming-server/file-unload-file-yaml-v3.html
Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.
Поиск по сайту