Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Импорт экспорт данных в Cache  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3119
Блог
Alexey Maslov
+ имеем gz-файл в нестандартном формате: утилитой gzip его уже не распакуешь, а для нас важно было уйти от проприетарных решений.
У меня WinRar, Far нормально распознают полученный *.gz и распаковывают.
7za, думаю, тоже должен справиться.

PS: даже gzip32 1.2.4 (18 Aug 93) справляется с ним.
27 апр 16, 17:46    [19114095]     Ответить | Цитировать Сообщить модератору
 Re: Импорт экспорт данных в Cache  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3119
Блог
Alexey Maslov
На вскидку: размер файла (до, да и после сжатия) в случае "нативного" формата "V" значительно больше, чем в ff, т.к. отсутствует компрессия ключей
Если нужна скорость и минимизация размера от 7-го типа и при этом гибкость от 5-го типа, то конечно без своего типа не обойтись. Или написать в WRC.
27 апр 16, 17:53    [19114123]     Ответить | Цитировать Сообщить модератору
 Re: Импорт экспорт данных в Cache  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1565
servit
У меня WinRar, Far нормально распознают полученный *.gz и распаковывают.
7za, думаю, тоже должен справиться...
Вы абсолютно правы, нашёл старый код, который формирует файл совместимого с gzip формата. Мелкое отличие моего кода от вашего: у меня используется искусственный запуск gzip:
	w line(i),line(i+1),*-99 ; искусственный более редкий запуск компрессии, чтобы улучшить степень сжатия (?)
уже не помню, где подсмотрел, и зачем это было нужно - но работает.
27 апр 16, 18:47    [19114351]     Ответить | Цитировать Сообщить модератору
 Re: Импорт экспорт данных в Cache  [new]
Шваров Евгений
Member

Откуда:
Сообщений: 849
servit
Может быть кому-нибудь пригодится: Chapter 10 — Additional Global Utilities
То же самое можно выполнить программно через методы класса %Global, например:
+ Экспорт части данных двух глобалов из разных областей в файл с упаковкой
#include %systemInclude

#dim ex As %Exception.AbstractException
try {
 
$$$AddAllRoleTemporaryInTry
 new $namespace
 set $namespace
="SAMPLES"

 
fileName="C:\Temp\export.go"

 
glbList("Sample.PersonD(:3)")=""
 
glbList("Sample.PersonD(10:12)")=""
 
glbList("Sample.PersonD(198:)")=""
 
glbList("|""DOCBOOK""|DocBook.Config")=""
 
 
d $system.OBJ.DisplayError(##class(%Global).Export(,.glbList,fileName,,,"-d","UTF8",.skipped))

 
;zw skipped
 
 
source=##class(%Stream.FileBinary).%New()
 
source.Filename=fileName
 
 
fileGz=##class(%Stream.FileBinaryGzip).%New()
 
fileGz.Filename=fileName_".gz"
 
fileGz.CopyFromAndSave(source)
   
}catch(ex{
 
ex.DisplayString(),!
}
PS: обратите внимание на утилиту %GCHANGE, позволяющую искать/заменять значение в глобале или выполнять произвольный код над найденными узлами.
В Портале также имеется подобный функционал.

Браво, servit!
Вот это сниппет, что называется в memories!
Оказывается все уже есть, если знать где искать и как применять.
А в DC можете его опубликовать?
28 апр 16, 08:34    [19115594]     Ответить | Цитировать Сообщить модератору
 Re: Импорт экспорт данных в Cache  [new]
Шваров Евгений
Member

Откуда:
Сообщений: 849
Alexey Maslov
servit,

Если соберусь писать статью, сравню разные подходы к задаче, спасибо за ваш.
Алексей, да, было бы здорово в вашей статье увидеть сравнение двух подходов.
28 апр 16, 08:35    [19115595]     Ответить | Цитировать Сообщить модератору
 Re: Импорт экспорт данных в Cache  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3119
Блог
Шваров Евгений
Оказывается все почти уже есть, если знать где искать и как применять.
+1
Шваров Евгений
А в DC можете его опубликовать?
Пока рано, сперва нужно кое-что решить (детали у Николая Жохова).
28 апр 16, 10:52    [19116165]     Ответить | Цитировать Сообщить модератору
 Re: Импорт экспорт данных в Cache  [new]
D_De1mos
Member

Откуда:
Сообщений: 79
У нас самописная система сбора данных для выгрузки/загрузки связанных данных "Электронное дело".
Получаем на вход целевой объект из БД (в принципе можно и выборку) и начинаем по этим данным формировать дерево связей и по нему выгружать все это дело в xml
На принимающей стороне аналогичный загрузчик - собираем по xml дерево и вносим его в БД
+ проверки выгрузки справочников (чтобы за ними всю базу не утянуть), ту и всякие там проверки на циклы и т.д.

Сейчас в разработке еще один механизм для формирования и передачи витрин данных для аналитики
22 май 16, 00:18    [19203309]     Ответить | Цитировать Сообщить модератору
 Re: Импорт экспорт данных в Cache  [new]
Шваров Евгений
Member

Откуда:
Сообщений: 849
servit
Может быть кому-нибудь пригодится: Chapter 10 — Additional Global Utilities
То же самое можно выполнить программно через методы класса %Global, например:
+ Экспорт части данных двух глобалов из разных областей в файл с упаковкой
#include %systemInclude

#dim ex As %Exception.AbstractException
try {
 
$$$AddAllRoleTemporaryInTry
 new $namespace
 set $namespace
="SAMPLES"

 
fileName="C:\Temp\export.go"

 
glbList("Sample.PersonD(:3)")=""
 
glbList("Sample.PersonD(10:12)")=""
 
glbList("Sample.PersonD(198:)")=""
 
glbList("|""DOCBOOK""|DocBook.Config")=""
 
 
d $system.OBJ.DisplayError(##class(%Global).Export(,.glbList,fileName,,,"-d","UTF8",.skipped))

 
;zw skipped
 
 
source=##class(%Stream.FileBinary).%New()
 
source.Filename=fileName
 
 
fileGz=##class(%Stream.FileBinaryGzip).%New()
 
fileGz.Filename=fileName_".gz"
 
fileGz.CopyFromAndSave(source)
   
}catch(ex{
 
ex.DisplayString(),!
}
PS: обратите внимание на утилиту %GCHANGE, позволяющую искать/заменять значение в глобале или выполнять произвольный код над найденными узлами.
В Портале также имеется подобный функционал.


А что-то не работают ссылки на документацию... Интересно.
23 май 16, 10:52    [19206214]     Ответить | Цитировать Сообщить модератору
 Re: Импорт экспорт данных в Cache  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3119
Блог
Шваров Евгений
А что-то не работают ссылки на документацию...
Исправил, уже работают.
Шваров Евгений
Интересно.
Ничего интересного. Просто экспериментируют с rewrite url.
23 май 16, 11:13    [19206334]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Ответить