2017-02-10 2 views
0

제 질문은 언제 새로운 데이터 구조를 만들어야하는지, 언제 내장 데이터 구조를 사용해야하는지입니다.자바 - avail 데이터 구조를 이용하거나 새로운 데이터 구조를 생성하십시오.

파일을 읽어야한다고 가정합니다. 패턴 일치를 기반으로 3 가지 속성을 가져야합니다. 예 : propertyA, propertyB, propertyC

5 개 파일에서 3 가지 속성을 수집 한 후 데이터베이스에 작성해야합니다.

옵션 1 :

파일이 Map 또는 Json을 반환 읽는 리더 (reader)를 작성합니다. 리더를 호출하는 클래스는 반환 된 dataStructure를 수신합니다. 이 경우 Map or Json입니다.

호출자 클래스 Map<StringFileName, MapReturnedData>에 다른 맵을 생성합니다.

모든 파일의 모든 데이터를 가져 오면 데이터베이스에 채 웁니다.

옵션 2

대신 Map or Json 3 곳과 getter 및 setter와 사용자 정의 클래스를 만들 수 있습니다.

어떤 것을 사용해야합니까? 둘 다 동일하면 사용자 정의 및 내장 기능을 사용해야합니까?

+0

소프트웨어에서이 작업을 반복적으로 수행 할 계획입니까? 그렇다면 세 번째 옵션은 파일로부터 읽은 데이터를 나타내는 POJO 클래스를 생성 한 다음 Hibernate와 같은 것을 사용하여 그것을 데이터베이스에 유지하는 것입니다. ORM 도구를 사용하지 않으려는 경우 JDBC를 사용하여 접근 방식 중 하나를 사용해야합니다. –

+0

@TimBiegeleisen 다른 스레드에서 이러한 작업을 반복적으로 수행해야합니다. 그것은 스파크 일입니다. 각 스레드는 내가 설명한 것을 수행합니다. 데이터베이스는 hbase입니다. 제발 조언합니다 –

+0

@ TimBiegeleisen의 조언을 따를 것입니다. 5 파일의 3 가지 속성에 대한 사용자 지정 구조의 성능 향상은 보이지 않습니다. 15 읽기/저장 * N 또는 3 * 5? 일치하는 패턴을 얻으면 성능이 향상 될 수도 있습니다 – efekctive

답변

0

필자의 견해로는 데이터의 처리량이 얼마나 될지에 관한 것입니다. 3 개의 속성이 단지 읽혀지고 DB에 쓰여지는 경우 옵션 1은 직접적인 선택입니다. 그것은 생성되는 객체의 수를 줄일 수 있기 때문에 더 잘 수행 될 수 있습니다. 반면에 데이터 형식과 변환이 필요한 경우 새 필드 등을 만들기 위해 일부 필드를 처리하는 경우 잘 작성된 클래스 구조로 데이터를 읽고 일부 필드를 캡슐화하면 다른 사람들이 쉽게 이해할 수 있습니다. 그 수업 내에서 그 처리 (옵션 2).

+0

예. 그냥 읽고 쓰십시오. 처리 필요 없음 –

0
  1. 당신은 큰 파일을 가지고 정의 된 데이터 구조는 쉽게 데이터 형식에 내장함으로써, 당신은 파일에서 데이터를 얻을 수 Map 또는 Json 방법을 사용하여 DB에 넣어 수 있습니다 지원되는 데이터를 의미하는 경우 . NOSql 데이터베이스를 사용하는 경우 첫 번째 옵션이 좋습니다. 파일에서 데이터를 읽은 후 처리하는 경우이 옵션이 좋았습니다.

  2. 테스트 시나리오에 따라 자신의 POJO에 3 가지 속성을 사용해야합니다. 즉 propertyA, propertyB, propertyC 읽기 및 쓰기 만하는 경우이 옵션이 이상적입니다.

POJO 옵션을 사용하면 속성을 추가하거나 제거 할 때 유지 관리와 유연성이 향상됩니다. 자신 만의 표시를 원하면 사용자 정의 옵션으로 이동하십시오.

는 경우에 정의 내장 된 사용자를 사용합니다. 데이터 유형에 내장

int, float array, etc 같은 범용 데이터 유형입니다.

사용자 정의 데이터 유형은 사용자/프로그래머가 직접 정의한 데이터 유형입니다. 예를 들어, 클래스, 인터페이스. 데이터가 내장 데이터 유형에 적합하지 않으면 사용자 정의 데이터 유형 만 사용하십시오.

해당 데이터를 관리 할 방법을 & 데이터를 기반으로 결정하십시오. 자세한 내용은 this link을 참조하십시오.

관련 문제