API de SQL distribuida de Azure Cosmos DB for PostgreSQL

SE APLICA A: Azure Cosmos DB for PostgreSQL (con tecnología de la extensión de base de datos de Citus en PostgreSQL)

Azure Cosmos DB for PostgreSQL incluye características más allá de la instancia estándar de PostgreSQL. A continuación, se muestra una referencia por categorías de funciones y opciones de configuración para:

  • Paralelizar la ejecución de consultas entre particiones.
  • Administrar los datos de las particiones entre varios servidores.
  • Comprimir los datos con el almacenamiento en columnas.
  • Automatizar la creación de particiones de series temporales

Funciones de SQL

Particionamiento

Nombre Descripción
alter_distributed_table Cambiar la columna de distribución, el recuento de particiones o las propiedades de coubicación de una tabla distribuida
citus_copy_shard_placement Reparar una ubicación de partición inactiva mediante datos de una ubicación correcta
citus_schema_distribute Convertir un esquema de PostgreSQL en un esquema distribuido
citus_schema_undistribute Deshacer la acción de citus_schema_distribute
create_distributed_table Convertir una tabla de PostgreSQL en una tabla distribuida (con particiones)
create_reference_table Mantener copias completas de una tabla sincronizadas en todos los nodos
citus_add_local_table_to_metadata Agregar una tabla local a los metadatos para habilitar la consulta desde cualquier nodo
isolate_tenant_to_new_shard Crear una partición que contiene filas con un valor único específico en la columna de distribución
truncate_local_data_after_distributing_table Truncar todas las filas locales después de distribuir una tabla
undistribute_table Deshacer la acción de create_distributed_table o create_reference_table

Reequilibrio de particiones

Nombre Descripción
citus_add_rebalance_strategy Anexar una fila a pg_dist_rebalance_strategy
citus_move_shard_placement Normalmente se usa de forma indirecta durante el reequilibrio de particiones, en lugar de que la llame directamente un administrador de bases de datos.
citus_set_default_rebalance_strategy Cambiar la estrategia denominada por su argumento para que sea la opción predeterminada elegida al reequilibrar particiones
get_rebalance_progress Supervisar los movimientos planeados y ejecutados por rebalance_table_shards
get_rebalance_table_shards_plan Generar la salida de los movimientos de particiones planeados de rebalance_table_shards sin ejecutarlos
rebalance_table_shards Mover las particiones de la tabla dada para distribuirlas uniformemente entre los roles de trabajo

Colocación

Nombre Descripción
create_distributed_function Hacer que la función se ejecute en los roles de trabajo cerca de las particiones coubicadas
update_distributed_table_colocation Actualizar o interrumpir la coubicación de una tabla distribuida

Almacenamiento en columnas

Nombre Descripción
alter_columnar_table_set Cambiar la configuración de una tabla en columnas
alter_table_set_access_method Convertir una tabla entre el almacenamiento en columnas o en montones

Creación de particiones de series temporales

Nombre Descripción
alter_old_partitions_set_access_method Cambiar el método de almacenamiento de las particiones
create_time_partitions Crear particiones de un intervalo determinado para cubrir un intervalo de tiempo determinado
drop_old_time_partitions Quitar todas las particiones cuyos intervalos están antes de una marca de tiempo determinada

Informativo

Nombre Descripción
citus_get_active_worker_nodes Obtener los nombres de host y los números de puerto de los roles de trabajo activos
citus_relation_size Obtener el espacio en disco que usan todas las particiones de la tabla distribuida especificada
citus_remote_connection_stats Mostrar el número de conexiones activas a cada nodo remoto
citus_stat_statements_reset Quitar todas las filas de citus_stat_statements
citus_table_size Obtener el espacio en disco que usan todas las particiones de la tabla distribuida especificada, excepto los índices
citus_total_relation_size Obtener el espacio total en disco utilizado por todas las particiones de la tabla distribuida especificada, incluidos todos los índices y los datos TOAST
column_to_column_name Traducir la columna partkey de pg_dist_partition en un nombre de columna de texto
get_shard_id_for_distribution_column Buscar el identificador de partición asociado a un valor de la columna de distribución

Parámetros del servidor

Ejecución de consultas

