일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ambiguous function description
- rust 기초
- chainlink 설명
- ethers v6
- ethers websocket
- 러스트기초
- vue기초
- ethers
- 티스토리챌린지
- 스마트컨트렉트 예약어 함수이름 중복
- Vue
- 컨트렉트 배포 자동화
- 체인의정석
- 스마트컨트렉트프록시
- git rebase
- 프록시배포구조
- SBT표준
- nest.js설명
- 러스트 기초 학습
- Vue.js
- 오블완
- ethers typescript
- 컨트렉트 동일한 함수이름 호출
- ethers type
- 스마트컨트렉트테스트
- 러스트 기초
- 스마트컨트렉트 함수이름 중복 호출
- multicall
- 스마트 컨트렉트 함수이름 중복
- 머신러닝기초
- Today
- Total
체인의정석
카산드라 DB mac에서 사용해보기 본문
명령어
1. brew 로 카산드라 설치
brew install cassandra
2. cassandra 시작
brew services start cassandra
3. 카산드라의 쿼리 언어인 CQL 사용
Cassandra Query Language (CQL): Cassandra uses CQL for queries. You can interact with Cassandra using the CQL shell (cqlsh).
cqlsh
Connected to Test Cluster at 127.0.0.1:9042
[cqlsh 6.1.0 | Cassandra 4.1.3 | CQL spec 3.4.6 | Native protocol v5]
Use HELP for help.
cqlsh>
4. 콘솔에 들어가졌다면 Keyspace 생성 후 테이블 생성
cqlsh> CREATE KEYSPACE mykeyspace WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3};
USE mykeyspace;
CREATE TABLE users (
user_id int PRIMARY KEY,
name text,
email text
);
5. Insert후 select해서 확인
cqlsh:mykeyspace> INSERT INTO users (user_id, name, email) VALUES (123, 'John Doe', 'john@example.com');
cqlsh:mykeyspace> SELECT * FROM users;
user_id | email | name
---------+------------------+----------
123 | john@example.com | John Doe
구조
아파치 카산드라에서 키스페이스와 테이블은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터베이스 및 테이블과 어느 정도 유사한 기본 개념이지만, 분산 데이터베이스라는 카산드라의 특성으로 인해 몇 가지 주요 차이점이 있습니다.
Keyspace
Cassandra의 키스페이스는 데이터를 위한 가장 바깥쪽 컨테이너로, RDBMS의 데이터베이스와 유사합니다. 클러스터의 노드에서 데이터가 복제되는 방식을 정의합니다. 키스페이스의 주요 측면은 다음과 같습니다:
Replication Strategy
- Replication Factor: 데이터 사본이 저장될 노드 수를 결정합니다. 복제 계수가 높을수록 데이터 가용성과 내결함성이 증가합니다.
- SimpleStrategy: 단일 데이터 센터에 적합합니다. 파티셔너가 계산한 노드에 첫 번째 복제본을 배치하고 토폴로지를 고려하지 않고 링의 다음 노드에 시계 방향으로 추가 복제본을 배치합니다.
NetworkTopologyStrategy :여러 데이터 센터 배포에 사용됩니다. 각 데이터 센터에서 원하는 복제본 수를 지정할 수 있습니다.
Durable Writes: 이 설정은 키스페이스에 기록된 데이터를 커밋 로그에 기록할지 여부를 지정합니다. 지속 쓰기를 비활성화하면 데이터가 손실될 수 있습니다.
=> 카산드라는 분산 DB이기 때문에 복제할 개수를 먼저 지정합니다.
Table
열 제품군이라고도 하는 Cassandra의 테이블은 데이터가 저장되는 곳입니다. 테이블은 키 스페이스 내에 정의되며 열로 정의된 스키마를 갖습니다. 주요 기능은 다음과 같습니다:
Primary Key: 기본 키는 Cassandra에서 필수이며 파티션 키와 클러스터링 열로 구성됩니다.
Partition Key: 노드 간에 데이터의 분포를 결정합니다. 동일한 파티션 키를 가진 행은 함께 저장됩니다.
Clustering Columns: 파티션 내에서 데이터를 정렬하는 데 사용되며 하위 키로 생각할 수 있습니다.
Columns: 각 테이블에는 각각 지정된 데이터 유형을 가진 열 집합이 있습니다. Cassandra는 다양한 데이터 유형을 지원합니다.
Data Modeling: RDBMS와 달리 Cassandra의 데이터 모델링은 쿼리 중심이어야 합니다. 실행하려는 쿼리를 기반으로 테이블 스키마를 설계하는 경우가 많습니다.
=> 카산드라 DB의 경우 클러스터링 키에 포함되거나 단일 프라이머리 키에 포함이 되어야지만 쿼리에서 조건절 검색이 가능하다. 따라서 실행하려는 쿼리를 먼저 설계한 후에 스키마를 설계해야 한다.
Data
counter : 숫자형태로 계속 업데이트 되는값. mysql의 Auto Increment와는 다르다.
uuid: uuid를 나타내는 자료형. 카산드라 DB는 병렬 처리되므로 Auto Increment가 존재하지 않기 때문에 고유값으로서 자주 사용한다.
int:숫자형
string:문자형
https://docs.datastax.com/en/cql-oss/3.3/cql/cql_using/useCounters.html
'개발 > database' 카테고리의 다른 글
MySQL) You are using safe update mode 에러 (1) | 2024.11.14 |
---|---|
Nest.js & Cassandra 로 백엔드 세팅해보기 (0) | 2023.11.14 |
DB에서 인덱싱하는 법과 Sequalize에서 테이블 정의 시 index 넣는 방법 (0) | 2023.09.15 |
Sequalize와 raw query를 통하여 updated at, created at 만들기 (0) | 2023.08.25 |
MYSQL에서 Insert와 update 하나의 구문으로 처리하기 (ON DUPLICATE KEY UPDATE, UPSERT, sequalize) (0) | 2023.08.21 |