FileTable 機能は、Windows ファイル名前空間のサポートと Windows アプリケーションとの互換性を、SQL Server に格納されているファイル データに提供します。 FileTable を使用すると、アプリケーションはそのストレージとデータ管理コンポーネントを統合し、構造化されていないデータとメタデータに対する統合された SQL Server サービス (フルテキスト検索やセマンティック検索を含む) を提供します。
言い換えると、ファイルとドキュメントは、FileTables と呼ばれる SQL Server の特殊なテーブルに格納できますが、クライアント アプリケーションに変更を加えることなく、ファイル システムに格納されているかのように Windows アプリケーションからアクセスできます。
FileTable 機能は、SQL Server FILESTREAM テクノロジに基づいています。 FILESTREAM の詳細については、 FILESTREAM (SQL Server) に関するページを参照してください。
FileTable 機能の利点
FileTable 機能の目標は次のとおりです。
SQL Server データベース内に格納されているファイル データに対する Windows API の互換性。 Windows API の互換性には、次のものが含まれます。
FILESTREAM データに対する非トランザクション ストリーミング アクセスとインプレース更新。
ディレクトリとファイルの階層型名前空間。
作成日や変更日などのファイル属性のストレージ。
Windows ファイルおよびディレクトリ管理 API のサポート。
FILESTREAM およびファイル属性データに対する管理ツール、サービス、リレーショナル クエリ機能など、他の SQL Server 機能との互換性。
したがって、FileTable は、ファイル サーバー上のファイルとして現在存在している非構造化データのストレージと管理に対する SQL Server の使用に対する重要な障壁を取り除きます。 企業は、このデータをファイル サーバーから FileTable に移動して、SQL Server によって提供される統合管理とサービスを利用できます。 同時に、このデータをファイル システム内のファイルとして表示する既存の Windows アプリケーションの Windows アプリケーションの互換性を維持できます。
FileTable とは
SQL Server では、Windows API の互換性と非トランザクション アクセスを使用して、データベース内 のファイルとディレクトリのストレージを必要とするアプリケーション用の特別なファイル テーブル (FileTable とも呼ばれます) が提供されます。 FileTable は、FILESTREAM データ、およびファイルおよびディレクトリ階層情報とファイル属性を格納する定義済みのスキーマを持つ特殊なユーザー テーブルです。
FileTable には、次の機能があります。
FileTable は、ディレクトリとファイルの階層を表します。 ディレクトリと含まれるファイルの両方について、その階層内のすべてのノードに関連するデータが格納されます。 この階層は、FileTable の作成時に指定するルート ディレクトリから始まります。
FileTable 内のすべての行は、ファイルまたはディレクトリを表します。
各行には、次の項目が含まれています。 FileTable のスキーマの詳細については、「 FileTable スキーマ」を参照してください。
ストリーム データのfile_stream 列と stream_id (GUID) 識別子。 ( ディレクトリのfile_stream 列は NULL です)。
ファイルおよびディレクトリの階層を表現し維持するための、path_locator 列と parent_path_locator 列の両方。
ファイル I/O API で役立つ、作成日や変更日などの 10 個のファイル属性。
ファイルとドキュメントに対するフルテキスト検索とセマンティック検索をサポートする型列。
FileTable では、ファイル名前空間のセマンティクスを維持するために、特定のシステム定義の制約とトリガーが適用されます。
データベースが非トランザクション アクセス用に構成されている場合、FileTable で表されるファイル階層とディレクトリ階層は、SQL Server インスタンス用に構成された FILESTREAM 共有の下に公開されます。 これにより、Windows アプリケーションのファイル システム アクセスが提供されます。
FileTable のその他の特性には、次のようなものがあります。
FileTable に格納されているファイルとディレクトリのデータは、Windows API ベースのアプリケーションの非トランザクション ファイル アクセスのために、Windows 共有を介して公開されます。 Windows アプリケーションの場合、これはファイルとディレクトリとの通常の共有のように見えます。 アプリケーションでは、Windows API の豊富なセットを使用して、この共有の下にあるファイルとディレクトリを管理できます。
共有を介して表示されるディレクトリ階層は、FileTable 内で維持される純粋に論理的なディレクトリ構造です。
Windows 共有を介してファイルまたはディレクトリを作成または変更するための呼び出しは、SQL Server コンポーネントによってインターセプトされ、FileTable 内の対応するリレーショナル データに反映されます。
Windows API 操作は本質的に非トランザクションであり、ユーザー トランザクションには関連付けされません。 ただし、通常のテーブルの FILESTREAM 列の場合と同様に、FileTable に格納されている FILESTREAM データへのトランザクション アクセスは完全にサポートされています。
FileTable は、通常の Transact-SQL アクセスを使用して照会および更新することもできます。 また、SQL Server 管理ツールやバックアップなどの機能とも統合されています。
FileTable の使用に関するその他の考慮事項
管理上の考慮事項
FILESTREAM と FileTable について
FileTable は FILESTREAM とは別に構成します。 そのため、非トランザクション アクセスを有効にしたり、FileTable を作成したりしなくても、FILESTREAM 機能を引き続き使用できます。
FileTable を使用する場合を除き、FILESTREAM データへの非トランザクション アクセスはありません。 そのため、非トランザクション アクセスを有効にしても、既存の FILESTREAM 列とアプリケーションの動作は影響を受けません。
FileTable と非トランザクション アクセスについて
データベース レベルで非トランザクション アクセスを有効または無効にすることができます。
データベース レベルで非トランザクション アクセスを構成または微調整するには、無効にするか、読み取り専用または完全な読み取り/書き込みアクセスを有効にします。
FileTable は Memory-Mapped ファイルをサポートしていません
FileTable は、メモリ マップト ファイルをサポートしていません。 メモ帳とペイントは、メモリ マップト ファイルを使用するアプリケーションの 2 つの一般的な例です。 これらのアプリケーションを SQL Server と同じコンピューター上で使用して、FileTable に格納されているファイルを開くことはできません。 ただし、このような状況ではメモリ マッピング機能が使用されないため、リモート コンピューターからこれらのアプリケーションを使用して FileTable に格納されているファイルを開くことができます。
関連タスク
FileTable の前提条件を有効にする
FileTable を作成および使用するための前提条件を有効にする方法について説明します。
FileTable の作成、変更、および削除
新しい FileTable を作成する方法、または既存の FileTable を変更または削除する方法について説明します。
FileTable にファイルを読み込む
FileTable にファイルを読み込む方法またはファイルを移行する方法について説明します。
FileTable のディレクトリとパスを操作する
ファイルが FileTable に格納されるディレクトリ構造について説明します。
Transact-SQL を使用して FileTable にアクセスする
データ操作言語 (DML) コマンド Transact-SQL FileTables を操作する方法について説明します。
File Input-Output API を使用して FileTable にアクセスする
FileTable でのファイル システム I/O のしくみについて説明します。
FileTable の管理
FileTable を管理するための一般的な管理タスクについて説明します。
関連コンテンツ
FileTable スキーマ
FileTable の定義済みスキーマと固定スキーマについて説明します。
FileTable と他の SQL Server 機能との互換性
FileTable が SQL Server の他の機能と連携する方法について説明します。
FileTable DDL、関数、ストアド プロシージャ、およびビュー
FileTable 機能をサポートするために追加または変更された Transact-SQL ステートメントと SQL Server データベース オブジェクトを一覧表示します。