DataX 사용자 정의transformer 작성 가이드
2270 단어 4-Engineering
데이터 암호화에 사용
개술
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 clean package -DskipTests assembly:assembly
더 선진적인 방법은 DIY-DAtaX-Transformer 참조
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
RabbitMQ 대기열 선언 channel.queueDeclare () 매개변수 분석durable = false 시 대기열이 비지구화됩니다.대기열은 메모리에 저장되어 있기 때문에 RabbitMQ가 리셋되거나 서버가 리셋될 때 이 대기열을 잃어버립니다. durable = true 시 대기열이 지속됩니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.