Pull to refresh
15
0
Send message

Транзакции в глобалах InterSystems IRIS

Reading time8 min
Views1.3K
InterSystems IRIS and transactionСУБД InterSystems IRIS поддерживает любопытные структуры для хранения данных — глобалы. По сути это многоуровневые ключи с различными дополнительными плюшками в виде транзакций, быстрых функций для обхода деревьев данных, блокировок и своего языка ObjectScript.

Подробнее о глобалах в цикле статей «Глобалы — мечи-кладенцы для хранения данных»:

Деревья. Часть 1
Деревья. Часть 2
Разреженные массивы. Часть 3

Мне стало интересно как реализованы транзакции в глобалах, какие там есть особенности. Ведь это совершенно иная структура для хранения данных, чем всем привычные таблицы. Намного более низкоуровневая.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments7

PHP-модуль для работы с иерархическими данными в InterSystems IRIS

Reading time7 min
Views2.2K
image PHP с начала своих времён славен (и критикуем) тем, что поддерживает интеграцию с массой библиотек, а также с практически со всеми СУБД существующими на рынке. Однако в силу каких-то странных причин в нём не было поддержки иерархических баз данных на глобалах.

Глобалы — это структуры для хранения иерархической информации. Они чем-то напоминают базы «key -> value» только с тем отличием, что ключ может быть многоуровневым:
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments1

Довериться Кодду или своим объектам?

Reading time8 min
Views4.9K

Хранимые объекты без головной боли: простой пример работы с объектами Caché на языках ObjectScript и Python



Замок Нойшванштайн

В июне 2020 года ровно 50 лет табличным хранилищам данных или говоря формально — реляционной модели данных. Вот официальный документ – та самая знаменитая статья. За что говорим огромное спасибо доктору Эдгару Фрэнку Кодду. И, между прочим, реляционная модель данных входит в список важнейших мировых инноваций последних 100 лет по версии Форбса.

С другой стороны, как ни странно, Кодд считал реляционные базы данных и язык SQL искаженной реализацией своей теории. В качестве ориентира, он даже разработал 12 правил, которым должна удовлетворять каждая система управления реляционными базами данных (на самом деле это 13 правил). И, по правде говоря, на сегодня, в мире не найти СУБД удовлетворяющих хотя бы «Правилу 0» Кодда и, следовательно, никто не может называть свою СУБД на 100% реляционной :) Может есть исключения, подскажите?
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments78

Резервное копирование виртуальной машины и скрипты заморозки/оттаивания InterSystems Caché

Reading time16 min
Views6.1K

В этой статье я рассмотрю стратегии резервного копирования Caché с использованием систем внешнего резервного копирования и приведу примеры интеграции с решениями на основе снимков состояния виртуальной машины (VM snapshot, снапшот). Большинство решений, с которыми я сталкиваюсь сегодня, развернуты на базе Linux и VMware, поэтому я приведу примеры решений именно с использованием снапшотов VMware.

Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments0

GUI на Grafana для mgstat — утилиты мониторинга системы на InterSystems Caché, Ensemble или HealthShare

Reading time13 min
Views6K
Добрый день! Данная статья является продолжением статьи "Дружим Prometheus с Caché". Мы рассмотрим вариант визуализации результатов работы утилиты ^mgstat. Эта утилита предоставляет статистику производительности Caché, а именно, число вызовов глобалов и рутин, локальное и по ECP, длину очереди демона записи, число блоков, записанных на диск и считанных с диска, объем ECP-трафика и прочее. Запускаться ^mgstat может как отдельно (интерактивно или джобом), так и при работе другой утилиты оценки производительности ^pButtons.

Изложение материала хотелось бы разбить на две части: в первой графически показать непосредственно статистику, собираемую ^mgstat, а во второй — рассмотреть, как именно эта статистика собирается. Если коротко, то используются $zu-функции. Однако к большинству собираемых параметров есть и объектный интерфейс через классы пакета SYS.Stats. И далеко не все параметры, которые можно собрать, показываются в ^mgstat. В дальнейшем мы попробуем все их отобразить на Grafana-дашбоардах. В этот же раз покажем только то, что нам предоставляет сам ^mgstat. Кроме того, попробуем на вкус Docker-контейнеры.

Grafana mgstat Dashboard
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments15

