티스토리 뷰

반응형

hive 는 다양한 파일포맷과 스토리지 핸들러를 통해 hdfs 가 아닌 es 나 kafka 같은 외부 스토리지의 연결도 가능하게 해준다. 그래서 테이블이 어떤 파티션 정책을 갖고 있고 어떤 파일포맷이고 어떤 스토리지 핸들러를 쓰는지 확인해보고 싶은 경우가 생긴다.

 

특히 딴사람이 만든 테이블이라서 분석이 필요한 경우 더 그런듯

 

테이블 선언문(DDL) 확인

"show create table 테이블명" 을 하면 테이블 생성할때의 명령을 확인할 수 있다.

이러면 스키마 정보나, SERDE 정보 그리고 어떤 파일포맷과 압축정책을 썼는지 까지 쉽게 확인이 가능하다.

 

하지만, 코멘트가 한글일 경우 다음과 같이 깨져서 보이는게 조금 아쉽다. 

꼭, 코멘트를 확인하고 싶다면 describe 명령을 이용해서 확인하면 가능하다.

hive> show tables;
my_data
users
Time taken: 0.234 seconds, Fetched: 2 row(s)


hive> show create table users;
OK
CREATE TABLE `users`(
  `name` string, 
  `address` string, 
  `age` int
  )
COMMENT 'USER �'
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.ql.io.orc.OrcSerde' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION
  'hdfs://MyHadoop/apps/hive/warehouse/temp.db/users'
TBLPROPERTIES (
  'COLUMN_STATS_ACCURATE'='{\"BASIC_STATS\":\"true\"}', 
  'numFiles'='6', 
  'numRows'='2702558', 
  'orc.compress'='ZLIB', 
  'rawDataSize'='5101954852', 
  'totalSize'='249195305', 
  'transient_lastDdlTime'='1562083275')

describe 명령사용

describe 정보를 이용해서 확인할 경우 'USER �' 라고 한글이 깨졌던 코멘트 정보가 'USER 정보' 와 같이 깨지지 않고 보인다. 개인적으로는 스키마를 확인할땐 describe 명령을 사용하고, 스키마 확인이나 속성을 확인할때는 주로 show table 명령을 사용하게 되는것 같다.

----------------------
-- 기본정보 
----------------------
hive> describe users;
OK
name                    string                                      
address                 string                                      
age                     int                                                                         
Time taken: 0.324 seconds, Fetched: 3 row(s)

----------------------
-- 상세정보 
----------------------
hive> describe extended users;
OK
name                    string                                      
address                 string                                      
age                     int                                        
                 
Detailed Table Information      Table(tableName:users, dbName:temp, owner:hive, createTime:1562083273, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:name, type:string, comment:null), FieldSchema(name:address, type:string, comment:null), FieldSchema(name:age, type:int, comment:null)], location:hdfs://MyHadoop/apps/hive/warehouse/temp.db/users, inputFormat:org.apache.hadoop.hive.ql.io.orc.OrcInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.ql.io.orc.OrcSerde, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], skewedColValues:[], skewedColValueLocationMaps:{}), storedAsSubDirectories:false), partitionKeys:[], parameters:{totalSize=249195305, numRows=2702558, rawDataSize=5101954852, COLUMN_STATS_ACCURATE={"BASIC_STATS":"true"}, numFiles=6, orc.compress=ZLIB, transient_lastDdlTime=1562083275, comment=USER 정보}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE)      
Time taken: 0.31 seconds, Fetched: 25 row(s)
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함