本文介紹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角色。
在頁面左上方,選擇地區。
在專案管理頁面中,單擊目標專案對應的管理。
單擊角色許可權。
單擊admin角色對應的成員管理。
在成員管理頁面,將帳號名添加到待添加帳號名。
在成員管理對話中,單擊確定。
如何按照日誌時間進行分區?
您可以在建立MaxCompute投遞任務(新版)時,將MaxCompute分區列設定為__partition_time__,實現資料按照日誌時間進行分區。
__partition_time__欄位是根據Log Service中__time__欄位的值計算得到的,結合時區配置以及分區時間格式,產生時間字串。為避免觸發MaxCompute單表分區數目的限制,日期分區列的值按照1800秒(半小時)對齊。更多資訊,請參見__partition_time__欄位。
如何查看MaxCompute表的分區?
您可以通過show partitions {table-name};
命令查看MaxCompute表的分區。其中,{table-name}為表名稱,請根據實際值替換。
如何投遞日誌時間資料?
您可以在建立MaxCompute投遞任務(新版)時,在MaxCompute普通列中添加__time__欄位。用__time__欄位表示日誌時間,UNIX時間戳記格式,精確到秒。
為什麼有些欄位值為null?
通常發生在類型不符或類型轉換失敗、日誌對應欄位不存在等情境。