다음을 통해 공유


FileTables(SQL Server)

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_locatorparent_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 데이터베이스 개체를 나열합니다.