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
- 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.