2016-08-24 5 views
0

私の質問は、.hdf5ファイルのオブジェクトタイプまたはドキュメントを作成することです。オブジェクトには、id、user_id、boolean配列の3つの属性があります。約10000000(1千万)を作成する必要があります。タイプ.hdf5の特定のタイプのオブジェクトを作成する方法は?

mongodbを想像してみてください。そういう使い方が必要です。私はいくつかの特定のuser_id'edオブジェクトだけでなく、それらすべてのためのクエリを作成する必要があります。

ご意見、ご協力をお待ちしております。

答えて

0

この場合、辞書を使用します。私は辞書がうまくスケールアップすると感じます。クエリはuser_idにあるので、私はそれをキーにします。

構造はこれを達成するために

{ 
    'user_id-xyz': { 
     'id':'id-1212', 
     'boolarray':[True,False,..], 

    }, 
    'user_id-abc':{ 
     ... 
    } 
} 

ようなものだ、私はnumpyのカスタムデータ型のために行くかもしれません。

element = np.dtype([('id', 'i16'), ('boolarray', 'b',(64,1))]) 
f = h5py.File('foo.hdf5','w') 
dset = f.create_dataset("blocky", (1000000,), dtype='V79') # 64(bools)+15(for id) 
grp = f.create_group("user_id-xyz") 
# create subgroups for each id. 
subdataset = grp.create_dataset('ele',(1,),dtype=element) 

# test of membership. 
'user_id-xyz' in f 
# retrieval 
f.get('user_id-xyz') 
# all keys. 
f.keys() 

全体的に、私はこれがあなたに役立つことを願っています。

+0

これらのオブジェクトを保存するにはどうすればよいですか?私の知る限り、hdf5はnumpy配列を使用して格納します。 –

+0

私は本当にh5pyタグに気付かなかった。しかし、docsを見ると、私はuser_idをグループとして使用します。その中に私はブール配列を持っているでしょう。 idを表す最初のn桁。 idの大きさは? – Vasif

+0

2^10または2^15が最も可能性があります。 –

関連する問題