5

現在のシステム (C++\CLI および C#) への更新を設計しています。システムは、(近い将来) ~10K デバイスから少量 (~1Mb) のデータを収集します。現在、これらはデバイス データを CSV (テーブル) に保存し、これらすべてを広いフォルダー構造に格納するために使用されます。

データは挿入されるだけです (作成/ファイルへの追加、フォルダーの作成) 更新/削除されることはありません。データ処理は、多くの CSV を外部プログラム (Matlab など) に読み込むことによって行われます。主に統計分析に使用されます。

このデータを MS-SQL データベースに保存するオプションがあります。処理時間 (外部プログラムへの CSV の読み取り) は、最大で数分かかる場合があります。

  • 使用する方法をどのように選択する必要がありますか?
  • いずれかの方法が他の方法よりも大幅に多くのストレージを使用していますか?
  • 大まかに言えば、データベースからの生データの読み取りが CSV の読み取りよりも速くなるのはいつですか? (10ファイル、100ファイル?…)

あなたの答えをいただければ幸いです。長所と短所は大歓迎です。

お時間をいただきありがとうございます。

4

4 に答える 4

3

ある CSV のデータを使用して別の CSV のデータを取得している場合、SQL Server はあなたが思いついたものよりも高速になると思います。ほとんどの場合、SQL Server の方が速いと思いますが、確実なことは言えません。マイクロソフトは、まさにあなたがやろうとしていることを正確に実行する DBMS を作成するために多くのリソースを投入しました。

あなたの説明に基づいて、テーブル データとフォルダー構造に基づいて独自の DBMS をほぼ作成したように思えます。SQL Server を使用するように切り替えた場合、より高速で簡単な多くの領域が見つかると思います。

可能な長所:

  • より高速なアクセス
  • 管理が容易
  • 必要に応じて簡単に拡張できます
  • データ整合性の強化が容易
  • より複雑な関係をより簡単に設計

考えられる短所:

  • 現在のシステムの代わりに SQL Server を使用するには、既存のコードを書き直す必要があります。
  • SQL Server の料金を支払う必要がある場合があります。Express を使用できるかどうかを確認する必要があります。

幸運を!

于 2012-06-21T17:48:37.110 に答える
1

これらの質問を少し順不同で打ってみたいと思います。

大まかに言えば、データベースからの生データの読み取りが CSV の読み取りよりも速くなるのはいつですか? (10ファイル、100ファイル?…)

すぐに。データベースは最適化されており (宿題を済ませていることを前提としています)、信じられないほどの速度でデータを読み取ることができます。

いずれかの方法が他の方法よりも大幅に多くのストレージを使用していますか?

何万ものファイルに遭遇するまでは、おそらく大きな違いはありません。スペースは安いですよね?ただし、大リーグに入ると、DB が占有するスペースがはるかに少ないことに気付くでしょう。

使用する方法をどのように選択する必要がありますか?

素晴らしい質問です。データベース内のすべてのものは、常にスケーラビリティに戻ります。読み取る CSV ファイルが 1 つしかない場合は、問題ありません。DB不要。数十枚でも問題ありません。

データの背後にある DB エンジンが確実に必要になるレベルまでスケールアップする立場に陥る可能性があるようです。疑わしい場合は、データベースを作成することをお勧めします。1 秒で 100 GB 相当のデータを照会できるからです。

于 2012-06-21T18:20:17.430 に答える
0

これは、多くのお客様が私が働いている場所での質問です。既存のインフラストラクチャにフラットファイルが必要な場合、またはSQL Serverを理解できないと思われる場合、または管理するデータが少ないファイルが数個しかない場合は、SQLServerを使用することをお勧めします。

于 2012-06-21T17:53:32.260 に答える
0

ms-sqlデータベースを使用するオプションがある場合は、それを行います。

広いフォルダ構造でデータを維持することは決して良い考えではありません。データを読み取るには、いくつかのファイルを読み取る必要があります。これらは、ディスクのどこにでも保存できます。file-io時間はかなり長くなります。本番データベースであるSQLサーバーでは、これらの問題はすでに解決されています。

ここで車輪の再発明をしています。これは、foxproがデータを管理する方法です。テーブルごとに1つのファイルです。実際にデータベースサーバーを作成しているのでない限り、通常は実績のあるテクノロジを使用することをお勧めします。

ここには検定統計量はありませんが、大量のデータを処理している場合、複数のファイルの読み取りはほとんどの場合データベースよりも遅くなります。約1万台のデバイスを考えると、標準データベースの使用を検討する必要があります。

于 2012-06-21T17:57:02.837 に答える