Descripción general
MaxFrame es un framework de cómputo distribuido de Alibaba Cloud MaxCompute que cuenta con una interfaz de programación en Python. Resuelve dos desafíos clave del procesamiento tradicional de datos en Python: los cuellos de botella de rendimiento y el movimiento ineficiente de datos. Con MaxFrame, procese y analice datos a escala de petabytes directamente en MaxCompute para exploración visual de datos, cómputo científico, aprendizaje automático y desarrollo de IA.
Escenarios de uso
Exploración interactiva de datos
Explore, manipule y visualice conjuntos de datos masivos en tiempo real sin límites de memoria, igual que lo haría en un Jupyter Notebook local.
Preprocesamiento de datos a gran escala (ETL)
Reemplace la lógica compleja de SQL+UDF por código Python expresivo y fácil de mantener. Así podrá limpiar datos de varios terabytes, convertir formatos y aplicar ingeniería de funciones con el rendimiento de la ejecución distribuida.
IA y aprendizaje automático
MaxFrame unifica el procesamiento de datos y el entrenamiento de modelos. Prepare los datos de entrenamiento de forma eficiente y utilice la función de imagen para importar bibliotecas como Scikit-learn y XGBoost en flujos de trabajo de IA de extremo a extremo.
Notas de uso
Regiones compatibles
China (Hangzhou), China (Shanghai), China (Beijing), China (Shenzhen), China (Hong Kong), Japan (Tokyo), Singapore, Indonesia (Jakarta), Germany (Frankfurt), US (Silicon Valley) y US (Virginia).
Entornos compatibles
Entorno de desarrollo local de Python.
MaxCompute Notebook.
DataWorks Notebook.
Nodos de tarea PyODPS 3 de Data Development en DataWorks.
Facturación
MaxFrame factura según el uso de recursos de cómputo por cada trabajo. Admite la facturación y por suscripción.
Subscription: los trabajos consumen la cuota del resource group adquirido sin costo adicional.
Ventajas principales
MaxFrame ofrece ventajas clave frente a otras herramientas de Python para MaxCompute:
API compatible con Pandas: migre su código existente de Pandas a MaxCompute con cambios mínimos, lo que reduce los costos de aprendizaje y migración.
Ejecución distribuida en el servidor: los trabajos se ejecutan dentro del clúster de MaxCompute sin transferir datos a su computadora local. Esto elimina los cuellos de botella de memoria del cliente y permite el procesamiento a escala de petabytes.
Recursos de cómputo elásticos: al construirse sobre la arquitectura serverless de MaxCompute, MaxFrame asigna recursos bajo demanda. Procese datos a cualquier escala sin gestionar clústeres.
Entorno de desarrollo simplificado: incluye entornos integrados de Python 3.7 y Python 3.11 con bibliotecas preinstaladas como Pandas y XGBoost. Agregue dependencias de terceros mediante anotaciones sencillas, sin empaquetar manualmente ni cargar UDF.
A continuación se muestra una tabla que compara MaxFrame con otras herramientas de desarrollo en Python:
|
Elemento de comparación |
MaxFrame |
PyODPS |
Mars |
SQL+UDF |
|
API de desarrollo |
Compatible con Pandas. |
La sintaxis y la API difieren significativamente de Pandas DataFrame. |
Requiere usar dos conjuntos de API: SQL y Python. |
|
|
Procesamiento de datos |
Los datos permanecen en el servidor durante la ejecución, por lo que no se requiere transferencia local y mejora la eficiencia. |
El método |
Ejecución distribuida solo para algunos operadores. Requiere crear un clúster durante la inicialización; resulta lento y poco estable. |
Trabajos distribuidos mediante MaxCompute SQL. |
|
Recursos de cómputo |
No está limitado por los recursos locales, lo que supera los cuellos de botella de Python en una sola máquina. |
Limitado por los recursos locales. |
Limitado por el tamaño de los recursos. Es obligatorio especificar los workers, la CPU y la memoria. |
Cómputo elástico para trabajos SQL mediante MaxCompute serverless. |
|
Experiencia de desarrollo |
Desarrollo interactivo y programación sin conexión listos para usarse. Incluye bibliotecas comunes integradas. Gestione las dependencias mediante anotaciones, sin empaquetar manualmente. |
Desarrollo interactivo y programación sin conexión listos para usarse. |
Requiere configurar un entorno de ejecución e iniciar un clúster de Mars. |
Las dependencias de las UDF de Python se deben empaquetar y cargar manualmente. |
Funcionamiento
MaxFrame abstrae la complejidad del cómputo distribuido. El flujo de trabajo es el siguiente:
Envío de código: escriba y ejecute código Python en un cliente, como un Notebook. El SDK de MaxFrame captura el código y lo envía a MaxCompute.
Análisis y optimización: el motor de ejecución de MaxCompute analiza la sintaxis, optimiza la lógica y transforma el trabajo en un plan físico paralelo.
Ejecución distribuida: la tarea optimizada se distribuye entre los nodos de cómputo del clúster de MaxCompute, los cuales leen los datos y procesan en paralelo.
Devolución de resultados: los resultados se agregan y se devuelven a su cliente.