我们有数据(此时不分配)要转换/聚合/透视到wazoo。
我在www上看了一眼,我要问的所有答案都指向hadoop,它具有可伸缩性、运行成本低(没有sqlserver机器和许可证)、速度快(如果你有分配的数据)、可编程性(而不是你拖来拖去的小盒子)。
我经常遇到的问题只有一个,那就是“如果数据超过10gb,就使用hadoop”
现在我们甚至没有1gb的数据(现阶段)它是否仍然可行。
我的另一个选择是ssis。现在,我们确实在当前的一些etl中使用了ssis,但我们没有用于它的资源,将sql放到云中只会花费很多,甚至没有让我开始讨论可伸缩性成本和配置。
谢谢
2条答案
按热度按时间tag5nh1u1#
您当前的数据量似乎太低,无法进入hadoop。只有在处理大量数据(tb/年)并且怀疑数据量会呈指数级增长时,才能进入hadoop生态系统。
让我解释一下为什么我建议对如此低的数据量使用hadoop。默认情况下,hadoop将文件存储到128mb的数据块中,并且在处理时,每次需要128mb的数据块来处理(并行)。如果您的业务需求涉及大量cpu密集型处理,那么您可以将输入块大小从128mb减少到更小。但是,通过减少并行处理的数据量,最终会增加io seak(低级块存储)的数量。最后,您可能会花费更多的资源来管理任务,而不是实际的任务。因此,尽量避免将分布式计算作为(低)数据量的解决方案。
7gcisfzg2#
正如@makubex所建议的,不要使用hadoop。
而且siss是一个很好的选择,因为它处理内存中的数据,因此它执行数据聚合、数据类型转换、合并等的速度要比使用存储过程中的临时表写入磁盘快得多。
hadoop适用于大量数据,我建议它只适用于以TB为单位的数据。对于小数据集,siss(在内存中运行)的速度要慢得多。
请参阅:何时将t-sql或ssis用于etl