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..
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..
현재 19.x 버전까지 CockroachDB의 Default Time Zone 은 'UTC' 입니다. Oracle, MySQL, PostgreSQL처럼 Default Time Zone를 바꿀 수 없는 것 같습니다. (아직 설정을 못 찾음) 공식 문서에서 Time Zone 관련해서 찾아 보면 Session 레벨에서 Time Zone를 변경하는 방법만 소개되어 있습니다. 즉, 매번 CockroachDB에 접속한 후에 Session에 Time Zone를 설정해줘야 now(), current_date()와 같은 함수 리턴 값이 시스템 시간과 동일하게 나옵니다. > > set time zone 9 위와 같이 해주면 시스템 시간과 동일해 집니다. 우리나라 time zone에 맞는 데이터를 저장해 보기 1. 위와 같..
PostgreSQL용 JDBC 드라이버를 이용해서 CockroachDB에 Batch Insert/Update (Bulk)하는 경우에 아래와 같은 에러가 종종 발생할 수 있습니다. org.postgresql.util.PSQLException: ERROR: restart transaction: TransactionRetryWithProtoRefreshError: TransactionAbortedError(ABORT_REASON_TIMESTAMP_CACHE_REJECTED_POSSIBLE_REPLAY): CockroachDB Document 중 Transaction부분에 위 에러를 대비해서 에러 발생시 재시도를 수행하는 부분을 넣어 둘 것을 권고하 고 있습니다. 저는 Batch Insert/Update 즉 e..
오늘 처음부터 새로 "CockroachDB" 클러스터를 구성해 보았습니다. 1. 3대의 서버에 CockroachDB 설치 (바이너리 파일 배치) 2. 사용자 인증(패스워드)를 위해서 CA 인증서 및 키 생성 3. root 사용자 인증서 생성 4. 클러스터 구성 5. 데이터베이스 생성 6. 일반 유저 생성 후 5단계에서 생성한 데이터베이스에 권한 부여 7. 첫번째 노드에 테이블을 생성하고, 데이터를 30만건 입력 8. 2~3번 노드에서 사용자 접속 후에 1번에서 입력한 데이터 확인 CockroachDB는 하나의 바이너리 파일이 모든 기능을 수행하는데, 클러스터 구성도 MongoDB에 비하면 훨씬 쉬웠습니다. 데이터 입력속도는 MongoDB에 비해서 성능이 좋지 못하지만, 데이터를 조회하는 속도가 Mongo..
- Total
- Today
- Yesterday
- 솔리드 쿨론
- 파나소닉 비데 DL-EH10KWS
- 로니카 BCS
- 빈센트 반 고흐
- Life Chair
- VARIDESK
- 남설 팔찌
- 카카오 에드
- 유가바이트디비
- 오미크론
- 증권정보포털
- 홈 오피스
- 브리다 정수기
- 코라나 19
- 매직 트랙패드2
- GKRS
- node.js
- weka
- Sybase IQ
- 화분벌레
- 고체 향수
- 별잉 빛나는 밤
- Pixel Pals
- 별이 빚나는 밤
- 르세라핌
- 루미큐브 종류
- JMW 헤어드라이기기
- 배당급
- 톡토기
- yugabyteDB
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |