Todos los productos
Search
Centro de documentos

Hologres:Query Queue

Última actualización: Sep 05, 2026

Hologres V3.0 y versiones posteriores admiten la función Cola de consultas para el procesamiento ordenado de solicitudes, el balanceo de carga y la gestión de recursos. Esta función garantiza la estabilidad del sistema y mejora la eficiencia de respuesta, especialmente en escenarios de alta concurrencia.

Introducción

De forma predeterminada, las instancias de Hologres procesan las solicitudes sin control de concurrencia. El coordinador del motor asigna recursos a medida que llegan las solicitudes. Con la función Cola de consultas, las solicitudes SQL se comparan con reglas de clasificador configuradas y se enrutan a colas de consultas específicas. Es posible establecer la concurrencia máxima para cada cola. Cuando una cola alcanza su límite, las nuevas solicitudes esperan, lo que garantiza una asignación controlada de recursos y evita la sobrecarga.

image

Notas importantes

  • En las instancias de uso general, configuraciones como las colas de consultas y los optimizadores se aplican a nivel de instancia. En las instancias de almacén virtual, estas configuraciones se aplican a nivel de almacén virtual. Si una instancia tiene varias bases de datos, la configuración de la cola de consultas y del optimizador se aplica a todas ellas.

  • Esta función solo está disponible para instancias de uso general y de almacén virtual de Hologres V3.0 o posterior.

    Nota

    Si su instancia es V2.2 o anterior, upgrade the instance o get online support for upgrade.

  • A partir de Hologres V3.0.10, puede enrutar todas las consultas SQL de una cola de consultas a recursos de Serverless Computing. Esta cola de consultas ya no está restringida por configuraciones de concurrencia ni de espera en cola.

  • Cada instancia de uso general y cada almacén virtual dentro de una instancia de almacén virtual cuenta con una cola de consultas predeterminada llamada default_queue, la cual no tiene restricciones de concurrencia ni tamaño máximo de cola.

    • No es posible crear clasificadores para default_queue. Solo se pueden configurar sus propiedades.

    • default_queue gestiona todas las solicitudes que no coinciden con otras colas de consultas.

  • Cada instancia de uso general y cada almacén virtual admite hasta 10 colas de consultas, incluida default_queue. Cada cola de consultas puede tener hasta 10 clasificadores.

  • No es posible habilitar la Cola de consultas de forma independiente en una instancia secundaria de solo lectura. No obstante, las reglas de la cola de consultas de la instancia principal se aplican a la instancia secundaria.

  • Solo las consultas con un engine_type de HQE, PQE, SQE o HiveQE coinciden con las colas de consultas. Los tipos de consulta compatibles incluyen SELECT, INSERT, UPDATE, DELETE e INSERT desde COPY y CTAS.

  • Las consultas aceleradas por Fixed Plan no entran en la cola de consultas. Para obtener más información, consulte Use Fixed Plan to accelerate SQL execution.

  • Un clasificador puede pertenecer únicamente a una cola de consultas, pero una cola de consultas puede tener varios clasificadores.

Procedimiento

Crear una cola de consultas

  • Sintaxis

    • Instancia de uso general

      CALL hg_create_query_queue (query_queue_name, max_concurrency, max_queue_size);
    • Instancia de almacén virtual

      CALL hg_create_query_queue (warehouse_name, query_queue_name, max_concurrency, max_queue_size);
  • Descripción de parámetros

    • warehouse_name: Opcional. Nombre del almacén virtual. Si no especifica este parámetro, la cola de consultas se crea en el almacén virtual de la conexión actual de forma predeterminada.

      Nota

      Este parámetro es obligatorio solo para instancias de almacén virtual.

    • query_queue_name: Obligatorio. Nombre de la cola de consultas. El nombre debe ser único dentro de la instancia o almacén virtual actual.

    • max_concurrency: Opcional. Concurrencia máxima. El valor predeterminado es -1, lo que indica que no hay límite de concurrencia. El valor debe estar en el rango [-1, 2147483647).

    • max_queue_size: Opcional. Tamaño máximo de la cola. Este parámetro especifica el número máximo de sentencias SQL que pueden ponerse en cola. El valor predeterminado es -1, lo que indica que el tamaño de la cola es ilimitado. El valor debe estar en el rango [-1, 2147483647).

    Nota

    Al crear una cola de consultas, puede configurar las propiedades anteriores. Para obtener información sobre cómo configurar otras propiedades, consulte Set query queue properties.

  • Ejemplos

    • Instancia de uso general

      -- Create a query queue named insert_queue and set the maximum concurrency to 10. The concurrency parameter does not require single quotation marks.
      CALL hg_create_query_queue ('insert_queue', 10);
    • Instancia de almacén virtual

      -- In the init_warehouse virtual warehouse, create a query queue named insert_queue and set the maximum concurrency to 10.
      CALL hg_create_query_queue ('init_warehouse', 'insert_queue', 10);

Crear un clasificador

  • Sintaxis

    • Instancia de uso general

      CALL hg_create_classifier (query_queue_name, classifier_name, priority);
    • Instancia de almacén virtual

      CALL hg_create_classifier (warehouse_name, query_queue_name, classifier_name, priority);
  • Descripción de parámetros

    • warehouse_name: Opcional. Nombre del almacén virtual. Si no especifica este parámetro, se utiliza el almacén virtual de la conexión actual de forma predeterminada.

      Nota

      Este parámetro solo aplica a instancias de almacén virtual.

    • query_queue_name: Obligatorio. Nombre de la cola de consultas para la cual desea crear un clasificador.

    • classifier_name: Obligatorio. Nombre del clasificador. El nombre debe ser único dentro de la instancia o almacén virtual actual.

    • priority: Opcional. Prioridad de coincidencia del clasificador. Un valor mayor indica una prioridad más alta. El valor predeterminado es 50. El valor debe estar en el rango [1, 100]. Si no especifica este parámetro al crear el clasificador, podrá configurarlo posteriormente. Para obtener más información, consulte Set classifier properties.

      Nota
      • Los clasificadores con mayor prioridad se evalúan primero.

      • Si varios clasificadores tienen la misma prioridad, se evalúan según el orden lexicográfico de sus nombres de cola de consultas y clasificador. El clasificador cuyo nombre aparezca primero en orden lexicográfico se evaluará antes. Por ejemplo, queue_a(classifier_1) tiene mayor prioridad que queue_b(classifier_1).

  • Ejemplos

    • Instancia de uso general

      -- In the insert_queue query queue, create a classifier named classifier_insert with a matching priority of 20. Note that the priority parameter does not require single quotation marks.
      CALL hg_create_classifier ('insert_queue', 'classifier_insert', 20);
    • Instancia de almacén virtual

      -- In the insert_queue query queue of the init_warehouse virtual warehouse, create a classifier named classifier_insert with a matching priority of 20.
      CALL hg_create_classifier ('init_warehouse', 'insert_queue', 'classifier_insert', 20);

