Bigtable 模式 - 多列或多行?
Bigtable schema - multiple columns or rows?
我正在设计一个 Bigtable 模式,我试图在其中优化读取性能。我正在寻找关于这两个选项中哪一个表现更好的建议:
单行多列(每行大约 1-200 列,大多数少于 10 列)。每个单元格中唯一的数据是时间戳。
每条记录有多行,字段附加到行键,只有一列用于时间戳。
我看到一些文档推荐了窄而高的模式,这会建议 #2。但这需要读取一系列键才能取回数据,我认为这比选项 1 中仅读取一行要慢?
我认为采用哪种方式并不重要,因为两种方式相邻存储的数据量相同。我认为单行可能会使用更少的数据,因为您不必复制有关该行的信息。
此外,由于您只需要时间戳数据,您可以使用单元格的时间戳部分并使值仅为一个字节,这样您就可以通过这种方式优化存储。
无论哪种方式,它可能都可以忽略不计,但如果您担心几毫秒的延迟,我建议您使用这两种模式设置一些数据并在两者上生成一堆读取以看看有没有一个性能稍微好一点。
我正在设计一个 Bigtable 模式,我试图在其中优化读取性能。我正在寻找关于这两个选项中哪一个表现更好的建议:
单行多列(每行大约 1-200 列,大多数少于 10 列)。每个单元格中唯一的数据是时间戳。
每条记录有多行,字段附加到行键,只有一列用于时间戳。
我看到一些文档推荐了窄而高的模式,这会建议 #2。但这需要读取一系列键才能取回数据,我认为这比选项 1 中仅读取一行要慢?
我认为采用哪种方式并不重要,因为两种方式相邻存储的数据量相同。我认为单行可能会使用更少的数据,因为您不必复制有关该行的信息。
此外,由于您只需要时间戳数据,您可以使用单元格的时间戳部分并使值仅为一个字节,这样您就可以通过这种方式优化存储。
无论哪种方式,它可能都可以忽略不计,但如果您担心几毫秒的延迟,我建议您使用这两种模式设置一些数据并在两者上生成一堆读取以看看有没有一个性能稍微好一点。