Sql 如何在AWS Athena中将新数据有效地附加到表中?

Sql 如何在AWS Athena中将新数据有效地附加到表中?,sql,amazon-web-services,amazon-s3,aws-lambda,amazon-athena,Sql,Amazon Web Services,Amazon S3,Aws Lambda,Amazon Athena,我在Athena中有一个表,它是从存储在S3中的csv文件创建的,我使用Lambda来查询它。但是我有lambda函数正在处理的传入数据,我想在Athena中的现有表中追加一个新行。我该怎么做?因为我在文档中看到,Athena禁止使用一些SQL语句,如INSERT INTO和CREATE TABLE AS SELECT,如果要添加新数据,可以将新数据文件保存到该表正在读取的文件夹前缀/键中。雅典娜将读取此文件夹中的所有文件,新文件的格式只需与现有文件相同。正确!澄清一下:雅典娜是只读的。因此,您

我在Athena中有一个表,它是从存储在S3中的csv文件创建的,我使用Lambda来查询它。但是我有lambda函数正在处理的传入数据,我想在Athena中的现有表中追加一个新行。我该怎么做?因为我在文档中看到,Athena禁止使用一些SQL语句,如INSERT INTO和CREATE TABLE AS SELECT

,如果要添加新数据,可以将新数据文件保存到该表正在读取的文件夹前缀/键中。雅典娜将读取此文件夹中的所有文件,新文件的格式只需与现有文件相同。

正确!澄清一下:雅典娜是只读的。因此,您需要以雅典娜读取的速度更新数据。@JohnRotenstein我是否必须在雅典娜中运行查询以重新创建新表,或者雅典娜是否能够检测到数据文件不同并自动创建新表?雅典娜实际上会查找指定路径内的所有文件。将自动包括任何新文件和任何更新的文件。它不需要检测一个文件是否不同——它只是读取查询运行时存在的任何文件。@JohnRotenstein因此,如果我想从lambda函数中附加新数据,那么我必须从S3下载该文件,添加新数据,然后以与原始文件相同的名称上传回S3?还是我遗漏了什么?因为大型数据集的速度似乎较慢,所以只需在Athena CREATE TABLE命令中指定的位置目录中添加一个新文件即可。雅典娜并行读取多个文件,因此它实际上可以更有效地处理多个文件,而不是一个更大的文件。