Apache Cassandra Query Language (CQL)

Similar documents
Data Modeling in the New World with Apache Cassandra TM. Jonathan Ellis CTO, DataStax Project chair, Apache Cassandra

CQL for Cassandra 2.2 & later

Going Native With Apache Cassandra. QCon London, 2014

CQL for Cassandra 2.0 & 2.1

Apache Cassandra 1.2 Documentation

Database Migration from MySQL to RDM Server

MariaDB Cassandra interoperability

SQL. Short introduction

How To Create A Table In Sql (Ahem)

A Brief Introduction to MySQL

Simba Apache Cassandra ODBC Driver

3.GETTING STARTED WITH ORACLE8i

HDB++: HIGH AVAILABILITY WITH. l TANGO Meeting l 20 May 2015 l Reynald Bourtembourg

Going Native With Apache Cassandra. NoSQL Matters, Cologne, 2014

Services. Relational. Databases & JDBC. Today. Relational. Databases SQL JDBC. Next Time. Services. Relational. Databases & JDBC. Today.

Data Tool Platform SQL Development Tools

sqlite driver manual

SQL Server An Overview

Relational Database: Additional Operations on Relations; SQL

Python Driver 1.0 for Apache Cassandra

A table is a collection of related data entries and it consists of columns and rows.

Using SQL Server Management Studio

Retrieving Data Using the SQL SELECT Statement. Copyright 2006, Oracle. All rights reserved.

A Comparison of Database Query Languages: SQL, SPARQL, CQL, DMX

Package RCassandra. R topics documented: February 19, Version Title R/Cassandra interface

Introduction to Cassandra

2/3/04 Doc 7 SQL Part 1 slide # 1

Easy-Cassandra User Guide

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

ODBC Client Driver Help Kepware, Inc.

MySQL Command Syntax

Linas Virbalas Continuent, Inc.

Financial Data Access with SQL, Excel & VBA

Apache Cassandra 1.2

Hypertable Architecture Overview

Database Administration with MySQL

Language Reference Guide

Title. Syntax. stata.com. odbc Load, write, or view data from ODBC sources. List ODBC sources to which Stata can connect odbc list

MS ACCESS DATABASE DATA TYPES

KMx Enterprise: Integration Overview for Member Account Synchronization and Single Signon

ApacheCon Infinite Session Clustering with Apache Shiro & Cassandra

Database Query 1: SQL Basics

Export of audit trail events from Salto software. Version 2.0

Managing Users and Identity Stores

Information Technology NVEQ Level 2 Class X IT207-NQ2012-Database Development (Basic) Student s Handbook

Porting from Oracle to PostgreSQL

Chapter 4: Computer Codes

Sybase Adaptive Server Enterprise

Apache Cassandra for Big Data Applications

6.170 Tutorial 3 - Ruby Basics

4 Logical Design : RDM Schema Definition with SQL / DDL

Architecting the Future of Big Data

Big Data Development CASSANDRA NoSQL Training - Workshop. March 13 to am to 5 pm HOTEL DUBAI GRAND DUBAI

Number Representation

Raima Database Manager Version 14.0 In-memory Database Engine

How Strings are Stored. Searching Text. Setting. ANSI_PADDING Setting

Greenplum Database 4.2 Load Tools for Windows. P/N: Rev: A06

Apache Cassandra Present and Future. Jonathan Ellis

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner

Integrating VoltDB with Hadoop

PL / SQL Basics. Chapter 3

Introduction to Java Applications Pearson Education, Inc. All rights reserved.

Relational databases and SQL

ERserver. DB2 Universal Database for iseries SQL Programming with Host Languages. iseries. Version 5

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

Chapter 6: Physical Database Design and Performance. Database Development Process. Physical Design Process. Physical Database Design

Microsoft SQL connection to Sysmac NJ Quick Start Guide

Information and Computer Science Department ICS 324 Database Systems Lab#11 SQL-Basic Query

2874CD1EssentialSQL.qxd 6/25/01 3:06 PM Page 1 Essential SQL Copyright 2001 SYBEX, Inc., Alameda, CA

Utility Software II lab 1 Jacek Wiślicki, jacenty@kis.p.lodz.pl original material by Hubert Kołodziejski

Recognizing PL/SQL Lexical Units. Copyright 2007, Oracle. All rights reserved.

CA Nimsoft Monitor. Probe Guide for NT Event Log Monitor. ntevl v3.8 series

B.1 Database Design and Definition

SnapLogic Salesforce Snap Reference

Introduction to Microsoft Jet SQL

Configuring Health Monitoring

SQL - QUICK GUIDE. Allows users to access data in relational database management systems.

PL/SQL Overview. Basic Structure and Syntax of PL/SQL

