【ビッグデータ処理】キー値対データベースLeveldb

2175 ワード

Leveldb
  • Leveldb紹介Leveldbはgoogleが実現した非常に効率的な(key-value)データベースであり、10億レベルのデータ量をサポートすることができます.この数のレベルでは、主にその良好な設計のおかげで、非常に高い性能を持っています.LevelDBは単一プロセスのサービスで、性能は非常に高く、4コアQ 6600のCPUマシンでは、毎秒40 w以上のデータを書き込み、ランダムに読む性能は毎秒10 wを超える.
  • Python Leveldb Pythonはleveldbを実現しました.ここでは
  • をダウンロードできます.
  • Python Leveldbのインストールubuntuの下でleveldbをインストールするのはとても簡単です
  • sudo pip install leveldb

    すぐできます.4.使うのも簡単で、その関数とパラメータもいくつかあります
    import leveldb
    
    #          
    import os
    mkdir('./db')
    db = leveldb.LevelDB('./db')
    
    # single put
    db.Put('hello', 'world')
    
    print db.Get('hello')
    
    # single delete
    db.Delete('hello')
    
    #        。
    print db.Get('hello')
    
    # multiple put/delete applied atomically, and committed to disk
    batch = leveldb.WriteBatch()
    batch.Put('hello', 'world')
    batch.Put('hello again', 'world')
    batch.Delete('hello) db.Write(batch, sync= True) 

    実際の応用:
    私はcaffeを勉強してからleveldbというものがあることを知ったのですが、leveldbよりも高級なLMDBがありますが、そのドキュメントを見てみると、leveldbよりずっと複雑で、先にleveldbを勉強して、時間があってからleveldbを勉強します.caffeにpythonのleveldbの例はなく、C++で直接画像をleveldbに変換し、自分の画像をleveldbとして保存するように真似していたが、訓練後にエラーが見つかり、原因が見つからなかったため、pythonの実装が見つかった.結局pythonはエラーを探すのが簡単だった.
    caffeでは、トレーニングデータを準備する必要があります.その中には、leveldbとlmdb、比較的効率的なhdf 5と直接画像ファイルがあります.
    トレーニングデータをleveldbまたはlmdbに保存するには、データをキー値ペア、すなわち画像がkey、ラベルがvalueに変換すればよい.