CData ODBC Driver for JSON 2016 - Online Help
CData ODBC Driver for JSON 2016 - Build 16.0.6375
Questions / Feedback?

Linux DSN Configuration

This section shows how to connect to JSON and execute SQL queries from several Linux distributions: Debian-based systems, like Ubuntu, and Red Hat Linux platforms, like Red Hat Enterprise Linux (RHEL), CentOS, and Fedora.

Using a Driver Manager

Before installing the CData ODBC Driver for JSON 2016 on Linux, you will need to install a driver manager. ODBC-compliant applications connect to the driver through a driver manager. After you connect, the driver manager loads the driver and passes function calls from the application to the driver. The driver manager also implements some functions for discovering the registered drivers and DSNs. DSNs can be defined for a specific user or system wide.

Installing unixODBC

Precompiled binaries for the unixODBC driver manager are available for many operating systems.

On Debian-based systems like Ubuntu, you can install unixODBC by running the following command as root or with sudo:

apt-get install unixODBC unixODBC-dev
On Red Hat Enterprise Linux, CentOS, and Fedora, you can install unixODBC with YUM or DNF. For example, run the following command as root or with sudo:
yum install unixODBC unixODBC-devel
If binaries are not available for your operating system, you will need to compile unixODBC yourself. Please refer to the unixODBC website for more information about obtaining binaries or compiling unixODBC on your operating system.

Installing the Driver Dependencies

Minimum Linux Versions

Below are the minimum supported versions for Red Hat-based and Debian-based systems:

OSMin. Version
Ubuntu11
Debian7
RHEL6
CentOS6
Fedora13

Required Libraries and Packages

Below are the libraries required by the driver and their corresponding packages:

Debian/Ubuntu PackageRHEL/CentOS/Fedora PackageFile
libc6glibclinux-vdso.1
libc6glibclibm.so.6
libc6glibclibrt.so.1
libc6glibclibdl.so.2
libc6glibclibpthread.so.0
libc6glibclibc.so.6
libc6glibcld-linux-x86-64.so.2
libstdc++6libstdc++libstdc++.so.6
zlib1gzliblibz.so.1
libgcc1libgcclibgcc_s.so.1

Installing the Packages

You can install the necessary dependencies with the following commands:
  • Debian/Ubuntu:
    apt-get install libc6 libstdc++6 zlib1g libgcc1
  • RHEL/CentOS/Fedora:
    yum install glibc libstdc++ zlib libgcc

Setting Up OAuth

OAuth requires the authenticating user to interact with JSON, using the browser. The driver facilitates this in various ways as described in the following sections; to complete the authentication guide, first check if your environment needs additional configuration.

If the first OAuth interaction is to be done on the same machine the driver is installed on -- for example, a desktop application -- the driver will need access to the xdg-open program, which opens the default browser.

This OAuth flow is not possible on some systems, such as headless machines, servers, and machines disconnected from the Internet. You can use stored procedures to authenticate without this dependency.

Debian/Ubuntu PackageRHEL/CentOS/Fedora PackageFile
xdg-utilsxdg-utilsxdg-open

Installing the Driver

You can use standard package management systems to easily and quickly install the driver.

On Debian-based systems, like Ubuntu, you can install the driver by running the following command as root or with sudo:

dpkg -i /path/to/.deb 
On systems that support the RPM package format, you can install the driver by running the following command as root or with sudo:
rpm -Uvh /path/to/.rpm 

Using the unixODBC Configuration Files

You can determine the location of the configuration files on your system by entering the following command into a terminal:

odbcinst -j
Below is an example of the output of this command:
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/myuser/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
The driver installation registers the driver for system-wide use and creates a system DSN with empty values for commonly required properties. Modifying unixODBC's system-wide settings requires elevated permissions; to do so, you can use root or the sudo command.

Configuring a DSN

ODBC data sources are defined in sections in the odbc.ini file.

In addition to the connection properties required to connect to your data source, the Driver property specifies either a driver definition in the odbcinst.ini file or the path to the driver library.


