Partager via


FileTables (SQL Server)

La fonctionnalité FileTable apporte une prise en charge de l'espace de noms de fichier Windows et la compatibilité des applications Windows avec les données de fichier 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 (notamment la recherche sémantique et en texte intégral) sur des données et des métadonnées non structurées.

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

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

Dans cette rubrique

  • Avantages de la fonctionnalité FileTable

  • Présentation d'un FileTable

  • Remarques supplémentaires concernant l'utilisation de FileTables

    • Considérations d'ordre administratif

    • Les FileTables ne prennent pas en charge les fichiers mappés en mémoire

  • Tâches associées

  • Contenu connexe

Avantages de la fonctionnalité FileTable

Les objectifs de la fonctionnalité FileTable incluent les éléments suivants :

  • Compatibilité des API Windows pour les données de fichier stockées dans une base de données SQL Server. La compatibilité d'API Windows inclut ce qui suit :

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

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

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

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

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

Par conséquent, les FileTables mettent fin à un frein significatif à l'utilisation de SQL Server pour le stockage et la gestion de données non structurées qui résident actuellement sous la forme de fichiers sur des serveurs de fichiers. Les entreprises peuvent déplacer ces données depuis des serveurs de fichiers vers des FileTables afin de tirer parti des services et de l'administration intégrés fournis par SQL Server. En même temps, elles peuvent assurer la compatibilité d'applications Windows pour leurs applications Windows existantes qui considèrent ces données en tant que fichiers dans le système de fichiers.

[Haut de la page]

Présentation d'un FileTable

SQL Server fournit une table de fichiers spéciale, également connue sous le nom de FileTable, pour les applications qui requièrent un stockage de répertoires et de fichiers dans la base de données, avec la compatibilité avec les API Windows et un accès non transactionnel. Un FileTable est une table utilisateur spécialisée avec un schéma prédéfini qui stocke des données FILESTREAM, ainsi que des informations de hiérarchie de fichiers et de répertoires et d'attribut de fichier.

Un FileTable offre les fonctionnalités suivantes :

  • Un FileTable représente une hiérarchie de répertoires et de fichiers. Il stocke des données relatives à tous les nœuds de cette hiérarchie, à la fois pour les répertoires et les fichiers qu'ils contiennent. Cette hiérarchie démarre à 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 de FileTable.

    • Une colonne file_stream pour les données de flux et un identificateur stream_id (GUID). (La colonne file_stream a la valeur NULL pour un répertoire.)

    • Les colonnes path_locator et parent_path_locator pour la représentation et la maintenance de la hiérarchie de répertoires et de fichiers.

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

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

  • Un FileTable applique certains déclencheurs et contraintes définies par le système afin de gérer la sémantique de l'espace de noms de fichier.

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

Voici quelques caractéristiques supplémentaires des 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 transactionnel pour les applications basées sur des 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 en surface via le partage est une structure de répertoires purement logique maintenue 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 du FileTable.

  • Les opérations d'API Windows ne sont pas transactionnelles par nature et ne sont pas associées à des 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 toute colonne FILESTREAM d'une table standard.

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

[Haut de la page]

Remarques supplémentaires concernant l'utilisation de FileTables

Considérations d'ordre administratif

À propos de FILESTREAM et des FileTables

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

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

À propos de 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 définir avec précision 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 l'accès en lecture/écriture intégral.

[Haut de la page]

Les FileTables ne prennent pas en charge les fichiers mappés en mémoire

Les FileTables ne prennent pas en charge les fichiers mappés en mémoire Les applications Bloc-notes et Peinture sont deux exemples classiques d'applications qui utilisent les 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 afin d'ouvrir des fichiers stockés dans un FileTable, car dans ces circonstances, la fonctionnalité de mappage en mémoire n'est pas utilisée.

[Haut de la page]

Tâches associées

[Haut de la page]

Contenu connexe

[Haut de la page]