SQl Search

Взаимодействие с БД Galaxy через SQL запросы

Конфигурация каждого проекта System Platform (Galaxy) хранится в виде базы данных в СУБД MS SQL Server и в файловой системе узла с ролью Galaxy Repository. Назначение всех файлов, таблиц и представлений подробно не задокументировано. Основным интерфейсом по взаимодействию с проектом Galaxy является среда разработки IDE.
Ниже приведено несколько основных ситуаций в которых может быть полезно считывание данных непосредственно из БД Galaxy используя SQL запросы:

            1) Поиск ошибок конфигурации

      В процессе пусконаладки или разработки проекта может встречаться большое количество ошибок в объектах, в конфигурации.

В IDE вы можете найти только объекты, в которых есть ошибки:




Но данный способ при большом количестве объектов с некорректной конфигурацией не позволяет быстро найти необходимый объект, например, который пишет сообщения подобного типа в лог:

Configuration error: Invalid reference - ***** does not exist.



В данном случае, для более удобного и быстрого поиска источника данных сообщений можно пользоваться следующим SQL запросом:

SELECT referring_TagName, referringPrimitiveName, reference_string, referringAttribute_full_name

FROM [Имя галактики].[dbo].[internal_reference_primitive_attribute]

WHERE reference_string = '*****'

В котором необходимо подставить имя вашей галактики (Имя галактики) и само значение InvalidReference (******).

Пример:


где:

-reference_string – искомое выражение
-referring _ TagName - наименование объекта/символа в библиотеке, где содержится данное выражение;
-referringPrimitiveName – символ/скрипт или атрибут в объекте;

            2) Получение списка пользователей

      При необходимости отследить какие именно пользователи добавлены в настройки безопасности в вашей галактике можно воспользоваться запросом:
SELECT user_profile_id , user_profile_name , default_security_group

FROM [Имя галактики].[dbo].[user_profile]

Пример:


Данный запрос применим для получения списка пользователей, когда-либо логинившихся в Galaxy при использовании настроек безопасности OS User/Group basedа также он отображает полный список добавленных пользователей при использовании Galaxy Security.

            3) Поиск всех атрибутов определённого объекта в базе Galaxy

Для решения данной задачи :    

   1. Необходимо выяснить системный ID необходимого объекта 
Дальнейшие запросы применяются к БД Galaxy

SELECT gobject_id, tag_name

FROM gobject WHERE tag_name = ‘Object Name’
Пример:


Запрос возвращает наименование запрошенного объекта и его ID

       2. Указанный ID необходимо использовать в следующем запросе для получения полного списка атрибутов запрашиваемого объекта:

SELECT gobject_id, attribute_name

FROM dynamic_attribute where gobject_id = 718
Пример:


            4) Поиск задеплоенных объектов

     При необходимости вывести перечень объектов, которые в данный момент помечены как задеплоенные, вам потребуются ID объектов WinPlatform и AppEngine, которые вы можете найти в SMC->Platform Manager 

SELECT a.gobject_id, a.tag_name, a.deployed_package_id

FROM gobject a left outer join instance b

ON a.gobject_id = b.gobject_id

WHERE b.mx_platform_id = (ID WinPlatform) and mx_engine_id = (ID AppEngine)

Пример:


 

Данные запросы были проверены для версий 2017 и 2020