多种技术融合的API接口数据采集策略

发布日期:2020年11月7日
多种技术融合的API接口数据采集策略 多种技术融合的API接口数据采集策略

本内容试读结束

下载后可阅读完整内容,立即下载

数据开放共享在大数据时代变得越来越重要,API接口在数据共享上扮演着重要的角色,如何从开放共享的API接口快速、高效、便捷地获取数据是迫切需要解决的问题。本文从实用性的角度出发,融合了自动化测试技术、最优线程、Python和ETL技术等,构建了一种基于API接口的数据采集策略,该策略采集速度快、操作简单、线程可控制并推导出数据采集时间公式,该公式在5个线程以上准确率达90%以上,在7~8个线程准确率达97%,在9~10个线程准确率可达99%,在采集之前就可通过该公式以最合理的线程计算出最合理的采集时间,极大地节省采集时间。

随着我国物联网、5G、区块链[1]、新基建[2]、数据湖[3]和大数据技术的发展,据IDC (International Data Corporation)预测全球数据圈2025 年将增至175 ZB (1 泽字节相当于1 万亿GB), 接近于2018 年33 ZB的5.3 倍[4],并且到2025 年我国将成为数据量最大的区域,如今的经济高度依赖数据,并且随着各公司在其供应链[5]的每一步都对数据进行采集、编目和利用,对数据的依赖在未来只会不断加强。

目前数据采集主要来自于自身内部数据,或者网上数据也就是网络爬虫,自身内部的数据我们无法改变,但在互联网上人们几乎可以获取任何想要的数据,从互联网上获取数据一般分为从网页上获取数据或者通过数据API (Application Programming Interface,应用程序编程接口) [6]获取数据,与网页爬虫不同的是,数据API 的设计更为简单高效,这个接口已经存储好大家所需要的数据,不需要再花过多的精力去解析网页。并且网页数据爬取往往会对服务器造成压力,如果代码没有设置好合理的类人的网页浏览频率,会有IP 被封的风险[7]。目前,API 接口支持以下数据格式XLSX、JSON、XML、CSV、RDF等,在本文中选择了一种易于读写并广泛应用于Web 的轻量级数据格式JSON,它可以被快速、高效地解析,也易于存储。

获取到API 接口先不用忙着怎么去将数据采集下来,可以先对API 接口的服务文档、响应示例、并发数、响应时间等进行分析,这些准备工作对大量API 接口数据的采集是非常有必要的。服务文档可以帮助我们获取到网站的URL 以及访问方式;响应示例可以看到接口响应的数据格式、内容、编码等;并发数可以看到API 接口每秒并发运行的次数, 接近这个次数网站就会预警, 超过这个次数程序就会报错;接口响应时间是数据采集快慢的关键,虽然程序可以多线程或者多进程,但一次接口响应时间就花了近1 秒,这个采集速度怎么能快呢!自动化测试的目的就是为了测试接口的响应时间,网上的API 接口很多不会像“大厂”,比如百度API、阿里API、腾讯API、微博API 那样规范稳定,而且接口响应速度还不会太快。百度API 的单个响应接口速度可以达60 ms (1 s = 1000 ms)左右,多个线程一起跑响应速度成倍数下降,但像国家的政务查询接口,响应速度都在1 秒左右,此速度是通过测试广东常住人口接口和国家企业信息接口而来,速度慢的原因应是数据量过大,查询费时多。

最优线程[8]是为了使数据采集速度达到最优化而加入的,既然API 接口的响应速度无法改变,就通过运行多个线程变相地降低响应时间,但线程不能是无限增加的,所以计算出最优线程可以节约计算机



相关标签