Configurar condiciones del clasificador

Al configurar las condiciones del clasificador, puede enrutar sentencias SQL específicas a colas de consultas particulares. Si una consulta cumple con la condición de un clasificador, se colocará en la cola de consultas de dicho clasificador.

  • Sintaxis

    • Instancia de uso general

      CALL hg_set_classifier_rule_condition_value (query_queue_name, classifier_name, condition_name, condition_value);
    • Instancia de almacén virtual

      CALL hg_set_classifier_rule_condition_value (warehouse_name, query_queue_name, classifier_name, condition_name, condition_value);
  • Descripción de parámetros

    Nombre

    Descripción

    warehouse_name

    Opcional. Nombre del almacén virtual. Si no configura este parámetro, se utiliza el almacén virtual de la conexión actual de forma predeterminada.

    Nota

    Debe configurar este parámetro únicamente para instancias de almacén virtual.

    query_queue_name

    Obligatorio. Nombre de la cola de consultas.

    classifier_name

    Obligatorio. Nombre del clasificador al que desea agregar una regla de coincidencia.

    condition_name y condition_value

    Obligatorio. Las condiciones admitidas son:

    • user_name: UID de la cuenta actual.

    • command_tag: Tipo de solicitud. Valores válidos: INSERT, SELECT, UPDATE y DELETE.

      Para mejorar la eficiencia de ejecución de las operaciones COPY, Hologres implementa dichas operaciones mediante COPY utilizando INSERT. Por lo tanto, cuando se limita la concurrencia de las operaciones INSERT, también se ve afectada la concurrencia de escritura de las operaciones COPY.

    • db_name: Nombre de la base de datos.

    • engine_type: Motor utilizado por la solicitud. Valores válidos: HQE, PQE, SQE y HiveQE. Se recomienda utilizar esta propiedad a partir de Hologres V3.1.18.

    • digest: Huella digital SQL. Para obtener más información sobre las huellas digitales SQL, consulte SQL fingerprints.

    • application_name: Aplicación que inició la consulta. Esta propiedad solo es compatible con Hologres V3.0.9 y versiones posteriores.

    • storage_mode: Modo de almacenamiento. Valores válidos: hot y cold. Se recomienda utilizar esta propiedad a partir de Hologres V3.1.18 o V3.1.8.

    • write_table: Tabla de destino de la consulta. El formato es <db_name>.<schema_name>.<table_name>. Esta propiedad solo es compatible con Hologres V3.1 y versiones posteriores.

    • read_table: Tabla de origen de la consulta. Esta propiedad solo es compatible con Hologres V3.1 y versiones posteriores.

    Los clasificadores admiten múltiples condiciones, y cada condición puede aceptar un conjunto de valores. A partir de Hologres V3.1.18, se admiten reglas avanzadas de clasificador. Tenga en cuenta lo siguiente:

    • Relación entre condiciones:

      • Lógica AND: Cuando un clasificador tiene múltiples condiciones (por ejemplo, user_name Y command_tag), una consulta debe cumplir todas ellas para entrar en la cola de ese clasificador.

      • Lógica OR: Para lograr una relación "OR" (donde una consulta coincide si cumple cualquiera de varios criterios), cree varios clasificadores separados, cada uno con una condición.

    • Coincidencia de múltiples valores dentro de una condición

      • Coincidencia de subconjunto (⊆): Para condiciones como user_name, command_tag, db_name, digest, application_name. Los valores de la consulta deben ser un subconjunto de los valores aceptables.

      • Coincidencia exacta (==): Para storage_mode. Los valores de la consulta deben coincidir exactamente con los valores aceptables.

      • Coincidencia de intersección (∩): Para engine_type, write_table, read_table. La consulta debe compartir al menos un valor con los valores aceptables.

    Nota
    • Configure las condiciones de filtro una por una. Si el valor de la condición distingue entre mayúsculas y minúsculas, enciérrelo entre comillas dobles ("").

    • Si una condición acepta un conjunto de valores, configúrela varias veces. Por ejemplo, si un clasificador necesita coincidir con solicitudes donde command_tag sea SELECT o INSERT, ejecute dos sentencias SQL para establecer las reglas.

  • Ejemplos

    Los siguientes ejemplos utilizan una instancia de almacén virtual. Para una instancia de uso general, omita el primer parámetro de entrada. Cree una cola de consultas llamada test_queue para el almacén virtual predeterminado init_warehouse:

    CALL hg_create_query_queue ('init_warehouse', 'test_queue');
    • Ejemplo 1: Enrutar una consulta a la cola de consultas test_queue si la consulta es enviada por el usuario p4_123 o p4_456, o si su huella digital SQL es xxx o yyy.

      -- Because an OR relationship is required between the user and SQL fingerprint properties, you must configure two classifiers.
      
      -- Create a classifier named classifier_user and attach it to the test_queue query queue.
      CALL hg_create_classifier ('init_warehouse', 'test_queue', 'classifier_user');
      -- Set matching rules based on the user property. Queries from user "p4_123" or "p4_456" will hit this classifier.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_user', 'user_name', 'p4_123');
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_user', 'user_name', 'p4_456');
      
      -- Create a classifier named classifier_digest and attach it to the test_queue query queue.
      CALL hg_create_classifier ('init_warehouse', 'test_queue', 'classifier_digest');
      -- Set matching rules based on the SQL fingerprint property. Queries with SQL fingerprint "xxx" or "yyy" will hit this classifier.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_user', 'digest', 'xxx');
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_user', 'digest', 'yyy');
    • Ejemplo 2: Enrutar una consulta a la cola de consultas test_queue si la consulta es iniciada por la aplicación xx_bi y accede tanto a almacenamiento frío como caliente.

      -- Because an AND relationship is required between the application and storage class properties, define both properties within the same classifier.
      
      -- Create a classifier named classifier_3 and attach it to the test_queue query queue.
      CALL hg_create_classifier ('init_warehouse', 'test_queue', 'classifier_3');
      -- Set a condition based on the application property.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_3', 'application_name', 'xx_bi');
      -- Set a condition based on the storage class. Set both "hot" and "cold" rules. A query must access both cold and hot storage to match.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_3', 'storage_mode', 'hot');
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_3', 'storage_mode', 'cold');
    • Ejemplo 3: Enrutar todas las solicitudes que acceden a datos de almacenamiento frío a la cola de consultas test_queue.

      -- Because the storage class value requires an exact match, requests that "access any cold storage data" must be split into the following two classifiers. The request only needs to match one of them.
      
      -- Create a classifier named classifier_cold_1 and attach it to the test_queue query queue.
      CALL hg_create_classifier ('init_warehouse', 'test_queue', 'classifier_cold_1');
      -- Queries where storage_mode is only 'cold' enter this queue.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_cold_1', 'storage_mode', 'cold');
      
      -- Create a classifier named classifier_cold_2 and attach it to the test_queue query queue.
      CALL hg_create_classifier ('init_warehouse', 'test_queue', 'classifier_cold_2');
      -- Queries where storage_mode includes both 'hot' and 'cold' enter this queue.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_cold_2', 'storage_mode', 'hot');
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_cold_2', 'storage_mode', 'cold');
    • Ejemplo 4: Enrutar todas las solicitudes que leen de la tabla a y escriben en la tabla b a la cola de consultas test_queue.

      -- Because an AND relationship is required between the read table and write table properties, define both properties within the same classifier.
      
      -- Create a classifier named classifier_table and attach it to the test_queue query queue.
      CALL hg_create_classifier ('init_warehouse', 'test_queue', 'classifier_table');
      -- Set a matching rule based on the read table. A request matches this rule if it reads data from table a, regardless of whether it reads from other tables.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_3', 'read_table', 'db_name.schema_name.a');
      -- Set a matching rule based on the write table. A request that writes to table b matches this rule.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_3', 'write_table', 'db_name.schema_name.b');

