FileTables (SQL Server)FileTables (SQL Server)

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

FileTable 機能は、 SQL ServerSQL Serverに格納されているファイル データに対して Windows ファイル名前空間のサポートと Windows アプリケーションとの互換性を提供します。The FileTable feature brings support for the Windows file namespace and compatibility with Windows applications to the file data stored in SQL ServerSQL Server. FileTable により、アプリケーションは、ストレージとデータ管理コンポーネントを統合し、非構造化データおよびメタデータに対する統合 SQL ServerSQL Server サービス (フルテキスト検索、セマンティック検索など) を提供できます。FileTable lets an application integrate its storage and data management components, and provides integrated SQL ServerSQL Server services - including full-text search and semantic search - over unstructured data and metadata.

つまり、ファイルおよびドキュメントを FileTable と呼ばれる SQL ServerSQL Server の特殊なテーブルに保存しておき、ファイル システムに格納されているかのように、Windows アプリケーションからこれらのファイルおよびドキュメントにアクセスできるということです。このとき、クライアント アプリケーションに変更を加える必要はありません。In other words, you can store files and documents in special tables in SQL ServerSQL Server called FileTables, but access them from Windows applications as if they were stored in the file system, without making any changes to your client applications.

FileTable の機能は、SQL ServerSQL Server の FILESTREAM テクノロジをベースとして構築されています。The FileTable feature builds on top of SQL ServerSQL Server FILESTREAM technology. FILESTREAM の詳細については、「FILESTREAM (SQL Server)」を参照してください。To learn more about FILESTREAM, see FILESTREAM (SQL Server).

FileTable 機能の利点Benefits of the FileTable Feature

FileTable 機能の目的は、次のとおりです。The goals of the FileTable feature include the following:

  • SQL ServerSQL Server データベース内に格納されたファイル データに対する Windows API の互換性。Windows API compatibility for file data stored within a SQL ServerSQL Server database. Windows API の互換性は、次のとおりです。Windows API compatibility includes the following:

    • 非トランザクション ストリーム アクセスと FILESTREAM データのインプレース更新。Non-transactional streaming access and in-place updates to FILESTREAM data.

    • ディレクトリおよびファイルの階層構造の名前空間。A hierarchical namespace of directories and files.

    • 作成日や更新日などのファイル属性の保管。Storage of file attributes, such as created date and modified date.

    • Windows ファイルおよびディレクトリ管理 API のサポート。Support for Windows file and directory management APIs.

  • FILESTREAM およびファイル属性データに対する管理ツール、サービス、リレーショナル クエリなど、他の SQL ServerSQL Server 機能との互換性。Compatibility with other SQL ServerSQL Server features including management tools, services, and relational query capabilities over FILESTREAM and file attribute data.

このようにして、FileTable は、現在ファイル サーバーにファイルとして格納されている非構造化データを SQL ServerSQL Server で保管および管理するうえでの大きな障壁を取り除きます。Thus FileTables remove a significant barrier to the use of SQL ServerSQL Server for the storage and management of unstructured data that is currently residing as files on file servers. 企業は、このデータをファイル サーバーから FileTable に移動して、 SQL ServerSQL Serverが提供する統合管理およびサービスを活用できます。Enterprises can move this data from file servers into FileTables to take advantage of integrated administration and services provided by SQL ServerSQL Server. それと同時に、ファイル システムでこのデータをファイルとして認識する既存の Windows アプリケーションとの互換性を維持することもできます。At the same time, they can maintain Windows application compatibility for their existing Windows applications that see this data as files in the file system.

FileTable とはWhat Is a FileTable?

SQL ServerSQL Server は、データベース内のファイルとディレクトリのストレージを必要とするアプリケーションに対して、Windows API の互換性および非トランザクション アクセスによって、特殊な ファイルのテーブル( FileTableと呼ばれます) を提供します。provides a special table of files, also referred to as a FileTable, for applications that require file and directory storage in the database, with Windows API compatibility and non-transactional access. FileTable は、FILESTREAM データ、ファイルとディレクトリの階層の情報、およびファイル属性を保存するための定義済みのスキーマを持つ、特殊なユーザー テーブルです。A FileTable is a specialized user table with a pre-defined schema that stores FILESTREAM data, as well as file and directory hierarchy information and file attributes.