Nombre Descripción
citus.all_modifications_commutative Permitir que todos los comandos reclamen un bloqueo compartido
citus.count_distinct_error_rate Optimizar la tasa de errores del recuento aproximado de postgresql-hll
citus.enable_repartition_joins Permitir instrucciones JOIN realizadas en columnas que no son de distribución
citus.enable_repartitioned_insert_select Permitir volver a particionar filas de la instrucción SELECT y transferirlas entre los roles de trabajo para la inserción
citus.limit_clause_row_fetch_count Número de filas que se van a capturar por tarea para la optimización de las cláusulas de límite
citus.local_table_join_policy Dónde se mueven los datos al realizar una combinación entre tablas locales y distribuidas
citus.multi_shard_commit_protocol Protocolo de confirmación que se va a usar al ejecutar COPY en una tabla con distribución por hash
citus.propagate_set_commands Qué comandos SET se propagan desde el coordinador a los roles de trabajo
citus.create_object_propagation Comportamiento de las instrucciones CREATE en transacciones para objetos admitidos
citus.use_citus_managed_tables Permite acceder a tablas locales en consultas de nodo de trabajo

Informativo

Nombre Descripción
citus.explain_all_tasks Hacer que la salida de EXPLAIN muestre todas las tareas
citus.explain_analyze_sort_method Método de ordenación de las tareas en la salida de EXPLAIN ANALYZE
citus.log_remote_commands Consultas de registro que el coordinador envía a los nodos de trabajo
citus.multi_task_query_log_level Nivel de registro para cualquier consulta que genere más de una tarea
citus.stat_statements_max Número máximo de filas que se van a almacenar en citus_stat_statements
citus.stat_statements_purge_interval Frecuencia con la que el demonio de mantenimiento quita de citus_stat_statements los registros que no son coincidentes en pg_stat_statements
citus.stat_statements_track Habilitar o deshabilitar el seguimiento de instrucciones
citus.show_shards_for_app_name_prefixes Permite mostrar particiones para los clientes seleccionados que quieran verlas
citus.override_table_visibility Habilitar o deshabilitar la ocultación de particiones

Administración de conexiones entre nodos

Nombre Descripción
citus.executor_slow_start_interval Tiempo de espera, en milisegundos, entre la apertura de conexiones al mismo nodo de trabajo
citus.force_max_query_parallelization Abrir tantas conexiones como sea posible
citus.max_adaptive_executor_pool_size Número máximo de conexiones de rol de trabajo por sesión
citus.max_cached_conns_per_worker Número de conexiones que se mantienen abiertas para acelerar los comandos posteriores
citus.node_connection_timeout Duración máxima (en milisegundos) que se debe esperar para el establecimiento de la conexión

Transferencia de datos

Nombre Descripción
citus.enable_binary_protocol Usar el formato de serialización binaria de PostgreSQL (si procede) para transferir datos con los roles de trabajo
citus.max_intermediate_result_size Tamaño, en KB, de los resultados intermedios para las CTE y las consultas secundarias que no se pueden insertar

Deadlock

Nombre Descripción
citus.distributed_deadlock_detection_factor Tiempo de espera antes de comprobar los interbloqueos distribuidos
citus.log_distributed_deadlock_detection Indica si se va a registrar el procesamiento relacionado con la detección de interbloqueos distribuidos en el registro del servidor

Tablas del sistema

El nodo de coordinación contiene vistas y tablas de metadatos para ayudarle a ver las propiedades de los datos y la actividad de consultas en el clúster.

Nombre Descripción
citus_dist_stat_activity Consultas distribuidas que se ejecutan en todos los nodos
citus_lock_waits Consultas bloqueadas en todo el clúster
citus_shards Ubicación de cada partición, tipo de tabla a la que pertenece y su tamaño
citus_stat_statements Estadísticas sobre cómo se ejecutan las consultas y para quién
citus_tables Resumen de todas las tablas distribuidas y de referencia
citus_worker_stat_activity Consultas en roles de trabajo, incluidas las tareas en particiones individuales
pg_dist_colocation Qué particiones de tablas se deben colocar juntas
pg_dist_node Información sobre los nodos de trabajo en el clúster
pg_dist_object Objetos, como los tipos y las funciones, que se han creado en el nodo de coordinación y se han propagado a los nodos de trabajo
pg_dist_placement Ubicación de las réplicas de particiones en los nodos de trabajo
pg_dist_rebalance_strategy Estrategias que puede usar rebalance_table_shards para determinar dónde mover particiones
pg_dist_shard Tabla, columna de distribución e intervalos de valores para cada partición
time_partitions Información sobre cada partición administrada por funciones como create_time_partitions y drop_old_time_partitions

Pasos siguientes