Cassandra vs MySQL. SQL vs NoSQL database comparison

MS Access: Advanced Tables and Queries. Lesson Notes Author: Pamela Schmidt

Using the SQL Procedure

Comparing SQL and NOSQL databases

Architecting the Future of Big Data

Bachelors of Computer Application Programming Principle & Algorithm (BCA-S102T)

MYSQL DATABASE ACCESS WITH PHP

Pemrograman Dasar. Basic Elements Of Java

Facebook: Cassandra. Smruti R. Sarangi. Department of Computer Science Indian Institute of Technology New Delhi, India. Overview Design Evaluation

Field Properties Quick Reference

HA Proxy DNS Configuration Mode Commands

The release notes provide details of enhancements and features in Cloudera ODBC Driver for Impala , as well as the version history.

Heterogeneous Replication Guide. SAP Replication Server SP200

Ensemble X12 Development Guide

Axway API Gateway. Version 7.4.1

4D v11 SQL Release 3 (11.3) ADDENDUM

COSC 6397 Big Data Analytics. 2 nd homework assignment Pig and Hive. Edgar Gabriel Spring 2015

not at all a manual simply a quick how-to-do guide

Information Systems SQL. Nikolaj Popov

Transcription:

REFERENCE GUIDE - P.1 ALTER KEYSPACE ALTER TABLE ALTER TYPE ALTER USER ALTER ( KEYSPACE SCHEMA ) keyspace_name WITH REPLICATION = map ( WITH DURABLE_WRITES = ( true false )) AND ( DURABLE_WRITES = ( true false )) map is a map collection, a JSON-style array of literals, such as class : SimpleStrategy or NetworkTopologyStrategy in this format: { literal : literal, literal : literal... } ALTER TABLE keyspace_name.table_name instruction instruction is: ALTER column_name TYPE cql_type ( ADD column_name cql_type ) ( DROP column_name ) ( RENAME column_name TO column_name ) ( WITH property AND property... ) cql_type is compatible with the original type and is a CQL type other than a collection or counter. Exceptions: ADD supports a collection type and also, if the table is a counter, a counter type. property is a CQL table property (p. 4) and value, such as read_repair_chance =.5. ALTER TYPE name instruction name is an identifier of a user-defined type. field_name is an arbitrary identifier for the field. new_type is an identifier other than the reserved type names. ALTER USER user_name WITH PASSWORD 'password' ( NOSUPERUSER SUPERUSER ) CREATE INDEX CREATE KEYSPACE CREATE TABLE CREATE CUSTOM INDEX IF NOT EXISTS index_name ON keyspace_name.table_name ( KEYS (column_name) ) ( USING class_name ) ( WITH OPTIONS = map ) Restrictions: USING class_name is allowed only if CUSTOM is used and class_name is a string literal containing a java class name. index_name is an identifier, enclosed or not enclosed in double quotation marks, excluding reserved words. map is described in ALTER KEYSPACE. CREATE ( KEYSPACE SCHEMA ) IF NOT EXISTS keyspace_name WITH REPLICATION = map AND DURABLE_WRITES = ( true false ) map is described in ALTER KEYSPACE. CREATE TABLE IF NOT EXISTS keyspace_name.table_name ( column_definition, column_definition,...) WITH property AND property... column_definition is: column_name cql_type STATIC PRIMARY KEY column_name frozen<tuple<tuple_type> tuple<tuple_type>... > PRIMARY KEY column_name frozen<user-defined_type> PRIMARY KEY ( PRIMARY KEY ( partition_key ) ) Restrictions: There should always be exactly one primary key definition. cql_type of the primary key must be a CQL type or user-defined type. cql_type of a collection uses this syntax: BATCH BEGIN ( UNLOGGED ) BATCH USING TIMESTAMP timestamp dml_statement; dml_statement;... APPLY BATCH; LIST<cql_type> ( SET<cql_type> ) ( MAP<cql_type, cql_type> ) PRIMARY KEY is: column_name ( column_name1, column_name2, column_name3...) ((column_name4, column_name5), column_name6, column_name7...) dml_statement is: INSERT UPDATE DELETE column_name1 is the partition key. column_name2, column_name3... are clustering columns. column_name4, column_name5 are partitioning keys. column_name6, column_name7... are clustering columns. (continued) * Uppercase means literal * Lowercase means not literal * Italics mean optional * The pipe ( ) symbol means OR or AND/OR * Ellipsis (...) means repeatable * Orange () indicate scope, not literal

