全部產品
Search
文件中心

Simple Log Service:MaxCompute投遞任務(新版)常見報錯與問題

更新時間:Jun 30, 2024

本文介紹MaxCompute投遞任務(新版)的常見報錯與問題。

出現使用者不存在錯誤時,如何解決?

如果MaxCompute投遞(新版)的執行記錄中顯示ODPS-0420095: Access Denied - Authorization Failed [4002], You don't exist in project ****. Context ID:11111-1111-111-1111-11111111. --->Tips: Pricipal:INVALID$v4_11111111111; You don't exist in project ****錯誤,表示您在添加RAM角色為MaxCompute工作空間成員時,未添加目標使用者或者添加使用者錯誤,請重新添加使用者並完成授權,具體操作,請參見通過預設角色寫資料到MaxCompute通過自訂RAM角色寫資料到MaxCompute

出現RAM角色無許可權錯誤時,如何解決?

如果MaxCompute投遞(新版)的執行記錄中顯示ODPS-0420095: Access Denied - Authorization Failed [4019], You have NO privilege 'odps:Describe' on {acs:odps:*:projects/****/tables/****}. Context ID:111111-1111-11111-1111-1111111. --->Tips: Pricipal:INVALID$v4_111111111錯誤,表示您在添加RAM角色為MaxCompute工作空間成員時,未為RAM角色授權,請重新為RAM角色授權。具體操作,請參見通過預設角色寫資料到MaxCompute通過自訂RAM角色寫資料到MaxCompute

出現FAILED: mismatched input錯誤時,如何解決?

如果您使用RAM使用者在操作添加RAM角色為MaxCompute工作空間成員時,出現FAILED: mismatched input錯誤,表示該RAM使用者沒有執行ADD USER等語句的許可權。出現該錯誤時,您需要先使用阿里雲帳號或具備如下權限原則的RAM使用者執行ADD USER等語句。完成此次操作後,後續您再使用RAM使用者執行ADD USER等語句,不會出現該錯誤。

{
  "Version": "1",
  "Statement": [
    {
      "Action": "ram:CreateServiceLinkedRole",
      "Resource": "*",
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "ram:ServiceName": "usermgmt.odps.aliyuncs.com"
        }
      }
    }
  ]
}

出現操作使用者無許可權錯誤時,如何解決?

如果當前操作使用者在操作添加RAM角色為MaxCompute工作空間成員時,出現FAILED: ODPS-0130013:Authorization exception - Authorization Failed [4003], You have NO privilege to do the PROJECT SECURITY OPERATION for {acs:odps:*:projects/****/authorization/users}. Context ID:1111-11111-1111-1111-11111.錯誤,表示當前的操作使用者無MaxCompute賬戶操作或者授權許可權,您需要為該使用者添加admin角色。更多資訊,請參見MaxCompute和DataWorks的許可權關係

您可以參見如下步驟,為使用者添加admin角色。

  1. 登入MaxCompute控制台

  2. 在頁面左上方,選擇地區。

  3. 專案管理頁面中,單擊目標專案對應的管理

  4. 單擊角色許可權

  5. 單擊admin角色對應的成員管理

  6. 成員管理頁面,將帳號名添加到待添加帳號名

  7. 成員管理對話中,單擊確定MaxCompute專案成員

如何按照日誌時間進行分區?

您可以在建立MaxCompute投遞任務(新版)時,將MaxCompute分區列設定為__partition_time__,實現資料按照日誌時間進行分區。MaxCompute分區

__partition_time__欄位是根據Log Service中__time__欄位的值計算得到的,結合時區配置以及分區時間格式,產生時間字串。為避免觸發MaxCompute單表分區數目的限制,日期分區列的值按照1800秒(半小時)對齊。更多資訊,請參見__partition_time__欄位

如何查看MaxCompute表的分區?

您可以通過show partitions {table-name};命令查看MaxCompute表的分區。其中,{table-name}為表名稱,請根據實際值替換。

如何投遞日誌時間資料?

您可以在建立MaxCompute投遞任務(新版)時,在MaxCompute普通列中添加__time__欄位。用__time__欄位表示日誌時間,UNIX時間戳記格式,精確到秒。

MaxCompute時間列

為什麼有些欄位值為null?

通常發生在類型不符或類型轉換失敗、日誌對應欄位不存在等情境。

  • 欄位類型不符或者類型轉換失敗的處理,請參考處理髒資料

  • 關於不同類型格式要求,請參考資料類型