* - но нет принципиального ограничения на одновременное использование нескольких БД
** - в 2019-2020 гг. предполагается создать модель распределенной БД на базе узлов БД ПК ВИКТА (см. Приложение 4)
БД приложения 3
БД приложения N
ПК ВИКТА
Выбор приложения
Выбор БД
Работа в приложении
Список БД
Рис. 1. Цикл работы с БД в ПК ВИКТА
* - в поставку ПК ВИКТА могут входить демонстрационные данные для обучения персонала работе с приложением, прежде чем будет начата работа на реальных данных
Индекс БД — 1 файл
Формат dbf
(возможно использование справочников
в формате БД ВИКТА и других**)
Общие справочники ПК ВИКТА
БД для приложения 1
БД приложения 1.
Демо-данные
БД приложения 3
БД приложения N
Список БД
Конкретная БД
х.dat
< 2 Гб*
x.ind
< 2 Гб*
Рис. 2. Файловый состав БД ПК ВИКТА
* - в 2018 г планируется закончить работы по увеличению емкости БД до уровня нескольких Тб
** - ввод обработки других форматов осуществляется системным программистом среды ПК ВИКТА
Реквизит 1
Значение
Реквизит 3
Значение
Ключ записи
Реквизит 3
Значение
Реквизит 2
Значение
Реквизит 4
Значение
Содержимое записи в БД состоит из значений реквизитов. Реквизит — аналог имени колонки таблицы в реляционной БД. Далее для реквизита будем употреблять как синоним термина — поле
реляционных БД.
Число реквизитов для записи заранее не ограничивается*. Оно может быть изменено в приложении, что не приводит к существенному изменению схемы данных БД. Запись в рамках одной БД имеет уникальный ключ образованный из значений одного или нескольких реквизитов.
Работа с БД осуществляется транзакциями с метками времени, что обеспечивает откат на состояние БД в определенный момент времени. UPDATE записи не происходит. Измененная запись пишется целиком в конец БД. Значение реквизита записи может содержать ключ на другую «таблицу»** или справочник для выбора значения из списка этой таблицы или справочника
Реквизит 6
Значение
Реквизит 7
Значение
Реквизит 8
Значение
Ссылка на другую
«таблицу»* или справочник
* - считается, что потенциально запись может иметь все реквизиты БД, просто неиспользуемые в записи реквизиты - пустые
** - понятие таблицы в БД ПК ВИКТА отличается от принятого для реляционных БД. Это отличие раскрывается на следующем слайде
Рис. 3. Состав записи в БД ПК ВИКТА
«Таблица»
Основной ключ
Дополнительные
ключи
Рис. 4. Часть окна «Список таблиц базы» с демонстрацией ключей
таблицы «Первичные документы»
Рис. 5. Часть окна «Список таблиц базы» и окна «Список реквизитов»
Рис. 6. Пример раскрытия таблицы, связанный с полем записи
* - в ПК ВИКТА фреймом называется окно интерфейса. Например, на рис. 6. фрейм это окно «Классификация материальных ресурсов»
* - ведутся работы по увеличению объема файла БД. Планируемая дата окончания — середина 2018 г.
** - ведутся работы по созданию внешнего интерфейса (API) к БД ПК ВИКТА. Планируемая дата окончания — середина 2018 г.
*** - эксперименты могут быть проведены после выполнения работ по * и **
Таблица 1. Сравнение БД ПК ВИКТА с аналогами типа «Семейство колонок»
* - в Приложении 4 предлагается решение для преодоления этого ограничения.
Встроенные инструменты работы с БД ПК ВИКТА
1. Инструменты управления: базами, справочниками таблицами, реквизитами, связями реквизитов и таблиц, реквизитов и справочников, таблиц и справочников.
2. Инструменты контроля транзакций и откатов
3. Инструменты сжатия и бэкапирования БД
*
На сегодняшний момент ведутся работы для преодоления ограничений БД ПК ВИКТА:
- ограничения в 2Гб на файл БД
- ограничение отсутствия внешнего API к БД ПК ВИКТА
Ожидаемый срок завершения этих работ — середина 2018 г.
По завершении этих работ можно будет провести экспериментальные исследования того, насколько БД ПК ВИКТА может решать задачи, которые сейчас решают «импортные» колоночные БД.
Есть ограничения
на структуру документов
Ключ столбца 2
Значение
Метка времени
Ключ строки
Ключ столбца 1
Значение
Метка времени
Ключ столбца 3
Значение
Метка времени
Ключ строки
Ключ столбца 4
Значение = массив столбцов
Метка времени
Ключ столбца 4.1
Значение
Метка времени
Ключ столбца 4.2
Значение
Метка времени
Семейство столбцов
Не заполнено
Не заполнено
Не заполнено
Не заполнено
Не заполнено
Не заполнено
Не заполнено
Преимущества:
Приемлемая скорость
Хорошая масштабируемость
Работа со значениями
Более гибкая модификация
структуры (add colum)
Недостатки:
Ограничения на структуру значений
Избыточное извлечение данных
Трудности изменения шаблонов
запросов (при изменении семейства
колонок)
Представители: Cassandra, HBase
Применение: хранения взаимосвязанных данных (документов) т.е. имеющих
полные или частичные общие данные. Например: события, записи и комментарии блогов.
Приложение 1. Описание модели БД «семейство столбцов»
На рисунке 7 изображен процесс синхронизации баз данных на сервере и всех клиентских приложениях. Чтение и обработка данных происходит на каждом клиентском месте, не загружая каналы связи. Каждое клиентское приложение имеет собственный идентификатор. При возникновении изменения в информации клиентское приложение (1.1) формирует транзакцию (4), помечает ее своим идентификатором и передает ее серверу. Сервер присваивает транзакции сквозной номер (i), записывает транзакцию в собственную базу данных и передает ее всем клиентам в режиме вещания, не заботясь о факте ее приема конкретной станцией. Передающая станция (1.1) узнает о приеме своей транзакции сервером в случае ее получения в режиме вещания. Если клиентское приложение (1.n) по каким-либо причинам не соединено с сервером, транзакция ему в этот момент не поступает.
Рисунок 8 показывает описание запроса клиентским приложением (1.n) пропущенной транзакции (4.i). Станция обращается к серверу о запросе пропущенных транзакций в момент включения либо при получении транзакции, номер которой отличается от существующей в базе данных станции больше, чем на 1. Тогда у сервера запрашиваются транзакции с конкретными номерами, и взаимодействие происходит в режиме диалога между сервером и станцией.
Рис. 9.
Рис. 10.
* - например, в простейшем случае, запрос Delete требует в качестве данных — ID (ключ) удаляемой записи
** - например, ограничения реестра для Hadoop оценивается в 4 тыс. узлов. см. - https://ru.wikipedia.org/wiki/Hadoop
БД ПК
ВИКТА
БД ПК
ВИКТА
БД ПК
ВИКТА
БД ПК
ВИКТА
БД ПК
ВИКТА
БД ПК
ВИКТА
БД ПК
ВИКТА
БД ПК
ВИКТА
Слой
«рецепторов»
Слой узлов
( нейронов )
Из трех текущих неудобств БД ВИКТА: ограничение файла данных/индекса в 2Гб, отсутствие внешнего интерфейса к БД и сравнительно низкая скорость записи в БД только последнее является принципиальным архитектурным ограничением, которое, однако, может быть преодолено в решении в котором сам узел с БД ПК ВИКТА инициирует обращение к слою, содержащему запросы по мере того, как у него освобождаются для этого вычислительные ресурсы.
В распределенной БД, построенной на узлах с БД ПК ВИКТА, сами узлы обращаются к слою задач/запросов, считывают запросы, исполняют и возвращают результат. При этом, общий вывод (принятие решения) может быть сделан на основе возврата данных не от всех узлов. Т.е. в данной системе (даже при применении механизма приоритетов запросов) возможна ситуация, когда за заданное на выполнение запроса время на него ответили не все узлы, а только определенный % узлов. В этом случае, либо выделяется большее время, либо решение принимается с пониманием вероятности ошибки.
Возможен также вариант, когда для выполнения задачи/запроса не хватает данных. В этом случае может быть инициирован процесс сбора дополнительных данных, после чего запрос выполняется повторно
Отдельный узел БД ПК ВИКТА «несет самостоятельную ответственность» за сохранность данных. В случае обнаружения при самотестировании наличия угрозы данным (битые сектора на диске) узел самостоятельно связывается с ближайшими узлами и организует процесс миграции данных
Слой задач не хранит информации о том, какие данные на каком узле были записаны. Это снимает ограничения на количество узлов в сети БД, упирающиеся в мощность центрального реестра**.
Для повышения надежности хранения, данные из слоя задач могут удаляться только после их чтения не одним, а несколькими узлами. Очевидно можно рассчитать такое количество узлов для дублирования относительно их общего количества в сети при котором будет соблюдаться наперед заданная вероятность успешной обработки запроса.
Робот-бот для сбора
данных из внешней среды
Интернет,
датчики,
другие БД
Человек
или другое
приложение
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть