Compartir a través de


Azure Cosmos DB v2 (Beta)

Resumen

Elemento Descripción
Estado de la versión Beta
Productos Power BI (Modelos semánticos)
Power BI (Flujos de datos)
Fabric (Flujo de datos Gen2)
Tipos de autenticación admitidos Clave de fuente

Requisitos previos

Funcionalidades admitidas

  • Importar
  • DirectQuery (modelos semánticos de Power BI)
  • Opciones avanzadas
    • Número de reintentos
    • Habilitar el pase de la función "AVERAGE"
    • Habilitar el pase de "SORT" para varias columnas

Conexión a Azure Cosmos DB

Para conectar a datos de Azure Cosmos DB:

  1. Inicie Power BI Desktop.

  2. En la pestaña Inicio, seleccione Obtener datos.

  3. En el cuadro de búsqueda, escriba Cosmos DB v2.

  4. Seleccione Azure Cosmos DB v2 (Beta) y, a continuación, seleccione Conectar.

    Captura de pantalla que muestra la selección Seleccionar Azure Cosmos DB v2.

  5. En la página de conexión de Azure Cosmos DB v2, en Punto de conexión de Cosmos, escriba el URI de la cuenta de Azure Cosmos DB que desea usar. En Modo de conectividad de datos, elija un modo adecuado para su caso de uso, siguiendo estas directrices generales:

    • Para conjuntos de datos más pequeños, elija Importar. Al usar el modo de importación, Power BI trabaja con Cosmos DB para importar el contenido de todo el conjunto de datos para su uso en las visualizaciones.

    • El modo DirectQuery habilita la inserción de consultas en el contenedor de Cosmos DB para su ejecución y mejora el rendimiento del conector. En el caso de los contenedores de Cosmos DB con particiones, una consulta SQL con una función de agregado se pasa a Cosmos DB si la consulta también contiene un filtro (cláusula WHERE) en la clave de partición. Por ejemplo, si la clave de partición se define como "Product", una consulta SQL que se puede pasar y se puede ejecutar en el servidor de Cosmos DB puede ser:

      SELECT SUM(ColumnName) FROM TableName where Product = 'SampleValue'

    Nota:

    Use Azure Synapse Link para Azure Cosmos DB si desea ejecutar funciones de agregado entre particiones en el contenedor de Cosmos DB.

    Más información:

    Captura de pantalla del cuadro de diálogo de conexión que muestra la entrada del punto de conexión de Cosmos y el modo de conectividad de datos establecido en DirectQuery.

  6. En el símbolo del sistema para configurar la autenticación del origen de datos, escriba la clave de cuenta. A continuación, seleccione Conectar. El catálogo de datos, las bases de datos y las tablas aparecen en el cuadro de diálogo Navegador.

  7. En el panel Opciones de visualización, active la casilla del conjunto de datos que desea usar.

    Captura de pantalla del navegador que enfatiza los datos que ha seleccionado.

  8. La manera más óptima de especificar el filtro clave de partición (para que las funciones de agregado se puedan insertar en Cosmos DB) es usar parámetros M dinámicos. Para usar parámetros M dinámicos, crearía un conjunto de datos con valores de clave de partición únicos, crearía un parámetro, lo agregaría como un filtro en el conjunto de datos principal, lo enlazaría al conjunto de datos de clave de partición único y lo usaría como segmentación para el conjunto de datos principal. Siga estos pasos para habilitar los parámetros M dinámicos para el filtrado de claves de partición.

    a. Cree un conjunto de datos con valores de clave de partición únicos:

    En Navegador, seleccione Transformar datos en lugar de Cargar para abrir el editor de Power Query. Haga clic con el botón derecho en el conjunto de datos de consultas y seleccione Duplicar para crear un nuevo conjunto de datos.

    Captura de pantalla que muestra cómo seleccionar duplicados de la consulta existente en el editor de Power Query.

    Cambie el nombre del nuevo modelo Clave de partición y, a continuación, haga clic con el botón derecho en la columna de la clave de partición de Cosmos DB. En este ejemplo, Product es la columna de clave de partición de Cosmos DB. Seleccione Quitar otras columnas y, a continuación, seleccione Quitar duplicados.

    Captura de pantalla que muestra las claves de partición únicas en el editor de Power Query.

    b. Cree un parámetro para el filtrado dinámico:

    En el editor de Power Query, seleccione Administrar parámetros>Nuevo parámetro. Cambie el nombre del nuevo parámetro para reflejar el parámetro de filtro y escriba un valor válido como Valor actual.

    Captura de pantalla que muestra cómo crear un parámetro en el editor de Power Query.

    c. Aplique el filtro con parámetros en el conjunto de datos principal:

    Seleccione el icono desplegable de la columna Clave de partición y, a continuación, seleccione Filtros de texto>Igual a. Cambie el tipo de filtro de Texto a Parámetro. A continuación, elija el parámetro que se creó en el paso b. Seleccione Cerrar y Aplicar en la esquina superior izquierda del editor de Power Query.

    Captura de pantalla que muestra los pasos para aplicar el filtro con parámetros.

    d. Cree una segmentación de valores de clave de partición con enlace de parámetros:

    En Power BI, seleccione la pestaña Modelo. A continuación, seleccione el campo Clave de partición. En el panel Propiedades, seleccione Avanzado>Enlazar a parámetro. Elija el parámetro que se creó en el paso b.

    Captura de pantalla que muestra los pasos para enlazar el parámetro.

    Seleccione la pestaña Informe y agregue una segmentación con la clave de partición única.

    Captura de pantalla dela segmentación.

    e. Agregue visualizaciones y aplique el filtro Clave de partición desde la segmentación:

    Dado que el valor de clave de partición elegido en la segmentación está enlazado al parámetro (realizado en el paso d) y el filtro parametrizado se aplica al conjunto de datos principal (realizado en el paso c), el valor de clave de partición elegido se aplica como filtro al conjunto de datos principal y la consulta con el filtro de clave de partición se pasa a Cosmos DB en todas las visualizaciones.

    Captura de pantalla de la visualización después de aplicar el filtro de clave de partición.

