powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Импорт экспорт данных в Cache
34 сообщений из 34, показаны все 2 страниц
Импорт экспорт данных в Cache
    #39224365
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Еще одна неоднозначная тема в Developer Community .

А поделитесь, как вы данные переносите с сервера на сервер? Особенно если вам нужны не все данные а какая-то часть и еще и целостная?
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224437
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров ЕвгенийПривет!

Еще одна неоднозначная тема в Developer Community .

А поделитесь, как вы данные переносите с сервера на сервер? Особенно если вам нужны не все данные а какая-то часть и еще и целостная?Все это сильно индивидуально, в большинстве случаев просто копирлование базы целиком. Либо в некоторых случаях если данные разбиты на несколько баз, копирование только значимых баз. Есть еще вариант, когда можно скопировать эту часть таблиц в отдельных глобал или еще как то и потом импортировать, но все это самописные варианты. Для регулярных операций, есть например индивидуальный инструментарий, для таких операций.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224549
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorДля регулярных операций, есть например индивидуальный инструментарий, для таких операций.

Который вы сами написали?

Задача может быть очень простая: взять Sample.Person, у которых город = Amsterdam sql запросом.
Выгрузить в файл например, еще лучше в архиве сразу, вгрузить в другую систему через веб-приложение.
Такое есть?
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224555
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров ЕвгенийКоторый вы сами написали?Ну да
Шваров ЕвгенийЗадача может быть очень простая: взять Sample.Person, у которых город = Amsterdam sql запросом.
Выгрузить в файл например, еще лучше в архиве сразу, вгрузить в другую систему через веб-приложение.
Такое есть?Такого нет, да и думаю врядли у кого такие задачи были, да еще и регулярные. Проще все данные перетянуть, на большинстве проектов размеры БД я думаю не превышает 100-200ГБ, поэтому это не сложно.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224578
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шваров ЕвгенийDAiMorДля регулярных операций, есть например индивидуальный инструментарий, для таких операций.

Который вы сами написали?

Задача может быть очень простая: взять Sample.Person, у которых город = Amsterdam sql запросом.
Выгрузить в файл например, еще лучше в архиве сразу, вгрузить в другую систему через веб-приложение.
Такое есть?

В Каше есть такая функция - экспортировать
экспортируете все что вам нужно.
Если это исполняемый файл (*.mac), то я через "Студио" делаю так
выделяю нужный файл (в левой меню, где все перечни ваших классов и программ), дальше правой клавишей выделяю его и выбираю "Экспорт" и сохраняю куда нужно.
Затем этот файл затаскиваю в вашу БД через "Инструменты/импортировать локально". Учтите, что при импорте он сразу делает компиляцию. Если в импортируемом файле есть какие то ошибки (не завершённый файл), то "Компиляцию" при импорте файла - отключаем. Затем этот файл вручную компилируем!!!
Если будете импортировать БД, то иногда требуется перекомпилировать ВСЮ БД!!!
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224586
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шваров ЕвгенийDAiMorДля регулярных операций, есть например индивидуальный инструментарий, для таких операций.

Который вы сами написали?

Задача может быть очень простая: взять Sample.Person, у которых город = Amsterdam sql запросом.
Выгрузить в файл например, еще лучше в архиве сразу, вгрузить в другую систему через веб-приложение.
Такое есть?

Что касается самой БД, то там еще проще
Там прямо в Портале услуг всё делается
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224587
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О-О-ОШваров Евгенийпропущено...


Который вы сами написали?

Задача может быть очень простая: взять Sample.Person, у которых город = Amsterdam sql запросом.
Выгрузить в файл например, еще лучше в архиве сразу, вгрузить в другую систему через веб-приложение.
Такое есть?

В Каше есть такая функция - экспортировать
экспортируете все что вам нужно.
Если это исполняемый файл (*.mac), то я через "Студио" делаю так
выделяю нужный файл (в левой меню, где все перечни ваших классов и программ), дальше правой клавишей выделяю его и выбираю "Экспорт" и сохраняю куда нужно.
Затем этот файл затаскиваю в вашу БД через "Инструменты/импортировать локально". Учтите, что при импорте он сразу делает компиляцию. Если в импортируемом файле есть какие то ошибки (не завершённый файл), то "Компиляцию" при импорте файла - отключаем. Затем этот файл вручную компилируем!!!
Если будете импортировать БД, то иногда требуется перекомпилировать ВСЮ БД!!!

Спасибо. Я вообще перенос части базы данных имел ввиду, причем целостных данных.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224590
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О-О-ОШваров Евгенийпропущено...


Который вы сами написали?

Задача может быть очень простая: взять Sample.Person, у которых город = Amsterdam sql запросом.
Выгрузить в файл например, еще лучше в архиве сразу, вгрузить в другую систему через веб-приложение.
Такое есть?

Что касается самой БД, то там еще проще
Там прямо в Портале услуг всё делается

Да. А если вам понадобилось бы перенести только сегодняшние транзакции?
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224593
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О-О-О ,

