Share via


FileTables (SQL Server)

FileTable 機能は、SQL Server に格納されているファイル データに対して Windows ファイル名前空間のサポートと Windows アプリケーションとの互換性を提供します。 FileTable により、アプリケーションは、ストレージとデータ管理コンポーネントを統合し、非構造化データおよびメタデータに対する統合 SQL Server サービス (フルテキスト検索、セマンティック検索など) を提供できます。

つまり、ファイルおよびドキュメントを FileTable と呼ばれる SQL Server の特殊なテーブルに保存しておき、ファイル システムに格納されているかのように、Windows アプリケーションからこれらのファイルおよびドキュメントにアクセスできるということです。このとき、クライアント アプリケーションに変更を加える必要はありません。

FileTable の機能は、SQL Server の FILESTREAM テクノロジをベースとして構築されています。 FILESTREAM の詳細については、「FILESTREAM (SQL Server)」を参照してください。

このトピックの内容

  • FileTable 機能の利点

  • FileTable とは

  • FileTable の使用に関するその他の考慮事項

    • 管理上の注意点

    • FileTable ではメモリ マップ ファイルはサポートされていません

  • 関連タスク

  • 関連コンテンツ

FileTable 機能の利点

FileTable 機能の目的は、次のとおりです。

  • SQL Server データベース内に格納されたファイル データに対する Windows API の互換性。 Windows API の互換性は、次のとおりです。

    • 非トランザクション ストリーム アクセスと FILESTREAM データのインプレース更新。

    • ディレクトリおよびファイルの階層構造の名前空間。

    • 作成日や更新日などのファイル属性の保管。

    • Windows ファイルおよびディレクトリ管理 API のサポート。

  • FILESTREAM およびファイル属性データに対する管理ツール、サービス、リレーショナル クエリなど、他の SQL Server 機能との互換性。

このようにして、FileTable は、現在ファイル サーバーにファイルとして格納されている非構造化データを SQL Server で保管および管理するうえでの大きな障壁を取り除きます。 企業は、このデータをファイル サーバーから FileTable に移動して、SQL Server が提供する統合管理およびサービスを活用できます。 それと同時に、ファイル システムでこのデータをファイルとして認識する既存の 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 アクセスによってクエリおよび更新を実行することもできます。 また、FileTable は、SQL Server 管理ツールや、バックアップなどの機能と統合されています。

[先頭に戻る]

FileTable の使用に関するその他の考慮事項

管理上の注意点

FILESTREAM と FileTable について

  • FileTable は FILESTREAM とは別に構成します。 したがって、非トランザクション アクセスの有効化や FileTable の作成を行うことなく、FILESTREAM 機能を使用し続けることができます。

  • FileTable を介した場合を除き、FILESTREAM データへの非トランザクション アクセスは存在しません。 そのため、非トランザクション アクセスを有効にしても、既存の FILESTREAM 列およびアプリケーションの動作は影響を受けません。

FileTable と非トランザクション アクセスについて

  • 非トランザクション アクセスは、データベース レベルで有効または無効にできます。

  • 非トランザクション アクセスをオフにしたり、読み取り専用または完全な読み取り/書き込みアクセスを有効にしたりすることによって、データベース レベルで非トランザクション アクセスを構成または調整することができます。

[先頭に戻る]

FileTable ではメモリ マップ ファイルはサポートされていません

FileTable ではメモリ マップ ファイルはサポートされていません。 メモ帳とペイントの 2 つは、メモリ マップ ファイルを使用するアプリケーションの一般的な例です。 これらのアプリケーションを SQL Server と同じコンピューターで使用して、FileTable に保存されているファイルを開くことはできません。 ただし、これらのアプリケーションをリモート コンピューターで使用すると、メモリ マッピング機能が使用されないため、FileTable に保存されているファイルを開くことができます。

[先頭に戻る]

関連タスク

[先頭に戻る]

関連コンテンツ

[先頭に戻る]