2017-01-12 19 views
0

非常に多くのデータベースがあります。任意のデータベースと組み合わせたHadoopのメリット

  • リレーショナルデータベース
  • のNoSQLデータベース
    • キー/値
    • ドキュメントストア
    • 広い列ストア
    • グラフデータベース

そして、データベース技術

  • のインメモリ

すべてを指向

  • 列には、それぞれの長所と短所を持っています。 大きなデータプロジェクトに適したデータベースの評価方法や選択方法を理解することは非常に困難です。

    私はHadoopについて考えています。これは、hdfsにデータを保存したり、アナリティクスのためにさまざまなデータベースにアクセスする多くの機能を備えています。

    hadoopは、最初にデータストレージとして使用できるため、適切なデータベースを選択しやすくすることはできますか?私のメインデータストアとしてhadoop hdfsがある場合、私のアプリケーションのデータベースを後で変更したり、複数のデータベースを使用することはできますか?

  • +0

    あなたはHadoopについてちょっと混乱しているようです。私はあなたに[this](http://superuser.com/questions/1158843/why-is-hadoop-not-a-data-warehouse/1163323#1163323)の最近のディスカッションを読んでみることをお勧めします。私はHadoopとデータウェアハウスについて話しました。 –

    答えて

    1

    まず、Hadoopはデータベースではありません。それは分散ファイルシステムです。

    私にとって大きなデータプロジェクトに適したデータベースの評価方法や選択方法を理解することは非常に難しいです。データの格納と検索

    プロジェクトのためのデータベースの選択は、これらの要因に依存し、

    1. 自然それが取引のために意味されている場合は、非常にあなたが固執することをお勧めしますACIDデータベースに転送する。

      Webアプリケーションやランダムアクセスに使用する場合は、従来のSQLのものから、HDaseをHBaseなどのストレージレイヤーとしてサポートする最新のデータベース技術まで幅広い選択肢があります。従来のものは、制約とインデックスを高度にサポートするランダムアクセスに適しています。

      分析のバッチ処理が懸念される場合、構造の複雑さと量に基づいて、利用可能なすべてのものの中から選択することができます。

    2. データ形式や構造

      SQLデータベースのほとんどは、構造化データをサポートしています(テーブルにフォーマットすることができるデータ)、いくつかはJSONを格納し、同様のそれを超えた彼らのサポートを拡張しません。

      データが構造化されていない場合、特にフラットファイルは、Hadoop、Spark、StormなどのBigdataのサポート技術で簡単に格納および処理できます。これらの技術は、音量が高い場合にのみ画像に反映されます。

      異なるデータベース技術は、さまざまなデータ形式に適しています。たとえば、グラフデータベースは、関係やグラフを表す構造を格納するのに適しています。

    3. サイズ

      これは、次の大きな関心事である、より多くのデータスケーラビリティのためのより多くの必要性。 Scale-Outアーキテクチャ(Hadoop、NoSql)をサポートするテクノロジをScale-Inよりも選択する方が良いでしょう。これは将来的にボトルネックになる可能性があります。

    私はHDFSや分析のためのアクセス異なるデータベース内のデータを保存するための多くの機能を持っているHadoopを、考えます。

    はい、ストレージレイヤーとしてHDFSを使用し、HDFSでサポートされているデータベースを使用して処理を行うことができます(処理の選択肢のフレームワークは、バッチからリアルタイムまでリアルタイムで選択できます)。注目すべきは、リレーショナルデータベースはHDFSストレージをサポートしていないということです。 MongoDBのようないくつかのNoSqlデータベースは、HDFSストレージもサポートしています。

    メインデータストアとしてhadoop hdfsを使用しても、後で自分のアプリケーションのデータベースを変更したり、複数のデータベースを使用することはできますか?

    これは、後でどのデータベースをペアにしたいのかに応じて、難しい場合があります。

    1

    HDFSはPOSIX互換のファイルシステムではないため、汎用ストレージとして使用して、その上に任意のDBを配備することはできません。デプロイするデータベースには、HDFSを明示的にサポートする必要があります。いくつかのオプションがあります:HBase、Hive、Impala、SolR。

    +0

    はい、あなたはhdfsの上で動作するデータベースについて正しいです。しかし、hdfsのデータを他のデータベースに保存できるスパークのようなフレームワークはどうでしょうか?またはsqoopのようなフレームワーク? – Khan

    +1

    Sqoopはフレームワークではありませんが、hdfsのデータをSQLデータベースから移動するのに役立ちます。 sparkに関しては、hdfsを記憶層として使用し、リソース管理のためにYARNを利用できるメモリ内処理フレームワークです。 – franklinsijo

    関連する問題