DataWorks Notebook ofrece un entorno interactivo donde usted combina celdas de Python, SQL y Markdown. Con este entorno se conecta a motores de cómputo como MaxCompute, EMR y AnalyticDB para procesar datos, realizar análisis exploratorios, generar visualizaciones y desarrollar modelos.
Inicio rápido: ejecute su primer notebook en 5 minutos
Cree un notebook, pase un parámetro de Python a SQL y consulte una tabla de MaxCompute.
Requisitos previos
La función Data Studio está habilitada para su espacio de trabajo.
Usted cuenta con un serverless resource group.
-
Usted cuenta con una instancia de entorno de desarrollo personal (obligatoria para notebooks con celdas de Python).
Si aún no ha creado una: Create a personal development environment instance .
Procedimiento:
-
Cree un nodo de notebook
Vaya a Data Studio. En la sección DataStudio del Project Directory, cree un nuevo nodo de notebook.
Introduzca un nombre para el notebook, por ejemplo,
hello_notebook, y envíelo.
-
Seleccione un entorno de desarrollo personal
En la barra de navegación superior, haga clic en Personal development environment y seleccione su instancia de entorno de desarrollo personal en la lista desplegable.
-
Escriba una celda de Python para definir un parámetro
Defina una variable de ciudad para la consulta SQL.
# Define a variable for the subsequent SQL query city = 'Beijing' print(f"Defined city variable city = {city}") -
Escriba una celda de SQL para consultar datos
Debajo de la primera celda, agregue una nueva celda de SQL.
En la esquina inferior derecha de la celda, cambie el tipo de SQL a
MaxCompute SQL.-
Introduzca el siguiente código SQL. Este hace referencia a la variable
cityde la celda de Python mediante la sintaxis${city}.-- Query data using the variable defined in Python SELECT '${city}' AS city;
-
Ejecute las celdas y consulte los resultados
Haga clic en el botón Run All de la barra de herramientas del notebook.
-
Observe la ejecución de cada celda:
La celda de Python muestra
Defined city variable city = Beijing.Debajo de la celda de SQL se muestra una tabla con el resultado de la consulta.
Con esto, usted creó y ejecutó un notebook con interacción entre Python y SQL.
Conceptos principales
Comprenda estos conceptos para que el comportamiento del notebook sea consistente entre los entornos de desarrollo y producción.
Modos de notebook
DataWorks Notebook funciona en dos modos:
Modo SQL y Markdown (predeterminado): admite únicamente celdas de SQL y Markdown para consultar datos y documentar. Solo requiere un serverless resource group, sin necesidad de una instancia de entorno de desarrollo personal. En la esquina superior derecha aparece SQL Kernel.
Modo completo (Python + SQL + Markdown): es compatible con celdas de Python, SQL y Markdown para procesar datos, analizarlos y visualizarlos. Ejecutar código Python requiere una instancia de entorno de desarrollo personal. Una vez que seleccione una, la versión del kernel aparece en la esquina superior derecha, por ejemplo,
(la versión es solo de referencia).
Entorno de desarrollo frente a entorno de producción
Elemento | Entorno de desarrollo | Entorno de producción |
Entorno de ejecución | Instancia de entorno de desarrollo personal | El Resource Group y la Image especificados en la configuración de scheduling |
Diferencias clave | Los notebooks con celdas de Python usan una instancia de desarrollo dedicada donde usted instala libremente bibliotecas de Python para depurar. Para notebooks que solo contienen celdas de SQL y Markdown, basta con un serverless resource group. | Las tareas se ejecutan en el resource group definido en la configuración de programación. Esto aplica tanto si se activan periódicamente desde Operation Center como manualmente desde Data Studio. El entorno (bibliotecas, acceso a la red, etc.) depende de su imagen y de su resource group. |
Garantizar la consistencia | Si instaló paquetes de Python con Importante Conectividad de red: un entorno de desarrollo personal no vinculado a una VPC tiene acceso limitado a la red pública de forma predeterminada. El acceso a la red de un notebook desplegado depende de su resource group. Vincule su entorno de desarrollo personal al mismo resource group que usa para la programación y garantice así la consistencia. | |
Recursos de cómputo y kernels
Dos conceptos determinan cómo se ejecuta el código: el recurso de cómputo y el kernel.
-
Recurso de cómputo: motor de cómputo de backend que ejecuta y procesa las tareas de datos. Define el entorno de ejecución y la capacidad de procesamiento.
Definición: instancia de servicio de cómputo independiente y programable, como un proyecto de MaxCompute o un clúster de EMR Serverless Spark.
Función: proporciona la capacidad de cómputo real para consultas SQL, trabajos de Spark y otras tareas.
Selección: vincule cada tarea a un recurso de cómputo específico.
-
Kernel: analiza sintácticamente y ejecuta el código de una celda. Determina qué lenguaje de programación se utiliza.
-
Kernel de Python:
Función: ejecuta código Python y admite lógica compleja para procesar datos, implementar algoritmos y orquestar tareas.
Modelo de interacción: dentro del kernel de Python, usted utiliza
Magic Commands(como%sql) o SDK para enviar una tarea de cómputo (por ejemplo, una consulta SQL) a un recurso de cómputo específico. Después recupera los resultados para analizarlos más a fondo.
-
Kernel de SQL:
Función: interpreta y envía directamente las consultas escritas en SQL.
Modelo de interacción: el kernel de SQL reenvía las instrucciones SQL directamente al recurso de cómputo de backend designado (por ejemplo, una sesión de EMR Spark SQL o de MaxCompute SQL) para su ejecución.
-
Kernel de Markdown:
Función: renderiza texto enriquecido con formato Markdown. No ejecuta ninguna lógica de cómputo.
-
Resumen de la relación:
El kernel es el intérprete de lenguaje del frontend que determina "qué escribe usted" (Python o SQL).
El recurso de cómputo es el motor de ejecución del backend que determina "dónde se ejecuta el código" (en MaxCompute o en Spark).
Tipos de directorios y casos de uso
El lugar donde usted crea un notebook define su alcance de colaboración, sus permisos y sus opciones de despliegue.
|
Tipo de directorio |
Caso de uso |
Colaboración y despliegue |
|
Workspace Directories |
Colaboración en equipo y tareas de producción programadas. Los nodos se comparten dentro del espacio de trabajo y siguen un flujo de trabajo de desarrollo, confirmación y despliegue. |
Colaboración multiusuario. Los nodos deben desplegarse en producción para ejecutarse de forma programada. |
|
Personal Directory |
Desarrollo y depuración individuales. Es privado para usted y sirve para scripts personales o tareas temporales. |
Visible solo para usted. Para programar un nodo, primero debe confirmarlo en Workspace Directories y luego desplegarlo. |
Desarrolle y depure un notebook
Data Studio no guarda automáticamente de forma predeterminada. Guarde manualmente para evitar perder código, o bien habilite el guardado automático en Setup > Files: Auto Save.
Si el notebook presenta lentitud o deja de responder, haga clic en el botón Restart de la barra de herramientas superior para reiniciar el kernel.
Gestión de celdas
Agregar una celda: coloque el cursor sobre el borde superior o inferior de una celda y haga clic en un botón como + SQL, o bien utilice los botones de la barra de herramientas.
Cambiar el tipo de celda: haga clic en el identificador de tipo (por ejemplo,
Python) en la esquina inferior derecha y seleccione uno nuevo, comoSQLoMarkdown. El código se conserva, pero podría requerir modificaciones.Mover una celda: coloque el cursor sobre la línea vertical azul a la izquierda de una celda. Luego, haga clic y arrástrela para cambiar su orden.
-
Ejecutar celdas:
Ejecutar una sola celda: haga clic en el ícono Run a la izquierda de la celda.
Ejecutar todas las celdas: haga clic en el botón Run All de la barra de herramientas superior del notebook.
Paso de parámetros
Pasar variables de Python a SQL
Haga referencia a variables de Python en celdas de SQL mediante el formato ${variable_name}.
Ejemplo:
-
Celda de Python
table_name = "dwd_user_info_d" limit_num = 10 -
Celda de SQL
SELECT * FROM ${table_name} LIMIT ${limit_num};
Pasar resultados de SQL a Python
Cuando una celda de SQL ejecuta una consulta SELECT, el resultado se convierte automáticamente en una variable DataFrame. Usted puede utilizarla en las celdas de Python posteriores.
Si una celda contiene varias instrucciones SQL, solo el resultado de la última se guarda en la variable DataFrame.
Nombre de la variable: el nombre predeterminado comienza con
df_. Haga clic en el nombre de la variable, ubicado en la esquina inferior izquierda de la celda de SQL, para cambiarlo.-
Tipo de variable:
Si se admiten varios tipos de variables, cambie el tipo al hacer clic en el nombre del DataFrame en la esquina inferior izquierda.
Para MaxCompute SQL, son compatibles los objetos
Pandas DataFrameyMaxCompute MaxFrame.Para ADB Spark SQL, son compatibles los objetos
Pandas DataFrameyPySpark DataFrame.Para otros tipos de SQL, se genera un objeto
Pandas DataFrame.
Consulte el linaje de datos (Beta)
Regiones compatibles: China (Hangzhou), China (Shanghai), China (Beijing), China (Zhangjiakou), China (Ulanqab), China (Shenzhen), China (Chengdu) y China (Hong Kong).
La función de linaje de datos aclara el flujo de información mediante el análisis estático del código Python (con compatibilidad del framework MaxFrame) en el notebook.
Procedimiento
En la barra de herramientas superior del notebook, haga clic en el botón Lineage. El sistema analiza automáticamente el código de todas las celdas del notebook actual y muestra el gráfico de linaje de datos en el editor.
El linaje de datos es una función Beta que solo admite código Python/MaxFrame. El panel de linaje muestra el flujo de datos entre tablas de origen y destino como un grafo dirigido.
El análisis de linaje de datos examina el código estático de su notebook. Refleja la lógica de datos definida en el código, no el flujo real generado durante la ejecución de una tarea. Usted puede consultar el linaje de datos sin ejecutar el código.
Actualmente, esta función está diseñada para desarrollo y depuración. El sistema no reporta automáticamente las relaciones de linaje analizadas a Data Map.
Si modifica el código, debe volver a hacer clic en Lineage o en Refresh para generar un gráfico de linaje actualizado.
Escenarios compatibles
El análisis de linaje de datos admite únicamente los siguientes escenarios:
-
Linaje entre tablas de MaxCompute: cuando usted lee datos de una o más tablas de MaxCompute, los procesa con MaxFrame y escribe el resultado en otra tabla de MaxCompute, el gráfico de linaje muestra las relaciones de procesamiento entre dichas tablas.
Por ejemplo, al combinar una tabla de pedidos (ods_order) con una tabla de dimensiones de tiendas (dim_shop) y escribir el resultado en una tabla amplia de pedidos (dwd_order).
-
Linaje entre tablas de MaxCompute y datos externos: cuando su código interactúa tanto con fuentes de datos externas (como conjuntos de datos vinculados o archivos de OSS) como con tablas de MaxCompute, la función de linaje de datos visualiza estas relaciones.
-
Mediante un conjunto de datos vinculado: si accede a un conjunto de datos vinculado a través de la ruta de montaje de su entorno de desarrollo personal (por ejemplo,
/mnt/data/) e intercambia datos con una tabla de MaxCompute (leyendo del conjunto de datos hacia la tabla o viceversa), el gráfico de linaje muestra el flujo de datos completo. -
Mediante una ruta de OSS: incluso sin un conjunto de datos vinculado, si lee o escribe archivos directamente utilizando una ruta de OSS en su código, el análisis de linaje de datos identifica el flujo bidireccional entre la ruta de OSS y la tabla de MaxCompute.
NotaSi esta ruta de OSS también está registrada como conjunto de datos en Data Map, el gráfico de linaje la muestra automáticamente como un nodo de conjunto de datos, lo cual facilita la gestión de activos.
-
Programación asistida por Copilot
DataWorks Copilot es un asistente de programación con IA integrado que le ayuda a generar y explicar código.
Cómo invocarlo:
Haga clic en el ícono de Copilot
en la esquina superior izquierda de la celda seleccionada.Haga clic derecho dentro de una celda de SQL y seleccione Copilot.
Utilice el atajo de teclado
Cmd+I(macOS) oCtrl+I(Windows).
Programe y despliegue un notebook
Para ejecutar un notebook de forma programada, configure sus propiedades de programación y despliéguelo en el entorno de producción.
1. Configure los parámetros de programación (programación parametrizada)
Configure la programación parametrizada para que los parámetros del notebook cambien dinámicamente en cada ejecución. Por ejemplo, usted puede procesar una partición distinta cada día.
Marque la celda de parámetros: en la celda de Python que contiene las definiciones de parámetros, haga clic en
...en la esquina superior derecha y seleccione Mark Cell as Parameters. La etiquetaparametersmarca la celda como punto de entrada de los parámetros.-
Configure los parámetros de programación:
En el panel derecho del notebook, haga clic en Scheduling Settings.
-
En el área Scheduling Parameters, asigne un valor a las variables definidas en su código, como
var.Por ejemplo, establezca el valor del parámetro en
$[yyyymmdd]. Durante la ejecución programada, este valor se reemplaza dinámicamente por la fecha real.
Cuando el sistema de programación ejecuta una tarea automáticamente, el valor real del parámetro var en el código se sustituye de forma dinámica por el valor configurado en los parámetros de programación.
2. Configure el entorno de ejecución y los recursos
-
Configure una imagen: en la configuración de Scheduling, seleccione una imagen que contenga todas las dependencias que requiere el notebook. Así garantiza que la ejecución en producción se complete correctamente.
ImportanteSi instaló paquetes de Python con
pip install, debe create a DataWorks image from the personal development environment para que producción tenga las mismas dependencias. Seleccione esta imagen en la configuración de scheduling. Resource Group: seleccione el resource group para la tarea. En los serverless resource groups, no configure más de
16CUpara evitar fallas de inicio. El máximo por tarea es64CU.Configure un rol asociado: asocie un rol de RAM con el nodo para controlar los permisos de manera detallada. Associate a role: Securely access other cloud resources.
3. Despliegue el nodo
Solo los nodos ubicados en Workspace Directories se pueden desplegar y programar.
Para notebooks en Workspace Directories: una vez completada la configuración, haga clic en el botón Publish de la barra de herramientas superior.
Para notebooks en su Personal Directory: primero debe hacer clic en el botón Save y después enviarlo al proyecto antes de desplegarlo.
Tras el despliegue, supervise la tarea de su notebook en la página Auto Triggered Nodes de Operation Center.
Preguntas frecuentes
-
P: ¿Por qué mi código accede a la red pública durante el desarrollo, pero falla en una ejecución programada?
R: Los entornos de desarrollo y producción utilizan directivas de red distintas.
Entorno de desarrollo (entorno de desarrollo personal): un entorno de desarrollo personal no vinculado a una Virtual Private Cloud (VPC) tiene acceso limitado a la red pública de forma predeterminada. Sin embargo, le permite instalar paquetes temporalmente o llamar API.
Entorno de producción (tarea programada): por motivos de seguridad y estabilidad, las tareas programadas se ejecutan en una VPC de forma predeterminada y no pueden acceder directamente a la red pública. La configuración de red de la tarea depende del resource group que seleccione en Scheduling Settings. Si la VPC de dicho resource group no tiene configurada una puerta de enlace NAT, la tarea no podrá acceder a la red pública.
Solución: configure su entorno de desarrollo personal y su serverless resource group para que usen la misma VPC.
-
P: ¿Por qué mi código se ejecuta correctamente en el entorno de desarrollo, pero no encuentra un paquete de terceros durante una ejecución programada?
R: Empaquete todas las dependencias en una imagen personalizada y selecciónela en la configuración de Scheduling Settings. Create a DataWorks image from a personal development environment.
-
P: ¿Cómo cambio la versión del kernel de Python?
R: Instale una versión diferente de Python en la terminal
de su entorno de desarrollo personal. Luego, haga clic en el botón
del lado derecho de la barra de herramientas del notebook para cambiar la versión del kernel. No se recomienda instalar kernels adicionales de Python, ya que las versiones nuevas podrían carecer de las dependencias que requieren las celdas de SQL.