Opciones avanzadas

Power Query proporciona un conjunto de opciones avanzadas que puede agregar a su consulta si es necesario.

En la siguiente tabla se enumeran todas las opciones avanzadas que puede configurar en Power Query.

Opción avanzada Descripción
Número de reintentos Cuántas veces se reintenta si hay códigos de retorno HTTP de 408 - Request Timeout, 412 - Precondition Failed o 429 - Too Many Requests. El número predeterminado de reintentos es 5.
Habilitar el pase de la función AVERAGE Especifica si el conector permite pasar la función de agregado AVG a Cosmos DB. El valor predeterminado es 1 y el conector intenta pasar la función de agregado AVG a Cosmos DB de forma predeterminada. Si el argumento contiene valores de cadena, booleano o nulos para la función de agregado AVG, el servidor de Cosmos DB devuelve un conjunto de resultados indefinido. Cuando se establece en el valor 0, la función de agregado AVG no se pasa al servidor de Cosmos DB y el conector controla la realización de la propia operación de agregación AVG.
Habilitar el pase de SORT para varias columnas Especifica si el conector permite pasar varias columnas a Cosmos DB cuando se especifica en la cláusula ORDER BY de la consulta SQL. El valor predeterminado es 0 y, si se especifica más de una columna en la cláusula ORDER BY, el conector no pasa las columnas de forma predeterminada y, en su lugar, controla la ordenación. Cuando se establece en el valor 1, el conector intenta pasar varias columnas a Cosmos DB cuando se especifica en la cláusula ORDER BY de la consulta SQL. Para permitir que se pasen varias columnas a Cosmos DB, asegúrese de tener índices compuestos establecidos en las columnas de las colecciones respectivas. En el caso de las colecciones con particiones, se pasará una consulta SQL con ORDER BY a Cosmos DB solo si la consulta contiene un filtro en la clave con particiones. Además, si hay más de ocho columnas especificadas en la cláusula ORDER BY, el conector no pasa la cláusula ORDER BY y, en su lugar, controla la ejecución de la ordenación.

