一、数据尺寸
以下数据统计采集自版本2025/06/11的原始数据,每个快照版本会有所变化,但是大体差不多,仅供参考:
1. 数据版本:V4-基础版
2. 数据行数:22614657行
3. 空间大小:3590253547字节 = 3.4G,生成的满载版的XDB文件大概340MiB左右
二、数据样本
以下数据样本采集自某一个快照的离线.txt原始数据,仅供参考:
220.231.194.163|220.231.194.207|3706176163|3706176207|亚洲|中国|广东|深圳|福田|电信|114.05571|22.52245|440304|0755|518000|Asia/Shanghai|CNY|11|CHXX0120 220.231.194.208|220.231.194.223|3706176208|3706176223|亚洲|中国|广东|深圳|南山|电信|113.93029|22.53291|440305|0755|518000|Asia/Shanghai|CNY|11|CHXX0120 220.231.194.224|220.231.195.255|3706176224|3706176511|亚洲|中国|广东|深圳|福田|电信|114.05571|22.52245|440304|0755|518000|Asia/Shanghai|CNY|11|CHXX0120 220.231.196.0|220.231.199.255|3706176512|3706177535|亚洲|中国|广东|深圳||电信|114.085947|22.547|440300|0755|518000|Asia/Shanghai|CNY|11|CHXX0120 220.231.200.0|220.231.200.255|3706177536|3706177791|亚洲|中国|广东|深圳|宝安|电信|113.88311|22.55371|440306|0755|518100|Asia/Shanghai|CNY|11|CHXX0120
三、字段描述
每一行代表一个IP数据段和其对应的数据信息,不同字段使用|隔开,每一行的字段数是相同的,字段本身无值的使用空字符串代替。
223.247.32.216|223.247.32.217|3757514968|3757514969|亚洲|中国|广东|深圳|宝安|电信|113.88311|22.55371|440306|0755|518100|Asia/Shanghai|CNY|11|CHXX0120
例如,如上数据从左至右分别对应如下表格的字段(从上至下):(表结构方便您将数据导入到数据库中使用)
字段值 | 字段说明 | 字段名 | 字段类型 | 字段长度 |
223.247.32.216 | ip块起始ip | ip_start | varchar | 20 |
223.247.32.217 | ip块结束ip | ip_end | varchar | 20 |
3757514968 | ip块起始ip整形 | ip_start_num | bigint | 20 |
3757514969 | ip块结束ip整形 | ip_end_num | bigint | 20 |
亚洲 | 所属的七大洲 | continent | varchar | 20 |
中国 | 国家 | country | varchar | 50 |
广东 | 省份 | province | varchar | 100 |
深圳 | 城市 | city | varchar | 100 |
宝安区 | 区县 | district | varchar | 120 |
电信 | 互联网供应商 | isp | varchar | 100 |
113.88311 | 经度 | longitude | varchar | 15 |
22.55371 | 纬度 | latitude | varchar | 15 |
440306 | 行政区码 | area_code | varchar | 100 |
0755 | 电话和区号 | city_code | varchar | 10 |
518100 | 邮编 | zip_code | varchar | 20 |
Asia/Shanghai | 时区 | time_zone | varchar | 20 |
CNY | 货币 | currency | varchar | 20 |
11 | 海拔 | elevation | varchar | 50 |
CHXX0120 | 气象站 | weather_station | varchar | 50 |
四、查询和字段检索
XDB存储格式将上述的原始数据标准化为通用格式:起始IP|结束IP|定位信息,调用XDB查询接口返回的数据只有后面的定位信息,例如使用XDB查询客户端查询IP223.247.32.216会返回如下的字符串定位信息:
3757514968|3757514969|亚洲|中国|广东|深圳|宝安|电信|113.88311|22.55371|440306|0755|518100|Asia/Shanghai|CNY|11|CHXX0120
如果我要继续取用其中的字段,需要对数据使用|切割,然后再通过下标索引去提取,例如:
var region = 'XDB查询出来的定位信息,假设为上述定位信息'; var fields = region.split('|'); // 通过 | 对定位信息进行切割 // fields 的数字索引结构如下: [ 0: 3757514968, 1: 3757514969, 2: 亚洲, 3: 中国, 4: 广东, 5: 深圳, 6: 宝安, 7: 电信, 8: 113.88311, 9: 22.55371, 10: 440306, 11: 0755, 12: 518100, 13: Asia/Shanghai, 14: CNY, 15: 11, 16: CHXX0120 ]; // 接下来就可以通过下标取对应的字段了。 print(fields[3]); // 国家 print(fields[5]); // 城市 print(fields[6]); // 区县 print(fields[13]); // 时区 ...
如果使用的XDB文件进行了自定义字段的生成,使用方式不变,只是定位信息切割后字段的索引下标会发生改变,选取正确的下标获取指定字段值即可。
离线数据字段都是经过标准化处理的,如果某个字段缺失会默认使用空字符串代替,也就是相同的下标取到的一定是对应的字段,无值会返回空字符串,例如如下的有空值的样本数据:
北美洲|美国|California|Los Angeles||美国电话电报公司|-118.243680|34.052230|||90009|America/Los_Angeles|USD||
上述数据的行政区码,电话区号都没有,fields[10]和fields[11]都会返回空字符串。