Не сработало, поскольку производительность запросов на такой базе очень плохая.
Код запросов и структура бд подменяются самим WiltonDB.
Для улучшения работы необходимо допиливать запросы и индексы, а это против самой идеи унификации, объединения кода объектов хранилища под версию ms sql.
В данный момент пока на стадии предварительного изучения возможность использования БД хранилища через Willton DB
https://wiltondb.com/
Это позволит иметь одну версию отчетов хранилища и использовать ее же при необходимости развертывания хранилища на базе postgresql.
Отмеченные нюансы:
1. При установке служба WilltonDB может не запускаться из-за отсутствия достаточных прав у пользователя.
После первого сообщения об ошибке нужно в свойствах службы изменить "Вход в систему" на "С системной учетной записью". После этого снова попытаться запустить службу.
Это чаще всего помогает. Но не всегда, в моем случае вообще никакие изменения не заставили службу запуститься.
2. После установки необходимо изменить в конфиге WilltonDB ключ "babelfishpg_tsql.server_collation_name" с дефолтного значения "sql_latin1_general_cp1_ci_as" на "cyrillic_general_ci_as".
Это позволит осуществлять переливку данных в хранилище в помощью DataPumper.
Если такую правку не внести, то объекты в базе хранилища создадутся с несовместимым дефолтным коллейшеном и переливка строковых полей будет падать с ошибкой.
3. WiltonDB по умолчанию устанавливается на дефолтный порт ms sql - 1433. Если сиквел работает на этом же порту, то необходимо его изменить в конфиге WiltonDB.
Параметр "babelfish_tds.port", например на 1833, после этого нужно перезапустить службу WiltonDB.
4. Необходимо указать строку подключения к базе на willtondb в разделе Reporting конфига Логуса, например, так:
<ConnectionString> Data Source=127.0.0.1,1833;Initial Catalog=Logus.HMS.Reporting;User Id=wilton;Pwd=wilton </ConnectionString>
5. Создание базы хранилища как обычно рестартом сервиса Логуса не работает, падает с ошибкой 'ALTER DATABASE' is not currently supported in Babelfish
Помогает создать базу вручную скриптом из SQL Server Management Studio и потом уже рестартовать сервис Логуса для создания всех объектов в готовой базе.
6. Ограничения в синтаксисе, с которыми уже столкнулся при переписывании скриптов:
- Поля представлений могут создаваться с некорректными типам, если явно не кастовать поле до нужного типа в коде представления. Необходимо проверять.
- Не работает переключение языка сессии SET LANGUAGE, всегда только английский.
- Не работает ALTER DATABASE
- Не работает ALTER TABLE ALTER COLUMN NULL/NOT NULL - нельзя менять свойство nullable в колонок.
- Нельзя удалять, добавлять несколько колонок в одном запросе. Каждая колонка отдельно.
- Нельзя удалить индекс, используя его нормальное название. Только через указание точного названия в базе postgres.
Полезные ссылки:
https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/babelfish-compatibility.tsql.limitations-unsupported.html
https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/babelfish-compatibility.tsql.limitations.html
https://github.com/babelfish-for-postgresql/babelfish_compass