DeclarativeCOS — Декларативное программирование на Caché

Reading time5 min
Views2.6K
Проект DeclarativeCOS — крик души по теме программирования на COS.

Цель проекта — обратить внимание сообщества к улучшению внутреннего ядра COS.

Идея проекта — поддержка лаконичного синтаксиса при работе с циклами и коллекциями.

image

Итак, что же лаконичного я придумал? Добро пожаловать в примеры!
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments12

Релиз интеграционной платформы Ensemble 2017.1

Reading time2 min
Views2.1K

image
В догонку к списку изменений СУБД Caché 2017.1 публикуем аналогичный список для Ensemble.


Список изменений на английском


На русском – под катом.

Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments0

Релиз СУБД InterSystems Caché 2017.1

Reading time7 min
Views3.6K

image
Всем привет! Буквально вчера состоялся выпуск очередной версии СУБД Caché под номером 2017.1. Спешим поделиться списком изменений в первой версии 2017-го года. Как всегда, вначале публикуем ссылку на полный список изменений (на английском языке).

Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments2

Как я разбирал docx с помощью XSLT

Reading time16 min
Views62K

Задача обработки документов в формате docx, а также таблиц xlsx и презентаций pptx является весьма нетривиальной. В этой статье расскажу как научиться парсить, создавать и обрабатывать такие документы используя только XSLT и ZIP архиватор.

Читать дальше →
Total votes 45: ↑44 and ↓1+43
Comments15

Просмотр глобалов в Портале Управления СУБД Caché

Reading time2 min
Views3.5K

Вызывает антирес и такой ишо разрез
(Царь из «Про Федота-стрельца»)


Всё в Caché хранится в глобалах. Данные, метаданные, классы, программы. Для просмотра глобалов в Портале управления существует удобный инструмент — страница «Просмотр данных глобала». Её-то мы сегодня и рассмотрим.


Примером глобала нам будет служить ^DeepSee.Cubes. Это глобал, в котором хранится список кубов DeepSee. Для чтения этой статьи знать DeepSee вам совершенно не обязательно.


Чтобы попасть на страницу «Просмотр данных глобала», откройте Портал Управления, выберите «Обозреватель системы» (System Explorer) → «Глобалы» (Globals). Затем слева нужную область, и нажмите «Просмотр» рядом с нужным глобалом.

Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments0

Дружим Prometheus с Caché

Reading time9 min
Views5.5K
Prometheus – одна из систем мониторинга, адаптированных под сбор time series данных.
Она достаточно проста в инсталляции и первоначальной настройке. Имеет встроенную графическую подсистему для отображения данных PromDash, однако сами же разработчики рекомендуют использовать бесплатный сторонний продукт Grafana. Prometheus умеет мониторить много чего («железо», контейнеры, различные СУБД), однако в данной статье хотелось бы остановиться на реализации мониторинга инстанса Caché (точнее, инстанс будет Ensemble, но метрики будем брать кашовые). Кому интересно — милости просим под кат.

Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments9

Релиз СУБД InterSystems Caché 2016.2

Reading time3 min
Views3.7K

Всем привет! Состоялся очередной выпуск новой версии Caché под номером 2016.2. Изменений не так много, но все они важные. Как всегда, вначале публикуем ссылку на полный список изменений (на английском языке).


Итак.

Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments7

Класс удаленного прокси — это не (очень) больно

Reading time16 min
Views4K

Fish Out Of Watermelon by Joan Pollak

(Динамическая диспетчеризация спешит на помощь)


После нескольких статей про MapReduce нам показалось необходимым еще раз отойти в сторону и поговорить про инфраструктуру, которая поможет облегчить построение решения MapReduce. Мы, по-прежнему, говорим про InterSystems Caché, и, по-прежнему, пытаемся построить MapReduce систему на базе имеющихся в системе подручных материалов.


На определенном этапе написания системы, типа MapReduce, встает задача удобного вызова удаленных методов и процедур (например, посылка управляющих сообщений с контроллера на сторону управляемых узлов). В среде Caché есть несколько простых, но не очень удобных методов достичь этой цели, тогда как хочется бы получить именно удобный.


Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments9

MapReduce из подручных материалов. Часть III – собираем все вместе

