Cassandra Query Language (CQL)은 카산드라 데이터베이스를 사용할 수 있는 primary lanuage 이다. 카산드라와 상호작용할 수 있는 가장 기본적인 방법은 CQL shel (cqlsh)을 이용하는 것이다. 이것을 이용해서 keyspace와 table 들을 만들 수 있고 insert와 다른 query tables 등등을 할 수 있다. graphocal tool을 원하시면 DataStax DevCenter 를 사용할 수 있다. Production을 위해서는 Datastax가 여러 driver들을 제공하기 때문에 CQL 구만은 client 에서 cluster 로 전달 되고 또 그 반대로 전달 받게 된다. 다른 관리 차원의 일들은 OpsCenter를 이용하면 된다.
Cassanddra 2.2 와 3.0을 위한 CQL 기능들
New CQL features include: |
|
Improved CQL features include: |
|
Removed CQL features include: |
|
Native protocol |
The Native Protocol has been updated to version 4, with implications for CQL use in the DataStax drivers. |
Cassandra 2.1 features
Cassandra 2.1 은 다음과 같은 새로운 CQL 기능을 포함한다.
* Nested user-defined types
* Improved counter columns : 카산드라가 commit log를 replay 할 때 정확한 count를 유지하기 위한 기능
* 수정 가능한 counter cache
* collenction에 대한 index 지원 기능, query result를 filter 하기 위햔 map key를 사용하기도 함
* millisecond 까지 가능한 Timestamps
* typed positional fields의 fixed-length set을 hold 하는 tuple typed
cqlsh utility도 개선된 기능들이 있다.
* operating system command line에서 CQL 구문을 받아서 처리할 수 있는 기능
* DESCRIBE 명령어를 사용해 type들을 표시해 주는 기능
DataStax Java Driver 2.0.0 은 제한적으로 Cassandra 2.1을 지원한다. 이 드라이버의 버전은 새로운 기능과 호환되지 않습니다.
다른 변화들은 이런 것들이 있습니다.
* counter column을 업데이트하기 위해 명령어에 USING TIMESTAMP나 USING TTL을 사용하는 것을 reject 합니다. 이럴 경우 카산드라는 에러 메세지를 보내게 됩니다.
* Cassandra 2.1 에서 CQL table property index_interval은 min_index_interval 과 max_index_interval로 대체됐습니다. max_index_interval 은 디폴트로 2048 입니다. 이 디폴트는 SSTable들이 불규칙적으로 읽히고 index summary memory pool이 full일 때에만 도달하게 됩니다. 이전 release에서 upgrade할 때 Cassandra는 min_index_interval에 대해 이전버전에서 사용하던 index_interval 값을 사용할겁니다.
Cassandra 2.0.x 기능들이
* INSERT와 UPDATE 구문에서 IF 키워드를 사용해 Lightweight transaction을 가능하게 한다.
* 현재 있는 테이블, 키스페이스, 인덱스등에 대해 conditional test를 실행함으로서 application error를 방지한다.
간단히 DROP 이나 CREATE 구문에 IF EXISTS 나 IF NOT EXISTS 를 포함하면 된다.
* 데이터베이스 클러스터 안팎에서 실행되는 이벤트들을 fire 하는 트리거를 위한 initial support 기능
* ALTER TABLE DROP command : 이전 버전에서는 제외 됐었었음
* Coulmn aliases : Select 구문에서 사용할 수 있으며 다른 RDBMS SQL의 aliase와 비슷하다.
* part, partition key 또는 Clustering columns, portion of a compound primary key 의 indexing 기능
DataStax 드라이버들은 Cassandra 2.0 을 자원한다.
Cassandra 2.0에 대한 CQL은 super column을 추천하지 않습니다. 카산드라는 CQL constructs 및 results에 즉석에서 슈퍼 컬럼을 번역하거나 쿼리하는 방법으로 계속적으로 지원하고 있습니다.
CQL Cassandra 2.0 에는 아래와 같은 cqlsh command에 변화가 있었습니다.
* ASSUME 명령어는 사라졌음. 이것 대신 blobAsType 과 typeAsBlob conversion 기능을 사용하면 됨.
* COPY 명령어가 collection도 지원하게 됨
Cassandra 2.0 에서 CQL에 다음과 같은 CQL table attribute들이 추가 됐습니다.
* default_time_to_live
* memtable_flush_period_in_ms
* populate_io_cache_on_flush
* speculative_retry
'etc. > Cassandra' 카테고리의 다른 글
JAVA 에서 APACHE Cassandra 에 연결하기 Part 2 (0) | 2016.01.08 |
---|---|
JAVA 에서 APACHE Cassandra 에 연결하기 Part 1 (0) | 2016.01.06 |
아파치 카산드라 - CQL 실습 - Creating Table 2 (0) | 2015.12.25 |
아파치 카산드라 - CQL 실습 - Createing a table - Simple primary key (0) | 2015.12.22 |
아파치 카산드라 - CQL 실습 1 keyspace (0) | 2015.12.21 |
CQL Data Modeling - 카산드라에서 데이터 모델링 하기 (0) | 2015.12.19 |
Key concepts and data model (0) | 2015.12.11 |
Install Cassandra 2 - Maven 설치하기 (0) | 2015.12.10 |
Install Cassandra 카산드라 설치하기 (0) | 2015.12.09 |