gpt4 book ai didi

hadoop - 数据版本控制(Hadoop、HDFS、Hbase 后端)

转载 作者:可可西里 更新时间:2023-11-01 15:18:45 26 4
gpt4 key购买 nike

我想知道如何在 Hadoop/HDFS/Hbase 中对数据进行版本控制。它应该是您模型的一部分,因为很可能会发生变化(大数据是长时间收集的)。

HDFS(基于文件的后端)的主要示例。

sample-log-file.log:

timestamp x1 y1 z1 ...
timestamp x2 y2 z2 ...

我现在想知道在哪里添加版本控制信息。我看到 2 个备选方案:

文件格式内的版本

日志文件.log:


timestamp V1 x1 y1 z1 ...
timestamp V2 w1 x2 y2 z1 ...

文件名中的版本

*log-file_V1.log*


timestamp x1 y1 z1 ...

*日志文件_V2.log*

timestamp w1 x1 y1 z1 ...

第二个选项(文件名中的版本)对我来说感觉更干净一些并且适合 HDFS(我可以简单地使用 *_v2* 作为模式来排除旧版本样式的文件)。另一方面,我需要运行 2 个不同的作业,因为我无法在一个作业中分析版本片段。

HBase 怎么样,我想在 HBase 中版本肯定会以另一个表列结束(HDFS 是实现细节并用作 HBase 的后端)?

后端 Hadoop/HDFS/HBase 的版本控制数据的任何其他替代方法?

谢谢!

编辑:我的问题是关于如何处理版本信息本身,而不是时间戳。

最佳答案

对于 HDFS,将时间戳存储在文件中会占用更多空间(每一行都会重复时间戳),但您可以灵活地在单个文件中保存多个日期。哪个更可取完全取决于您的用例。

对于HBase,你有几个选择:你可以在行键中显式地包含一个时间戳(和/或版本号),并将一个数据项的不同版本放入表中的不同行中;或者,您可以使用 HBase 的内置时间维度,它实际上包括数据库中每个单元格的时间戳(即每一行每一列中的每个值),并允许您保留可配置数量的版本。默认情况下,扫描仅返回每个键/值的最新版本,但您可以在扫描时更改该行为以返回多个版本,或仅返回给定时间范围内的版本。

关于hadoop - 数据版本控制(Hadoop、HDFS、Hbase 后端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10755772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com