FileTable には、次の機能が含まれています。A FileTable provides the following functionality:

  • FileTable は、ディレクトリおよびファイルの階層を表します。A FileTable represents a hierarchy of directories and files. 含まれるディレクトリおよびファイルの両方について、その階層のすべてのノードに関連するデータを格納します。It stores data related to all the nodes in that hierarchy, for both directories and the files they contain. この階層は、FileTable を作成するときに指定するルート ディレクトリから始まります。This hierarchy starts from a root directory that you specify when you create the FileTable.

  • FileTable のどの行も、ファイルまたはディレクトリを表します。Every row in a FileTable represents a file or a directory.

  • 各行には次のアイテムが含まれます。Every row contains the following items. FileTable のスキーマの詳細については、「 FileTable スキーマ」を参照してください。For more information about the schema of a FileTable, see FileTable Schema.

    • ストリーム データ用の file_stream 列、および stream_id (GUID) 識別子A file_stream column for stream data and a stream_id (GUID) identifier. ( file_stream 列はディレクトリでは NULL です)。(The file_stream column is NULL for a directory.)

    • 現在のアイテム (ファイルまたはディレクトリ) 、およびディレクトリ階層を表して保持するための、path_locator 列と parent_path_locator 列の両方。Both path_locator and parent_path_locator columns for representing and maintaining the current item (file or directory) and directory hierarchy.

    • ファイル I/O API で便利な、作成日や更新日などの 10 のファイル属性。10 file attributes such as created date and modified date that are useful with file I/O APIs.

    • ファイルやドキュメント全体に対するフルテキスト検索およびセマンティック検索をサポートする型列。A type column that supports full-text search and semantic search over files and documents.

  • FileTable は、ファイル名前空間のセマンティクスを維持するため、特定のシステム定義の制約とトリガーを適用します。A FileTable enforces certain system-defined constraints and triggers to maintain file namespace semantics.

  • 非トランザクション アクセスでデータベースが構成されている場合、FileTable で表されるファイルおよびディレクトリの階層は、 SQL ServerSQL Server インスタンスに構成された FILESTREAM 共有の下で公開されます。When the database is configured for non-transactional access, the file and directory hierarchy represented in the FileTable is exposed under the FILESTREAM share configured for the SQL ServerSQL Server instance. これにより、Windows アプリケーションはファイル システムにアクセスできるようになります。This provides file system access for Windows applications.

FileTable の他の特性は、次のとおりです。Some additional characteristics of FileTables include the following:

  • FileTable に格納されているファイルおよびディレクトリ データは、Windows API ベースのアプリケーションが非トランザクション ファイル アクセスを行うための Windows 共有によって公開されます。The file and directory data stored in a FileTable is exposed through a Windows share for non-transactional file access for Windows API based applications. Windows アプリケーションでは、これは通常のファイルおよびディレクトリの共有のように見えます。For a Windows application, this looks like a normal share with its files and directories. アプリケーションは、豊富な Windows API のセットを使用して、この共有のファイルおよびディレクトリを管理できます。Applications can use a rich set of Windows APIs to manage the files and directories under this share.

  • 共有によって公開されるディレクトリ階層は、FileTable 内で保持されている、純粋に論理的なディレクトリ構造です。The directory hierarchy surfaced through the share is a purely logical directory structure that is maintained within the FileTable.

  • Windows 共有によるファイルまたはディレクトリの作成または変更の呼び出しは、 SQL ServerSQL Server コンポーネントによってインターセプトされ、FileTable の対応するリレーショナル データに影響します。Calls to create or change a file or directory through the Windows share are intercepted by a SQL ServerSQL Server component and reflected in the corresponding relational data in the FileTable.

  • Windows API の操作は、本質的には非トランザクションであり、ユーザー トランザクションに関連しません。Windows API operations are non-transactional in nature, and are not associated with user transactions. ただし、通常のテーブルの FILESTREAM 列の場合のように、FileTable に格納されている FILESTREAM データへのトランザクション アクセスは、完全にサポートされます。However, transactional access to FILESTREAM data stored in a FileTable is fully supported, as is the case for any FILESTREAM column in a regular table.

  • FileTable に対して、通常の Transact-SQLTransact-SQL アクセスによってクエリおよび更新を実行することもできます。FileTables can also be queried and updated through normal Transact-SQLTransact-SQL access. また、FileTable は、 SQL ServerSQL Server 管理ツールや、バックアップなどの機能と統合されています。They are also integrated with SQL ServerSQL Server management tools, and features such as backup.

  • dbmail を介して電子メールの要求を送信し、filestream ディレクトリ内のファイルを添付することができません (そのため filetable 内のファイルも添付できません)。You are unable to send an email request through dbmail and attach a file located in a filestream directory (and therefore filetable). ファイル システム フィルター ドライバーの RsFx0420 は、ファイルストリーム フォルダーに出入りする着信 I/O 要求を検査します。The filesystem filter driver RsFx0420 inspects incoming I/O requests going in and out of the filestream folder. SQLServer 実行可能ファイルと Filestream コードのいずれの要求でもない場合、その要求は明示的に許可されません。If the request is not both from the SQLServer executable and Filestream code, they are explicitly disallowed.

FileTable の使用に関するその他の考慮事項Additional Considerations for Using FileTables

管理上の注意点Administrative Considerations

