昨日の話
Cassandraで cannot parse '何とか' as hex bytes の対処法1
http://blog.goo.ne.jp/xmldtp/e/df3e920452d6c088ee94c833ec95c099
のつづき。
Cassandraにデータを入れるには、
1.キースペースを作成する(スキーマに相当するらしい)
2.カラムファミリーを作成する(テーブルに相当するらしい)
3.データをセットする
なので、これをやってみたら、
org.apache.cassandra.db.marshal.MarshalException: cannot parse 'first' as hex bytes
というエラー表示が出る。
これに対する対処法は2つあって、1つは
set Standard2[jsmith][ascii('first')] =ascii('John');
とascii指定すればいいけど、これだと、
get Standard2[jsmith];
としたとき、カラム名が16進で出るのでX
ということだった。
今日は、対処法2
■対処法2:カラムファミリーを作成するときに、指定をいれる。
前回は、カラムファミリーを作成するときに
create column family Standard2;
と、何も指定せずに作成した。でも、これ、UTF8指定とか出来る。
つまり、
create column family Users with comparator=UTF8Type and
default_validation_class=UTF8Type and key_validation_class=UTF8Type;
と指定してから、
set Users[jsmith][first]='John';
とすると、データが入るし、
get Users[jsmith];
とすると、
(column=first, value=John, timestamp=1326938881921000)
と、カラム名も16進にならずに表示される。
■参考サイト
Cassandra-0.8.7 (2) README.txt
http://privnotes.blog.fc2.com/blog-category-7.html
Cassandraで cannot parse '何とか' as hex bytes の対処法1
http://blog.goo.ne.jp/xmldtp/e/df3e920452d6c088ee94c833ec95c099
のつづき。
Cassandraにデータを入れるには、
1.キースペースを作成する(スキーマに相当するらしい)
2.カラムファミリーを作成する(テーブルに相当するらしい)
3.データをセットする
なので、これをやってみたら、
org.apache.cassandra.db.marshal.MarshalException: cannot parse 'first' as hex bytes
というエラー表示が出る。
これに対する対処法は2つあって、1つは
set Standard2[jsmith][ascii('first')] =ascii('John');
とascii指定すればいいけど、これだと、
get Standard2[jsmith];
としたとき、カラム名が16進で出るのでX
ということだった。
今日は、対処法2
■対処法2:カラムファミリーを作成するときに、指定をいれる。
前回は、カラムファミリーを作成するときに
create column family Standard2;
と、何も指定せずに作成した。でも、これ、UTF8指定とか出来る。
つまり、
create column family Users with comparator=UTF8Type and
default_validation_class=UTF8Type and key_validation_class=UTF8Type;
と指定してから、
set Users[jsmith][first]='John';
とすると、データが入るし、
get Users[jsmith];
とすると、
(column=first, value=John, timestamp=1326938881921000)
と、カラム名も16進にならずに表示される。
■参考サイト
Cassandra-0.8.7 (2) README.txt
http://privnotes.blog.fc2.com/blog-category-7.html