My Simba Couchbase Driver can connect, but it seems to take quite a while

ODBC requires predefined schema in order to work. As a denormalized, schemaless data source, Couchbase data does not store this type of metadata and therefore the driver must inference it by reading a subset of the data. This process is called sampling.

Based on the size and complexity of your data, this sample time can take anywhere from a few seconds to a few minutes for large datasets.

The Couchbase driver connection time can be improved by using a cached schema map, which can be created using the provided Schema Editor Tool. Using a schema map allows the driver to skip the sample step on connection, dramatically improving the connection time.

For detailed instructions, see the full documentation located here.

How do I define a schema for my connection?

To enable ODBC/JDBC applications to work with Couchbase data, the Simba Couchbase Driver maps Couchbase data types to SQL data types. The schema, which is called the “active metadata” when it is being used by the driver, determines how the driver maps the data types.

If the driver is connected without providing a target schema map, the driver will generate an in-memory schema map during the connection process. The drawback of this is that sampling needs to occur on each connection.

You can also manually define a schema and store it to the database to shared with other users or save it to a local JSON file for personal use. Using a manually defined schema map will skip the sample step, and can dramatically improve the overall sample time.

For detailed instructions, see the full documentation located here.

Why can't I see any of my buckets in the driver?

You must create primary indexes for N1QL on each of the buckets you wish to use through N1QL before they become accessible. Please see http://developer.couchbase.com/documentation/server/4.0/n1ql/n1ql-language-reference/createprimaryindex.html for more information.

I have multiple data-sets within a bucket, similar to the beer-sample sample data set. How do I have multiple virtual tables created on this bucket so that one table is displayed per data-set?

By convention, when there are multiple data-sets within a single bucket, a field is used to differentiate which documents belong to which data-set. To create multiple virtual tables, one for each data-set within the bucket, specify the differentiation attribute in the Type Name List of the DSN configuration. For more information, see the user guide.

How do I enable authentication and specify credentials if I have different credentials for each bucket?

Create a credentials file as described in the user guide, and configure the driver to use this file in the DSN Configuration dialog. Once configured, the driver will pass the credentials to Couchbase and allow authentication against each specified bucket.

Does the driver support write-back?

Yes, it supports DML (INSERT, UPDATE, DELETE), but NOT DML (CREATE, DROP).

What port should I use?

The default port is 8093 for the N1QL server that the driver connects to.

Can I use the driver with Couchbase Server v3? What is the minimum version Couchbase I need to use the driver?

You cannot use the driver with v3 of Couchbase, you must use v4 as the minimum version. This is due to the fact that the driver uses N1QL, which is a feature added with v4 of Couchbase.

Why does my connection sometimes drop, with the error Can't connect to the Couchbase server?

If your cluster only has one node, and load balancing is enabled, this can occur. Please look in the Advanced Options in the driver configuration and disable load balancing.

Why do I get an error about memcached buckets?

Memcached buckets are not supported in N1QL, which the driver uses.  When sampling buckets to create a schema file, N1QL throws an error if it encounters a memcached bucket.  To get around this, create a schema file separately, then use it with a cluster that includes memcached buckets.  We are working with Couchbase to avoid this sampling problem.


General FAQ for all drivers

Licensing


Where is my license file?

It is sent in a separate email when you download the driver. Please check your junk folder as strict filters may incorrectly mark the license email as spam

How do I install my license file?

License location is product and platform specific, but generally, the license file should be placed in the same folder where the driver files (.dll, .so, .dylib or .jar) are located. Detailed instructions on how to install the license are provided in the email with which you received the license file and in the User Guides.

I get the following error when I attempt to connect, how do I fix it?

The license file “<…snip…>” could not be found. Please contact your administrator or Simba Technologies Inc. at sales@simba.com.

The customer should find their license file in their email and place it in the location indicated in the error message.

I get an error when trying to copy the license file from Outlook to my Program Files directory.

This is due to Windows permissions, you must first copy it to your desktop and then into your Program Files directory.

Can I use a license file for one platform on another platform?

No, licenses are specific to platform, but not bitness.

Can I use a license file for one bitness with the other bitness?

Yes, licenses are specific to platform, but not bitness.

Do I need to have a copy of the license file with both the 32 and 64-bit driver, or just one?

Yes, the license file needs to be present for each driver and bitness you use.

General ODBC


I cannot see the DSN I’ve created in my application

This is usually due to a mismatch in bitness between the application and driver. The driver bitness (32 or 64-bit) must match the application bitness. Please see the Bitness section for more information.

I cannot see the driver I've installed in the ODBC Administrator.

This is usually because the wrong bitness of ODBC Administrator is being used, please see http://www.simba.com/wp-content/uploads/2010/10/HOW-TO-32-bit-vs-64-bit-ODBC-Data-Source-Administrator.pdf for how to access the correct one.

ERROR: Data source name not found and no default driver specified

If you can see your DSN in the ODBC Administrator, but your application reports this error, then most likely you created a User DSN and the application or the data access process runs under a different user account. If this is the case, then the application/process will not be able to detect the User DSN. Using a System DSN may resolve this issue since they are accessible by all processes running on the local machine. If the error persists with the System DSN, it is possible that the application or process trying to load the driver has a different bitness than the driver. See the previous answer to correct this problem.

I get the following error when I try and connect: “The specified DSN contains an architecture mismatch between the Driver and Application.”

