Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 收集、管理数据并通过api使其可用_Php_Database_Web Services_Web Crawler - Fatal编程技术网

Php 收集、管理数据并通过api使其可用

Php 收集、管理数据并通过api使其可用,php,database,web-services,web-crawler,Php,Database,Web Services,Web Crawler,我的问题是: 我有很多已知的位置(我对这些位置没有影响),有很多数据。每个地点都为我提供了各个时期的大量新数据。有些人给我不同的更新,有些人只是整个数据集,有些人通过xml,有些人我必须建立一个webscraper,有些人需要身份验证等等。。。 这些收集的数据应存储在数据库中。我必须编写一个api,将请求的数据以xml格式发送回来 通往罗马的路很多,但我应该选择哪条 您建议我使用哪种软件? 我熟悉C++,C语言,java,PHP,mysql,js,但是新的东西还可以。 我的想法是使用cronjo

我的问题是: 我有很多已知的位置(我对这些位置没有影响),有很多数据。每个地点都为我提供了各个时期的大量新数据。有些人给我不同的更新,有些人只是整个数据集,有些人通过xml,有些人我必须建立一个webscraper,有些人需要身份验证等等。。。 这些收集的数据应存储在数据库中。我必须编写一个api,将请求的数据以xml格式发送回来

通往罗马的路很多,但我应该选择哪条

您建议我使用哪种软件?

我熟悉C++,C语言,java,PHP,mysql,js,但是新的东西还可以。 我的想法是使用cronjobs+php(或shell脚本)+curl来获取数据。 然后我需要一个模块来解析数据并将其插入数据库(mysql)。 来自客户端的数据请求可以回答php脚本

我认为输入数据量约为1-5GB/天

一个正确的答案并不存在,但你能给我一些建议吗? 如果你能告诉我更聪明的方法,那就太好了


非常感谢:-)

LAMP:坚持使用PHP和MySQL(偶尔尝试perl/python):PHP库、存储解决方案、可扩展性和API解决方案的可用性及其社区规模很好地弥补了任何其他环境产品的不足

API:在编写任何导入程序之前,确保设计的API查询(以及存储/数据库)能够满足所有最终产品的需求。日期范围、标记、特殊情况

性能:如果您需要快速查询超大数据集,您可以提供帮助。它不仅仅是文本搜索(标签、二进制文件等),还要确保为服务器要求提供更多的RAM

导入器:使其模块化:如中所述,对于每个不同的数据源,编写一个可插入的导入器,管理员可以启用/禁用该导入器,当然,还可以单独测试。根据最适合工作的语言和库选择:bash脚本可以

在PHP解析库方面,有很多。最近流行的一个是,我发现它工作得很好

TRANSFORMER:将数据转换例程模块化,以便根据需要编写。不要让导入程序更改原始数据,只要以最快的方式将其导入索引数据库即可。无论最终结果如何,转换例程(或更高版本的插件)都应该与API查询相结合

计时:cron执行没有问题,只要它们不会失控或导致您的输入源开始限制或阻止您,因此您需要这种意识

版本控制:设计数据库、导入等,管理员可以轻松回滚错误数据

供应商解决方案:退出-他们利用刮片工具和数据存储开展了业务


希望这有帮助。出于好奇,有什么项目细节需要志愿者帮忙吗?我的一位同事对交换笔记很感兴趣。

也许了解更多关于数据结构的信息会有所帮助。.有文件、表格数据或数据库等。一般来说,我过去也在尝试解决类似的问题,但我还不知道任何符合要求的框架/等。更多的是传感器时间线>30000个传感器有不同的更新时间。从我的观点来看,它看起来没那么复杂。。因为你需要一个中央数据库。因为所有数据都具有相同的结构(id、userid、timestamp、sensorid、sensorvalue、sourceid、source\u timestamp)。如果您将使用一个可被许多语言使用的API,编码有时会很困难,但它应该可以工作。我在过去使用的json不是API,但它是标准的。一个好的起点可能是身份验证的方式,以及您是否需要会话或每天只推拉一次。。如果您通过ftp或http从客户端读取文件,那么您也可以在没有任何api的情况下运行。。