Я новичок в hadoop и больших данных, просто пытаясь разобраться в возможностях перемещения моего хранилища данных в hbase в эти дни, и я столкнулся с проблемой, которую некоторые из вас могут быть в состоянии помочь мне. Таким образом, ее как,Интеграция Hive - Hbase Transactional update с отметкой времени
У меня есть таблица Hbase "hbase_testTable" с Column семьи: "ColFam1". Я установил версию «ColFam1» на 10, так как я должен поддерживать историю до 10 обновлений для этого семейства столбцов. Что хорошо работает. Когда я пытаюсь добавить новые строки через hbase shell с явным значением отметки времени, он отлично работает. В основном я хочу использовать временную метку в качестве моего контроля версий. Поэтому я указать метку времени, как
положить 'hbase_testTable' '1001', 'ColFam1: q1', '1000 $', 3
где '3' моя версия. И все работает нормально.
Теперь я пытаюсь интегрировать с Улей внешней таблицы, и я все отображения также установлено, совпадающее Hbase таблицы, как показано ниже:
создать внешнюю таблицу TESTTABLE (идентификатор строки, q1 строку, q2 строку, q3 string) STOREd BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' С SERDEPROPERTIES ("hbase.columns.mapping" = ": key, colfam1: q1, colfam1: q2, colfam1: q3") TBLPROPERTIES ("hbase .table.name "=" testtable "," transactional "=" true ");
И работает нормально с обычной вставкой. Он обновляет таблицу HBase и наоборот.
Несмотря на то, что внешняя таблица сделана «транзакцией», я не могу обновлять данные по ВИЧE. Это дает мне ошибку: FAILED: SemanticException [Ошибка 10294]: попытка выполнить обновление или удаление с помощью диспетчера транзакций, который не поддерживает эти операции. Сказал, что любые обновления, сделанные в таблицах hbase, сразу отражаются в таблице улей.
Я могу обновить таблицу Hbase внешней таблицей улья, пытаясь вставить в внешнюю таблицу улья для «rowid» с новыми данными для столбца.
Можно ли управлять меткой времени, записанной на указанную таблицу hbase (например, 4,5,6,7 ..etc) Пожалуйста, помогите.