#21231·bytebase

在 MySQL 计划检查中支持 Aurora MySQL `LOAD DATA FROM S3` 语法

作者: kzmshx创建于 2026年8月24日更新于 2026年9月3日

您的特性请求与问题有关吗 ?

Aurora MySQL将MySQL与`LOAD DATA from S3 ' 相相扩展——语法ZAWS文件作为从S3获得散装数据的方法(https://docs.ZAWS.amazon.com/AmazonRDS/latest/AuroraUserGuide/AurororaMySQL.IIntroduction.LOadFromS3.html)。 Aurora 实例在 Bytebase 中注册为 “ MySQL” 引擎, 但是 MySQL 解析器不承认这个语法, 因此计划检查报告一个错误的语法错误( 验证了当前“ main” , 第一次点击 3.1.7: ):

语法错误 # 201
第1:11行的语法错误:出乎意料的符号
相关文本:LOAD DATA from S3's 3://mybucket/data.txt" 进入表t1.

后果:

  • 在启用强制-sql-review ' 后,计划不能提交审查(未通过的先决条件:计划检查没有通过 ' )。 没有它,自动推出就永远不会被触发,唯一通过的方法就是"通过和部署"——完全跳过审查批准.
  • 执行本身起作用了:任务执行者将声明发送到现场,奥罗拉负责操作. 只有解析器挡道了,所以一个合法,可审核的语句(Aurora记录了'aurora s3 load history'中的每个负载)只能通过堆放治理例外来通过所规范的路径.

MySQL方面没有工作余地:LOAD DATA ' 被禁止储存程序(ERROR 1314')和PREPARE',因此不能用标准语法包住它——与Aurora PostgreSQL不同,Aurora的aws s3.table import from s3()'今天的`aws s3.table import s s3()'是一个简单的函数调用和描述的罚款。

复制(不需要Aurora):制定一项计划,针对任何MySQL引擎数据库。

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? LOAD 数据来自 S3's 3://mybucket/data.txt" 进入表t1 被"被"," 被"n"摧毁的线;


以及两个计划检查(`统计-ADVISE'、`统计-SUMMARI-REPORT')都因`201号语法错误'而失败。

描述你想要的解决方案

让MySQL解析器接受Aurora MySQL S3的语句,所以包含这些语法的计划通过语法检查,并获得正常的SQL审查范围:

- `来自S3的LOAD数据[FILE +PRIFIX + MANIFEST] 'uri'...'(和`来自S3的LOAD XML.')
- 精通... 进入外部S3"uri"...

这两个是唯一一个与改变工作流程相关的Aurora特定语句;其他Ourora所揭露的一切都使用标准语法.

其他背景

这看起来与剖析器堆栈的方向一致:'bytebase/omni''的MySQL Lexer已经定义了'S3'关键词(目前没有使用),而omni已经将MySQL语法扩展为每个方言(`omni/mariadb'增加了'inSERT. Returning'和'CREATE SEQUENCE')。

如果这个方向听起来可以接受, 乐于贡献解析器变化 .

内容来源: bytebase/bytebase