GlobalsDB в іншому образі і тонкощі роботи з цією базою даних

    Здрастуйте, дорогі хабрачітателі.
 
Сьогодні я хотів би поділитися з вами досвідом в роботі з NoSQL базою даних GlobalsDB , а так само представити вашій увазі нещодавно розроблений інструмент адміністрування для неї — GlobalsDB Admin . Далі ви знайдете, в основному, різні технічні подробиці, і якщо дана тема вам цікава, ласкаво просимо.
 
 
 
 
 
Мною розроблено програмний продукт, що дозволяє за допомогою графічного інтерфейсу маніпулювати даними всередині GlobalsDB, а також і в СУБД Caché. Про GlobalsDB вже було написано кілька корисних і повчальних статей, з якими ви можете ознайомитися в розділі «читайте також» . Сама по собі GlobalsDB досить проста за своєю структурою, і має невеликий, але достатній набір функцій для реалізації серверних додатків практично будь-якої складності. Відмінними її особливостями є простота, вільне розповсюдження і використання стійкого, випробуваного механізму зберігання даних в так званих глобальний.
 
 GlobalsDB Admin
База даних Globals не має в пакеті установки ніяких інструментів для управління нею, а лише пакет прикладів і кілька утиліт, наприклад, для відновлення WIJ-файла . Але ніби як нічого більше й не потрібно — встанови, створи додаток і працюй собі з базою даних. Але на ранніх етапах ознайомлення з GlobalsDB може бути не зовсім очевидно, що ж знаходиться усередині і як воно розташоване. До того ж, часто виникає завдання зайнятися питанням візуалізації даних в БД. Для ефективного освоєння принципів роботи з GlobalsDB, як і для зручного маніпулювання даними через графічний інтерфейс і був розроблений даний продукт.
 
База даних в GlobalsDB складається з набору Глобаль, кожен з яких є розрідженим масивом. А розріджене масив легко представити у вигляді дерева. Таким чином, інтерфейс програми представляє візуалізацію дерева Глобаль, над яким можна виконувати різні маніпуляції. Такий підхід пояснюється бажанням зробити інтерфейс управління універсальним як для сенсорних пристроїв, так і для комп'ютерів зі своїми пахвами і клавіатурами. З іншого боку, хотілося замінити звичний типовий інтерфейс для всіх подібних інструментів чимось більш наочним, без втрат в комфорті поводження з ним.
 
 
 
 
Про можливості
GlobalsDB Admin має мінімально необхідний набір інструментів для маніпуляції даними: видалення, додавання і зміна глобальний. Основна увага була сконцентрована на візуалізації: можна наочно переглянути будь-яку гілку сховища, якою б величезною вона не була і скільки вузлів б не містила. А Глобаль, які представляють із себе багатовимірний асоціативний масив даних, подаються у вигляді дерева, з яким досить зручно проводити різні операції. Кожен вузол дерева містить в собі інформацію, яка зберігається на певному рівні Глобал. Розташування цієї інформації, або вимір, в якому вона знаходиться вказано на з'єднаннях між вузлами.
 
Сам по собі інструмент для адміністрування являє собою серверну програму і клієнт, розташований в браузері або на мобільному пристрої. Принцип роботи наступний: на стороні сервера запускається програма, написана на NodeJS, яка з одного боку взаємодіє з GlobalsDB, а з іншого очікує підключення клієнтів на певний порт. Так само, якщо була включена відповідна опція в конфігурації, запуститься простий http-сервер, який чи статику — клієнт програми. Після установки з'єднання клієнта з сервером і після процесів авторизації і логіна можна приступати до роботи, маніпулюючи всім цим як клавіатурою, так і покажчиком миші або жестами на сенсорному екрані.
 
 
Установка, настройка і управління
Докладний процес установки можна знайти на сторінці проекту , а тут він буде описаний трохи простіше.
 
 Процес установки
     
  1. Встановлюємо NodeJS , якщо він не був раніше встановлений;

  2.  
  3. Розпаковуємо останню версію GlobalsDB Admin;
  4.  
  5. Міняємо у файлі
    config.js
    абсолютний шлях до
    mgr
    каталогом вашої бази даних і інші цікаві для вас настройки;
  6.  
  7. Переконуємося, що модуль
    node_modules/globalsDB/cache.node
    підходить для вашої системи / бази даних. Якщо архів з GlobalsDB Admin був розпакований не в ОС Windows, вам потрібно буде відшукати
    cache***.node
    модуль в директорії з встановленою базою даних, перейменувати його в cache.node і вказати шлях до нього у файлі
    config.js
    (або перемістити модуль в директорію
    node_modules/globalsDB
    ). Так само можливий варіант завантажити *. Node модуль з офіційного сайту ;
  8.  
  9. Переконуємося, що GlobalsDB (або інстанси Caché, шлях до бази даних якого був прописаний в
    config.js
    ) запущений, і NodeJS вміє виконувати команди (принаймні
    node --version
    повинен давати щось розумне);
  10.  
  11. Виконуємо
    node run
    в директорії проекту, і якщо повідомлень про помилки не з'явилося, то за замовчуванням стане доступний веб-клієнт на знайомому
    127.0.0.1
    .
  12.  