Capacidades avanzadas

Controlar consultas grandes

Para controlar el impacto de consultas grandes en una instancia, utilice colas de consultas para gestionar la duración de ejecución y los errores de falta de memoria (OOM). Para las consultas que superan la duración de ejecución especificada o el umbral de OOM, detenga la solicitud o vuelva a ejecutarla utilizando recursos de Serverless Computing.

Nota
  • Hologres V3.0 admite volver a ejecutar únicamente consultas SELECT. La versión V4.1 permite volver a ejecutar comandos nativos INSERT OVERWRITE, siempre que el parámetro GUC hg_enable_query_queue_rerun_insert_overwrite_via_serverless esté habilitado. Si utiliza FETCH para recuperar datos al volver a ejecutar una consulta, esta se vuelve a ejecutar basándose en las condiciones del clasificador de la cola de consultas configurada únicamente cuando FETCH no logra recuperar ningún dato. Este proceso garantiza la precisión de los resultados.

  • La ejecución real de una consulta incluye tres partes: optimization_cost (generación del plan de ejecución), start_query_cost (inicio de la consulta) y get_next_cost (ejecución de la consulta). Para obtener más información, consulte Get and analyze slow query logs. La Cola de consultas considera únicamente la duración de la parte get_next_cost. No considera el tiempo dedicado a esperar recursos o bloqueos.

  • Controlar la duración de ejecución

    Puede configurar el parámetro big_query_execution_time_threshold_sec para establecer la duración de ejecución en segundos (s). El valor predeterminado es -1, lo que indica que no hay límite. El valor debe estar en el rango [-1, 2147483647). Los siguientes ejemplos muestran cómo controlar las consultas según la duración de ejecución:

    • Escenario 1: Finalizar consultas que superan la duración de ejecución

      Las consultas que entran en la cola select_queue se ejecutan utilizando recursos locales. Si la duración de ejecución supera los 10 segundos, la consulta finaliza automáticamente.

      CALL hg_set_query_queue_property ('select_queue', 'big_query_execution_time_threshold_sec', '10');
    • Escenario 2: Volver a ejecutar consultas que superan la duración de ejecución

      Las consultas que entran en la cola select_queue se ejecutan utilizando recursos locales. Si la duración de ejecución supera los 10 segundos, la consulta finaliza automáticamente en los recursos de la instancia y se vuelve a ejecutar utilizando recursos de Serverless Computing.

      CALL hg_set_query_queue_property ('select_queue', 'big_query_execution_time_threshold_sec', '10');
      CALL hg_set_query_queue_property ('select_queue', 'enable_rerun_as_big_query_when_exceeded_execution_time_threshold', 'true');
      CALL hg_set_query_queue_property ('select_queue', 'rerun_big_query_on_computing_resource', 'serverless');
      Nota
      • enable_rerun_as_big_query_when_exceeded_execution_time_threshold: Especifica si se debe volver a ejecutar una solicitud SQL utilizando otros recursos después de que la solicitud haya finalizado por superar la duración de ejecución. El valor predeterminado es false.

      • rerun_big_query_on_computing_resource: Especifica el nombre del recurso de Serverless Computing que se utilizará para volver a ejecutar la solicitud SQL.

  • Volver a ejecutar consultas grandes que causan errores OOM

    Las consultas que entran en la cola select_queue se ejecutan utilizando recursos locales. Si una consulta provoca un error OOM y ocupa más de 10 GB de memoria en un solo worker, la consulta se vuelve a ejecutar utilizando recursos de Serverless Computing. El parámetro big_query_mem_threshold_when_oom_gb controla el umbral de memoria para consultas OOM. El valor predeterminado es -1, lo que indica que no hay límite. El valor debe estar en el rango [-1, 64). El siguiente código proporciona un ejemplo:

    CALL hg_set_query_queue_property ('select_queue', 'big_query_mem_threshold_when_oom_gb', '10');
    CALL hg_set_query_queue_property ('select_queue', 'enable_rerun_as_big_query_when_oom_exceeded_mem_threshold', 'true');
    CALL hg_set_query_queue_property ('select_queue', 'rerun_big_query_on_computing_resource', 'serverless');

