Compartir a través de


Problemas comunes

Power Query

Conservación del criterio de ordenación

Puede suponer que si ordena los datos, las operaciones de bajada conservan 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, es posible que se espere que realizar una operación "Quitar duplicados" devuelva solo la venta superior para 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 algunos casos, esta operación hace 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

A veces, Power Query podría detectar incorrectamente 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. (Tenga en cuenta que un tipo incorrecto no siempre generará errores. A veces, los valores resultantes son simplemente incorrectos, lo que dificulta 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 deduce el tipo de datos de la columna como Número entero (Int64.Type). Esta inferencia da lugar a que se truncan las partes decimales de los números no enteros.

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 deduce el tipo de datos de la columna como Date. Esta inferencia da como resultado que los valores de texto no fecha 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 está intentando conectarse a Power Platform (por ejemplo, flujos de datos de Power Platform) o al servicio Power BI, necesita uno de esos 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 próxima versión de Power BI Desktop provoca un error de conexiones SSL desde Desktop cuando faltan certificados en la cadena SSL. 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.

Como hay configuraciones en las que se podría quitar el estado de revocación, como con servidores proxy corporativos, proporcionaremos otra opción para omitir los certificados que no tienen información de revocación. Esta opción permite situaciones en las que la información de revocación se quita en determinados casos, pero no desea reducir completamente la seguridad, para seguir trabajando.

No se recomienda, pero los usuarios pueden seguir desactivando completamente las comprobaciones de revocación.

Error: se canceló la evaluación

Power Query devuelve el mensaje "Se canceló la evaluación" cuando el análisis en segundo plano está deshabilitado y el usuario cambia entre consultas o cierra el Editor de Power Query mientras una consulta está en proceso de actualización.

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

Hay muchas razones por las que Power Query podría devolver un error que 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. Entre los motivos por los que puede producirse este error se incluyen:

  • 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.
  • Puede haber varias credenciales para un único origen de datos, que no se admite en el servicio Power BI cuando se usan conexiones personales en la nube. Este error puede producirse, por ejemplo, cuando el origen de datos es un origen de datos en la nube y se usan 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 configuradas con "autenticación de Windows a través de la puerta de enlace*. Las cuentas de Windows que se usan para acceder a un origen de datos pueden requerir 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.