请帮我解决这个大数据问题。
我有一个非常大的表(500G),用于存储从一个网站收集的cookie信息,我尝试为许多其他客户提供服务。对于每个客户,他们都有自己的cookie,所以最后我需要对500G + 300G(client_data)进行查询。
由于某些查询同时使用我的cookie数据和客户端cookie数据,因此我可能需要在表和表之间进行连接,因此性能很差。为了解决这个问题,我将整个800GB数据放入一个巨大的表中。由于没有连接表,性能良好。但是,当我将服务扩展到多个客户端时,它需要太多存储空间。
当前我使用Vertica作为我的数据源,并使用位图来存储我的信息。
任何可以保持我当前表现的建议,但也支持40个客户?我的存储大约是12 TB,当前解决方案中的每个客户端都说1.5T。
我想要的是替换Vertica,可以支持位图操作和快速表连接。或者更好的方式来表示我的数据。
答案 0 :(得分:1)
我的存储空间约为12 TB,当前解决方案中的每个客户端都是1.5T。
如果您要存储40 * 1.5TB的非重复cookie数据,那么使其适合12TB是没有神奇的。
答案 1 :(得分:1)
由于缺乏有关定义等的详细信息,这将是一个不精确的答案。但我会在性能上添加以下内容:
查看您的投影定义。您可能会获得性能提升,具体取决于您在投影的order by子句中放置的内容。
答案 2 :(得分:0)
根据具体情况,您可以采取一些方法。第1点和第3点是最容易处理的:
如果1和3设置得很好,Vertica实际上可以在解压缩之前应用过滤器,将您的查询紧固并因此使用更少的内存。