Escalado horizontal del modelo semántico de Power BI

La escalabilidad horizontal del modelo semántico ayuda a Power BI a ofrecer un rendimiento rápido mientras una gran audiencia consume los informes y paneles. La escalabilidad horizontal del modelo semántico usa la capacidad Premium para hospedar una o varias réplicas de solo lectura del modelo semántico principal. Al aumentar el rendimiento, las réplicas de solo lectura aseguran que el rendimiento no se ralentice cuando varios usuarios envían consultas al mismo tiempo.

Cuando Power BI crea réplicas de solo lectura, las separa del modelo semántico principal de lectura y escritura. Las réplicas de solo lectura sirven para las consultas del panel y el informe de Power BI, y el modelo semántico de lectura y escritura se usa cuando se realizan operaciones de escritura y actualizaciones. Durante las operaciones de escritura y las actualizaciones, las réplicas de solo lectura continúan atendiendo a los informes y consultas de paneles sin interrumpirse. De forma predeterminada, los modelos semánticos de solo lectura y escritura se sincronizan automáticamente para que las réplicas de solo lectura se mantengan actualizadas. Sin embargo, puede deshabilitar la sincronización automática y elegir sincronizar manualmente en la línea de comandos o mediante script.

En la tabla siguiente se muestra la sincronización necesaria para cada método de actualización cuando se habilita el escalado horizontal del modelo semántico de Power BI y se deshabilita la sincronización automática:

Método Refresh Sync
Interfaz de usuario a petición Sincronización siempre
Actualización programada Sincronización siempre
API de REST básica Sincronización manual necesaria 1
API de REST avanzada Sincronización manual necesaria 1
XMLA Sincronización manual necesaria 1

1 - Con autoSyncReadOnlyReplicas en queryScaleOutSettings establecido en false.

Administración de réplicas

El escalado horizontal crea una réplica del modelo semántico de lectura y escritura y tantas réplicas de solo lectura como sea necesario. Todas las operaciones de escritura se dirigen a la réplica de lectura y escritura. Esto incluye las consultas en sesiones que tienen explícitamente como destino la réplica de lectura y escritura, es decir, que no usan ?readonly en la cadena de conexión. Estas consultas pueden provocar un uso elevado de CPU interactiva en la réplica de lectura y escritura. En estos casos, no se crea una nueva réplica porque la carga de consultas que tiene como destino la réplica de lectura y escritura no se puede distribuir a réplicas de solo lectura.

El número de réplicas de solo lectura se determina en función de la cantidad de CPU que usan las consultas. El número máximo de réplicas depende de su SKU. Se crea una nueva réplica de solo lectura si el uso actual de la CPU en todas las réplicas de solo lectura activas para un modelo semántico es alto y permanece alto. Sin embargo, la carga actual en la capacidad podría ser lo suficientemente alta como para provocar una limitación si se agregan más réplicas. La limitación impide que las réplicas de solo lectura adicionales alcancen un uso elevado continuado de CPU. En tales casos, no se crea una nueva réplica de solo lectura de escalabilidad horizontal.

Se quita una réplica cuando el uso de la CPU se reduce y permanece bajo.

Requisitos previos

De forma predeterminada, el escalado horizontal está habilitado para el inquilino, pero no está habilitado para los modelos semánticos del inquilino. Para habilitar el escalado horizontal de un modelo semántico, debe usar las API REST de Power BI. Antes de activarlo, deben cumplirse los siguientes requisitos previos:

  • La configuración Consultas de escalabilidad horizontal para grandes modelos semánticos para el inquilino está habilitada (valor predeterminado).

  • El área de trabajo reside en una capacidad de Power BI Premium:

    • Prémium por usuario (PPU)
    • SKU de P de Power BI Premium
    • Una SKU de Power BI para Power BI Embedded (también conocida como inserción para los clientes).
    • SKU de Fabric F
  • El formato de almacenamiento de grandes modelos semánticos está habilitado.

  • Para administrar modelos semánticos mediante la API REST, use cmdlets de administración de Power BI. Para instalar, abra PowerShell en modo de administrador y ejecute el comando:

    Install-Module -Name MicrosoftPowerBIMgmt
    
  • Las siguientes versiones de aplicación, biblioteca y servicio (o superior) admiten la conexión a réplicas de solo lectura:

    Aplicación, biblioteca o servicio Versión
    Proveedor OLE DB de Microsoft Analysis Services para Microsoft SQL Server (MSOLAP) 16.0.20.201 (marzo de 2022)
    Microsoft.AnalysisServices.AdomdClient (ADOMD.NET) 19.36.0 (marzo de 2022)
    Power BI Desktop Junio de 2022
    SQL Server Management Studio (SSMS) 19,0
    Tabular Editor 2 2.16.6
    Tabular Editor 3 3.2.3
    DAX Studio 3.0.0

Configuración del escalado horizontal para un modelo semántico

Para obtener información sobre cómo habilitar o deshabilitar el modelo semántico de un conjunto de datos u obtener el estado de escalabilidad horizontal mediante PowerShell y las API REST, vea Configuración del escalado horizontal del modelo semántico.

