DataX 사용자 정의transformer 작성 가이드

2270 단어 4-Engineering
DataX 사용자 정의transformer 작성 가이드
데이터 암호화에 사용
  • jave개발환경
  • maven
  • Python 2.*

  • 개술
    DataX는 알리바바 그룹 내에서 널리 사용되는 오프라인 데이터 동기화 도구/플랫폼으로 MySQL, Oracle, SqlServer, Postgre, HDFS, Hive, ADS, HBase, TableStore(OTS), MaxCompute(ODPS), DRDS 등 각종 이구 데이터 소스 간의 효율적인 데이터 동기화 기능을 실현한다.DataX를 사용하면 데이터베이스에 있는 데이터를 트러블 조작하여 데이터베이스나 데이터 플랫폼에 원하는 지원 유형으로 저장할 수 있습니다.
    데이터X는 프레임워크로서 자체적으로 writer와reader 플러그인의 사용자 정의 방법을 제공하고 기존의 방법을 참고하면 더 많은 유형의 데이터 읽기와 저장을 지탱할 수 있다.그러나 데이터 이전 과정에서 데이터의 알레르기를 실현하려면 특정한 transformer를 계승하여 데이터가 전송 과정에서 자연스럽게 데이터 전환을 완성하도록 하는 것이 더욱 적합하다.
    데이터 처리에 사용되는 몇 개의transformer를 제공합니다.job 프로필만 수정하면 간단한 문자열 수정과 교체 처리를 실현할 수 있습니다.그러나 더 많은 유형의 데이터가 더 복잡한 암호화를 실현하는 데는 아무런 힘이 없다.여기에 자신의 경험을 예로 들어 나의transformer 개발 과정을 기록해 봅시다.
    프로세스 개요
    1. Github에서clone DataX 프로젝트의 원본 코드를 로컬로 가져와 루트 디렉터리에서transformer 폴더를 찾습니다.2.com에서.alibaba.datax.transport.transformer 경로에서 transformer를 찾으면 Transformer를 계승하고 기존의 transformer 클래스를 참고하여 인터페이스를 실현하고 필요에 따라 파라미터를 받아job 프로필에서 명령을 받는 데 사용합니다.
    public class MaskTransformer extends  Transformer{
        public  MaskTransformer(){ setTransformerName("dx_masker");};
    
        @Override
        public Record evaluate(Record record, Object... paras)
    

    3. core\src\main\java\com\aliba\datax\core\transport\transformer 디렉터리의 Transformer Registry 클래스에 작성한transformer 클래스를 등록합니다.
    public class TransformerRegistry {
    
        private static final Logger LOG = LoggerFactory.getLogger(TransformerRegistry.class);
        private static Map registedTransformer = new HashMap();
    
        static {
            /**
             * add native transformer
             * local storage and from server will be delay load.
             */
    
            registTransformer(new SubstrTransformer());
            registTransformer(new PadTransformer());
            registTransformer(new ReplaceTransformer());
            registTransformer(new FilterTransformer());
            registTransformer(new GroovyTransformer());
            registTransformer(new MaskTransformer()); //          transformer
        }
    
  • mvn 패키지 컴파일, 디버깅.
  • mvn clean package -DskipTests assembly:assembly
    

    더 선진적인 방법은 DIY-DAtaX-Transformer 참조

    좋은 웹페이지 즐겨찾기