CockroachDB에 대용량 데이터를 입력할 때 성능 향상법을 소개해 드립니다. Java로 프로그래밍 할 경우에 JDBC가 RDBMS에 연동하는 표준 방법이죠. 다량의 데이터를 빠르게 처리하는 방법이 바로 JDBC의 Batch를 이용하는 것입니다. PostgreSQL용 jdbc로 CockroachDB에 데이터를 넣고 있었는데 속도가 만족스럽지 않아서 CockroachDB Document에 소개되어 있는 Multiple Insert 방법으로 변경했더니, 변경전보다 약 5~10배 정도 입력 속도가 향상이 되었습니다. 입력속도가 일정하지 않은 것은 CockroachDB가 Store Engine으로 사용하고 있는 "RockDB" 특성 때문입니다. RockDB는 페이스북에서 구글의 " LevelDB"를 가져다가..
CockroachDB는 구글이 만든 "Go 언어"로 개발이 되었습니다. 물론 소스를 보시면 아시겠지만 내부적으로 사용하는 대다수의 라이브러리는 C++로 만들어 졌죠. 제가 Go 언어에 관심이 없었던 이유는 배우는 것은 비교적 쉬워 보이는데, 막상 배워서 사용할 일이 없을 것 같아서 였습니다. 지금도 제 업무상 "Go 를 사용할 일이 있을까" 싶습니다. 그런데 최근에 "CockroachDB"로 미니 프로젝트를 진행하면서 로그 파일에서 자주 "xxx.go" 라는 문구를 접하다 보니 호기심에 "CockroachDB 소스"에서 해당 파일을 찾아 보게 되었습니다. 그런 호기심에 "Go 언어" 관련된 책도 구매를 했네요. "CockroachDB" -> "GoLang " -> "GoLand"로 점점 관심이 옮겨가면서..
Oracle를 비롯해서 SQL Server, MySQL(MariaDB), PostgreSQL은 비교적 고급 정보도 인터넷 또는 전문서적에서 쉽게 만나볼 수 있습니다. MongoDB로 프로젝트 할 때 "정말 정보가 없다"라고 느꼈는 데, CockroachDB는 너~~무 없네요. GitHub랑 홈페이지에 있는 버전 별 매뉴얼이 다 입니다. MongoDB는 프로젝트를 진행하면서 힘들었던 점은 MQL 언어를 배워야 했고, 언어 별(JAVA, Python, Scalar)로 따로 또 코딩으로 구현 해야해서 힘들었습니다. 하지만 프로젝트를 끝내고 나니 성능과 효율성은 발군입니다. (대만족) 그럼에도 SQL에 대한 Needs가 있어서 CockroachDB로 미니 프로젝트를 진행하는 중입니다. MongoDB는 처음에 좀..
CockroachDB는 세상에 나온지 얼마되지 않아서 인지, 전용 GUI Client Tool이 없습니다. 반면에 MongoDB는 자사의 Compass라는 툴도 있고, 상용으로는 NoSQLBooster, Studio 3T, Navicat 등 많이 있습니다. 작업을 많이 할 수록 콘솔에서 작업하는 것은 능률이 떨어집니다. 예전부터 다양한 DB를 접속할 수있는 All-in-one 툴(ex, WinSQL)이 많이 있었는 데, 요즘엔 "DBeaver" 라는 툴을 많이 사용하더군요. Community 버전은 무료이고, Enterprise버전은 MongoDB를 비롯하여 몇가지 NoSQL 제품도 지원합니다. CockroachDB에 접속해서 사용해보니 나름 쓸만 했습니다. Oracle, SAP IQ에도 붙여서 사용해 ..
CockroachDB에서 권장하는 Primary Key는 UUID(Universally Unique Identifier)를 사용하는 것입니다. UUID는 여러가지 포맷이 있는데 기본은 "Standard RFC4122-specified format" 형식입니다. ex) acde070d-8c4c-4f0d-9d8a-162843c10333 클러스터 환경에서 각각의 노드에 데이터가 청크단위로 분배될때 (기본 64MB) 선형적으로 증가하는 값을 Primary Key로 사용하는 것 보다 UUID 값 처럼 랜덤값을 사용하면 데이터 분산이 효과적이며, 병목현상도 줄일 수 있습니다. ex) create table t_order ( _id uuid primary key default gen_random_uuid(), ord..
InteliJ IDEA를 사용하면서 인터넷만 연결되어 있다면, 온라인으로 원하는 플러그인을 쉽게 검색하고 설치할 수 있습니다. 저 처럼 회사에 망분리(인터넷 안됨)가 되어 있는 개발 환경에서는 수동으로 해당 플러그인을 다운로드 받아서 설치해야 합니다. URL =https://plugins.jetbrains.com/plugin/1347-scala/versions 위 주소에서 스칼라 플러그인을 받을 수 있는 데, 이때 주의하실 점이 현재 사용하고 있는 InteliJ IDEA 버전에 호환된는 버전을 받으셔야 합니다. 즉 InteliJ IDEA 버전과 에디션(Community, Ultimate Commnunity Edition을 사용하고 있었는데, Ultimate 버전을 다운로드 받아서 설치했더니 InteliJ..
jdbc를 통해서 특정 테이블의 데이터를 삭제할 때 발생될 수 있는 에러를 해결할 수 있는 방법입니다. 첫번째. delete large amount error ~~ 특정 rows 이상을 한번에 삭제하는 경우에 발생 합니다. ex) delete from t_orders where order_dt >= '20190101'; 이경우는 limit 절을 이용해 삭제할 대상을 split하면서 삭제하면 해결이 됩니다. ex) con.setAutoCommit(false); Statement stmt = con.createStatement(); int nDeleteRows; do { // 1만건씩 삭제하는 경우 nDeleteRows = (stmt.executeUpdate("delete from t_orders where..
- Total
- Today
- Yesterday
- 파나소닉 비데 DL-EH10KWS
- 별이 빚나는 밤
- 솔리드 쿨론
- 로니카 BCS
- 코라나 19
- GKRS
- 카카오 에드
- 빈센트 반 고흐
- node.js
- 매직 트랙패드2
- Life Chair
- Pixel Pals
- 별잉 빛나는 밤
- VARIDESK
- 루미큐브 종류
- 화분벌레
- 르세라핌
- yugabyteDB
- 오미크론
- 홈 오피스
- 남설 팔찌
- 유가바이트디비
- 배당급
- Sybase IQ
- 톡토기
- weka
- 증권정보포털
- 고체 향수
- 브리다 정수기
- JMW 헤어드라이기기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |