OpenSCADA

Модулі/Шлюз баз даних

This page is a translated version of the page Modules/DBGate and the translation is 100% complete.

English • ‎Українська
Модуль Ім'я Версія Ліцензія Джерело Мови Платформи Тип Автор Опис
DBGate Шлюз БД 1.1 GPL2 bd_DBGate.so en,uk x86,x86_64,ARM БД Роман Савоченко Модуль БД. Дозволяє виконувати шлюзування баз даних віддалених OpenSCADA станцій до локальних.
- реалізація локального кешу для функції fieldSeek() через глибоке сканування у XML-контекст на віддаленій частині.

Основною функцією цього модуля є віддзеркалення даних підсистеми "Бази даних" віддалених OpenSCADA станцій на локальні. В своїй роботі модуль використовує Власний Протокол OpenSCADA та сервісні функції підсистеми "Бази даних". Цей модуль може бути корисним:

Модуль реалізує наступні функції:

Contents

1 Операції над БД

Підтримуються операції відкриття та закриття БД лише для об'єкту локальної БД та без можливості створення нової бази даних та видалення існуючої при закритті, на віддаленій станції. У термінах підсистеми "БД" OpenSCADA, відкриттям БД є її реєстрація-підключення для наступного використання програмою. Також, підтримується операція запиту переліку таблиць у віддаленій БД.

Сторінка конфігурації об'єкту БД також віддзеркалює більшість властивостей віддаленої БД, окрім:

БД DBGate адресується шляхом визначення-обрання ім'я БД у форматі "{ВіддаленаСтанція}.{МодульБД}.{БД}", де:

2 Операції над таблицею

Підтримується передавання до віддаленої станції операцій відкриття, закриття таблиці, з можливістю створення нової таблиці при відкритті та видалення існуючої при закриті, а також запит структури таблиці.

3 Операції над вмістом таблиці

Передавання до БД віддаленої станції операцій над таблицею:

API підсистеми "БД" передбачає доступ до вмісту таблиці за значенням ключового(их) полів. Так, операція запиту запису передбачає попереднє встановлення ключових стовпчиків об'єкту TConfig, за яким буде здійснено запит. Створення нового запису(рядка) здійснюється операцією встановлення значень запису, який відсутній.

Динамічна зміна структури таблиці залежить лише від типу пов'язаної віддаленої БД.

Модуль реалізує механізм підтримки багатомовних текстових змінних непрямо функціями ядра роботи із конфігураційним файлом: TBDS::dataSeek(), TBDS::dataGet() та TBDS::dataSet().

4 Права доступу

Права доступу до кінцевої БД визначаються правами, специфічними до типу віддаленої БД, та правами доступу користувача віддаленої станції до підсистеми БД загалом, за правами описаними у наступній таблиці:

Функція/операція/сервіс Права відносно до "root:BD:{інші}"
Ввімкнення БД W:W:-
Перелік наявних таблиць R:R:R
Створення таблиці W:W:-
Видалення таблиці W:W:-
Запит SQL (call:/serv/SQL) W:W:-
Структура запису (call:/serv/fieldStruct) R:R:R
Сканування запису (call:/serv/fieldSeek) R:R:R
Отримання запису (call:/serv/fieldGet) R:R:R
Встановлення запису (call:/serv/fieldSet) W:W:-
Видалення запису (call:/serv/fieldDel) W:W:-

5 Продуктивність БД

Вимірювання продуктивності БД, точніше шлюзування, здійснюється тестом "БД" модуля "SystemTests", шляхом виконання операцій над записами структурою "name char (20), descr char (50), val double (10.2), id int (7), stat bool, reqKey string, reqVal string" двічі, спочатку для БД віддаленого оточення, а потім до цієї-ж БД, але через шлюз — цей модуль.

Operations for 1000 records, seconds AMD A8-6500 <Ethernet> AMD Phenom II X4 [RAID1] <> SQLite AMD A8-6500 <Ethernet> AMD Phenom II X4 [RAID1] <> MySQL
Creating: 2.36 > 0.35 3.39 > 1.35
Updating: 2.31 > 0.31 2.97 > 0.94
Getting: 2.45 > 0.2 2.67 > 0.49
Seeking: 2.22 > 0.13 3.59 > 1.48
Seeking in preload*: 1.93 > 0.02 1.88 > 0.04
Deleting: 1.85 > 0.051 2.14 > 0.27

* — this operation has no effect because preloading-caching is performed only on the remote station side.

Modules/DBGate/uk - GFDLNovember 2024OpenSCADA 1+r2996