FILESTREAM と FileTable についてAbout FILESTREAM and FileTables

  • FileTable は FILESTREAM とは別に構成します。You configure FileTables separately from FILESTREAM. したがって、非トランザクション アクセスの有効化や FileTable の作成を行うことなく、FILESTREAM 機能を使用し続けることができます。Therefore you can continue to use the FILESTREAM feature without enabling non-transactional access or creating FileTables.

  • FileTable を介した場合を除き、FILESTREAM データへの非トランザクション アクセスは存在しません。There is no non-transactional access to FILESTREAM data except through FileTables. そのため、非トランザクション アクセスを有効にしても、既存の FILESTREAM 列およびアプリケーションの動作は影響を受けません。Therefore, when you enable non-transactional access, the behavior of existing FILESTREAM columns and applications is not affected.

FileTable と非トランザクション アクセスについてAbout FileTables and non-transactional access

  • 非トランザクション アクセスは、データベース レベルで有効または無効にできます。You can enable or disable non-transactional access at the database level.

  • 非トランザクション アクセスをオフにしたり、読み取り専用または完全な読み取り/書き込みアクセスを有効にしたりすることによって、データベース レベルで非トランザクション アクセスを構成または調整することができます。You can configure or fine-tune non-transactional access at the database level by turning it off, or by enabling read only or full read/write access.

FileTable ではメモリ マップ ファイルはサポートされていませんFileTables Do Not Support Memory-Mapped Files

FileTable ではメモリ マップ ファイルはサポートされていません。FileTables do not support memory-mapped files. メモ帳とペイントの 2 つは、メモリ マップ ファイルを使用するアプリケーションの一般的な例です。Notepad and Paint are two common examples of applications that use memory-mapped files. これらのアプリケーションを SQL ServerSQL Server と同じコンピューターで使用して、FileTable に保存されているファイルを開くことはできません。You cannot use these applications on the same computer as SQL ServerSQL Server to open files that are stored in a FileTable. ただし、これらのアプリケーションをリモート コンピューターで使用すると、メモリ マッピング機能が使用されないため、FileTable に保存されているファイルを開くことができます。However you can use these applications from a remote computer to open files that are stored in a FileTable, because in these circumstances the memory-mapping feature is not used.

関連タスクRelated Tasks

FileTable の前提条件の有効化Enable the Prerequisites for FileTable
FileTable を作成および使用するための前提条件を有効にする方法について説明します。Describes how to enable the prerequisites for creating and using FileTables.

FileTable の作成、変更、および削除Create, Alter, and Drop FileTables
新しい FileTable の作成や、既存の FileTable の変更または削除を行う方法について説明します。Describes how to create a new FileTable, or alter or drop an existing FileTable.

FileTable へのファイルの読み込みLoad Files into FileTables
FileTable にファイルを読み込むまたは移行する方法について説明します。Describes how to load or migrate files into FileTables.

FileTable 内のディレクトリとパスの操作Work with Directories and Paths in FileTables
FileTable 内でファイルが格納されるディレクトリ構造について説明します。Describes the directory structure in which the files are stored in FileTables.

Transact SQL を使用した FileTable へのアクセスAccess FileTables with Transact-SQL
Transact SQL データ操作言語 (DML) コマンドでどのように FileTable が操作されるかについて説明します。Describes how Transact-SQL data manipulation language (DML) commands work with FileTables.

ファイル I/O API を使用した FileTable へのアクセスAccess FileTables with File Input-Output APIs
FileTable でファイル システム I/O が動作するしくみについて説明します。Describes how file system I/O works on a FileTable.

FileTable の管理Manage FileTables
FileTable を管理するための一般的な管理タスクについて説明します。Describes common administrative tasks for managing FileTables.

関連コンテンツRelated Content

FileTable スキーマFileTable Schema
FileTable の定義済みスキーマおよび固定スキーマについて説明します。Describes the pre-defined and fixed schema of a FileTable.

FileTable と他の SQL Server 機能の互換性FileTable Compatibility with Other SQL Server Features
FileTable と他の SQL Server 機能との連携について説明します。Describes how FileTables work with other features of SQL Server.

FileTable DDL、関数、ストアド プロシージャ、およびビューFileTable DDL, Functions, Stored Procedures, and Views
FileTable 機能をサポートするために追加または変更された Transact-SQLTransact-SQL ステートメントおよび SQL ServerSQL Server データベース オブジェクトの一覧を示します。Lists the Transact-SQLTransact-SQL statements and the SQL ServerSQL Server database objects that have been added or changed to support the FileTable feature.

参照See Also

Filestream および FileTable の動的管理ビュー (Transact-SQL)Filestream and FileTable Dynamic Management Views (Transact-SQL)
Filestream および FileTable のカタログ ビュー (Transact-SQL)Filestream and FileTable Catalog Views (Transact-SQL)
Filestream および FileTable システム ストアド プロシージャ (Transact-SQL)Filestream and FileTable System Stored Procedures (Transact-SQL)