Problemas comunes

Power Query

Conservación del criterio de ordenación

Es posible que asuma que si ordena los datos, las operaciones de bajada conservarán el criterio de ordenación.

Por ejemplo, si ordena una tabla de ventas para que la venta más grande de cada tienda se muestre primero, cabe esperar que al realizar la operación "Eliminar duplicados" solo se muestre la venta más importante de cada tienda. Y esta acción podría, en efecto, parecer que funciona. No obstante, no se garantiza este comportamiento.

Debido a la forma en que Power Query optimiza algunas operaciones, incluida la omisión o la descarga en orígenes de datos (que pueden tener su propio comportamiento de ordenación específico), no se garantiza que el criterio de ordenación se conserve a través de agregaciones (como Table.Group), combinaciones (como Table.NestedJoin), o eliminación de duplicados (como Table.Distinct).

Existen varias maneras de solucionarlo. Estas son algunas sugerencias:

  • Efectúe una ordenación después de aplicar la operación de bajada. Por ejemplo, al agrupar filas, ordene la tabla anidada en cada grupo antes de aplicar los pasos posteriores. A continuación se ve un ejemplo de código M que muestra este enfoque: Table.Group(Sales_SalesPerson, {"TerritoryID"}, {{"SortedRows", each Table.Sort(_, {"SalesYTD", Order.Descending})}})
  • Almacene en búfer los datos (a través de Table.Buffer) antes de aplicar la operación de bajada. En algunas ocasiones, esta operación hará que la operación de bajada conserve el criterio de ordenación almacenado en búfer.
  • Uso de clasificación. Por ejemplo, en lugar de usar Table.Distinct, podría ordenar en función de las columnas que contengan los valores duplicados, clasificar en función de una columna de desempate (como modified_date) y, a continuación, filtrar para mantener únicamente las filas de clasificación 1.

Inferencia de tipo de datos

En ocasiones, Power Query puede detectar de forma errónea el tipo de datos de una columna. Esto se debe al hecho de que Power Query deduce tipos de datos tomando solo las primeras 200 filas de datos. Si los datos de las primeras 200 filas son diferentes de aquellos después de la fila 200, Power Query puede llegar a seleccionar el tipo incorrecto. (Se debe tener en cuenta que un tipo incorrecto no siempre generará errores. A veces, los valores resultantes simplemente serán incorrectos y esto dificultará la detección del problema).

Por ejemplo, imagine una columna que contenga enteros en las primeras 200 filas (como todos ceros), pero que presente números decimales después de la fila 200. En este caso, Power Query deducirá el tipo de datos de la columna como Número entero (Int64.Type). Dicha inferencia va a generar que las partes decimales de los números no enteros se trunquen.

O imagine una columna que contenga valores de fecha con formato de texto en las primeras 200 filas y otros tipos de valores de texto en las filas posteriores. En este caso, Power Query deducirá el tipo de datos de la columna como Fecha. Esta inferencia dará lugar a que los valores de texto que no son fechas se traten como errores de conversión de tipos.

Debido a que la detección de tipos funciona en las primeras 200 filas, pero la generación de perfiles de datos puede funcionar en el conjunto de datos en su totalidad, puede considerar la posibilidad de usar la funcionalidad de generación de perfiles de datos para obtener un primer indicio en el Editor de consultas sobre errores (desde la detección de tipos o cualquier cantidad de otras razones) más allá de las N filas principales.

El host remoto forzó el cierre de las conexiones

Al conectarse a varias API, es posible que reciba la advertencia a continuación:

Data source error: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host

En caso de que se produzca este error, es más probable que se trate de un problema de red. Habitualmente, las primeras personas con las que se debe comprobar son los propietarios del origen de datos con el que se intenta la conexión. Si no creen ser los que cierran la conexión, es posible que se trate de algo a lo largo del camino (por ejemplo, un servidor proxy, enrutadores intermedios o puertas de enlace, etc.).

