全部產品
Search
文件中心

DataWorks:資料開發與運行

更新時間:May 29, 2025

本文為您介紹資料開發的相關問題。

如何在pyodps調用第三方包?

需要使用獨享調度資源群組進行操作,詳情請參考文檔:在PyODPS節點中調用第三方包

如何控製表資料查詢以後是否可以下載?

在DataWorks下載資料的前提是要將下載功能開啟,如果沒有下載入口,說明工作空間未開啟下載,如果有需要可以聯絡主帳號或者工作空間管理員在工作空間管理處開啟。開啟下載功能

查詢資料後在查詢結果右下角會有下載入口,如下圖所示:資料下載

DataWork介面下載由於引擎節流只能下載10000條資料。

如何下載超過1萬條的表資料?

需要通過MaxCompute tunnel操作:SQLTask配合Tunnel實現大量資料匯出樣本

為什麼EMR通過DataWorks可視化建表失敗報錯:call emr exception?

  • 可能原因:EMR所在的ECS叢集的安全性群組缺失必要安全性群組配置。註冊EMR叢集時,您需要添加安全性群組策略,否則可能會出現上述建表失敗提示。

    EMR所在的ECS叢集的安全性群組缺失必要安全性群組配置。註冊EMR叢集時,您需要添加以下安全性群組策略,否則可能會出現上述建表失敗提示。

    • 授權策略:允許

    • 協議類型:自訂TCP

    • 連接埠範圍:8898/8898

    • 授權對象:100.104.0.0/16

  • 如何處理:查看EMR所在的ECS叢集的安全性群組配置情況,補充上述安全性群組策略。

如何在節點內使用資源?

右鍵目標資源節點,選擇引用資源引用資源

如何下載上傳到DataWorks的資源?

右鍵目標資源節點,選擇查看歷史版本查看歷史版本

超過30M的資源如何上傳?

超過30M的資源需要通過[tunnel](使用Tunnel命令上傳下載資料)上傳,上傳後再使用MaxCompute資源功能添加到DataWorks進行後續的資源使用操作。詳情請參考常見問題:通過odpscmd上傳的資源如何在DataWorks上使用?

通過odpscmd上傳的資源如何在DataWorks上使用?

odpscmd上傳的資源在DataWorks上使用請在MaxCompute資源處將資源添加到資料開發。資源添加

在DataWorks如何上傳自己本地編寫的jar並執行?

您需要在資料開發介面將該jar作為資源上傳到DataWorks,節點使用該jar資源時,您需要先右鍵目標資源節點 > 引用資源(會在節點最上方自動多出一條注釋),然後直接使用資源名執行。上傳本地JAR

例如:在Shell節點內##@resource_reference{"test.jar"}java -jar test.jar

如何?在DataWorks上使用MaxCompute表資源?

目前DataWorks不支援直接使用圖形介面上傳MaxCompute表資源,可參見MaxComputeUDF樣本:參考資料表資源查看引用資源表方式。如果您想在DataWorks上使用MaxCompute表資源,可按照如下:

  1. 在MaxCompute側通過以下SQL語句添加表為表資源,詳情請參見添加資源

    add table <table_name> [partition (<spec>)] [as <alias>] [comment '<comment>'][-f];
  2. 在DataWorks資料開發頁面建立Python類型的資源,本樣本資源名為get_cache_table.py,用來遍曆尋找到MaxCompute內添加的表資源,該Python代碼請參見開發代碼

  1. 在DataWorks資料開發頁面,建立函數,本樣本函數名為table_udf

    該函數中的需要填寫的內容如下:

    • 類名get_cache_table.DistCacheTableExample

    • 資源清單:Python檔案直接下拉選擇get_cache_table.py,表資源需要在指令碼模式下添加。

  2. 完成函數註冊後,即可參照使用樣本構造測試資料並調用註冊的函數。

在DataWorks中提交任務,提示 “未設定預設或可用資源群組”,如何配置資源群組?

遇到這種問題,您可在節點編輯頁面右側的調度配置中找到調度資源群組,下拉設定您需使用的調度資源群組。如沒有找到可使用的調度資源群組,可通過以下步驟為您所使用的工作空間綁定對應資源群組。

  1. 登入DataWorks管理主控台,切換地區後,單擊DataWorks管理主控台左側導覽列的資源群組,進入資源群組列表

  2. 在資源群組列表頁面找到已建立的資源群組,單擊操作列的綁定工作空間

  3. 綁定工作空間頁面,找到已建立的DataWorks工作空間,單擊其操作列的綁定

完成以上步驟後,您可前往節點編輯頁面右側的調度配置中,下拉設定您需使用的調度資源群組。

Python資源是否支援調用另一個Python資源?

