Todos los productos
Search
Centro de documentos

Hologres:Otorgar acceso a datos a almacenes virtuales

Última actualización: Sep 05, 2026

Este tema describe cómo otorgar permisos de acceso a datos a almacenes virtuales en Hologres.

Notas de uso

  • Al crear un Table Group mediante el almacén virtual A, este se convierte en el almacén virtual líder predeterminado para dicho Table Group.

  • El estado de la memoria se sincroniza entre los almacenes virtuales con una latencia de nivel de milisegundos. Cuando escribe datos en un almacén virtual líder, el sistema sincroniza los datos en memoria con los almacenes virtuales seguidores. Este proceso consume una pequeña cantidad de recursos de CPU y memoria en los almacenes virtuales seguidores. Se recomienda mantener la diferencia de especificaciones entre los almacenes virtuales dentro de una proporción de 4x.

  • Únicamente el almacén virtual predeterminado de una instancia puede escribir en tablas externas.

  • En Hologres V2.0, los almacenes virtuales admiten tareas de lectura y escritura de la siguiente manera:

    • Un almacén virtual seguidor (aquel que ha cargado un Table Group) solo puede ejecutar tareas de lectura en las tablas dentro de ese Table Group. No se admiten tareas de escritura.

    • Un almacén virtual líder (designado como líder para un Table Group) puede ejecutar tanto tareas de lectura como de escritura en las tablas dentro de ese Table Group.

    • Un almacén virtual que no ha cargado un Table Group no puede leer ni escribir en él.

  • Hologres V4.0 actualiza la arquitectura de instancias para los almacenes virtuales. La compatibilidad con tareas de lectura y escritura es la siguiente:

    • Debe habilitar el parámetro GUC hg_warehouse_enable_use_local_resource. Para obtener más información, consulte GUC parameters.

    • Las tareas de lectura y escritura no optimizadas por Fixed Plan se pueden ejecutar sin necesidad de cargar un Table Group en un almacén virtual.

    • Para conocer qué tareas de lectura y escritura pueden optimizarse mediante Fixed Plan, consulte Accelerate SQL execution with Fixed Plan.

    • Todas las tareas de escritura, incluidas las escrituras en tiempo real y por lotes, aún pueden enrutarse al almacén virtual líder para su ejecución mediante la función de enrutamiento automático de DML.

Tipo de tarea/Tipo de almacén virtual

Almacén virtual líder

Almacén virtual seguidor(Table group cargado)

Otros almacenes virtuales(Table group no cargado)

Escritura en tiempo real(Tarea de escritura optimizada por Fixed Plan)

Compatible

No compatible

No compatible

Escritura por lotes(Tarea de escritura no optimizada por Fixed Plan)

Compatible

Compatible(Función de V4.0; requiere habilitar GUC)

Compatible(Función de V4.0; requiere habilitar GUC)

Consulta puntual Key/Value y Prefixscan(Tarea de lectura optimizada por Fixed Plan)

Compatible

Compatible

No compatible

Otras tareas de lectura(Tarea de lectura no optimizada por Fixed Plan)

Compatible

Compatible

Compatible(Función de V4.0; requiere habilitar GUC)

Consultar permisos de acceso a Table Group

  • Sintaxis

    Para consultar la información de permisos de Table Group de todos los almacenes virtuales en la instancia actual, ejecute la siguiente sentencia SQL.

    SELECT * FROM hologres.hg_warehouse_table_groups;
  • Parámetros

    La siguiente tabla describe las columnas de la tabla hg_warehouse_table_groups.

    Parámetro

    Tipo

    Descripción

    Ejemplo

    warehouse_name

    TEXT

    Nombre del almacén virtual.

    init_warehouse

    warehouse_id

    INTEGER

    ID único del almacén virtual.

    1

    database_name

    TEXT

    Nombre de la base de datos.

    wh_demo

    tablegroup_name

    TEXT

    Nombre del Table Group.

    wh_demo_tg_default

    leader

    BOOLEAN

    Indica si el almacén virtual es el almacén virtual líder para el Table Group.

    t

    replica_count

    INTEGER

    Recuento de réplicas.

    1

Cargar un Table Group en un almacén virtual

