我試圖使用配置單元將數據映射並插入到cassandra中。有兩個只有一點經驗,我試圖閱讀並遵守本:http://www.datastax.com/docs/datastax_enterprise3.0/solutions/about_hive通過配置單元在cassandra中插入數據
從我的理解,這是我做的:
我在蜂巢創建外部表,使用CassandraStorageHandler,映射正確的密鑰空間和卡桑德拉列使用:密鑰:柱:價值特殊的名字:
CREATE EXTERNAL TABLE test_table (myproductid INT , mydate TIMESTAMP , quantity BIGINT) STORED BY 'org.apache.hadoop.hive.cassandra.CassandraStorageHandler' WITH SERDEPROPERTIES ("cassandra.ks.name" = "test", "cassandra.columns.mapping" = ":key,:column,:value");
我在蜂巢中插入數據(沒有具體):
INSERT OVERWRITE TABLE test_table SELECT anId, aTimestamp, COUNT(*) FROM myDataTable GROUP BY anId, aTimestamp;
一切似乎都從Hive中找到,表描述是正確的,數據按預期方式出現在表中。 從卡桑德拉,DESCRIBE test_table
顯示:
CREATE TABLE test_table (
key blob,
column1 blob,
value blob,
PRIMARY KEY (key, column1)
) WITH COMPACT STORAGE AND
bloom_filter_fp_chance=0.010000 AND
caching='KEYS_ONLY' AND
comment='' AND
dclocal_read_repair_chance=0.000000 AND
gc_grace_seconds=864000 AND
read_repair_chance=0.100000 AND
replicate_on_write='true' AND
populate_io_cache_on_flush='false' AND
compaction={'class': 'SizeTieredCompactionStrategy'} AND
compression={'sstable_compression': 'SnappyCompressor'};
的數據不會被類型化,如果我SELECT
它,它顯示爲二進制數據:
0x3238373639 | 0x323031332d30312d30322030303a30303a3030 | 0x31
我試圖按照文件,並添加到SERDEPROPERTIES:
"cassandra.cf.validatorType" = "Int32Type, DateType, LongType"
也:
"cassandra.cql3.type" = "int, timestamp, bigint"
但沒有變化。
我讀了一些更多的文檔,特別是關於UDF轉換數據類型,但我想避免這種開銷,如果它不是必需的。
我錯過了什麼嗎?我是否錯過了一個步驟或一些事情沒有完成?
謝謝!
謝謝,從Handler變更突出了其他錯誤,但我似乎走在正確的道路上。 – kevad