Якщо ж вам потрібно запустити серверний додаток у фоновому режимі, встановіть forever , виконавши
npm install -g forever
, а потім запустивши додаток:
forever start run.js
.
 
Що стосується управління, воно оптимізовано як для настільних ПК, так і для сенсорних пристроїв. Пройшовши успішну авторизацію, ви можете використовувати такі основні комбінації:
 
 Клавіатура
Вибір вузла: стрілки вгору / вниз, вибір дії (перехід, редагування, копіювання, видалення) — стрілки вліво / вправо, клавіша Enter — виконання дії над вузлом, клавіша Backspace — повернення, клавіші — / + — зменшення або збільшення масштабу.
 
 Покажчик і сенсорний екран
Вибір дії над вузлом: натискання на з'єднання між вузлами, натискання на сам вузол — виконання обраного дії, прокрутка вгору / вниз або жест двома пальцями — зміна масштабу. Прокрутка вузла з великою кількістю дочірніх вузлів здійснюється натисканням і переміщенням покажчика.
 
Так само всі подробиці про те, як встановити і поводитися з цим інструментом ви можете подивитися в цьому скрінкаст .
 
 
GlobalsDB tips and tricks
Працюючи з базою даних, як і з будь-яким іншим продуктом, часто виникають якісь труднощі або відкриваються нові горизонти. Постараюся описати, на мій погляд, саме цікаве, з чим довелося зіткнутися.
 
При першій установці бази даних вона виглядає як чорний ящик. Побіжно перегорнувши документацію по інтерфейсу NodeJS, можна було наштовхнутися на першу потрібну функцію
global_directory
, щоб дізнатися, чи лежить в базі даних за замовчуванням хоч щось. Підключившись і отримавши результат виявиться, що там порожньо, що було досить очікуваним. Але насправді це не зовсім так. У корені розташовуються деяку кількість системних Глобаль, а вони приховані. Наприклад, вийде дістати глобал з ім'ям "
%
", або"
%IS
". Щоб відобразити цей глобал в GlobalsDB Admin, досить натиснути на + (додати) у кореневого вузла і ввести його ім'я, наприклад, "
%IS
" без установки значення. Натиснувши «add», можна буде переглянути вміст даного Глобал:
 
 
 
Ясна річ, там захована різна службова інформація, і краще утриматися від її зміни. Але можна так само успішно додавати свої Глобаль, називаючи їх з префіксом "
%
". Вони так само не повернутися в результаті виконання функції
global_directory
.
 
Іншим цікавим моментом є те, що самій GlobalsDB байдуже, які username, password і namespace будуть передані функції
db.open
. З одного боку, в GlobalsDB відсутнє таке поняття як користувач, але з іншого, документація по функції
open
каже писати саме так. Все тому, що додаток можна дуже просто переналаштувати для роботи з, наприклад, самою базою даних Caché — досить вказати відповідний шлях до папки mgr, і готово — тепер робота йде в зазначеному просторі імен від прав користувача, під яким був виконаний вхід. Таким чином, GlobalsDB Admin може взаємодіяти не тільки безпосередньо з базою даних Globals, а й з іншими продуктами InterSystems.
 
 
Висновок
У проекту є своя домашня сторінка , де ви можете детально з ним ознайомитися, завантажити і навіть випробувати . А що стосується статті, вважаю, вона придивиться не тільки знаючим, а й тим, хто тільки починає працювати з Globals.
 
 
 

Читайте також

 Знайомство з GlobalsDB
 Трохи про GlobalsDB Node.JS API
 Хороший опис переваг GlobalsDB + NodeJS
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.