数据库管理:在数据库之外存储旧数据的位置

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

我想知道存储我不需要在数据库外部访问的旧数据的最有效方法是什么。

上下文:我使用 Amazon RDS PostgreSQL 管理单个关系数据库中的数十亿行数据。 95% 以上的数据是时间戳和值数据点。我们的计划是滚动数据存储,这意味着我们将保留例如 2 年的数据,可以轻松地从数据库访问数据,但不需要访问较旧的数据。数据库中的存储非常昂贵,并且会使数据库多年来毫无意义地变得如此之大(而且昂贵)。

我对解决方案的总体想法是,每个月,一些例行程序都会备份超过 2 年的数据点,并将其转移到更便宜的地方,但在哪里,这就是问题。

我看过并读过:

  • 数据湖
  • 数据仓库
  • 数据集市

老实说,我不知道什么最适合我的需求。我读到的内容都集中在诸如让第三方能够轻松监控和执行机器学习或人工智能数据分析之类的内容,这对我来说没有用(至少现在没有)。一些图表显示了具有 4 个以上不同服务架构来执行 XYZ 的架构。我不想太过分,并尽可能保持简单。我只需要将旧数据存储在超级便宜的地方,并且现在在备份后确实不访问它,以保持我的数据库不超过所需的大小。也许将来需要批量获取它用于 ML 或 AI 训练,但目前还没有计划在不久的将来。

关于什么是最佳的有什么想法吗?

database database-design amazon-rds data-storage data-lake
1个回答
0
投票

简单的答案是Amazon S3。它有多个存储类别,可为长期存储提供折扣,具体取决于您想要访问数据的速度。

有许多数据库和服务可以访问和查询存储在 Amazon S3 存储桶中的数据。例如,Amazon Athena 允许您使用 SQL 查询存储在 S3 中的数据,就像查询数据库中的数据一样。您支付标准 S3 存储成本,再加上 Athena 费用(基于查询从磁盘读取的数据量)。这是保持存档信息与数据库中的信息一样可访问的绝佳方法(但查询速度稍慢)。

这就提出了一个问题:以什么格式存储它

您可以使用 aws_s3 扩展轻松将数据从 RDS for PostgreSQL 数据库实例导出到 Amazon S3 - Amazon Relational Database Service

。它的格式选项有限,因此您可能会选择 
CSV 作为格式。这是完全可以接受的,但其他格式有一些好处:

  • CSV 文件存储效率低下,可能会非常大。一种选择是使用 gzip

    .gz 扩展名)

    压缩 CSV 文件,这将降低您的存储成本并降低使用 Amazon Athena 进行查询的成本(它将自动识别 gzip 格式并即时解压缩) ).

  • 更好的是

    snappy-compressed parquet format,它的查询速度非常快,并降低了存储成本。许多数据仓库都支持 parquet 格式,因此它对未来的用例很有用。您可以使用 AWS Athena 将 CSV 文件转换为 Parquet |云预测.

这两个选项都需要您

从 Postgres 导出数据后对其进行处理以更改文件格式。由于成本的节省和查询的速度,额外的努力是值得的。

这是一篇比较 Amazon Athena 存储选项的优秀文章。这篇文章有点旧,但概念仍然正确:

使用 Amazon Athena 分析 S3 中的数据 | AWS 大数据博客

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