Greenplum 7: краткий обзор бета-релиза

Greenplum 7 бета-релиз новинки обзор примеры курсы обучение, курсы Greenplum, обучение Greenplum, обучение Arenadata DB курсы, Greenplum для инженеров данных и архитекторов СУБД, Greenplum особенности хранения данных, хранение и аналитика больших данных с Greenplum, курсы NoSQL, обучение NoSQL, Школа Больших Данных Учебный центр Коммерсант

Мы уже писали про некоторые новинки свежего релиза Greenplum 7 здесь и здесь. Разбираемся, что еще полезного появилось в бета-версии, выпущенной 15 декабря 2022 года. А также рассмотрим, каковы ограничения этого выпуска и почему его пока нельзя использовать в production.

Новые функции PostgreSQL

Помимо возможности применения команды ALTER TABLE к уже заполненным таблицам, включая Append Only, за счет новых методов доступа и поддержки уникальных индексов в AO-таблицах, в свежем релизе, появилось еще много новых функций. Справедливости ради стоит отметить, что на начало января Greenplum 7 еще находится в статусе бета-релиза и пока не рекомендуется для производственного использования. Однако, ИТ-архитектору и дата-инженеру полезно ознакомиться с изменениями этой MPP-СУБД даже на этом этапе.

Итак, VMware Greenplum 7 включает в себя несколько новых функций из версий PostgreSQL с 9.5 по 12, на которой базируется эта MPP-СУБД, что мы рассматривали здесь:

  • повышена скорость сортировки символьных, текстовых и числовых полей;
  • добавлена поддержка функций array_position() и array_positions();
  • введена поддержка SQL-операции INSERT … ON CONFLICT UPDATE, которая подобна UPSERT, но обрабатывает конфликты между одновременными изменениями данных в таблице. Впрочем, это пока не поддерживается оптимизатором GPORCA или AO-таблицами;
  • добавлена поддержка безопасности на уровне строк, реализующая истинный контроль доступа к данным для каждой строки и каждого столбца. Администратор базы данных теперь может устанавливать политики безопасности, которые фильтруют, какие строки разрешено обновлять или просматривать определенным пользователям.
  • утилита pg_resetxlog была переименована в pg_resetwal, которая очищает журнал упреждающей записи (WAL, Write Ahead Log) и может сбросить некоторую другую управляющую информацию в файле pg_control;
  • общий список свободных хэш-таблиц разделен, чтобы уменьшить конкуренцию на серверах с несколькими процессорными сокетами;
  • повышена производительность при использовании атомарных операций вместо спин-блокировки для защиты очереди ожидания LWLock;
  • разрешена установка и отмена разрешений по умолчанию для схем с помощью команды ALTER DEFAULT PRIVILEGES;
  • добавлена поддержка синтаксиса декларативного разделения таблиц PostgreSQL;
  • разрешено удаление нескольких функций, операторов и агрегатов с помощью одной команды DROP;
  • введена поддержка хранимых процедур SQL со встроенными транзакциями;
  • снижена нагрузка на WAL при построении индекса GiST, GIN или SP-GiST – теперь для них требуется меньше места на диске, а данные воспроизводятся быстрее во время восстановления;
  • добавлена поддержка JSON в указании путей на элементы, которые необходимо извлечь из данных, аналогично выражениям XPath для доступа SQL к XML;
  • введена поддержка сгенерированных столбцов STORED, содержимое которых вычисляется из выражений, включая ссылки на другие столбцы в той же таблице, а не задаются командами INSERT или UPDATE. Но такие столбцы нельзя использовать в качестве ключа распределения в Greenplum;
  • добавлена поддержка разрешения некоторым DDL-командам принимать текущего пользователя (CURRENT_USER) или пользователя сеанса (SESSION_USER) вместо определенного имени пользователя;
  • команды CREATE/ALTER USER … PASSWORD больше не поддерживают опцию UNENCRYPTED;
  • введена поддержка определения расширенной статистики для нескольких столбцов с наиболее распространенным значением (MCV) (через CREATE STATISTICS) для создания лучших планов для SQL-запросов, которые проверяют несколько неравномерно распределенных столбцов. Однако, это пока не поддерживается планировщиком GPORCA;
  • введена поддержка автоматического (но переопределяемого) встраивания общих табличных выражений (CTE), если они не имеют побочных эффектов, не являются рекурсивными и в запросе на них ссылаются только один раз. Можно предотвратить встраивание, указав MATERIALIZED, или принудительно встроить CTE с множественными ссылками, указав NOT MATERIALIZED. В предыдущих релизах Greenplum выражения CTE никогда не были встроенными и всегда оценивались перед остальной частью SQL-запроса.
  • добавлена поддержка индексов BRIN (Block Range INdexes), хотя оптимизатор GPORCA пока не поддерживает полный набор типов данных BRIN, поддерживаемых планировщиком PostgreSQL;
  • добавлена поддержка хэш-индексов с планировщиком PostgreSQL, но пока еще без поддержки GPORCA;
  • встроенная функция полнотекстового поиска теперь может искать фразы (несколько соседних слов), которые появляются рядом друг с другом в определенном порядке или с заданным расстоянием между словами;
  • Greenplum теперь поддерживает команду ALTER TABLE SET DISTRIBUTED BY для внешних таблиц, но их содержимое должно удовлетворять правилам DISTRIBUTED BY;
  • оконные функции теперь поддерживают все параметры кадрирования, показанные в стандарте SQL:2011, включая RANGE, PRECEDING/FOLLOWING, режим GROUPS и расширенные параметры исключения фреймов.

