Dear Wiki user, You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change notification.
The "Hive/PartitionedViews" page has been changed by JohnSichi. http://wiki.apache.org/hadoop/Hive/PartitionedViews?action=diff&rev1=2&rev2=3 -------------------------------------------------- 1. One possible approach mentioned in [[https://issues.apache.org/jira/browse/HIVE-1079|HIVE-1079]] is to infer view partitions automatically based on the partitions of the underlying tables. A command such as SHOW PARTITIONS could then synthesize virtual partition descriptors on the fly. This is fairly easy to do for use case #1, but potentially very difficult for use cases #2 and #3. So for now, we are punting on this approach. 1. Instead, we will require users to explicitly declare view partitioning as part of CREATE VIEW, and explicitly manage partition metadata via ALTER VIEW {ADD|DROP} PARTITION. This allows all of the use cases to be satisfied (while placing more burden on the user, and taking up more metastore space). + = Syntax = + + {{{ + CREATE VIEW [IF NOT EXISTS] view_name [ (column_name [COMMENT column_comment], ...) ] + [COMMENT table_comment] + [ PARTITIONED ON (col1, col2, ...) ] + [ TBLPROPERTIES ... ] + AS SELECT ... + + ALTER VIEW view_name ADD [IF NOT EXISTS] partition_spec partition_spec ... + + ALTER VIEW view_name DROP [IF EXISTS] partition_spec, partition_spec, ... + + partition_spec: + : PARTITION (partition_col = partition_col_value, partition_col = partiton_col_value, ...) + }}} + + Notes: + + * Whereas CREATE TABLE uses PARTITIONED BY, CREATE VIEW uses PARTITIONED ON. This difference is intentional because in CREATE TABLE, the PARTITIONED BY clause specifies additional column definitions which are appended to the non-partitioning columns. With CREATE VIEW, the PARTITIONED ON clause references (by name) columns already produced by the view definition. Only column names appear in PARTITIONED ON; no types etc. However, to match the CREATE TABLE convention of trailing partitioning columns, the columns referenced by the PARTITIONED ON clause must be the last columns in the view definition, and their order in the PARTITIONED ON clause must match their order in the view definition. + * The ALTER VIEW ADD/DROP partition syntax is identical to ALTER TABLE, except that it is illegal to specify a LOCATION clause. + * Other ALTER TABLE commands which operate on partitions (e.g. TOUCH/ARCHIVE) are not supported. (But maybe we need to support TOUCH?) +
