Condividi tramite


Tabelle FileTable (SQL Server)

La funzionalità FileTable offre il supporto per lo spazio dei nomi dei file di Windows e la compatibilità con le applicazioni Windows ai dati dei file archiviati in SQL Server. FileTable consente a un'applicazione di integrare i componenti di archiviazione e gestione dei dati e fornisce servizi SQL Server integrati, tra cui la ricerca full-text e la ricerca semantica, su dati e metadati non strutturati.

In altre parole, è possibile archiviare file e documenti in tabelle speciali in SQL Server denominate FileTable, ma accedervi da applicazioni Windows come se fossero archiviate nel file system, senza apportare modifiche alle applicazioni client.

La funzionalità FileTable si basa sulla tecnologia FILESTREAM di SQL Server. Per altre informazioni su FILESTREAM, vedere FILESTREAM (SQL Server).

Vantaggi della funzionalità FileTable

Gli obiettivi della funzionalità FileTable includono quanto segue:

  • Compatibilità dell'API Windows per i dati di file archiviati all'interno di un database di SQL Server. La compatibilità dell'API Windows include quanto segue:

    • Accesso in streaming non transazionale e aggiornamenti sul posto ai dati FILESTREAM.

    • Uno spazio dei nomi gerarchico di directory e file.

    • Archiviazione di attributi di file, ad esempio la data di creazione e la data di modifica.

    • Supporto per le API di gestione di file e directory di Windows.

  • Compatibilità con altre funzionalità di SQL Server, inclusi gli strumenti di gestione, i servizi e le funzionalità di query relazionali su FILESTREAM e i dati degli attributi di file.

Pertanto, le tabelle FileTable eliminano una barriera significativa all'uso di SQL Server per l'archiviazione e la gestione di dati non strutturati che attualmente risiedono come file nei file server. Le aziende possono spostare questi dati da file server in tabelle FileTable per sfruttare l'amministrazione integrata e i servizi forniti da SQL Server. Allo stesso tempo, possono mantenere la compatibilità delle applicazioni Windows per le applicazioni Windows esistenti che visualizzano questi dati come file nel file system.

Che cos'è una tabella FileTable?

SQL Server fornisce una tabella speciale di file, detta anche fileTable, per le applicazioni che richiedono l'archiviazione di file e directory nel database, con compatibilità dell'API Windows e accesso non transazionale. Una tabella FileTable è una tabella utente specializzata con uno schema predefinito che archivia i dati FILESTREAM, nonché informazioni sulla gerarchia di file e directory e attributi di file.

Una tabella FileTable offre le funzionalità seguenti:

  • Una tabella FileTable rappresenta una gerarchia di directory e file. Archivia i dati correlati a tutti i nodi della gerarchia, sia per le directory che per i file che contengono. Questa gerarchia inizia da una directory radice specificata quando si crea la tabella FileTable.

  • Ogni riga di una tabella FileTable rappresenta un file o una directory.

  • Ogni riga contiene gli elementi seguenti. Per altre informazioni sullo schema di una tabella FileTable, vedere Schema fileTable.

    • Colonnafile_stream per i dati del flusso e un identificatore stream_id (GUID). La colonna file_stream è NULL per una directory.

    • Sia le colonne path_locator che parent_path_locator servono per rappresentare e gestire la gerarchia di file e directory.

    • 10 attributi di file, ad esempio la data di creazione e la data di modifica, utili con le API di I/O dei file.

    • Una colonna di tipo che supporta la ricerca full-text e la ricerca semantica su file e documenti.

  • Una tabella FileTable applica determinati vincoli e trigger definiti dal sistema per mantenere la semantica dello spazio dei nomi dei file.

  • Quando il database è configurato per l'accesso non transazionale, la gerarchia di file e directory rappresentata nella tabella FileTable viene esposta nella condivisione FILESTREAM configurata per l'istanza di SQL Server. In questo modo viene fornito l'accesso al file system per le applicazioni Windows.

