Return-Path: Delivered-To: apmail-hive-user-archive@www.apache.org Received: (qmail 15278 invoked from network); 15 Apr 2011 07:51:33 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 15 Apr 2011 07:51:33 -0000 Received: (qmail 20120 invoked by uid 500); 15 Apr 2011 07:51:32 -0000 Delivered-To: apmail-hive-user-archive@hive.apache.org Received: (qmail 20064 invoked by uid 500); 15 Apr 2011 07:51:31 -0000 Mailing-List: contact user-help@hive.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@hive.apache.org Delivered-To: mailing list user@hive.apache.org Received: (qmail 20054 invoked by uid 99); 15 Apr 2011 07:51:30 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Apr 2011 07:51:30 +0000 X-ASF-Spam-Status: No, hits=2.2 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [209.85.214.176] (HELO mail-iw0-f176.google.com) (209.85.214.176) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Apr 2011 07:51:23 +0000 Received: by iwr19 with SMTP id 19so3130233iwr.35 for ; Fri, 15 Apr 2011 00:51:01 -0700 (PDT) MIME-Version: 1.0 Received: by 10.42.136.3 with SMTP id r3mr2286460ict.335.1302853861336; Fri, 15 Apr 2011 00:51:01 -0700 (PDT) Received: by 10.42.172.197 with HTTP; Fri, 15 Apr 2011 00:51:01 -0700 (PDT) In-Reply-To: References: <83B6C8A7-E857-4446-BFDB-089C41100994@fb.com> Date: Fri, 15 Apr 2011 09:51:01 +0200 Message-ID: Subject: Re: can I use hive dynamic partition while loading data into tables? From: Jasper Knulst To: user@hive.apache.org Content-Type: multipart/related; boundary=90e6ba6e836e99649504a0f04dcc X-Virus-Checked: Checked by ClamAV on apache.org --90e6ba6e836e99649504a0f04dcc Content-Type: multipart/alternative; boundary=90e6ba6e836e99649204a0f04dcb --90e6ba6e836e99649204a0f04dcb Content-Type: text/plain; charset=ISO-8859-1 Hi, I think you are looking for this: ALTER TABLE page_view ADD PARTITION (date='2008-06-08', country='US', type) LOCATION '/'; So you can go on adding new hdfs subdir's (based on the partition naming) to you base hive hdfs table dir, moving extra files to these subdirs and making them available to your hive users by adding new partitions afterwards. This works only in case of EXTERNAL tables I guess. Jasper 2011/4/15 Ning Zhang > The INSERT OVERWRITE command will not overwrite the whole table. If you > specify a partition in that table, it will only overwrite that partition. If > you specify dynamic partitions, it will only create/overwrite partitions > that will be seen from the input query (pvs.country in the example). > > > On Apr 15, 2011, at 12:31 AM, Erix Yao wrote: > > Does this mean if I want the type field as the partition key , I will have > to split the raw data by myself and load the files into the target table? > > I see there's an example in tutorial: > > FROM page_view_stg pvs > INSERT OVERWRITE TABLE page_view PARTITION(dt='2008-06-08', country) > SELECT pvs.viewTime, pvs.userid, pvs.page_url, pvs.referrer_url, null, null, pvs.ip, pvs.country > > but insert must overwrite the table whole table partition. > Can I insert without the overwrite key word? > > > 2011/4/15 Ning Zhang > >> The LOAD DATA command only copy the files to the destination directory. It >> doesn't read the records of the input file, so it cannot do partitioning >> based on record values. >> >> On Apr 14, 2011, at 10:52 PM, Erix Yao wrote: >> >> hi,all >> The dynamic partition function is amazing ,but only works in insert >> clause. Can I use it while loading data into table? >> >> For example: load data LOAD DATA LOCAL INPATH >> `/tmp/pv_2008-06-08_us.txt` INTO TABLE page_view >> PARTITION(date='2008-06-08', country='US', type); >> type is the dynamic partition key in the raw data? >> >> This will be very cool! If is supported, I will not have to category the >> raw data according to the type column. >> >> >> >> -- >> haitao.yao@Beijing >> >> >> >> >> >> > > > -- > haitao.yao@Beijing > > > > > > -- Kind Regards \ Met Vriendelijke Groet, Jasper Knulst BI Consultant VLC Den Haag Gildeweg 5B 2632 BD Nootdorp M: +31 (0)6 19 66 75 11 T: +31 (0)15 764 07 50 ------------------------------------------------------------ Skype: jasper_knulst_vlc --90e6ba6e836e99649204a0f04dcb Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi,

I think you are looking for this:

ALTER TABL= E page_view ADD PARTITION
(date=3D'2008-06-08',= country=3D'US', type) LOCATION '/<hdfs path relative to loc= ation of base hdfs/hive table dir>';

So you can go on adding new hdfs subdir's (based on the partition n= aming) to you base hive hdfs table dir, moving extra files to these subdirs= and making them available to your hive users by adding new partitions afte= rwards.

This works only in case of EXTERNAL tables I guess.


Jasper

