繁体   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