きのうのCassandraをたちあげてみるのつづき。
データをいれるためには、
1.キースペースを作成する(スキーマに相当するらしい)
2.カラムファミリーを作成する(テーブルに相当するらしい)
3.データをセットする
という3段階でできるようです。
やってみましょう。
■やってみると、cannot parse '何とか' as hex bytes
・まず、コマンドプロンプトを立ち上げ、
cd "C:¥Program Files¥Apache Software Foundation¥apache-cassandra-1.0.7¥bin" cassandra.bat
(¥は、本当は半角 cdのあとのパスは、cassandraのbinがあるところ)
で、サーバー側を起動。
・別のコマンドプロンプトを立ち上げ
cd "C:¥Program Files¥Apache Software Foundation¥apache-cassandra-1.0.7¥bin"
cassandra-cli.bat
(¥は、本当は半角 cdのあとのパスは、cassandraのbinがあるところ)
で、クライアント側を起動。
[default@unknown]
と出てくるので、
connect localhost/9160;
create keyspace Keyspace1;
use Keyspace1;
create column family Standard2;
set Standard2['jsmith']['first'] = 'John';
(入力する内容だけを書いています。;を打つたびに、それなりの出力が表示されます)
と入力すると、
org.apache.cassandra.db.marshal.MarshalException: cannot parse 'first' as hex bytes
とエラー表示されます。
はじめに、コネクトして、
つぎに、Keyspace1というキースペースを作成
useでそのキースペースに入り(このへんMySQLと同じ)
さらに、Standard2という、カラムスペースを作って
値をセットしただけなのに、怒られました。
どうしましょう・・・
■対処法は2つ。
ここ
High Performance Cassandra Blog
Errata
http://www.jointhegrid.com/highperfcassandra/?page_id=34
に対処法が2つ書いてあります。
対処法1:ascii()でいれろ
対処法2:Create column familiesでUTF8Typeを指定する
(リンク先は、アメリカなのでAsciiTypeになっている)
まず、対処法1でやってみましょう。
■対処法1:ascii()でいれろ→確かに入る・・・けどお・・
まあ、すなおに、対処法1をやってみましょう。
set Standard2[jsmith][ascii('first')] =ascii('John');
と入力すると、たしかに
Value inserted.
Elapsed time: 110 msec(s).
とか、表示されますが、このとき、
get Standard2[jsmith];
と入力すると、
=> (column=6669727374, value=John, timestamp=1326875173953000)
Returned 1 results.
と表示され、columnのfirstが、見えなくなって(16進になって)しまいます。
だめじゃん・・・
(対処法2につづく)
データをいれるためには、
1.キースペースを作成する(スキーマに相当するらしい)
2.カラムファミリーを作成する(テーブルに相当するらしい)
3.データをセットする
という3段階でできるようです。
やってみましょう。
■やってみると、cannot parse '何とか' as hex bytes
・まず、コマンドプロンプトを立ち上げ、
cd "C:¥Program Files¥Apache Software Foundation¥apache-cassandra-1.0.7¥bin" cassandra.bat
(¥は、本当は半角 cdのあとのパスは、cassandraのbinがあるところ)
で、サーバー側を起動。
・別のコマンドプロンプトを立ち上げ
cd "C:¥Program Files¥Apache Software Foundation¥apache-cassandra-1.0.7¥bin"
cassandra-cli.bat
(¥は、本当は半角 cdのあとのパスは、cassandraのbinがあるところ)
で、クライアント側を起動。
[default@unknown]
と出てくるので、
connect localhost/9160;
create keyspace Keyspace1;
use Keyspace1;
create column family Standard2;
set Standard2['jsmith']['first'] = 'John';
(入力する内容だけを書いています。;を打つたびに、それなりの出力が表示されます)
と入力すると、
org.apache.cassandra.db.marshal.MarshalException: cannot parse 'first' as hex bytes
とエラー表示されます。
はじめに、コネクトして、
つぎに、Keyspace1というキースペースを作成
useでそのキースペースに入り(このへんMySQLと同じ)
さらに、Standard2という、カラムスペースを作って
値をセットしただけなのに、怒られました。
どうしましょう・・・
■対処法は2つ。
ここ
High Performance Cassandra Blog
Errata
http://www.jointhegrid.com/highperfcassandra/?page_id=34
に対処法が2つ書いてあります。
対処法1:ascii()でいれろ
対処法2:Create column familiesでUTF8Typeを指定する
(リンク先は、アメリカなのでAsciiTypeになっている)
まず、対処法1でやってみましょう。
■対処法1:ascii()でいれろ→確かに入る・・・けどお・・
まあ、すなおに、対処法1をやってみましょう。
set Standard2[jsmith][ascii('first')] =ascii('John');
と入力すると、たしかに
Value inserted.
Elapsed time: 110 msec(s).
とか、表示されますが、このとき、
get Standard2[jsmith];
と入力すると、
=> (column=6669727374, value=John, timestamp=1326875173953000)
Returned 1 results.
と表示され、columnのfirstが、見えなくなって(16進になって)しまいます。
だめじゃん・・・
(対処法2につづく)