Gestionar colas de consultas

Eliminar una cola de consultas

  • Sintaxis

    • Instancia de uso general

      CALL hg_drop_query_queue (query_queue_name);
    • Instancia de almacén virtual

      CALL hg_drop_query_queue (warehouse_name, query_queue_name);
  • Descripción de parámetros

    • warehouse_name: Opcional. Nombre del almacén virtual. Si no especifica este parámetro, se utiliza el almacén virtual de la conexión actual de forma predeterminada.

      Nota

      Este parámetro solo aplica a instancias de almacén virtual.

    • query_queue_name: Obligatorio. Nombre de la cola de consultas.

  • Ejemplos

  • Instancia de uso general

    -- Delete the insert_queue query queue.
    CALL hg_drop_query_queue ('insert_queue');
  • Instancia de almacén virtual

    -- In the init_warehouse virtual warehouse, delete the insert_queue query queue.
    CALL hg_drop_query_queue ('init_warehouse', 'insert_queue');

Eliminar propiedades de la cola de consultas

  • Sintaxis

    • Instancia de uso general

      CALL hg_remove_query_queue_property (query_queue_name, property_key);
    • Instancia de almacén virtual

      CALL hg_remove_query_queue_property (warehouse_name, query_queue_name, property_key);
  • Descripción de parámetros

    • warehouse_name: Opcional. Nombre del almacén virtual. Si no especifica este parámetro, se utiliza el almacén virtual de la conexión actual de forma predeterminada.

      Nota

      Este parámetro solo aplica a instancias de almacén virtual.

    • query_queue_name: Obligatorio. Nombre de la cola de consultas.

    • property_key: Obligatorio. Nombre de la propiedad. Las propiedades admitidas son max_concurrency, max_queue_size y queue_timeout_ms. Para obtener más información sobre las propiedades, consulte Set query queue properties.

  • Ejemplos

    • Instancia de uso general

      -- Delete the maximum concurrency property of the insert_queue query queue.
      CALL hg_remove_query_queue_property('insert_queue', 'max_concurrency');
      
      -- Delete the maximum queue size property of the insert_queue query queue.
      CALL hg_remove_query_queue_property('insert_queue', 'max_queue_size');
      
      -- Delete the maximum queue time property of the insert_queue query queue.
      CALL hg_remove_query_queue_property('insert_queue', 'queue_timeout_ms');
    • Instancia de almacén virtual

      -- In the init_warehouse virtual warehouse, delete the maximum concurrency property of the insert_queue query queue.
      CALL hg_remove_query_queue_property('init_warehouse', 'insert_queue', 'max_concurrency');
      
      -- In the init_warehouse virtual warehouse, delete the maximum queue size setting of the insert_queue query queue.
      CALL hg_remove_query_queue_property('init_warehouse', 'insert_queue', 'max_queue_size');
      
      -- In the init_warehouse virtual warehouse, delete the maximum queue time property of the insert_queue query queue.
      CALL hg_remove_query_queue_property('init_warehouse', 'insert_queue', 'queue_timeout_ms');

Consultar metadatos de la cola de consultas

Los metadatos de las colas de consultas se almacenan en la tabla del sistema hologres.hg_query_queues. Los campos principales se describen en la siguiente tabla:

Nombre del campo

Tipo de campo

Descripción

warehouse_id

INT

ID del almacén virtual.

Nota

Para instancias de General-purpose, el valor del campo warehouse_id es 0.

warehouse_name

TEXT

Nombre del almacén virtual.

Nota

Para instancias de General-purpose, warehouse_name está vacío.

query_queue_name

TEXT

Nombre de la cola de consultas.

property_key

TEXT

Nombre de la propiedad.

property_value

TEXT

Valor de la propiedad.

Establecer propiedades de la cola de consultas

  • Sintaxis

    • Instancia de uso general

      CALL hg_set_query_queue_property (query_queue_name, property_key, property_value);
    • Instancia de almacén virtual

      CALL hg_set_query_queue_property (warehouse_name, query_queue_name, property_key, property_value);
  • Descripción de parámetros

    • warehouse_name: Opcional. Nombre del almacén virtual cuyas propiedades de cola de consultas desea configurar. Si no especifica este parámetro, se utiliza el almacén virtual de la conexión actual de forma predeterminada.

      Nota

      Este parámetro es obligatorio solo para instancias de almacén virtual.

    • query_queue_name: Obligatorio. Nombre de la cola de consultas cuyas propiedades desea configurar.

    • property_key y property_value: Obligatorio. Las propiedades admitidas se describen a continuación:

      • max_concurrency: Concurrencia máxima. El valor predeterminado es -1, lo que indica que no hay límite de concurrencia. El valor debe estar en el rango [-1, 2147483647).

      • max_queue_size: Tamaño máximo de la cola. Este parámetro especifica el número máximo de sentencias SQL que pueden ponerse en cola. El valor predeterminado es -1, lo que indica que el tamaño de la cola es ilimitado. El valor debe estar en el rango [-1, 2147483647).

      • queue_timeout_ms: Duración máxima de espera en la cola en milisegundos (ms). Si una consulta espera en la cola durante un periodo superior a este valor, la consulta se detiene automáticamente. El valor predeterminado es -1, lo que indica que no hay límite en la duración de la cola. El valor debe estar en el rango [-1, 2147483647).

  • Ejemplos

    • Instancia de uso general

      -- Set the maximum concurrency of the insert_queue query queue to 15.
      CALL hg_set_query_queue_property('insert_queue', 'max_concurrency', '15');
      
      -- Set the maximum queue size of the insert_queue query queue to 15.
      CALL hg_set_query_queue_property('insert_queue', 'max_queue_size', '15');
      
      -- Set the maximum queue time of the insert_queue query queue to 3000 ms.
      CALL hg_set_query_queue_property('insert_queue', 'queue_timeout_ms', '3000');
    • Instancia de almacén virtual

      -- In the init_warehouse virtual warehouse, set the maximum concurrency of the insert_queue query queue to 15.
      CALL hg_set_query_queue_property('init_warehouse', 'insert_queue', 'max_concurrency', '15');
      
      -- In the init_warehouse virtual warehouse, set the maximum queue size of the insert_queue query queue to 15.
      CALL hg_set_query_queue_property('init_warehouse', 'insert_queue', 'max_queue_size', '15');
      
      -- In the init_warehouse virtual warehouse, set the maximum queue time of the insert_queue query queue to 3000 ms.
      CALL hg_set_query_queue_property('init_warehouse', 'insert_queue', 'queue_timeout_ms', '3000');

