Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
- Obtenga información sobre algunas consultas de diagnóstico útiles.
- Revise la lista de parámetros de configuración de la base de datos PostgreSQL subyacente.