Partager via


FileTables (SQL Server)

La fonctionnalité FileTable apporte le support de l’espace de noms de fichiers Windows et la compatibilité avec les applications Windows pour les données de fichiers stockées dans SQL Server. FileTable permet à une application d’intégrer ses composants de stockage et de gestion des données et fournit des services SQL Server intégrés, y compris la recherche en texte intégral et la recherche sémantique, sur les données et métadonnées non structurées.

En d’autres termes, vous pouvez stocker des fichiers et des documents dans des tables spéciales dans SQL Server appelé FileTables, mais y accéder à partir d’applications Windows comme s’ils étaient stockés dans le système de fichiers, sans apporter de modifications à vos applications clientes.

La fonctionnalité FileTable s’appuie sur la technologie FILESTREAM SQL Server. Pour en savoir plus sur FILESTREAM, consultez FILESTREAM (SQL Server).

Avantages de la fonctionnalité FileTable

Les objectifs de la fonctionnalité FileTable sont les suivants :

  • Compatibilité de l’API Windows pour les données de fichier stockées dans une base de données SQL Server. La compatibilité des API Windows inclut les éléments suivants :

    • Accès en continu non transactionnel et mises à jour sur place des données FILESTREAM.

    • Espace de noms hiérarchique des répertoires et des fichiers.

    • Stockage des attributs de fichier, tels que la date de création et la date de modification.

    • Prise en charge des API de gestion des fichiers et des répertoires Windows.

  • Compatibilité avec d’autres fonctionnalités SQL Server, notamment les outils de gestion, les services et les fonctionnalités de requête relationnelle sur les données d’attribut de fichier et FILESTREAM.

Ainsi, les FileTables suppriment un obstacle important à l’utilisation de SQL Server pour le stockage et la gestion des données non structurées qui résident actuellement en tant que fichiers sur des serveurs de fichiers. Les entreprises peuvent déplacer ces données de serveurs de fichiers vers FileTables pour tirer parti de l’administration et des services intégrés fournis par SQL Server. En même temps, ils peuvent maintenir la compatibilité des applications Windows pour leurs applications Windows existantes qui voient ces données en tant que fichiers dans le système de fichiers.

Qu’est-ce qu’un FileTable ?

SQL Server fournit une table spéciale de fichiers, également appelée FileTable, pour les applications qui nécessitent un stockage de fichiers et de répertoires dans la base de données, avec une compatibilité de l’API Windows et un accès non transactionnel. Un FileTable est une table utilisateur spécialisée avec un schéma prédéfinis qui stocke les données FILESTREAM, ainsi que les informations de hiérarchie de fichiers et de répertoires et les attributs de fichier.

Un FileTable fournit les fonctionnalités suivantes :

  • Un FileTable représente une hiérarchie de répertoires et de fichiers. Il stocke les données relatives à tous les nœuds de cette hiérarchie, pour les répertoires et les fichiers qu’ils contiennent. Cette hiérarchie commence à partir d’un répertoire racine que vous spécifiez lors de la création du FileTable.

  • Chaque ligne d’un FileTable représente un fichier ou un répertoire.

  • Chaque ligne contient les éléments suivants. Pour plus d’informations sur le schéma d’un FileTable, consultez Schéma FileTable.

    • Colonnefile_stream pour les données de flux et un identificateur stream_id (GUID). (La colonne file_stream est NULL pour un répertoire.)

    • Les colonnes path_locator et parent_path_locator pour représenter et gérer la hiérarchie de fichiers et de répertoires.

    • 10 attributs de fichier tels que la date de création et la date de modification qui sont utiles avec les API d’E/S de fichier.

    • Colonne de type qui prend en charge la recherche en texte intégral et la recherche sémantique sur les fichiers et documents.

  • Un FileTable applique certaines contraintes et déclencheurs définis par le système pour gérer la sémantique de l’espace de noms de fichiers.

  • Lorsque la base de données est configurée pour l’accès non transactionnel, la hiérarchie de fichiers et de répertoires représentée dans fileTable est exposée sous le partage FILESTREAM configuré pour l’instance SQL Server. Cela fournit un accès au système de fichiers pour les applications Windows.