Borrar solicitudes en cola

  • Sintaxis

    • Instancia de uso general

      CALL hg_clear_query_queue (query_queue_name);
    • Instancia de almacén virtual

      CALL hg_clear_query_queue (warehouse_name, query_queue_name);
  • Descripción de parámetros

    • warehouse_name: Opcional. Nombre del almacén virtual. Si no especifica este parámetro, se utiliza el almacén virtual de la conexión actual de forma predeterminada.

      Nota

      Este parámetro es obligatorio solo para instancias de almacén virtual.

    • query_queue_name: Obligatorio. Nombre de la cola de consultas.

  • Ejemplos

    • Instancia de uso general

      -- Clear all queued requests in the select_queue query queue.
      CALL hg_clear_query_queue ('select_queue');
    • Instancia de almacén virtual

      -- In the init_warehouse virtual warehouse, clear all queued requests in the select_queue query queue.
      CALL hg_clear_query_queue ('init_warehouse', 'select_queue');

Gestión de clasificadores

Eliminar un clasificador

  • Sintaxis

    • Instancia de uso general

      CALL hg_drop_classifier (query_queue_name, classifier_name);
    • Instancia de virtual warehouse

      CALL hg_drop_classifier (warehouse_name, query_queue_name, classifier_name);
  • Descripción de parámetros

    • warehouse_name: Opcional. Nombre del virtual warehouse. Si no especifica este parámetro, se utiliza de forma predeterminada el virtual warehouse de la conexión actual.

      Nota

      Este parámetro es obligatorio solo para instancias de virtual warehouse.

    • query_queue_name: Obligatorio. Nombre de la cola de consultas para la que desea crear un clasificador.

    • classifier_name: Obligatorio. Nombre del clasificador.

  • Ejemplos

    • Instancia de uso general

      -- In the insert_queue query queue, delete the classifier_insert classifier.
      CALL hg_drop_classifier ('insert_queue', 'classifier_insert');
    • Instancia de virtual warehouse

      -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the classifier_insert classifier.
      CALL hg_drop_classifier ('init_warehouse', 'insert_queue', 'classifier_insert');

Quitar propiedades del clasificador

  • Sintaxis

    • Instancia de uso general

      CALL hg_remove_classifier_property (query_queue_name, classifier_name, property_key);
    • Instancia de virtual warehouse

      CALL hg_remove_classifier_property (warehouse_name, query_queue_name, classifier_name, property_key);
  • Descripción de parámetros

    • warehouse_name: Opcional. Nombre del virtual warehouse. Si no especifica este parámetro, se utiliza de forma predeterminada el virtual warehouse de la conexión actual.

      Nota

      Este parámetro es obligatorio solo para instancias de virtual warehouse.

    • query_queue_name: Obligatorio. Nombre de la cola de consultas.

    • classifier_name: Obligatorio. Nombre del clasificador.

    • property_key: Obligatorio. La propiedad compatible es priority. Para obtener más información sobre las propiedades del clasificador, consulte Set classifier properties.

  • Ejemplos

    • Instancia de uso general

      -- In the insert_queue query queue, delete the priority property of the classifier_insert classifier.
      CALL hg_remove_classifier_property ('insert_queue', 'classifier_insert', 'priority');
    • Instancia de virtual warehouse

      -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the priority property of the classifier_insert classifier.
      CALL hg_remove_classifier_property ('init_warehouse', 'insert_queue', 'classifier_insert', 'priority');

Establecer propiedades del clasificador

  • Sintaxis

    • Instancia de uso general

      CALL hg_set_classifier_property (query_queue_name, classifier_name, property_key, property_value);
    • Instancia de virtual warehouse

      CALL hg_set_classifier_property (warehouse_name, query_queue_name, classifier_name, property_key, property_value);
  • Descripción de parámetros

    • warehouse_name: Opcional. Nombre del virtual warehouse. Si no especifica este parámetro, se utiliza de forma predeterminada el virtual warehouse de la conexión actual.

      Nota

      Este parámetro es obligatorio solo para instancias de virtual warehouse.

    • query_queue_name: Obligatorio. Nombre de la cola de consultas.

    • classifier_name: Obligatorio. Nombre del clasificador.

    • property_key y property_value: Obligatorio. La propiedad compatible se describe a continuación:

      priority: Prioridad de coincidencia del clasificador. Un valor mayor indica una prioridad más alta. El valor predeterminado es 50. El valor debe estar en el rango [1, 100].

      Nota
      • Los clasificadores con mayor prioridad se evalúan primero.

      • Si varios clasificadores tienen la misma prioridad, se evalúan según el orden lexicográfico de sus nombres de cola de consultas y clasificador. El clasificador cuyo nombre aparece primero en orden lexicográfico se evalúa antes. Por ejemplo, queue_a(classifier_1) tiene mayor prioridad que queue_b(classifier_1).

  • Ejemplos

    • Instancia de uso general

      -- In the insert_queue query queue, set the priority of the classifier_insert classifier to 30.
      CALL hg_set_classifier_property ('insert_queue', 'classifier_insert', 'priority', '30');
    • Instancia de virtual warehouse

      -- In the insert_queue query queue of the init_warehouse virtual warehouse, set the priority of the classifier_insert classifier to 30.
      CALL hg_set_classifier_property ('init_warehouse', 'insert_queue', 'classifier_insert','priority', '30');