This is due to a mismatch in bitness between the application and driver. The driver bitness (32 or 64-bit) must match the application bitness. Please see the Bitness section for more information.

Where is the driver installed?

The ODBC driver must be installed on the same machine that the application is running on. If using a desktop application like Excel, then it must be installed on the desktop. If using a server application like Tableau Server, it must be installed on the server machine.

What format do dates use?

YYYY-MM-DD

How do I enable logging in the driver?

On Windows, open ODBC Administrator, go to the System DSN tab, select your DSN and hit Configure. Then Click the Logging Options button, add your logging settings and click OK and OK to save the settings. Restart the application you are using the driver with for changes to take effect.

In OSX or Linux platforms, you must modify the simba.<driverName>odbc.ini file. For example, for Salesforce, this is simba.salesforceodbc.ini. The default location for this file is INSTALL_DIR/lib/<bitness>. Add the following under [Driver]. 6 is the highest log level(Trace). Restart the application you are using the driver with for changes to take effect.

LogLevel=6

LogPath=/path/to/logs

For a step by step guide visit How do I enable logging in an ODBC driver?

Or for more information, see the install guide for your driver.

How do I enable logging in the driver manager?

For Windows: Open ODBC Administrator, go to the Tracing tab then provide a Log File Path, including file name. Click Start Tracing Now, then open your application. Click Stop Tracing now to finish.

OSX and Linux:

iODBC – in your odbc.ini file add the following:

[ODBC]

Trace=1

TraceFilePath=/path/tofile/tracefile.log

Debug=1

DebugFilePath=/path/tofile/debugfile.log

unixODBC – in your odbcinst.ini file add the following:

Trace=yes

TraceFilePath=/path/tofile/tracefile.log

See this blog post for more information.

What format do times use?

hh:mm:ss

What format do timestamps use?

YYYY-MM-DD hh:mm:ss[.fffffffff]

I get the following error: (Simba)(ODBC)(11560) Unable to locate SQLGetPrivateProfileString function

This is due to not setting the ODBCInstLib in the .simba.<driverName>odbc.ini correctly. Please refer to the .ini file and uncomment the correct ODBCInstLib line as indicated by the comments to match the driver manager that you are using.

How can I test connectivity on non-Windows platforms?

When using iODBC as the driver manager you can use the iodbctest application provided as part of iODBC.

When using unixODBC as the driver manager you can use the isql application provided as part of unixODBC.

Are parameters supported?

Yes, parameters are supported for all drivers. Note that the syntax for parameters follows ODBC, and you use the ? as a parameter marker. For example: “SELECT * FROM T1 WHERE C1 = ?”

Bitness Specific


Do I need to use a 64-bit driver on a 64-bit OS?

No, virtually every 64-bit OS can run 32-bit programs. Instead, you should match the bitness of the driver to the bitness of the application you wish to use the driver with.

How can I tell the bitness of my application (in general)?

On Windows 64-bit, open the Task Manager and go to the Processes tab. Locate the name of the application that is running, and if it has a “*32″ beside the name then it is a 32-bit application.

How can I tell the bitness of Excel?

Excel 2007 and earlier are all 32-bit.

Excel 2010: Click the File tab and then click Help in the left navigation pane. The bitness will show up at the end of the version number.

Excel 2013: Click the File tab and then click Account in the left navigation pane, then click the About Excel button. The bitness will show up at the end of the version number.

How can I tell the bitness of PowerBI

Expand the main PowerBI ribbon and open the Help section. Clicking on the About item will open a Dialog containing version information including bitness.

How can I tell the bitness of QlikSense

QlikSense normally installs as a 64-bit application when downloaded from the website, however, its bitness isn’t really relevant, as QlikSense will allow you to connect to either 32 or 64-bit DSNs.

How can I tell the bitness of Tableau?

Tablea 8.0 and earlier are all 32-bit.

Tableau 8.1 and later: Click the Help menu item, then click About Tableau. The bitness will show in the top right hand corner of the dialog.

Tableau Specific

Will my generic ODBC driver work with Tableau on a Mac?

No, Tableau does not currently support generic ODBC connections on Mac. Please see: http://kb.tableau.com/articles/issue/generic-odbc-data-connection-unavailable-on-the-mac.

Linked Server


Insert, Update, and Delete fail with an error saying the Linked Server doesn’t support the required transaction interfaces.

Linked Server does not use ODBC natively, it uses OLE DB and to talk to ODBC it uses the Microsoft OLE DB to ODBC bridge. This is where the problem arises. You can work around this by disabling transactions for DML queries with the provider. Delete the linked server connection to MongoDB, then open the Linked Server Providers and right click on the MDASQL one. Select the “Non-transacted updates” and then recreate the linked server and try again.

Why do I get an error about unsupported conversions?

Because Linked Server uses the OLE DB to ODBC bridge, conversions are dependant on the bridge. This bridge does not support conversions when character columns have more than 8000 characters, so limiting the size of columns to 8000 characters allows this to work. Some drivers have configurable character lengths, so setting this will fix the error. In other cases, simply omitting the column will also resolve the issue

Why does TOP not work when querying the Linked Server directly?

This is a known bug and has been resolved. If the driver you are using has this problem, contact Simba to obtain the latest version of the driver.

How do I set up a Linked Server?

Please refer to the Quickstart guide that comes with the driver for information on how to create a Linked Server, or contact Simba to obtain the latest information