Al cargar un Table Group en un almacén virtual, este se convierte en un almacén virtual seguidor para dicho Table Group.

  • Una vez que un almacén virtual carga un Table Group, puede utilizar dicho almacén para operar sobre las tablas del Table Group.

  • Cargar un Table Group en un almacén virtual requiere permisos de Superuser para la instancia.

  • Sintaxis:

    CALL hg_table_group_load_to_warehouse ('<database_name>.<table_group_name>', '<warehouse_name>', <replica_count>);
  • Parámetros:

    Parámetro

    Tipo

    Descripción

    database_name

    TEXT

    Nombre de la base de datos.

    table_group_name

    TEXT

    Nombre del Table Group.

    warehouse_name

    TEXT

    Nombre del almacén virtual donde se cargará el Table Group.

    replica_count

    INTEGER

    Recuento de réplicas. Este parámetro es opcional. Valor predeterminado: 1.

  • Ejemplos:

    -- Load table_group_1 in the db1 database into the warehouse_1 virtual warehouse with one replica.
    CALL hg_table_group_load_to_warehouse ('db1.table_group_1', 'warehouse_1');
    -- Load table_group_1 in the db1 database into the warehouse_1 virtual warehouse with two replicas.
    CALL hg_table_group_load_to_warehouse ('db1.table_group_1', 'warehouse_1',2);

Establecer el almacén virtual líder

  • Notas de uso

    • Solo el almacén virtual líder puede realizar operaciones DML, como la escritura de datos, en las tablas de un Table Group.

    • Un Table Group solo puede tener un almacén virtual líder. Cambiar el líder provoca su reinicio, por lo que debe planificar el impacto en el negocio.

    • Establecer el almacén virtual líder para un Table Group requiere permisos de Superuser para la instancia.

  • Sintaxis

    CALL hg_table_group_set_leader_warehouse ('<database_name>.<table_group_name>', '<warehouse_name>');
  • Parámetros

    Parámetro

    Tipo

    Descripción

    database_name

    TEXT

    Nombre de la base de datos.

    table_group_name

    TEXT

    Nombre del Table Group.

    warehouse_name

    TEXT

    Nombre del almacén virtual que se establecerá como líder.

Descargar un Table Group

  • Notas de uso

    • Descargar un Table Group de un almacén virtual requiere permisos de Superuser para la instancia.

    • No se puede descargar un Table Group de su almacén virtual líder. Primero debe cambiar el líder.

  • Sintaxis

    CALL hg_table_group_unload_from_warehouse ('<database_name>.<table_group_name>', '<warehouse_name>');
  • Parámetros

    Parámetro

    Tipo

    Descripción

    database_name

    TEXT

    Nombre de la base de datos.

    table_group_name

    TEXT

    Nombre del Table Group.

    warehouse_name

    TEXT

    Nombre del almacén virtual del cual se descarga el Table Group.

Cambiar el recuento de réplicas

  • Nota: Cambiar el recuento de réplicas para un Table Group cargado en un almacén virtual requiere permisos de Superuser para la instancia.

  • Sintaxis

    CALL hg_table_group_set_warehouse_replica_count ('<database_name>.<table_group_name>', <replica_count>,'<warehouse_name>');
  • Parámetros

    Parámetro

    Tipo

    Descripción

    database_name

    TEXT

    Nombre de la base de datos.

    table_group_name

    TEXT

    Nombre del Table Group.

    replica_count

    INTEGER

    Recuento de réplicas.

    warehouse_name

    TEXT

    Nombre del almacén virtual para el cual desea cambiar el recuento de réplicas.

