我想知道為什麼 Amazon Redshift Serverless 取消或停止了我的查詢,並且我收到了錯誤訊息。
簡短說明
以下是 Amazon Redshift 中取消或停止查詢的原因:
- 您已達到查詢配額上限。
- 您已達到 RRedshift 處理單元 (RPU) 的工作群組使用量配額上限。
- 您的查詢超出了 statement_timeout 值。
- 另一個使用者停止或取消了查詢。
- 網路連線有問題。
解決方法
檢查 Amazon Redshift Serverless 工作群組查詢配額
當達到工作群組查詢配額上限時,查詢將傳回下列錯誤訊息:
「錯誤: 使用者請求的查詢 (6800381) 取消。」
若要確認 Amazon Redshift 是否因為您達到配額上限而取消了查詢,請從 Amazon Redshift 查詢編輯器執行下列 SQL 陳述式:
SELECT query_id, query_text, error_message from SYS_QUERY_HISTORY WHERE error_message ILIKE '%cancelled on user%';
若要解決此問題,請增加工作群組查詢配額。
檢查 Amazon Redshift Serverless 工作群組的 RPU 使用配額
當達到 RPU 的工作群組使用配額上限時,查詢將傳回下列錯誤訊息:
「錯誤: 查詢已達到使用量限制。」
若要確認 Amazon Redshift 是否因為您達到使用配額上限而取消了查詢,請從 Amazon Redshift 查詢編輯器執行下列 SQL 陳述式:
SELECT query_id, query_text, usage_limit, error_message FROM SYS_QUERY_HISTORY WHERE error_message ILIKE '%reached usage limit%';
若要解決此問題,請增加工作群組使用配額。
檢查您的查詢是否超出了 statement_timeout 值
當查詢超過 statement_timeout 值時,Amazon Redshift 會取消您在工作階段期間提交的查詢。查詢傳回以下錯誤訊息:
「錯誤: 使用者請求的查詢 (150) 取消。」
若要檢查叢集的陳述式逾時,請從 Amazon Redshift 查詢編輯器執行下列 SQL 陳述式:
SHOW statement_timeout;
此陳述式會顯示叢集等級陳述式逾時 (以毫秒為單位)。若要改變輸出,請修改工作負載管理組態中的參數。
若要確認 Amazon Redshift 是否因陳述式逾時而取消了查詢,請從 Amazon Redshift 查詢編輯器執行下列 SQL 陳述式:
SELECT * FROM SYS_QUERY_HISTORY WHERE query_text ILIKE '%set%statement_timeout%to%';
如果 Amazon Redshift 取消了您的查詢,請執行以下命令以增加您的 statement_timeout 值:
SET statement_timeout = (value)
注意: 將 (value) (值) 替換為比先前 statement_timeout 值更大的值。
檢查其他使用者是否停止或取消了查詢
若要檢查其他使用者是否停止或取消了查詢,請執行以下命令並查看error_message 欄:
SELECT * FROM sys_query_history WHERE session_id = process_id;
注意: 將 process_id 替換為您的程序 ID。
若要查看已停止的查詢,請從 Amazon Redshift 查詢編輯器執行下列 SQL 陳述式:
SELECT * FROM sys_query_history WHERE error_message ILIKE '%terminate%';
若要查看已取消的查詢,請從 Amazon Redshift 查詢編輯器執行下列 SQL 陳述式:
SELECT * FROM sys_query_history WHERE error_message ILIKE '%canceled by user%';
如果查詢出現在輸出中,則表示使用者停止或取消了該查詢。
注意: 使用者只能停止自己的工作階段。超級使用者可以停止所有工作階段。
網路問題
網路問題也可能導致查詢取消。
若要檢查網路連線是否有問題,請執行下列指令檢查 SYS_CONNECTION_LOG 監控檢視:
SELECT * FROM SYS_CONNECTION_LOG WHERE session_id = process_id;
注意: 將 process_id 替換為您的程序 ID。
相關資訊
為什麼我的查詢在 Amazon Redshift 中取消?