키스페이스 Cassandra생성, 수정 및 삭제 예시
⚡ 스마트 요약
키스페이스 Cassandra `sudo`는 관계형 시스템의 데이터베이스와 유사한 가장 바깥쪽 데이터 컨테이너이며, 그 안에 있는 모든 테이블의 복제 방식을 결정합니다. 이 페이지에서는 `sudo`의 생성, 수정 및 삭제에 대해 설명합니다.ping 키스페이스와 해당 속성 및 시스템 키스페이스.
키스페이스란 무엇입니까? Cassandra?
키스페이스 Cassandra 데이터베이스는 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터베이스와 유사한 데이터 컨테이너입니다. Cassandra Keyspace는 노드에서 데이터가 복제되는 방식을 결정합니다.
복제 전략은 개별 테이블이 아닌 키스페이스를 기준으로 설정되므로, 키스페이스 내에 생성되는 모든 테이블은 동일한 복제 전략과 복제 계수를 상속받습니다. 따라서 키스페이스는 스키마 설정에서 가장 먼저 고려해야 할 사항입니다.
키스페이스를 만드는 방법 Cassandra
키스페이스는 사용자 정의 유형인 열 패밀리를 보유하는 객체입니다. ~ 안에 Cassandra, 키스페이스는 다음과 유사합니다. RDBMS 데이터 베이스. Keyspace에는 열 패밀리, 인덱스, 사용자 정의 유형, 데이터 센터 인식, 키스페이스에서 사용되는 전략, 복제 요소 등이 포함됩니다.
명령 "키스페이스 생성"는 키스페이스를 생성하는 데 사용됩니다. Cassandra.
통사론
CREATE KEYSPACE KeyspaceName WITH replication = { 'class': 'StrategyName', 'replication_factor': 3 };
다양한 구성 요소 Cassandra 키 스페이스
- 전략: 전략 이름을 선언하는 동안 Cassandra. 에는 두 가지 종류의 전략이 선언되어 있습니다. Cassandra 통사론.
- 간단한 전략: 단순 전략은 데이터 센터가 하나뿐인 경우에 사용됩니다. 이 전략에서 첫 번째 복제본은 분할자가 선택한 노드에 배치됩니다. 나머지 노드는 랙이나 노드 위치를 고려하지 않고 링에서 시계 방향으로 배치됩니다.
- 네트워크 토폴로지 전략: 네트워크 토폴로지 전략은 데이터 센터가 두 개 이상일 때 사용됩니다. 이 전략에서는 각 데이터 센터에 대해 별도로 복제 요소를 제공해야 합니다. 네트워크 토폴로지 전략은 동일한 데이터 센터의 시계 방향으로 노드에 복제본을 배치합니다. 이 전략은 복제본을 다른 랙에 배치하려고 시도합니다.
- 복제 인자: 복제 인수는 서로 다른 노드에 배치된 데이터의 복제본 수입니다. 실패가 없으면 3이 좋은 복제 인자입니다. 두 개 이상의 복제 요소가 있으면 단일 실패 지점이 발생하지 않습니다. 때로는 서버가 다운되거나 네트워크 문제가 발생할 수 있으며, 다른 복제본이 장애 없이 서비스를 제공할 수 있습니다.
- 예: 다음은 키스페이스를 생성하는 실행된 명령 "Create Keyspace"의 스냅샷입니다. Cassandra.
CREATE KEYSPACE University WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': 3 };
"Create Keyspace" 명령을 성공적으로 실행하면 Keyspace University가 다음 위치에 생성됩니다. Cassandra 전략은 "SimpleStrategy"이고 복제 계수는 3입니다. 전략 이름은 반드시 따옴표로 묶어야 하며, 따옴표 없이 입력하면 구문 오류로 처리됩니다.
키스페이스 변경 Cassandra
"Alter Keyspace" 명령은 생성된 키스페이스의 복제 요소, 전략 이름 및 내구성 쓰기 속성을 변경합니다. Cassandra.
통사론
ALTER KEYSPACE KeyspaceName WITH replication = { 'class': 'StrategyName', 'replication_factor': 3 } AND DURABLE_WRITES = true;
Keyspace를 변경하는 동안의 주요 측면 Cassandra
- 키스페이스 이름: 키스페이스 이름은 다음에서 변경할 수 없습니다. Cassandra.
- 전략 이름: 새 전략 이름을 지정하여 전략 이름을 변경할 수 있습니다.
- 복제 인자: 새로운 복제 인자를 지정하여 복제 인자를 변경할 수 있습니다.
- DURABLE_WRITES: DURABLE_WRITES 값은 true 또는 false로 지정하여 변경할 수 있습니다. 기본값은 true입니다. false로 설정하면 커밋 로그에 업데이트가 기록되지 않으며, 반대로 true로 설정하면 업데이트가 기록됩니다.
- 실행: 다음은 키스페이스 전략을 'SimpleStrategy'에서 'NetworkTopologyStrategy'로 변경하고 DataCenter3의 복제 인수를 1에서 1로 변경하는 실행된 명령 "Alter Keyspace"의 스냅샷입니다.
ALTER KEYSPACE University WITH replication = { 'class': 'NetworkTopologyStrategy', 'DataCenter1': 1 };
"키스페이스 변경" 명령이 성공적으로 실행되면 전략 이름이 'SimpleStrategy'에서 'NetworkTopologyStrategy'로 변경되고 'DataCenter1'의 복제 계수가 3에서 1로 변경됩니다.
중요 사항: 복제 배율을 높인다고 해서 기존 데이터가 자동으로 복사되는 것은 아닙니다. 실행하세요. 노드툴 복구 영향을 받는 키스페이스에서 이후에 수정이 이루어지며, 그렇지 않으면 읽기 복구가 각 행을 건드릴 때까지 새 복제본은 비어 있는 상태로 유지됩니다.
Cassandra 키스페이스 삭제
명령 '키스페이스 삭제' 모든 데이터, 열 그룹, 사용자 정의 유형 및 인덱스를 포함한 키스페이스를 삭제합니다. Cassandra떨어뜨리기 전에ping 키스페이스, Cassandra 키스페이스의 스냅샷을 찍습니다. 키스페이스가 존재하지 않는 경우 Cassandra, Cassandra IF EXISTS를 사용하지 않으면 오류가 반환됩니다.
통사론
DROP KEYSPACE IF EXISTS KeyspaceName;
예시
다음은 키스페이스 University를 삭제하는 실행된 명령 'Drop Keyspace'의 스냅샷입니다.
DROP KEYSPACE University;
'Drop keyspace University' 명령을 성공적으로 실행하면 keyspace University가 삭제됩니다. Cassandra 모든 데이터와 스키마가 포함됩니다.
존재하지 않는 키스페이스에 액세스하려고 시도할 때 오류가 반환되는 스냅샷은 다음과 같습니다.
주의 사항: 키스페이스 삭제와 키스페이스 삭제에는 차이가 없습니다. 키스페이스 삭제는 키스페이스 삭제와 같습니다.
키스페이스 속성 및 시스템 키스페이스
제작과 드롭을 넘어서ping세 가지 명령어로 cqlsh에서 일상적으로 사용하는 거의 모든 키스페이스 작업을 처리할 수 있습니다.
DESCRIBE KEYSPACES; DESCRIBE KEYSPACE University; USE University;
첫 번째 명령은 클러스터의 모든 키스페이스를 나열하고, 두 번째 명령은 테이블을 포함하여 하나의 키스페이스의 전체 스키마를 출력하며, 세 번째 명령은 테이블 이름에 더 이상 접두사가 필요하지 않도록 현재 키스페이스를 설정합니다.
사용자 키스페이스와 함께, Cassandra 이 함선은 자체적으로 여러 개의 키스페이스를 가지고 있습니다. 이 키스페이스들은 DESCRIBE KEYSPACES 명령의 출력에 나타나므로 삭제하기보다는 인식해 두는 것이 좋습니다.
- 시스템 : 로컬 노드의 상태(토큰 범위 및 알고 있는 피어 포함)입니다.
- 시스템 스키마: 클러스터에 있는 모든 키스페이스, 테이블, 컬럼 및 인덱스의 정의입니다.
- 시스템 인증: 인증이 활성화된 경우의 역할, 권한 및 자격 증명.
- 시스템_분산됨: 수리 내역 및 기타 클러스터 전체 회계ping.
- 체계_trac입니다 : 질문 traces는 포착되었을 때 tracing 스위치가 켜져 있습니다.
이 중 두 가지는 생산 과정에서 주목할 만합니다. 시스템 인증 키스페이스는 기본적으로 복제 계수 1로 생성됩니다. 해당 노드가 손실되면 아무도 로그인할 수 없으므로 클러스터의 복제 계수와 일치하도록 복제 계수를 높여야 합니다. 시스템 스키마 키스페이스는 스키마 변경 사항을 한 번에 하나씩 적용해야 하는 이유를 설명합니다. 동시 변경은 노드 간에 충돌하는 스키마 버전을 생성할 수 있기 때문입니다.
일반적인 키스페이스 오류 및 해결 방법
대부분의 키스페이스 오류는 짧고 알아듣기 쉬운 메시지를 생성합니다.
| 오류 | 원인 및 해결책 |
|---|---|
| 알 수 없는 키스페이스 | 키스페이스가 선택되지 않았습니다. USE KeyspaceName을 실행하거나 테이블 이름 앞에 Keyspace.Table을 접두사로 붙이십시오. |
| 'SimpleStrategy'에서 구문 오류가 발생했습니다. | 전략 이름은 따옴표 없이 입력하세요. 'class': 'SimpleStrategy'처럼 따옴표를 사용하여 입력하세요. |
| 인식되지 않은 전략 옵션 {replication_factor} | replication_factor는 NetworkTopologyStrategy와 함께 사용되었습니다. 해당 전략은 데이터 센터 이름별로 팩터를 사용합니다. |
| 기존 키스페이스를 추가할 수 없습니다. | 해당 키스페이스가 이미 존재합니다. IF NOT EXISTS를 추가하거나, 기존 키스페이스를 먼저 삭제하십시오. |
| 복제 배율을 높인 후 데이터가 누락되었습니다. | 예상된 동작입니다. 새 복제본이 생성되도록 키스페이스에 대해 nodetool repair를 실행하십시오. |
키스페이스가 생성되면 다음 단계는 그 안에 저장소를 정의하는 것이며, 이는 다음에서 다룹니다. Cassandra 테이블 튜토리얼.





