Edward/Hanish, this is a reasonable use case to justify Java API. I initially thought need for Java API to avoid knowing SQL :) but that you can't for any DML operations :) So I guess for DDL operations you should transition to HCatalog API.. See the design document where first para explicitly advises it..
https://cwiki.apache.org/confluence/display/HCATALOG/Design+Document+-+Java+APIs+for+HCatalog+DDL+Commands I have not played as much with HCatalog APIs yet and quick look tells me that it is not at par in terms of all DDL/auth operations yet! https://hive.apache.org/javadocs/hcat-r0.5.0/api/index.html (org.apache.hcatalog.api.HCatClient). --Suhas On Sat, Oct 11, 2014 at 2:52 PM, Hanish Bansal < hanish.bansal.agar...@gmail.com> wrote: > Thanks all for response !! > > Totally agreed with Edward. > > Also the reason why we don't want to use jdbc client is: Writing sql > statement for everything is little bit complex rather than calling direct > java apis. > With java metastore client api it was quite easy. > > Regards, > Hanish > On 12/10/2014 2:25 am, "Edward Capriolo" <edlinuxg...@gmail.com> wrote: > >> Actually I do not love the jdbc api for all things. >> >> I used to have several scripts that looped over all database, all tables, >> and looked at specific meta store properties or locations. These scripts >> were very small and to the point sometimes 5 line loops. Now I have to >> write things like this: >> >> ResultSet r = Statement.executeQuery("describe exteneded "+table) >> while (r.next){ >> if (r.get(1).getString().equals("location")... >> ... >> >> It is more clunky then using the metastore api directly: >> >> hiveClient.getTable("database", "table").getSD().getLocation(); >> >> >> >> On Sat, Oct 11, 2014 at 4:29 PM, Vaibhav Gumashta < >> vgumas...@hortonworks.com> wrote: >> >>> Hanish, >>> >>> I agree with Suhas and would strongly encourage you to use the JDBC API >>> for HiveServer2. HiveServer2 has a thrift api for the client-server RPC, >>> but that is *not* intended for end user consumption and could end up >>> breaking your current code in future. >>> >>> Is there any specific feature you are looking at which Hive's JDBC >>> driver doesn't implement? >>> >>> Thanks, >>> --Vaibhav >>> >>> On Sat, Oct 11, 2014 at 12:43 PM, Suhas Gogate <vgog...@pivotal.io> >>> wrote: >>> >>>> Sorry Anish, but being database programmer in the past, I always used >>>> embedded SQL interface... I was wondering should we really need direct Java >>>> interface w/ HiveServer2? May be I am wrong, but would like to know your >>>> view on what are the limitations of using embedded SQL vs direct Java API. >>>> >>>> --Suhas >>>> >>>> On Sat, Oct 11, 2014 at 12:38 PM, Suhas Gogate <vgog...@pivotal.io> >>>> wrote: >>>> >>>>> Hanish, this is interesting question and I also faced similar >>>>> limitation lately. Although as Hive getting more closer to relational >>>>> model >>>>> with richer SQL interface (DDL/Authorization, DML) and HiveServer2 as a >>>>> way >>>>> to invoke embedded SQL in Java, the real question is should Hive Metastore >>>>> Client (java) API should at all be used by user, rather all the existing >>>>> Hive Client interfaces be talking to Hive Metastore internally? >>>>> >>>>> --Suhas >>>>> >>>>> >>>>> >>>>> On Fri, Oct 10, 2014 at 9:21 PM, Hanish Bansal < >>>>> hanish.bansal.agar...@gmail.com> wrote: >>>>> >>>>>> Hi All, >>>>>> >>>>>> I am planning to use sql based authorization that is recently >>>>>> introduced in hive 0.13.0. >>>>>> >>>>>> I was using hive metastore client java api early which has direct >>>>>> apis for all operations like grant, revoke etc. >>>>>> But for using new authorization I ll have to use hiveserver2 and pass >>>>>> all requests through hiveserver2. I came up with JDBC client which can be >>>>>> used to connect hiveserver2. The restriction there is we must have to >>>>>> write >>>>>> SQL statements. >>>>>> >>>>>> I want to know is there any java api to connect hiveserver2, that >>>>>> have direct java methods to perform operations and we don't need to write >>>>>> SQL statements ?? >>>>>> >>>>>> Thanks, >>>>>> Hanish >>>>>> >>>>> >>>>> >>>> >>> >>> CONFIDENTIALITY NOTICE >>> NOTICE: This message is intended for the use of the individual or entity >>> to which it is addressed and may contain information that is confidential, >>> privileged and exempt from disclosure under applicable law. If the reader >>> of this message is not the intended recipient, you are hereby notified that >>> any printing, copying, dissemination, distribution, disclosure or >>> forwarding of this communication is strictly prohibited. If you have >>> received this communication in error, please contact the sender immediately >>> and delete it from your system. Thank You. >> >> >>