兩個資源在同一個工作空間的前提下,Python資源支援調用另一個Python資源。

PyODPS是否支援調用自訂函數來使用第三方包?

如果您不想通過DataFrame的map方法使用test函數,PyODPS同樣支援直接調用自訂函數來匯入第三方包,詳情請參見PyODPS使用第三方包

PyODPS 3中調用Pickle檔案報錯:_pickle.UnpicklingError: invalid load key, '\xef

如果您的代碼中存在特殊字元,請將代碼打成zip再上傳,然後在代碼中進行解壓使用。

如何刪除MaxCompute資源?

資源建立完成後,如果需要刪除資源,簡單模式下直接按右鍵所需刪除的資源即可,標準模式下需要先在開發環境中刪除資源,再在生產環境中刪除資源,以下以刪除生產環境的資源為例,為您示範刪除資源的操作步驟。

說明

如果您的DataWorks為標準模式,則開發環境和生產環境分離,在DataWorks的DataStudio刪除資源時,只刪除了開發環境的資源,生產環境的資源需要將刪除操作發布到生產環境,生產環境的資源才會被刪除下線。

  1. 在開發環境中刪除資源。在對應商務程序下,選擇MaxCompute > 資源,右鍵待刪除的資源後單擊刪除,在彈出的頁面單擊確認刪除資源

  2. 在生產環境中刪除資源。刪除操作會在任務發布介面產生一條待發布的記錄,發布後才能生產任務才會下線。您可以在資料開發DataStudio頁面的右上方單擊任務發布,過濾變更類型為下線,找到上述步驟下線資源的變更發布包後,單擊操作列的發布,在彈出的頁面中單擊發布確認發布完成發布後,生產環境的資源才會被刪除。

為什麼在EMR叢集中啟用了Kerberos後,在EMR Spark節點開發中使用YARN-Cluster模式執行spark-submit時會報錯DlfMetaStoreClientFactory not found?

  • 報錯詳情Class com.aliyun.datalake.metastore.hive2.DlfMetaStoreClientFactory not found?

  • 原因分析:EMR叢集開啟Kerberos之後,在YARN-Cluster模式下,Driver的classpath不會自動擴充以包含指定目錄中的JAR檔案,從而導致執行Spark任務時報錯,詳情可參見EMR on ECS常見問題

  • 解決方案:手動指定DLF 相關包運行即可解決,請參考以下步驟:

    • 在EMR叢集開啟Kerberos之後,使用spark-submit在YARN-Cluster模式下提交任務時,需要增加--jars參數。除了使用者程式本身依賴的JAR包外,還需要添加/opt/apps/METASTORE/metastore-current/hive2目錄中的所有JAR包。

      EMR Spark 節點 Yarn Cluster 模式手動指定 DLF 相關包,可參考以下代碼。

      重要

      在YARN-Cluster模式下,--jars參數中的所有依賴必須以“,”分隔,不支援目錄形式。

      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
    • 手動指定 DLF 相關包運行時,需配置有許可權訪問DLF和OSS許可權的AK資訊,否則會出現STS認證報錯,報錯資訊可能為以下兩條中的任意一條。

      • 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)

      任務層級,在節點右側進階配置中增加如下參數(如需全域生效,可以在叢集服務配置spark全域參數中配置)
      "spark.hadoop.dlf.catalog.akMode":"MANUAL",
      "spark.hadoop.dlf.catalog.accessKeyId":"xxxxxxx",
      "spark.hadoop.dlf.catalog.accessKeySecret":"xxxxxxxxx"

節點刪除後如何還原?

節點刪除後可以進入資源回收筒進行還原。還原節點

如何查看節點版本?

開啟單個節點配置介面可以查看節點的版本

重要

已提交才會產生版本。

查看版本

如何複製商務程序?

您可以使用節點群組功能:使用節點群組

如何將工作空間下的節點代碼匯出?

您可以使用遷移助手功能:遷移助手

如何查看業務節點提交狀態?

如果您希望查看業務節點提交狀態,可以選擇資料開發 > 商務程序,展開對應的商務程序列表,即可查看當前商務程序下所有節點狀態。如果節點名稱左側存在表徵圖表徵圖,表示該節點已提交;如果節點名稱左側不存在表徵圖表徵圖,表示該節點未提交。

當商務程序中包含多個節點時,是否可以大量設定節點的調度資訊?

DataWorks不支援對商務程序配置調度資訊,對於商務程序內的節點,您無法大量設定調度資訊,只能逐個配置節點的調度資訊。例如,一個商務程序中包含20個節點,您只能為每個節點逐個配置調度資訊。

節點被刪除,執行個體是否受影響?

