텍스트 Wrangler
맞춤형 Antlr4 DSL에 의해 지정된대로 CSV 데이터를 변환하기위한 텍스트 -wrangler 앱.
용법
-
mvn package 실행하여 Antlr4 파서를 생성하십시오 -
main/java/resources/schema.sql 에서 MySQL 스키마를 가져옵니다 -
main/java/resources/configuraiton.ini 에서 MySQL 연결 세부 정보를 업데이트하십시오 - App.java에서 시작하여 라이브러리 사용 방법에 대한 데모
변환 DSL
- 변환을위한 샘플 DSL은
main/java/resources/transformations.dsl 에 제공됩니다 - DSL 규칙과 구문을 설명하는 문법 및 Lexer는
srcmainantlr4orgluisaminiwrangler 에 설립 될 수 있습니다.
Regex 문법
- Java Regex 패턴이 지원되며 데이터를 건너 뛰는 데 사용할 수 있습니다.
- 또한 설탕 패턴은 매핑 된 패턴 이용을 통해 지원됩니다.
CSV 파서
- Antlr4는 또한 CSV를 구문 분석하는 데 사용됩니다
- 문법 및 Lexer Descriving CSV 구문 분석 규칙은
srcmainantlr4orgluisaminiwrangler 에서 찾을 수 있습니다.
CSV 데이터
- CSV 데이터 샘플은
main/java/resources/orders.csv 입니다 - 이 샘플에서 주문이 생성되지 않습니다
- 제공된 패턴과 일치하지 않는 데이터 값 (1 인 경우)이 건너 뜁니다.
가정
- CSV 데이터에는 필드 이름이있는 헤더 행이 있습니다
테스트
- app.java는 주어진 데이터 및 DSL 샘플의 주문을 실행하고 저장합니다.
의존성
- JBDC 드라이버로서 Mariadb
- DSL 및 CSV 처리 및 구문 분석 지원을위한 Antlr4
- 단위 테스트를위한 Junit
Javadoc
- Javadoc은 추가 사용법, 가정 및 구현 메모가 포함 된 폴더 'Doc'에 있습니다.
미래의 일
- refactor는 유형 순서를 추상화하기 위해 (// todo 주석으로 표시된 소스 코드에 주어진 세부 사항) 다른 유형의 데이터를 쉽게 재사용 할 수 있습니다.
- DSL에서 데이터베이스 스키마 생성을 지원하는 유틸리티를 작성하거나 데이터베이스에서 스키마 가져 오기 (QueryDsl과 같은 종속성을 가져오고 목적에 맞게 확장하기 위해 가장 likelly).
- DSL 문법/렉서를 확장하여 STDOUT에서 대상 객체를 표현하기 위해 포맷터를 설정할 수 있습니다.
- DSL 문법/Lexer를 확장하여 필터가 필터와 일치하는 객체 만 구문 분석 할 수있는 필터 Regex 구조를 허용합니다.
- 예를 들어 다른 DB 언어를 지원하도록 확장되면 Redis를 지원하는 것이 매우 흥미로울 것입니다.
- BigData와 병렬 작업을 허용하기 위해 MAP <> 프로세서 감소를 지원하도록 확장하십시오.
- 반응성 스트림 및 게시자/가입자를 지원하도록 확장하십시오
- 풍부한 예제가있는 적절한 주니트 테스트 스위트 추가
- 클래스 다이어그램 및 상호 작용 다이어그램과 같은 적절한 기술 문서 제공