如何在系统之间传递大数据
How to pass large data between systems
我有以 XML 格式存储的定价数据,每小时生成一次。如果存储为 XML,它的大小大约为 100MB。我需要将这些数据发送到我的主系统以便进行处理。以后也有可能每1m发送一次这个数据大小
发送这些数据的最佳方式是什么?到目前为止,我的想法是:
- It would be too large to send as JSON to a POST endpoint
- Possible to send it as XML and store it on my server
有没有更好的方法来做到这一点?
假设您在 linux 并且数据已经写入文件系统的某处,为什么不在 crontab
中做一个简单的 scp
或 rsync
条目?
您可能希望在发送前进行压缩,或者在协议中启用压缩。
如果您的数据只是轻微变化,您也可以尝试发送针对先前版本(使用 diff
生成)的补丁而不是整个数据,然后在另一端重新生成。
正如 Michael Anderson 在回答中提到的,您可以只发送每个系统中的更改差异。
实现此目的的一种方法是引入协议,例如 git。
使用 git,您可以:
- 在第一个系统上生成数据并推送到私有仓库
- 让您的第二个系统提取更改
这比每次都拉取整个数据副本要高效得多。
它也会被压缩,并通过加密通道(取决于 git server/service)
我有以 XML 格式存储的定价数据,每小时生成一次。如果存储为 XML,它的大小大约为 100MB。我需要将这些数据发送到我的主系统以便进行处理。以后也有可能每1m发送一次这个数据大小
发送这些数据的最佳方式是什么?到目前为止,我的想法是:
- It would be too large to send as JSON to a POST endpoint
- Possible to send it as XML and store it on my server
有没有更好的方法来做到这一点?
假设您在 linux 并且数据已经写入文件系统的某处,为什么不在 crontab
中做一个简单的 scp
或 rsync
条目?
您可能希望在发送前进行压缩,或者在协议中启用压缩。
如果您的数据只是轻微变化,您也可以尝试发送针对先前版本(使用 diff
生成)的补丁而不是整个数据,然后在另一端重新生成。
正如 Michael Anderson 在回答中提到的,您可以只发送每个系统中的更改差异。
实现此目的的一种方法是引入协议,例如 git。
使用 git,您可以:
- 在第一个系统上生成数据并推送到私有仓库
- 让您的第二个系统提取更改
这比每次都拉取整个数据副本要高效得多。
它也会被压缩,并通过加密通道(取决于 git server/service)