Sdílet prostřednictvím


FileTables (SQL Server)

platí pro:SQL Server

Funkce FileTable přináší podporu oboru názvů souborů Systému Windows a kompatibilitu s aplikacemi systému Windows do dat souborů uložených na SQL Serveru. FileTable umožňuje aplikaci integrovat své součásti pro ukládání a správu dat a poskytuje integrované služby SQL Serveru – včetně fulltextového vyhledávání a sémantického vyhledávání – nad nestrukturovanými daty a metadaty.

Jinými slovy, soubory a dokumenty můžete ukládat do speciálních tabulek v SQL Serveru s názvem FileTables, ale přistupovat k nim z aplikací windows, jako by byly uložené v systému souborů, aniž byste museli provádět změny klientských aplikací.

Funkce FileTable je založená na technologii SQL Server FILESTREAM. Další informace o FILESTREAM najdete v tématu FILESTREAM (SQL Server).

Výhody funkce FileTable

Mezi cíle funkce FileTable patří:

  • Kompatibilita rozhraní API systému Windows pro data souborů uložená v databázi SQL Serveru. Kompatibilita rozhraní API systému Windows zahrnuje následující:

    • Ne­transakční přístup ke streamování a aktualizace na místě dat FILESTREAM.

    • Hierarchický prostor názvů adresářů a souborů.

    • Ukládání atributů souborů, jako je datum vytvoření a datum změny

    • Podpora rozhraní API pro správu souborů a adresářů systému Windows

  • Kompatibilita s dalšími funkcemi SQL Serveru, včetně nástrojů pro správu, služeb a možností relačních dotazů přes FILESTREAM a data atributů souborů.

FileTables proto odstraňuje významnou překážku pro použití SQL Serveru pro ukládání a správu nestrukturovaných dat, která se aktuálně nachází jako soubory na souborových serverech. Podniky můžou tato data přesunout ze souborových serverů do FileTables, aby mohly využívat integrované správy a služby poskytované SQL Serverem. Současně můžou udržovat kompatibilitu aplikací pro Windows pro své stávající aplikace pro Windows, které vidí tato data jako soubory v systému souborů.

Co je FileTable?

SQL Server poskytuje speciální tabulku souborů, označovanou také jako FileTable, pro aplikace, které vyžadují úložiště souborů a adresářů v databázi, s kompatibilitou rozhraní WINDOWS API a neaktorálním přístupem. FileTable je specializovaná uživatelská tabulka s předdefinovaným schématem, které ukládá data FILESTREAM a informace o hierarchii souborů a atributy souborů.

FileTable poskytuje následující funkce:

  • FileTable představuje hierarchii adresářů a souborů. Ukládá data související se všemi uzly v této hierarchii pro adresáře i soubory, které obsahují. Tato hierarchie začíná z kořenového adresáře, který zadáte při vytváření FileTable.

  • Každý řádek v tabulce FileTable představuje soubor nebo adresář.

  • Každý řádek obsahuje následující položky. Další informace o schématu FileTable naleznete v tématu Schéma FileTable.

    • file_stream Sloupec pro streamová data a stream_id identifikátor (GUID). (Sloupec file_stream má hodnotu NULL pro adresář.)

    • Oba path_locator sloupce parent_path_locator pro reprezentaci a údržbu aktuální položky (souboru nebo adresáře) a hierarchie adresářů.

    • 10 atributů souboru, jako je datum vytvoření a datum změny, které jsou užitečné s rozhraními API pro vstupně-výstupní operace souborů.

    • Sloupec typu, který podporuje fulltextové vyhledávání a sémantické vyhledávání v souborech a dokumentech.

  • FileTable vynucuje určitá systémově definovaná omezení a triggery pro zachování sémantiky oboru názvů souborů.

  • Pokud je databáze nakonfigurována pro neakční přístup, soubor a adresářová hierarchie reprezentovaná v FileTable je vystavena ve sdílené složce FILESTREAM nakonfigurované pro instanci SQL Serveru. To poskytuje přístup k systému souborů pro aplikace systému Windows.

Některé další vlastnosti FileTables

  • Data souboru a adresáře uložená v FileTable jsou vystavena prostřednictvím sdílené složky systému Windows pro neakční přístup k souborům pro aplikace založené na rozhraní API systému Windows. U aplikace pro Windows to vypadá jako normální sdílená složka se svými soubory a adresáři. Aplikace můžou ke správě souborů a adresářů v této sdílené složce používat bohatou sadu rozhraní API systému Windows.

  • Hierarchie adresářů, která je zpřístupněna prostřednictvím sdílené složky, je čistě logická struktura, která se udržuje v tabulce FileTable.

  • Volání k vytvoření nebo změně souboru nebo adresáře prostřednictvím sdílené složky Windows jsou zachycena komponentou SQL Serveru a odráží se v odpovídajících relačních datech v FileTable.

  • Operace rozhraní API systému Windows nejsou transakční povahy a nejsou přidružené k uživatelským transakcím. Transakční přístup k datům FILESTREAM uloženým v FileTable je však plně podporovaný, stejně jako u každého sloupce FILESTREAM v běžné tabulce. Pokud potřebujete často upravovat soubory z více připojení a zajistit správnou ochranu souborů, použijte transakční přístup FILESTREAM přes OpenSqlFilestream() místo výhradních zámků souborů na úrovni rozhraní API systému Windows.

  • FileTables se také dají dotazovat a aktualizovat prostřednictvím normálního Transact-SQL přístupu. Jsou také integrované s nástroji pro správu SQL Serveru a funkcemi, jako je zálohování.

  • E-mailovou žádost nemůžete odeslat prostřednictvím databázové pošty a připojit soubor umístěný v adresáři FILESTREAM (a proto FileTable). Ovladač filtru systému souborů RsFx0420 kontroluje příchozí vstupně-výstupní požadavky přicházející do složky FILESTREAM a z této složky. Pokud požadavek nepochází ze spustitelného souboru SQLServeru a současně z kódu FILESTREAM, jsou explicitně zakázány.

Další důležité informace o používání tabulek FileTables

Aspekty správy

O FILESTREAM a FileTables

Tabulky FileTable nakonfigurujete odděleně od FILESTREAM. Proto můžete i nadále používat funkci FILESTREAM, aniž byste povolili ne-transakční přístup nebo vytvořili FileTables.

Neexistuje žádný netransakční přístup k datům FILESTREAM s výjimkou FileTables. Pokud tedy povolíte netransakční přístup, chování existujících sloupců FILESTREAM a aplikací nebude ovlivněno.

O souborových tabulkách a netransakčním přístupu

Můžete povolit nebo zakázat netransakční přístup na úrovni databáze.

Můžete nakonfigurovat nebo vyladit neaktuální přístup na úrovni databáze tak, že ho vypnete nebo povolíte přístup jen pro čtení nebo úplný přístup pro čtení a zápis.

FileTables nepodporují soubory mapované v paměti

FileTables nepodporují soubory mapované do paměti. Poznámkový blok a Malování jsou dvěma běžnými příklady aplikací, které používají soubory mapované do paměti. Tyto aplikace nemůžete použít na stejném počítači jako SQL Server k otevření souborů uložených v FileTable. Tyto aplikace však můžete použít ze vzdáleného počítače k otevření souborů uložených v FileTable, protože v těchto případech se funkce mapování paměti nepoužívá.