データストレージのための6つのオプションテクノロジー
ビジネス上の問題は、特にビッグデータと分析において、1つのツールですべてを解決するには広すぎ、深く、複雑すぎます。 この記事では、データストレージの6つのオプションテクノロジーについて説明します。
1.構造化データストレージ
構造化データストレージは何十年も前から存在しており、最もよく知られているデータストレージテクノロジーです。MySQL、SQL Server、PostgreSQLなどのほとんどのトランザクションデータベースは、ソフトウェアアプリケーションからの頻繁なデータ書き込みを処理するため、行ベースです。
多くの場合、企業は同時にレポートを作成するためにトランザクションデータベースを使用します。この場合、データを頻繁に読み取る必要がありますが、データの書き込み頻度ははるかに低くなります。データ読み取りの需要が高まるにつれ、データ読み取りのパフォーマンスを向上させ、分析のニーズを満たすのに役立つ列ファイル形式の革新など、構造化データストレージのクエリ分野にさらに多くの革新が入りました。
行ベースの形式では、データが行としてファイルに保存されます。行ベースの書き込みは、データをディスクに書き込む最速の方法ですが、無関係なデータを大量にスキップする必要があるため、必ずしも最速の読み取り方法とは限りません。
列ベースの形式では、すべての列の値が一緒にファイルに保存されます。これにより、同じデータ型がグループ化されるため、圧縮率が向上します。多くの場合、不要な列をスキップできるため、読み取りパフォーマンスも向上します。
構造化データストレージの一般的な選択肢を見てみましょう。たとえば、注文テーブルから特定の月の総売上高をクエリする必要がありますが、テーブルには50列があります。行ベースのアーキテクチャでは、クエリ時にテーブル全体の50列がスキャンされますが、列アーキテクチャでは、クエリ時に注文販売列のみがスキャンされるため、データクエリのパフォーマンスが向上します。トランザクションデータとデータ分析を処理するためのデータウェアハウスの必要性に焦点を当てて、リレーショナルデータベースを詳しく見てみましょう。
多くの場合、企業は同時にレポートを作成するためにトランザクションデータベースを使用します。この場合、データを頻繁に読み取る必要がありますが、データの書き込み頻度ははるかに低くなります。データ読み取りの需要が高まるにつれ、データ読み取りのパフォーマンスを向上させ、分析のニーズを満たすのに役立つ列ファイル形式の革新など、構造化データストレージのクエリ分野にさらに多くの革新が入りました。
行ベースの形式では、データが行としてファイルに保存されます。行ベースの書き込みは、データをディスクに書き込む最速の方法ですが、無関係なデータを大量にスキップする必要があるため、必ずしも最速の読み取り方法とは限りません。
列ベースの形式では、すべての列の値が一緒にファイルに保存されます。これにより、同じデータ型がグループ化されるため、圧縮率が向上します。多くの場合、不要な列をスキップできるため、読み取りパフォーマンスも向上します。
構造化データストレージの一般的な選択肢を見てみましょう。たとえば、注文テーブルから特定の月の総売上高をクエリする必要がありますが、テーブルには50列があります。行ベースのアーキテクチャでは、クエリ時にテーブル全体の50列がスキャンされますが、列アーキテクチャでは、クエリ時に注文販売列のみがスキャンされるため、データクエリのパフォーマンスが向上します。トランザクションデータとデータ分析を処理するためのデータウェアハウスの必要性に焦点を当てて、リレーショナルデータベースを詳しく見てみましょう。
(1)リレーショナルデータベース
RDBMSは、オンライントランザクション処理(OLTP)アプリケーションに適しています。人気のあるリレーショナルデータベースには、MSSQL、MariaDB、PostgreSQLなどがあります。これらの従来のデータベースのいくつかは、何十年も前から存在しています。
eコマース、銀行、ホテルの予約など、多くのアプリケーションはリレーショナルデータベースを利用しています。リレーショナルデータベースは、テーブル間の複雑な結合クエリを必要とするトランザクションデータの処理に非常に優れています。トランザクションデータ要件の観点から、リレーショナルデータベースは、次のように、アトミック性、一貫性、分離、および耐久性の原則に準拠する必要があります。
Atomicity:トランザクションは最初から最後まで完全に実行され、エラーが発生した場合は、トランザクション全体がロールバックされます。
一貫性:トランザクションが完了すると、すべてのデータがデータベースにコミットされます。
分離:複数のトランザクションを互いに干渉することなく同時に分離して実行する必要があります。
耐久性:中断(ネットワークや電源障害など)が発生した場合、トランザクションは最後の既知の状態に回復できる必要があります。
通常、リレーショナルデータベースのデータは、レポートと集計のためにデータウェアハウスにダンプされます。
RDBMSは、オンライントランザクション処理(OLTP)アプリケーションに適しています。人気のあるリレーショナルデータベースには、MSSQL、MariaDB、PostgreSQLなどがあります。これらの従来のデータベースのいくつかは、何十年も前から存在しています。
eコマース、銀行、ホテルの予約など、多くのアプリケーションはリレーショナルデータベースを利用しています。リレーショナルデータベースは、テーブル間の複雑な結合クエリを必要とするトランザクションデータの処理に非常に優れています。トランザクションデータ要件の観点から、リレーショナルデータベースは、次のように、アトミック性、一貫性、分離、および耐久性の原則に準拠する必要があります。
Atomicity:トランザクションは最初から最後まで完全に実行され、エラーが発生した場合は、トランザクション全体がロールバックされます。
一貫性:トランザクションが完了すると、すべてのデータがデータベースにコミットされます。
分離:複数のトランザクションを互いに干渉することなく同時に分離して実行する必要があります。
耐久性:中断(ネットワークや電源障害など)が発生した場合、トランザクションは最後の既知の状態に回復できる必要があります。
通常、リレーショナルデータベースのデータは、レポートと集計のためにデータウェアハウスにダンプされます。
(2)データウェアハウス
データウェアハウスは、オンライン分析処理(OLAP)アプリケーションに適しています。 データウェアハウスは、大量の構造化データの高速集計機能を提供します。 データはバッチでロードする必要があるため、ウェアハウスがホットデータに関するリアルタイムの洞察を提供することは不可能です。
最新のデータウェアハウスは、列型ストレージを使用してクエリのパフォーマンスを向上させています。 列型ストレージのおかげで、これらのデータウェアハウスは非常に高速なクエリ速度を提供し、I / O効率を向上させます。
データウェアハウスは、1つ以上のデータベースから蓄積されたデータを格納できる中央リポジトリです。 ビジネスデータの分析レポートを作成するために、現在および過去のデータを保存します。
データウェアハウスは複数のシステムからのデータを一元的に保存しますが、データレイクとは見なされません。 データウェアハウスは構造化リレーショナルデータのみを処理できますが、データレイクは構造化リレーショナルデータとJSON、ログ、CSVデータなどの非構造化データの両方を処理できます。
データウェアハウスは、オンライン分析処理(OLAP)アプリケーションに適しています。 データウェアハウスは、大量の構造化データの高速集計機能を提供します。 データはバッチでロードする必要があるため、ウェアハウスがホットデータに関するリアルタイムの洞察を提供することは不可能です。
最新のデータウェアハウスは、列型ストレージを使用してクエリのパフォーマンスを向上させています。 列型ストレージのおかげで、これらのデータウェアハウスは非常に高速なクエリ速度を提供し、I / O効率を向上させます。
データウェアハウスは、1つ以上のデータベースから蓄積されたデータを格納できる中央リポジトリです。 ビジネスデータの分析レポートを作成するために、現在および過去のデータを保存します。
データウェアハウスは複数のシステムからのデータを一元的に保存しますが、データレイクとは見なされません。 データウェアハウスは構造化リレーショナルデータのみを処理できますが、データレイクは構造化リレーショナルデータとJSON、ログ、CSVデータなどの非構造化データの両方を処理できます。
2.NoSQLデータベース
Dynamo DB、Cassandra、Mongo DBなどのNoSQLデータベースは、リレーショナルデータベースでよく発生するスケーリングとパフォーマンスの課題を解決できます。 名前が示すように、NoSQLは非リレーショナルデータベースの略です。 NoSQLデータベースは、異なるテーブルのデータを接続するための明確に定義された構造メカニズムなしでデータを格納します(結合、外部キー、パラダイムはありません)。
NoSQLは、列モデル、キー値モデル、検索モデル、ドキュメントモデル、グラフモデルなど、さまざまなデータモデルを使用します。 NoSQLデータベースは、スケーラブルなパフォーマンス、高可用性、および復元力を提供します。
NoSQLには通常、厳密なデータベーススキーマはありません。各レコードには任意の数の列(属性)を含めることができます。つまり、1つの行に4つの列を含めることができ、同じテーブル内の別の行に10の列を含めることができます。 パーティションキーは、関連するプロパティを含む値またはドキュメントを取得するために使用されます。 NoSQLデータベースは高度に分散されており、複製できます。 NoSQLデータベースは非常に耐久性があり、パフォーマンスの問題がなく可用性が高くなっています。
NoSQLは、列モデル、キー値モデル、検索モデル、ドキュメントモデル、グラフモデルなど、さまざまなデータモデルを使用します。 NoSQLデータベースは、スケーラブルなパフォーマンス、高可用性、および復元力を提供します。
NoSQLには通常、厳密なデータベーススキーマはありません。各レコードには任意の数の列(属性)を含めることができます。つまり、1つの行に4つの列を含めることができ、同じテーブル内の別の行に10の列を含めることができます。 パーティションキーは、関連するプロパティを含む値またはドキュメントを取得するために使用されます。 NoSQLデータベースは高度に分散されており、複製できます。 NoSQLデータベースは非常に耐久性があり、パフォーマンスの問題がなく可用性が高くなっています。
3.NoSQLデータベースタイプ
NoSQLデータベースの主な種類は次のとおりです。
列型データベース:列型データストアは、行全体をスキャンするのではなく、データをクエリするときに列をスキャンするのに役立ちます。アイテムテーブルに10列と100万行があり、在庫内のアイテムの数量をクエリする場合、列データベースは、テーブル全体をスキャンせずに、アイテム数量列にのみクエリを適用します。
ドキュメントデータベース:最も人気のあるドキュメントデータベースは、MongoDB、Couchbase、MarkLogic、Dynamo DB、およびCassandraです。ドキュメントデータベースを使用して、半構造化データをJSONおよびXML形式で保存できます。
グラフデータベース:グラフデータベースは、頂点と頂点間のリンク(エッジと呼ばれる)を格納します。グラフは、リレーショナルデータベースと非リレーショナルデータベースに基づいて作成できます。
メモリ内のKey-Valueストア:データをメモリに保存し、データが頻繁に読み取られるシナリオで使用されます。アプリケーションのクエリは最初にインメモリデータベースに送られ、データがキャッシュで利用可能な場合、メインデータベースにはヒットしません。インメモリデータベースは、複雑なクエリやユーザープロファイルなどのデータの頻繁な要求をもたらすユーザーセッション情報を格納するのに最適です。
NoSQLには多くのユースケースがありますが、データ検索サービスを構築するには、すべてのデータにインデックスを付ける必要があります。
列型データベース:列型データストアは、行全体をスキャンするのではなく、データをクエリするときに列をスキャンするのに役立ちます。アイテムテーブルに10列と100万行があり、在庫内のアイテムの数量をクエリする場合、列データベースは、テーブル全体をスキャンせずに、アイテム数量列にのみクエリを適用します。
ドキュメントデータベース:最も人気のあるドキュメントデータベースは、MongoDB、Couchbase、MarkLogic、Dynamo DB、およびCassandraです。ドキュメントデータベースを使用して、半構造化データをJSONおよびXML形式で保存できます。
グラフデータベース:グラフデータベースは、頂点と頂点間のリンク(エッジと呼ばれる)を格納します。グラフは、リレーショナルデータベースと非リレーショナルデータベースに基づいて作成できます。
メモリ内のKey-Valueストア:データをメモリに保存し、データが頻繁に読み取られるシナリオで使用されます。アプリケーションのクエリは最初にインメモリデータベースに送られ、データがキャッシュで利用可能な場合、メインデータベースにはヒットしません。インメモリデータベースは、複雑なクエリやユーザープロファイルなどのデータの頻繁な要求をもたらすユーザーセッション情報を格納するのに最適です。
NoSQLには多くのユースケースがありますが、データ検索サービスを構築するには、すべてのデータにインデックスを付ける必要があります。
4. Elasticsearch
Elasticsearchは、クリックストリームやログ分析などのビッグデータシナリオで最も人気のある検索エンジンの1つです。 文字列トークンを含む任意の数の属性を持つウォームデータに対するアドホッククエリは、検索エンジンによって十分にサポートされています。 Elasticsearchは非常に人気があります。 汎用バイナリまたはオブジェクトストレージは、特殊なツールでは理解できない形式の非構造化データ、インデックス作成不可データ、およびその他のデータに適しています。
ログの検索と分析は一般的なビッグデータアプリケーションのシナリオであり、Elasticsearchは、Webサイト、サーバー、およびIoTセンサーからのログデータの分析に役立ちます。 Elasticsearchは、銀行、ゲーム、マーケティング、アプリケーションモニタリング、アドテク、不正検出、推奨、IoTなどの多数の業界アプリケーションで使用されています。
ログの検索と分析は一般的なビッグデータアプリケーションのシナリオであり、Elasticsearchは、Webサイト、サーバー、およびIoTセンサーからのログデータの分析に役立ちます。 Elasticsearchは、銀行、ゲーム、マーケティング、アプリケーションモニタリング、アドテク、不正検出、推奨、IoTなどの多数の業界アプリケーションで使用されています。
5.非構造化データストレージ
非構造化データストレージのニーズがある場合、Hadoopはスケーラブルでスケーラブルであり、非常に柔軟性があるため、最適な選択肢のように思われます。コンシューマーグレードのデバイスで実行され、ツールの巨大なエコシステムを備えており、実行するのにかなりのようです。
Hadoopはマスターノードと子ノードのモードを採用し、データは複数の子ノードに分散され、マスターノードはデータに対して操作を調整し、クエリ操作を実行します。 Hadoopシステムは、超並列処理(MPP)に依存しているため、構造化されているかどうかに関係なく、さまざまなタイプのデータをすばやくクエリできます。
Hadoopクラスターが作成されると、スレーブサーバー上に作成された各子ノードには、ローカルHadoop分散ファイルシステム(HDFS)と呼ばれるディスクストレージのブロックが付随します。 Hive、Ping、Sparkなどの一般的な処理フレームワークを使用して、保存されたデータをクエリできます。ただし、ローカルディスク上のデータは、関連付けられたインスタンスの存続期間中のみ保持されます。
Hadoopのストレージレイヤー(つまりHDFS)を使用してデータを保存する場合、ストレージと計算は一緒に結合されます。ストレージを追加すると、マシンを追加する必要があり、コンピューティング能力も向上します。最大限の柔軟性と最高の費用対効果を得るには、コンピューティングとストレージを互いに独立して分離およびスケーリングする必要があります。
一般に、オブジェクトストレージは、データレイクがあらゆる種類のデータを費用効果の高い方法で保存するのに適しています。オブジェクトストレージによってサポートされているクラウドベースのデータレイクは、コンピューティングとストレージを柔軟に切り離すことができます。
Hadoopはマスターノードと子ノードのモードを採用し、データは複数の子ノードに分散され、マスターノードはデータに対して操作を調整し、クエリ操作を実行します。 Hadoopシステムは、超並列処理(MPP)に依存しているため、構造化されているかどうかに関係なく、さまざまなタイプのデータをすばやくクエリできます。
Hadoopクラスターが作成されると、スレーブサーバー上に作成された各子ノードには、ローカルHadoop分散ファイルシステム(HDFS)と呼ばれるディスクストレージのブロックが付随します。 Hive、Ping、Sparkなどの一般的な処理フレームワークを使用して、保存されたデータをクエリできます。ただし、ローカルディスク上のデータは、関連付けられたインスタンスの存続期間中のみ保持されます。
Hadoopのストレージレイヤー(つまりHDFS)を使用してデータを保存する場合、ストレージと計算は一緒に結合されます。ストレージを追加すると、マシンを追加する必要があり、コンピューティング能力も向上します。最大限の柔軟性と最高の費用対効果を得るには、コンピューティングとストレージを互いに独立して分離およびスケーリングする必要があります。
一般に、オブジェクトストレージは、データレイクがあらゆる種類のデータを費用効果の高い方法で保存するのに適しています。オブジェクトストレージによってサポートされているクラウドベースのデータレイクは、コンピューティングとストレージを柔軟に切り離すことができます。
6.データレイク
データレイクは、構造化データと非構造化データの集中リポジトリです。データレイクは、集中ストレージに大量のデータを保存および分析するための一般的な方法になりつつあります。簡単な分析のためにオープンソースのファイル形式を使用して、データをそのまま保存します。データは現在の形式でそのまま保存できるため、データを事前定義されたスキーマに変換する必要がなく、データの取り込み速度が向上します。
データレイクの利点は次のとおりです。
さまざまなソースからのデータの取り込み:データレイクを使用すると、さまざまなソース(リレーショナル、非リレーショナルデータベース、ストリームなど)からのデータを一元化された場所に保存および分析して、信頼できる唯一の情報源を生成できます。データが複数の場所に分散している理由などの質問に答えます。信頼できる唯一の情報源はどこにありますか?
データを効率的に取り込み、保存する:データレイクは、スキーマを必要とせずに、半構造化データと非構造化データを含むあらゆるタイプのデータを取り込むことができます。これは、さまざまなソースからさまざまな形式でデータをすばやく取り込み、大規模に効率的に保存する方法の問題に答えます。
生成されるデータの量が増え続けるにつれて:データレイクを使用すると、ストレージ層をコンピューティング層から分離し、各コンポーネントを個別にスケーリングできます。これは、生成されるデータの量に応じてどのようにスケーリングするかという問題に答えます。
異なるソースからのデータに分析を適用する:データレイクを使用すると、読み取り時にデータパターンを識別し、異なるソースから収集されたデータの集中データカタログを作成できます。これにより、いつでもすばやくデータを分析できます。これは、複数の分析および処理フレームワークを同じデータに適用できるかどうかという質問に答えます。
データレイクの利点は次のとおりです。
さまざまなソースからのデータの取り込み:データレイクを使用すると、さまざまなソース(リレーショナル、非リレーショナルデータベース、ストリームなど)からのデータを一元化された場所に保存および分析して、信頼できる唯一の情報源を生成できます。データが複数の場所に分散している理由などの質問に答えます。信頼できる唯一の情報源はどこにありますか?
データを効率的に取り込み、保存する:データレイクは、スキーマを必要とせずに、半構造化データと非構造化データを含むあらゆるタイプのデータを取り込むことができます。これは、さまざまなソースからさまざまな形式でデータをすばやく取り込み、大規模に効率的に保存する方法の問題に答えます。
生成されるデータの量が増え続けるにつれて:データレイクを使用すると、ストレージ層をコンピューティング層から分離し、各コンポーネントを個別にスケーリングできます。これは、生成されるデータの量に応じてどのようにスケーリングするかという問題に答えます。
異なるソースからのデータに分析を適用する:データレイクを使用すると、読み取り時にデータパターンを識別し、異なるソースから収集されたデータの集中データカタログを作成できます。これにより、いつでもすばやくデータを分析できます。これは、複数の分析および処理フレームワークを同じデータに適用できるかどうかという質問に答えます。
関連記事
-
ブロックチェーンとは何ですか?
ナレッジベースチーム
-
CDNとは何ですか?
ナレッジベースチーム
より多くの特別オファーを探す
-
Short Message Service(SMS) & Mail Service
10,000通のメールで1.99ドルから、120通のテキストメッセージで1ドルから