티스토리 뷰

Database/MariaDB

MariaDB ColumnStore "cpimport" 성능

데브포유 2019. 10. 29. 21:00
반응형

MariaDB ColumnStore에 Bulk로 데이터를 적재할 때  cpimport 를 사용하게 됩니다.

 

성능이 어떨까요?

 

60여개 필드(컬럼) 데이터 1000만건을 import하는 속도가 약 70~80초 정도 소요 됩니다.

 

대용량 데이터 적재시에 시간을 많이 절약할 수 있습니다.

 

적재하는 데이터의 종류에 따라서 cpimport 옵션을 적절히 사용해 주시면 효과적입니다.

 

저는 -s, -E, -C 옵션을 사용해서 "상품명"같이 문자가 마구 섞여 있어서 기본 설정으로 로딩 실패를 해결 했습니다.

 

-s : 필드 구분 문자 (문자 1개로만 사용 가능), 보통 ",", "₩t"를 사용하지 싶습니다.

 

-E: 필드를 완벽히 구분하기 위해서 값을 감싸 주는 문자를 지정할 수 있습니다.

      : 'A','B','C'     <---  구분자는 콤마이고 '' 값이 필드를 감싸주는 문자 입니다.

 

-C: 필드 구분자를 이스케이프 처리해야 할 때 사용합니다. 테이블이 파티셔닝될 때 ' 문자가 적용되는 것을 방지하는 효과가 있습니다.

    : -C "\'"

 

옵션 적용 예)   -c "," -E "'" -C "\'"

 


cpimport dbName tblName [loadFile]
[-h] [-m mode] [-f filepath] [-d DebugLevel]
[-c readBufferSize] [-b numBuffers] [-r numReaders]
[-e maxErrors] [-B libBufferSize] [-s colDelimiter] [-E EnclosedByChar]
[-C escChar] [-j jobID] [-p jobFilePath] [-w numParsers]
[-n nullOption] [-P pmList] [-i] [-S] [-q batchQty]


-s : 'c' is the delimiter between column values.

-E : Enclosed by character if field values are enclosed.


-C : Escape character used in conjunction with 'enclosed by' character, or as part of NULL escape sequence ('\N');
        default is '\'

 


 

반응형