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를 사용하는 데 상당한 장벽을 제거합니다. 엔터프라이즈는 SQL Server에서 제공하는 통합 관리 및 서비스를 활용하기 위해 파일 서버에서 FileTable로 이 데이터를 이동할 수 있습니다. 동시에 이 데이터를 파일 시스템의 파일로 보는 기존 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 데이터에 대한 트랜잭션 액세스는 완전히 지원됩니다.
일반적인 Transact-SQL 액세스를 통해 FileTable을 쿼리하고 업데이트할 수도 있습니다. 또한 SQL Server 관리 도구 및 백업과 같은 기능과 통합됩니다.
FileTable 사용에 대한 추가 고려 사항
관리 고려 사항
FILESTREAM 및 FileTable 정보
FILESTREAM과 별도로 FileTable을 구성합니다. 따라서 트랜잭션이 아닌 액세스를 사용하거나 FileTable을 만들지 않고 FILESTREAM 기능을 계속 사용할 수 있습니다.
FILESTREAM 데이터에 대한 비트랜잭션이 아닌 액세스는 FileTable을 통해서만 가능합니다. 따라서 트랜잭션이 아닌 액세스를 사용하도록 설정하면 기존 FILESTREAM 열 및 애플리케이션의 동작은 영향을 받지 않습니다.
FileTable 및 비 트랜잭션 액세스 정보
데이터베이스 수준에서 비거래 액세스를 활성화하거나 비활성화할 수 있습니다.
데이터베이스 수준을 해제하거나 읽기 전용 또는 전체 읽기/쓰기 액세스를 사용하도록 설정하여 비 트랜잭션 액세스를 구성하거나 미세 조정할 수 있습니다.
FileTable은 Memory-Mapped 파일을 지원하지 않습니다.
FileTable은 메모리 매핑 파일을 지원하지 않습니다. 메모장과 그림판은 메모리 매핑된 파일을 사용하는 애플리케이션의 두 가지 일반적인 예입니다. SQL Server와 동일한 컴퓨터에서 이러한 애플리케이션을 사용하여 FileTable에 저장된 파일을 열 수 없습니다. 그러나 원격 컴퓨터에서 이러한 애플리케이션을 사용하여 FileTable에 저장된 파일을 열 수 있습니다. 이러한 상황에서는 메모리 매핑 기능이 사용되지 않기 때문입니다.
관련 작업
FileTable에 대한 필수 구성 요소 사용
FileTable을 만들고 사용하기 위한 필수 구성 요소를 사용하도록 설정하는 방법을 설명합니다.
FileTable 만들기, 변경 및 삭제
새 FileTable을 만들거나 기존 FileTable을 변경하거나 삭제하는 방법을 설명합니다.
FileTable로 파일 로드
파일을 FileTable로 로드 또는 마이그레이션하는 방법에 대해 설명합니다.
FileTable에서 디렉터리 및 경로 작업
파일이 FileTable에 저장되는 디렉터리 구조에 대해 설명합니다.
Transact-SQL을 사용하여 FileTable 액세스
Transact-SQL DML(데이터 조작 언어) 명령이 FileTables에서 작동하는 방법을 설명합니다.
파일 입출력 API를 사용하여 FileTable에 액세스
FileTable에서 파일 시스템 I/O가 작동하는 방식에 대해 설명합니다.
FileTable 관리
FileTable을 관리하는 데 사용되는 일반적인 관리 태스크에 대해 설명합니다.
관련 내용
FileTable 스키마
FileTable의 미리 정의되고 고정된 스키마에 대해 설명합니다.
FileTable과 기타 SQL Server 기능 간 호환성
FileTable이 SQL Server의 다른 기능과 작동하는 방법을 설명합니다.
FileTable DDL, 함수, 저장 프로시저 및 뷰
FileTable 기능을 지원하기 위해 추가되거나 변경된 Transact-SQL 문 및 SQL Server 데이터베이스 개체를 나열합니다.