cassandra命令_hadoop

來源:互聯網
上載者:User

首先使用cassandra-cli 進入命令列:$ bin/cassandra-cli -host 192.168.0.101
1.建立keyspace

CREATE KEYSPACE usertable with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy' and strategy_options = {replication_factor:2};

2.建立列簇

create column family data with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type;

3.建立一個計算機的列簇

計數器列族主要包含計數器列,這個列是一個64位的有符號數的值,可供用戶端使用,採用遞增或是遞減的方式提供給用戶端使用。計數器列跟蹤最近的值或是計算使用它的值,並不斷更新自己,你必須建立一個列族專門給用戶端做計數用。

我們同時建立一個使用該計數器的列族,並使這個列族的CounterColumnType的default_validation_class預設指向該計數器。比如:

[default@demo] CREATE COLUMN FAMILYpage_view_counts

WITH default_validation_class=CounterColumnType

AND key_validation_class=UTF8Type AND comparator=UTF8Type;

插入一行資料時和計數器列同時更新(與計數器的初始值設定為0)

[default@demo] INCR page_view_counts['www.datastax.com'][home]BY 0;

計算機增量:

[default@demo] INCR page_view_counts['www.datastax.com'][home]BY 1;

4.插入一行或是一列資料

面的例子說明了使用set指令為user列族插入列值。在這個例子中我們採用key為bobbyjo,在bobbyjo上插入了很多列,它們屬於users這個列族,記住bobbyjo只是一行的標識。注意我們每次只能插入一列。

[default@demo] SET users['bobbyjo']['full_name']='RobertJones';

 

[default@demo] SET users['bobbyjo']['email']='bobjones@gmail.com';

 

[default@demo] SET users['bobbyjo']['state']='TX';

 

[default@demo] SET users['bobbyjo']['gender']='M';

 

[default@demo] SET users['bobbyjo']['birth_year']='1975';

 

在接下來的例子中我們採用yomama作為行的key,在users這個列族中插入若干列和值。

[default@demo] SET users['yomama']['full_name']='CathySmith';

 

[default@demo] SET users['yomama']['state']='CA';

 

[default@demo] SET users['yomama']['gender']='F';

 

[default@demo] SET users['yomama']['birth_year']='1969';

 

在下面的例子中,我們為創blog_entry列族建一個key為yomama的列:

[default@demo] SET blog_entry['yomama'][timeuuid()]= 'I love my new shoes!';

5.讀取行和列的資料

在Cassandra用戶端中我們使用GET指令從指定的列族中讀取資料。

採用List指令沖指定的列族中讀取相關的列值出來(預設是返回100行的資料)。

下面的例子就是從users列族中返回100行的資料:

[default@demo] LIST users;

Cassandra內部預設採用十六進位的位元組存放資料。假如你沒有指定行key的校正類型,那麼列的比較子和校正器都是採用列族定義的預設值,Cassandra用戶端將按照預設的的方式為行插入資料,不管是行key還是列名,還是列值都是一樣的採用十六進位的方式(同樣資料也是以十六進位的方式返回)。

想輸入和返回我們可讀的資料格式,我們就必須指定編碼格式,Cassandra可以提供的編碼格式有: ascii bytes integer (a generic variable-length integer type) lexicalUUID long utf8

比如以下例子採用UTF-8的格式返回資料:

[default@demo] GET users[utf8('bobby')][utf8('full_name')];

你也可以通過ASSUME指令在用戶端的整個會話過程中採用那一種資料格式,比如下面的例子中採用ASCII-encoded作為資料傳回值。

[default@demo] ASSUME users KEYS AS ascii;

[default@demo] ASSUME users COMPARATOR ASascii;

[default@demo] ASSUME users VALIDATOR ASascii;

6.設定一到期的列

當你在Cassandra設定一個列時,你可以指定它的到期時間,或是他的生命週期屬性time-to-live。

比如:我們的使用者跟蹤優惠證券的到期時限是10天,我們就能定義一個優惠卷的列到期時間指定為10天,如:

[default@demo] SET users['bobbyjo']

[utf8('coupon_code')] = utf8('SAVE20') WITHttl=864000;

那麼過了十天或是864000秒,該列將不可讀,然而它的值並沒有從磁碟中刪除知道Cassandra完成壓縮和收縮。

7.列的索引

Cassandra用戶端可以建立第二索引(列值的索引),當建立該列族是你可以指定它的第二索引或是在後期使用UPDATE COLUMN FAMILY修改它的索引。

比如在users列族中的birth_year列添加第二索引:

[default@demo] UPDATE COLUMN FAMILY users

WITH comparator = UTF8Type

AND column_metadata = [{column_name:birth_year, validation_class: LongType, index_type: KEYS}];

因為在birth_year添加了第二索引,所以它的值可以作為條件直接查詢。

[default@demo] GET users WHERE birth_date =1969;

8.刪除行和列

Cassandra提供DEL指令刪除行或是列(或是子列)

比如在uses列族中的'yomama'行刪除coupon_code列:

[default@demo] DEL users ['yomama']['coupon_code'];

 

通過以下指令驗證刪除的情況

[default@demo] GET users ['yomama'];

 

或是直接刪除整行

[default@demo] DEL users ['yomama'];

9.刪除列簇和keyspace

Cassandra提供了類似關聯式資料庫一樣刪除表和資料庫的方式刪除列族和keyspaces,以下的例子顯示如何通過Drop指令刪除users列族和名為demo的keyspace。

[default@demo] DROP COLUMN FAMILY users;

 

[default@demo] DROP KEYSPACE demo;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.