DESCRIBE - Amazon Athena

DESCRIBE

지정된 테이블의 파티션 열을 포함하여 하나 이상의 열을 표시합니다. 이 명령은 복잡한 열의 속성을 검사하는 데 유용합니다.

시놉시스

DESCRIBE [EXTENDED | FORMATTED] [db_name.]table_name [PARTITION partition_spec] [col_name ( [.field_name] | [.'$elem$'] | [.'$key$'] | [.'$value$'] )]
중요

이 문에 대한 구문은 DESCRIBE table_name입니다(DESCRIBE TABLE table_name가 아님). 후자의 구문을 사용하면 오류 메시지 FAILED: SemanticException [Error 10001]: Table not found table가 표시됩니다.

파라미터

[EXTENDED | FORMATTED]

출력 형식을 결정합니다. 이러한 파라미터를 생략하면 파티션 열을 포함하여 열 이름 및 해당 데이터 형식을 테이블 형식으로 표시합니다. FORMATTED를 지정하면 열 이름 및 데이터 형식을 테이블 형식으로 표시할 뿐만 아니라 자세한 테이블 및 스토리지 정보도 표시합니다. EXTENDED는 열 및 데이터 형식 정보를 테이블 형식으로 표시하고 테이블의 자세한 메타데이터를 Thrift 직렬화 형식으로 표시합니다. 이 형식은 읽기 더 어렵고 주로 디버깅에 유용합니다.

[PARTITION partition_spec]

포함된 경우 partition_spec에서 지정한 파티션에 대한 메타데이터를 나열합니다. 여기서 partition_spec(partition_column = partition_col_value, partition_column = partition_col_value, ...) 형식입니다.

[col_name ( [.field_name] | [.'$elem$'] | [.'$key$'] | [.'$value$'] )* ]

검사할 열과 속성을 지정합니다. 구문의 요소에 .field_name을, 배열 요소에 '$elem$'을, 맵 키에 '$key$'를, 맵 값에 '$value$'를 지정할 수 있습니다. 이를 재귀적으로 지정하여 복잡한 열을 더 자세히 탐색할 수 있습니다.

예제

DESCRIBE orders
DESCRIBE FORMATTED mydatabase.mytable PARTITION (part_col = 100) columnA;

다음 쿼리 및 출력은 Amazon EMR 샘플 데이터를 기반으로 한 impressions 테이블의 열 및 데이터 형식 정보를 표시합니다.

DESCRIBE impressions
requestbegintime string from deserializer adid string from deserializer impressionid string from deserializer referrer string from deserializer useragent string from deserializer usercookie string from deserializer ip string from deserializer number string from deserializer processid string from deserializer browsercokie string from deserializer requestendtime string from deserializer timers struct<modellookup:string,requesttime:string> from deserializer threadid string from deserializer hostname string from deserializer sessionid string from deserializer dt string # Partition Information # col_name data_type comment dt string

다음 예제 쿼리 및 출력은 FORMATTED 옵션이 사용된 경우 동일한 테이블에 대한 결과를 표시합니다.

DESCRIBE FORMATTED impressions
requestbegintime string from deserializer adid string from deserializer impressionid string from deserializer referrer string from deserializer useragent string from deserializer usercookie string from deserializer ip string from deserializer number string from deserializer processid string from deserializer browsercokie string from deserializer requestendtime string from deserializer timers struct<modellookup:string,requesttime:string> from deserializer threadid string from deserializer hostname string from deserializer sessionid string from deserializer dt string # Partition Information # col_name data_type comment dt string # Detailed Table Information Database: sampledb Owner: hadoop CreateTime: Thu Apr 23 02:55:21 UTC 2020 LastAccessTime: UNKNOWN Protect Mode: None Retention: 0 Location: s3://us-east-1.elasticmapreduce/samples/hive-ads/tables/impressions Table Type: EXTERNAL_TABLE Table Parameters: EXTERNAL TRUE transient_lastDdlTime 1587610521 # Storage Information SerDe Library: org.openx.data.jsonserde.JsonSerDe InputFormat: org.apache.hadoop.mapred.TextInputFormat OutputFormat: org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat Compressed: No Num Buckets: -1 Bucket Columns: [] Sort Columns: [] Storage Desc Params: paths requestbegintime, adid, impressionid, referrer, useragent, usercookie, ip serialization.format 1

다음 예제 쿼리 및 출력은 EXTENDED 옵션이 사용된 경우 동일한 테이블에 대한 결과를 표시합니다. 자세한 테이블 정보는 한 줄로 출력되지만 여기서는 가독성을 위해 형식이 지정됩니다.

DESCRIBE EXTENDED impressions
requestbegintime string from deserializer adid string from deserializer impressionid string from deserializer referrer string from deserializer useragent string from deserializer usercookie string from deserializer ip string from deserializer number string from deserializer processid string from deserializer browsercokie string from deserializer requestendtime string from deserializer timers struct<modellookup:string,requesttime:string> from deserializer threadid string from deserializer hostname string from deserializer sessionid string from deserializer dt string # Partition Information # col_name data_type comment dt string Detailed Table Information Table(tableName:impressions, dbName:sampledb, owner:hadoop, createTime:1587610521, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:requestbegintime, type:string, comment:null), FieldSchema(name:adid, type:string, comment:null), FieldSchema(name:impressionid, type:string, comment:null), FieldSchema(name:referrer, type:string, comment:null), FieldSchema(name:useragent, type:string, comment:null), FieldSchema(name:usercookie, type:string, comment:null), FieldSchema(name:ip, type:string, comment:null), FieldSchema(name:number, type:string, comment:null), FieldSchema(name:processid, type:string, comment:null), FieldSchema(name:browsercokie, type:string, comment:null), FieldSchema(name:requestendtime, type:string, comment:null), FieldSchema(name:timers, type:struct<modellookup:string,requesttime:string>, comment:null), FieldSchema(name:threadid, type:string, comment:null), FieldSchema(name:hostname, type:string, comment:null), FieldSchema(name:sessionid, type:string, comment:null)], location:s3://us-east-1.elasticmapreduce/samples/hive-ads/tables/impressions, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.openx.data.jsonserde.JsonSerDe, parameters:{serialization.format=1, paths=requestbegintime, adid, impressionid, referrer, useragent, usercookie, ip}), bucketCols:[], sortCols:[], parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], skewedColValues:[], skewedColValueLocationMaps:{}), storedAsSubDirectories:false), partitionKeys:[FieldSchema(name:dt, type:string, comment:null)], parameters:{EXTERNAL=TRUE, transient_lastDdlTime=1587610521}, viewOriginalText:null, viewExpandedText:null, tableType:EXTERNAL_TABLE)