1

我用的是轻快的。cassandra 列族自动映射到 Hive 表。
但是,如果列族中的数据类型为 timeuuid,则在 Hive 表中不可读。

例如,我使用以下命令在 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 表中的列名是不可读的。

4

1 回答 1

2

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

并在 hive 中手动创建表。

于 2011-08-05T15:46:51.173 回答