powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / миграция СУБД Cache -> MS SQL Server
11 сообщений из 11, страница 1 из 1
миграция СУБД Cache -> MS SQL Server
    #33829949
SwordFish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Возникла нелегкая задача – экспортировать данные из системы, работающей на СУБД Cache в систему на MS SQL. Подскажите, каким образом можно экспортировать глобали в базу MS SQL для дальнейшей обработки.

Спасибо!
...
Рейтинг: 0 / 0
миграция СУБД Cache -> MS SQL Server
    #33830126
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через Cache SQL Manager пробовали ?
Cache SQL Tables into ASCII Files

Ну а дальше в MS SQL, дело техники...
...
Рейтинг: 0 / 0
миграция СУБД Cache -> MS SQL Server
    #33830482
SwordFish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нужно экспортировать ГЛОБАЛИ
...
Рейтинг: 0 / 0
миграция СУБД Cache -> MS SQL Server
    #33830695
Hoar Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если потребуется это делать хотя бы еще пару раз, то можно использовать Cache SQL Storage для того, чтобы навернуть на ваши глобали классы Cache.

Если операция разовая, то проще всего создать свой запрос на основе Cache Object Script, который будет виден из SQL Server как хранимая процедура. Результаты этого запроса вы определяете самостоятельно. Пример:

ClassMethod testqueryClose(ByRef qHandle As %Binary) As %Status [ PlaceAfter = testqueryExecute ]
{
write "--------------------------------",!
write "Start: ",$ZDT($LI(qHandle,2)),!
write "End: ",$ZDT($H),!
Quit $$$OK
}

ClassMethod testqueryExecute(ByRef qHandle As %Binary) As %Status
{
set qHandle=$LB("",$H) ;; ID,Start
Quit $$$OK
}

ClassMethod testqueryFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status [ PlaceAfter = testqueryExecute ]
{
set Row="" ;; reset the row
set i=$LI(qHandle,1) ;; previous eid
set eid=$order(^a(i)) ;; current eid

if eid="" {
set AtEnd=1
}
else {
set name=$g(^a(eid))
set Row=$LB(eid,name) ;; set the result
set $LI(qHandle,1)=eid ;; pass the current eid to the next fetch
}
Quit $$$OK
}

Query testquery() As %Query(ROWSPEC = "eid:%String,name:%String")
{
}

Запрос testquery можно определить как хранимую процедуру. Делаем глобал:

1) ^a(1)="Serg", ^a(2)="InterSystems", ^a(3)="Cache-rulezz"
2) Запускаем testquery
(3)Результат:
eid:1 name:Serg
eid:2 name:InterSystems
eid:3 name:Cache-rulezz
...
Рейтинг: 0 / 0
миграция СУБД Cache -> MS SQL Server
    #33832711
SwordFish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скажу сразу - опыта работы к Cache нет.

если я правильно понимаю: %Library.CacheSQLStorage - шаблон класса (говоря терминами с++), и на его основе мы определяем работу с глобалями через реляционные механизмы доступа.

все хорошо, НО:
* глобалей у нас (мягко скажем) много
* опыта работы с Cache'ой (мягко скажем) мало
* нужен механизм только _чтения_ данных, причем "одноразовый". план работ примерно такой - выгружаем все что есть, изучаем, пишем конвертер, в день Икс выгружаем свежие данные и запускаем конвертер. все.

идеальный вариант - механизм, позволяющий "оптом" перекинуть все глюбали в формат для загрузки "куда нибудь". ;))
...
Рейтинг: 0 / 0
миграция СУБД Cache -> MS SQL Server
    #33832927
CJIECAPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно вам не стоит выгружать все глобали. Есть подозрение, что многие из них используются только как индексы, соответсвенно будет достаточно выгрузить только часть, а потом уже в полученных таблицах добавить необходимые индексы.
Как вариант для выгрузки можно написать небольшую рутинку, обходящую глобали и формирующую xml, который уже можно будет скормить MSSQL.
...
Рейтинг: 0 / 0
миграция СУБД Cache -> MS SQL Server
    #33833517
SwordFish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хорошо и качественно написать не получится - отсутствует опыт.
...
Рейтинг: 0 / 0
миграция СУБД Cache -> MS SQL Server
    #33833888
SwordFish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа!
Мы готовы обсудить сроки и стоимость работ по "извлечению" информации.

г. Санкт-Петербург, e-mail в визитке.
...
Рейтинг: 0 / 0
миграция СУБД Cache -> MS SQL Server
    #33834533
Maksim UM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вам еще не сказали самый простой способ экспорта глобалей :)
в консоли (в нужном namespace): D^%GO
это программа экспорта глобалей.
можно прямо из проводника Cache (win) экспортировать глобали.
получится текстовый файл, потом его можно спокойно парсить.
можно написать простую программу на COS (встроенный язык),
которая запишет в файл глобал в нужном формате.
...
Рейтинг: 0 / 0
миграция СУБД Cache -> MS SQL Server
    #33834627
MX -- ALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SwordFishскажу сразу - опыта работы к Cache нет.

если я правильно понимаю: %Library.CacheSQLStorage - шаблон класса (говоря терминами с++), и на его основе мы определяем работу с глобалями через реляционные механизмы доступа.

все хорошо, НО:
* глобалей у нас (мягко скажем) много
* опыта работы с Cache'ой (мягко скажем) мало
* нужен механизм только _чтения_ данных, причем "одноразовый". план работ примерно такой - выгружаем все что есть, изучаем, пишем конвертер, в день Икс выгружаем свежие данные и запускаем конвертер. все.

идеальный вариант - механизм, позволяющий "оптом" перекинуть все глюбали в формат для загрузки "куда нибудь". ;))

наш инструмент MX отобразит каждую м-глобаль на отдельный лист EXCEL
(если не влезет вся на лист - то по кускам)
и еще дополнительно может продублировать эти таблицы в файлы CSV

затем делайте с ними что хотите

mx@enters.eu
...
Рейтинг: 0 / 0
миграция СУБД Cache -> MS SQL Server
    #33834854
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SwordFishГоспода!
Мы готовы обсудить сроки и стоимость работ по "извлечению" информации.

г. Санкт-Петербург, e-mail в визитке.
MedLab / MadTrack ?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / миграция СУБД Cache -> MS SQL Server
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]