簡體   English   中英

在 AWS Athena 中運行多個 MSCK REPAIR TABLE 語句

[英]Running multiple MSCK REPAIR TABLE statements in AWS Athena

所以我試圖在 AWS Athena 中執行以下操作,它一次只允許運行一個語句:

MSCK REPAIR TABLE some_database.some_table_001;
MSCK REPAIR TABLE some_database.some_table_002;
MSCK REPAIR TABLE some_database.some_table_003;

問題是,我只是沒有三個語句,我有 700 多個類似的語句,並且想一次性運行所有 700 多個語句。

所以使用 AWS CloudShell CLI 並嘗試運行以下命令:

aws athena start-query-execution --query-string "MSCK REPAIR TABLE `some_table_001`;"  --work-group "primary" \
--query-execution-context Database=some_database \
--result-configuration "OutputLocation=s3://some_bucket/some_folder" 

..希望我可以使用 Excel 生成 700 多個這樣的語句並作為批處理運行

..但不斷收到此錯誤:

調用 StartQueryExecution 操作時發生錯誤 (InvalidRequestException):第 1:1 行:輸入“MSCK”不匹配。 期望:'ALTER'、'ANALYZE'、'CALL'、'COMMIT'、'CREATE'、'DEALLOCATE'、'DELETE'、'DESC'、'DESCRIBE'、'DROP'、'EXECUTE'、'EXPLAIN'、 'GRANT', 'INSERT', 'PREPARE', 'RESET', 'REVOKE', 'ROLLBACK', 'SET', 'SHOW', 'START', 'UNLOAD', 'UPDATE', 'USE', <查詢>

不確定我做錯了什么,因為同一個 MSCK 命令似乎在 Athena 控制台中運行良好。 我知道雅典娜很挑剔

`some_table_001` 

相對

'some_table_001' 

(不同類型的單引號),我都試過了,但沒有成功。

對可能的解決方案有什么想法嗎?

對於 Amazon Athena,表名稱和表列名稱中不支持除下划線 (_) 以外的特殊字符。

由於您的表名不包含特殊字符,因此您不需要將其用引號或反引號括起來。 但是,如果您的表名包含特殊字符,那么您將不得不使用反引號。 請參閱下面的 Amazon Athena 文檔以獲取更多詳細信息

關於在 Amazon Athena 中運行多個 MSCK REPAIR TABLE 語句,您還可以使用任何 SDK,例如 boto3 (Python)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM