Mejora de la velocidad de transferencia de datos en el proceso ETL

Un usuario Pregunto ✅

TLP

Estamos utilizando POWERBI en nuestra organización. Tenemos datos de alrededor de 400 GB en nuestro servidor. El problema es que llevará alrededor de un día actualizar todos los paneles que se utilizarán para hacer un seguimiento y monitorear los logros diarios. ¿Hay algún método para acelerar el proceso de actualización? Por favor proporcione sus sugerencias que son muy apreciadas por nosotros.

andypeng

Para mejorar el rendimiento de la importación de grandes conjuntos de datos de Oracle Database a Power BI, la clave es ajustar el parámetro «FetchSize» en la cadena de conexión. Desafortunadamente, no hay forma de hacerlo en el conector nativo de Oracle en Power BI.

Afortunadamente, puede ajustar la cadena de conexión en el conector OleDb. En mi caso, obtuve una mejora de rendimiento de 5 veces simplemente configurando «FetchSize» en 5000.

Consulte el enlace a continuación.

https://www.thebiccountant.com/2021/01/12/your-oracle-data-import-in-power-bi-and-power-query-is-slo…

jose78

Si está hablando de un servidor de informes (en las instalaciones)…

1) ¿Cuál es su fuente de datos? Base de datos MSSQL o algo más? Por ejemplo, algunas fuentes son lentas (incluido Oracle) y es mejor cargar primero los datos en MSSQL db.

2) verifique dónde está el problema, si en el servicio de datos desde la fuente, la transferencia de red, el procesamiento (compresión de columnas) o el almacenamiento en el catálogo. Optimizas o aceleras la parte problemática.

3) verificar si el problema es genérico o específico del informe, el problema puede estar en el diseño del modelo dentro del informe.

4) intente una mejor manera para la implementación empresarial, para modelos grandes use el modo tabular SSAS dedicado, use carga incremental y opciones y beneficios de procesamiento adicionales, y use Power BI solo como herramientas de visualización…

TLP

En respuesta a jose78

Hola,

Gracias por tu ayuda. Estamos utilizando bases de datos ORACLE.

jose78

En respuesta a TLP

Conectarse a Oracle DB para tablas grandes es muy complicado y es odiado por parte de Oracle.

El rendimiento depende mucho del tipo y la versión de Oracle Client.

Oracle ODP.NET (que se usa en el conector de «base de datos Oracle» en Power BI) y los conectores ODBC son muy lentos, independientes de la versión y no se pueden usar para tablas grandes.

Poco mejor es con el proveedor Oracle OLEDB.
La configuración predeterminada es lenta, igual que la anterior, pero con algunas configuraciones de registro (o cadena de conexión) de FetchSize, puede obtener un aumento significativo del rendimiento (alrededor de 3x a 5x dependiendo de la versión) si cambia el valor predeterminado 100 al valor 1000 o más (valores más altos trae solo un impulso mínimo, pero crea otros problemas en caso de que muchos se carguen en paralelo). Es una gran mejora, pero lo mejor es que lo que se gana es mucho más lento que la solución de la competencia.

Otra complicación es la versión, Oracle OLEDB funciona bien solo en la versión 12.1 del cliente, pero esta versión ahora no es compatible. En la versión 12.2 (y también 18.3), Oracle implementó un error de memoria, que para la transferencia de una tabla grande consume una gran cantidad de memoria (el conector consume aproximadamente 4 GB de RAM, para importar una tabla de 400 MB). En la versión 19.3, Oracle implementó otro error, también para tablas grandes, cuando cada tabla durante la transferencia se ralentiza rápidamente (aproximadamente a la mitad cada 15 minutos).

Actualmente, la mejor solución para tablas grandes de Oracle es usar un conector de terceros (por ejemplo, https://www.progress.com/odbc/oracle-database), que es mucho mejor que Oracle OLEDB. O use la extracción en dos pasos, primero extraiga los datos de Oracle a MSSQL usando SSIS con el conector de Oracle provisto por Microsoft https://www.microsoft.com/en-us/download/details.aspx?id=58228) y luego cárguelos a Power BI desde MSSQL (aunque en dos pasos, es aún más rápido que Oracle OLEDB).

lbendlin

necesita más detalles. ¿Qué base de datos? ¿Admite operaciones masivas? ¿El destino tiene índices? En caso afirmativo, ¿los está eliminando antes de importarlos?

TLP

En respuesta a lbendlin

Tipo de base de datos: Oracle

Sin indexación

lbendlin

Utilice fuentes de datos CSV siempre que sea posible. (Los flujos de datos también son básicamente montones de archivos CSV, por lo que son una buena segunda opción)

TLP

En respuesta a lbendlin

Gracias por brindarnos su ayuda. Actualmente estamos acumulando transferencias de datos DB a DB. ¿Alguna sugerencia sobre cómo mejorar la velocidad de transferencia de datos de DB a DB?

farhanahmed

En respuesta a TLP

¿Puedes explicar un poco más?

¿Está intentando actualizar datos de Oracle a Power BI? ¿O está intentando actualizar los datos primero de Oracle a SQL Server y luego a Power BI?

¿Es necesario importar todos los datos (400GB) en Power BI? Dado que la actualización de datos lleva demasiado tiempo, ¿puede probar la consulta directa?

https://docs.microsoft.com/en-us/power-bi/connect-data/power-bi-data-sources

https://docs.microsoft.com/en-us/power-bi/connect-data/desktop-use-directquery

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *