2011-07-01 6 views
0

私は、リレーショナルデータベースシステムがテキストデータを格納し、アプリケーションを構築している経験があります。私は、リレーショナルデータベースはオーディオ(マルチメディア)データベースでは実際には機能しないと聞いており、エンコーディングスキームも必要です。この点での指導は非常に役立ちます。 私はオーディオをストリーミングし、チャンクで取得し、同じものにogg vorbisコーデックを使用する予定です。オーディオデータをストリーミングするためには、ファイルをサーバーに格納し、データベースにファイルを指すパスを提供するだけの方法は考えられません。私がそうした場合:オーディオファイルが大きいので、圧縮せずにチャンネルを介して送信すると、通常のインターネット接続では動作せず、アップロードすることもできません。どのデータベースとエンコーディングスキームがオーディオデータストレージに適していますか?

+0

音声は生のバイナリデータです。ほとんどのデータベースはこの種のものを格納するための "BLOB"データ型を提供します。それはあなたが意味することですか? –

+0

なぜデータベースにオーディオを入れる必要がありますか? – R0MANARMY

+0

私はあなたが知りたい、またはしたいことがわかりません。あなたは、(.wavの内容のような)オーディオを簡単に保存したいですか?あなたはより多くの情報や内容だけを保存したいですか?あなたは情報やオーディオを取得したいですか?あなたはオーディオをストリーミングしてチャンクに入れますか? – woliveirajr

答えて

1

これは機能しますが(BLOB http://en.wikipedia.org/wiki/Binary_large_objectを参照)、実際のデータにファイルを使用し、ファイルを指すvarcharを保存することもできます。

エンコーディングは、使用ごとにデコードの余分なステップを追加するので避けるべきです。

1

relational databases don't really work for audio(multimedia)が聞こえると、おそらく大量のバイナリデータをデータベースに直接格納するとパフォーマンスが低下し、メンテナンスの頭痛になることがあります。たとえば、RDBにテラバイトのデータがある場合、バックアップ、移動、および拡大縮小が難しくなります。

ただし、BLOBデータをRDBに格納することはできますが、ファイルを指すDBでファイルの格納を検討することをお勧めします。あなたはS3(良いキャッシュサーバーで)またはローカルファイルシステムを使用することができます。

0

オーディオクリップに関するさまざまなメタ情報をデータベースに格納することができます。これは合理的にクエリできるので意味があります。

通常、オーディオクリップ自体は数メガ(巨大)で、通常はインデックスできません。したがって、データベースに直接格納する必要はありません。もしそうしてしまうと、処理が遅くなります。データベースに直接オーディオデータを置くことの唯一のメリットは、ほとんどのシナリオではトランザクション/ロックです。

一部のデータベース(特にOracle)では、表領域にはなく、他のメディア上のファイルとして、「オフライン」のBLOBを格納できます。これにより、パフォーマンスが少し向上します。それでもオーディオデータをBLOBとして保存する場合は、データベースインターフェイス経由でしかアクセスできません。

オーディオを別々に保存する場合は、DBにファイル名を保存するだけで済みます。音声に適した、またはクライアント(httpなど)に適した、さまざまな仕組みでオーディオデータを配信できます。欠点は、あなたがコントロールできないことです。リンクが誤って壊れてしまい、ファイルを削除したりロールバックしたりするトランザクションがないことがあります。 (通常、参照されていないファイルを削除する定期的なガベージコレクションプロセスを実行します)。

アプリケーションをより詳細に記述しない限り、より具体的なアドバイスを行うのは難しいです。

+0

CassandraやHbaseのHbaseなどのオブジェクトリレーショナルデータベースのような他のタイプのデータベースを使うのはどうですか? – Ankur

関連する問題