FileTable(SQL Server)FileTables (SQL Server)

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse 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.

    파일 서버에 현재 파일로 존재하는 구조화되지 않은 데이터를 저장하고 관리하는 데 SQL ServerSQL Server 를 사용하려면 여러 가지 문제를 해결해야 했지만 FileTable을 사용하면 이러한 문제가 상당히 해결됩니다.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 응용 프로그램을 위해 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. FileTable은 이 계층 구조의 모든 노드(계층 구조에 포함된 디렉터리와 파일의 노드)와 관련된 데이터를 저장합니다.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 Schema를 참조하십시오.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_locatorparent_path_locatorBoth 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.

    • 파일 및 문서에 대한 전체 텍스트 검색과 의미 체계 검색을 지원하는 Type 열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.

  • 일반적인 Transact-SQLTransact-SQL 액세스를 통해 FileTable을 쿼리하고 업데이트할 수도 있습니다.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.

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. 메모장과 그림판이 메모리 매핑된 파일을 사용하는 응용 프로그램 중 가장 일반적인 두 가지 예입니다.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
FileTable에서 Transact-SQL DML(데이터 조작 언어) 명령이 작동하는 방식에 대해 설명합니다.Describes how Transact-SQL data manipulation language (DML) commands work with FileTables.

파일 입/출력 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 SchemaFileTable 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.