Power BI: Conexión a fuentes de datos únicas con conectores personalizados
Descubre cómo los conectores personalizados de Power BI mejoran el acceso, la seguridad y la facilidad de uso de fuentes de datos complejas. Obtén autenticación personalizada, transformaciones más fluidas y conéctate a fuentes no compatibles de forma nativa, maximizando tu integración con Power BI.
Power BI es una herramienta muy potente cuando se trata de integración de datos. Ofrece una gran variedad de conectores que te permiten extraer datos de todo tipo de fuentes. Sin embargo, a veces incluso esos conectores no ofrecen la funcionalidad necesaria. Es entonces cuando entran en juego los conectores personalizados. En este artículo exploraremos las capacidades y limitaciones de los conectores personalizados, cómo pueden ser beneficiosos para tu organización y qué esperar si decides crear un conector para tu fuente de datos no soportada.
Conectores personalizados en Power BI
¿Por qué no utilizar un conector genérico como el ODBC o los conectores web que ofrece Power BI?
Aunque estos conectores ofrecen flexibilidad y libertad a la hora de elegir la fuente de datos, no son compatibles con todo. Por ejemplo, el conector web integrado, que suele utilizarse para conectarse a una API REST, no gestiona la autenticación de tipo OAuth2. Se podría argumentar que esto se puede solucionar en las consultas de Power Query, pero en general, no es una opción segura ni fiable. El conector personalizado difiere de esta solución en la forma en que maneja la autenticación. Dado que el conector crea una fuente de datos reconocida, Power BI es capaz de almacenar nombres de usuario/contraseña o identificadores de cliente/secretos de cliente sin necesidad de codificarlos en la consulta o generar un nuevo token en cada llamada a la API.
Entre otras ventajas de utilizar un conector personalizado están las transformaciones predefinidas. ¿Por qué definir el proceso de transformación muchas veces en tu organización cuando puedes definirlo en un solo lugar -tu conector personalizado- y luego utilizarlo tantas veces como desees? Esto puede utilizarse para facilitar la preparación y limpieza de datos u otras tareas repetitivas en las que tu equipo analítico invierte demasiado tiempo.
Usos frecuentes
Para ilustrar mejor este punto, he aquí algunas situaciones comunes en las que el uso de un conector personalizado sería una solución útil:
Sistemas propios o internos
La empresa utiliza un sistema CRM o ERP propio o interno que no es compatible con los conectores integrados de Power BI.
Fuentes de datos específicas por sector
Las organizaciones de sectores como la atención médica, las finanzas, la logística o la hostelería suelen utilizar plataformas específicas del sector que no disponen de conectores.
Sistemas legados
Muchas organizaciones tienen sistemas legados que son críticos para sus operaciones. Muchos de ellos carecen de capacidades modernas de integración de datos. El uso de un conector personalizado permite adaptar la solución específicamente a tu sistema legado.
Mayores requisitos de seguridad y cumplimiento
Los conectores personalizados pueden desarrollarse para cumplir normas de seguridad y requisitos de cumplimiento específicos, lo que los convierte en una buena opción para garantizar un acceso a los datos seguro y conforme a la normativa.
Mecanismos de autenticación personalizados
En situaciones en las que existen mecanismos de autenticación únicos o complejos, el desarrollo de un conector personalizado permite conectarse a una fuente de datos con determinados requisitos.
Como puedes ver, los conectores personalizados aportan valor sobre todo cuando se trata de mejorar la seguridad y las soluciones de nicho. Pero también son un activo valioso en grandes empresas donde permiten a los no profesionales de Power BI conectarse a fuentes que requerirían difíciles transformaciones y preparación de datos. Con un conector con transformaciones predefinidas todos pueden visualizar sus datos.
Requisitos para desarrollar un conector personalizado
Antes de decidirte a lanzarte al desarrollo de un conector personalizado, deberías dominar el Lenguaje M y Power query. El conector se crea en Visual Studio Code utilizando la extensión Power Query SDK y el proceso de desarrollo puede ser bastante complicado al principio, especialmente si tienes poca experiencia con esas herramientas. Todo el proceso de configuración del entorno de desarrollo se puede encontrar aquí.
A la hora de desarrollar un conector de datos, es esencial conocer a fondo la fuente de datos, así como los requisitos del producto final. Vale la pena hacer énfasis en que un conocimiento profundo de la fuente de datos es crucial para crear un conector eficaz.
Dedica tiempo a comprender realmente los datos que circulan por tu sistema y analiza todos los posibles contratiempos que puedas encontrar a causa de ellos. A continuación, plantéate qué tipo de datos necesitas exactamente de la fuente y en qué forma te gustaría que se recuperaran. Esto te ahorrará mucho tiempo en el proceso de desarrollo.
Guía paso a paso para crear un conector personalizado
Una vez que hayas recopilado los requisitos empresariales para el nuevo conector personalizado y hayas realizado un análisis exhaustivo de la fuente de datos que pretendes utilizar, es hora de pasar directamente al desarrollo. Si ésta será la primera vez que desarrollas un conector personalizado de Power BI, es una buena idea repasar el tutorial de TripPin disponible en la documentación de Microsoft. Esta guía te mostrará lo esencial del desarrollo de conectores personalizados. Dado que esta guía paso a paso cubre la mayoría de los conceptos de este artículo, nos centraremos más en lo que podríamos llamar las mejores prácticas de desarrollo de conectores personalizados.
Aunque el orden generalmente no importa, cada conector debe comenzar con la definición de la fuente de datos.
Lo que puedes ver justo arriba son las funciones DataSource.Kind y Publish que definen como Power BI ve tu conector. En la segunda línea hay una función compartida que funciona como bloque principal de tu conector. Es lo primero que se procesa cuando se inicializa el conector. Esta función utiliza Value.ReplaceType para llamar a NavTable y Type. Puedes encontrar más información sobre la definición de fuentes de datos en la documentación de Power Query.
DataSource.Kind define el tipo de autenticación y la etiqueta de visualización. Ten en cuenta que puedes definir múltiples tipos de autenticación para tu fuente de datos permitiendo al usuario la posibilidad de elegir. Más información sobre autenticación aquí.
El objeto Publish se utiliza para definir cómo Power BI presenta tu conector en la lista de conectores. Puedes definir la categoría, la etiqueta y las imágenes de origen.
El atributo ButtonText recibe una lista de dos valores. El primero es el nombre que se muestra en la lista de conectores y el segundo es un tooltip que se muestra al pasar el cursor por encima.
Puedes ver que los atributos SourceImage y SourceTypeImage hacen referencia a otro objeto. YourCustomConnectorName.Icons es un objeto que contiene rutas a iconos que el conector utiliza con la función Extension.Contents(). Utiliza un software como Gimp para crear los iconos en los tamaños requeridos.
Es una buena práctica inicializar las variables globales al principio del código. Cuando te conectes a una API, puedes configurar las cabeceras o incluir una clave de API para la autenticación desde ya. Además, si quieres dar a los usuarios la posibilidad de elegir entre varios puntos finales de API más adelante, puedes definir estos puntos finales ahora. De este modo, podrás integrarlos fácilmente en la interfaz de usuario y utilizarlos en las consultas a fuentes de datos.
La función Extension.CurrentCredential()[Key] se utiliza para obtener la clave del formulario de autenticación.
A continuación definiremos el objeto Type. Este objeto establece la interfaz de usuario para tu conector utilizando la Documentación y las funciones de formateo en código M.
Aunque hay algunos problemas como los conflictos de Documentation.Description y la interfaz de usuario es bastante limitada, todavía se puede crear una interfaz de usuario funcional y fácil de usar para tu conector.
El otro objeto que hemos utilizado antes, pero que todavía no está definido es la NavTable o tabla de navegación. Si has seguido el tutorial de TripPin ya estarás familiarizado con el concepto de tablas de navegación. En resumen, es una tabla que te permite navegar en tu fuente de datos usando transformaciones predefinidas. En el ejemplo TripPin de Microsoft esta tabla se ha utilizado para elegir entre los puntos finales del servicio TripPin REST.
La columna Data contiene las consultas predefinidas a tu fuente de datos. Otra nota útil es el uso de funciones de ayuda de Microsoft. En este caso se trata de la función Table.ToNavigationTable. Esta función no está predefinida y tendrás que definirla manualmente. Por suerte, Microsoft ya se ha encargado de esa parte por ti, mira aquí.
Ahora que ya tienes las partes necesarias completas, viene la parte divertida. Es el momento de definir las consultas reales a tu fuente de datos tal y como las pusiste en la tabla de navegación. Este proceso es lo que estás acostumbrado a hacer en Power Query pero enmarcado en una función. Sugiero ejecutar las consultas simultáneamente en Power Query para solucionar problemas y depurar tu código.
Pon a prueba tu conector
Hasta ahora todo tu trabajo ha estado en el archivo .pq de tu proyecto. Sin embargo, si quieres probar el conector sin construirlo e importarlo a Power BI el SDK de Power Query te da la opción en el archivo .query.pq que se parece a este.
El SDK de Power Query no ejecutará el conector completo, así que no esperes ver la interfaz de usuario. Tienes que codificar el parámetro para la función compartida que definimos al principio. Lo que ves arriba es lo que el usuario verá si abre el editor avanzado cuando utilice tu conector en una consulta Power Query.
Para ejecutar la prueba, primero tienes que configurar las credenciales. El SDK te permite elegir el método de autenticación e introducir tus credenciales. Después pulsa Evaluate current file. En nuestro caso deberías poder ver el contenido de tu tabla de navegación. Más información sobre el uso de Power Query SDK para ejecutar pruebas aquí.
Implementación del conector
Si realmente quieres ver tu conector en acción, tendrás que crear un archivo .mez. Este archivo traduce el conector para Power BI y te permite utilizarlo en tu aplicación de desktop.
Usa Ctrl+Shift+B o ve a la sección Terminal > Run Build Task... y selecciona la compilación MakePQX. Esto creará un archivo .mez en la ruta /bin/AnyCPU/Debug de tu proyecto. Para ejecutar el conector desde Power BI debes copiar este archivo dentro de la ruta [[Documents]\Microsoft Power BI Desktop\Custom Connectors.
Lo último antes de poder utilizar el conector en Power BI es autorizar la ejecución de «Any extension to run without validation or any warning». Encontrarás esta opción en Options and Setting > Options > Security > Data Extensions.
Ahora todo lo que tienes que hacer es reiniciar Power BI, elegir tu conector de la lista de conectores disponibles y cargar los datos en Power Query.
Implementación en Power BI Service
Los conectores personalizados no son compatibles con Power BI Service por defecto. Para utilizarlos en Power BI Service es necesario que Microsoft certifique el conector. Con esta certificación Power BI Service podrá leer el conector personalizado a través de tu pasarela de datos locales y realizar actualizaciones a través de esta conexión. Puedes encontrar más información sobre cómo configurar esta conexión con un conector certificado aquí.
Problemas comunes y consejos para resolverlos
Desarrollar un conector personalizado puede ser una tarea difícil, sobre todo si se hace por primera vez. Estos son algunos de los retos más comunes que te puedes encontrar y consejos para afrontarlos.
Optimización del rendimiento
Cuando se trabaja con grandes conjuntos de datos o consultas complejas, es posible que surjan problemas de rendimiento. Los problemas de rendimiento son más comunes entre los conectores personalizados que entre los integrados.
- Optimiza tus consultas para recuperar sólo los datos necesarios.
- Implementa la paginación o el procesamiento por lotes para grandes cantidades de datos.
- Simplifica las consultas.
Tratamiento y depuración de errores
No hay una manera fácil de depurar tu código M. Puedes probar tus consultas en el Advanced Editor en Power Query pero otros bloques de código en tu conector pueden no ser tan fáciles de depurar.
- El foro es tu mejor amigo. No dudes en preguntar.
- Divide el proceso en partes más pequeñas y manejables.
Límites y cuotas de las fuentes de datos
Puede darse el caso de que, por ejemplo, la API con la que trabajas no te permita recuperar todos los datos de la fuente debido a los límites establecidos. En algunos casos, superar el límite puede dar lugar a un bloqueo temporal.
- Optimiza tus consultas para realizar el menor número de llamadas a la fuente.
- Implementa una lógica de reintento si es necesario.
- Conoce tu fuente de datos.
Compatibilidad y actualizaciones
La mayoría de las API tienen la desagradable costumbre de cambiar. Algunos de los cambios menores pueden incluso pasar desapercibidos y otros pueden llegar a romper tu conector por completo.
Tenlo en cuenta a la hora de desarrollar. Desarrolla un plan de mantenimiento para actualizar y probar el conector periódicamente. Si la API proporciona versiones, utilízalas.
Escribe un código limpio y fácil de gestionar que puedas actualizar cuando sea necesario sin tener que reconstruir el conector desde cero.
Conclusión
La creación de un conector personalizado en Power BI puede mejorar significativamente tus capacidades de integración de datos, permitiéndote conectar con fuentes de datos únicas o propias que no son compatibles con los conectores integrados. Aunque el proceso implica varios retos, como la gestión de la autenticación, el manejo de diversos formatos de datos y la optimización del rendimiento, estos obstáculos pueden superarse con una planificación cuidadosa y un enfoque metódico.
Si deseas desarrollar conectores personalizados o necesitas ayuda con Power BI, nuestros servicios de consultoría pueden proporcionarte la experiencia y el apoyo que necesitas. Tenemos experiencia en la creación e implementación de conectores personalizados que satisfacen diversos requisitos empresariales, garantizando una integración de datos perfecta y análisis robustos.
¿Quieres liberar todo el potencial de tus datos con conectores personalizados en Power BI? Ponte en contacto con nosotros hoy mismo para saber cómo podemos ayudarte a desarrollar, implementar y mantener conectores personalizados que se adapten a tus necesidades empresariales específicas. Visita nuestro sitio web para obtener más información y para programar una consulta con nuestros expertos.