Quitar condiciones del clasificador

  • Quitar una condición (condition_name) de un clasificador

    • Sintaxis

      • Instancia de uso general

        CALL hg_remove_classifier_rule_condition_value (query_queue_name, classifier_name, condition_name, condition_value);
      • Instancia de virtual warehouse

        CALL hg_remove_classifier_rule_condition_value (warehouse_name, query_queue_name, classifier_name, condition_name, condition_value);
    • Descripción de parámetros

      • warehouse_name: Opcional. Nombre del virtual warehouse. Si no especifica este parámetro, se utiliza de forma predeterminada el virtual warehouse de la conexión actual.

        Nota

        Este parámetro es obligatorio solo para instancias de virtual warehouse.

      • query_queue_name: Obligatorio. Nombre de la cola de consultas.

      • classifier_name: Obligatorio. Nombre del clasificador.

      • condition_name y condition_value: Obligatorio. Nombre y valor de la condición que se va a quitar. Las condiciones compatibles son user_name, command_tag, db_name, engine_type, digest y storage_mode. Para obtener más información, consulte Configure classifier conditions.

    • Ejemplos

      • Instancia de uso general

        -- In the insert_queue query queue, delete the matching rule where command_tag is INSERT from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition_value ('insert_queue', 'classifier_insert', 'command_tag', 'INSERT');
        
        -- In the insert_queue query queue, delete the matching rule where user_name is p4_12345 from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition_value ('insert_queue', 'classifier_insert', 'user_name', 'p4_12345');
        
        -- In the insert_queue query queue, delete the matching rule where db_name is prd_db from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition_value ('insert_queue', 'classifier_insert', 'db_name', 'prd_db');
        
        -- In the insert_queue query queue, delete the matching rule where engine_type is HQE from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition_value ('insert_queue', 'classifier_insert', 'engine_type', 'HQE');
        
        -- In the insert_queue query queue, delete the matching rule where digest is md5edb3161000a003799a5d3f2656b70b4c from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition_value ('insert_queue', 'classifier_insert', 'digest', 'md5edb3161000a003799a5d3f2656b70b4c');
        
        -- In the insert_queue query queue, delete the matching rule where storage_mode is hot from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition_value ('insert_queue', 'classifier_insert', 'storage_mode', 'hot');
      • Instancia de virtual warehouse

        -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the matching rule where command_tag is INSERT from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition_value ('init_warehouse', 'insert_queue', 'classifier_insert', 'command_tag', 'INSERT');
        
        -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the matching rule where user_name is p4_12345 from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition_value ('init_warehouse', 'insert_queue', 'classifier_insert', 'user_name', 'p4_12345');
        
        -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the matching rule where db_name is prd_db from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition_value ('init_warehouse', 'insert_queue', 'classifier_insert', 'db_name', 'prd_db');
        
        -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the matching rule where engine_type is HQE from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition_value ('init_warehouse', 'insert_queue', 'classifier_insert', 'engine_type', 'HQE');
        
        -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the matching rule where digest is md5edb3161000a003799a5d3f2656b70b4c from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition_value ('init_warehouse', 'insert_queue', 'classifier_insert', 'digest', 'md5edb3161000a003799a5d3f2656b70b4c');
        
        -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the matching rule where storage_mode is hot from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition_value ('init_warehouse', 'insert_queue', 'classifier_insert', 'storage_mode', 'hot');
  • Quitar todas las condiciones (condition_name) de un clasificador

    • Sintaxis

      • Instancia de uso general

        CALL hg_remove_classifier_rule_condition (query_queue_name, classifier_name, condition_name);
      • Instancia de virtual warehouse

        CALL hg_remove_classifier_rule_condition (warehouse_name, query_queue_name, classifier_name, condition_name);
    • Descripción de parámetros

      • warehouse_name: Opcional. Nombre del virtual warehouse. Si no especifica este parámetro, se utiliza de forma predeterminada el virtual warehouse de la conexión actual.

        Nota

        Este parámetro es obligatorio solo para instancias de virtual warehouse.

      • query_queue_name: Obligatorio. Nombre de la cola de consultas.

      • classifier_name: Obligatorio. Nombre del clasificador.

      • condition_name: Obligatorio. Nombre de la propiedad de condición que desea eliminar. Las propiedades de condición compatibles son user_name, command_tag, db_name, engine_type, digest y storage_mode. Para obtener más información sobre las propiedades de condición en las reglas de coincidencia del clasificador, consulte Configure classifier conditions.

    • Ejemplos

      • Instancia de uso general

        -- In the insert_queue query queue, delete all matching rules related to command_tag from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition ('insert_queue', 'classifier_insert', 'command_tag');
        
        -- In the insert_queue query queue, delete all matching rules related to user_name from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition ('insert_queue', 'classifier_insert', 'user_name');
        
        -- In the insert_queue query queue, delete all matching rules related to db_name from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition ('insert_queue', 'classifier_insert', 'db_name');
        
        -- In the insert_queue query queue, delete all matching rules related to engine_type from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition ('insert_queue', 'classifier_insert', 'engine_type');
        
        -- In the insert_queue query queue, delete all matching rules related to digest from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition ('insert_queue', 'classifier_insert', 'digest');
        
        -- In the insert_queue query queue, delete all matching rules related to storage_mode from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition ('insert_queue', 'classifier_insert', 'storage_mode');
      • Instancia de virtual warehouse

        -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete all matching rules related to command_tag from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition ('init_warehouse', 'insert_queue', 'classifier_insert', 'command_tag');
        
        -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete all matching rules related to user_name from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition ('init_warehouse', 'insert_queue', 'classifier_insert', 'user_name');
        
        -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete all matching rules related to db_name from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition ('init_warehouse', 'insert_queue', 'classifier_insert', 'db_name');
        
        -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete all matching rules related to engine_type from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition ('init_warehouse', 'insert_queue', 'classifier_insert', 'engine_type');
        
        -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete all matching rules related to digest from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition ('init_warehouse', 'insert_queue', 'classifier_insert', 'digest');
        
        -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete all matching rules related to storage_mode from the classifier_insert classifier.
        CALL hg_remove_classifier_rule_condition ('init_warehouse', 'insert_queue', 'classifier_insert', 'storage_mode');

