MariaDB ColumnStore "cpimport" 성능
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 '\'