大量のセンサーデータのストレージを再設計する


8

私は、センサーアレイからの気象データを保存するソリューションを実装/再設計することを任されています。アレイは約40のタワーで構成され、それぞれに約10のセンサーがあり、未確定の時間(年)にわたって10秒間隔で大気条件をサンプリングします。このタスクのいくつかのアプリケーションと要件は次のとおりです。

  • タワー/センサー構成を管理および取得して、データ分析を理解します。
  • 気象観測のためのセンサーまたは時間間隔によるデータ可視化。
  • モデルとセンサーのパフォーマンスを比較するために、信頼性のある永続的なデータリソース/データセットを顧客に提供します(必要な形式で配信するには、いくつかの後処理が必要になる場合があります)。

:現在のソリューション(5つのタワーを備えた概念実証として実装)では、データをフラットファイル(1時間に1ファイル)として保存します。

これが将来的にビッグデータの問題になるかどうかは当初はわからなかったので、リレーショナルデータベースとNoSQLデータベースの両方についていくつかのソリューションを調査しましたが、データ管理の専門家ではないため、もう少しガイダンスが必要だと思います。

私が考えたソリューションの1つは、タワー、センサー、タイムスタンプでインデックスが付けられたリレーショナルデータベースにデータを保存し、日付でテーブルを分割することでした。

もう1つは、将来のスケーリングに基づいて、MongoDBなどのドキュメントタイプのNoSQLデータベースに保存し、現在のソリューションの構造を模倣することでした。

これらの良いアプローチのいずれかはありますか?そうでない場合、より良い/推奨されるソリューションは何ですか?また、現在のソリューションを再設計する必要があるでしょうか?フラットファイルを使用する理論的根拠は、リレーショナルデータベースはオーバーヘッドがかかりすぎると信じているということです。もしそうなら、これを回避する方法はありますか?

回答:


11

(a)扱っている情報は、それ自体が非常に貴重な組織リソースであるように見え、(b)データの量はかなりの量になるので、(c)いずれかにリレーショナルデータベースを構築します主要なSQLプラットフォーム。

もちろん、非常に一般的な観点から見ると、3つの重要な要素が必要です。

  1. 明確に定義された概念 1は、物事のプロトタイプを特定し、精度のうちマークする持っているスキーマ、すなわち、実体がタイプ(自分を含め性質相互関係、あなたが(例えば、作業している事業環境の関連性の)とあなたが言及するセンサー)。

    ご存知のように、このポイントでは、ビジネスの専門家と継続的かつ生産的なコミュニケーションを確立する必要があります。

  2. データが確実に準拠するようにするために、適切な列タイプ(つまり、関係属性)と適切なすべての制約を備えた明確に区切られたを保持するテーブル(つまり、数学的関係)を使用して、概念レベルを正確に反映する論理レイアウト前の層で決定されたすべてのルール。

    したがって、ここで、リレーショナルモデルの膨大な力が発揮されます(ただし、その利点は、他の抽象化レベルでポジティブな影響をもたらします)。

  3. たとえば、「動的」な論理データ操作操作の実行速度を高め、論理的制約を保証する物理的な配置。

    リレーショナルモデルは物理的なデータの独立性を提供するため、データベース管理システム(簡潔にするためにDBMS)は、このレベルで、論理的な定義をサポートするために、インデックスだけでなく、あらゆる種類の構造を提供できます。主要なSQLプラットフォームの場合、はい、これは一般に、正確には、データベース固有のクエリ傾向に基づいてインデックス付け戦略を設定することを意味し、特定の構成を知らないまま、いくつかの可能な構成に関して非常に興味深い考慮事項を提示しましたこの点に関して具体的なアドバイスを提供することは、正確さを伴う情報の必需品には適していません。

    評価に値する他の要素としては、たとえば、ネットワークインフラストラクチャをアップグレードして帯域幅を増やし、適切なサーバー構成(ハードウェアおよびソフトウェア)を有効にするなどがあります。選択したDBMSのソースコードを変更します(当然、オープンソース環境でより実現可能です)。

このように、強調する次の側面

  • タワー/センサー構成を管理および取得して、データ分析を理解します。
  • 気象観測のためのセンサーまたは時間間隔によるデータ可視化。
  • モデルとセンサーのパフォーマンスを比較するために、信頼性のある永続的なデータリソース/データセットを顧客に提供します(必要な形式で配信するには、いくつかの後処理が必要になる場合があります)。

たとえば、非常に意味のある形式で情報を取得するためのクエリを簡単に宣言できるため、適切に対処されます。たとえば、関連するデータを取得できます

  • SensorNumberで識別センサー1750タワーに設置は、TowerNumberで識別される31日付の間、1 June 2017および日付27 June 2017

さらに、(1)リレーショナルデータベース内のデータは、リレーショナル代数に基づく操作を使用してセットの観点から論理的に管理され、(2)異なるSQLエンジンがセットに対して物理的に最適化されます(他のものよりもいくつか)処理、たとえば、

  • セットaとセットbを比較します。
  • セットcとセットdを結合します。
  • セットeの制限を通じてサブセットセットfを取得します。
  • nセットの交差からnサブセットを生成します。
  • セットfのプロジェクトn属性
  • セットxとセットyの和集合の結果であるセットzから情報を取得します。
  • 等々。

データ操作の可能性は、実際にあなたがいないだけで作業することができますので、リレーショナルparadigm-の比類のない汎用性を-demonstrating巨大であるベーステーブル(で宣言されたものCREATE TABLE … ( … );文)だけでなく、と導出(を介して発現するもののものSELECT …;、操作を、時にはとして固定しますVIEWs) 。言い換えると、(i)(ii)以前に動作していたデータ構造に基づいて新しいデータ構造を表現できます。

明らかに、リレーショナルデータベースのベーステーブルと列の配置は進化する可能性があり、(a)新しいベーステーブルまたは列は、(b)新しいエンティティタイプまたはエンティティタイププロパティを追跡することが適切なビジネスコンテキスト。言い換えれば、どちらも初期構造リレーショナルデータベースの開口制約は、静的または不変であることが予想されます。さらに、最初から適切に編成されたデータベースは、新しい情報要件が発生したときに変更するのがはるかに簡単になる傾向があります。

上記の考慮事項に同意して、適用可能なセットの論理形式は、データベースの論理レベルで宣言的に作成する必要があります。セットのグラフィック形式または表示形式(たとえば、使用されているカラーやフォントフェース)は、1つまたは複数のアプリケーションプログラムのコードを使用して処理する必要があります(はい、ほとんどが手続き型の方法で、おそらくオブジェクトの助けを借りて)指向のフレームワーク、HTMLなど)。このようなセットのアクセスと表示をユーザーフレンドリーにするため。もちろん、データベースに接続するレポートソフトウェアを使用することもできます。

関連性のデータベースのモデリング

あなたが作業することを考えるとセンサー(、他の機能の中で、通常の形で情報を必要とするデータの時系列)、あなたが助け、複数のデータベースの設計と全体的な管理の原則を見つけることがで、2つの異例の回答に含まれる@PerformanceDBA、と題された質問へ:

リレーショナル、フラットファイル、NoSQLのアプローチ

リレーショナルモデルによって博士エドガー・フランク・コッドは、 1970年に出版されたが、データ管理の問題に対処するために本当に(ロジックと集合論に基づいて)最もモダンでエレガントな方法のまま。個別のSQL DBMSは、リレーショナル理論で提案されているシステムにとって最も人気のある近似です(ただし、完全に準拠しているわけではありませんが、それでも本当に強力です)。それらのいくつかは、大幅に最適化されています(たとえば、レベルのメカニズム)今でも数十年。さらに、メインのSQLプラットフォームはもちろん、最新のストレージ(ハードドライブなど)および処理(CPUなど)のテクノロジを非常に効率的に使用できます(使用できるようになります)。

強力なDBMSで構築すると、概念、論理、物理レベルで適切に設計されたリレーショナルデータベースは、(1)信頼でき、(2)高速応答、ご存じのとおり、非常に重要な2つの側面。

フラットファイル

したがって、続く主張

フラットファイルを使用する理論的根拠は、リレーショナルデータベースはオーバーヘッドがかかりすぎると信じているということです。

フラットファイルアプローチは次のようになるため、簡単に破棄できます。

  • 科学前;
  • 大量のデータに最適とはほど遠い。
  • 面倒すぎる;
  • アプリケーションプログラムに依存します(適切なDBMSがネイティブに提供するほとんどの機能を手動で実装する必要があります)。
  • そのパフォーマンスは簡単に損なわれます。

一方、控えめに言っても、リレーショナル方式は「はるかに便利」です。

  • 大きなスケーラビリティを提供します(物理レベルに依存しないため、必要に応じて、基礎となる物理メカニズムを強化できます)。
  • 抽象演算を介して)データを操作するシンプルなスタイルをもたらし、
  • 複数のアプリケーションプログラムを同時に操作できます(たとえば、1つ以上のモバイルアプリ、1つ以上のウェブアプリ、1つ以上のデスクトップアプリなど)。

ただし、フラットファイルの利用を選択する場合は、Awkのような堅牢なユーティリティの使用を評価する必要があります。このユーティリティは、DBMSではなく(そのように設計されていません)、ファイルレコードフィールドなどを処理するための便利なリソースを提供します。この主題の詳細については、GNU Awkユーザーガイド参照してください。

NoSQL

「非構造化データ」と関連用語

彼らの宣伝によると、NoSQL DBMSの使用の最初の正当化は、それらが「非構造化データ」の処理を含むビジネスドメインで使用されることを意図しているため、質問が必要です:

  • 「非構造化データ」とはどういう意味ですか?

その点では、データは、その性質上、と言わなければなりませんされて構造化。それが構造を持たない場合、それは意味のないものになるため、そのようなものは(i)データと見なすことができ、(ii)管理する価値がありません。したがって、「非構造化データ」は矛盾した不幸な表現です。