Voici quelques caractéristiques supplémentaires de FileTables :

  • Les données de fichier et de répertoire stockées dans un FileTable sont exposées via un partage Windows pour l’accès aux fichiers non transactionnels pour les applications basées sur l’API Windows. Pour une application Windows, cela ressemble à un partage normal avec ses fichiers et répertoires. Les applications peuvent utiliser un ensemble complet d’API Windows pour gérer les fichiers et les répertoires sous ce partage.

  • La hiérarchie de répertoires exposée par le partage est une structure de répertoires purement logique qui est conservée dans le FileTable.

  • Les appels pour créer ou modifier un fichier ou un répertoire via le partage Windows sont interceptés par un composant SQL Server et reflétés dans les données relationnelles correspondantes dans fileTable.

  • Les opérations d’API Windows ne sont pas transactionnelles et ne sont pas associées aux transactions utilisateur. Toutefois, l’accès transactionnel aux données FILESTREAM stockées dans un FileTable est entièrement pris en charge, comme c’est le cas pour n’importe quelle colonne FILESTREAM dans une table régulière.

  • Les FileTables peuvent également être interrogés et mis à jour par le biais d’un accès normal Transact-SQL. Ils sont également intégrés à des outils de gestion SQL Server et des fonctionnalités telles que la sauvegarde.

Considérations supplémentaires relatives à l’utilisation de FileTables

Considérations administratives

À propos de FILESTREAM et fileTables

  • Vous configurez des FileTables séparément de FILESTREAM. Par conséquent, vous pouvez continuer à utiliser la fonctionnalité FILESTREAM sans activer l’accès non transactionnel ou créer des FileTables.

  • Il n’existe aucun accès non transactionnel aux données FILESTREAM, sauf par le biais de FileTables. Par conséquent, lorsque vous activez l’accès non transactionnel, le comportement des colonnes ET applications FILESTREAM existantes n’est pas affecté.

À propos des FileTables et de l’accès non transactionnel

  • Vous pouvez activer ou désactiver l’accès non transactionnel au niveau de la base de données.

  • Vous pouvez configurer ou ajuster l’accès non transactionnel au niveau de la base de données en le désactivant ou en activant l’accès en lecture seule ou en lecture/écriture complète.

Les fileTables ne prennent pas en charge les fichiers Memory-Mapped

Les FileTables ne prennent pas en charge les fichiers mappés en mémoire. Le Bloc-notes et Paint sont deux exemples courants d’applications qui utilisent des fichiers mappés en mémoire. Vous ne pouvez pas utiliser ces applications sur le même ordinateur que SQL Server pour ouvrir des fichiers stockés dans un FileTable. Toutefois, vous pouvez utiliser ces applications à partir d’un ordinateur distant pour ouvrir des fichiers stockés dans un FileTable, car dans ces circonstances, la fonctionnalité de mappage de mémoire n’est pas utilisée.

Tâches associées

Activer les conditions préalables pour FileTable
Décrit la manière de satisfaire aux conditions préalables en vue de la création et de l'utilisation de FileTables.

Créer, modifier et supprimer des fileTables
Décrit comment créer un FileTable, ou modifier ou supprimer un FileTable existant.

Charger des fichiers dans FileTables
Décrit comment charger ou migrer des fichiers dans FileTables.

Utiliser des répertoires et des chemins d’accès dans FileTables
Décrit la structure de répertoires dans laquelle les fichiers sont stockés dans FileTables.

Accéder aux FileTables avec Transact-SQL
Décrit comment les commandes DML (Data Manipulation Language) Transact-SQL fonctionnent avec les FileTables.

Utiliser les FileTables avec les API de fichiers Input-Output
Décrit le fonctionnement des E/S du système de fichiers sur un FileTable.

Gérer les FileTables
Décrit les tâches administratives courantes pour la gestion des FileTables.

Contenu associé

Schéma FileTable
Décrit le schéma prédéfinis et fixe d’un FileTable.

Compatibilité fileTable avec d’autres fonctionnalités SQL Server
Décrit comment les FileTables fonctionnent avec d’autres fonctionnalités de SQL Server.

FileTable DDL, Functions, Procédures stockées et vues
Répertorie les instructions Transact-SQL et les objets de base de données SQL Server qui ont été ajoutés ou modifiés pour prendre en charge la fonctionnalité FileTable.