REFERENCE GUIDE - P.2 CREATE TABLE (continued) property is a CQL table storage property or one of these directives: DROP TRIGGER DROP TRIGGER trigger_name ON table_name COMPACT STORAGE ( CLUSTERING ORDER BY (clustering_column ( ASC DESC ),...) ) DROP TYPE DROP TYPE IF EXISTS type_name type_name is the name of a user-defined type. CREATE TRIGGER CREATE TYPE CREATE USER CREATE TRIGGER trigger_name ON table_name USING java_class DELETE DELETE column_name,... ( column_name term ) FROM keyspace_name.table_name USING TIMESTAMP integer WHERE row_specification ( IF ( EXISTS ( condition ( AND condition )... ) ) ) DROP INDEX DROP KEYSPACE CREATE TYPE IF NOT EXISTS keyspace.type_name (field, field,... ) type_name is a type identifier other than reserved type names. field is: field_name type field_name is an arbitrary identifier for the field. type is a CQL collection or non-collection type other than a counter type. CREATE USER IF NOT EXISTS user_name WITH PASSWORD 'password' NOSUPERUSER SUPERUSER term is: [ list_position ] key_value row_specification is one of: primary_key_name = key_value primary_key_name IN ( key_value, key_value,...) condition is: column_name [ list_position ] = key_value column_name = key_value DROP INDEX IF EXISTS index_name DROP ( KEYSPACE SCHEMA ) IF EXISTS keyspace_name DROP USER GRANT INSERT LIST PERMISSIONS DROP USER IF EXISTS user_name GRANT permission_name PERMISSION ( GRANT ALL PERMISSIONS ) ON resource TO user_name permission_name is one of: ALTER AUTHORIZE CREATE DROP MODIFY SELECT resource is one of: ALL KEYSPACES KEYSPACE keyspace_name TABLE keyspace_name.table_name INSERT INTO keyspace_name.table_name ( column_name, column_name... ) VALUES ( value, value,... ) IF NOT EXISTS USING option AND option value is one of: a literal a set { literal, literal,... } a list [ literal, literal,... ] a map collection, described in ALTER KEYSPACE option is one of: TIMESTAMP microseconds TTL seconds LIST permission_name PERMISSION ( LIST ALL PERMISSIONS ) ON resource OF user_name NORECURSIVE DROP TABLE DROP TABLE IF EXISTS keyspace_name.table_name permission_name and resource are shown in GRANT.

REFERENCE GUIDE - P.3 LIST USERS LIST USERS TRUNCATE TRUNCATE keyspace_name.table_name REVOKE REVOKE ( permission_name PERMISSION ) ( REVOKE ALL PERMISSIONS ) ON resource FROM user_name permission_name and resource are shown in GRANT. UPDATE UPDATE keyspace_name.table_name USING option AND option SET assignment, assignment... WHERE row_specification IF column_name = literal AND column_name = literal... SELECT SELECT select_expression FROM keyspace_name.table_name WHERE relation AND relation... ORDER BY (clustering_column ( ASC DESC ),... ) LIMIT n ALLOW FILTERING select_expression is: selection_list ( COUNT ( * 1 ) ) selection_list is: selector AS alias, selector AS alias,... * alias is an alias for a column. selector is: column_name ( WRITETIME (column_name) ) ( TTL (column_name) ) ( function (selector, selector,...) ) option is one of: TIMESTAMP microseconds TTL seconds assignment is one of: column_name = value set_or_list_item = set_or_list_item (+ -)... map_name = map_name (+ -)... column_name [ term ] = value counter_column_name = counter_column_name ( + - ) integer set, list, map are defined in INSERT. term is: [ list_position ] key_value row_specification is one of: primary_key_name = key_value primary_key_name IN (key_value,...) function is a timeuuid function, a token function, or a blob conversion function. relation is: column_name op term ( column_name, column_name,... ) op term-tuple column_name IN ( term, ( term,... ) ) column_name, column_name,... ) IN ( term-tuple, ( term-tuple... ) ) TOKEN ( column_name,... ) op ( term ) op is: = < > <= > = CONTAINS CONTAINS KEY term-tuple is: ( term, term,... ) term is a constant, such as a true or false, a bind marker (?), or a set, list, or map. USE USE keyspace_name