調度系統每天會根據時間屬性為該任務產生對應的一個或多個執行個體,當一個任務運行一段時間後被刪除,則執行個體不會被刪除。當執行個體在刪除任務後被觸發運行時,會由於找不到需要啟動並執行代碼而失敗。

修改後的節點任務提交發布至生產環境後,是否會覆蓋之前生產環境的錯誤節點?

不會覆蓋之前的節點,未啟動並執行執行個體會用最新代碼運行,不會刪除已產生的節點執行個體。如果調度參數有變化,需要重建執行個體去運行。

如何可視化建立表?

可以在資料開發,表管理和商務程序內的表容器中建表。建立表

如何對生產表添加欄位?

主帳號可以在表管理頁面,對生產表添加欄位後,提交至生產環境。

子帳號需要擁有營運或專案系統管理員角色,才可以在表管理頁面,對生產表添加欄位後,提交至生產環境。

如何刪除表?

刪除開發表:可以在資料開發介面刪除。

刪除生產表:

  • 生產表請前往資料地圖我的資料中刪除表。

  • 您可以建立一個ODPS SQL節點,輸入並執行DROP語句。建立ODPS SQL節點的詳情請參見開發ODPS SQL任務,刪除表的文法格式請參見表操作

刪除表

如何將本機資料上傳到MaxCompute表中?

您可以進入資料開發找到匯入表功能匯入本機資料。匯入本機資料

在EMR叢集中建表失敗,介面提示:call emr exception?

  • 可能原因:

    EMR所在的ECS叢集的安全性群組缺失必要安全性群組配置。註冊EMR叢集時,您需要添加以下安全性群組策略,否則可能會出現上述建表失敗提示。

    • 授權策略:允許

    • 協議類型:自訂TCP

    • 連接埠範圍:8898/8898

    • 授權對象:100.104.0.0/16

  • 解決方案:

    查看EMR所在的ECS叢集的安全性群組配置情況,補充上述安全性群組策略。

如何在開發環境訪問生產環境資料?

標準模式下,如果在資料開發介面需要查詢生產環境的資料,請使用專案名.表名進行訪問。

如果是簡單模式升級到標準模式,在資料開發介面需要查詢生產環境資料,則需要先申請生產者角色許可權,再使用專案名.表名進行訪問。申請許可權具體請參考申請表許可權

資料開發介面歷史執行日誌如何擷取?

您可以進入資料開發介面左側邊欄找到運行歷史模組,查看歷史執行日誌。

資料開發運行歷史保留多長時間?

資料開發介面的運行歷史預設保留3天。

說明

生產營運中心日誌與執行個體保留時間長度請參考:日誌和執行個體保留多長時間?

如何對節點、資源、函數等進行相關批量修改相關屬性的操作?

您可以在資料開發介面左側工具列中進入大量操作介面。支援針對節點、資源、函數進行大量操作,批量修改完成後,您可以批量提交,並在任務發布介面批量發布,讓節點變更操作生產環境生效。

大量操作

如何在資料開發頁面批量修改商務程序下節點使用的調度資源群組?

您可以在資料開發頁面指定的商務程序名處,進入資源群組編排,您可以在此頁面批量修改該商務程序內的節點指定的調度資源群組,修改完成後,您可以選擇提交按鈕進行批量提交,並在任務發布介面批量發布,讓節點使用的調度資源群組變更操作在生產環境生效。批量修改調度資源群組

使用Power BI串連MaxCompute報錯,該如何處理?

目前MaxCompute不支援串連Power BI,建議您使用互動式分析(Hologres)進行串連,詳情請參見訪問網域名稱

Openapi調用報錯access is forbidden. Please first activate DataWorks Enterprise Edition or Flagship Edition

openapi需要DataWorks企業版。詳情請參見:DataWorks OpenAPI概述

如何擷取Python SDK調用案例?

您可以在對應的API頁面點擊調試查看Python SDK的樣本。

任務執行沒有instanceid,如何關閉ODPS加速模式?

擷取instanceid需要關閉加速模式。

說明

DataWorks只支援下載1W條資料,超過1W的資料需要通過tunnel下載,下載時需要instanceid、

關閉加速模式

在運行任務的時候在odps sql節點編輯器裡加上set odps.mcqa.disable=true; (需要和其他select語句一塊執行)。

exception: [202:ERROR_GROUP_NOT_ENABLE]:group is not available報錯

任務執行時產生Job Submit Failed! submit job failed directly! Caused by: execute task failed, exception: [202:ERROR_GROUP_NOT_ENABLE]:group is not available報錯。

可能原因:您所綁定的資源群組狀態為不可用狀態。

解決方案:登入DataWorks控制台, 單擊左側導覽列的資源群組,找到您所使用的資源群組,檢查資源群組狀態是否為運行中。如果狀態不是運行中,您可以重啟該資源群組或使用其他可用資源群組。