Compartir a través de


API de SQL distribuida de Azure Cosmos DB for PostgreSQL

Importante

Azure Cosmos DB para PostgreSQL se encuentra en una ruta de retirada y ya no se recomienda para los nuevos proyectos. En su lugar, use uno de estos dos servicios:

  • Para cargas de trabajo de PostgreSQL : use la característica Clústeres elásticos de Azure Database For PostgreSQL para usar las características de PostgreSQL distribuidas y de escalabilidad horizontal contenidas en la extensión Citus de código abierto.

  • En el caso de las cargas de trabajo NoSQL , use Azure Cosmos DB para NoSQL para una solución de base de datos distribuida que incluya un contrato de nivel de servicio de disponibilidad (SLA) de 99.999%, escalabilidad automática instantánea y conmutación automática por error en varias regiones.

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