V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
jxwho
V2EX  ›  Python

Python 传输大数据

  •  
  •   jxwho · 2014-02-21 10:24:43 +08:00 · 4650 次点击
    这是一个创建于 3910 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想问一下,假如在两个点之间用python来进行数据传输,数据可能比较大,有什么好的模块可以用呢?
    类似的,可以用socket进行通讯,但是想要一个更high level的实现,请问有什么建议吗?
    14 条回复    1970-01-01 08:00:00 +08:00
    clino
        1
    clino  
       2014-02-21 11:18:53 +08:00
    gaicitadie
        2
    gaicitadie  
       2014-02-21 11:24:56 +08:00
    FTP模块不行吗?
    nooper
        3
    nooper  
       2014-02-21 11:50:20 +08:00
    连数据的种类和数据的类型都没有说清楚。
    jxwho
        4
    jxwho  
    OP
       2014-02-21 12:08:06 +08:00
    @gaicitadie FTP模块我也考虑过...我想搜集多一点方法然后分析下取哪个比较合适

    @nooper 数据的种类和类型貌似不是很重要吧?
    xiaogui
        5
    xiaogui  
       2014-02-21 12:22:49 +08:00
    需要考虑:
    1、网络。两个点是服务器同一机柜、同一机房、公司内网或者其他?
    2、数据量。M?G?
    3、频率。一次结束?还是周期性?
    jxwho
        6
    jxwho  
    OP
       2014-02-21 12:35:21 +08:00
    @xiaogui 抱歉问题没描述清楚。
    是这样的,比如说我这里有一堆数据要处理,而另一台电脑上有合适的模块之类的可以用来处理(因为这个电脑是随机的,所以应该是不同的网络下,一般),然后我要把数据传送到这个机子上去,待它处理完之后,返回结果给我。
    数据量,我觉得上G应该不过分。
    频率:这个不是很理解你的意思。这个想法就类似复用,可能很多个用户需要的模块都在那一个用户的电脑上,就会全部向他请求。
    holmesabc
        7
    holmesabc  
       2014-02-21 12:39:38 +08:00
    RPC么
    jxwho
        8
    jxwho  
    OP
       2014-02-21 12:48:38 +08:00
    @holmesabc 啊,貌似是的。(其实我对这个还不是很了解
    clino
        9
    clino  
       2014-02-21 13:40:34 +08:00
    这种需求我觉得可以用自动构建,如用jenkins,buildbot之类的
    像buildbot的master和slave有接口可以交换文件或数据,slave的stdio也有web页面可以看
    wangfengmadking
        10
    wangfengmadking  
       2014-02-21 13:44:48 +08:00
    随便找个数据库不就解决了
    jxwho
        11
    jxwho  
    OP
       2014-02-22 01:08:40 +08:00
    @wangfengmadking 数据库,是个好办法,还有其他方案吗?
    winneryong
        12
    winneryong  
       2014-02-22 01:13:28 +08:00 via Android
    可参考rsync算法
    mapix
        13
    mapix  
       2014-02-22 01:33:38 +08:00
    考虑的因素: 如果简单容易维护可以考虑直接开rsync跑; 如果文件太大, 处理资源受限网络带宽足, 可以分块传输 ;当然如果你发送的目标机器很多而且经常这么干的话可以考虑实现一种BroadCast机制或P2P机制。
    wangfengmadking
        14
    wangfengmadking  
       2014-02-22 16:50:58 +08:00
    @jxwho 简单点的的就直接把上一阶段的数据结果保存成文本文件(用时间戳命名?),然后保存到一个http服务器(http可以几行代码就实现http server,不用apache也可以)下,然后另外一个程序轮询服务器下载文件列表就可以了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3588 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:48 · PVG 08:48 · LAX 16:48 · JFK 19:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.