Perguntas frequentes e soluções sobre recursos, nós, workflows, tabelas e agendamento no desenvolvimento de dados do DataWorks.
-
Recursos
-
PyODPS
-
EMR Spark
-
Nós e workflows
-
Tabela
Por que a criação visual de tabela no DataWorks falha para EMR com o erro "call emr exception"?
Como acessar dados do ambiente de produção a partir do ambiente de desenvolvimento?
Como controlar o download dos resultados após consultar dados da tabela?
A criação de tabela falha em um cluster EMR e a interface mostra: "call emr exception"?
-
Logs operacionais e período de retenção
-
Operações em lote
-
Integração com BI
Ao conectar o Power BI ao MaxCompute, encontro um erro. Como resolver isso?
-
Chamadas de API
-
Outros
Como chamar um pacote de terceiros no PyODPS?
Use um grupo de recursos exclusivo para agendamento. Para mais detalhes, consulte Chamar pacotes de terceiros em um nó PyODPS.
Como controlar o download dos resultados após consultar dados da tabela?
Ative os downloads no nível do workspace. Se nenhuma opção de download aparecer, entre em contato com o administrador da sua conta Alibaba Cloud ou do workspace. No console do DataWorks, clique em Workspace Configuration no painel de navegação à esquerda. Na seção Security Settings, alterne Download SELECT results para permitir ou bloquear o download de resultados de consulta. Quando o interruptor estiver azul (ativado), será possível baixar resultados de consultas SELECT.
Após executar uma consulta, uma opção de download aparece no canto inferior direito dos resultados. Clique em Download na barra de ferramentas na parte inferior da página de resultados para baixar os dados.
Devido a limitações do mecanismo, a interface do DataWorks permite baixar apenas até 10.000 linhas.
Como baixar mais de 10.000 linhas de dados de tabela?
Use o MaxCompute Tunnel. Para mais detalhes, consulte Exportar grandes volumes de dados usando SQLTask e Tunnel.
Por que a criação visual de tabela no DataWorks falha para EMR com o erro "call emr exception"?
-
Causa possível: O grupo de segurança do cluster ECS que hospeda o EMR não possui as regras necessárias. Ao registrar um cluster EMR, adicione a seguinte política de grupo de segurança para evitar esse erro.
O grupo de segurança do cluster ECS que hospeda o EMR não possui as regras necessárias. Ao registrar um cluster EMR, adicione a seguinte política de grupo de segurança para evitar esse erro.
Política de autorização: Allow
Tipo de protocolo: Custom TCP
Intervalo de portas: 8898/8898
Objeto de autorização: 100.104.0.0/16
Solução: Verifique a configuração do grupo de segurança do cluster ECS que hospeda o EMR e adicione a política acima.
Como usar recursos dentro de um nó?
Clique com o botão direito no nó de recurso desejado e selecione 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
Como baixar recursos enviados ao DataWorks?
Clique com o botão direito no nó de recurso desejado e selecione View Historical Versions. Na caixa de diálogo Version Information, a tabela de histórico de versões inclui colunas para versão, remetente, hora de envio, tipo de alteração, status, observações e ações. Na coluna Actions, clique em Code para visualizar o conteúdo do recurso daquela versão ou clique em Roll Back para reverter para essa versão. Clique em Compare na parte inferior da caixa de diálogo para comparar versões.
Como enviar recursos maiores que 30 MB?
Envie recursos maiores que 30 MB usando comandos Tunnel. Após o envio, adicione-os como recursos do MaxCompute no DataWorks para uso posterior. Para mais detalhes, consulte Como usar no DataWorks os recursos enviados via odpscmd?.
Como usar no DataWorks os recursos enviados via odpscmd?
Os recursos enviados via odpscmd estão listados sob recursos do MaxCompute no DataStudio. No painel de navegação à esquerda do DataStudio, clique em MaxCompute Resources para visualizar todos os recursos do MaxCompute no workspace atual. Selecione o recurso desejado e clique em Add to Data Development no painel de detalhes à direita para incluí-lo em seu workflow.
Como enviar e executar um arquivo JAR desenvolvido localmente no DataWorks?
Envie seu arquivo JAR como um recurso na interface de desenvolvimento de dados. Para referenciá-lo em um nó, clique com o botão direito no nó de recurso e selecione Insert Resource Path (isso adiciona uma linha de comentário no topo do nó). Em seguida, execute o JAR pelo nome do recurso. No DataStudio, expanda Resources na árvore de arquivos à esquerda, clique com o botão direito e escolha New > JAR para criar um recurso JAR. No painel Upload Resource, clique em Upload e selecione seu arquivo JAR local (por exemplo, ip2region.jar). Marque Upload as ODPS Resource para sincronizar o recurso com o MaxCompute (ODPS). Após clicar em Upload, envie e publique o recurso para evitar um erro resource not found durante a execução.
Exemplo: Em um nó Shell, use ##@resource_reference{"test.jar"} java -jar test.jar.
Como usar recursos de tabela do MaxCompute no DataWorks?
O DataWorks não suporta o envio de recursos de tabela do MaxCompute pela interface gráfica. Consulte o Exemplo de UDF: Referenciar recursos de tabela do MaxCompute para saber como referenciar recursos de tabela. Para usar recursos de tabela do MaxCompute no DataWorks, siga estas etapas:
-
No MaxCompute, adicione a tabela como um recurso de tabela usando a seguinte instrução SQL. Para mais informações, consulte Adicionar recurso.
add table <table_name> [partition (<spec>)] [as <alias>] [comment '<comment>'][-f]; No DataStudio, crie um recurso Python chamado
get_cache_table.pypara percorrer e acessar o recurso de tabela adicionado no MaxCompute. Para o código Python, consulte Desenvolver código.
-
Na página de Desenvolvimento de Dados do DataWorks, crie uma nova função. Neste exemplo, a função chama-se
table_udf.Preencha os seguintes campos:
Class Name:
get_cache_table.DistCacheTableExampleResources: Selecione o arquivo Python
get_cache_table.pyno menu suspenso. Adicione o recurso de tabela no modo Script Mode.
Após registrar a função, siga o exemplo de uso para preparar dados de teste e chamar a função registrada.
Ao enviar uma tarefa no DataWorks, recebo o erro "No default or available resource group is configured." Como configurar um grupo de recursos?
Para resolver isso, acesse a seção Scheduling Settings no lado direito da página de edição do nó. Localize Resource Group for Scheduling e selecione o grupo de recursos desejado no menu suspenso. Se nenhum grupo de recursos adequado aparecer, vincule um grupo de recursos ao seu workspace conforme descrito abaixo.
Faça login no Console de Gerenciamento do DataWorks. Após trocar de região, clique em Resource Group no painel de navegação à esquerda para abrir a página Resource Groups.
Na página Lista de Grupos de Recursos, localize o grupo de recursos criado e clique em Associate Workspace na coluna Actions.
Na página Associate Workspace, localize seu workspace do DataWorks e clique em Associate na coluna Actions.
Após concluir essas etapas, retorne à página de edição do nó. Em Scheduling Settings à direita, selecione o grupo de recursos de agendamento desejado no menu suspenso.
Um recurso Python pode chamar outro recurso Python?
Sim. Um recurso Python pode invocar outro recurso Python dentro do mesmo workspace.
O PyODPS suporta a chamada de funções definidas pelo usuário para usar pacotes de terceiros?
Sim. Além de usar a função test pelo método map de um DataFrame, o PyODPS suporta a invocação direta de funções definidas pelo usuário para importar pacotes de terceiros. Para mais informações, consulte Usar pacotes de terceiros no PyODPS.
Ao chamar um arquivo Pickle no PyODPS 3, recebo o erro: _pickle.UnpicklingError: invalid load key, '\xef
Se o seu código contiver caracteres especiais, compacte-o em um arquivo ZIP antes de enviar. Em seguida, descompacte-o e utilize-o em seu código.
Como excluir recursos do MaxCompute?
É possível excluir um recurso após criá-lo. No modo básico, clique com o botão direito no recurso e exclua-o diretamente. No modo padrão, exclua o recurso primeiro no ambiente de desenvolvimento e depois publique a exclusão para removê-lo da produção. O exemplo a seguir mostra como excluir um recurso na produção.
No modo padrão, os ambientes de desenvolvimento e produção são separados. Excluir um recurso no DataStudio remove-o apenas do ambiente de desenvolvimento. Para excluí-lo da produção, publique a operação de exclusão.
Exclua o recurso no ambiente de desenvolvimento. Sob o workflow relevante, acesse . Clique com o botão direito no recurso a ser excluído e clique em Delete. Na caixa de diálogo de confirmação, clique em Confirm.
Exclua o recurso do ambiente de produção. A exclusão de um recurso no ambiente de desenvolvimento cria um registro de implantação pendente. O recurso é removido da produção somente após a implantação desse registro. Clique em DataStudio no canto superior direito da página do DataStudio, filtre o tipo de alteração para Unpublish, localize o pacote de implantação, clique em Actions e, em seguida, clique em Deploy. Na página pop-up, clique em Deploy para concluir a implantação e remover o recurso da produção.
Após ativar o Kerberos em um cluster EMR, por que recebo o erro "DlfMetaStoreClientFactory not found" ao executar spark-submit no modo YARN-Cluster em um nó EMR Spark?DlfMetaStoreClientFactory not found?
Detalhes do erro:
Class com.aliyun.datalake.metastore.hive2.DlfMetaStoreClientFactory not found?Causa: Após ativar o Kerberos em um cluster EMR, o classpath do Driver no modo YARN-Cluster não inclui automaticamente arquivos JAR de diretórios especificados, causando falha nas tarefas Spark. Para detalhes, consulte FAQ do EMR no ECS.
-
Solução: Especifique manualmente os pacotes relacionados ao DLF conforme descrito abaixo:
-
Após ativar o Kerberos no cluster EMR, ao enviar uma tarefa no modo YARN-Cluster usando
spark-submit, adicione o parâmetro--jars. Inclua todos os arquivos JAR do diretório/opt/apps/METASTORE/metastore-current/hive2juntamente com as dependências da sua aplicação.Para o modo YARN-Cluster no EMR Spark, especifique manualmente os pacotes relacionados ao DLF conforme mostrado abaixo.
ImportanteNo modo YARN-Cluster, todas as dependências no parâmetro
--jarsdevem ser separadas por vírgulas. Caminhos de diretório não são suportados.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 -
Ao especificar manualmente pacotes relacionados ao DLF, configure as informações de AccessKey com permissões para acessar o DLF e o OSS. Caso contrário, poderá ocorrer um erro de autenticação STS, como um dos seguintes:
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"
-
Como restaurar um nó excluído?
Após excluir um nó, restaure-o a partir da lixeira. No DataStudio, clique em Recycle Bin no painel de navegação à esquerda. Na lista de nós excluídos, clique com o botão direito no nó desejado e selecione Restore.
Como visualizar a versão de um nó?
Abra a interface de configuração do nó e clique em Versions à direita para visualizar seu histórico de versões.
As versões são geradas somente após o envio.
A lista de versões inclui ID do arquivo, número da versão, remetente e hora de envio. Na coluna Actions, clique em Code para visualizar o código de uma versão específica ou clique em Roll Back para reverter para essa versão. Selecione quaisquer duas versões e clique em Compare na parte inferior para ver as diferenças entre elas.
Como clonar um workflow?
Use o recurso de grupo de nós. Para mais detalhes, consulte Usar grupos de nós.
Como exportar o código de um nó de um workspace?
Use o recurso Migration Assistant. Para mais detalhes, consulte Migration Assistant.
Como verificar o status de envio de um nó de workflow?
Selecione e expanda a lista de Processos de Negócio correspondente para visualizar o status de todos os nós. Se um ícone
aparecer à esquerda do nome do nó, significa que ele foi enviado. Se o ícone não aparecer, o nó não foi enviado.
É possível configurar as informações de agendamento em lote quando um workflow contém vários nós?
O DataWorks não suporta a configuração de informações de agendamento no nível do workflow. Configure cada nó individualmente.
A exclusão de um nó afeta suas instâncias?
O sistema de agendamento gera uma ou mais instâncias diariamente com base nos atributos de tempo da tarefa. Se você excluir uma tarefa após ela ter sido executada por algum tempo, as instâncias existentes permanecerão. Se uma instância for acionada após a exclusão da tarefa, ela falhará porque o código não existe mais.
Após modificar uma tarefa de nó e publicá-la no ambiente de produção, ela substitui o nó incorreto anterior na produção?
Não. As instâncias anteriores do nó não são substituídas. Instâncias não executadas usam o código mais recente. Se os parâmetros de agendamento mudarem, regenere as instâncias para executá-las.
Como visualizar uma tabela recém-criada?
É possível criar tabelas em Desenvolvimento de Dados, Gerenciamento de Tabelas ou dentro de contêineres de tabela em workflows. No DataStudio, clique em Table Management no painel de navegação à esquerda e, em seguida, clique em New Table na barra de ferramentas superior. No painel de detalhes à direita, configure o nome da tabela, a instância do mecanismo MaxCompute e a origem da tabela. A seção Basic Properties inclui nome em chinês, categoria de nível um, categoria de nível dois e descrição. Em Physical Model Design, defina o tipo de partição, ciclo de vida, nível, classificação física e tipo de tabela (tabela interna/externa). Use os botões no topo do painel (DDL Mode, Load from Development Environment, Submit to Development Environment, Load from Production Environment, Submit to Production Environment) para gerenciar a implantação da tabela. Clique com o botão direito em uma tabela no diretório para realizar ações como Rename Table, Import Data ou Delete Table.
Como adicionar campos a uma tabela de produção?
Uma conta Alibaba Cloud pode adicionar campos a uma tabela de produção na página Table Management e enviar as alterações para a produção.
Um usuário RAM deve ter a função de O&M ou administrador de projeto para adicionar campos a uma tabela de produção na página Table Management e enviar as alterações para a produção.
Como excluir uma tabela?
Para excluir uma tabela de desenvolvimento, faça-o na interface de desenvolvimento de dados.
Para excluir uma tabela de produção:
Exclua-a em My Data no Data Map.
Crie um nó ODPS SQL, insira e execute uma instrução DROP. Para detalhes sobre a criação de nós ODPS SQL, consulte Desenvolver tarefas ODPS SQL. Para a sintaxe DROP, consulte Operações de tabela.
Na página My Data, selecione a tabela desejada e clique em Delete na coluna Actions para excluir uma única tabela. Para excluir várias tabelas, selecione-as e clique em Batch Delete na parte inferior da página.
Como enviar dados locais para uma tabela do MaxCompute?
No DataStudio, use o recurso de importação de tabela para enviar dados locais. Clique em Import na barra de ferramentas para abrir a caixa de diálogo Data Import Wizard. Defina Select Data Import Method como Upload Local File, File Format como CSV, clique em Browse... para selecionar seu arquivo CSV local (apenas arquivos .csv são suportados), Select Separator como Comma, Source Character Set como GBK, Import Starting Row como 1 e marque First Row as Header.
A criação de tabela falha em um cluster EMR e a interface mostra: call emr exception?
-
O grupo de segurança do cluster ECS que hospeda o EMR não possui as regras necessárias. Ao registrar um cluster EMR, adicione a seguinte política de grupo de segurança para evitar esse erro.
Política de autorização: Allow
Tipo de protocolo: Custom TCP
Intervalo de portas: 8898/8898
Objeto de autorização: 100.104.0.0/16
-
Solução:
Verifique a configuração do grupo de segurança do cluster ECS que hospeda o EMR e adicione a política acima.
Como acessar dados do ambiente de produção a partir do ambiente de desenvolvimento?
No modo padrão, consulte dados de produção usando project_name.table_name.
Se você atualizou do modo básico para o modo padrão, solicite permissões de função de produtor antes de consultar dados de produção com project_name.table_name. Para detalhes sobre como solicitar permissões, consulte Solicitar permissões de tabela.
Como obter logs históricos de execução na interface de desenvolvimento de dados?
Na interface de desenvolvimento de dados, localize o módulo Runtime Logs na barra lateral à esquerda para visualizar os logs históricos de execução.
Qual é o período de retenção dos históricos de execução de desenvolvimento de dados?
Por padrão, os históricos de execução na interface de desenvolvimento de dados são retidos por 3 dias.
Para períodos de retenção de logs e instâncias no centro de O&M de produção, consulte Por quanto tempo logs e instâncias são retidos?.
Como modificar em lote as propriedades de nós, recursos, funções e outros objetos?
Na interface DataStudio, clique em Batch Operation na barra de ferramentas à esquerda para modificar em lote nós, recursos e funções. Após fazer alterações, envie-as em massa e publique-as na interface de liberação de tarefas para aplicar as mudanças na produção.
Na interface de operações em lote, selecione os nós alvo. A barra de ação na parte inferior fornece botões Submit, Change Owner e Change Engine Instance. Clique em More para acessar ações adicionais: Change Scheduling Resource Group, Change Rerun Properties, Change Scheduling Type, Change Scheduling Cycle, Change Timeout Period e Delete. Clique em Operation History no canto superior direito para visualizar operações em lote anteriores.
Como modificar em lote o grupo de recursos de agendamento usado pelos nós de um workflow na página de desenvolvimento de dados?
No DataStudio, acesse a aba Resource Group Orchestration do workflow para modificar em lote o grupo de recursos de agendamento de todos os nós. Após fazer alterações, clique em Submit e publique-as na interface de liberação de tarefas para aplicar as mudanças na produção. Use a árvore de navegação à esquerda para filtrar nós por tipo (Data Integration, MaxCompute, Hologres, etc.). A seção superior direita mostra áreas de configuração para Shared Resource Groups for Scheduling e Exclusive Resource Groups. A lista de nós abaixo permite filtrar por nome do nó, tipo de nó, tipo de mecanismo, instância do mecanismo ou proprietário. Selecione os nós a serem modificados e clique em Switch Resource Group na parte inferior para aplicar a alteração.
Ao conectar o Power BI ao MaxCompute, encontro um erro. Como resolver isso?
O MaxCompute não suporta conexões do Power BI. Recomendamos o uso do Hologres. Para mais detalhes, consulte Endpoints.
Falha na chamada da OpenAPI com access is forbidden. Please first activate DataWorks Enterprise Edition or Flagship Edition
A OpenAPI requer o DataWorks Enterprise Edition ou superior. Para mais detalhes, consulte Visão geral da OpenAPI do DataWorks.
Como obter exemplos de uso do SDK para Python?
Na página da API relevante, clique em Debug para visualizar exemplos do SDK para Python.
Minha tarefa executa sem um ID de instância. Como desativar o modo de aceleração ODPS?
Desative o modo de aceleração para obter um ID de instância.
O DataWorks suporta apenas o download de 10.000 linhas. Para mais, use o Tunnel, que requer um ID de instância.
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...
Ao executar a tarefa, adicione set odps.mcqa.disable=true; no editor de nó ODPS SQL (execute-o junto com suas instruções SELECT).
Erro: [202:ERROR_GROUP_NOT_ENABLE]:group is not available
Durante a execução da tarefa, você recebe o erro: Job Submit Failed! submit job failed directly! Caused by: execute task failed, exception: [202:ERROR_GROUP_NOT_ENABLE]:group is not available.
Causa possível: O grupo de recursos vinculado está indisponível.
Solução: Faça login no console do DataWorks. Clique em Resource Groups no painel de navegação à esquerda. Localize seu grupo de recursos e verifique se o Status está como Running. Caso contrário, reinicie o grupo de recursos ou use outro disponível.