Будьте внимательны: речь идёт об экспорте/импорте данных , а не кода *.[mac/inc/cls/csp/etc], причём не всех, а какой-то её части (может быть сложное условие в WHERE).
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224594
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так что импортировать классы и исполняемые файлы удобнее через СТУДИО, а сами БД через
"Портал управления системой"
Правда, если при импорте БД класс не совпадёт с вашим классом в БД (меньше полей), то будет полная ерунда, поэтому, сперва импортируем класс, компилируем ВСЮ БД, а затем импортируем БД.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224605
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шваров Евгений
Да. А если вам понадобилось бы перенести только сегодняшние транзакции?

Здесь все зависит от того, ка логика вашей БД устроена.
Если это отдельный файл - то все просто, а вот если это БД за все дни, то создать отдельный класс и в него запихнуть все что нужно, а затем написать код - минут за 20 и перенести в него все что нужно.


Если требуется выборка, то я делаю через код путем наполнения отдельной БД.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224611
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров Евгений ,

В DbVisualizer, Caché Monitor есть экспорт/импорт resultset в/из файла (поддерживаются разные форматы).
Или можно это сделать прямо в онлайн, если экземпляры Caché видят друг друга. В Caché Monitor для этого есть мастер "Copy Data between Databases" с возможностью указать какие именно данные из таблицы копировать.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224615
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit Шваров Евгений ,

В DbVisualizer, Caché Monitor есть экспорт/импорт resultset в/из файла (поддерживаются разные форматы).
Или можно это сделать прямо в онлайн, если экземпляры Caché видят друг друга. В Caché Monitor для этого есть мастер "Copy Data between Databases" с возможностью указать какие именно данные из таблицы копировать.
Спасибо!
Другое дело. Caché Monitor помоему платный...
А DbVisualizer тоже умеет так?
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224620
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров ЕвгенийА DbVisualizer тоже умеет так?Он тоже платный.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224633
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров Евгений ,

Или вообще можно воспользоваться новой фичей Query Cloud ( 19022902 ), и это могут быть даже разные типы СУБД.Шваров ЕвгенийСпасибо!
Другое дело. Caché Monitor помоему платный... 18661434
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224639
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров Евгений ,

Проще, по-моему, настроить SQL Gateway и переливать всё что угодно (и это бесплатно).
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224647
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О-О-Осоздать отдельный класс и в него запихнуть все что нужно, а затем написать код - минут за 20 и перенести в него все что нужно.
:) Счастливый, наверное, человек....
Видите как всё просто? Тяп-ляп, двадцать минут и готово )))
А вы тут проблемы создаёте, какие-то там транзакции.... какая-то там целостность... какие-то там сверки...
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224677
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224686
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Передачу глобалов и их частей используем регулярно, т.к. на этом основан наш механизм обновлений. Паковка и распаковка zip встроена в механизм. Формат экспорта - gof или ff (собственный двоичный), который был разработан недавно с целью преодоления ряда ограничений gof.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224861
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovПередачу глобалов и их частей используем регулярно, т.к. на этом основан наш механизм обновлений. Паковка и распаковка zip встроена в механизм. Формат экспорта - gof или ff (собственный двоичный), который был разработан недавно с целью преодоления ряда ограничений gof.
Статья?
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39224902
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров Евгений,

В системе, которую мы обслуживаем, есть подсистема - Зона Связи.
Она настраивается на сбор данных с SQL-серверов (АСУТП) в центральную базу, или в базу Зоны Связи.
Идея такая:
- для серверов источников есть шаблоны select-ов;
- есть также списки "объектов" (тэги и дата последнего чтения)
- по расписанию запускается задание, которое бежит по списку "объектов", настраивает и выполняет select;
данные складывает в служебные таблицы, откуда их может забрать приложение.
Есть вариант с соответствующим шаблоном insert-а, который может положить данные сразу в нужное место.
Сделано для Оракл, но принцип можно использовать везде.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39225202
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров ЕвгенийAlexey MaslovПередачу глобалов и их частей используем регулярно, т.к. на этом основан наш механизм обновлений. Паковка и распаковка zip встроена в механизм. Формат экспорта - gof или ff (собственный двоичный), который был разработан недавно с целью преодоления ряда ограничений gof.
Статья?
Алексей, извините что я так односложно - но мне кажется было бы интересно почитать многим, а что у вас за собственный формат импорта/экспорта с паковкой и зачем вы его сделали (ограничения gof).
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39225215
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ограничения gof:
только текущая БД для глобалов по умолчанию

только весь глобал целиком

только глобал "как есть", нельзя перекодировать, что необходимо при обмене 8-бит -> Unicode

проприетарность.

Спецификация ff является открытой.
Используется сжатие ключей (как в В-дереве), засчёт этого размер файла получается того же порядка, что и gof.
Паковка является не частью формата, а частью процедуры экспорта-импорта, выполняется вызовом внешней утилиты (7za, zip). В этой части ничего интересного, разве что способ распространения 7za через %Installer.