2011/4/15 Ning Zhang <nzhang@fb.com><= br>
The INSERT OVERWRITE command will not overwrite the whole table. If you spe= cify a partition in that table, it will only overwrite that partition. If y= ou specify dynamic partitions, it will only create/overwrite partitions tha= t will be seen from the input query (pvs.country in the example).=A0


On Apr 15, 2011, at 12:31 AM, Erix Yao wrote:

Does this mean if I want the type field as the pa= rtition key , I will have to split the raw data by myself and load the file= s into the target table?

I see there's an example in tutorial:
FROM page_view_stg pvs
    INSERT OVERWRITE TABLE page_view PARTITION(dt=3D'2008-06-08', c=
ountry)=20
           SELECT pvs.viewTime, pvs.userid, pvs.page_url, pvs.referrer_url,=
 null, null, pvs.ip, pvs.country
but insert must overwrite the table whole table partition.
Can I insert without the overwrite key word?


2011/4/15 Ning Zhang <nzhang@fb.com><= br>
The LOAD DATA command only copy the f= iles to the destination directory. It doesn't read the records of the i= nput file, so it cannot do partitioning based on record values.=A0

On Apr 14, 2011, at 10:52 PM, Erix Yao wrote:

hi,all
=A0=A0 =A0The dynamic partition function is amazing ,but only works in= insert clause. Can I use it while loading data into table?

=A0=A0 =A0For example: load data=A0 LOAD DATA LOCAL INPAT= H `/tmp/pv_2008-06-08_us.txt` INTO TABLE page_view PARTITION(date=3D'20= 08-06-08', country=3D'US', type);
type is the dynamic partition key in the raw data?=

This will be very cool! If is supported, I will not have = to category the raw data according to the type column.



--
haitao.yao@Beijing








--
haitao.yao@Beijing








--
Kind Regards \ Met Vrie= ndelijke Groet,

=A0

=A0

Jasper Knulst

BI Consul= tant




VLC Den Haag
Gildeweg 5B
2632 BD=A0 Nootdorp
=A0

M: +31 (0)6 19 66 75 11
T: +31 (0)15 764 07 50
--------------------------------------------= ----------------

Skype: jasper_knulst_vlc
=A0
--90e6ba6e836e99649204a0f04dcb-- --90e6ba6e836e99649504a0f04dcc Content-Type: image/gif; name="image001.gif" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: 131db5a733e0b083_0.1 R0lGODlhHgJhAPcAAOzx87ckKa3o+cHXLtPc4ayHksTYO6K0v53G1q2equKmqK3DKee1t655hPTY 2cnU2rQUGanO3cnXdqXJ2NTjcAQFBaXP3qurq6TV5Pf659rh5qXN3NvoiteDhSVqkcncSfH3+VRo b7TT4L7ULbbEzaTI17La6vX4+c1maaTS4vjo6NN3erjOKzdDSOrv8fL09urxvK7W5fj5+tLk7Iuq t8hWWbvRLO7LzMNGSvHT1PT426HI18vdU+3zxaDG1t2WmKS2wcLb5eHt8rnPLNzk57TKKy0tLbdz e+Tq7UiFpaq7xevCw7M+RKbM26mjsLUdIqPe7rBUXHyYo7PIKpS2wyozN0ZWXKXK2avQ4K9pc8HN 1LgpLrbMK6LI2OTtpZq8y7DR3qe7yb0zOPv8/ODrl8rg6WmBit/m6bzJ0a0ECfv88N/s8rJDS7QY HXGLlc7X3fr8/Ke4w+Po7KzS4rzOTrBcZK5xe2R6g01eZairubERFrANE7/TOXiqwaTQ37Q0OoWj rqe+zfr7+73Y4x4kJ6yAi62+yKbL2myhueHn6zs7O7TJNJG90OPrtbYfJMbR2K9jbLfV4f3++Ltm bqXG1Obr7sVNUXeSnMA+QrFNVdDa3+31+Je4xoa0yfvy8v///7wwNKbB0MpdYcTP1/7++7DGKu/y 9Ojuw4GeqamotTE8QKbL2ZKyv785PrUbIOWusNBucabE0quSnm2GkKDE07UvNefx9dqMj9np7+jt 76itu6iwvaTR4J3Azs1uct6bnd/oqae0warW5a3U5M7fYO7y0rgJDO3GyPTe3z9NU+m8vtff5Pz9 /aHN3V5ze6DH16TT4/D1zrQ4P/LW1yUtMNLfhdbn7q8JD7jh8u/Nzrlsc7cWGxQZG52dnfHx8cfH x2VlZUlJSdXV1ePj41dXV4+Pj4GBgbm5uXNzc/7+/s5ydv3+/vT29/7+//7//6TY6P///aTW5rDY 6I6uu5/C0abI1s9rbrDX5/3+/eCgov77/LHByrcSF/DQ0efvsK/Y5yH5BAAAAAAALAAAAAAeAmEA AAj/AD8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuX MGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOK 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 --90e6ba6e836e99649504a0f04dcc--