You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Athena中更新含双引号列值,UPDATE操作是否不被支持?

AWS Athena是否支持UPDATE操作?

Athena默认不支持传统的UPDATE语句——它本质是基于S3的查询服务,底层常用的存储格式(如CSV、Parquet)都是不可变的,这类存储模型不支持行级修改操作,直接执行你提供的UPDATE语句会报错。

替代解决方案

如果需要清理user_id字段中的双引号,可采用以下两种方式:

1. 用CTAS语句生成处理后的新表

通过创建新表的方式将清洗后的数据写入,替代原表:

CREATE TABLE new_table_name
WITH (
  format = 'Parquet', -- 推荐使用Parquet/ORC这类高性能列式存储格式
  external_location = 's3://your-bucket/path/to/new-table/'
) AS
SELECT
  REPLACE(user_id, '"', '') AS user_id,
  -- 列出原表所有其他字段,比如col1, col2...
  col1, col2, col3
FROM "table_name";

完成后可删除原表,将新表重命名为原表名,或直接使用新表查询。

2. 使用Iceberg格式的ACID事务表

若你的表基于Apache Iceberg格式创建,Athena支持对这类表执行UPDATE、DELETE等DML操作。此时你提供的UPDATE语句可直接运行,但前提是表需为Iceberg格式并开启事务支持。

创建Iceberg表的示例:

CREATE TABLE iceberg_table_name (
  user_id STRING,
  col1 STRING,
  col2 INT
)
WITH (
  table_type = 'ICEBERG',
  format = 'PARQUET',
  external_location = 's3://your-bucket/path/to/iceberg-table/',
  write_compression = 'SNAPPY'
);

针对已存在的Iceberg表,执行你的UPDATE语句即可:

UPDATE "iceberg_table_name" 
SET user_id = REPLACE(user_id, '"', '');

内容的提问来源于stack exchange,提问作者DSi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:10:43