我们有一个批处理分析 SQL 作业——每天运行一次——它从一个强大的 RDBMS 中保存的 2 个源表中读取数据。源表很大 (>100TB),但组合的字段少于 10 个。
我的问题是 2 个源表是否可以保存在压缩和索引的平面文件中,这样整个操作可以更快,节省存储空间,并且可以在低规格服务器上运行。另外,我们可以对这些压缩和索引的平面文件运行类似 SQL 的查询吗?有关如何进行此操作的任何指示都将非常有帮助。
我们有一个批处理分析 SQL 作业——每天运行一次——它从一个强大的 RDBMS 中保存的 2 个源表中读取数据。源表很大 (>100TB),但组合的字段少于 10 个。
我的问题是 2 个源表是否可以保存在压缩和索引的平面文件中,这样整个操作可以更快,节省存储空间,并且可以在低规格服务器上运行。另外,我们可以对这些压缩和索引的平面文件运行类似 SQL 的查询吗?有关如何进行此操作的任何指示都将非常有帮助。
大多数优化策略会优化速度或大小,并权衡取舍。通常,RDBMS 解决方案以牺牲大小为代价来优化速度——例如,通过创建索引,您会占用更多空间,而作为回报,您可以获得更快的数据访问。
因此,您对速度和尺寸进行优化的愿望不太可能实现 - 您几乎可以肯定必须以一种方式与另一种方式进行交易。
其次,如果你想执行“类似 sql”的查询,我很确定 RDBMS 是最好的解决方案——尤其是对于庞大的数据集。
可能是底层数据适合特定优化 - 例如,如果您可以创建基于位掩码的自定义索引方案来创建整数,并使用这些整数使用布尔运算符访问数据,您可能能够击败了 RDBMS 索引的性能。