Ya sea que esto solo se reproduzca con datos o tamaños de datos mayores, es probable que haya un tiempo de espera de red en algún lugar de la ruta. Si solamente ocurre con los datos más grandes, los clientes deben consultar con el propietario del origen de datos para verificar si las API admiten la paginación, entonces podrán dividir las solicitudes en fragmentos más pequeños. Si esto falla, se deberán seguir formas alternativas de extraer datos de la API (según las prácticas recomendadas del origen de datos).

Los conjuntos de cifrado TLS RSA están en desuso

A partir del 30 de octubre de 2020, los siguientes conjuntos de cifrado estarán en desuso en nuestros servidores.

  • "TLS_RSA_WITH_AES_256_GCM_SHA384”
  • "TLS_RSA_WITH_AES_128_GCM_SHA256”
  • "TLS_RSA_WITH_AES_256_CBC_SHA256”
  • "TLS_RSA_WITH_AES_128_CBC_SHA256”

La lista a continuación detalla los conjuntos de cifrado admitidos:

  • "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
  • "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
  • "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
  • "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
  • "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"
  • "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"
  • "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
  • "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"

Los conjuntos de cifrado se utilizan para cifrar mensajes y así asegurar una conexión de red entre clientes/servidores y otros servidores. Eliminaremos la lista anterior de conjuntos de cifrado para cumplir con nuestros protocolos de seguridad actuales. A partir del 1 de marzo de 2021, los clientes solo pueden usar nuestros conjuntos de cifrado estándar.

La lista a continuación detalla los conjuntos de cifrado que debe admitir el servidor al que se conecte desde Power Query Online o Power BI.

En Power Query Desktop (Power BI, Excel), no se controlan los conjuntos de cifrado. Si intenta conectarse a Power Platform (por ejemplo, flujos de datos de Power Platform) o al servicio Power BI, será necesario uno de los conjuntos de cifrado habilitados en el sistema operativo. Puede actualizar la versión de Windows o actualizar el registro TLS de Windows para asegurarse de que su extremos de servidor admita uno de estos cifrados.

Para verificar que el servidor cumple con el protocolo de seguridad, puede realizar una prueba a través una herramienta de cifrado y escáner TLS. Un ejemplo podría ser SSLLABS.

Los clientes deben actualizar sus servidores antes del 1 de marzo de 2021. Para obtener más información sobre cómo configurar el orden de TLS Cipher Suite, consulte Gestionar la seguridad de la capa de transporte (TLS).

Revocación de certificados

Una nueva versión de Power BI Desktop provocará fallos en las conexiones SSL desde Desktop cuando alguno de los certificados de la cadena SSL carezca del estado de revocación de certificado. Esto supone un cambio respecto al estado actual, en el que la revocación solo provocaba el fallo de la conexión en el caso de que el certificado se revocara explícitamente. Otros problemas de certificado pueden incluir firmas no válidas y expiración del certificado.

Dado que existen configuraciones en las que se puede quitar el estado de revocación, como con servidores proxy corporativos, ofreceremos otra opción para omitir los certificados que carezcan de información de revocación. Esta opción permitirá situaciones en las que en algunos casos la información de revocación se quite, pero no se desee reducir completamente la seguridad, para seguir trabajando.

Si bien no se recomienda, los usuarios seguirán teniendo la posibilidad de desactivar completamente las comprobaciones de revocación.

Error: se canceló la evaluación

Power Query mostrará el mensaje "Se canceló la evaluación" cuando el análisis en segundo plano esté deshabilitado y el usuario cambie entre consultas o cierre el Editor de consultas durante el proceso de actualización de una consulta.

Error: la clave no coincidía con ninguna fila de la tabla

