Oracle vs Teradata vs Hadoop

この記事は、大規模および非常に大規模なデータウェアハウスを対象としていますが、分類の概要を簡単に説明するために、少し言及しました。



この記事は、データベースを操作するための主要な基準である速度を評価する専門家向けに書かれています。 これは、粗雑なフルスキャンを目的としたシステムについてのものです(オラクルの学生はすでに緊張しており、テラダティア人は満足しています)。



OracleまたはHadoop / NoSQLが最適なデータと作業量を見てみましょう。



1)少量の場合、Oracle SE Oneの価格が900ドルであることを気の毒に思うなら、HadoopなしでNoSQLを使用する方がより有益です。 その主な利点は価格であり、NoSQLデータベースは通常無料です。 少量のデータは、データベースのモデルと開発の複雑さが小さいことを意味します。



2)中規模および大規模ボリュームでは、OracleにはTeradataおよびHadoopよりも大きな利点があります。 その主な利点:

1.テクノロジーと製品の成熟度が非常に高く、Hadoopに比べて実装数が多い。

3.非常に豊富なテクノロジーのセット。これは、すべてと比較して開発を大幅に促進し、スピードアップします。

3.サーバーと電気をレンタルするコストのために、OracleはHadoopよりも運用コストが低いと思われます。

4. Teradataと比較した価格。 Exadataを購入せずにサーバーを構築する場合、Hadoopと比較して価格差はそれほど大きくないと思います。



Oracleには優れたスケーラビリティがありますが、ボトルネックもあります。これはストレージサブシステムであり、あらゆる数の顎に対応しています。 そのため、Oracleはある程度まで、最高のデータ処理速度の1つを示しています。



私が見た中で最速の自己組織化ストレージアレイは18 Gb / sを提供します(他にもあると確信していますが)。 Exadata Full Rackは、カスタムファームウェアを通じてすべてのハードウェアおよびソフトウェア25 Gb / sを提供します。



ただし、Oracleでのフルスキャンパフォーマンスが十分でないことがよくあります。



例を挙げましょう。 2007年、Beelineでは、1日あたり1億7000万件のレコードが1つのテーブルに分類されました。これらはすべてロシア全土の電話です。 分析するのは非現実的であり、スローガンの観点から言えば、このようなテーブルで実行するのは非現実的です。ハードドライブのパフォーマンスが十分ではありません。 このような場合、最適化が適用され、そのようなファクトテーブルに基づいて、1日あたり400万レコードのいくつかの大きな集計が作成されます。 そして、これらの大きな集合体に基づいて、特定のタスク/レポート用に多くの小さな集合体がすでに作成されています。 この種の最適化は、Oracle、Teradata、およびHadoopで実行できます。



このシステムには3つの欠点があります。

1.ビジネスユーザーが集計にない新しいフィールドを必要とする場合、開発プロセス、つまり追加は非常に長いものです。

すべてのユニットでフィールドを引き伸ばす必要があります。

2.そのようなシステムに関するすべてのアドホックレポートが可能というわけではありません。 それは、アドホックであり、ここではレポートが必要であり、現在は小さくシンプルであり、これは会社にとって損失であるか、質問への回答がすでに時代遅れで不要であるためです。

3.非常に複雑なETL。



ここに2つのデータを解決するための欠点があり、HadoopまたはTeradataを使用できます。



3)非常に大きなボリュームでは、Hadoopを使用できます。

このテクノロジーには2つの利点があります。

1.ほぼ無限の線形スケーラビリティ。 1秒あたり25、125、1000ギガバイトを提供できます。

2.価格、すべて無料。 もちろん鉄のほかに。



欠点:

1.通常、MapReduceプロシージャの作成は時間のかかるタスクです。 したがって、アドホッククエリはSQLほど単純ではありません。



同じハードウェア上でOracleとHadoopのパフォーマンスを比較したことはありませんが、HadoopはOracleに大きく取って代わると思います。 ネジの速度のみを考慮すると、Exadataは25 Gb / s、通常のオフィスディスク7.2K 100 MB / sを生成し、250台の通常のコンピューターが必要であることがわかります。 通常のコンピューターは2万ルーブルかかります。 200ワットを消費します。 Exadata 7600ワット。 Hadoopは、電気の点で非常に不利であり、Exadataには二重の冗長性を備えたすべてのものがあるという事実を考慮していません。



4)Teradata上の超大容量。

Teradataは、フルスキャンなどの厳しいデータ方式を使用して、はるかに優れた仕事をしています。 Teradataにはシェアードナッシングのイデオロギーがあり、Hadoop / NoSQLに非常に似ています。 データは多くのサーバー上にあり、各サーバーは独自の部分を処理します。 しかし、Teradataには重大な欠点があります-かなり貧弱なツールキットです。 それに取り組むのは不便です。 Oracleと比較すると、これはそれほど成熟した製品ではありません。 価格、フルTeradataキャビネット、Exadata Full Rackの価格はほぼ同じで、500万ドルです。



また、TeradataとHadoopの一般的な欠陥についても言及します。 これは、何らかの方法でノード間でデータを分散する必要があります。 自然なキー、つまり ビジネスキー、または代理。 ここでは時間が適切ではなく、これはパーティション分割ではありません。 将来のデータは、すべてのノードにわたって均等に配置する必要があります。 この地域は、たとえば、悪い属性であるビーラインの場合、モスクワが30%を占めています。 または、ある種の代理キーまたはハッシュキー。



Teradataの利点は、本質的に3分割パーティションであるのに対し、Oracleには2分割があることです。 1つのパーティションに1億7000万行がある場合、これは非常に便利です。これらの1億7000万を地域ごとに85のサブパーティに分割し、Teradataでも30ノードに分割すると、最終的なデータ配列を非常にすばやく読み取ることができます。



Teradataの制限:

シェアードナッシングテクノロジーとBYNET V5ネットワークにより、Teradataは最大2048ノード、ノードあたり76 TB(10 K)、合計234 PBに拡張できます。 また、1つのExadataラックは、672TB(15K)または200TB(7.2K)のみです。 Exadataの並列化は特に有益ではありません。 ディスク容量はまったく1つです! そして、2ラックのディスクスペースを組み合わせると(Exadataが可能かどうか-わかりませんか?)、すべてがラック間の40ギガビットのネットワークパフォーマンスにかかっています。 むしろ、ラック1はそのネジにすばやく広くアクセスできますが、ラック2のネジは低速で、その逆も同様です。



また、TeradataとExadataにはマルチパートのハイブリッド圧縮があることに留意してください。 最大4〜6倍の平均圧縮。 NoSQLデータベースにも存在しますが、開発に多くのお金を要したこのようなモンスターほど効果的ではないかもしれません。



完全を期すために、以下に言及する価値があります。

Oracleには、キャッシュ、RAM、およびSSDフラッシュカードの2つのレベルがあります。

Teradata 1レベル-メモリですが、ノウハウがあります-温度ストレージ。

2レベルのキャッシュとMPPの欠如により、ExadataはOLTPロードにより適しています。



結論:規制されていない要求がない場合、すべての要求は事前に知られており、データは600 TBを超えていないので、Oracleを使用します。作業が非常に便利です。 それ以上の場合は、TeradatまたはHadoopを使用します。

100 TBを超えるデータと多くのアドホックリクエストがある場合は、TeradataまたはHadoopを使用してください。



PS記事にOracle + Lustreを追加したかったのですが、Oracleに新しいものは追加されず、すべてが40ギガビットネットワークのパフォーマンスにかかっていることがわかりました。



All Articles