これらのコンテキストの他のフレーズは、「半構造化データ」です。このフレーズは、「一部」または「半分」で構成されたデータが存在することを示唆しているため、前の段落に従って、構成された「一部」または「半分」のみが実際のデータであり、残りの「部分」は実際のデータになることができます。または「半分」は構造に欠けているために形のないものにすぎず、データと呼ぶことはできません。

さらに別の悲しいことに、NoSQLマーケティングで見られる典型的な用語は「多態データ」です。上記の用語が「多くの異なる形式のデータ」のようなものを意味する場合、それは実際には通常のデータであり、いつものように多くの異なる形式で発生します。また、多くの異なる形式があるため、多くの異なる構造が存在するため、この「種類の」データについて特別なことは何もありません。

言うまでもなく、データとデータ構造は常に変更の影響を受けやすいので、この点でも例外はありません。

データ量の増加

明らかに、コンピュータ化されたシステムによって管理される情報の量は、年を追うごとに確実に増加し、新しいシステムが毎日構築されているため、時間の経過とともに指数関数的に増加し続けますが、それは関係ありません。情報自体の構造。

丸みのある理論的基盤の欠如

NoSQLシステムの重大な制限(ドキュメントベースとグラフベースなど、さまざまなクラスが存在する)は、現在の製品はどれも、「最新」として広く販売され、ラベルが付けられていますが、適切な理論的根拠(あるとしても)がないことです。これは、適切なDBMSの3つの最も重要な要素、つまりデータ(a)定義、(b)操作、および(c)狭窄のためのツールのすべてをサポートします。したがって、NoSQLアプローチは実際には、データの処理がアドホックで健全ではない一連のアクションで実行された古代の時代への回帰を示唆しています。

現在、グラフシステムは「NoSQL」の範囲に含まれています。これらのソフトウェア製品は、上の操作によってデータを管理するために招待2:異なる構造のノードの関係をもう一度、用語「非構造化データ」と競合している-which、 - 、および彼らが行うため、彼らは「NoSQLの」グループの中で目立ちます数学的な基盤を持っています。ただし、グラフ製品は、数十年前から廃止されていると見なさているネットワークプラットフォームにかなり似ています(明らかな欠点は、上記のように、データの表現に2つの構造が必要であり、リレーショナルDBMSが情報の原則に従っていることです)。 1つだけ必要です)。

さまざまなNoSQLシステムの作成がSQL DBMSの大部分の起源と比較して年代的に新しい場合でも、NoSQL製品の基礎となっている概念のほとんどは、事実上、プリミティブです。

NoSQLプログラムは、主に次のようなシナリオで使用する必要があります。

  • IT担当者は、関心のあるデータの構造を(たとえば、その複雑さのために)決定する(または適切に決定する)ために必要な技術スキルを欠いている および/または
  • 組織は現在のスタッフに適切な教育とトレーニングを提供する余裕がない、または必要な教育とトレーニングを所有する新しいスタッフを雇うことができない。および/または
  • データの整合性と一貫性が特に重要ではない場合。および/または
  • 関連するデータを、高精度を要求するミッションクリティカルなシステムのデータとブレンドする場合は、期待できません。

ただし、問題のデータの構造が関係するシステムの作成に定義されていない場合でも、1人以上の人が必然的に

  • 前述の構造を発見し、
  • 周囲の「干渉」をすべて破棄し、
  • 適切なデータを収集してリンクする

後に、データベースとアプリケーション(s)がプロジェクトに投資しているすべてのリソースの大半アウトを取得できるようにするために、生産段階に入ってきた、そのデータ構造の描写が課題であることはできませんバイパスすることが、それはすぐに行う必要があります以降。

したがって、NoSQLの方法を採用することは可能ですが、前述のすべての要因を確実に考慮する必要があります。

最も堅牢な方法

対照的に、ビジネス環境の情報要件にリレーショナルな方法で(つまり、一般的なパラダイムを後ろにして)アプローチすると、(1)データを最初から自然な構造で管理できるため、他のデータソースとの統合が容易になります。また、(2)前のセクションで説明したように、堅牢な科学的根拠を持つ単一の機器の操作により、信頼できる新しい構造を生成します。

問題のシナリオの説明によると、関連する組織のニーズの観点から特定の構造をすでに特定しているため、ビジネスドメインの専門家に検証を依頼することをお勧めします。続いて、(i)上記の構造とそれぞれのデータを処理するためにリレーショナルモデルによって提供される構造(関係、制約、および操作)を利用することをお勧めします。現在の要求に対応でき、将来のスケーラビリティを提供する非常に効率的な物理ツールを提供します。


1
プロフェッショナルな方法で非常によく説明されました、私は同じようなことを言おうとしていたのですが、1つまたは2つの段落で考えていました。また、MDCCLにも感謝します。あなたの答えは、nonSQLパラダイムについて自分自身に尋ねていたいくつかの答えを提供し、あなたが言及していることのいくつかについて考えていました。
アラナ

親切な言葉をありがとう。一方で、それは私の喜びです、私は貢献することができてうれしいです。
MDCCL 2017

その良い内容ですが、実際の論理モデルまたはオントロジーの絵は何の価値もあります...
ケンサイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.