私の以前の投稿では、リレーショナルデータベースと非リレーショナルデータベースの間にいくつかの基本的な違いがありました。この投稿では、これら2つのスケーラビリティについて説明します。
スケーラビリティ
これは、パフォーマンスの問題をあまり起こさずに、迅速に受信するデータに簡単に対応できるシステムの機能です。これは、システムが優れたスケーラビリティを提供するための主な要因です。スケーリング方法には、垂直スケーリングと水平スケーリングの2種類があります。
垂直スケーリング
すべてのリレーショナルデータベースツールは、垂直スケーリングをサポートしています。これは、CPU、メモリ、およびディスクのスペースを追加することにより、システムの能力を高める方法です。したがって、迅速な受信データを可能にするために、単一の本番サーバーはスケールアップするように最適化されています。このスケーリング手法では、すべてのアプリケーションとユーザーが接続できる単一の本番サーバーが常に存在します。一部のノードでクラスター環境を作成し、ノード間でデータを複製できます。
ACIDプロパティのため、すべてのノードに同じデータセットが必要であり、クラスター内に複数のノードがある場合、データの同期は複雑になります。これは、読み取りスケーリング用に非常に最適化されています。垂直スケーリングは、スケールアップとも呼ばれます。
このスケーリング方法の利点は、データの緊密な統合と、クラスター内のノード間でのデータの一貫性です。すべてのノードに同じデータセットがあり、本番サーバーに問題がある場合は、アプリケーションによって別のノードが自動的に接続されます。したがって、このクラスターはフェールオーバークラスターと呼ばれます。
水平スケーリング
すべての非リレーショナルデータベースツールは、水平スケーリングをサポートしています。これは、ネットワークにコンピューターを追加して、データを迅速に受信できるようにする方法です。データを増やすために、クラスターにノードを追加するのは簡単です。データは自動的に分割され、クラスター内のノード間で処理されます。これは分散データ環境です。 Hadoop分散ファイルシステム(HDFS)は、この典型的な例です。水平方向のスケーリングは、スケールアウトとも呼ばれます。
このスケーリング手法の利点は、いずれかのノードがオフラインになった場合にデータがノード間で分割および複製されるため、アプリケーションが他のノードからのデータを保持できることです。これにより、データの可用性が常に保証されます。この方法は、ノードのデータ間でJOINが不要な場合に非常に役立ちます。これは、データを分離して地理的に異なる場所に配置する場合にも役立ちます。
これらのスケーリング手法には両方とも長所と短所がありますが、優れた環境では、これらの両方を組み合わせて、卓越したスケールアップとスケールアウトを実現できます。単一のサーバーでスケールアップの読み取りおよび書き込みデータベースを作成できます。これには、ACIDプロパティが必要であり、データマイニングの目的で複数のノードにスケールアウトされた分散履歴データがあります。