跳转到内容

通过列数据库SQL识别IP地址

云化从广告网络到电子商务网站等数不胜数的公开网络流量数据科学团队致力于分析数据供内外部使用

查看数据保护通用规则文章会发现-异常 Android设备标识码-用户通过它重置网络地址维护用户标识码-如内部协议和媒体存取控制地址以及国际移动设备识别码-侵犯隐私作为一种解决方案,你可以丢弃所有隐私标识或令用户可见重置

IP地址不太方便用户使用,但从中提取数据,例如常用地址(国家、状态)或不同会议数(没有cookie帮助)对业务成功至关重要。直至最近,计算这些维度时,地球提供商或内容传递网络需要全IP处理地址地理提供商主动表示公司内部存储键值结果或授予公司下载主逻辑数据集特权

最近,在审查云存日志数据分析时,我们发现从超过11800万请求样本中全球收到约1 250万个IP地址超过99%的地址为IPv4s本文章描述如何从列数据库到标准SQL定位密钥细节,如原产国

多数提供商提供下列逻辑数据集用三列绘制IPPNUMFER,PNUMTo乡村代码.约200K行取2.5MB盘空间IPNum是通过IP简单计算算法算出举例说,1.2.3.4等于16909060=1256256256+2256256+3256+4,16909060模数256=4

研究1:执行下查询转换并发数据库管理系统RDBMS中小于1-5K记录,工作效果可能很好:

SELECTip2countl.code,COUNT(1)请求s

研究2执行下查询局部关联水平上,它可能慢点处理少数记录,但速度更快处理更多记录,即大容量约10-25K行

SELECT(SELECTipi2country.ipnum_ip2country.ipnum_to)
  • 1-5k和10-25k数字只是粗略估计视数据库性能而定,大小可能各异
  • 两种情况中,真正的问题都发生在记录数增加数达百万时,然后查询性能会根据数据库优化者对优化的观察而急剧下降约宁市交错条款原样CARTESANDJOIN全景记录资料集
  • SQL数据库通常性能约宁市更有效地任务精确EQUAL语言(=) rather than a交错条件详解时时空间索引等解决方案可更好地仿真交错逻辑学
  • 特别是在分栏数据库中,这些类型解决方案可能完全失效,因为我们处理超过一亿记录时通常有超过一百万单值

终极问题:你如何将范围值数据集转换成键值数据集?选项之一是取数据并缓存结果以上例子,从理论上讲,你需要1 250万个键值缓存相对于2万个范围缓存,这可能需要加带宽才能加入数据集动态增长

取而代之的是:

  1. 逆向设计区值数据集成键值数据集
  2. 将键值数据集保留到最小octets(1),最大值为3octetsi-255间运行的四个IP组件

换句话说

  • 案例100.0-100.255.255匹配美国唯一0.0.0.0-US第一个oct数据集
  • 自你不再想接收四级IP后 完全放弃四级IP
  • 可行时保留三点数据集提高性能
  • 每月或每季度更新数据集

完成转换前,让我们看看结果

将二百K测距数据集转换为三oct数据集时,每个oct数据集取一时,你可以看到,既然每个oct提供不同大小的数据(50、50K和2.5MM行),将它们分离可能是明智之举。再者,如果前一数据集已经向您提供结果,您可跳过加入数据集的阶梯

研究3与预期一样,下文查询在列数据库上表现优得多:

SELECT CoLESCE(split_PATER.CORT2CLIP2

前台约宁市任务占用总执行时间的80%以上现在它需要不到5%,剩余任务为正常任务:实际数据扫描、排序和汇总

可能发现数据低于兴趣

注释 :

文章引用的数据和结果取自云端开放网络流量和IP直方图唯一.

大小用法Oct

八叉子 数据集总大小 总计号数据集中的密钥 号废键对数据集 号异常匹配IP 号处理请求
一号 1KB 52 8 11 505 44111
2 180KB 42801 25941 11 231 825 64 582 450
3 10MB 2 411 552 282 110 1 528 017 54 303 033

使用百分比合计

八叉子 偏差IPs% 请求百分比
一号 0.09% 0.04%
2 87.94% 54.30%
3 11.96% 45.66%

关键结果估计

八叉子 号请求逐项数据集记录 号特征IP逐项记录
一号 5513.88 1438.13
2 2489.59 432.98
3 192.49 5.42

以下是结论

  • 前两个octes通过IP地址发现88%的国家仅使用三分数据集将使规模从10MB提高到至少60MB-效率低得多
  • 上三点数据集只表示 IP地址的12%, 一半流量(45%)取自该地址表示约3oct密钥频繁重复,产生更多流量
  • 数据集分结果显示55%请求处理需要探索主10MB三分数据集

响应商业伙伴的要求, 我们做了类似研究 美国转换写道:

八叉子 数据集总大小 号废键对数据集 号废键对数据集 号异常匹配IP 号处理请求
一号 1KB 九九 3 285 1,056
2 50KB 10 910 2 404 523086 3 582 907
3 10MB 2 729 087 661224 3 926 536 5666197
注释 :
  • 前从性能观点看 95%以上流量转换取自三点数据集比起国家转换进程效率低
  • 发现美国各州无法正确转换 只使用IP前三大值
  • 美国范围值数据集通常取自IP2City数据集

逆值逻辑转换键值逻辑

  1. 转换IPNum范围分离oct并提取精度oct

    从IPNUMFER、IPNUMtoOctiet1FER、Oct2FER、Octet3FER、Octet4FER和Octet1to、Octet2To
  2. 创建actet12国家:2.1UNNEST系统中间值actet1发自八叉子.2.2.分组Octet1Havingcount

  3. 创建Octet22国家:3.1.UNNEST系统中间值actet1发自八叉子.3.2伊格诺尔值输入actet12国家.3cm3重覆Octet2差值范围:3.3.1ifactet1大于actet1发自Octet2From0.3.3.2.ifactet1小于八叉子八叉2255.3.4.UNNEST系统中间值Octet2From八叉2进进Octet2.3.5分组Octet1,Octet2Haveningcount

  4. 创建Octet32国家:4.1UNNEST系统中间值actet1发自八叉子.4.2伊格诺尔值输入actet12国家.4.3重覆Octet2差间范围:4.3.1ifactet1大于actet1发自Octet2From0.4.3.2.ifactet1小于八叉子八叉2255.4.4.4UNNEST系统中间值Octet2From八叉2进进Octet2.4.5伊格诺尔值输入Octet22国家.4.6.重覆Octet3差间范围:4.6.ifOctet2大过Octet2FromOctet3From0.4.6.2ifOctet2小于八叉2八叉子3255.4.7UNNEST系统中间值Octet3From八叉子3进进Octet3.4.8组Octet1,Octet2,Octet3Haveningcount

  5. 转换actet12国家,Octet22国家Octet32国家进进PNum12国家,PNum22国家PNum32国家.

  6. 月度或季度更新结果

注释 :

逻辑可以多重方式实现原数据集仅称20MB,更容易调试浮动oct值

我们进行了这项研究 以了解我们多高能 丰富飞数据取箱外解决方案似乎往往比较容易,但每家公司处理数据的方式不同,从IP到用户代理和URL不等。即便净化、格式化或调和用法需要时间和努力,但每一个属性都承诺提供元数据丰富机会,这些机会正等待着。玩得开心点

回顶
Baidu
map