1 / 33

Алексей Князев a.knyazev@t-sql.ru http ://t-sql.ru

http://www.EkbIT.Pro. Алексей Князев a.knyazev@t-sql.ru http ://www.t-sql.ru. File Table. Содержание. Неструктурированные данные в SQL Server SQL Server 2005 и ниже Реляционные данные хранятся в базе данных, а нереляционные бинарные данные ( BLOB ) хранятся в файловой системе

ailsa
Download Presentation

Алексей Князев a.knyazev@t-sql.ru http ://t-sql.ru

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. http://www.EkbIT.Pro Алексей Князев a.knyazev@t-sql.ru http://www.t-sql.ru File Table

  2. Содержание • Неструктурированные данные в SQL Server • SQL Server 2005 и ниже • Реляционные данные хранятся в базе данных, а нереляционные бинарные данные (BLOB) хранятся в файловой системе • Реляционные данные хранятся в базе данных вместе с нереляционными данными • SQL Server 2008 • Remote BLOB Storage • FileStream • SQL Server 2012 • FileTable • Заключение • Вопросы?

  3. Стоимость 1Gb, долларовза период 1960 - 2010

  4. Темпы роста количества контента

  5. Ещё немного цифр

  6. Бизнес-сценарии • специалистам страховой компании необходимо иметь возможность сохранять полисы и загружать их для обработки исков; • для отображения на сайте магазина необходимо иметь возможность сохранять результат видеосъемки товара; • для работы телефонной системы необходимо иметь возможность сохранять сообщения голосовой почты, чтобы пользователи могли прослушивать сообщения в удаленном режиме; • работникам радиостанции нужна библиотека оцифрованных записей, доступных для загрузки с веб-узла, с функцией поиска; • юридической службе необходимо хранить электронные копии документов в формате изображений и иметь возможность легко загрузить документы, имеющие отношение к определенному клиенту или определенному случаю; • партнерству архитекторов требуется сохранять и загружать цифровые чертежи, а также относящиеся к ним данные клиентов; • библиотеке требуется преобразовывать и архивировать большой объем существующих бумажных документов и аналогового содержимого для индексирования и использования при помощи средства работы с цифровыми справочными материалами.

  7. Сложности в работе с неструктурированнымиданными • Хотябыстроераспространениеновыхтиповнеструктурированногоцифровогосодержимогоприноситощутимуюпользу и открываетновыевозможностидлябизнеса, параллельновозникаютпроблемыдляразработчиковархитектурысистемы, администраторов и разработчиковприложений, которыедолжнысделатьтак, чтобысуществующиеприложения и службыработали с этиминеструктурированнымиисточникамиданных.

  8. Сложности, связанные с сохранением неструктурированных данных • затраты на хранение неструктурированных данных, включающие не только затраты на оборудование, но и накладные расходы на управление; • физические хранилища для неструктурированных данных, такие как файловые серверы и устройства хранения данных, подключаемые к сети (NAS); • управление политиками хранения и архивации; • объединение файлов, содержащих неструктурированные данные, и согласованных с ними реляционными данными, а также обеспечение транзакционной согласованности между источниками структурированных и неструктурированных данных; • минимизация накладных расходов на управление, связанных с обслуживанием как структурированных, так и неструктурированных данных; • быстродействие и масштабируемость; • защита неструктурированных данных и обеспечение согласованной безопасности также для связанных с ними реляционных данных; • доступность и возможность восстановления неструктурированных данных.

  9. Сложности, связанные с использованием неструктурированных данных • на этапе разработки приложения, в котором используются структурированные и неструктурированные данные, могут возникнуть проблемы, связанные с составлением кода, отвечающего за создание, загрузку, обновление и удаление неструктурированных данных, а также с обеспечением транзакционной согласованности между источниками реляционных и неструктурированных данных; • индексирование неструктурированных данных и поиск; • извлечение метаданных, доступных в явной форме (например, из полей форм или из атрибутов файлов), и предоставление этих данных пользователю; • преобразование содержимого документа в форматы, пригодные для выполнения поиска и составления запросов (например, преобразование звуковых файлов в текстовые, в которых затем может быть выполнен поиск по запросу базы данных или поиск при помощи обработчика полнотекстового поиска).

  10. Цели SQL Server в работе с неструктурированными данными • Сложности, связанные с неструктурированнымиданными, отражаютнекоторыеобщиепроблемы, с которымисталкиваютсяспециалисты, начинающиеразработкурешенийдляцифровогосодержимого, такиекак: • управление несколькими платформами, когда приходится иметь дело как с реляционными, так и с нереляционными данными, приводит к неоправданной сложности; • раздельные хранилища данных приводят к повышению сложности разработки приложений, а также к проблемам с управлением развертыванием; • разработчики и администраторы баз данных должны принимать меры для компенсации недостающих служб, поскольку их набор может быть разным для данных различных типов. • SQL Server ставитсвоейцельюразрешениеэтихпроблемприпомощи: • снижения затрат на руководство различными типами данных; • упрощения разработки приложений, использующих реляционные и нереляционные данные; • расширения возможностей, которые доступны на данный момент только для реляционных данных, чтобы они были доступны и для неструктурированных данных.

  11. Мотивация для развития поддержки неструктурированных данных в SQL Server

  12. Хранение неструктурированных данных в SQL Server2005 и ниже • Приложения, основанныенаработе с реляционными и нереляционнымиданными, в основномиспользуютоднуизтрехархитектур: • реляционные данные находятся в базе данных, а данные в формате больших нереляционных двоичных объектов (BLOB) находятся в файловых системах или на файловых серверах; • реляционные данные находятся в базе данных, а нереляционные данные – в хранилище, предназначенном для BLOB-данных; • реляционные и нереляционные данные находятся в базе данных.

  13. BLOB-данные в SQL Server В SQL Server 2005 былиспользованновыйтипданныхvarbinary(max), которыйпозволяетсохранятьбольшойобъемдвоичныхданныхразмеромдо 2 147 483 647 байт в столбцеилипеременной SQL Server. Прииспользованиимодификатораmaxможнозадатьзначениепараметратаблицыlarge value types out of row, которыйпозволяетконтролировать, в какомвидепроисходитфизическоехранениеданных. Еслизначениеэтогопараметразаданокак ON, всезначениясохраняютсянаотдельныхсвязанныхстраницах, а 16-байтовый корневойуказательнаниххранится в страницеданныхдлястроки. Еслизначениепараметраравно OFF, тозначения, размеркоторыхменьше 8000 байт, встраиваются в страницуданныхдлястроки, а значениябольшегоразмерасохраняютсянаотдельныхсвязанныхстраницах.

  14. Хранение неструктурированных данных в SQL Server2008 • FILESTREAM: значение этого атрибута можно установить в столбце varbinary, чтобы данные были сохранены в файловой системе (таким образом используются преимущества и потоковой передачи, и этого способа хранения), но при этом данные доступны напрямую из базы данных, и управление данными осуществляется в контексте этой базы данных; • удаленное хранилище BLOB-данных Remote BLOB: программный интерфейс (API), который снижает сложность разработки приложений, использующих BLOB-данные из внешнего хранилища и реляционные данные из базы данных. • Крометого, SQL Server 2008 продолжаетподдерживатьстандартныестолбцы BLOB с типомданныхvarbinary.

  15. FileStreamкак осколок Атлантиды WinFS Идейно под названием ObjectFileSystem известна с начала 90-х Проект Cairo не состоялся, но фрагментарно получил воплощение в широком спектре от Windows 95 до 2000 Затем это называлось Storage+ в СОМ, затем RelationalFileSystem в SQL Server 2000, ... Под именем WinFS объявлена на PDC 2003, запланирована в составе Висты В августе 2004 объявлена в качестве downloadableupdate где-нибудь на следующий год после Висты Еще через год выпущена Beta 1, доступная подписчикам MSDN Работала на XP, требовала .NET Framework (System.Storage) В декабре 2005 обновление до .NET 2.0 23 июня 2006 г. в блоге WinFSTeam было опубликовано (http://blogs.msdn.com/winfs/archive/2006/06/23/644706.aspx), что 2-й беты не будети WinFS не будет выпускаться в виде отдельного компонента, ее ключевые технологии войдут в SQL Server «Katmai» (2008) и ADO .NET в VisualStudio «Orcas»

  16. Что такое FILESTREAM varbinary(max), хранящийся не в БД, а в файловой системе Нет ограничения в 2 ГБ, только размером тома Стримовый доступ (за счет стандартных интерфейсов Win32) SQL-ныйбуферный пул не используется, NT system cache Доступ к файловой системе на удаленной тачке – SMB Файл-группа базы должна иметь атрибут FILESTREAM Вместо файлов БД содержит каталоги файловой системы (контейнеры) Контейнеры не могут быть вложенными Учётная запись SQLServer должна иметь NTFS-права на доступ к контейнерам, раздача прав внутри SQLServer – обычным образом Пока БД открыта, с контейнерами нельзя работать извне SQLServer Интеграция SQL Server-ногодвижкас NTFS позволяет делать по ним вставку, обновление, запросы, поиск, backup стандартными SQL-нымиоператорами При кластеризации – на общем диске

  17. Filestream Demo SQL Server 2012

  18. Условия использования FILESTREAM • В SQL Server большие двоичные объекты (BLOB) могут представлять собой либо стандартный тип varbinary(max), где данные хранятся в таблице базы данных, либо объекты FILESTREAM типа varbinary(max), где данные хранятся в файловой системе. Выбор в качестве хранилища базы данных или файловой системы определяется размером и назначением данных. Объекты FILESTREAM следует использовать в следующих случаях: • средний размер сохраняемых объектов превышает 1 МБ; • важен быстрый доступ для чтения; • в разрабатываемых приложениях для логики приложений используется средний уровень. • При работе с объектами меньшего размера сохранение больших двоичных объектов (BLOB) типа varbinary(max) в базе данных часто позволяет добиться лучшей производительности потоков.

  19. Сравнение вариантов хранения BLOB-данных

  20. Что такое FileTable SELECT INSERT UPDATE DELETE Copy/Past, Network, Applications etc… Ура, у нас есть удобная интеграция базы данных и файловой системы!

  21. FILESTREAM и FileTable как альтернатива комбинации СУБД + файл-сервер

  22. FileTable • Хранить файлы в SQL Server ничуть не хуже, чем в файловой системе • На самом деле даже лучше, потому что при этом штатными средствами на раз обеспечивается • Транзакционность операций • Резервное копирование • Сортировка и поиск по атрибутам, полнотекстовый и семантический по содержанию • Безопасность, разделение доступа, администрирование на основе политик, ... • К сожалению, до последнего времени эти преимущества мало, что давали, потому что приложения привыкли работать с файлами при помощи Windows API • Чтобы открыть документ в Ворде, его придется выгрузить из SQL Server в файловую систему. Хотя бы на время. • Чтобы посмотреть фильм в плеере – аналогично и т.д. • FileTable – это способ засветить файлстримовский контент, хранящийся в SQLной базе, в виде файловой шары • \\<SQL-Server-Machine>\<InstanceShare>\<Database_Directory>\<FileTable_Directory>\ • Для Windows-приложения FileTableвыглядит как обычная папка общего доступа, и оно может читать оттуда файлы, копировать туда новые, создавать директории и т.д. • SQL Server перехватывает эти вызовы и интерпретирует их внутри себя в привычные реляционные операции • Также над FileTableдоступны прямые запросы, обновления и пр.операции ср-вами T-SQL

  23. FILETABLE - обзор функциональности

  24. Структура папок FileTable • Инстанс • База данных 1 • Таблица 1 • Таблица 2 • База данных 2

  25. Filetable Demo SQL Server 2012

  26. FileTable Columns

  27. Доступ к данным FileTable

  28. Администрирование FileTable

  29. Ограничения FileTable

  30. Сравнение FILESTREAM и таблиц FileTable

  31. Заключение

  32. Q&A Ваши вопросы

  33. Ресурсы • FILESTREAM • http://msdn.microsoft.com/ru-ru/library/gg471497.aspx • Таблицы FileTable • http://msdn.microsoft.com/ru-ru/library/ff929144.aspx • Наш сайт • http://www.EkbIT.Pro • Мой блог • http://www.t-sql.ru

More Related