Я сохранил avro-данные в кластере HDFS, а затем создал две отдельные таблицы для каждой из них, например, так:
CREATE EXTERNAL TABLE transaction_test
STORED AS AVRO
location '/folder1/transaction'
TBLPROPERTIES ('avro.schema.url'='https://confluent-schema-registry...');
CREATE EXTERNAL TABLE validate_test
STORED AS AVRO
location '/folder2/validate'
TBLPROPERTIES ('avro.schema.url'='https://confluent-schema-registry...');
Как подразумевают операторы create, avro-схемы хранятся в реестре схем слияния.Обе таблицы могут нормально читать свои соответствующие схемы, после выполнения describe <table>
они правильно отображают схему.
Однако:
select * from transaction_test limit 1;
возвращает запись, тогда как:
select * from validate_test limit 1;
просто говорит ОК и ничего не возвращает.Фактические файлы avro содержат данные, но я не могу точно определить точную проблему.
Как проверить, что куст способен правильно читать все файлы avro?Я попытался выполнить эти запросы с включенной отладкой, но, похоже, он завершился нормально, он не отображает никаких ошибок.После запуска hdfs dfs -cat
для соответствующих файлов avro он отображал постоянные данные для обоих типов записей.