いくつかの大きな (200 GB が通常) データのフラット ファイルがあり、データが論理的に編成されている直感的な方法ですばやくアクセスできるように、ある種のデータベースに保存したいと考えています。これは、非常に長いオーディオ録音の大きなセットと考えてください。各録音は同じ長さ (サンプル) で、行と見なすことができます。これらのファイルの 1 つには、通常、それぞれの長さが 2,000,000 サンプルの約 100,000 の録音が含まれています。
これらの記録を BLOB データの行としてリレーショナル データベースに格納するのは簡単ですが、データ セット全体の特定の列 (サンプル 1,000 ~ 2,000 など) のみをメモリにロードしたい場合がよくあります。これを行うための最もメモリ効率と時間効率の良い方法は何ですか?
推奨事項を作成するために、私のデータの詳細についてさらに明確にする必要がある場合は、遠慮なくお尋ねください.
編集:データの次元を明確にするために... 1つのファイルは、100,000行(記録)×2,000,000列(サンプル)で構成されています。私が調査したほとんどのリレーショナル データベースでは、1 つのテーブルに最大で数百から数千の行が許可されます。繰り返しになりますが、私はオブジェクト指向データベースについてあまり知らないので、そのようなものがここで役立つのではないかと思っています。もちろん、良い解決策は大歓迎です。ありがとう。
編集:データの使用法を明確にするために...データは、私が作成するカスタムデスクトップ/分散サーバーアプリケーションによってのみアクセスされます。各データ「セット」 (これまでは 200 GB ファイルと呼んでいました) には、メタデータ (収集日、フィルター、サンプル レート、所有者など) があります。また、各レコーディングに関連付けられたメタデータもあります (テーブル内の行になることを望んでいたので、レコーディング メタデータの各部分に列を追加するだけで済みます)。すべてのメタデータは一貫しています。つまり、特定のメタデータが 1 つの記録に存在する場合、そのファイル内のすべての記録にも存在します。サンプル自体にはメタデータがありません。各サンプルは、8 ビットの単純なバイナリ データです。