是否可以更新已经写入S3的数据?

问题描述 投票:0回答:3

我正在考虑用 S3 替换当前使用的 Hadoop,但在此之前,我想知道是否可以更新已经写入 S3 的数据。

Hadoop 和 HDFS 一样,你只写一次,读很多次,这不允许我更新已经写在上面的数据。我有一个RDB,我想集成到Hadoop中,但由于这个RDB需要及时更新而失败了。 我听说S3,你可以使用Athena或其他可能允许我更新的中间件,这可能可以解决我之前提到的Hadoop问题。

hadoop amazon-s3 hdfs rdbms amazon-athena
3个回答
2
投票

你应该看看Amazon EMR

Amazon EMR 是一个托管集群平台,可简化在 AWS 上运行大数据框架(例如 Apache Hadoop 和 Apache Spark)以处理和分析大量数据的过程。通过使用这些框架和相关的开源项目,例如 Apache Hive 和 Apache Pig,您可以处理数据以用于分析目的和商业智能工作负载。此外,您可以使用 Amazon EMR 将大量数据转换并移入和移出其他 AWS 数据存储和数据库,例如 Amazon S3 和 Amazon DynamoDB。

可以提供托管的Hadoop环境,可以直接使用存储在Amazon S3中的数据。

Amazon S3 是一种对象存储服务。与您可以在编辑器中打开并更改一个字节的本地磁盘上的文件不同,对 Amazon S3 中对象的任何更新都需要替换整个对象。 Hadoop 和 Amazon Athena 等系统通常通过在同一目录下添加额外的文件来append数据,但这种方法对于更新或删除数据来说并不容易。为此,在进行更新时将数据复制到新表 (

CREATE TABLE AS
) 通常更容易。

我见过的唯一允许更新的系统是 Databricks 的Delta Lake


1
投票

我已经通过 Databricks 实现了 Delta Lake 的开源版本,它可以在 parquet 文件上启用 ACID 事务(更新、删除、插入)。它可以工作,但很难在 AWS Glue 中进行设置,这是我本周必须为 POC 做的。它允许您执行诸如将 spark 数据框合并到现有数据湖中之类的操作。


0
投票

看看 Trino(以前称为 PrestoDB)

© www.soinside.com 2019 - 2024. All rights reserved.