Reading time11 min
Views4.7K
Mosaic by Joan PollakВ первой (достаточно капитанской) части этой серии мы рассказали про базовые концепции MapReduce почему это плохо, почему это неизбежно, и как с этим жить в других средах разработки (если вы не про Си++ или Java). Во второй части мы-таки начали рассказывать про базовые классы реализации MapReduce на Caché ObjectScript, введя абстрактные интерфейсы и их первичные реализации.
Сегодня пришел наш день! – мы покажем первый пример собранный в парадигме MapReduce, да, он будет странный и не самый эффективный, и совсем не распределенный, но вполне MapReduce.

Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments0

Разработка в InterSystems Caché в вашей любимой IDE

Reading time11 min
Views7.2K
Здравствуйте! В InterSystems Caché есть вполне практичный способ разрабатывать решения без использования интегрированных в неё инструментов. Весь код проекта можно хранить в виде традиционных файлов с исходным кодом, редактировать в любимой среде разработки, индексировать системой контроля версий и одной командой выполнять импорт и компиляцию классов в СУБД Caché. Более того, это предоставляет возможность использовать любые другие внешние инструменты, например, для сборки и препроцессинга кода. В данной статье будет рассмотрен пока что не традиционный для Caché, но достаточно практичный цикл разработки проектов.
Интересно? Продолжайте чтение
Total votes 14: ↑14 and ↓0+14
Comments14

MapReduce из подручных материалов. Часть II – базовые интерфейсы реализации

Reading time9 min
Views5.4K

Take it like a man by Joan PollakВ предыдущей части серии мы (в 100500й раз) попытались рассказать про основные приемы и стадии подхода Google MapReduce, должен признаться, что первая часть была намерено "капитанской", чтобы дать знать о MapReduce целевой аудитории последующих статей. Мы не успели показать ни строчки того, как всё это мы собираемся реализовывать в Caché ObjectScript. И про это наша рассказ сегодня (и в последующие дни).


Напомним первоначальный посыл нашего мини-проекта: вы всё еще планируем реализовать MapReduce алгоритм используя те подручные средства, что есть в Caché ObjectScript. При создании интерфейсов, мы попытаемся придерживаться того API, что мы описали в предыдущей статье про оригинальную реализацию Google MapReduce, любые девиации будут озвучены соответствующе.


Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments11

Какая-такая Data? Или ещё раз про MapReduce

Reading time10 min
Views20K
Big Fish Small Fry by John Pollack Если Вы последние 10 лет провели на удаленном острове, без интернета и в отрыве от цивилизации, то специально для Вас мы попытаемся еще раз рассказать про концепцию MapReduce. Введение будет небольшим, в объеме достаточном, для реализации концепции MapReduce в среде InterSystems Caché. Если же Вы не сильно далеко удалялись последние 10 лет, то сразу переходите ко 2ой части, где мы создаем основы инфраструктуры.


Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments15

Ontodia + Caché — визуализатор онтологий для навигации по хранимым сущностям InterSystems Caché

Reading time6 min
Views3.3K

Про библиотеку Ontodia


Для начала имеет смысл остановиться на том, что же такое Ontodia и что такое СУБД Caché. Пожалуй, начнем с пока что менее известного продукта — Ontodia. Ontodia — это результат совместного проекта международной лаборатории ISST Университета ИТМО и компании VISmart, занимающейся разработкой программного обеспечения в области семантического веба (semantic web). Сервис Ontodia изначально был веб приложением, предназначенным для визуализации исключительно связанных данных (linked data) и онтологий. Мы создали этот сервис, потому что не сумели найти простых, доступных и эффективных инструментов понятной визуализации связанных данных семантического веба.
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments4

iKnow Review Analyzer (iKRA)

Reading time4 min
Views12K
image

Intro


С помощью технологии InterSystems iKnow мы сделали систему оценки отзывов под названием iKnow Reviews Analyzer (iKRA). О прототипе проекта можно прочитать здесь. iKRA анализирует текстовые отзывы пользователей, автоматически выставляя численную оценку предмету исследования. Эти функции могут быть очень кстати, например, на сайтах онлайн-продаж, тематических форумах или сборниках медиа контента. Другими словами, везде, где идет обсуждение сообществом каких-либо вещей.
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments2
1
23 ...

Information

Rating
Does not participate
Registered
Activity