2012-07-25 12 views
5

Recentemente il nostro team stava esaminando FILESTREAM per espandere le funzionalità della nostra applicazione proprietaria. Lo scopo principale di questa app è la gestione dei vari PDF, immagini e documenti per tutte le parti che produciamo. La nostra applicazione ASP utilizza alcuni strumenti di terze parti per consentire la visualizzazione di questi file. Al momento disponiamo di 980 GB di dati sul Fileserver. Abbiamo circa 200 GB di dati binari in SQL Server che vorremmo estrarre poiché non sta funzionando bene, quindi FILESTREAM sembra essere un buon compromesso ai due principali problemi di archiviazione/accesso ai dati.FILESTREAM/FILETABLE Chiarimenti per l'implementazione

Un paio di cose non sono esattamente chiaro a noi:

  1. FILESTREAM può o non può memorizzare i dati su un disco che non è collegata localmente. Abbiamo già un file server con un RAID 10 (unità da 1,5 TB). Questo server memorizza tutti i documenti in questo momento, dovremmo spostare queste unità su SQL Server per FILESTREAM? Questo sarebbe un punto difficile da mordere poiché anche il server raddoppia come Application Server (due VM su un server fisico).

  2. FILETABLE memorizza i metadati comuni relativi ai file ma dove viene memorizzata la parte di testo completo di essa per consentire la ricerca di file come doc/docx? È separato? Sei in grado di aggiungere liberamente criteri a questo per cercare? In tal caso, qualsiasi link per chiarire sarebbe apprezzato.

  3. È possibile fare riferimento a FILETABLE in un'altra tabella con una chiave esterna?

Grazie in anticipo

EDIT: Per coloro che hanno queste domande il video web coperto tutto e di più in termini di spiegare FileStream 2008-2012 e le cavets di prendere in considerazione (Vorrei seriamente lo rep se Potrei): http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2270

In conclusione, non utilizzeremo FILESTREAM perché sarebbe un modo per aumentare l'espansione per soddisfare gli investimenti.

EDIT 2:

Update per 1 # - Dopo aver valutato attentamente FileTable oltre a FILESTREAM abbiamo ottenuto una combinazione vincente. Dovevamo spostare i file sul nuovo server (non era doloroso dal momento che erano nella stessa VM). Onestamente, è occorso più tempo per scrivere uno strumento di estrazione per scaricare i dati binari all'interno di SQL nel File System.

Update per # 2 - Questo era separata ma ancora una volta Bob aveva un ottimo webinar spiegare questo: http://channel9.msdn.com/Events/TechEd/Europe/2012/DBI411

Update per # 3 - Utilizzo TFT eredità abbiamo riciclato il tavolo Docs abbiamo avuto (meno le enormi blob binari), che ha richiesto pochissime modifiche nelle nostre applicazioni legacy. Questo è stato un enorme risultato per il team di sviluppatori.

risposta

3

L'ubicazione in cui i file sono archiviati per FileTables deve essere locale o almeno deve apparire a SQL Server come locale, quindi un driver intelligente potrebbe trarlo in inganno. Dal momento che il materiale FileTables è basato sul materiale FILESTREAM, immagino che le limitazioni siano le stesse.

La ricerca dei file viene effettuata tramite la funzione contienetable che è documentata on MSDN i criteri di ricerca utilizzano la stessa sintassi di FULLTEXT che esegue la ricerca di AFAIK.

Per tutti gli scopi e le finalità, FileTable è una tabella tipica che può essere unita, ricercata o altro.L'unica cosa è che devi usare alcune funzioni di SQL Server per cambiare i GUID di FILESTREAM in qualcosa di più utile come un percorso di file.

+0

Spot on. Abbiamo incontrato un piccolo inconveniente dal momento che usiamo framework di entità. Abbiamo fatto ricorso a un softkey (come in nessun vincolo FK) a stream_id. Il progettista EF ignora completamente i FileTables. Abbiamo appena realizzato un piccolo progetto ADO.Net nel nostro progetto principale per caricare e scaricare documenti. – jjhayter

Problemi correlati