FileTables (SQL Server)

Gilt für:SQL Server

Das Feature "FileTable" unterstützt den Windows-Dateinamespace und die Kompatibilität mit Windows-Anwendungen mit den in SQL Server gespeicherten Dateidaten. Mit der Dateitabelle können das Speichersystem und die Datenverwaltungskomponenten einer Anwendung integriert werden. Zudem werden integrierte SQL Server-Dienste (z. B. Volltextsuche und semantische Suche) über unstrukturierte Daten und Metadaten bereitgestellt.

Mit anderen Worten, Sie können Dateien und Dokumente in speziellen Tabellen in SQL Server namens FileTables speichern, aber von Windows-Anwendungen darauf zugreifen, als ob sie im Dateisystem gespeichert wurden, ohne Änderungen an Ihren Clientanwendungen vorzunehmen.

Das FileTable-Feature basiert auf der SQL Server FILESTREAM-Technologie. Weitere Informationen zu FILESTREAM finden Sie unter FILESTREAM (SQL Server).

Vorteile des FileTable-Features

Die Ziele der FileTable-Funktion umfassen Folgendes:

  • Windows-API-Kompatibilität für Dateidaten, die in einer SQL Server-Datenbank gespeichert sind. Die Windows-API-Kompatibilität schließt Folgendes ein:

    • Nicht transaktionaler Streamingzugriff und direkte Updates an FILESTREAM-Daten.

    • Ein hierarchischer Namespace von Verzeichnissen und Dateien.

    • Speichern von Dateiattributen, z. B. Erstellungsdatum und Änderungsdatum.

    • Unterstützung von APIs für die Windows-Datei- und Verzeichnisverwaltung.

  • Kompatibilität mit anderen SQL Server-Features, einschließlich Verwaltungstools, Diensten und relationalen Abfragefunktionen über FILESTREAM- und Datei-Attributdaten.

Daher entfernen FileTables eine erhebliche Barriere für die Verwendung von SQL Server für die Speicherung und Verwaltung von unstrukturierten Daten, die sich derzeit als Dateien auf Dateiservern befinden. Unternehmen können diese Daten von Dateiservern in FileTables verschieben, um die von SQL Server bereitgestellten integrierten Administrations- und Dienste zu nutzen. Gleichzeitig kann die Windows-Anwendungskompatibilität für vorhandene Windows-Anwendungen aufrechterhalten werden, die diese Daten als Dateien im Dateisystem betrachten.

Was ist eine FileTable?

SQL Server stellt eine spezielle Tabelle mit Dateien bereit, die auch als FileTable bezeichnet werden, für Anwendungen, die Datei- und Verzeichnisspeicher in der Datenbank erfordern, mit Windows-API-Kompatibilität und nichttransaktionalem Zugriff. Eine FileTable ist eine spezielle Benutzertabelle mit einem vordefinierten Schema, das FILESTREAM-Daten sowie Datei- und Verzeichnishierarchieinformationen und Dateiattribute speichert.

Eine FileTable bietet die folgende Funktionalität:

  • Eine FileTable stellt eine Hierarchie von Verzeichnissen und Dateien dar. Sie speichert Daten zu allen Knoten in dieser Hierarchie, sowohl für Verzeichnisse als auch für die Dateien, die sie enthält. Diese Hierarchie beginnt bei einem Stammverzeichnis, das Sie angeben, wenn Sie die FileTable erstellen.

  • Jede Zeile in einer FileTable stellt eine Datei oder ein Verzeichnis dar.

  • Jede Zeile enthält die im Folgenden aufgeführten Elemente. Weitere Informationen zum Schema einer FileTable finden Sie unter FileTable Schema.

    • Eine file_stream Spalte für Datenstromdaten und einen stream_id GUID-Bezeichner. (Die file_stream Spalte ist NULL für ein Verzeichnis.)

    • parent_path_locator Sowohl als auch path_locator Spalten zum Darstellen und Standard Beibehalten des aktuellen Elements (Datei oder Verzeichnis) und der Verzeichnishierarchie.

    • 10 Dateiattribute, z. B. Erstellungsdatum und Änderungsdatum, die von Datei-E/A-APIs benötigt werden.

    • Eine Typspalte, die die Volltextsuche und die semantische Suche für Dateien und Dokumente unterstützt.

  • Eine FileTable erzwingt bestimmte systemdefinierte Einschränkungen und Trigger, um die Dateinamespacesemantik beizubehalten.

  • Wenn die Datenbank für nicht transaktionalen Zugriff konfiguriert ist, wird die in der FileTable dargestellte Datei- und Verzeichnishierarchie unter der fileSTREAM-Freigabe verfügbar gemacht, die für die SQL Server-Instanz konfiguriert ist. Dadurch wird der Dateisystemzugriff für Windows-Anwendungen bereitgestellt.