Problemas y limitaciones conocidos

  • En el caso de los contenedores de Cosmos DB con particiones, una consulta SQL con una función de agregado se pasa a Cosmos DB si la consulta también contiene un filtro (cláusula WHERE) en la clave de partición. Si la consulta de funciones agregadas no contiene un filtro en la clave de partición, el conector realiza la agregación.

  • El conector no pasa una función de agregado si se llama después de aplicar TOP o LIMIT. Cosmos DB procesa la operación TOP al final cuando procesa una consulta. Por ejemplo, en la consulta siguiente, TOP se aplica en la subconsulta, mientras que la función de agregado se aplica sobre ese conjunto de resultados:

    SELECT COUNT(1) FROM (SELECT TOP 4 * FROM EMP) E

  • Si DISTINCT se proporciona en una función de agregado, el conector no pasa la función de agregado a Cosmos DB si se proporciona una cláusula DISTINCT en una función de agregado. Cuando está presente en una función de agregado, DISTINCT no es compatible con la API de SQL de Cosmos DB.

  • Para la función de agregado SUM, Cosmos DB devuelve undefined como conjunto de resultados si alguno de los argumentos de SUM son string, boolean o null. Sin embargo, si hay valores nulos, el conector pasa la consulta a Cosmos DB de forma que pida al origen de datos que reemplace un valor nulo por cero como parte del cálculo SUM.

  • Para la función de agregado AVG, Cosmos DB devuelve undefined como conjunto de resultados si alguno de los argumentos de SUM son string, boolean o null. El conector expone una propiedad de conexión para deshabilitar la eliminación de la función de agregado AVG a Cosmos DB en caso de que se deba invalidar este comportamiento predeterminado de Cosmos DB. Cuando el pase de AVG está deshabilitado, no se pasa a Cosmos DB y el conector controla la realización de la operación de agregación de AVG. Para obtener más información, vaya a "Habilitar el pase de la función AVERAGE" en Opciones avanzadas.

  • Los contenedores de Azure Cosmos DB con clave de partición grande no se admiten actualmente en el conector.

  • El pase de agregación está deshabilitado para la sintaxis siguiente debido a las limitaciones del servidor:

    • Cuando la consulta no se filtra por una clave de partición o cuando el filtro de clave de partición usa el operador OR con otro predicado en el nivel superior de la cláusula WHERE.

    • Cuando la consulta tiene una o varias claves de partición aparecen en una cláusula IS NOT NULL en la cláusula WHERE.

  • El conector V2 no admite tipos de datos complejos, como matrices, objetos y estructuras jerárquicas. Se recomienda la característica Creación de reflejo en Fabric para Azure Cosmos DB para esos escenarios.

  • El conector V2 usa el muestreo de los primeros 1000 documentos para que aparezcan con el esquema inferido. No se recomienda para escenarios de evolución del esquema cuando solo se actualiza parte de los documentos. Por ejemplo, es posible que una propiedad recién agregada a un documento de un contenedor con miles de documentos no se incluya en el esquema inferido. Se recomienda la característica Creación de reflejo en Fabric para Azure Cosmos DB para esos escenarios.

  • Actualmente, el conector V2 no admite valores que no sean cadenas en las propiedades del objeto.

  • El pase de filtrado está deshabilitado para la sintaxis siguiente debido a las limitaciones del servidor:

    • Cuando se hace referencia a la consulta que contiene una o varias columnas de agregado en la cláusula WHERE.