Hay muchas razones por las que Power Query puede devolver un error que indique la clave no coincide con ninguna fila de la tabla. Cuando se produce este error, el motor de Mashup no puede encontrar el nombre de la tabla que se busca. Las razones por las que puede producirse este error incluyen las siguientes:

  • El nombre de la tabla se ha cambiado, por ejemplo, en el origen de datos.
  • La cuenta que se utiliza para acceder a la tabla no posee los privilegios necesarios para leer la tabla.
  • Pueden existir varias credenciales para un único origen de datos, que no se admite en el servicio de Power BI. Este error puede producirse, si por ejemplo el origen de datos se encuentra en la nube y se utilizan varias cuentas para acceder al origen de datos al mismo tiempo con credenciales diferentes. Si el origen de datos es local, deberá utilizar la puerta de enlace de datos local.

Limitación: requisito que está unido a un dominio para las máquinas de puerta de enlace al utilizar la autenticación de Windows

El uso de la autenticación de Windows con una puerta de enlace local requiere que la máquina de puerta de enlace esté unida a un dominio. Esto se aplica a las conexiones con la configuración "autenticación de Windows a través de la puerta de enlace". Es posible que las cuentas de Windows que se utilizarán para acceder a un origen de datos requieran acceso de lectura a los componentes compartidos en el directorio de Windows y la instalación de la puerta de enlace.

Limitación: la actualización de OAuth2 entre inquilinos no se admite en el servicio Power BI.

Si desea conectarse a un origen de datos desde el servicio Power BI mediante OAuth2, el origen de datos deberá estar en el mismo inquilino que el servicio Power BI. En estos momentos no se admiten escenarios de conexión multiinquilino mediante OAuth2.

Limitación: el punto de conexión de autenticación de AD FS personalizado no se admite en el servicio Power BI.

La capacidad de utilizar un punto de conexión de autenticación personalizado de Servicios de federación de Active Directory (AD FS) no se admite en el servicio Power BI. Es posible que los usuarios experimenten el siguiente error: El servicio de token notificado por el recurso no es de confianza.

Limitación: no se admiten las cuentas de invitado.

En estos momentos no se admite el uso de cuentas de invitado de un inquilino para conectarse a datos a través de conectores de Power Query.

Expression.Error: la evaluación dio lugar a un desbordamiento de pila y no puede continuar

Los errores de desbordamiento de pila pueden ser a causa de un error en el código M. Por ejemplo, la función a continuación genera un desbordamiento de pila porque llama repetidamente a sí misma sin ningún tipo de condición final. Una función que se llama a sí misma se conoce como función "recursiva".

let f = (x) => @f(x + 1) in f(0)

Estas son algunas formas habituales de resolver un desbordamiento de pila en el código M.

  • Asegúrese de que las funciones recursivas finalicen realmente cuando se alcance la condición de finalización esperada.
  • Reemplace recursividad por iteración (por ejemplo, a través de funciones como List.Transform, List.Generate o List.Accumulate).

Expression.Error: la evaluación se ha quedado sin memoria y no puede continuar

Los errores de "memoria insuficiente" (o OOMs) pueden deberse a que se realicen demasiadas operaciones de uso intensivo de memoria en tablas muy grandes. Por ejemplo, el siguiente código M genera un OOM porque intenta cargar mil millones de filas en la memoria al mismo tiempo.

Table.Buffer(Table.FromList({1..1000000000}, Splitter.SplitByNothing()))

Para resolver errores de memoria insuficiente, optimice las operaciones de uso intensivo de memoria, como las ordenaciones, las combinaciones, la agrupación y los valores distintos, y asegúrese de que se doblen al origen o elimínelas por completo siempre que sea posible. Por ejemplo, las ordenaciones suelen ser innecesarias.

Flujos de datos

Cancelación de la actualización de flujo de datos

En ocasiones, puede ocurrir que inicie una actualización de flujo de datos, pero inmediatamente se dé cuenta de que quería modificar una cosa más antes de hacerlo. En ese caso, deberá esperar hasta que finalice la actualización. En estos momentos no se admite la detención de una actualización a mitad de camino, ya que el proceso se encuentra trabajando en la obtención de los datos y la actualización de las tablas en su espacio de trabajo o entorno.

En el futuro tenemos previsto añadir compatibilidad para cancelar una actualización del flujo de datos.