Статью можно, если это кому-то интересно. Парадокс: как только заходит речь о статье, приходится что-то дорабатывать. Так и с ff: жизнь заставляет добавить кодирование в utf8, причём выборочное. Так что сначала это.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39225432
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть кому-нибудь пригодится: Chapter 10 — Additional Global Utilities
То же самое можно выполнить программно через методы класса %Global, например:
Экспорт части данных двух глобалов из разных областей в файл с упаковкой
Код: 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.
#include %systemInclude

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

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

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

 ;zw skipped
 
 s source=##class(%Stream.FileBinary).%New()
 s source.Filename=fileName
 
 s fileGz=##class(%Stream.FileBinaryGzip).%New()
 s fileGz.Filename=fileName_".gz"
 d fileGz.CopyFromAndSave(source)
   
}catch(ex) {
 w ex.DisplayString(),!
}
PS: обратите внимание на утилиту %GCHANGE, позволяющую искать/заменять значение в глобале или выполнять произвольный код над найденными узлами.
В Портале также имеется подобный функционал .
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39225962
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,

Если соберусь писать статью, сравню разные подходы к задаче, спасибо за ваш.

На вскидку: размер файла (до, да и после сжатия) в случае "нативного" формата "V" значительно больше, чем в ff, т.к. отсутствует компрессия ключей, + имеем gz-файл в нестандартном формате: утилитой gzip его уже не распакуешь, а для нас важно было уйти от проприетарных решений.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39225980
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov+ имеем gz-файл в нестандартном формате: утилитой gzip его уже не распакуешь, а для нас важно было уйти от проприетарных решений.У меня WinRar, Far нормально распознают полученный *.gz и распаковывают.
7za, думаю, тоже должен справиться.

PS: даже gzip32 1.2.4 (18 Aug 93 ) справляется с ним.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39225987
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovНа вскидку: размер файла (до, да и после сжатия) в случае "нативного" формата "V" значительно больше, чем в ff, т.к. отсутствует компрессия ключейЕсли нужна скорость и минимизация размера от 7-го типа и при этом гибкость от 5-го типа, то конечно без своего типа не обойтись. Или написать в WRC.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39226062
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitУ меня WinRar, Far нормально распознают полученный *.gz и распаковывают.
7za, думаю, тоже должен справиться...Вы абсолютно правы, нашёл старый код, который формирует файл совместимого с gzip формата. Мелкое отличие моего кода от вашего: у меня используется искусственный запуск gzip:
Код: javascript
1.
	w line(i),line(i+1),*-99 ; искусственный более редкий запуск компрессии, чтобы улучшить степень сжатия (?)

уже не помню, где подсмотрел, и зачем это было нужно - но работает.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39226303
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitМожет быть кому-нибудь пригодится: Chapter 10 — Additional Global Utilities
То же самое можно выполнить программно через методы класса %Global, например:
Экспорт части данных двух глобалов из разных областей в файл с упаковкой
Код: 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.
#include %systemInclude

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

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

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

 ;zw skipped
 
 s source=##class(%Stream.FileBinary).%New()
 s source.Filename=fileName
 
 s fileGz=##class(%Stream.FileBinaryGzip).%New()
 s fileGz.Filename=fileName_".gz"
 d fileGz.CopyFromAndSave(source)
   
}catch(ex) {
 w ex.DisplayString(),!
}
PS: обратите внимание на утилиту %GCHANGE, позволяющую искать/заменять значение в глобале или выполнять произвольный код над найденными узлами.
В Портале также имеется подобный функционал .
Браво, servit!
Вот это сниппет, что называется в memories!
Оказывается все уже есть, если знать где искать и как применять.
А в DC можете его опубликовать?
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39226304
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslovservit,

Если соберусь писать статью, сравню разные подходы к задаче, спасибо за ваш.
Алексей, да, было бы здорово в вашей статье увидеть сравнение двух подходов.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39226408
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров ЕвгенийОказывается все почти уже есть , если знать где искать и как применять .+1Шваров ЕвгенийА в DC можете его опубликовать?Пока рано, сперва нужно кое-что решить (детали у Николая Жохова).
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39240806
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас самописная система сбора данных для выгрузки/загрузки связанных данных "Электронное дело".
Получаем на вход целевой объект из БД (в принципе можно и выборку) и начинаем по этим данным формировать дерево связей и по нему выгружать все это дело в xml
На принимающей стороне аналогичный загрузчик - собираем по xml дерево и вносим его в БД
+ проверки выгрузки справочников (чтобы за ними всю базу не утянуть), ту и всякие там проверки на циклы и т.д.

Сейчас в разработке еще один механизм для формирования и передачи витрин данных для аналитики
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39241229
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitМожет быть кому-нибудь пригодится: Chapter 10 — Additional Global Utilities
То же самое можно выполнить программно через методы класса %Global, например:
Экспорт части данных двух глобалов из разных областей в файл с упаковкой
Код: 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.
#include %systemInclude

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

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

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

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

А что-то не работают ссылки на документацию... Интересно.
...
Рейтинг: 0 / 0
Импорт экспорт данных в Cache
    #39241251
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров ЕвгенийА что-то не работают ссылки на документацию...Исправил, уже работают.Шваров ЕвгенийИнтересно.Ничего интересного. Просто экспериментируют с rewrite url.
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Импорт экспорт данных в Cache
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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