[CData JSON Source]
Driver = CData ODBC Driver for JSON
Description = My Description
MyConnectionProperty1 = My Value
MyConnectionProperty2 = My Value2

You can list the data sources on your system with the following command:

odbcinst  -q -s

Connecting to JSON

The CData ODBC Driver for JSON 2016 enables you to use standard SQL to access local and remote JSON resources as tables. After setting the following properties, you can execute SELECT statements to JSON.

  • GenerateSchemaFiles: Set this to generate schemas automatically; OnUse will generate a schema when you execute a SELECT query to the JSON, if a schema does not already exist. Set this to OnStart to generate schemas for all tables identified by the following properties at connect time, if the schemas do not already exist.
  • URI: Set this to the path to a local JSON file or the HTTP(S) URL of remote JSON.
  • JSONPath: Set this to a repeating element in the document that you want to form the rows of the table.
  • Location: Set this property to the path to your schemas. The driver exposes all .rsd files in this folder as tables. The driver exposes all .rsb files in this folder as stored procedures.

The resulting schemas define column data types according to the rows specified in RowScanDepth.

Working with Schema Files

Schema files enable you execute SQL to multiple tables in the same connection. They also persist your table definitions across connections in .rsd files. The .rsd files have a simple format that makes them easy to modify; for example, to gain more control over data types than RowScanDepth allows.

See Modeling JSON Data for more information on extending table schemas to gain further control over data types, define XPaths to nested data, and more.

Authenticating to Remote JSON

The driver supports the major authentication schemes, including HTTP and Windows.

Set AuthScheme to use the following authentication types.

The driver simplifies OAuth configuration. See Using OAuth for a how-to.

  • HTTP Authentication

    The driver supports authentication with HTTP Basic, Digest, and custom headers. To use Basic or Digest, set the User and Password. With the addition of any needed CustomHeaders, you can access virtually any REST API; for example an API that uses an API key.

  • Windows (NTLM)

    Set the Windows User and Password to connect and set AuthScheme to "NTLM".

  • Kerberos and Kerberos Delegation

    To authenticate with Kerberos, set AuthScheme to NEGOTIATE. If needed, provide the User and Password. To use Kerberos Delegation, set AuthScheme to KERBEROSDELEGATION.

Securing JSON Connections

By default, the driver attempts to negotiate SSL/TLS by checking the server's certificate against the system's trusted certificate store. To specify another certificate, see the SSLServerCert property for the available formats to do so.

Authenticating Web Applications

On headless servers or other machines on which the driver is not authorized to open a browser, the driver cannot obtain the access token automatically. However, it can still automatically refresh the token. To obtain the token, you can call the driver's stored procedures, GetOAuthAuthorizationURL and GetOAuthAccessToken. First, set the InitiateOAuth inside the Other property to one of the following:

  • OFF: Indicates that the OAuth flow will be handled entirely by the user. An OAuthAccessToken will be required to authenticate.
  • REFRESH: Indicates that the driver will only handle refreshing the OAuthAccessToken. The user will never be prompted by the driver to authenticate via the browser. The user must handle obtaining the OAuthAccessToken and OAuthRefreshToken initially. The OAuth values are persisted in the OAuthSettingsLocation Other property.
After calling GetOAuthAccessToken, set the following in the Other property as well:
  • OAuthAccessToken
  • OAuthAccessTokenSecret

Configuring Driver Definitions

The sections of the odbcinst.ini file map a driver name to the driver library. The section begins with the driver name; the Driver property points to the path to the driver library. The driver library is the .so file located by default in /opt/cdata/json/lib. A Description property can also be provided.

You can list the drivers installed on the system with the following command:

odbcinst -q -d

Testing the Connection

You can use isql, included with unixODBC, to execute SQL queries to JSON from the command line. When testing the connection, use the -v flag to output any messages from the driver manager and the driver.

isql -v "CData JSON Source" 

 
 
Copyright (c) 2017 CData Software, Inc. - All rights reserved.
Build 16.0.6375.0