OData: Buenas prácticas y resolución de problemas
Aproveche al máximo su cliente OData con estas prácticas recomendadas y sugerencias para la resolución de problemas.
Rendimiento
El rendimiento de los servicios OData depende de los tipos de datos a los que accede. Por ejemplo, la lectura de 1 millón de puntos de datos lleva entre 2:30 y 3:00 minutos (6000 puntos de datos por segundo). Cada solicitud completa tarda un promedio de 120 ms y el cliente OData puede agregar sobrecarga adicional para el procesamiento y manejo de datos.
Siga estas buenas prácticas generales para asegurarse de obtener el mejor y más confiable rendimiento:
- No utilice expresiones
OR
ni tablas expandibles. - Utilice múltiples consultas cuando sea posible.
- Utilice la actualización incremental.
- Si es posible, divida los conjuntos de datos.
- Guarde solo los datos que necesita. Elimine columnas y datos innecesarios.
- Mantenga los datos históricos en un informe separado si no necesita los datos diariamente. Actualice el informe de datos históricos cuando los necesite.
Escribir consultas de rendimiento
Los servicios OData aceptan varias solicitudes simultáneas y procesan las solicitudes en paralelo. Los clientes OData también tienen la capacidad para enviar varias consultas al mismo tiempo cuando es posible.
Es mejor redactar y usar consultas múltiples en lugar de una única consulta compleja con, por ejemplo, expresiones OR
o expansiones. Una sola consulta compleja debe iterarse secuencialmente con la latencia de ida y vuelta agregada para cada solicitud.
Descargue los datos mediante varias consultas y una las tablas resultantes en su cliente OData para trabajar con las tablas como si fueran una sola.
Utilice la actualización incremental
La actualización incremental permite trabajar con grandes conjuntos de datos con los siguientes beneficios:
- Solo es necesario actualizar los datos modificados.
- No tiene que mantener conexiones persistentes con los sistemas de origen.
- Al haber menos datos para actualizar, se reduce el consumo general de memoria y otros recursos.
Cada cliente OData puede tener diferentes características de actualización incremental. Para Microsoft Power BI, consulte Actualización incremental para modelos semánticos en Power BI.
Partición de grandes conjuntos de datos
Si necesita descargar grandes conjuntos de datos, intente particionarlos y tenga una consulta separada para leer cada partición. Algunos clientes OData, como Microsoft Power BI, pueden procesar varias consultas simultáneamente. Particionar el conjunto de datos puede mejorar significativamente el rendimiento.
Por ejemplo, si lee puntos de datos de los últimos dos años, intente dividir la consulta en dos, cada una de las cuales leerá un año de datos. Luego combine (concatene) las tablas en Power BI.
Nomenclatura de propiedades en metadatos y CDF RAW
Las claves de propiedad para los metadatos y el área de preparación CDF (RAW) deben ser identificadores válidos y solo pueden contener letras, números o guiones bajos. Los servicios OData reescriben cualquier otro carácter como un guion bajo. Para obtener los mejores y más predecibles resultados, asegúrese de que los datos introducidos sigan esta convención de nomenclatura para las claves de propiedad: ^[a-zA-Z][_a-za-z0-9]\*[a-zA-Z0-9]\$
.
Solución de problemas
Encuentre información que lo ayude a solucionar problemas al usar CDF como fuente de datos para clientes OData.
Las consultas tardan demasiado
Un proyecto de CDF puede contener cientos de millones de filas de datos y no es factible cargarlas a todas en un cliente OData. Si su consulta tarda horas en ejecutarse, lo más probable es que esté intentando cargar demasiados datos.
Consulte Filtrar elementos en modelos de datos y Filtrar tipos de recursos centrados en activos para obtener más información sobre las funciones de filtrado que admiten los servicios OData.
No se obtienen todos los resultados
Si obtiene menos resultados de los esperados, es posible que esté utilizando una función de filtrado que CDF no admite, por ejemplo startswith
en la columna Nombre en series cronológicas.
Consulte Filtrar elementos en modelos de datos y Filtrar tipos de recursos centrados en activos para obtener más información sobre las funciones de filtrado que admiten los servicios OData.
No se pueden recuperar los valores mínimos de CDF RAW
Si usa datos del área de preparación de CDF (CDF RAW) en un cliente OData, puede experimentar problemas al recuperar números pequeños en notación exponencial.
CDF RAW no tiene un esquema, pero las bibliotecas OData en algunos clientes OData, como Power BI, intentan seleccionar el formato correcto para los datos. Actualmente, Power BI elige el decodificador incorrecto para números pequeños en notación exponencial y es posible que obtenga un error similar a este:
DataSource,Error: OData: Cannot convert the literal '2.89999206870561 to the expected type 'Edm.Decimal',
Para resolver este problema, incorpore los valores en CDF RAW como cadenas en lugar de números y convierta las cadenas nuevamente en números en Power BI, por ejemplo, usando la función Decimal.From
del lenguaje M de Power Query. No perderá precisión y, dado que la mayoría de los decodificadores JSON aceptan cadenas para números, los clientes que esperan números seguirán funcionando.