Brisk cassandra TimeUUIDType

时间:2011-08-03 20:28:57

标签: cassandra hive read-unread brisk

我用得很快。 cassandra列族自动映射到Hive表 但是,如果数据类型在列族中是timeuuid,则在Hive表中无法读取。

例如,我使用以下命令在配置单元中创建外部表以映射列族。

Hive > create external table A (rowkey string, column_name string, value string) 
     > STORED BY 'org.apache.hadoop.hive.cassandra.CassandraStorageHandler'
     > WITH SERDEPROPERTIES (
     > "cassandra.columns.mapping" = ":key,:column,:value");  

如果列名是cassandra中的TimeUUIDType,则它在Hive表中变得不可读。

例如,cassandra列族中的一行如下所示:

RowKey: 2d36a254bb04272b120aaf79d70a3578  
        => (column=29139210-b6dc-11df-8c64-f315e3a329d6, value={"event_id":101},timestamp=1283464254261)

其中列名称为TimeUUIDType。

在hive表中,它看起来像以下一行:

 2d36a254bb04272b120aaf79d70a3578    t��ߒ4��!��   {"event_id":101}

因此,Hive表中的列名不可读。

1 个答案:

答案 0 :(得分:2)

这是自动表映射的已知问题。要获得timeUUIDType的最佳结果,请在$ brisk_home / resources / hive / hive-site.xml中关闭自动映射功能: “cassandra.autoCreateHiveSchema”

并手动在hive中创建表。