web-dev-qa-db-ja.com

SQL ServerのFILETABLEは、大きなファイル(10 GBを超える)の格納に適していますか?

ラボ用のプロジェクトがあります。何年も研究のためにラボデータ(生データおよび関連情報)を保存するための要件。

したがって、データは何年も保存する必要がありますが、データが非常に大きいため、すべての生データは10 GBを超えます。生データをSQL ServerのFILETABLEに保存し、関連情報を標準SQL Serverテーブル、数か月または数年後、データベースのサイズが非常に大きくなるため、一部の履歴データをデータベースから移動する必要があります。

(別のハードディスク上の)ファイルをfiletableのFILESTREAMファイルグループに追加して(生データを格納するために)使用できるかもしれませんが、SQL Serverの保守には適さないと思います。生データと関連情報の一貫性を保つ必要があります。

過去の生データを保存するためにテープを使用することを検討しました。ハードディスクを使用して最新の生データを保存し、テープを使用して履歴生データを保存したいと考えています。履歴データをテープに移動するときは、その移動をログテーブルに記録します。これにより、履歴データがどこに移動されたかがわかり、できるだけ早くそれを取得できます。

良いアドバイスはありますか:

  1. 生データと関連情報を保存する方法は?
  2. filetableはこのシナリオに適していますか?
  3. このシナリオのためのより良い解決策はありますか?
6
huoxudong125

FILETABLEデータはSQL ServerのFILESTREAM機能に基づいて構築されており、Windows Serverファイルシステムを使用して、サーバー自体のファイルシステム上の個別のNTFSファイルにVARBINARY(MAX)データを格納します。このデータはデータベースに保存されないため、データベースファイルのサイズにはこれらの10 GB以上のファイルは含まれません。データベースのバックアップには、デフォルトでデータが含まれます。部分的なバックアップを使用してファイルストリームファイルグループを除外することで、ファイルストリームデータのSQL Serverバックアップを防止できます。 FilestreamデータはSQL Serverバッファーを使用してキャッシュされず、代わりにオペレーティングシステムのファイルキャッシュが使用されます。

Win32ファイルAPIを使用して関連するデータを変更することで得られる効率が損なわれるため、AGAINSTを使用してFILESTREAMを使用して平均1MB未満のファイルを保存することをお勧めします。 FILESTREAMファイルの最大ファイルサイズは、オペレーティングシステムの最大ファイルサイズによってのみ制限されます。これは、現在のバージョンのNTFSでは、すべての実用的な目的で無制限(16エクサバイト)です。仕様上、SQL ServerはFILESTREAMオブジェクトのサイズに制限を設けていません。

SQL Serverに格納する予定のメタデータがFILESTREAMに格納されているオブジェクトデータとトランザクション的に一貫している必要がある場合は、FILETABLE/FILESTREAMを使用する必要があります。これらの10 GB以上のファイルに格納されているオブジェクトデータがSQL Serverに格納されているメタデータと論理的に関連していない場合、FILESTREAMを使用すると逆効果になると思います。

要するに、それはあなたの正確なユースケースに依存します。 FILETABLEを使用したい理由に関する質問に詳細を追加します。

MicrosoftのFILESTREAMドキュメント: http://technet.Microsoft.com/en-us/library/gg471497.aspx

[編集]

X線データをキャプチャするために使用されるマシンパラメータと共にバイナリX線データを保存するという要件を考慮すると、FILESTREAMの正確なユースケースのように思えます。ただし、TAPEにアーカイブする代わりに、 DataCore SANSymphony-V Software SAN with multiple storage tiers。SANSymphony-Vを使用すると、簡単かつ確実に拡張できます。あなたのSANメインのデータベースに15k RPMエンタープライズドライブ(おそらくSSD層を使用)と、標準の7200 RPM SATAドライブで構成された層をストレージ用に構成した層を使用した安価な商品のWindowsベースサーバーX線データ。SANSymphony-VはSQL Serverの認定を受けており、複雑なデータ管理システムなしで新しいデータと古いデータの両方へのアクセスを維持する比較的安価な方法を提供します。災害復旧と高可用性が懸念される場合、 SANSymphony-V全体SAN=オンサイトでもオフサイトでも、最大約100kmの距離でミラーリングできます。

わかりやすくするために、私はDataCoreとは一切関係ありません。単にそれらのデザインが好きです。

9
Max Vernon

私はノーと言うでしょう。大量の問題に遭遇し、時間の経過とともに多くのコスト(ライセンス)に遭遇します。

理にかなっている場合、私はすべてSQLでバイナリデータを格納するのはプロですが、10gファイルは、自分が使い慣れたものよりもはるかに大きくなります。

1
TomTom

いいえ、生ファイルを大量のデータを保存するために最適化されたシステム、つまりファイルシステムに配置する必要があります。メタデータのみがデータベースに存在する必要があります。整合性を確保するために、システム管理者以外のアプリケーションだけがファイルにアクセスできるようにしてください。

0
Twinkles