Di seguito sono elencate alcune caratteristiche aggiuntive delle tabelle FileTable:

  • I dati di file e directory archiviati in una tabella FileTable vengono esposti tramite una condivisione di Windows per l'accesso ai file non transazionali per le applicazioni basate su API Windows. Per un'applicazione Windows, si tratta di una condivisione normale con i relativi file e directory. Le applicazioni possono usare un set completo di API Di Windows per gestire i file e le directory in questa condivisione.

  • La gerarchia di directory visualizzata tramite la condivisione è una struttura di directory puramente logica gestita all'interno della tabella FileTable.

  • Le chiamate per creare o modificare un file o una directory tramite la condivisione di Windows vengono intercettate da un componente di SQL Server e riflesse nei dati relazionali corrispondenti nella tabella FileTable.

  • Le operazioni dell'API Windows non sono di natura transazionale e non sono associate alle transazioni utente. Tuttavia, l'accesso transazionale ai dati FILESTREAM archiviati in una tabella FileTable è completamente supportato, come nel caso di qualsiasi colonna FILESTREAM in una normale tabella.

  • Le tabelle FileTable possono anche essere sottoposte a query e aggiornate tramite l'accesso normale Transact-SQL. Sono integrate anche con gli strumenti di gestione di SQL Server e le funzionalità, ad esempio il backup.

Considerazioni aggiuntive per l'uso delle FileTable

Considerazioni amministrative

Informazioni su FILESTREAM e FileTables

  • Le tabelle FileTable vengono configurate separatamente da FILESTREAM. È pertanto possibile continuare a usare la funzionalità FILESTREAM senza abilitare l'accesso non transazionale o creare tabelle FileTable.

  • Non esiste accesso non transazionale ai dati FILESTREAM, ad eccezione delle tabelle FileTable. Pertanto, quando si abilita l'accesso non transazionale, il comportamento delle colonne e delle applicazioni FILESTREAM esistenti non è interessato.

Informazioni sulle tabelle FileTable e l'accesso non transazionale

  • È possibile abilitare o disabilitare l'accesso non transazionale a livello di database.

  • È possibile configurare o ottimizzare l'accesso non transazionale a livello di database disattivandolo oppure abilitando l'accesso in sola lettura o in lettura/scrittura completo.

Le FileTables non supportano i file Memory-Mapped

Le tabelle FileTable non supportano i file mappati alla memoria. Blocco note e Paint sono due esempi comuni di applicazioni che usano file mappati alla memoria. Non è possibile utilizzare queste applicazioni nello stesso computer di SQL Server per aprire i file archiviati in una tabella FileTable. Tuttavia, è possibile utilizzare queste applicazioni da un computer remoto per aprire i file archiviati in una tabella FileTable, perché in queste circostanze la funzionalità di mapping della memoria non viene utilizzata.

Attività correlate

Abilitare i prerequisiti per la funzionalità FileTable
Viene descritto come abilitare i prerequisiti per la creazione e l'utilizzo di tabelle FileTable.

Creare, modificare ed eliminare FileTable
Viene descritto come creare una nuova tabella FileTable oppure modificare o eliminare una tabella FileTable esistente.

Caricare file in FileTables
Viene descritto come caricare o eseguire la migrazione dei file in tabelle FileTable.

Lavorare con directory e percorsi in FileTables
Descrive la struttura di directory nella quale vengono archiviati i file in FileTable.

Accedere a tabelle FileTable tramite Transact-SQL
Descrive il funzionamento dei comandi DML (Data Manipulation Language) Transact-SQL con le tabelle FileTable.

Accedere alle tabelle FileTable con API di input/output dei file
Viene descritto il funzionamento dell'I/O del file system in una tabella FileTable.

Gestire FileTables
Vengono descritte attività amministrative comuni per la gestione di tabelle FileTable.

Contenuto correlato

FileTable Schema
Descrive lo schema predefinito e fisso di una tabella FileTable.

Compatibilità di FileTable con altre funzionalità di SQL Server
Descrive il funzionamento delle tabelle FileTable con altre funzionalità di SQL Server.

FileTable DDL, funzioni, stored procedure e viste
Elenca le istruzioni Transact-SQL e gli oggetti di database di SQL Server aggiunti o modificati per supportare la funzionalità FileTable.