2013-01-23 1 views
1

필드가 많은 100,000 개가 넘는 문서가 포함 된 데이터베이스에서 데이터를 내보내는 가장 좋은 방법은 무엇입니까? 응용 프로그램 논리는 필요하지 않으며 응용 프로그램 내에 저장된 데이터 만 필요합니다. 데이터베이스에는 모든 문서에 대한 양식 디자인 요소가 포함되어 있지 않습니다. LEI는 우리에게 옵션이 아닙니다.대형 로터스 데이터베이스 내보내기

  1. 현재 자바 엑셀로 데이터를 내보내려면 자바 에이전트를 사용하지만 실행 시간은 입니다.
  2. 은 빠를 수 있습니다.
  3. ... 또는 충분히 빠를 수있는 대체 솔루션이 있습니까?
+0

무료 솔루션 만 필요합니까? – pstr

답변

0

파일에 XML로 데이터를 얻을 수있는 효율적이고 쉬운 방법은 다음과 같이 URL을 그것을 검색하는 것 :

/view?ReadViewEntries&Start=1&Count=1000 

당신이 1000 덩어리의 모든 100K를 가져 오는 코드를 것이다 (이 값은 데이터 양에 따라 조정될 수 있지만 너무 큰 경우 서버가 중단 될 수 있음).

보기에는 모든 문서와 모든 항목이 열로 포함됩니다.

이 접근 방식은 서버 HTTP 작업에 많은 부하를 걸리므로 조용한 시간에 실행하는 것이 가장 좋습니다.

데이터를 Excel로 가져와야하는 경우 현재 에이전트를 살펴보고 최적화 할 수 있는지 확인해야합니다.

2

아마 모든 것을 얻는 가장 빠른 방법은 DXL로 내 보낸 다음 원하는 데이터에 대해 DXL을 읽는 것입니다.

다음은 데이터베이스 (LotusScript 에이전트)에 처음 선택된 문서를 내보내는 데 필요한 몇 가지 샘플 코드입니다. C : \ temp \ data.xml 파일을 작성합니다.

Option Public 
Option Declare 

Sub Initialize 
    Dim nsn As New NotesSession 
    Dim ndb As NotesDatabase 
    Dim ndc As NotesDocumentCollection 
    Dim ndo As NotesDocument 
    Dim ndxle As NotesDXLExporter 
    Dim nst As NotesStream 
    On Error Resume Next 

    Set ndb = nsn.CurrentDatabase 
    Set ndc = ndb.UnprocessedDocuments 
    Set ndo = ndc.GetFirstDocument 

    Set nst = nsn.createStream 
    If (Not(nst.Open("c:\temp\DATA.xml"))) Then 
     Print "Open File DATA.xml Failed" 
    End If 
    nst.truncate 

    Set ndxle = nsn.CreateDXLExporter (ndo, nst) 

    ndxle.Convertnotesbitmapstogif = true ' Not always needed. 

    Call ndxle.Process() 
    MsgBox ndxle.Log 
    Call nst.Close() 
End Sub