私はカサンドラにいくつかの赤ちゃんのステップを踏んでいます。アドバイスが必要でした。
列ファミリーにデータを挿入したいのですが、次の資格情報で列ファミリーを既に作成しています-
ColumnFamily: testkp
Key Validation Class: org.apache.cassandra.db.marshal.UTF8Type
Default column value validator: org.apache.cassandra.db.marshal.UTF8Type
Columns sorted by: org.apache.cassandra.db.marshal.UTF8Type
GC grace seconds: 864000
Compaction min/max thresholds: 4/32
Read repair chance: 0.1
DC Local Read repair chance: 0.0
Replicate on write: true
Caching: KEYS_ONLY
Bloom Filter FP chance: default
Built indexes: []
Column Metadata:
Column Name: Col_A
Validation Class: org.apache.cassandra.db.marshal.FloatType
Column Name: Col_B
Validation Class: org.apache.cassandra.db.marshal.LongType
Column Name: Col_C
Validation Class: org.apache.cassandra.db.marshal.Int32Type
Column Name: Col_D
Validation Class: org.apache.cassandra.db.marshal.DateType
Column Name: Col_E
Validation Class: org.apache.cassandra.db.marshal.UTF8Type
Compaction Strategy: org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy
Compression Options:
chunk_length_kb: 64
sstable_compression: org.apache.cassandra.io.compress.SnappyCompressor
今、いくつかの基本的な挿入メカニズムを見て試してみましたが、スキーマを事前に定義していなければ基本的に機能します
public class SampleDataInsert {
private static StringSerializer stringSerializer = StringSerializer.get();
public static void main(String[] args) throws Exception {
Cluster cluster = HFactory.getOrCreateCluster("TestCluster","localhost:9160");
Keyspace keyspaceOperator = HFactory.createKeyspace("test",cluster);
try {
Mutator<String> mutator = HFactory.createMutator(keyspaceOperator,stringSerializer);
for (int i = 0; i < 2; i++) {
mutator.addInsertion("key_" + i, "testkp", HFactory.createStringColumn("Col_A", ""+ i));
mutator.addInsertion("key_" + i, "testkp", HFactory.createStringColumn("Col_B", ""+ i));
mutator.addInsertion("key_" + i, "testkp", HFactory.createStringColumn("Col_C", ""+ i));
mutator.addInsertion("key_" + i, "testkp", HFactory.createStringColumn("Col_D", ""+ i));
mutator.addInsertion("key_" + i, "testkp", HFactory.createStringColumn("Col_E", ""+ i));
}
mutator.execute();
}
今、スキーマを事前定義したので、UTF8Type 以外のキー検証クラスを持つ列を追加しようとすると。基本的にエラーが発生します(これは問題ありません)。
私の質問は、他の検証クラス (FloatType、LongType、DateType) をヘクターで定義して、挿入できるようにする方法です。
この情報を見つけるためのリンク、提案..
PS私は数日間試しましたが、多くの情報を見つけることができませんでした. 私の質問が少し低レベル/またはフォーマットが不十分である場合はお詫び申し上げます。
よろしくお願いします