Consultar metadatos del clasificador

Los metadatos de los clasificadores se almacenan en la tabla del sistema hologres.hg_classifiers. Los campos principales se describen en la siguiente tabla:

Campo

Tipo de campo

Descripción

warehouse_id

INT

ID del virtual warehouse.

Nota

Para instancias de uso general, el valor del campo warehouse_id es 0.

warehouse_name

TEXT

Nombre del virtual warehouse.

Nota

Para instancias de uso general, warehouse_name está vacío.

query_queue_name

TEXT

Nombre de la cola de consultas.

classifier_name

TEXT

Nombre del clasificador.

property_key

TEXT

Nombre de la propiedad.

property_value

TEXT

Valor de la propiedad.

Enrutar consultas de una cola a recursos de Serverless Computing

A partir de Hologres V3.0.10, puede especificar que todas las consultas de una cola de consultas específica se ejecuten mediante recursos de Serverless Computing. Una vez configurado, las consultas de la cola solicitan recursos serverless para su ejecución según el orden de solicitud y la prioridad establecida. Estas consultas ya no se ven afectadas por la configuración de concurrencia ni por el mecanismo de espera de la cola. Para obtener más información, consulte Serverless Computing User Guide.

Nota

Si Serverless Computing no es compatible con la zona donde se encuentra su instancia, las consultas seguirán ejecutándose con recursos locales.

  • Instancia de uso general

    • Sintaxis

      -- Set all queries in the target queue to run on Serverless resources.
      CALL hg_set_query_queue_property('<query_queue_name>', 'computing_resource', 'serverless');
      
      -- (Optional) Set the priority for queries in the target queue when using Serverless resources. Supported values are 1-5. The default is 3.
      CALL hg_set_query_queue_property('<query_queue_name>', 'query_priority_when_using_serverless_computing', '<priority>');
    • Descripción de parámetros

      • query_queue_name: Obligatorio. Nombre de la cola de consultas.

      • priority: Prioridad. El valor predeterminado es 3. El valor debe estar en el rango [1, 5].

    • Ejemplo

      -- Set all queries in the target queue to run on Serverless resources.
      CALL hg_set_query_queue_property('insert_queue', 'computing_resource', 'serverless');
      
      -- Set the priority to 2 for queries in the target queue when using Serverless resources.
      CALL hg_set_query_queue_property('insert_queue', 'query_priority_when_using_serverless_computing', '2');
  • Instancia de virtual warehouse

    • Sintaxis

      -- Set all queries in the target queue to run on Serverless resources.
      CALL hg_set_query_queue_property('<warehouse_name>', '<query_queue_name>', 'computing_resource', 'serverless');
      
      -- (Optional) Set the priority for queries in the target queue when using Serverless resources. Supported values are 1-5. The default is 3.
      CALL hg_set_query_queue_property('<warehouse_name>', '<query_queue_name>', 'query_priority_when_using_serverless_computing', '<priority>');
    • Descripción de parámetros

      • warehouse_name: Obligatorio. Nombre del virtual warehouse.

      • query_queue_name: Obligatorio. Nombre de la cola de consultas.

      • priority: Obligatorio. Prioridad. El valor predeterminado es 3. El valor debe estar en el rango [1, 5].

    • Ejemplo

      -- Set all queries in the target queue to run on Serverless resources.
      CALL hg_set_query_queue_property('init_warehouse', 'insert_queue', 'computing_resource', 'serverless');
      
      -- Set the priority to 2 for queries in the target queue when using Serverless resources.
      CALL hg_set_query_queue_property('init_warehouse', 'insert_queue', 'query_priority_when_using_serverless_computing', '2');

Escenarios comunes

Consultar la cola de consultas de una sentencia SQL

Ejecute EXPLAIN para consultar la cola de consultas que utiliza una sentencia SQL específica. El campo Query Queue muestra la cola de consultas en uso. A continuación se muestra un ejemplo de código.

-- Create a query queue with a concurrency of 10 and a maximum queue size of 20.
CALL hg_create_query_queue ('select_queue', 10, 20);
-- Create a classifier and set the command_tag property.
CALL hg_create_classifier ('select_queue', 'classifier_1');
CALL hg_set_classifier_rule_condition_value ('select_queue', 'classifier_1', 'command_tag', 'select');

-- Use Explain Analyze to view the classifier and query queue matched by the query.
EXPLAIN ANALYZE SELECT * FROM hg_stat_activity;

Se devuelve el siguiente resultado.

QUERY PLAN
Gather  (cost=0.00..14.96 rows=1000 width=408)
[4:1 id=100003 dop=1 time=16/16/16ms rows=142(142/142/142) mem=43/43/43KB open=0/0/0ms get_next=16/16/16ms]
  ->  Forward  (cost=0.00..12.19 rows=1000 width=408)
      [0:4 id=100002 dop=4 time=16/8/5ms rows=142(39/35/33) mem=6/6/6KB open=16/8/5ms get_next=0/0/0ms scan_rows=142(39/35/33)]
        ->  ExecuteExternalSQL on PQE  (cost=0.00..10.04 rows=0 width=408)
"              External SQL: SELECT "datid" AS c_d2adb610_0, "datname" AS c_d2adb760_1, "pid" AS c_d2adb8a0_2, "usesysid" AS c_d2adba10_3, "usename" AS c_d2adbb60_4, "application_name" AS c_d2adbd10_5, "client_addr" AS c_d2adbe80_6, "client_hostname" AS c_d2df1020_7, "client_port" AS c_d2df1190_8, "backend_start" AS c_d2df1300_9, "xact_start" AS c_d2df1470_10, "query_start" AS c_d2df15e0_11, "state_change" AS c_d2df1750_12, "wait_event_type" AS c_d2df18c0_13, "wait_event" AS c_d2df1a30_14, "state" AS c_d2df1b80_15, "backend_xid" AS c_d2df1cf0_16, "backend_xmin" AS c_d2df1e60_17, "query" AS c_d2df1fb0_18, "backend_type" AS c_d2df2120_19, "query_id" AS c_d2df2290_20, "transaction_id" AS c_d2df2400_21, "extend_info" AS c_d2df2570_22, "running_info" AS c_d2df26e0_23 FROM pg_catalog."hg_stat_activity""
Query id:[1001002491453065719]
Query Queue: init_warehouse.select_queue.classifier_1