Einige zusätzliche Merkmale von FileTables

  • Die Datei- und Verzeichnisdaten, die in einer FileTable gespeichert sind, werden durch eine Windows-Freigabe für nicht transaktionalen Dateizugriff für Windows-API-basierte Anwendungen verfügbar gemacht. Für eine Windows-Anwendung sieht dies wie eine normale Freigabe mit Dateien und Verzeichnissen aus. Anwendungen können die Dateien und die Verzeichnisse in dieser Freigabe mithilfe eines umfangreichen Satzes von Windows-APIs verwalten.

  • Bei der Verzeichnishierarchie, die über die Freigabe angegeben wird, handelt es sich um eine rein logische Verzeichnisstruktur, die innerhalb der FileTable beibehalten wird.

  • Aufrufe zum Erstellen oder Ändern einer Datei oder eines Verzeichnisses über die Windows-Freigabe werden von einer SQL Server-Komponente abgefangen und in den entsprechenden relationalen Daten in der FileTable widergespiegelt.

  • Windows-API-Vorgänge sind nicht transaktional und sind nicht mit Benutzertransaktionen verknüpft. Transaktionszugriff auf FILESTREAM-Daten, die in einer FileTable gespeichert sind, wird jedoch vollständig unterstützt, wie dies auch bei FILESTREAM-Spalten in einer regulären Tabelle der Fall ist. Wenn Sie Dateien häufig aus mehreren Verbindungen ändern und einen ordnungsgemäßen Dateischutz gewährleisten müssen, verwenden Sie den transaktionsgebundenen FILESTREAM-Zugriff über OpenSqlFilestream(), anstatt exklusive Dateisperren auf Windows-API-Ebene.

  • FileTables können auch über normalen Transact-SQL-Zugriff abgefragt und aktualisiert werden. Sie sind auch in SQL Server-Verwaltungstools und Features wie Sicherung integriert.

  • Sie können eine E-Mail-Anforderung nicht über Datenbank-E-Mail senden und eine Datei anfügen, die sich in einem FILESTREAM-Verzeichnis (und daher FileTable) befindet. Der Dateisystemfiltertreiber RsFx0420 überprüft eingehende E/A-Anforderungen, die in den FILESTREAM-Ordner wechseln und aus dem FILESTREAM-Ordner gehen. Wenn die Anforderung nicht aus dem ausführbaren SQLServer- und FILESTREAM-Code stammt, sind sie explizit unzulässig.

Zusätzliche Überlegungen zur Verwendung von FileTables

Überlegungen zur Verwaltung

Informationen zu FILESTREAM und FileTables

FileTables werden getrennt von FILESTREAM konfiguriert. Sie können daher weiterhin die FILESTREAM-Funktion verwenden, ohne den nicht transaktionalem Zugriff zu aktivieren oder FileTables zu erstellen.

Es gibt keinen nicht transaktionalen Zugriff auf FILESTREAM-Daten außer durch FileTables. Wenn Sie daher den nicht transaktionalen Zugriff aktivieren, ist das Verhalten vorhandener FILESTREAM-Spalten und -Anwendungen nicht betroffen.

Informationen zu FileTables und nicht transaktionalem Zugriff

Sie können den nicht transaktionalen Zugriff auf Datenbankebene aktivieren bzw. deaktivieren.

Der nicht transaktionale Zugriff kann auf Datenbankebene konfiguriert oder optimiert werden, indem Sie ihn ausschalten oder nur den Lesezugriff bzw. den vollständigen Lese-/Schreibzugriff aktivieren.

FileTables unterstützen keine speicherzuordnungen Dateien

FileTables unterstützen keine speicherzuordnungen Dateien. Editor und Paint sind zwei häufige Beispiele für Anwendungen, die Speicherabbilddateien verwenden. Sie können diese Anwendungen nicht auf demselben Computer wie SQL Server verwenden, um Dateien zu öffnen, die in einer FileTable gespeichert sind. Sie können diese Anwendungen jedoch von einem Remotecomputer verwenden, um Dateien zu öffnen, die in einer FileTable gespeichert sind, da unter diesen Umständen das Feature für die Speicherzuordnung nicht verwendet wird.