Conexión a un tipo de modelo semántico específico

Cuando se habilita el escalado horizontal, se mantienen las siguientes conexiones:

  • De manera predeterminada, Power BI Desktop se conecta a la réplica de solo lectura.

  • Los informes de conexión dinámica se conectan a una réplica de solo lectura.

  • Las aplicaciones cliente XMLA se conectan al modelo semántico de lectura y escritura de forma predeterminada.

  • Las actualizaciones en el servicio Power BI y las actualizaciones que usan la API de REST de Actualización mejorada conectadas al modelo semántico de lectura y escritura.

Puede conectarse a una réplica de solo lectura o al modelo semántico de lectura y escritura anexando una de las siguientes cadenas a la dirección URL del conjunto de datos:

  • Solo lectura - ?readonly
  • Lectura y escritura - ?readwrite

Deshabilitación del escalado horizontal del modelo semántico del inquilino

El escalado horizontal del modelo semántico de Power BI está habilitado de forma predeterminada para un inquilino. Los administradores de inquilinos de Power BI pueden deshabilitar esta opción de configuración. Para deshabilitar el escalado horizontal del modelo semántico para el inquilino, haga lo siguiente:

  1. Vaya a la configuración del inquilino.

  2. En Configuración de escalabilidad horizontal, expanda Escalar horizontalmente las consultas para modelos semánticos grandes.

  3. Cambie el conmutador a Deshabilitar.

  4. Seleccione Aplicar.

    A screenshot showing how to disable the scale out tenant settings in the Power BI admin portal.

Consideraciones y limitaciones

  • Las aplicaciones cliente pueden conectarse a la réplica de solo lectura a través del punto de conexión XMLA, siempre que admitan el modo especificado en la cadena de conexión. Las aplicaciones cliente también pueden conectarse a la instancia de lectura y escritura al usar el punto de conexión XMLA.

  • Las actualizaciones manuales y programadas siempre se sincronizan automáticamente con la versión más reciente de las réplicas de solo lectura. Las actualizaciones de la API REST respetan la configuración de sincronización automática. Si la sincronización automática está deshabilitada, el modelo semántico debe sincronizarse con las réplicas de solo lectura mediante la API REST de sincronización manual.

  • Con la sincronización automática deshabilitada, las actualizaciones de XMLA y las actualizaciones deben sincronizarse con las copias del modelo semántico de solo lectura mediante la API REST de sincronización.

  • Al eliminar un modelo semántico de escalabilidad horizontal de Power BI y crear otro modelo semántico con el mismo nombre, espere cinco minutos antes de crear el nuevo modelo semántico. Puede que Power BI tarde un poco en quitar las réplicas del modelo semántico principal.

  • Cuando la escalabilidad horizontal del modelo semántico de Power BI está habilitada y autoSyncReadOnlyReplicas=false, no se admiten los cambios en las siguientes características:

    • Adición o eliminación de roles
    • Actualización del conjunto de pertenencias a roles para cualquier rol
    • Modificación de un origen de datos
    • Eliminación de orígenes de datos usados por DirectQuery o por una tabla dual
    • Cambios en expresiones de seguridad de nivel de objeto (OLS) o de seguridad dinámica de nivel de fila (RLS)

    Para realizar cambios en estas características, deshabilite la escalabilidad horizontal y espere unos minutos para a se realice el cambio antes de volverlo a habilitar.

  • La detección de pertenencias a roles mediante el conjunto de filas TMSCHEMA_ROLE_MEMBERSHIPS de la vista de administración dinámica (DMV) no devuelve ningún resultado cuando se ejecuta en la réplica de solo lectura.

  • Los informes que usan una conexión dinámica siempre se conectan a la réplica de solo lectura, incluso si la cadena de conexión usa ?readwrite. Sin embargo, en Power BI Desktop, los informes de conexión dinámica que usan ?readwrite se conectan a la réplica de lectura y escritura.

  • Los conjuntos de filas DBSCHEMA_CATALOGS y DISCOVER_XML_METADATA de la vista de administración dinámica (DMV) devuelven información de la réplica de lectura y escritura al usar ?readonly en la cadena de conexión.

  • SQL Server Profiler no funciona con la cadena de conexión ?readonly.

  • Estas operaciones desencadenan la sincronización automática incluso cuando está desactivada (AutoSync=Off):

    • Migrar un área de trabajo de una capacidad a otra.
    • Cambiar (o rotar) la versión de la clave usada para Bring Your Own Key (BYOK).
    • Mover el área de trabajo de un modelo semántico desde una capacidad que no usa BYOK a otra que usa BYOK.
    • Mover el área de trabajo de un modelo semántico desde una capacidad que usa BYOK a otra que no usa BYOK.
    • Restaurar un modelo semántico mediante el punto de conexión XMLA público.
  • Al deshabilitar Formato de almacenamiento de modelos semánticos grandes, se deshabilita el escalado horizontal y se pierde toda la información de sincronización.