Preguntas frecuentes y soluciones sobre recursos, nodos, flujos de trabajo, tablas y programación en el desarrollo de datos de DataWorks.
-
Recursos
-
PyODPS
-
EMR Spark
-
Nodos y flujos de trabajo
-
Tabla
Why does visual table creation in DataWorks fail for EMR with the error "call emr exception"?
How do I access production environment data from the development environment?
How do I control whether query results can be downloaded after querying table data?
Table creation fails in an EMR cluster, and the interface shows: "call emr exception"?
-
Registros operativos y periodo de retención
-
Operaciones masivas
-
Integración con BI
When connecting Power BI to MaxCompute, I encounter an error. How do I resolve this?
-
Llamadas a API
-
Otros
¿Cómo llamo a un paquete de terceros en PyODPS?
Utilice un resource group exclusivo para la programación. Para más detalles, consulte Call third-party packages in a PyODPS node.
¿Cómo controlo si los resultados de una consulta se pueden descargar después de consultar datos de una tabla?
Las descargas deben habilitarse a nivel del espacio de trabajo. Si no aparece ninguna opción de descarga, contacte al administrador de su cuenta de Alibaba Cloud o del espacio de trabajo. En la consola de DataWorks, haga clic en Workspace Configuration en el panel de navegación izquierdo. En la sección Security Settings, active o desactive Download SELECT results para permitir o bloquear la descarga de resultados de consultas. Cuando el interruptor está en azul (habilitado), puede descargar los resultados de consultas SELECT.
Después de ejecutar una consulta, aparece una opción de descarga en la esquina inferior derecha de los resultados. Haga clic en el botón Download de la barra de herramientas en la parte inferior de la página de resultados para descargar los datos.
Debido a limitaciones del motor, la interfaz de DataWorks solo permite descargar hasta 10,000 filas.
¿Cómo descargo más de 10,000 filas de datos de una tabla?
Utilice MaxCompute Tunnel. Para más detalles, consulte Export large volumes of data using SQLTask and Tunnel.
¿Por qué falla la creación visual de tablas en DataWorks para EMR con el error "call emr exception"?
-
Causa posible: El security group del clúster de ECS que aloja EMR carece de las reglas obligatorias. Al registrar un clúster de EMR, agregue la siguiente política de security group para evitar este error.
El security group del clúster de ECS que aloja EMR carece de las reglas obligatorias. Al registrar un clúster de EMR, agregue la siguiente política de security group para evitar este error.
Authorization policy: Allow
Protocol type: Custom TCP
Port range: 8898/8898
Authorization object: 100.104.0.0/16
Solución: Compruebe la configuración del security group del clúster de ECS que aloja EMR y agregue la política anterior.
¿Cómo uso recursos dentro de un nodo?
Haga clic derecho en el nodo de recurso deseado y seleccione Insert Resource Path.
##@resource_reference{"pyodps_packagetest.py"}
import sys
import os
sys.path.append(os.path.dirname(os.path.abspath('pyodps_packagetest.py'))) # Add the resource to the workspace
import pyodps_packagetest # Reference the resource
pyodps_packagetest.printname() # Call the method
¿Cómo descargo recursos cargados en DataWorks?
Haga clic derecho en el nodo de recurso deseado y seleccione View Historical Versions. En el cuadro de diálogo Version Information, la tabla de historial de versiones incluye columnas para versión, remitente, hora de envío, tipo de cambio, estado, comentarios y acciones. En la columna Actions, haga clic en Code para ver el contenido del recurso de esa versión, o haga clic en Roll Back para revertir a dicha versión. Haga clic en Compare en la parte inferior del cuadro de diálogo para comparar versiones.
¿Cómo cargo recursos mayores a 30 MB?
Cargue recursos mayores a 30 MB mediante Tunnel commands. Después de cargarlos, agréguelos como recursos de MaxCompute en DataWorks para su uso posterior. Para más detalles, consulte How do I use resources uploaded via odpscmd in DataWorks?.
¿Cómo uso en DataWorks los recursos cargados mediante odpscmd?
Los recursos cargados mediante odpscmd aparecen bajo los recursos de MaxCompute en DataStudio. En el panel de navegación izquierdo de DataStudio, haga clic en MaxCompute Resources para ver todos los recursos de MaxCompute del espacio de trabajo actual. Seleccione el recurso deseado y haga clic en Add to Data Development en el panel de detalles de la derecha para incluirlo en su flujo de trabajo.
¿Cómo cargo un archivo JAR desarrollado localmente en DataWorks y lo ejecuto?
Cargue su archivo JAR como recurso en la interfaz de desarrollo de datos. Para referenciarlo en un nodo, haga clic derecho en el nodo de recurso y seleccione Insert Resource Path (esto agrega una línea de comentario al inicio del nodo). Luego ejecute el JAR por su nombre de recurso. En DataStudio, expanda Resources en el árbol de archivos de la izquierda, haga clic derecho y elija New > JAR para crear un recurso JAR. En el panel Upload Resource, haga clic en el icono de carga y seleccione su archivo JAR local (por ejemplo, ip2region.jar). Marque Upload as ODPS Resource para sincronizar el recurso con MaxCompute (ODPS). Después de hacer clic en Upload, envíe y publique el recurso para evitar un error de resource not found durante la ejecución.
Ejemplo: En un nodo Shell, use ##@resource_reference{"test.jar"} java -jar test.jar.
¿Cómo uso recursos de tabla de MaxCompute en DataWorks?
DataWorks no admite la carga de recursos de tabla de MaxCompute a través de la interfaz gráfica. Consulte la documentación de UDF example: Reference table resources de MaxCompute para saber cómo referenciar recursos de tabla. Para usar recursos de tabla de MaxCompute en DataWorks, siga estos pasos:
-
En MaxCompute, agregue la tabla como recurso de tabla mediante la siguiente sentencia SQL. Para más información, consulte Add Resource.
add table <table_name> [partition (<spec>)] [as <alias>] [comment '<comment>'][-f]; En DataStudio, cree un recurso de Python llamado
get_cache_table.pypara recorrer y acceder al recurso de tabla agregado en MaxCompute. Para el código Python, consulte Develop code.
-
En la página de desarrollo de datos de DataWorks, cree una nueva función. En este ejemplo, la función se llama
table_udf.Complete los siguientes campos:
Class Name:
get_cache_table.DistCacheTableExampleResources: Seleccione el archivo Python
get_cache_table.pyen la lista desplegable. Agregue el recurso de tabla en modo Script Mode.
Después de registrar la función, siga las instrucciones de usage example para preparar datos de prueba y llamar a la función registrada.
Al enviar una tarea en DataWorks, recibo el error "No default or available resource group is configured". ¿Cómo configuro un resource group?
Para resolver esto, vaya a la sección Scheduling Settings en el lado derecho de la página de edición del nodo. Busque Resource Group for Scheduling y seleccione el resource group deseado en la lista desplegable. Si no aparece ningún resource group adecuado, vincule uno a su espacio de trabajo de la siguiente manera.
Inicie sesión en la Consola de administración de DataWorks. Después de cambiar de región, haga clic en Resource Group en el panel de navegación izquierdo para abrir la página de Resource Groups.
En la página de lista de Resource Groups, busque el resource group que creó y haga clic en Associate Workspace en la columna Actions.
En la página Associate Workspace, busque su espacio de trabajo de DataWorks y haga clic en Associate en la columna Actions.
Después de completar estos pasos, regrese a la página de edición del nodo. En Scheduling Settings a la derecha, seleccione el resource group de programación deseado en la lista desplegable.
¿Puede un recurso de Python llamar a otro recurso de Python?
Sí. Un recurso de Python puede invocar a otro recurso de Python dentro del mismo espacio de trabajo.
¿PyODPS admite llamar funciones definidas por el usuario para usar paquetes de terceros?
Sí. Además de usar la función test mediante el método map de un DataFrame, PyODPS admite invocar directamente funciones definidas por el usuario para importar paquetes de terceros. Para más información, consulte Use third-party packages in PyODPS.
Al llamar un archivo Pickle en PyODPS 3, obtengo el error: _pickle.UnpicklingError: invalid load key, '\xef
Si su código contiene caracteres especiales, comprímalo en un archivo ZIP antes de cargarlo. Luego, descomprímalo y utilícelo en su código.
¿Cómo elimino recursos de MaxCompute?
Puede eliminar un recurso después de crearlo. En el modo básico, haga clic derecho en el recurso y elimínelo directamente. En el modo estándar, elimine primero el recurso en el entorno de desarrollo y luego publique la eliminación para quitarlo de producción. El siguiente ejemplo muestra cómo eliminar un recurso en producción.
En el modo estándar, los entornos de desarrollo y producción están separados. Eliminar un recurso en DataStudio solo lo quita del entorno de desarrollo. Para eliminarlo de producción, debe publicar la operación de eliminación.
Elimine el recurso en el entorno de desarrollo. Bajo el flujo de trabajo correspondiente, vaya a . Haga clic derecho en el recurso que desea eliminar y haga clic en Delete. En el cuadro de diálogo de confirmación, haga clic en Confirm.
Elimine el recurso del entorno de producción. Eliminar un recurso en el entorno de desarrollo crea un registro de despliegue pendiente. El recurso se elimina de producción solo después de desplegar dicho registro. Haga clic en DataStudio en la esquina superior derecha de la página de DataStudio, filtre el tipo de cambio a Unpublish, localice el paquete de despliegue, haga clic en Actions y luego haga clic en Deploy. En la página emergente, haga clic en Deploy para completar el despliegue y eliminar el recurso de producción.
Después de habilitar Kerberos en un clúster de EMR, ¿por qué obtengo un error "DlfMetaStoreClientFactory not found" al ejecutar spark-submit en modo YARN-Cluster en un nodo EMR Spark?DlfMetaStoreClientFactory not found?
Detalles del error:
Class com.aliyun.datalake.metastore.hive2.DlfMetaStoreClientFactory not found?Causa: Después de habilitar Kerberos en un clúster de EMR, el classpath del Driver en modo YARN-Cluster no incluye automáticamente los archivos JAR de los directorios especificados, lo que provoca que las tareas de Spark fallen. Para más detalles, consulte EMR on ECS FAQ.
-
Solución: Especifique manualmente los paquetes relacionados con DLF de la siguiente manera:
-
Después de habilitar Kerberos en el clúster de EMR, al enviar una tarea en modo YARN-Cluster mediante
spark-submit, agregue el parámetro--jars. Incluya todos los archivos JAR del directorio/opt/apps/METASTORE/metastore-current/hive2junto con las dependencias de su aplicación.Para el modo YARN-Cluster en EMR Spark, especifique manualmente los paquetes relacionados con DLF como se muestra a continuación.
ImportanteEn modo YARN-Cluster, todas las dependencias en el parámetro
--jarsdeben separarse por comas. No se admiten rutas de directorio.spark-submit --deploy-mode cluster --class org.apache.spark.examples.SparkPi --master yarn --jars /opt/apps/METASTORE/metastore-current/hive2/aliyun-java-sdk-dlf-shaded-0.2.9.jar,/opt/apps/METASTORE/metastore-current/hive2/metastore-client-common-0.2.22.jar,/opt/apps/METASTORE/metastore-current/hive2/metastore-client-hive2-0.2.22.jar,/opt/apps/METASTORE/metastore-current/hive2/metastore-client-hive-common-0.2.22.jar,/opt/apps/METASTORE/metastore-current/hive2/shims-package-0.2.22.jar /opt/apps/SPARK3/spark3-current/examples/jars/spark-examples_2.12-3.4.2.jar -
Al especificar manualmente los paquetes relacionados con DLF, configure la información de AccessKey con permisos para acceder a DLF y OSS. De lo contrario, podría encontrar un error de autenticación STS, como alguno de los siguientes:
Process Output>>> java.io.IOException: Response{protocol=http/1.1, code=403, message=Forbidden, url=http://xxx.xxx.xxx.xxx/latest/meta-data/Ram/security-credentials/}at com.aliyun.datalake.metastore.common.STSHelper.getEMRSTSToken(STSHelper.java:82)
At the task level, add the following parameters in Advanced Configuration on the right side of the node (to apply globally, configure these as Spark global parameters in cluster service settings): "spark.hadoop.dlf.catalog.akMode":"MANUAL", "spark.hadoop.dlf.catalog.accessKeyId":"xxxxxxx", "spark.hadoop.dlf.catalog.accessKeySecret":"xxxxxxxxx"
-
¿Cómo restauro un nodo eliminado?
Después de eliminar un nodo, restáurelo desde la papelera de reciclaje. En DataStudio, haga clic en Recycle Bin en el panel de navegación izquierdo. En la lista de nodos eliminados, haga clic derecho en el nodo deseado y seleccione Restore.
¿Cómo consulto la versión de un nodo?
Abra la interfaz de configuración del nodo y haga clic en la pestaña Versions a la derecha para consultar su historial de versiones.
Las versiones se generan solo después del envío.
La lista de versiones incluye ID de archivo, número de versión, remitente y hora de envío. En la columna Actions, haga clic en Code para ver el código de una versión específica, o haga clic en Roll Back para revertir a dicha versión. Seleccione dos versiones cualquiera y haga clic en Compare en la parte inferior para ver sus diferencias.
¿Cómo clono un flujo de trabajo?
Utilice la función de grupo de nodos. Para más detalles, consulte Use node groups.
¿Cómo exporto el código de un nodo desde un espacio de trabajo?
Utilice la función Migration Assistant. Para más detalles, consulte Migration Assistant.
¿Cómo compruebo el estado de envío de un nodo de flujo de trabajo?
Seleccione y expanda la lista de Business Process correspondiente para consultar el estado de todos los nodos. Si aparece un icono
a la izquierda del nombre del nodo, significa que el nodo se ha enviado. Si el icono no aparece, el nodo no se ha enviado.
Cuando un flujo de trabajo contiene varios nodos, ¿puedo configurar masivamente su información de programación?
DataWorks no admite configurar la información de programación a nivel de flujo de trabajo. Debe configurar cada nodo individualmente.
Si se elimina un nodo, ¿se ven afectadas sus instancias?
El sistema de programación genera una o más instancias diariamente según los atributos de tiempo de la tarea. Si elimina una tarea después de haberse ejecutado durante algún tiempo, las instancias existentes permanecen. Si una instancia se activa después de eliminar la tarea, fallará porque el código ya no existe.
Después de modificar una tarea de nodo y publicarla en el entorno de producción, ¿se sobrescribe el nodo erróneo anterior en producción?
No. Las instancias anteriores del nodo no se sobrescriben. Las instancias no ejecutadas utilizan el código más reciente. Si cambian los parámetros de programación, debe regenerar las instancias para ejecutarlas.
¿Cómo visualizo una tabla recién creada?
Puede crear tablas en Desarrollo de datos, Administración de tablas o dentro de contenedores de tablas en flujos de trabajo. En DataStudio, haga clic en Table Management en el panel de navegación izquierdo y luego haga clic en New Table en la barra de herramientas superior. En el panel de detalles de la derecha, configure el nombre de la tabla, la instancia de motor de MaxCompute y el origen de la tabla. La sección Basic Properties incluye nombre en chino, categoría de primer nivel, categoría de segundo nivel y descripción. En Physical Model Design, establezca el tipo de partición, ciclo de vida, nivel, clasificación física y tipo de tabla (tabla interna/externa). Use los botones en la parte superior del panel (DDL Mode, Load from Development Environment, Submit to Development Environment, Load from Production Environment, Submit to Production Environment) para gestionar el despliegue de la tabla. Haga clic derecho en una tabla del directorio para realizar acciones como Rename Table, Import Data o Delete Table.
¿Cómo agrego campos a una tabla de producción?
Una cuenta de Alibaba Cloud puede agregar campos a una tabla de producción en la página Table Management y enviar los cambios a producción.
Un usuario RAM debe tener el rol de O&M o administrador de proyecto para agregar campos a una tabla de producción en la página Table Management y enviar los cambios a producción.
¿Cómo elimino una tabla?
Para eliminar una tabla de desarrollo, hágalo en la interfaz de desarrollo de datos.
Para eliminar una tabla de producción:
Elimínela desde My Data en Data Map.
Cree un nodo ODPS SQL, introduzca y ejecute una sentencia DROP. Para más detalles sobre la creación de nodos ODPS SQL, consulte Develop ODPS SQL tasks. Para la sintaxis DROP, consulte Table operations.
En la página My Data, seleccione la tabla deseada y haga clic en Delete en la columna Actions para eliminar una sola tabla. Para eliminar varias tablas, selecciónelas y haga clic en Batch Delete en la parte inferior de la página.
¿Cómo cargo datos locales a una tabla de MaxCompute?
En DataStudio, utilice la función de importación de tablas para cargar datos locales. Haga clic en el icono Import en la barra de herramientas para abrir el cuadro de diálogo Data Import Wizard. Establezca Select Data Import Method en Upload Local File, File Format en CSV, haga clic en Browse... para seleccionar su archivo CSV local (solo se admiten archivos .csv), Select Separator en Comma, Source Character Set en GBK, Import Starting Row en 1 y marque First Row as Header.
La creación de tablas falla en un clúster de EMR y la interfaz muestra: call emr exception?
-
El security group del clúster de ECS que aloja EMR carece de las reglas obligatorias. Al registrar un clúster de EMR, agregue la siguiente política de security group para evitar este error.
Authorization policy: Allow
Protocol type: Custom TCP
Port range: 8898/8898
Authorization object: 100.104.0.0/16
-
Solución:
Compruebe la configuración del security group del clúster de ECS que aloja EMR y agregue la política anterior.
¿Cómo accedo a datos del entorno de producción desde el entorno de desarrollo?
En el modo estándar, consulte los datos de producción mediante project_name.table_name.
Si actualizó del modo básico al modo estándar, solicite permisos de rol de productor antes de consultar datos de producción con project_name.table_name. Para más detalles sobre cómo solicitar permisos, consulte Request table permissions.
¿Cómo obtengo registros de ejecución históricos en la interfaz de desarrollo de datos?
En la interfaz de desarrollo de datos, busque el módulo Runtime Logs en la barra lateral izquierda para consultar los registros de ejecución históricos.
¿Cuánto tiempo se conservan los historiales de ejecución del desarrollo de datos?
De forma predeterminada, los historiales de ejecución en la interfaz de desarrollo de datos se conservan durante 3 días.
Para los periodos de retención de registros e instancias en el centro de O&M de producción, consulte How long are logs and instances retained?.
¿Cómo modifico masivamente propiedades de nodos, recursos, funciones y otros objetos?
En la interfaz de DataStudio, haga clic en Batch Operation en la barra de herramientas de la izquierda para modificar nodos, recursos y funciones de forma masiva. Después de realizar los cambios, envíelos en lote y publíquelos en la interfaz de publicación de tareas para aplicar los cambios a producción.
En la interfaz de operaciones masivas, seleccione los nodos deseados. La barra de acciones en la parte inferior proporciona los botones Submit, Change Owner y Change Engine Instance. Haga clic en More para acceder a acciones adicionales: Change Scheduling Resource Group, Change Rerun Properties, Change Scheduling Type, Change Scheduling Cycle, Change Timeout Period y Delete. Haga clic en Operation History en la esquina superior derecha para consultar operaciones masivas anteriores.
¿Cómo modifico masivamente el resource group de programación utilizado por los nodos de un flujo de trabajo en la página de desarrollo de datos?
En DataStudio, vaya a la pestaña Resource Group Orchestration del flujo de trabajo para modificar masivamente el resource group de programación de todos los nodos. Después de realizar los cambios, haga clic en Submit y luego publíquelos en la interfaz de publicación de tareas para aplicar los cambios a producción. Utilice el árbol de navegación de la izquierda para filtrar nodos por tipo (Data Integration, MaxCompute, Hologres, etc.). La sección superior derecha muestra áreas de configuración para Shared Resource Groups for Scheduling y Exclusive Resource Groups. La lista de nodos inferior le permite filtrar por nombre de nodo, tipo de nodo, tipo de motor, instancia de motor o propietario. Seleccione los nodos que desea modificar y haga clic en Switch Resource Group en la parte inferior para aplicar el cambio.
Al conectar Power BI a MaxCompute, encuentro un error. ¿Cómo lo resuelvo?
MaxCompute no admite conexiones de Power BI. Se recomienda utilizar Hologres en su lugar. Para más detalles, consulte Endpoints.
La llamada a OpenAPI falla con access is forbidden. Please first activate DataWorks Enterprise Edition or Flagship Edition
OpenAPI requiere DataWorks Enterprise Edition o superior. Para más detalles, consulte Overview of DataWorks OpenAPI.
¿Cómo obtengo ejemplos de uso del SDK de Python?
En la página de la API correspondiente, haga clic en Debug para ver ejemplos del SDK de Python.
Mi tarea se ejecuta sin un ID de instancia. ¿Cómo deshabilito el modo de aceleración de ODPS?
Deshabilite el modo de aceleración para obtener un ID de instancia.
DataWorks solo admite descargar 10,000 filas. Para más, utilice Tunnel, que requiere un ID de instancia.
Task submitted successfully
Task running...
Task running...
Task running...
Task running...
Congratulations! Your task was selected to run in MaxCompute Query Acceleration mode
SQL executed successfully in MaxCompute Query Acceleration mode
SQL: SELECT a.real_name...
Al ejecutar la tarea, agregue set odps.mcqa.disable=true; en el editor de nodos ODPS SQL (ejecútelo junto con sus sentencias SELECT).
Error: [202:ERROR_GROUP_NOT_ENABLE]:group is not available
Durante la ejecución de la tarea, obtiene el error: Job Submit Failed! submit job failed directly! Caused by: execute task failed, exception: [202:ERROR_GROUP_NOT_ENABLE]:group is not available.
Causa posible: El resource group vinculado no está disponible.
Solución: Inicie sesión en la consola de DataWorks. Haga clic en Resource Groups en el panel de navegación izquierdo. Busque su resource group y compruebe si su Status es Running. Si no es así, reinicie el resource group o utilice otro que esté disponible.