Las funciones definidas por el agraciado del Catálogo de Python de Unity (UC Python UDF) se utilizan cada vez más en el almacenamiento de datos modernos, con millones de consultas diariamente en miles de organizaciones. Estas funciones permiten a los usuarios servirse todo el poder de Python de cualquier enumeración apoderado para el catálogo de Unity, incluidos grupos, almacenes SQL y DLT.
Nos complace anunciar varias mejoras en UC Python UDFS que ahora están disponibles en tino previa pública de AWS, Azury GCP con clústeres de catálogo de la pelotón ejecutando Databricks Runtime 16.3Almacenes SQL (2025.15), y cuadernos y flujos de trabajo sin servidor:
- Soporte para dependencias personalizadas de Python, instaladas a partir de volúmenes de catálogo de Unity o fuentes externas.
- Modo de entrada por lotes, ofreciendo más flexibilidad y rendimiento mejorado.
- Seguro llegada a servicios externos en la cúmulo utilizando credenciales de servicio de catálogo de Unity.
Cada una de estas características desbloquea nuevas posibilidades para trabajar con datos y sistemas externos directamente desde SQL. A continuación, caminaremos por los detalles y ejemplos.
Uso de dependencias personalizadas en UC Python UDFS
Los usuarios ahora pueden instalar y usar dependencias de Python personalizadas en UC Python UDFS. Puede instalar estos paquetes desde Pypi, Volúmenes de catálogo de la pelotóny almacenamiento de blob. La función de ejemplo a continuación instala el Pycryptodome de Pypi para devolver los hashes SHA3-256:
Con esta característica, puede delimitar entornos de Python estables, evitar el código de calderas y avecinar las capacidades de UC Python UDFS a Pyspark UDF basados en la sesión. Las instalaciones de dependencia están disponibles comenzando con Databricks Runtime 16.3, en almacenes SQL y en cuadernos y flujos de trabajo sin servidor.
Ingreso de lotes UC Python Udfs
UC Python UDFS ahora permite que las funciones funcionen en lotes de datos, similar a Python UDF vectorizado en Pyspark. La nueva interfaz de función ofrece una flexibilidad mejorada y proporciona varios beneficios:
- La ejecución por lotes brinda a los usuarios más flexibilidad: los UDF pueden proseguir el estado entre los lotes, es proponer, realizar trabajos de inicialización costosos una vez al inicio.
- Las operaciones vectorizadas de rendimiento de UDFS en la serie Pandas pueden mejorar el rendimiento en comparación con la ejecución de la fila en el tiempo.
- Como se muestra en el ejemplo de la llamamiento de función en la cúmulo a continuación, expedir datos por lotes a los servicios en la cúmulo puede ser más rentable que invocarlos una fila a la vez.
Batch UC Python UDFS, ahora habitable en AWS, Azury GCPasimismo se conocen como pandas UDF o UDF vectorizados de Python. Se introducen marcando un UC Python UDF con pandas de estilo de parámetros y especificando una función de regulador que se llamará por nombre. La función del regulador es una función de Python que recibe un iterador de la serie Pandas, donde cada serie Pandas corresponde a un pedazo. Las funciones del regulador son compatibles con el pandas_udf API.
Como ejemplo, considere la sucesivo UDF que calcula la población por estado, basada en un mapeo de objetos JSON que se descargó en el inicio:
Comunicación a la credencial de servicio del catálogo de la pelotón
Los usuarios ahora pueden servirse Credenciales de servicio de unitética de la pelotón en lotes UC Python UDFS para lograr de guisa capaz y segura a los servicios de cúmulo externos. Esta funcionalidad permite a los usuarios interactuar con los servicios en la cúmulo directamente desde SQL.
Las credenciales de servicio UC son objetos gobernados en el catálogo de Unity. Pueden proporcionar llegada a cualquier servicio en la cúmulo, como tiendas de títulos esencia, servicios de diligencia de claves o funciones en la cúmulo. Las credenciales de servicio de UC están disponibles en todas las nubes principales y actualmente se pueden lograr desde UC Python UDFS por lotes. El soporte para UC Python UDFS ordinario seguirá en el futuro.
Las credenciales de servicio están disponibles para Batch UC Python UDFS utilizando la cláusula de credenciales en la definición UDF (AWS, Azur, GCP).
Ejemplo: chillar a una función de cúmulo desde lotes UC Python UDFS
En nuestro ejemplo, llamaremos a una función de cúmulo desde un pedazo UC Python UDF. Esta funcionalidad permite una integración perfecta con las funciones existentes y permite el uso de cualquier contenedor pulvínulo, idioma de programación o entorno.
Con un catálogo de Unity, podemos implementar una gobernanza efectiva de la credencial de servicio y los objetos UDF. En la figura preparatorio, Alicia es el propietario y definidor de la UDF. Alice puede otorgar permiso de ejecución para que el UDF Chelín. Cuando Bob flama al UDF, Catálogo de la pelotón Lakeguard Ejecutará el UDF con los permisos de credencial de servicio de Alice y garantizará que Bob no pueda lograr directamente a la credencial de servicio. UDFS usará el definitorio Permisos del agraciado para lograr a las credenciales.
Si proporcionadamente las tres nubes principales son compatibles, nos centraremos en AWS en este ejemplo. A continuación, caminaremos por los pasos para crear y chillar a la función Lambda.
Creación de una credencial de servicio UC
Como requisito previo, debemos establecer una credencial de servicio de UC con los permisos apropiados para ejecutar funciones Lambda. Para esto, seguimos las instrucciones para configurar una credencial de servicio llamado mycredential
. Adicionalmente, permitimos que nuestro papel invoque funciones al conectar el Política de awslambdarole.
Creación de una función Lambda
En el segundo paso, creamos una función AWS Lambda a través de la interfaz de agraciado de AWS. Nuestro ejemplo de lambda HashValuesFunctionNode
corre nodejs20.x
y calcula un hash de sus datos de entrada:
Invocar una lambda de un pedazo uc python udfs
En el tercer paso, ahora podemos escribir un pedazo UC Python UDF que flama a la función Lambda. El UDF a continuación pone a disposición las credenciales de servicio al especificarlas en la cláusula de credenciales. El UDF invoca la función Lambda para cada pedazo de entrada, chillar a las funciones de la cúmulo con un pedazo completo de datos puede ser más rentable que llamarlos en cuanto a filas. El ejemplo asimismo demuestra cómo reenviar el nombre del agraciado de invocación de TaskContext de Spark a la función Lambda, que puede ser útil para la atribución:
Principio hoy
Pruebe la tino previa pública de UDF de Python mejorados en el catálogo de Unity, ¡para instalar dependencias, servirse el modo de entrada por placas o para utilizar las credenciales de servicio UC!
¡Únase al equipo de productos e ingeniería de UC Compute and Spark en la cumbre Data + AI, del 9 al 12 de junio en el Moscone Center en San Francisco! Obtenga un primer vistazo a las últimas innovaciones en datos y gobernanza y seguridad de IA. ¡Regístrese ahora para estabilizar su circunstancia!