You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hive.apache.org by Johan Oskarsson <jo...@oskarsson.nu> on 2008/12/01 18:48:08 UTC

Re: External tables and existing directory structure

Thanks for the answer.

I like the idea of having a more flexible way of specifying how 
partition maps to directory structure.
I'll see if I'll have some time to look at this, in the mean time I've 
filed a ticket for it: https://issues.apache.org/jira/browse/HIVE-91

Had a quick look at HIVE-86 (don't delete data) but am not quite sure 
what each component is doing.
Is there an updated version of this wiki page anywhere? 
http://wiki.apache.org/hadoop/Hive/DeveloperGuide

If not could someone explain what HiveMetaStore* does compared to 
MetaStore*. One newer and one older version?
And what does FileStore do compared to the above. Stores the meta db in 
files instead of a sql db?

There seems to be two different drop table methods as far as I can see. 
Are both used?
RWTable.drop()
HiveMetaStore.drop_table()

/Johan

Joydeep Sen Sarma wrote:
> That's one possibility.
>
> Or we could have a 'format' spec in the create table command for how the directories are named. By default it's '%key=%value', but in this case it's '%value'. this might make it more flexible if we encounter other kinds of directory layouts.
>
> Thoughts?
>
> (just remembered that there's probably an unfilled issue that drop table should not be deleting directories for external tables - but probably does right now ..)
>
> -----Original Message-----
> From: Josh Ferguson [mailto:josh@besquared.net] 
> Sent: Friday, November 28, 2008 3:32 PM
> To: hive-user@hadoop.apache.org
> Subject: Re: External tables and existing directory structure
>
> I think this is a pretty common scenario as this is how I was storing  
> my stuff as well. Would this affect the HiveQL create table statement  
> at all or just implicitly require that it be ordered?
>
> Josh
>
> On Nov 28, 2008, at 3:00 PM, Joydeep Sen Sarma wrote:
>
>   
>> Hi Johann,
>>
>> Create external table with the 'location' clause set to ur data  
>> would be the way to go. However - Hive has it's own directory naming  
>> scheme for partitions ('<partitition_key>=<partition_val>'). So just  
>> pointing to a directory with subdirectories would not work.
>>
>> So right now case one would have to move or copy the data using the  
>> load command.
>>
>> Going forward - one thing we can do is that for external tables - we  
>> can drop the 'key=val' directory naming for partitioned stuff and  
>> just assume that directory hierarchy follows the partition list and  
>> the directory names are partition values. Is that's what's required  
>> in this case?
>>
>> Joydeep
>>
>>
>> -----Original Message-----
>> From: Johan Oskarsson [mailto:johan@oskarsson.nu]
>> Sent: Friday, November 28, 2008 3:49 AM
>> To: hive-user@hadoop.apache.org
>> Subject: External tables and existing directory structure
>>
>> Hi, just had some fun with hive. Exciting stuff.
>>
>> I have one question about mapping tables to our existing directory
>> structure. I assume the "CREATE EXTERNAL TABLE" would be the way to  
>> go,
>> but I haven't been able to find much information about how it works.
>>
>> We have datasets in the following format in hdfs:
>> /dataset/yyyy/MM/dd/<one or more files>
>>
>> I'd love to be able to bind these with the date as the partition to  
>> hive
>> tables without copying or moving the data. Is it currently possible?
>>
>> /Johan
>>     
>
>