Я создал таблицу в Афине с конфигурацией ниже
CREATE EXTERNAL TABLE `extern` (`FirstName` STRING, `LastName` STRING, `Email` STRING, `Phone` STRING, `AddressLine1` STRING, `City` STRING, `State` STRING, `PostalCode` STRING,
`time_on_page` DECIMAL(10,3), `page` STRING, `login_time` TIMESTAMP) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
WITH SERDEPROPERTIES ('orc.column.index.access'='false')
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION 's3://location/' tblproperties ("orc.compress"="ZLIB")
, и когда я запрашиваю ее с помощью select * from extern
, я получаю пустые значения для всех столбцов, кроме time_on_page
, page
и login_time
. Однако это возвращает данные во всех столбцах, если я использую ('orc.column.index.access'='true')
. Схема имен столбцов в файле OR C точна в соответствии с тем, что определено в операторе создания.
File Version: 0.12 with ORC_135
Rows: 13559
Compression: ZLIB
Compression size: 131072
Type: struct<FirstName:string,LastName:string,Email:string,Phone:string,AddressLine1:string,City:string,State:string,PostalCode:string,time_on_page:decimal(10,3),page:string,login_time:timestamp>
Вопрос в том, возможно ли, что когда orc.column.index.access=false
движок пытается прочитать имена столбцов с учетом ограничений регистра?