Consultar las colas de consultas activas

Ejecute la siguiente sentencia SQL para consultar información como el nombre de la cola de consultas, el estado actual y el tiempo de espera de las sentencias SQL en consultas activas.

SELECT
    running_info::json -> 'current_stage' ->> 'stage_name' AS stage_name,
    running_info::json -> 'current_stage' ->> 'queue_time_ms' AS queue_time_ms,
    running_info::json ->> 'query_queue' AS query_queue,
    *
FROM
    hg_stat_activity;

Consultar las colas de consultas de sentencias SQL en Query Log

Puede ejecutar la siguiente sentencia SQL para consultar la cola de consultas, el estado actual y el tiempo de espera de las sentencias SQL registradas en Query Log. El campo query_detail registra la cola de consultas que utilizó la sentencia SQL. Para obtener más información sobre la tabla del sistema hologres.hg_query_log, consulte The hg_query_log table.

SELECT * FROM hologres.hg_query_log WHERE query_detail like '%query_queue = <warehouse_name>.<queue_name>%';-- You must configure the warehouse_name parameter only for virtual warehouse-based instances.
Nota

El campo extended_info que devuelve la sentencia SQL anterior contiene la siguiente información:

  • serverless_computing_source: Indica el origen de la sentencia SQL que se ejecutó con recursos de Serverless Computing. Los valores válidos son los siguientes:

    • user_submit: Sentencia SQL que se especificó para ejecutarse en recursos serverless, independientemente de la función de cola de consultas.

    • query_queue: Todas las sentencias SQL de la cola de consultas especificada se ejecutan mediante recursos serverless.

    • query_queue_rerun: Sentencia SQL que la función de control de consultas grandes de la cola de consultas reejecutó automáticamente en recursos serverless.

  • query_id_of_triggered_rerun: Este campo solo existe cuando serverless_computing_source es query_queue_rerun. Indica el Query ID original de la sentencia SQL reejecutada.

Crear colas de consultas para tipos específicos de consultas

  • Ejemplo 1: Crear una cola de consultas que acepte tipos específicos de solicitudes, como INSERT.

    Una vez creada la cola de consultas, todas las solicitudes INSERT coinciden con el clasificador classifier_1 y se enrutan a la cola de consultas insert_queue.

    -- Create a query queue with a concurrency of 10 and a maximum queue size of 20.
    CALL hg_create_query_queue ('insert_queue', 10, 20);
    
    -- Create a classifier and attach the command_tag property.
    CALL hg_create_classifier ('insert_queue', 'classifier_1');
    CALL hg_set_classifier_rule_condition_value ('insert_queue', 'classifier_1', 'command_tag', 'INSERT');
  • Ejemplo 2: Crear una cola de consultas que acepte solicitudes de usuarios específicos, como los usuarios p4_123 y p4_345.

    Después de la creación, las solicitudes SQL enviadas por los usuarios p4_123 y p4_345 coinciden con classifier_2 y se enrutan a la cola de consultas user_queue.

    -- Create a query queue with a concurrency of 3 and an unlimited maximum queue size.
    CALL hg_create_query_queue ('user_queue', 3);
    CALL hg_set_query_queue_property('user_queue','max_queue_size', -1);
    -- Create a classifier and set a user_name matching rule.
    CALL hg_create_classifier ('user_queue', 'classifier_2');
    CALL hg_set_classifier_rule_condition_value ('user_queue', 'classifier_2', 'user_name', 'p4_123');
    CALL hg_set_classifier_rule_condition_value ('user_queue', 'classifier_2', 'user_name', 'p4_345');
    Nota

    Si especifica una cuenta de usuario personalizada, debe encerrar su nombre entre comillas dobles (""). Por ejemplo, CALL hg_set_classifier_rule_condition_value ('user_queue', 'classifier_2', 'user_name', '"BASIC$xxx"');.

  • Crear una cola de consultas que acepte consultas relacionadas con las bases de datos test y postgres.

    Una vez creada la cola de consultas, las solicitudes SQL relacionadas con las bases de datos test y postgres coinciden con classifier_3 y se asignan a la cola de consultas db_queue.

    -- Create a query queue with a concurrency of 5.
    CALL hg_create_query_queue ('db_queue', 5);
    
    -- Set the maximum queue time to 600000 ms. If a query waits longer than this time, an error is reported.
    CALL hg_set_query_queue_property ('db_queue', 'queue_timeout_ms', '600000');
    
    -- Create a classifier and attach the db_name property.
    CALL hg_create_classifier ('db_queue', 'classifier_3');
    CALL hg_set_classifier_rule_condition_value ('db_queue', 'classifier_3', 'db_name', 'test');
    CALL hg_set_classifier_rule_condition_value ('db_queue', 'classifier_3', 'db_name', 'postgres');
  • Crear una cola de consultas que acepte solicitudes relacionadas con el motor HQE.

    Una vez creada la cola de consultas, las solicitudes SQL relacionadas con el motor HQE coinciden con classifier_4 y se enrutan a la cola de consultas hqe_queue.

    -- Create a query queue with a concurrency of 10.
    CALL hg_create_query_queue ('hqe_queue', 10);
    
    -- Create a classifier and attach the engine_type property.
    CALL hg_create_classifier ('hqe_queue', 'classifier_4');
    CALL hg_set_classifier_rule_condition_value ('hqe_queue', 'classifier_4', 'engine_type', 'HQE');

Bloquear todas las solicitudes

Establezca la concurrencia y el tamaño de la cola de insert_queue en 0 para impedir que las consultas ingresen a una cola de consultas.

CALL hg_set_query_queue_property ('insert_queue', 'max_concurrency', '0');
CALL hg_set_query_queue_property ('insert_queue', 'max_queue_size', '0');