Распределенный API SQL для PostgreSQL в Azure Cosmos DB
Область применения: Azure Cosmos DB для PostgreSQL (на базе расширения базы данных Citus до PostgreSQL)
Azure Cosmos DB for PostgreSQL включает функции, выходящие за рамки стандартного PostgreSQL. Ниже приведен упорядоченный справочник по функциям и параметрам конфигурации для следующих задач:
- Распараллеливание выполнения запросов по сегментам
- Управление сегментированными данными между несколькими серверами
- Сжатие данных с помощью хранилища на базе столбцов
- Автоматизация секционирования временных рядов
Функции SQL
Сегментирование
Имя | Описание |
---|---|
alter_distributed_table | Изменение столбца распределения, числа сегментов или свойств совместного размещения распределенной таблицы |
citus_copy_shard_placement | Восстановление неактивного размещения сегментов с использованием данных из работоспособного размещения |
citus_schema_distribute | Преобразование схемы PostgreSQL в распределенную схему |
citus_schema_undistribute | Отмена действия citus_schema_distribute |
create_distributed_table | Преобразование таблицы PostgreSQL в распределенную (сегментированную) таблицу |
create_reference_table | Обеспечение синхронизации полных копий таблицы на всех узлах |
citus_add_local_table_to_metadata | Добавление локальной таблицы в метаданные для включения запроса с любого узла |
isolate_tenant_to_new_shard | Создание сегмента для хранения строк с конкретным отдельным значением в столбце распределения |
truncate_local_data_after_distributing_table | Усечение всех локальных строк после распределения таблицы |
undistribute_table | Отмена действия create_distributed_table или create_reference_table |
Повторная балансировка сегментов
Имя | Описание |
---|---|
citus_add_rebalance_strategy | Добавление строки в pg_dist_rebalance_strategy |
citus_move_shard_placement | Обычно используется неявно при повторной балансировке сегментов, а не вызывается напрямую администратором базы данных |
citus_set_default_rebalance_strategy | Задание стратегии, указанной ее аргументом, как стратегии по умолчанию, которая будет выбираться при повторной балансировке сегментов |
get_rebalance_progress | Отслеживание перемещений, запланированных и выполняемых функцией rebalance_table_shards |
get_rebalance_table_shards_plan | Вывод запланированных перемещений сегментов rebalance_table_shards без их выполнения |
rebalance_table_shards | Перемещение сегментов заданной таблицы для равномерного их распределения между рабочими узлами |
Совместное размещение
Имя | Описание |
---|---|
create_distributed_function | Выполнение функции на рабочих узлах рядом с совместно размещенными сегментами |
update_distributed_table_colocation | Изменение или прерывание совместного размещения распределенной таблицы |
Хранение данных по столбцам
Имя | Описание |
---|---|
alter_columnar_table_set | Изменение параметров в таблице на основе столбцов |
alter_table_set_access_method | Преобразование таблицы между кучей или хранилищем столбцов |
Секционирование временных рядов
Имя | Описание |
---|---|
alter_old_partitions_set_access_method | Изменение метода хранения секций |
create_time_partitions | Создание секций заданного интервала для покрытия определенного диапазона времени |
drop_old_time_partitions | Удаление всех секций, интервалы которых выходят за рамки заданной метки времени |
Информационный
Имя | Описание |
---|---|
citus_get_active_worker_nodes | Получение имен узла и номеров портов активных рабочих узлов |
citus_relation_size | Возвращает дисковое пространство, используемое всеми сегментами указанной распределенной таблицы |
citus_remote_connection_stats | Число активных соединений к каждому удаленному узлу |
citus_stat_statements_reset | Удаление всех строк из citus_stat_statements |
citus_table_size | Возвращает дисковое пространство, используемое всеми сегментами указанной распределенной таблицы, за исключением индексов |
citus_total_relation_size | Возвращает общее дисковое пространство, используемое всеми сегментами указанной распределенной таблицы, включая все индексы и данные TOAST |
column_to_column_name | Преобразование столбца partkey таблицы pg_dist_partition в имя текстового столбца |
get_shard_id_for_distribution_column | Поиск идентификатора сегмента, связанного со значением столбца распределения |
Параметры сервера
Выполнение запросов
Имя | Описание |
---|---|
citus.all_modifications_commutative | Разрешение всем командам запрашивать совмещаемую блокировку |
citus.count_distinct_error_rate | Настройка частоты ошибок для приблизительного подсчета postgresql-hll |
citus.enable_repartition_joins | Разрешение операций JOIN, выполняемых не со столбцами распределения |
citus.enable_repartitioned_insert_select | Разрешение повторного секционирования строки из инструкции SELECT и их передачи между рабочими узлами для вставки |
citus.limit_clause_row_fetch_count | Количество строк для выборки на каждую задачу для оптимизации предложения limit |
citus.local_table_join_policy | Место для перемещения данных при создании соединения между локальными и распределенными таблицами |
citus.multi_shard_commit_protocol | Протокол фиксации для использования при выполнении операции COPY в распределенной хэш-таблице |
citus.propagate_set_commands | Определяет, какие команды SET распространяются от координатора к рабочим узлам |
citus.create_object_propagation | Поведение инструкций CREATE в транзакциях для поддерживаемых объектов |
citus.use_citus_managed_tables | Разрешение доступа к локальным таблицам в запросах рабочего узла |
Информационный
Имя | Описание |
---|---|
citus.explain_all_tasks | Отображение всех задач в выходных данных EXPLAIN |
citus.explain_analyze_sort_method | Метод сортировки задач в выходных данных EXPLAIN ANALYZE |
citus.log_remote_commands | Запись запросов, которые координатор отправляет на рабочие узлы |
citus.multi_task_query_log_level | Уровень ведения журнала для любого запроса, который создает больше одной задачи |
citus.stat_statements_max | Максимальное число строк, сохраняемых в citus_stat_statements |
citus.stat_statements_purge_interval | Частота, с которой управляющая программа обслуживания удаляет записи из citus_stat_statements , которые не совпадают в pg_stat_statements |
citus.stat_statements_track | Включение или отключение отслеживания инструкций |
citus.show_shards_for_app_name_prefixes | Позволяет отображать сегменты для выбранных клиентов, которые хотят их просмотреть |
citus.override_table_visibility | Включение и отключение скрытия сегментов |
Управление подключениями между узлами
Имя | Описание |
---|---|
citus.executor_slow_start_interval | Время ожидания в миллисекундах между открытием подключений к одному и тому же рабочему узлу |
citus.force_max_query_parallelization | Открытие максимально возможного числа подключений |
citus.max_adaptive_executor_pool_size | Максимальное число подключений рабочих узлов на сеанс |
citus.max_cached_conns_per_worker | Количество соединений, остающихся открытыми для ускорения последующих команд |
citus.node_connection_timeout | Максимальная продолжительность (в миллисекундах) для ожидания установления соединения |
Передача данных
Имя | Описание |
---|---|
citus.enable_binary_protocol | Использование формата двоичной сериализации PostgreSQL (если применимо) для перемещения данных с рабочими узлами |
citus.max_intermediate_result_size | Размер (в КБ) промежуточных результатов для CTE и вложенных запросов, которые не могут быть переданы |
Deadlock
Имя | Описание |
---|---|
citus.distributed_deadlock_detection_factor | Время ожидания перед проверкой распределенных взаимоблокировок |
citus.log_distributed_deadlock_detection | Указание того, следует ли записывать в журнал на сервере обработку, связанную с обнаружением распределенной взаимоблокировки |
Системные таблицы
Узел координатора содержит таблицы метаданных и представления для просмотра свойств данных и действий запросов в кластере.
Имя | Описание |
---|---|
citus_dist_stat_activity | Распределенные запросы, выполняемые на всех узлах |
citus_lock_waits | Запросы, заблокированные во всем кластере |
citus_shards | Расположение каждого сегмента, тип таблицы, к которой он принадлежит, и его размер |
citus_stat_statements | Статистика по выполнению запросов и объектам, к которым они обращены |
citus_tables | Сводка по всем распределенным и ссылочным таблицам |
citus_worker_stat_activity | Запросы к рабочим узлам, включая задачи по отдельным сегментам |
pg_dist_colocation | Указание того, какие сегменты таблиц следует расположить вместе |
pg_dist_node | Сведения о рабочих узлах в кластере |
pg_dist_object | Объекты, такие как типы и функции, которые были созданы на узле-координаторе и распространены на рабочие узлы |
pg_dist_placement | Расположение реплик сегментов на рабочих узлах |
pg_dist_rebalance_strategy | Стратегии, с помощью которых rebalance_table_shards определяет место для перемещения сегментов |
pg_dist_shard | Таблица, столбец распределения и диапазоны значений для каждого сегмента |
time_partitions | Сведения о каждой секции, управляемой такими функциями, как create_time_partitions и drop_old_time_partitions |
Следующие шаги
- См. дополнительные сведения о некоторых полезных диагностических запросах.
- Изучите список параметров конфигурации в базовой базе данных PostgreSQL.