Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change 
notification.

The following page has been changed by EricHwang:
http://wiki.apache.org/hadoop/Hive/HiveODBC

------------------------------------------------------------------------------
  === Software Requirements ===
  The following software components are needed for the successful compilation 
and operation of the Hive ODBC driver:
   * '''Hive Server''' - a service through which clients may remotely issue 
Hive commands and requests. The Hive ODBC driver depends on Hive Server to 
perform the core set of database interactions. Hive Server is built as part of 
the Hive build process. More information regarding Hive Server usage can be 
found [wiki:Hive/HiveServer here].
-  * '''Apache Thrift''' - a scalable cross-language software framework that 
enables the Hive ODBC driver (specifically the Hive client) to communicate with 
the Hive Server. See here for the details on 
[http://wiki.apache.org/thrift/ThriftInstallation Thrift Installation]. The 
Hive ODBC driver was developed with Thrift trunk version r790732, but the 
latest revision should also be fine. Make sure you note the Thrift install path 
during the Thrift build process as this information will be needed during the 
Hive client build process. The Thrift install path will be referred to as 
THRIFT_HOME.
+  * '''Apache Thrift''' - a scalable cross-language software framework that 
enables the Hive ODBC driver (specifically the Hive client) to communicate with 
the Hive Server. See this link for the details on 
[http://wiki.apache.org/thrift/ThriftInstallation Thrift Installation]. The 
Hive ODBC driver was developed with Thrift trunk version r790732, but the 
latest revision should also be fine. Make sure you note the Thrift install path 
during the Thrift build process as this information will be needed during the 
Hive client build process. The Thrift install path will be referred to as 
THRIFT_HOME.
  
  === Driver Architecture ===
  Internally, the Hive ODBC Driver contains two separate components: Hive 
client, and the unixODBC API wrapper.
   * '''Hive client''' - provides a set of C-compatible library functions to 
interact with Hive Server in a pattern similar to those dictated by the ODBC 
specification. However, Hive client was designed to be independent of unixODBC 
or any ODBC specific headers, allowing it to be used in any number of generic 
cases beyond ODBC.
-  * '''unixODBC API wrapper''' - provides a layer on top of Hive client that 
directly implements the ODBC API standard. The unixODBC API wrapper will be 
compiled into a shared object library, which will be the final form of the Hive 
ODBC driver. This portion will remain a file attachment on the associated JIRA 
until it can be checked into the unixODBC code repository: 
[https://issues.apache.org/jira/browse/HIVE-187 HIVE-187].
+  * '''unixODBC API wrapper''' - provides a layer on top of Hive client that 
directly implements the ODBC API standard. The unixODBC API wrapper will be 
compiled into a shared object library, which will be the final form of the Hive 
ODBC driver. The wrapper files will remain a file attachment on the associated 
JIRA until it can be checked into the unixODBC code repository: 
[https://issues.apache.org/jira/browse/HIVE-187 HIVE-187].
  
  NOTE: Hive client needs to be built and installed before the unixODBC API 
wrapper can compile successfully.
  
@@ -74, +74 @@

    a.#2 If your system complains about {{{undefined symbols}}} during unixODBC 
testing (such as with {{{isql}}} or {{{odbcinst}}}) after installation, try 
running {{{ldconfig}}} to update your dynamic linker's runtime libraries.
   1.#4 If you only want to obtain the Hive ODBC driver shared object library:
    a. After compilation, the driver will be located at 
{{{<unixODBC_BUILD_DIR>/Drivers/hive/.libs/libodbchive.so.1.0.0}}}.
-   a. This may be copied to any other location as desired. Keep in mind that 
the Hive ODBC driver has a dependency on the Hive client shared object library: 
{{{libhiveclient.so}}}.
+   a. This may be copied to any other location as desired. Keep in mind that 
the Hive ODBC driver has a dependency on the Hive client shared object library: 
{{{libhiveclient.so}}} and {{{libthrift.so.0}}}.
    a. You can manually install the unixODBC API wrapper by doing the following:
    {{{
    $ cp <unixODBC_BUILD_DIR>/Drivers/hive/.libs/libodbchive.so.1.0.0 
<SYSTEM_INSTALL_DIR>
@@ -121, +121 @@

  
  === Current Status ===
   * Comments:
-  Please keep in mind that this is still an initial version and is still very 
rough around the edges. However, it provides basic ODBC 3.51 API support for 
connecting, executing queries, fetching, etc. This driver has been successfully 
tested on 32-bit and 64-bit linux machines with iSQL. It has also been tested 
with partial success on enterprise applications such as MicroStrategy. The 
driver consists of two sections: the Hive client and the unixODBC API wrapper. 
The unixODBC portion will be uploaded as a separate attachment that will not be 
part of this repository (for licensing reasons).
+  Please keep in mind that this is still an initial version and is still very 
rough around the edges. However, it provides basic ODBC 3.51 API support for 
connecting, executing queries, fetching, etc. This driver has been successfully 
tested on 32-bit and 64-bit linux machines with iSQL. It has also been tested 
with partial success on enterprise applications such as MicroStrategy. Due to 
licensing reasons, the unixODBC API wrapper files will be uploaded as a 
separate JIRA attachment that will not be part of this code repository.
   * Limitations:
+   * Only support for Linux operating systems
    * No support for Unicode
-   * Not thread safe
    * No support for asynchronous execution of queries
-   * Does not check for memory allocation errors
    * Does not support pattern matching for functions such as SQLColumns and 
SQLTables; requires exact matches.
    * Hive Server is currently not thread safe (see JIRA HIVE-80: 
https://issues.apache.org/jira/browse/HIVE-80). This will prevent the driver 
from safely making multiple connections to the same Hive Server. We need to 
resolve this issue to allow the driver to operate properly.
-  * ODBC API Function Support:
+  * ODBC API Function Support (does anyone know how to remove the linking from 
the function names?):
    * SQLAllocConnect - supported
    * SQLAllocEnv   - supported
    * SQLAllocHandle - supported

Reply via email to