「データベース」、「データウェアハウス」、「データレイク」という用語を耳にしたことがあり、いくつか疑問をお持ちかもしれません。これらは同じものを表す異なる言葉でしょうか。そうでない場合、どのような違いがあるでしょうか。そして、それぞれをどのような場合に使用すべきでしょうか。この記事では、これらの質問への回答やその他の詳細を探っていきます。
目次:
- データベースとは何ですか?
- OLAP + データウェアハウスおよびデータレイク
- データウェアハウスとは何ですか?
- データレイクとは何ですか?
- データベース、データウェアハウス、データレイクの主な違いは何ですか?
- データベース、データウェアハウス、データレイク:適切なオプションは?
- MongoDB Atlas データベースとデータレイクの使用
データベースとは何ですか?
データベースとは、データまたは情報の集合です。データベースは通常電子的にアクセスされ、オンライントランザクション処理(OLTP)をサポートするために使用されます。データベースマネジメントシステム(DBMS)は、データベースにデータを保存し、ユーザーやアプリケーションがデータと交流できるようにします。「データベース」という用語は、データベースそのものと DBMS の両方を参照するために一般的に使用されています。
データベースの特性
過去数十年にわたり、さまざまなデータベースタイプが登場しました。すべてのデータベースは情報を保存しますが、各データベースにはそれぞれ独自の特性があります。リレーショナルデータベースでは、固定の行と列を持つテーブルにデータを保存します。非リレーショナルデータベース(NoSQL データベースとも)は、JSON(JavaScript Object Notation)、BSON(Binary JSON)、キーと値のペア、行と動的な列を持つテーブル、ノードとエッジなど、さまざまなモデルでデータを保存します。データベースは、タイプに応じて、構造化データや半構造化データを保存します。
データベースの特性には次のようなものもあります。
- 認可されたユーザーのみがデータにアクセスできるようにするセキュリティ機能。
- データの整合性を確保するための ACID (Atomicity(原子性)、Consistency(一貫性)、Isolation(独立性)、Durability(永続性)) トランザクション。
- データベース内のデータと容易にやり取りするためのクエリ言語と API。
- クエリのパフォーマンスを最適化するインデックス。
- 全文検索。
- モバイルデバイス向けの最適化。
- ワークロード(アナリティクスワークロードなど)を特定のリソースセットに分離するための柔軟な展開トポロジー。
- オンプレミス、プライベートクラウド、パブリッククラウド、ハイブリッドクラウド、マルチクラウドのホスティングオプション。
データベースを使用する理由
アプリケーションでデータを保存する必要がある場合(ほぼすべてのインタラクティブなアプリケーションが該当します)、アプリケーションにはデータベースが必要です。さまざまな業界やユースケースのアプリケーションは、データベース上に構築されています。データベースには、次のような多くの種類のデータを保存できます。
- 患者の医療レコード
- オンラインストア内のアイテム
- 財務レコード
- 記事とブログ投稿
- スポーツのスコアと統計
- オンラインゲーム情報
- 生徒の成績とスコア
- IoT デバイスの読み取り値
- モバイルアプリケーション情報
データベースの例
無数のデータベースが存在します。例としては以下のものがあります。
- リレーショナルデータベース:Oracle、MySQL、Microsoft SQL Server、PostgreSQL
- ドキュメントデータベース:MongoDB および CouchDB
- キーバリュー型データベース: RedisおよびDynamoDB
- ワイドカラムストア:Cassandra、HBase
- グラフデータベース:Neo4j および Amazon Neptune
OLAP + データウェアハウスおよびデータレイク
データウェアハウスとデータレイクはどちらも、オンライン分析処理(OLAP)をサポートすることを目的としています。OLAP システムは通常、さまざまなソースからデータを収集するために使用されます。そのデータは、ビジネスインテリジェンスやレポート作成(例:店舗別の四半期売上レポート)から予測(例:過去の傾向に基づく今後6か月の住宅販売予測)まで、幅広い分析ユースケースを支えるために使用されます。
それを踏まえて、OLAP に対するこの2つのアプローチを比較してみましょう。
データウェアハウスとは何ですか?
データウェアハウスは、さまざまなソースから高度に構造化された情報を保存するシステムです。通常、データウェアハウスには、1つ以上のシステムからの現在のデータと過去のデータが格納されます。データウェアハウスを使用する目的は、さまざまなデータソースを組み合わせてデータを分析し、インサイトを検索し、レポートやダッシュボードの形式でビジネスインテリジェンス(BI)を作成することです。
「データウェアハウスはデータベースなのか?」と疑問に思うかもしれません。その通りで、データウェアハウスはアナリティクスに最適化された巨大なデータベースです。
データウェアハウスの特性
データウェアハウスには、さまざまなソースからの大量の現在のデータと履歴データが保存されます。ローデータから、高度にキュレーション、クレンジング、フィルター、集計されたデータまで、幅広いレンジのデータが含まれています。
抽出、変換、ロード(ETL)プロセスでは、元のソースからデータウェアハウスにデータが移動されます。ETL プロセスは定期的に(例:毎時または毎日)データを移動するため、データウェアハウス内のデータは、システムの最新の「状態」を反映していない可能性があります。
データウェアハウスには通常、事前に定義された固定のリレーショナルスキーマがあります。したがって、構造化データでうまく機能します。一部のデータウェアハウスは半構造化データもサポートしています。
データがウェアハウスに保存されたら、ビジネスアナリストはデータウェアハウスを BI ツールに接続できます。これらのツールにより、ビジネスアナリストやデータサイエンティストはデータを探索し、洞察を探し、ビジネス関係者向けのレポートを作成できます。
データウェアハウスを使用する理由
データウェアハウスは、大量の履歴データを保存し、またはデータを詳細に分析してビジネスインテリジェンスを生成する必要がある場合に適した選択肢です。データウェアハウスは構造化の度合いが非常に高いため、データの分析は比較的簡単であり、ビジネスアナリストやデータサイエンティストが実行できます。
データウェアハウスはアプリケーションのトランザクションや並行性のニーズを満たすことを目的としていないことに注意してください。組織がデータウェアハウスの導入によるメリットがあると判断した場合、日常業務を支えるために別のデータベースが必要になります。
データウェアハウスの例
データウェアハウスの例には、次のようなものがあります。
- Amazon Redshift。
- Google BigQuery。
- IBM Db2 Warehouse。
- Microsoft Azure Synapse.
- Oracle Autonomous Data Warehouse。
- Snowflake。
- Teradata Vantage。
データレイクとは何ですか?
データレイクは、元の未加工形式で保存された、さまざまなソースからのデータのレポジトリです。データウェアハウスと同様に、データレイクには現在および過去の大量のデータが保存されます。データレイクの際立った特徴は、JSON、BSON、CSV、TSV、Avro、ORC、Parquet など、さまざまな形式でデータを保存できる能力です。
通常、データレイクの主な目的は、データを分析してインサイトを得ることです。ただし、将来的にデータをアナリティクスで使用する可能性があるという考えから、単に安価なストレージとしてデータレイクを使用する組織もあります。
データレイクはデータベースですか?
「データレイクはデータベースなのか?」と疑問に思うかもしれません。データレイクは、データベースを含むさまざまな方法で保存されたデータのリポジトリです。最新のツールとテクノロジーを使用すれば、データレイクがデータベースのストレージレイヤーを形成することもできます。Starburst、Presto、Dremio、Atlas Data Lake などのツールを使用すると、データレイクに保存されているデータをデータベースのように表示できます。多くの場合、これらのツールはデータウェアハウスと同じ分析ワークロードをサポートできます。
データレイクの特性
データレイクには、構造化、半構造化、非構造化データが大量に保存されます。それらには、リレーショナルデータから JSON ドキュメント、PDF、オーディオファイルまで、あらゆるものを含めることができます。
データレイクに追加するためにデータを変換する必要はありません。つまり、事前計画なしにデータを非常に効率的に追加(または「取り込み」)できます。
データレイクの主なユーザーは、データの構造によって異なる場合があります。データがより構造化されている場合、ビジネスアナリストは洞察を得ることができます。データがより非構造化されている場合、データ分析には開発者、データサイエンティスト、データエンジニアの専門知識が必要になる可能性があります。
データレイクは柔軟性が高いため、ビジネスアナリストとデータサイエンティストは、予期しないパターンや洞察を探すことができます。データの生の性質と膨大さが組み合わさることで、ユーザーは最初にデータレイクを設定した際に気づかなかった問題を解決できます。
データレイク内のデータは、さまざまな OLAP システムで処理し、BI ツールで可視化できます。
データレイクを使用する理由
データレイクは、膨大なデータを保存するための費用対効果の高い方法です。現在のデータや履歴データに対して、変換や移動を行うことなく、生形式のまま洞察を得たい場合は、データレイクを使用します。データレイクは、機械学習と予測アナリティクスもサポートしています。
データウェアハウスと同様に、データレイクはアプリケーションのトランザクションや並行性のニーズを満たすことを目的としていません。
データレイクの例
データレイクでは、ストレージ機能とコンピューティング機能を、個別にまたは組み合わせて提供できます。
データレイク構築のために柔軟でスケーラブルなストレージを提供する技術の例を以下に挙げます。
- AWS S3
- Azure Data Lake Storage Gen2
- Google Cloud Storage
データレイクにおけるデータの整理およびクエリに関するその他のテクノロジーには以下が含まれます。
- AWS Athena。
- Presto。
- Starburst。
- Databricks SQL Analytics。
データベース、データウェアハウス、データレイクの主な違いは何ですか?
データベース、データウェアハウス、データレイクはすべて、データの保存に使用されます。では、その違いは何でしょうか?
データベース、データウェアハウス、データレイクの主な違いは次のとおりです。
- データベース は、アプリケーションの実行に必要な現在のデータを保存します。
- データウェアハウスは、1つ以上のシステムから現在のデータと履歴データを事前定義された固定スキーマに保存します。これにより、ビジネスアナリストとデータサイエンティストはデータを簡単に分析できるようになります。
- データレイクは、1 つ以上のシステムからの現在および過去のデータを生の形式で保存します。これにより、ビジネスアナリストとデータサイエンティストはデータを簡単に分析できるようになります。
以下の表は、データベース、データウェアハウス、およびデータレイクの類似点と相違点をまとめたものです。
データベース、データウェアハウス、データレイク:適切なオプションは?
ほぼすべてのインタラクティブなアプリケーションにはデータベースが必要です。
組織が複数のソースからのデータを分析しようとする場合、データベースをデータウェアハウス、データレイク、またはその両方で補完することを選択できます。データレイクやデータウェアハウスが組織に適しているかどうかを判断する際は、次の内容を自問してみましょう。
- データは構造化データ、半構造化データ、非構造化データのどれですか? データウェアハウスは構造化データおよび半構造化データをサポートしますが、データレイクはこれら3つすべてをサポートします。
- 事前定義された固定スキーマがあると、分析に役立ちますか? データウェアハウスでは、ユーザーは事前に定義された固定スキーマを前もって作成する必要があり、これによりデータ分析がより制限されます(が簡単になります)。データレイクを使用すると、ユーザーはデータを未加工の元の形式で保存できるため、構造を適用および維持することなく、より簡単にデータを保存できます。
- 現在、データはどこに保存されていますか? データウェアハウスでは、データをウェアハウスに移動するためにETLプロセスを作成する必要があります。データの保存場所によっては、データレイクではデータを移動する必要がない場合があります。たとえば、MongoDB Atlas Data Lake は Amazon S3 バケットに保存されているデータにアクセスできるため、すでにそこにデータを保存している組織にとって非常に有利です。
MongoDB Atlas データベースとデータレイクの使用
MongoDB Atlas は、数回のクリックで MongoDB データベースを作成できる、完全管理の「サービスとしてのデータベース」です。MongoDB データベースには、構造化データや半構造化データをサポートする柔軟なスキーマがあります。
多くの場合、MongoDB データプラットフォームはアナリティクスに十分なサポートを提供するため、データウェアハウスやデータレイクは必要ありません。MongoDB がアナリティクスをサポートするために提供する機能には、次のようなものがあります。
- データをリアルタイムで集計および分析できる強力な集計パイプライン。
- 分析ワークロード用に指定された分析ノードのサポート。アナリティクスを実行しても、アプリケーションの重要な運用ワークロードのパフォーマンスには影響しません。
- MongoDB データを BI およびアナリティクスプラットフォームに接続し、さらなる可視化と分析を可能にする MongoDB BI Connector。
まとめ
データベース、データウェアハウス、データレイクには、それぞれ固有の目的があります。ほぼすべての最新のアプリケーションでは、現在のアプリケーションデータを保存するためにデータベースが必要です。自社のアプリケーションの現在および履歴データを分析したい組織は、データウェアハウス、データレイク、またはその両方でデータベースを補完することを選択できます。