2013年3月16日土曜日
アプリケーションデータ用の適切なストレージを選択する
あなたが扱っているデータの種類?私たちは、大体それらを分類すると、次の5つのカテゴリに分割しようとします。当然、これは包括的な分類ではありませんが、それは私たちが覚えておかなければならオプションやアプローチを理解するのに役立ちます。
同じ型の要素を含む均一データ配列
マルチメディア - オーディオ、ビデオ、グラフィックファイル
内部で使用するために一時的なデータ(様々な種類のログキャッシュ)
様々な種類の計算されたデータのストリーム(例えば記録されたビデオストリームまたは大規模な計算結果)
文書(単純または複合)
そのようなデータを格納するための方法は以下のとおりです。
ファイルシステム内のファイル
データベース
構造化されたストレージ
アーカイブ(構造化ストレージの特定のフォームなど)
リモート(分散、クラウド)ストレージ
ストレージ機構は、上記のデータの種類に適した最善の元となる、私たちは今、議論しましょう。
均質なデータ配列
均質なデータ配列は、同じ型の要素が含まれています。均質なデータ配列の例には、シンプルなテーブル、時間や昨年の株式価値を超える温度データであってもよい。
同種のデータアレイの場合は、通常のファイルには、便利で高速検索のための可能性を提供していません。作成、維持し、常に特別なインデックスファイルを更新する必要があります。データ構造の変更はほとんど不可能です。メタ情報は限られています。ありません、実行時の圧縮やデータの暗号化が組み込まれています。
リレーショナル·データベースは、よく均質データに適しています。彼らは剛体内部形式で事前定義されたレコードのセットで構成されています。リレーショナルデータベースの主な利点は、指定された基準に従って、データを迅速に検索するだけでなく、データの整合性のトランザクションをサポートする機能です。彼らの重大な欠点は、リレーショナル·データベースは可変長の大型データ(BLOBフィールドは通常、レコードの残りの部分とは別に保存されている)のためにうまく動作しないことです。また、リレーショナル·データベースにデータを保存しておくことが必要です。interrelationalリンクと索引方針などのデータベース構造の特定の深刻データとアプリケーション自体の移植性を制限し、DBMS、a、b)の事前計画の)使用は、c)の詳細を調査するピーク時の負荷も深刻なオーバーヘッドかもしれない効率的なデータベースの開発のために必要です。
構造化されたストレージは、ファイルシステムへの幾分類似している、すなわちストレージはおおわ名前付きストリーム(ファイル)の特定のセットです。このようなストレージは、データベース·レコード内の、あるいはRAMに、ディスク上の単一のファイル、すなわち、任意の場所に保存することができます。このアプローチの主な利点は、既存のストレージにデータを追加したり削除したりする効率的なことができるということです、様々なサイズ(小から巨大まで)のデータの効果的な操作を提供します。ストレージは別々のユニット(ファイル)を表すので、簡単に、移転、コピー、複製、バックアップすることができます。アプリケーションによって生成されたすべてのファイルを追跡する必要はありません。また、ジャーナルの保管は、このような事故や障害を排除し、完全にまたは部分的に内容を復元することが可能になります。欠点は、これらの膨大なデータ配列の内部で相対的に遅い検索かもしれません。
ZIPアーカイブには、構造化ストレージの特定のフォームのように、均質なデータ配列を格納するために使用することができますが、大文字と小文字だけで、アクセスのほとんどが読み取り専用のとき。 ZIP形式の標準化された性質は、それが簡単に、特にクロスプラットフォームアプリケーションでは、使用できるようになりますが、この形式はとても時間のかかる操作を追加しているデータの削除、梱包後に変更されるデータには適していません。
リモートおよび分散ストレージは、実際のデータの場所とデータアクセスがアクセス力学のカプセル化に使用される特定の層によって提供されるストレージの次のレベルである。このようなストレージでは、データは実際にはデータベースに保存することができ、または、異なるファイルシステム間で分配されますが、実際のストレージの編成は、エンドユーザには関係ありません。ユーザは、APIを介して、または、変形例として、ファイル·システム·コールを介してアクセスされるオブジェクトのセットだけを観察する。良い例が、クラウド·ストレージです。データストレージのこれらのタイプは、大規模なソフトウェアの複合体で使用されるべきである。他の利点の中でも1は、データがどのように格納される実際の方法を考える必要がなくても統一されたデータアクセスを言及することができます。その欠点は、 - 彼らは効率的に管理および制御、データのバックアップや移行が複雑になることはできません。
オーディオ、ビデオ、およびグラフィックファイル
単一(または複数)は、マルチメディアファイルを格納するのは簡単です。複雑さは、多数のファイルを維持する必要がある場合に表示され、マルチメディアコレクション全体で検索を実行する。
ごくシンプルかつスパースマルチメディアファイルは通常のファイルとして保存することができます。でも、平均的な家庭のコレクションのために、単純なファイルベースのマルチメディアデータストレージは非常に迅速に管理できなくなる。これは主にこれらのファイルのサイズ、任意の注釈、タグやメタデータ、およびコピーや再配置の低速を扱うことができないことが原因です。
リレーショナルデータベースは、格納、オーディオ、ビデオ、またはデータの類似したタイプの怪しげな方法です。 RDBMSは、大きなサイズの保存のビデオファイルになる場合は特に、大きなBLOBを保持するためにそれには適していません。また、各タイプのデータは、(格納する必要がある異なるメタデータのセットのために)それ自身のテーブルを必要とします。彼らは、読み取り専用のコレクションのために非常に適している強力な検索機能を提供するように一方のRDBMSには便利なことができます。
ストレージは、メタデータとそれらを介して高速検索をサポートしている場合に構造化されたストレージは、マルチメディアファイルを格納するために完璧に動作。この検索はサポートされていない場合は、構造化されたストレージは、ファイルシステムの変形になります。
それはビデオ、音楽、または類似したデータを格納することになると、リモートおよび分散ストレージが最善の解決策の一つです。ストレージは、マルチメディアやビデオゲームのすべての要素を安全に保管することができる単一の単位を表します。シングルですが、重要なファイルを失うことの危険性はありません。ストレージはタグやメタデータをサポートしている場合は検索が速くて効率的です。
一時データ
一時的なデータは、その場でソフトウェアにより生成されるため、通常、有効期間を持っています。更新のほとんどは、非常に頻繁にあります。また、このような中間的な情報は簡単にアクセス可能な積分、および、多くの場合、暗号化され、保護された滞在する必要があります。それは、これらの目的のために通常のファイルを使用することも可能です。このアプローチは大きなリソース消費になり、お使いのソフトウェアによって実装される必要がありますを制御し、データとその暗号化機能の整合性を強制するような方法はありません。
長い時間のためのファイルは、中間データ·ストレージの方法として用いられてきた。彼らは取るに足らない大きさの、優先順位の低い無担保の一時データを格納するための非常に適しています。一方、いくつかの国の近代的法律は暫定データのより慎重かつ敏感な処置を指示する。結果として、通常のファイルシステムは、データのセキュリティ、脆弱性、および改ざんからの保護の問題が最優先になったときにはあまり適しなります。
リレーショナルデータベースは通常、明確に定義された構造物の非存在下(原則として)と要素の相互関係の性質のために暫定的なデータストレージ用に使用されていません。アップグレードの低速圧縮やセキュリティこの不適任に追加の問題。同時に、リレーショナル·データベースは、データベース自体とその操作に関連する暫定的なデータを含めることができます。また、データベースは、データキャッシュのいくつかの種類のためにまたは活動ログ(ジャーナルファイル)を格納するために使用することができる。 RDBMSは、データは長期間保存する必要がある場合には、よく合っていない(年)と署名または暗号化する。
構造化されたストレージは、中間、大容量のデータを格納する必要がある場合、最適な解決策として考え、アクセス、インデックス作成と検索、圧縮してオンザフライで暗号化されてもよい。構造化されたストレージは、抗焼戻し機能を使用してビルドすることができる、または、要件が存在しなければならない - データ削除または交換のために簡単な方法を提供します。いつものように、そのようなストレージは簡単にデータの整合性を保持するために、特別な世話を必要とせずにコピーまたは移動することができます。
ZIPアーカイブはめったに暫定データストレージ用に使用されていません。 (原則として)高速の中間データのターンアラウンドは、ほとんどの状況で彼らは非現実的。暗号化されたアーカイブには、このタイプのスナップショットが長期間保管されるべきであり、損失または焼戻しから保護される必要がある唯一のデータのために適切であり得る。
リモートおよび分散ストレージは、スペース上の基本的原因で暫定データストリームに使用されています。彼らはしばしば、暫定データに必要な速度や容易な管理とバックアップを提供していません。
データストリーム
このような出力データ·フィードなどを迅速に生成されたデータの大容量のボリュームは、効率的に格納する必要があります。通常のファイルシステムが大幅に失われた整合性と信頼性を犠牲にしてデータのオーバーフローのために特定のハンドラの設計を必要と、ファイルのサイズを制限します。このタイプのデータが多いので、高速オンザフライ暗号化が必須であり、特権または敏感な材料を含んでいます。明らかに、これらのデータ·フィードのサイズは、通常、非常に重要であるので、同じことは、データ圧縮の効率化にも適用されます。
通常のファイルはよくこの種のデータには適していません。急速に増加してファイルサイズは戻ってコピーする必要があり、多くの中間キャッシュ·ファイルを作成する必要があります。でも、慎重な設計の場合には、メモリの消費量やメディアは、幾何学的進行度も増す傾向にあります。処理、インデックス化、正規のファイルに格納されたデータ·ストリームを検索し、暗号化には悪夢になる。
リレーショナル·データベースは、通常のファイルとほぼ同じ問題を提起する。データベースの更新は、剛構造のその効率の悪さに加え、それはリレーショナルデータベースは、データのストリームのための少なくとも適切なストレージソリューションの一つであることが分かる。
要件は、セキュリティと容易な検索と高速リトリーブを犠牲にして低い脆弱性の存在する場合のリポジトリは、データストリームのストレージに使用されるかもしれません。データは圧縮されますが、迅速かつ効率的な検索がほとんど不可能になることができます。
構造化されたストレージ、セキュリティ、整合性、および効率的な検索の利点を持っています。データストレージは簡単に転送したり、コピーすることができ、自律単一ファイルの単位である。アクセスは簡単で効率的です。それらに保持されたデータストリームは暗号化され、改ざんから保護することができる。薄いパーティショニングの存在は、ストレージ·ユーザーのための別の利便性を提供する:ストレージが自動的にデータサイズの増加とともに成長していきます。
リモートおよび分散ストレージはよくストリーミングデータに適しています、一般的に膨大な量のデータを生成するプロジェクトで使用されています。そのようなデータが頻繁に分散システムまたはクラスタによって分析されているため、リモートストレージの使用が最適です。ストレージのこのタイプは、簡単に提供していますが、よく制御されたデータに対するアクセスと保証は違法改ざんまたは削除。
ドキュメント
文書は堅く特に人間が読めるテキストまたは図形情報を格納するように設計され、構造化されたデータ型です。文書が生成され、ビジネスや個人的な活動の結果使用した情報の最も一般的な形態の一つである。
ファイルには、ドキュメントのストレージの最も一般的な方法です。しかし、文書への同時アクセスが要求される場合には、通常のファイルの使用が複雑になっている。すべての複合文書構造がフラット·ファイルに順次保存されていますので、任意のドキュメントの修正は、編集するドキュメントの要素のサブセットが含まれている一時ファイルのセットを作成する必要があります。また、ドキュメントから任意の要素の削除は自動的にファイルサイズを小さくすることはありません。サイズを最適化するには、追加の文書のコピーは、まだ別のファイルに作成して保存する必要があります。編集操作が完了した後、元のファイルを削除する必要があります。これは編集ソフトウェアによって自動的に実行する場合は、このソフトウェアの開発者について覚えておくべき別のタスクを持っている。
リレーショナル·データベースは、文書の種類によってはうまく動作しますし、高速かつ効率的な索引付け、検索および取得を提供することができます - プレーンテキストへのオンザフライ変換が存在する場合に限り使用可能です。データベースには、同種のデータ·アレイのストレージに適用同じ欠点がある。リレーショナル·データベース内に保つデータはピーク時の負荷の詳細を研究interelationalリンクとインデックス政策cを含むデータベース構造の事前計画は、)も深刻なオーバーヘッドかもしれない効率的なデータベースの開発に必要とされる)は、特定のDBMS、bの)を使用する必要があります。
それは文書の法人利用に来るとき、構造化されたカスタマイズ可能なストレージが最良の選択の一つです。構造化ストレージの主な利点は、彼らは文書または既存のストレージへの彼らの部分で追加したり削除したりする効率的な許可、埋め込まれた画像やその他のマルチメディアを含むなど複雑な文書は、テキストを置くことによって、容易に取り扱うことができる効果的なドキュメントのアクセス制限を提供することである別にマルチメディアから(これを実行しても、負荷を軽減/時間を節約し、テキスト検索が容易などを行います)。また、ジャーナルの保管は、事故や失敗の後にコンテンツを(完全にまたは部分的に)を復元することが可能になります。もう一つの利点は、複数のエディションまたは1つのドキュメント内のデータの複数の代替ビューを格納するための可能性である。欠点は、プレーンテキストに変換オンザフライで使用して実装されるべき遅い検索、かもしれません。
ZIPファイルは、文書データを格納するためのOpen Document Formatなどのいくつかの文書フォーマットで使用されています。利点のほとんどは、構造化ストレージについて上述したように、再び、ファイルストレージをzipに適用可能であるが、情報の追加、変更、削除は時間のかかる操作であり、時々ファイルの完全な書き直しが必要になります。また、ZIPファイル形式を使用すると、内部のエントリにメタデータを添付することはできませんし、ZIPの暗号化機能は限られており(強力なAES暗号化は、標準的に最近追加され、それが多くのZIPの圧縮と解凍ツールとライブラリでサポートしていない)。
リモートおよび分散ストレージが普及し、人気が高まっている。彼らは、ドキュメントの作成と使用の間に容易なコラボレーションを可能にし、それらへのリモートが、しっかりと制御され、アクセスを確保。同種のデータ配列とは異なり、通常、ドキュメントは、その全体がアクセスおよび変更1オブジェクトを構成しており、これは、文書の検索と管理が非常に簡単になります。短所は前の段落と同じである。
推奨される解決策
適材適所のツールを使用する単純なルールは、ソフトウェア設計の分野でさらに重要です。間違っているか、下に考え抜かデータおよび情報記憶計画は悲惨な結果につながることができます。
ファイルの使用のためにあなたは、ファイルシステムの選択に直面している。
オラクル、DB2等又はオープンソース·ソリューション:商用データベースシステムの幅広い選択肢があります。
リポジトリは、Zipなどの商業および公共アーカイブソリューション、等によって作成することができます
構造化ストレージの例としては、Microsoft(暗号化なし、すなわち、圧縮や検索が利用可能であり、基本的なストレージ機能を提供しています)またはEldoS株式会社によってソリッドファイルシステムによってOLE構造化ストレージが含まれています。
EldoS株式会社、UnixベースのシステムなどのFUSEでソリッドファイルシステムOSのエディションとコールバック·ファイル·システムを設計することができるように、リモート·ストレージが提供されています
いずれにしても、唯一のプロジェクト開発者は、それゆえ、彼のソフトウェアプロジェクトの実装を成功させるためのツールの適切な選択を正確な要件を知っていて、すべての技術、それらの機能と制限を理解し、行うことができます。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