Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Экспорт всех данных БД из Cache 2007 / 25 сообщений из 36, страница 1 из 2
18.01.2010, 11:40
    #36415467
Gluck_13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Добрый день, уважаемые специалисты по БД Cache.

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

А задачка возникла следующая:

У наших заказчиков имеется некоторое решение на базе СУБД Cache, несколько лет уже не поддерживаемое разработчиком. Они просят выполнить конвертацию данных в нашу систему на другой СУБД. Я отправляюсь в командировку к ним с целью доставить данные к нам для дальнейшего изучения и разработки программы конвертации. Про структуру БД пока ничего не знаю, известно лишь, что сервер - Cache 2007.

Отсюда вопросы к знатокам:
1. Можно ли (и как) выгрузить все данные из БД Cache в какой-либо общедоступный формат (XML, MDB, DBF, ...) без потери данных?

2. Если на п.1 ответ отрицательный, то можно ли (и как) перенести данные с сервера 2007 на Evaluation-версию сервера 2009.1, доступную для загрузки на сайте InterSystems. Если можно, то есть ли у Evaluation-version какие-либо ограничения на объем данных или только ограничение на количество подключений?

3. Как мне подготовиться к данной процедуре (какую литературу и в каких частях следует почитать) с учетом того, что выезд состоится через неделю, а время на работу у заказчика - 3 дня? Какой инструментарий может понадобиться?

Заранее благодарен за ответы.
...
Рейтинг: 0 / 0
18.01.2010, 12:02
    #36415534
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
1. Маловероятно. В портале есть мастера по экспорту и миграции данных. Может выгрузить в текстовый файл или залить по ODBC соединению в другую базу - таблицы .

Вот только таблицы - это всего лишь один из подвидов проекции данных.
И не факт что они у вас там есть. И не используется ничего сверх этого.
Опять же если в таблице есть встроенные классы или списки - в реляционную базу они нормально не отобразятся.

2. Через бэкап. Евалюшен имеет ограничение на размер кеша данных, что критично для работы и работает только локально. Насчет ограничений по размеру базы не слышал.

3. Вероятно ту что на сайте интерсистемс - как минимум руководство по администрированию - отсюда
...
Рейтинг: 0 / 0
18.01.2010, 13:14
    #36415800
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Gluck_13У наших заказчиков имеется некоторое решение на базе СУБД Cache, несколько лет уже не поддерживаемое разработчиком.
А разработчик-то кто? Он жив еще? Есть выходы на него? Какая версия Кащея?

Поскольку может так получиться что вы вообще не сможите "взять" данные без особой подготовки в Каше. Мало того! Даже подготовленому человеку нужно точно знать что, как и где хранится.
Остальное все дело времени...

Просто я имею достаточный опыт в "закачках" из других БД, благо почти все были ДБФные... Так хоть с форматом хранения не нужно заморачиваться.
...
Рейтинг: 0 / 0
18.01.2010, 14:34
    #36416025
Gluck_13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Спасибо за ответ!

Ptn1. Маловероятно. В портале есть мастера по экспорту и миграции данных. Может выгрузить в текстовый файл или залить по ODBC соединению в другую базу - таблицы .

Вот только таблицы - это всего лишь один из подвидов проекции данных.
И не факт что они у вас там есть. И не используется ничего сверх этого.
Опять же если в таблице есть встроенные классы или списки - в реляционную базу они нормально не отобразятся.


А нет средств для выгрузки в XML с сохранением вменяемой структуры?

Ptn
2. Через бэкап. Евалюшен имеет ограничение на размер кеша данных, что критично для работы и работает только локально. Насчет ограничений по размеру базы не слышал.


Развернется ли бэкап c 2007-го сервера на 2009.1 ?
Кстати, работает ли Евалюшен с ODBC-драйвером?
...
Рейтинг: 0 / 0
18.01.2010, 14:40
    #36416042
Gluck_13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
krvsa
А разработчик-то кто? Он жив еще? Есть выходы на него? Какая версия Кащея?


