2014-09-22 3 views
0

나는 Talend에서 새로 왔으며 현재는 첫 Talend 일을 쓰고있다. tHashOutput Talend - Java 응용 프로그램의 tHashImport 구성 요소에서 값 읽기 - HowTo?

  • 를 사용하여 메모리에이 기록이 tHashInput
  • 를 사용하여 메모리에서이 레코드를 가져 오기 tHashInput
  • 스토어를 사용하여 몇 개의 레코드를 반환합니다

    • 쿼리 하나의 MySQL DB 테이블 (SELECT * FROM docs WHERE DocName = 'XYZ') :

      나는 다음을 수행하고

    • tLogRow 구성 요소를 사용하여 기록하십시오.

    나는이 같은 Java 응용 프로그램에서이 Talend 작업을 실행하고 있습니다 :

    mySQLConnectorJob.getResultSet(); 
    
    :
    FetchDocuments mySQLConnectorJob = new FetchDocuments(); 
    mySQLConnectorJob.runJob(new String[]{}); 
    

    그리고 마지막에 내가 몇 가지 방법 예를 들어, Java 응용 프로그램에서 어떻게 든 이러한 레코드를 가져 싶습니다

    tFileOutputDelimited 구성 요소를 사용하여 이러한 레코드를 CSV 파일에 저장 한 다음 Java 응용 프로그램에서 해당 파일을 구문 분석하여 레코드를 가져올 수 있지만 가능하면 해당 파일을 사용하지 않는 것이 좋습니다.

    내 질문 :

    1. 당신이 내가 자바 응용 프로그램의 레코드를 가져오고이 작업을 완료 할 수있는 방법 어쩌면 알고 계십니까?
    2. Talend 작업에 대한 내 디자인이 좋지 않다면, 작업을 완료 할 수 있도록 변경하는 방법에 대한 조언을 해줄 수 있습니까?

    감사합니다, 네나드

  • 답변

    0
    1. 당신은 tJavaFlex 또는 tJava를 사용 mySQLConnectorJob의 인스턴스 객체의 기록을 저장할 수 있습니다. 그런 다음 해당 값을 인스턴스 객체에서 가져옵니다.
    +0

    안녕하세요 @ Chandra Prakash, 의견을 보내 주셔서 감사합니다. 나는 이미 작업의 코드를 보았고이 쿼리 레코드 세트는'tMysqlInput_1Process' 메소드의 범위에있는'rs_tMysqlInput_1' 변수에 저장되어 있으므로 다른 방법에 넣을 수있는 방법을 모른다. tJava 또는 tJavaFlex를 사용하는 객체 (그러나 그 방향으로도 생각하고있었습니다).** 우리가 어떻게 할 수 있는지 안다면, 작은 예제를 보내 주시면 어떻게 할 수 있습니까? ** – nteo

    0

    tHashInput 구성 요소의 값을 globalMap 개체에 저장하고 이러한 값을 Java 응용 프로그램에서 가져 오는 방법을 찾았습니다. tHashInput 구성 요소 다음에 tJavaRow 구성 요소를 넣습니다. tJavaRow 구성 요소에서 나는 새 HashMap을 만들고 그 안에 데이터베이스 테이블 레코드를 넣습니다. 그런 다음 HashMap 인스턴스를 globalMap에 동일한 tJavaRow 구성 요소에 넣습니다.

    //Instantiate metadata Map 
    
    java.util.Map<java.lang.String, java.lang.Object> docMetadata = 
        new java.util.HashMap<java.lang.String, java.lang.Object>(); 
    
    //Fetch document metadata and put it in the Map 
    
    docMetadata.put("documentID", metadata1.DocumentID); 
    docMetadata.put("documentName", metadata1.DocumentName); 
    docMetadata.put("creator", metadata1.Creator); 
    
    //Put metadata in global Map 
    
    globalMap.put("docMetadata", docMetadata); 
    

    metadata1

    tHashInput 성분으로부터 tJava 컴포넌트 연결 이름이다. Java 응용 프로그램에서 작업을 시작했을 때 Java reflection을 사용하여 globalMap을 가져 왔습니다.

    관련 문제