본문 바로가기

Data&Processing

(52)
[talend] query결과에 나온 키를 이용해서 sp실행 query결과로 나온 값들을 이용해서 sp를 반복해서 실행시킬 일이 발생하게된다. 여기서 값들이 중요!하나의 값이라면, 이런 작업을 할 필요가 없겠지만 예를 들어 한 테이블에 작업목록 날짜가 있고 그 테이블을 읽어서 A 라는 procedure를 실행한다고 할때 다음과 같은 작업이 필요하게 된다. sp를 사용할땐 MySQL기준으로 tMysqlRow 라는 component가 필요하고 설명을 읽어보면 flow의 iteration을 수행한다고 하니 그냥 flow를 흘려보내주면 됨.기본적인 형태는 input -> tMysqlRow -> 결과가 있으면 다음process를 붙이면 됨 input에서는 다른것과 별 다를바가 없고 schema가 co_id, saledate, cnt_gubun 이라고 하면tMysqlRow에..
[talend] java 변수사용 talend는 기본이 java base라서 java를 많이 알면 좋기는 한데, java놓은지도 오래되고 기억도 안나서 형변환 하는데 에로사항이 많긴 하다. 그래도 다른etl보다는 어떻게 보면 더 자유로울 수 있기도 한거고. 그래서 몇개 자주쓰는것만 나열해봄.문자열을 숫자로 변환 Long : Long.valueOf(문자열변수).longValue() Float : Float.valueOf(문자열변수).floatValue() Null비교DB와는 다르게 Java에서는 if 변수 == null 와 같이 사용하는데 coalesce와 같은 함수가 없어서 Talend에 UserRoutine에서 하나 만듬.별거는 없고 내용은 아래와 같고 Map같은데서 활용해서 null처리 해주면 되겠습니다.Object를 String으로..
[talend] MetaData, Context활용 Metadata우선 개발 편의를 생각한다면 MetaData활용은 필수라고 보여집니다. 관리적인 입장에서도 필요하기도 하고.Repository Tab에 Metadata를 보시면DB Connections, File 관련 여러개(이건 잘 안쓰니 패쓰!), LDAP(?), Salesforce, Generic Schemas 등이 있는데요.일반적인 DB Table구조의 경우에는 DBConnection 에서 retrieve schema 메뉴를 통해서 가져올 수 있습니다.SalesForce 는 salesforce Object의 schema 구조를 가져오면 해당 폴더밑에 생기구요.Generic schemas는 DB에서 가져오지 않고 개발자가 임의로 만든 schema를 저장하는 곳입니다.table형태가 아닌 procedu..
[talend] talend 실행 talend 실행은 우선 Job을 만들고 GUI환경에서 Run 해보면 좋고 해볼 환경이 아니면 굳이 안해도 상관은 없는것 같고,중요한건 job을 배포했을때 해당 server에서 잘 실행이 되느냐라고 볼수 있습니다. 실행될 서버에는 Java RunTime Environment 까지만 설치되어있으면 됩니다.Job 배포는 Job 메뉴에서 생성된 Job을 우클릭하게되면 아이콘목록이 나오는데 여기서 "Export Job"을 눌러서 Package를 export. Library들은 zip만들어지고 어차피 압축풀꺼기 때문에 "Extract the zip file"을 선택하고해당 폴더에서 job명.jar, job명_run.sh(혹은 bat), classpath.jar 를 실행될 server에 upload시킴 lib폴더는..
[talend] 시작. 간단한 테이블 적재 만들어보기 모든 ETL Tool이 그렇듯이 talend도 Source, Target을 지정하는 것 부터 시작하겠습니다. talend에서는 source를 input, target을 output으로 명명하고 있구요. input이 되는 Source로는 오른쪽 Palette에서 Databases, Business, Cloud, File, BigData가 있습니다. 대부분은 Databases에서 활용가능하고 회사 ERP 데이터 등을 가져오고자 할때는 Business에서 해당 제품군을 선택하시면 됩니다. File 같은경우는 weblog나 계정정보파일등을 읽을 때 사용할 수 있을것 같습니다. 1) Databases 폴더>자신이 사용할 DB>Input Component 선택2) Databases 폴더>자신이 사용할 DB>Targ..
[talend] 병렬로 적재했을때 속도 talend가 informatica처럼 자체적으로 parallel 읽기가 가능한지는 아직 못찾아서 다른 툴에서 하던데로 where 절에서 구간을 나누어 select한 후 병렬 insert ㅇtalend에서 동시에 job실행하고자하면 job property/extra 에서 "multi thread execution" check해야함ㅇjob하나로 insert 시 10000건/sec 정도 나오던 것이5개로 늘린 후 6000건*5/sec가량 나옴수치가 선형적으로 늘지는 않지만 늘긴 늘어남선형적이지 않은 이유는 select 속도한계, insert부하/한계 등이 있을것 같다. 하지만 동시 job실행만으로 속도가 늘어나는건 확인
[talend] character 컬럼 적재시 row단위 오류(euckr -> utf8) talend를 이용 데이터 적재시 다음과 같은 에러발생하였음환경 : mysql 5.5 Starting job traffic_migration at 10:00 13/09/2012. [statistics] connecting to socket on port 3975[statistics] connectedIncorrect string value: '\xEF\xBF\xBD\xEB\x9D\xBC...' for column 'url' at row 344Incorrect string value: '\xEF\xBF\xBD\xE5\xA4\xB7...' for column 'url' at row 796Incorrect string value: '\xEF\xBF\xBD\xE5\xA4\xB7...' for column 'ur..
talend 사용 회사를 옮겼는데 현재 ETL을 사용하고 있는게 없고 구매계획도 없는데,ETL은 필요하니 OpenSource를 찾아다니며, 이것저것을 비교해보았는데 그중 Talend라고 있어 가장 나아보여 선택하기로 한다. 다른툴과의 비교등은 다른분이 올려 놓으셨으니 그걸 참조하면 되겠고, 난 당장급하니 사용법 익히고 많이 사용하는 case별로 사용법을 만들고저 한다. Talend파악 Task는 다음과 같고 옆에 (ㅇ) 붙은건 가능한 방법을 찾은 task이다 parameter 사용하는 query 의 사용일반query사용(ㅇ)일반query에 parameter 추가(ㅇ)sp실행한 결과 적제(ㅇ)sp에 parameter 추가(ㅇ)job에서 다른 job을 호출하고 거기에 parameter전달job을 어떤방식을 만들지 아직결정은 ..