Как сказал представитель заказчика, с разработчиком они не контактируют. Причин не объяснял. Версию КШ вытащили из него с трудом. Говорит, что 2007-я, точнее не сказали. Версию ОС сервера назвать затруднились, по косвенным признакам - Windows server 200X.

То есть, судя по всему, ситуация будет осложняться отсутствием администратора БД, который хоть что-то об этой БД знает.

Нам хотя бы вывезти данные на Evaluation-версии сервера, чтобы потом спокойно и подробно разобраться с ними в "лабораторных" условиях.
...
Рейтинг: 0 / 0
18.01.2010, 15:10
    #36416117
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Ммм, дааа... Задачка у вас не из лёгких... Иди туда, не зная куда. Принеси то, не зная что.
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
18.01.2010, 15:13
    #36416125
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Gluck_13А нет средств для выгрузки в XML с сохранением вменяемой структуры?
Есть метод класса который может записать все, что угодно из Каше в xml-файл.

Код: plaintext
d $system.OBJ.Load("список_того_что_нужно","путь_и_имя_файла")

Но нужно знать что записывать и что есть что в самих данных.
...
Рейтинг: 0 / 0
18.01.2010, 15:15
    #36416129
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Gluck_13Как сказал представитель заказчика, с разработчиком они не контактируют.
Кто хоть это? Организация или отдельный человек? Может он тут сидит, таки подскажет вам чего...
...
Рейтинг: 0 / 0
18.01.2010, 15:16
    #36416137
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Gluck_13Развернется ли бэкап c 2007-го сервера на 2009.1 ?
Кстати, работает ли Евалюшен с ODBC-драйвером?

Хм... а вот кстате не факт - там в какой то версии сменили формат cbk файлов...

Тогда просто копируете при выключенной базе cache.dat-ы
---

А насчет XML - _системного_ такого увы нет.

Поддержка выгрузки данных в классах в XML задается программистом - а это значить надеяться что разработчик использовал только стандартные классы и поддержку эту включал.

Если там хоть чуть чуть есть работа на прямом доступе - нужно производить анализ глобалов и выяснять отношения в них.

Так что первое наверное - определить список рабочих баз - скопировать их и поднять на эвалюшене.
...
Рейтинг: 0 / 0
18.01.2010, 15:18
    #36416143
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
krvsaGluck_13А нет средств для выгрузки в XML с сохранением вменяемой структуры?
Есть метод класса который может записать все, что угодно из Каше в xml-файл.

Код: plaintext
d $system.OBJ.Load("список_того_что_нужно","путь_и_имя_файла")

Но нужно знать что записывать и что есть что в самих данных.

ну дык он и выгрузить $LISTBILD-ы в base64 закодированные
...
Рейтинг: 0 / 0
18.01.2010, 15:27
    #36416168
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Ptn ну дык он и выгрузить $LISTBILD-ы в base64 закодированные
Таки раскодировать может он сумеет...
...
Рейтинг: 0 / 0
18.01.2010, 15:29
    #36416176
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Аааа! Ты про данные класса. Ну да Не прокатит... Мы-то пока все больше с глобалами якшаемся.
Может и у них задачка старая... Без классов писаная...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
18.01.2010, 17:24
    #36416467
MasteRus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Добрый день. В свое время у меня была почти такая же ситуация. Я установил у себя Cache, потом сделал бэкап и потом восстановил его у себя. Отдельно идут csp-страницы(если есть), их надо просто скопировать. (у меня ушло на это примерно день). Дальше я примерно месяц смотрел структуру приложения и параллельно изучал Cache. Теперь по вашим вопросам

1. У нас идет в соседней теме почти аналогичное обсуждение, рекомендую почитать там, некоторые метода и способы там предложены.

2. Я бы предложил поискать у владельцев базы дистрибутив именно той версии, чтобы потом не было проблем. Если невозможно, то бэкап.