REFERENCE GUIDE - P.4 CQL Table Properties CQL Table Properties (continued) bloom_filter_fp_chance Desired false-positive probability for SSTable Bloom filters. Default 0.01 for SizeTieredCompactionStrategy, 0.1 for LeveledCompactionStrategy caching Cache memory settings. Values: For keys, ALL or NONE; Default All. For rows_per_partition, number of CQL rows, NONE, or ALL; Default NONE. comment A human readable comment describing the table. compaction Options for SSTable compaction: bucket_high bucket_low cold_reads_to_omit enabled max_threshold min_threshold min_sstable_size sstable_size_in_mb tombstone_compaction_interval tombstone_threshold Default SizeTieredCompaction compression The compression algorithm. Values: LZ4Compressor, SnappyCompressor, and DeflateCompressor. Default LZ4Compressor. Subproperties for the table: sstable_compression chunk_length_kb crc_check_chance dclocal_read_repair_chance The probability of read repairs being invoked over all replicas in the current data center. Default 0.1 default_time_to_live The default expiration time in seconds for a table. Used in MapReduce/Hive scenarios in which you have no control of TTL. Default 0 seconds. gc_grace_seconds The time to wait before garbage collecting tombstones (deletion markers). Default 864000 seconds (10 days). min_index_interval, max_index_interval Configures the sample frequency of the partition summary to control the sampling of entries from the partition index. Default 128 and 2048, respectively. memtable_flush_period_in_ms Forces flushing of the memtable after the number of specified milliseconds elapses. Default 0 read_repair_chance Specifies the probability for invoking read repairs on non-quorum reads. Default 0.0 speculative_retry Overrides normal read timeout when read_repair is not 1.0, sending another request to read. Options: ALWAYS Retry reads of all replicas. Xpercentile Retry reads based on the effect on throughput and latency. Yms Retry reads after specified milliseconds NONE Do not retry reads. Default 99percentile.

REFERENCE GUIDE - P.5 Functions Syntax elements Blob conversion Converts native types into binary data (blob). typeasblob() takes a native type and returns it as a blob bigintasblob(3) returns 0x0000000000000003 blobastype takes a 64-bit blob argument and converts it to a bigint value blobasbigint(0x0000000000000003) returns 3 dateof() Used in a SELECT clause to extract the timestamp of a timeuuid column in a resultset. Returns the extracted timestamp as a date. mintimeuuid() and maxtimeuuid() Returns a UUID-like result given a conditional time component as an argument. Example: SELECT * FROM mytable WHERE t > maxtimeuuid('2013-01-01 00:05+0000') AND t < mintimeuuid('2013-02-02 10:00+0000') now() Generates a new unique timeuuid, useful for inserting values. Returns a unique value. TTL() Returns the remaining time-to-live for a column. unixtimestampof() Used in a SELECT clause to extract the timestamp of a timeuuid column in a resultset. Returns a raw, 64-bit integer timestamp. WRITETIME() Returns date/time in microseconds that the column was written to the database. Generally, the elements used in the command syntax have the following definitions. A few elements have a slightly different meaning when used with a particular command and are redefined in the synopsis of the command. clustering_column A column that, in addition to the partition key, determines clustering. column_name Alphanumeric column name, case-insensitive unless enclosed in double quotation marks. No reserved keywords. Unreserved keywords enclosed in quotation marks are ok. Enclose names having unparseable characters in double quotation marks. constant A string, integer, float, boolean, UUID, or blob. counter_column_name A column_name of a column of type counter. keyspace_name A keyspace name, starting with an alpha character, consisting of 32 or fewer alpha-numeric characters and underscores. Case-insensitive unless enclosed in double quotation marks. key_value The value of a primary key. literal Data that is of a supported data type Float constant in E notation Numeric constant A letter, followed by any sequence of letters, digits, or the underscore A string, characters enclosed in single quotation marks Whitespace that separates of terms, otherwise ignored partition_key The column that determines on which node data is stored. property A CQL storage property, such as speculative_retry = '10ms'. table_name Valid table names are strings of alphanumeric characters and underscores, which begin with a letter. timestamp Microseconds representing the standard base time since epoch: January 1 1970 at 00:00:00 GMT. variable A bind variable, such as?, used with a prepared statement.

REFERENCE GUIDE - SUPPORTED DATA TYPES CQL Type Description ASCII US-ASCII character string BIGINT 64-bit signed long BLOB Arbitrary bytes (no validation), expressed as hexadecimal BOOLEAN true or false COUNTER Distributed counter value (64-bit long) DECIMAL Variable-precision decimal DOUBLE 64-bit IEEE-754 floating point FLOAT 32-bit IEEE-754 floating point INET IP address string in IPv4 or IPv6 form INT 32-bit signed integer LIST A collection of one or more ordered elements MAP A JSON-style array of literals: { literal : literal, literal : literal... } SET A collection of one or more elements TEXT UTF-8 encoded string TIMESTAMP Date plus time, encoded as 8 bytes since epoch TUPLE A group of two or three fields UUID A UUID in standard UUID format TIMEUUID Type 1 UUID only VARCHAR UTF-8 encoded string Office Locations VARINT Arbitrary-precision integer DATASTAX HQ - SF BAY AREA 3975 Freedom Circle Santa Clara, CA 95054 650-389-6000 DATASTAX TX 902 East 5th St. #202 Austin, TX 78702 512-537-7809