1

私は現在、ギガバイトの科学データセットを扱う必要があるプロジェクトに取り組んでいます。データ セットは、整数と浮動小数点数の非常に大きな配列 (30,000 要素) の形式になっています。ここでの問題は、それらが大きすぎてメモリに収まらないことです。そのため、それらを保存して操作するためのオンディスク ソリューションが必要です。この問題をさらに楽しくするために、私は 32 ビット アーキテクチャの使用に制限されており (これは仕事のため)、このソリューションのパフォーマンスを最大化する必要があります。

これまでのところ、私は HDF5 で作業してきましたが、問題なく動作しましたが、作業するには少し複雑すぎることがわかりました。そのため、次善の策は NoSQL データベースを試すことだと思いましたが、配列を文字配列にキャストしてそのように格納する以外に、配列をデータベースに格納する良い方法を見つけることができませんでした。悪いポインターの頭痛.

そこで、おすすめの商品を教えていただきたいです。おそらく、パフォーマンスを最大化しながら、HDF5 で作業するより簡単な方法があるでしょう。または、このタイプのデータの保存に適した NoSQL データベースを知っているかもしれません。あるいは、私はこれで完全に間違った方向に進んでいて、あなたは私に何らかの意味をぶつけたいと思っているかもしれません.

とにかく、皆さんが私に提供できる知恵の言葉をいただければ幸いです:)

4

3 に答える 3

3

感覚を研ぎ澄ませて、HDF5 などの製品グレードのライブラリを使用してください。複雑すぎると感じましたが、高レベルの APIは見つかりましたか?

その答えが気に入らない場合は、SciDBrasdamanMonetDBなどの新しいアレイ データベースのいずれかを試してください。ただし、HDF5 で失敗した場合は、これらのいずれかで失敗すると思います。

私の見解と経験では、大規模な科学データセットを長期間にわたって扱う場合は、HDF5 などのツールを適切に使用する方法を学ぶことは価値があります。目の前のタスク用に設計されていない NoSQL データベースなどのツールを選択した場合、最初は使いやすいかもしれませんが、最終的には必要な機能が不足したり、必要な機能が不足したりします。そして、その欠陥を回避するようにプログラムしなければならないことに気付くでしょう。

仕事に適したツールの 1 つを選び、それを適切に使用する方法を学びましょう。

于 2013-10-07T12:29:38.817 に答える
2

I have been working on scientific computing for years, and I think HDF5 or NetCDF is a good data format for you to work with. It can provide efficient parallel read/wirte, which is important for dealing with big data.

An alternate solution is to use array database, like SciDB, MonetDB, or RasDaMan. However, it will be kinda painful if you try to load HDF5 data into an array database. I once tried to load HDF5 data into SciDB, but it requires a series of data transformations. You need to know if you will query the data often or not. If not often, then the time-consuming loading may be unworthy.

You may be interested in this paper. It can allow you to query the HDF5 data directly by using SQL.

于 2013-12-10T18:35:55.627 に答える