我有一个事件表,其中包含一列IP地址。我还有一个映射表,它采用0填充的IP地址范围,并具有相应的城市和国家。
我可以编写将IP地址转换为0填充IP地址的查询,然后根据我的映射表进行连接。
但是在性能方面,我不能让任何东西工作。events表是40m+行,因此尝试基于字段操作的连接需要30分钟才能结束。我尝试映射一个映射表(IP到0填充的IP),但没有改善。即使是构建一个包含城市的唯一IP地址的简化表,也需要花费很长时间。
这里有没有我应该采取的方法或策略来尝试更有效地合并这些数据集?
发布于 2018-06-15 14:44:07
您不必每次都在运行中执行此操作。一个好的方法是实现。特别是因为您的数据可能是不可变的(无论数据在行中是什么,IP一旦被记录就不会改变),因此您有更多的选择。它们可以是:
的每个新数据部分追加连接
如果您有能力存储40m+表的另一个副本,则可以将结果存储为一个新表,该表包含来自源表的所有列和county (以及可能的0填充IP),如果不能,您可以存储一个具有来自源表的一些ID的表,以及提供比原始查询更快的连接的连接结果。或者,如果源表是某个ETL/ELT过程的结果,那么这可能只是另一个步骤。
https://stackoverflow.com/questions/50866319
复制相似问题