Экспорт данных из nsf в PostgresSQL

Severin

Green Team
06.08.2020
13
1
BIT
0
День добрый, подскажите каким образом возможен перенос документов из баз Лотуса в Postgres
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
541
Агент, который каждый документ преобразует в запись в таблице, можно даже внутри него создать отдельные потоки, чтобы шло быстрее.
внешний механизм(это может быть сервлет, может быть внешнее java приложение, другой сервер), который обратиться к базе через das, получит json и положит в базу
Выгрузить все документы в dxl и парсить на запись...
Прямой конвертации, насколько я знаю нет.
 

Domino-Designer

Людям надо поморгать!
Lotus Team
06.12.2011
617
223
BIT
25
причем весь документ в один столбец, ага.
У нас документ - это "отдельная таблица"
 

garrick

Lotus Team
26.10.2009
1 367
152
BIT
364
1. Написать агента, который берёт каждый документ и преобразует его поля в запись СУБД.
2. DECS ( Domino Enterprise Connection Services )
3. LEI ( Lotus Enterprise Integrator )

Самое надёжное это первый вариант, на счёт второго и третьего не уверен, что оно подключится к Postgree, если только через ODBC, к Oracle/DB2/MSSQL без проблем.
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
45
причем весь документ в один столбец, ага.
У нас документ - это "отдельная таблица"
... в строку
Ващщет, можно на один док просто хранить его DXL ))))
И парсить, и парсить .... После чтения
.... или джейсон ) ващщее прекрастно
 

rinsk

Lotus Team
12.11.2009
1 156
126
BIT
45
... в строку
Ващщет, можно на один док просто хранить его DXL ))))
И парсить, и парсить .... После чтения
.... или джейсон ) ващщее прекрастно
А jsonb - культур-мультур :) Через calculated column разворачиваешь в не такое страшное, близкое и приятное)))
 
  • Нравится
Реакции: alexas1

savl

Lotus Team
28.10.2011
2 624
314
BIT
541
ну вот вариант DAS + хранение как JSONBody и нормально будет, однако надо этот DAS подергать.
 

VladSh

начинающий
Lotus Team
11.12.2009
1 797
158
BIT
232
Надо понимать, какой документ и для чего будет выгружаться в Posgree. И как это потом будет использоваться.

Если это справочные данные, то лучше создать отдельную таблицу и выгрузить поля Lotus-документа в соотв. колонки.
Если это документы СЭД, и далее будут также использоваться, то нужно будет выбрать, в каком формате хранить - Json или JsonB. Плюс в том, что у Posgree есть API для поиска и работы с json-данными, как с полями документа.
Если это что-то типа блокировок или данные, к которым нужен очень быстрый доступ, то выгружать нужно в key-value-хранилище. В последней версии Postgree добавили возможность хранить внутри базы данные в key-value, и теперь эта БД мультипарадигменная; для СЭД теперь очень неплохой вариант. Camunda например.

В зависимости от принятого решения код для переноса данных будет совершенно разный.
 

Severin

Green Team
06.08.2020
13
1
BIT
0
Надо понимать, какой документ и для чего будет выгружаться в Posgree. И как это потом будет использоваться.

Если это справочные данные, то лучше создать отдельную таблицу и выгрузить поля Lotus-документа в соотв. колонки.
Если это документы СЭД, и далее будут также использоваться, то нужно будет выбрать, в каком формате хранить - Json или JsonB. Плюс в том, что у Posgree есть API для поиска и работы с json-данными, как с полями документа.
Если это что-то типа блокировок или данные, к которым нужен очень быстрый доступ, то выгружать нужно в key-value-хранилище. В последней версии Postgree добавили возможность хранить внутри базы данные в key-value, и теперь эта БД мультипарадигменная; для СЭД теперь очень неплохой вариант. Camunda например.

В зависимости от принятого решения код для переноса данных будет совершенно разный.
День добрый, я создал вью. В нее засунул все нужные для выгрузки поля. Далее из этой вью спарсили все к себе.
Остался еще один вопрос, в базе есть вложения. Они все лежат в DAOS, можно ли как то через http запрос вынуть это вложение, тк на сколько я понял Lotus шифрует вложения на базе сертификата. и формирует файлы nlo которые укладывает по папкам одним ему понятным способом
 

garrick

Lotus Team
26.10.2009
1 367
152
BIT
364
Вложения во вью не выложить никак.
У Domino есть несколько API для разных языков программирования для доступа к данным из-вне. Парсить обычный вью через HTML не самый простой способ. Посмотрите хотя бы DAS. Есть API для прямого доступа к данным для Java, С/С++. В последних версиях есть интеграция с Node.js, соответственно JavaScript.

В вашем варианте осталось написать на стороне Domino web-service, который будет по ID документа отдавать все его вложения. Это просто для тех кто умеет. А во вью добавить столбец, который будет показывать наличие вложений в документе, чтобы за зря сервис не дёргать.
 
  • Нравится
Реакции: alexas1

savl

Lotus Team
28.10.2011
2 624
314
BIT
541
Using Domino URLs to access attachmentsTo access a file attachment using a Domino URL, you must know the view name, the document name, and the file attachment name. Domino generates an URL for file attachments when it saves the documents to which the files are attached. These URLs end with the file name of the attachment. Syntax: View is either the view name or the view ID, and DocumentName is the document name or ID. $File is a special identifier that indicates an attachment on a document. Fileattachmentname is the file name of the attachment.Examples:
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
471
можно ли как то через http запрос вынуть это вложение
вложения бывают разные, есть встроенные объекты (коллеги упоминали)
например в случае DAS получается ссылка на аттач (приложенный файл) остальное base64, в жсон
можно написать хэпагу/сервлет где сразу будет отдавать бинарник в потоке
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
471
$File is a special identifier that indicates an attachment on a document. Fileattachmentname
вот это во вьюшку (в мультивэлью), но и там есть особенности (если в РТ не попало как хинт, имя совпадает с уже сущ....)
еще не знаю - что будет при имени >255 ASCII (на русском будет ок 127)
как пример такое чудо офисной мысли "Дополнительное соглашение о расторжении контракта №12345678 от 01 января 2020 года, ответственный Иван Иванович Иванов, клиент Рога и копыта.docx"
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!