Oracle表示数据组合的层次结构

时间:2013-04-05 13:36:40

标签: oracle large-data-volumes data-representation large-data

我有一个Oracle数据量问题,我认为这是由数据表示问题引起的。我有一个由七个不同列表组成的层次结构,需要存储这些元素的所有独特潜在组合。我需要存储所有可能的组合,因为我需要存储其他信息。

从历史上看,我们一直在管理四个列表,这些列表有几千个组合。这很好,但需求已经改变,因为他们不习惯,现在我们正在运行七个列表。在我的真实环境中,列表存储20到200个项目。现在,令人难以置信的是,这个组合的总数约为3500亿。

作为我们试图用此代表的一个例子,您可以选择以下列表:

颜色:红色,绿色,蓝色

形状:圆形,方形,三角形

味道:桃子,香蕉,覆盆子

这些将作为单独的表存储在Oracle中,如COLORS,SHAPES,FLAVORS等,我们正在做的是将它们相乘(通过笛卡尔连接)以得到爆炸表:这就是我们'现在重新存储在Oracle中。

COLOUR    SHAPE   FLAVOUR    DATA_1 DATA_2
Red       Circle  Peach      -- these hold additional information
Red       Circle  Banana
Red       Circle  Raspberry
Red       Square  Peach
Red       Square  Banana
...

等等。

我们发现我们无法在Oracle表中存储数十亿条记录,并且及时对它们执行任何操作。我试图想出不同的方法来存储这些信息,但我的大脑一直在干扰组合的数量。有什么办法可以用不同的方式存储记录吗?请记住,它们都是独特的组合,我们需要将数据与它们一起存储。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

如何将数据存储到非关系数据库?

我推荐使用MongoDB或Hypertable。

答案 1 :(得分:0)

最后,我们选择透视列表,以便不是拥有数百万行,而是选择包含许多列的表。这不是一种理想的方法,但它确实对其他人有一些好处。