通过XML API处理大量数据

时间:2011-09-07 12:45:39

标签: php xml database api rest

所以,我在这里搜索了一些,但找不到任何好的,如果我的搜索功能不足就道歉......

所以,我今天的 是我的用户使用表单将CSV文本文件上传到我的PHP脚本,然后在验证其中的每一行后将该文件导入数据库。文本文件可以放置大约70,000行,每行包含24个值字段。这显然不是一个问题,因为处理这种数据。每行都需要验证,我检查数据库是否有重复项(根据数据生成的动态密钥),以确定是否应插入或更新数据。

是的,但我的客户现在正在为此请求自动API,因此他们不必手动创建和上传文本文件。当然,但我该怎么做呢?

如果我要使用REST服务器,如果一个请求包含要插入的70k帖子的XML,内存会很快耗尽,所以这几乎是不可能的。

那么,我应该怎么做呢?我考虑了三个选项,请帮助med决定或添加更多选项到列表

  1. 每个请求一个帖子。并非所有客户都有70k的帖子,但对数据库的更新可能导致API在短时间内处理70k请求,并且可能每天都是这样。

  2. 每个请求的X个帖子数量。设置API处理每个请求的帖子数量限制,例如,一次设置为100。这意味着700个请求。

  3. API要求客户端脚本使用当前例程上载准备导入的CSV文件。这似乎“脆弱”而且不是很现代。

  4. 还有其他想法吗?

3 个答案:

答案 0 :(得分:1)

如果您阅读了SAX处理http://en.wikipedia.org/wiki/Simple_API_for_XML和HTTP Chunk编码http://en.wikipedia.org/wiki/Chunked_transfer_encoding,您会发现在发送XML文档时应该可以解析它。

答案 1 :(得分:0)

我现在通过对每个请求强加100个帖子来解决这个问题,我通过PHP使用REST来处理数据。所有验证上传36,000个帖子大约需要两分钟。

答案 2 :(得分:-1)

首先不要使用XMl!使用JSON,它比xml快。

我用我的项目从xls导入。文件非常大,但脚本工作正常,只是客户端必须创建具有相同结构的文件才能导入