Бойкая Кассандра TimeUUIDType
Я использовал бойкий. Семейство столбцов кассандры автоматически отображается на таблицы 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.
Например, строка в семействе столбцов кассандры выглядит так:
RowKey: 2d36a254bb04272b120aaf79d70a3578
=> (column=29139210-b6dc-11df-8c64-f315e3a329d6, value={"event_id":101},timestamp=1283464254261)
Где имя столбца TimeUUIDType.
В таблице кустов это выглядит следующим образом:
2d36a254bb04272b120aaf79d70a3578 t��ߒ4��!�� {"event_id":101}
Таким образом, имя столбца не читается в таблице Hive.
1 ответ
Это известная проблема с автоматическим сопоставлением таблиц. Для достижения наилучших результатов с помощью timeUUIDType отключите функцию автоматического сопоставления в файле $brisk_home/resources/hive/hive-site.xml: "cassandra.autoCreateHiveSchema"
и создайте таблицу в улье вручную.