Enrutamiento automático de DML para almacenes virtuales (Beta)

  • Notas de uso

    Un Table Group tiene un solo almacén virtual líder, que es el único almacén capaz de realizar operaciones DML sobre él. A partir de Hologres V2.2, puede enrutar automáticamente las operaciones DML al almacén virtual líder de un Table Group. Tras habilitar esta función, las tareas de escritura utilizan automáticamente los recursos del almacén virtual líder para su ejecución, pero las métricas de las tareas de escritura, como QPS, se siguen registrando en el almacén virtual seguidor.

    Nota

    Después de habilitar la función de transacción mixta multi-DML, no podrá utilizar la función de enrutamiento automático de DML para almacenes virtuales. Para obtener más información sobre la función de transacción mixta multi-DML, consulte SQL transaction capabilities.

  • Habilitar o deshabilitar el enrutamiento automático de DML

    Puede utilizar el siguiente parámetro GUC para habilitar o deshabilitar el enrutamiento automático de DML para almacenes virtuales a nivel de sesión o de base de datos.

    Nota

    El parámetro GUC para el enrutamiento automático de DML para almacenes virtuales, hg_experimental_enable_warehouse_dml_auto_routing, está habilitado de forma predeterminada.

    • Nivel de sesión

      -- Enable DML auto-routing for virtual warehouses.
      SET hg_experimental_enable_warehouse_dml_auto_routing = ON;
      -- Disable DML auto-routing for virtual warehouses.
      SET hg_experimental_enable_warehouse_dml_auto_routing = OFF;
    • Nivel de base de datos

      -- Enable DML auto-routing for virtual warehouses.
      ALTER DATABASE <database_name> SET hg_experimental_enable_warehouse_dml_auto_routing = ON;
      -- Disable DML auto-routing for virtual warehouses.
      ALTER DATABASE <database_name> SET hg_experimental_enable_warehouse_dml_auto_routing = OFF;

      Parámetros

      Parámetro

      Tipo

      Descripción

      database_name

      TEXT

      Nombre de la base de datos.

  • Ejemplo

    1. Vaya a la página de desarrollo de HoloWeb. Para obtener más información, consulte Connect to HoloWeb and run queries.

    2. En la barra de menú superior de la página de HoloWeb, haga clic en Security Center uicontrol替换 修改时间:2026-02-03 01:32:43 原文:安全中心 修改后:conref="mcms_dita_holoweb.dita#holoweb/module_security" .

    3. En el panel de navegación izquierdo de la página Security Center, haga clic en Virtual Warehouse Management uicontrol替换 修改时间:2026-02-03 01:32:43 原文:计算组管理 修改后:conref="mcms_dita_hologres-console.dita#hologres-console/warehouse_manage" .

    4. En la pestaña Virtual Warehouse Resource Management uicontrol替换 修改时间:2026-02-03 01:32:43 原文:计算组资源管理 修改后:conref="mcms_dita_hologres-console.dita#hologres-console/warehouse.warehouse_resource_manage" , haga clic en Create Virtual Warehouse uicontrol替换 修改时间:2026-02-03 01:32:43 原文:新增计算组 修改后:conref="mcms_dita_hologres-console.dita#hologres-console/warehouse_addWarehouse" para crear un almacén virtual llamado read_wh1.

      Nota

      Una instancia puede tener un máximo de 10 almacenes virtuales. Los recursos para cada almacén virtual deben ser de un mínimo de 32 CU y un máximo de 512 CU. Si cuenta con menos de 32 CU de recursos informáticos sin asignar, no podrá crear un nuevo almacén virtual. Para escalar verticalmente, consulte Scale up a virtual warehouse.

      Una vez creado el almacén virtual, la pestaña Virtual Warehouse Resource Management muestra el almacén virtual read_wh1 con un estado Running. Puede realizar operaciones como Scale, Restart y Stop.

    5. En la pestaña Management on Permissions of Virtual Warehouses on Table Groups uicontrol替换 修改时间:2026-02-03 01:32:43 原文:计算组 Table Group 授权管理 修改后:conref="mcms_dita_holoweb.dita#holoweb/warehouse.table_group_auth_management" , haga clic en Grant Permissions to Virtual Warehouse uicontrol替换 修改时间:2026-02-03 01:32:43 原文:新增计算组授权 修改后:conref="mcms_dita_holoweb.dita#holoweb/warehouse.add_warehouse_auth" para configurar el almacén virtual read_wh1 como almacén virtual seguidor para el Table Group objetivo.

      Nota

      Para crear un Table Group, consulte Manage Table Groups.

      Después de otorgar los permisos, la lista muestra a init_warehouse como el almacén virtual líder. En la columna Acciones para read_wh1, se muestran Set as Leader y Revoke Permissions.

    6. En el SQL Editor uicontrol替换 修改时间:2026-02-03 01:32:43 原文:SQL编辑器 修改后:conref="mcms_dita_holoweb.dita#holoweb/Header_index_-1816047924" , establezca el almacén virtual actual en read_wh1 y ejecute sentencias DML cuando el enrutamiento automático de DML para almacenes virtuales esté habilitado y deshabilitado.

      • Cuando el enrutamiento automático de DML para almacenes virtuales está habilitado, las sentencias DML se enrutan automáticamente al almacén virtual líder del Table Group, que es init_warehouse, para su ejecución.

        Cambie el current virtual warehouse a read_wh1, ejecute SET hg_experimental_enable_warehouse_dml_auto_routing = ON; para habilitar el enrutamiento automático de DML y luego ejecute una sentencia INSERT para escribir datos. La sentencia se ejecuta correctamente (99 filas, aproximadamente 53 ms), lo que confirma que las operaciones DML se enrutaron automáticamente al almacén virtual líder para su ejecución.

      • Con el enrutamiento automático de DML deshabilitado, las sentencias DML no se enrutan al líder, init_warehouse. En su lugar, el almacén virtual actual, read_wh1, intenta ejecutarlas. Esto falla con un error porque solo el almacén virtual líder puede realizar operaciones DML en el Table Group.

        El comando para deshabilitar el enrutamiento automático de DML es SET hg_experimental_enable_warehouse_dml_auto_routing = OFF;. Se devuelve el siguiente mensaje de error: ERROR: Dispatch query failed: internal error: Failed to get available shards for query. El mensaje HINT sugiere comprobar si el Table Group (por ejemplo, demo.demo_tg_default) es el líder en el almacén virtual actual.