3. Книг и пособий не так уж много, думаю можно перечислить их:
а) Руководство по администрированию и онлайн-документацию, ссылки уже были
б) В. Кирстен, М.Ирингер, Б.Рёриг, П.Шульте. СУБД Cache. Объектно-ориентированная разработка приложений. Учебный курс
в) Учебные курсы Cache' Object QuickStart, Csp QuickStart, Cache Configuration API Reference
г) Разработка приложений баз данных в архитектуре клиент-сервер для СУБД Cache/Сост., Шиловский О. А., Давыдов Д.А. - Волгоград: ВолгГТУ, 2005. – 38 с.
д) Постреляционная СУБД Cache (методическое пособие) Новосибирск 2004(Новосибирский государственный университет Высший колледж информатики Иванчева Н.А., Иваньчева Т.А)
е) Статьи на Citforum.ru
...
Рейтинг: 0 / 0
18.01.2010, 20:58
    #36416820
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
"выполнить конвертацию данных в нашу систему на ДРУГОЙ субд" - "чума на оба ваших дома" }:[

1.Через портал управления просмотреть список областей Cache
2.Области отличные от %SYS,DOCBOOK,SAMPLES должны стать объектом вашего пристального внимания. В них должно быть реализовано искомое приложение.
3.Для каждой области определена одна или несколько баз данных (Вас должны интересовать отличные от CacheTemp).
4.Остановите Cache, скопируйте файлы баз данных (cache.dat)
5.Для каждой области может быть определено csp-приложение, скопируйте каталоги их физического расположения
6.Желательно обзавестись дистрибутивом Cache той же версии
7.На тестовой машине восстановить конфигурацию каталогов, а затем баз данных и областей Cache

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

Используйте социальный инжиниринг ;)
...
Рейтинг: 0 / 0
19.01.2010, 05:30
    #36417083
kolesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Gluck_13
Во первых строках должен предупредить, что в Cache я абсолютный чайник, и мне только предстоит первое знакомство с этой СУБД.

В таких случаях мы взяли за правило привлекать на коммерческой основе профессионалов. Экономит уйму времени и денег. Кроме того, избавляет от необходимости забивать голову странными вещами типа Cаche' ;)
Образец договора могу выслать.

Gluck_13Они просят выполнить конвертацию данных в нашу систему на другой СУБД.
Я правильно понимаю, что приложение у Вас уже есть. В т.ч. и структура данных в Вашей системе уже готова? Т.е. речь идет только о переносе данных в виде, соответствующем готовой структуре?

Gluck_13Про структуру БД пока ничего не знаю, известно лишь, что сервер - Cache 2007.
Есть шанс, правда небольшой, что система сделана на объектах и конвертация не займет много времени.
Свою-то систему Вы знаете. Можете ее сложность описать в терминах "движок, количество таблиц, количество данных, количество связей..."?

Gluck_13Можно ли (и как) выгрузить все данные из БД Cache в какой-либо общедоступный формат (XML, MDB, DBF, ...) без потери данных?
Можно, но если база сделана на чистых глобалах, такая выгрузка вместе с последующим парсингом получившегося, может оказаться на порядок дороже прямого переноса данных в Вашу структуру.

Хотя, задачка переноса любого глобала в XML должна решаться за 5 минут... коллегами, хорошо понимающими $o,$d и $n
...
Рейтинг: 0 / 0
19.01.2010, 13:00
    #36417839
kolesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
ClassMethod Glo2XML(gloindex,tab As %String)
{
	if '$d(tab) {
		s tab = ""
		w "<?xml version=""1.0"" encoding=""utf-8""?>",!
	}
	q:$g(gloindex)="" ""
	w tab,"<node>",!
	// Индекс:
	s index = $zcvt($e($p(gloindex,"(",2),1,*-1),"O","XML")
	w tab,$c(9),"<index>"_index_"</index>",!
	// Данные:
	if $d(@gloindex)'[ 0  {
		s data = $g(@gloindex)
		s:$lv(data) data = $lts(data,, 1 )
		s data = $zcvt(data,"O","XML")
		w tab,$c( 9 ),"<data>"_data_"</data>",!
	}
	// Подузлы
	if $d(@gloindex)>= 10  {
		s key = ""
		f  {
			s key = $o(@gloindex@(key))
			q:key=""
			if $e(gloindex,*)=")" {
				s nextGloIndex = $e(gloindex, 1 ,*- 1 )_","""_key_""")"
			} else {
				s nextGloIndex = gloindex_"("""_key_""")"
			}
			d ..Glo2XML(nextGloIndex,tab_$c( 9 ))
		}
	}
	w tab,"</node>",!
	q
}
(старожилы должны поправить - я в прямом доступе не силен ;)
при вызове с одним аргументом, например ^AAA возвращает xml-представление данных Cache' в виде
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<?xml version="1.0" encoding="utf-8"?>
<node>
        <index></index>
        <data> 231 </data>
        <node>
                <index>"0"</index>
                <data> 51 </data>
        </node>
        <node>
                <index>"50"</index>
                <data> 350306 </data>
                <node>
                        <index>"50","1"</index>
                        <data>!!!!!!!!!!!!!!!! 0022 </data>
                        <node>
                                <index>"50","1","3"</index>
                                <data>!!!!!!!!!!!!!!!! 00 </data>
                        </node>
                </node>
        </node>
        <node>
                <index>"51"</index>
                <data> 349138 </data>
                <node>
                        <index>"51","1"</index>
                        <node>
                                <index>"51","1","3"</index>
                                <data> 349138 </data>
                        </node>
                </node>
        </node>
</node>

осталось перебрать все глобалы и перенаправить запись в файл... и оп-ля... начинается самый геморрой ;)
...
Рейтинг: 0 / 0
19.01.2010, 18:09
    #36418860
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Имя разработчика значит остаётся тайной...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
07.09.2010, 14:27
    #36834033
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Думаю не стоит открывать новую тему. У меня такой вопрос. Как можно выгрузить информацию из глобала в текстовый файл и в определенный каталог. Имя каталога уже есть и из него берутся файлы для формирования нового глобала.

P.S. Я в Cache новичок и многого еще не понимаю :)
...
Рейтинг: 0 / 0
07.09.2010, 14:38
    #36834069
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Ostika , как вариант...

Код: plaintext
1.
2.
3.
s data="имя_глобала.gbl"
s file="путь_и_имя_файла.xml"
d $system.OBJ.Export(data,file)

Будет записан xml-файл определённой структуры...
...
Рейтинг: 0 / 0
07.09.2010, 15:15
    #36834190
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
krvsa, спасибо, сейчас попробую

"путь_и_имя_файла.xml" у меня из пути есть только название каталога. А сам каталог на др. компьютере. как быть?
...
Рейтинг: 0 / 0
07.09.2010, 15:18
    #36834204
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Ostikaкак быть?
Указывать сетевой путь... Само имя файла придумать самостоятельно...
...
Рейтинг: 0 / 0
07.09.2010, 15:19
    #36834210
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
Ostika , каталог на другом компе должен быть в доступе (на запись) серверу Каше! Иначе ничего не запишешь...
...
Рейтинг: 0 / 0
07.09.2010, 15:20
    #36834211
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
А вот так можно?
Просто он при загрузке в глобал пишет так: mask=folder_"*.txt"
Код: plaintext
1.
2.
3.
4.
/* изменено от 07.09.2010 */
s data="^Book.gbl"
s file=folder_"glbook.xml"
d $system.OBJ.Export(data,file)
/* изменено от 07.09.2010 */
...
Рейтинг: 0 / 0
07.09.2010, 15:21
    #36834215
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
и если xml на txt поменять?
...
Рейтинг: 0 / 0
07.09.2010, 15:29
    #36834236
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт всех данных БД из Cache 2007
или лучше делать так:

Код: plaintext
1.
mask=folder_"*.txt"
s file=$zsearch(mask)
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Экспорт всех данных БД из Cache 2007 / 25 сообщений из 36, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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