Новые возможности сервера СУБД

Как уже было отмечено ранее, Greenplum 7 теперь включает новый параметр конфигурации сервера, default_table_access_method, который определяет метод доступа к таблице по умолчанию, когда команда CREATE TABLE явно не указывает метод доступа. SQL-команда CREATE TABLE теперь поддерживает указание метода доступа к таблице с помощью нового условия USING <access method>. Это позволяет динамически обновлять метод доступа к таблице с помощью команды ALTER TABLE, используя команду) SET ACCESS METHOD <access_method>.

Также можно динамически обновлять целый ряд параметров хранения для таблицы с помощью команды ALTER TABLE и менять кодировку столбцов таблицы AOCO. Также в AO-таблицах теперь поддерживаются уникальные индексы, ограничения и первичные ключи.

Еще Greenplum теперь включает новый параметр конфигурации сервера, enable_partition_pruning, который включает или отключает возможность планировщика запросов исключать разделы партиционированной таблицы из планов запросов. А новая функция gp_toolkit.__gp_aoblkdir(regclass) позволяет получить записи каталога блоков для индексированной AO-таблицы.

Оптимизатор запросов GPORCA теперь поддерживает набор результатов группировки CUBE, а также планирование и выполнение запросов с несколькими наборами группировок.

По сравнению с версией 6, в Greenplum 7 изменен размер кэша последовательности по умолчанию с 1 (без кэша) на 20, чтобы повысить производительность операций вставки в таблицы, которые определены с последовательным типом данных с использованием значения последовательности. Однако, при работе с кэшем порядковых номеров Greenplum может отбросить некоторые кэшированные значения последовательности. Чтобы избежать этого, рекомендуется явно установить CACHE 1 при создании последовательности.

Изменился синтаксис CPUSET для резервирования ядер ЦП для группы ресурсов: теперь он требует отдельных спецификаций ядер для хоста-координатора и хостов-сегментов. При использовании CPUSET с CREATE RESOURCE GROUP или ALTER RESOURCE GROUP надо сначала настроить ядра для хоста-координатора, а затем сегментировать хосты, используя точку с запятой для их разделения.

Утилита резервного копирования gpscp была переименована в gpsync и теперь принимает новую опцию -a, чтобы синхронизировать исходный и целевой каталоги в режиме архивации. А параметр конфигурации сервера автоочистки теперь включен по умолчанию для всех баз данных.

Функциональность курсора параллельного извлечения, доступная в модуле gp_parallel_retrieve_cursor в Greenplum 6, в 7-ой версии встроена по умолчанию. А команда pg_tables больше не включает в свой вывод внешние таблицы.

В VMware Greenplum 7.0 удалены утилиты gpsys1, createlang и droplang, которые ранее считались устаревшими, опция —skip_root_stats., а также агенты сбора данных gpperfmon, переменная ARRAY_NAME и параметры CREATEUSER/NOCREATEUSER из команды CREATE ROLE и родственных команд. Также удалены следующие параметры конфигурации сервера: debug_latch, gp_eager_dqa_pruning, gp_eager_one_phase_agg, gp_enable_exchange_default_partition, gp_enable_gpperfmon, gp_enable_sort_distinct, gp_gpperfmon_send_interval, gp_hashagg_streambottom, gp_perfmon_print_packet_info, gpperfmon_log_alert_level, gpperfmon_port, max_appendonly_tables, optimizer_enable_dml_triggers, password_hash_algorithm.

Еще в 7-ой версии VMware Greenplum удалены следующие таблицы и представления системного каталога: pg_partition_columns, pg_partition_encoding, pg_partition_rule, pg_partition_template, pg_stat_partition_operations.

Проблемы и ограничения VMware Greenplum 7

В заключение  отметим ряд известных проблем и ограничений свежего выпуска этой MPP-СУБД. Из-за статуса бета-релиза  пока нельзя обновить предыдущую основную версию до Greenplum 7 Beta, а многие утилиты и расширения еще не поддерживаются в этой версии. Сюда относятся gppkg, Diskquota, IP4R, HLL, TIMESTAMP9, pl/container, pl/java, Madlib, PostGIS, pgbouncer, gpcopy, расширенная проверка пароля, GreenplumPython , PL/R, PXF, коннекторы Spark, NiFi, GemFire, Kafka, центр управления и сборщик метрик, WLM, сервер потоковой передачи, драйверы ODBC и JDBC, GreenplumR, пакеты Data Science, gpmt, восстановление кластера, gp_filedump, gpst, обновления и облачные предложения Greenplum.

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

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

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://docs.vmware.com/en/VMware-Tanzu-Greenplum/7/greenplum-database/GUID-relnotes-release-notes.html
Поиск по сайту