Similar to Windows, macOS utilizes named data sources (DSNs) for connecting ODBC-based client applications to Snowflake.
Download the JDBC or ODBC drivers for your Dremio deployment, and look through the documentation if you need help installing. Windows and Mac ODBC installers also include BI tool integrations for BI tools that require them. Install the Oracle ODBC Driver Download the Oracle 12.2 Instant Client Basic and ODBC packages from Instant Client Downloads for macOS (Intel x86). To reduce the installation size, the Basic Light package be used instead of Basic, if its character sets and languages are sufficient. Extract both ZIP files. The Dremio ODBC Mac driver allows Mac-based applications to work with Dremio. The following information installs the driver and creates a default system DSN. Navigate to the Dremio ODBC Mac driver download site. Click on Download for MacOS. Navigate to driver download location (usually the Downloads folder). Our software library provides a free download of Actual ODBC Driver for Access 3.2 for Mac. The actual developer of this Mac application is Actual Technologies. The program is included in System Tools. This Mac download was scanned by our antivirus and was rated as virus free. The latest installation package takes up 65 MB on disk. The instructions below apply to Excel 2016, 2019 and Microsoft 365 for Mac. These versions of Excel do provide an ODBC driver for connecting to SQL Server Databases. On the Data tab, click New Database Query SQL Server ODBC.Then use the dialog boxes to import the data.
In this Topic:
Free Download Odbc Driver For Mac
Prerequisites¶
Operating System¶
For a list of the operating systems supported by Snowflake clients, see Operating System Support.
iODBC¶
The Snowflake ODBC driver for Mac requires iODBC, which is available for download from:
To install iODBC:
After downloading iODBC, double-click on the downloaded .dmg file.
Double-click on the installer file,
iODBC-SDK.pkg
, and follow the prompts.
Note
iODBC provides a GUI administrator tool for configuring drivers and DSNs; however, this tool has not been tested for use with Snowflake and, therefore, should not be used to create or manage DSNs. Use ODBC Manager instead.
ODBC Manager — Optional/Recommended¶
ODBC Manager is a GUI tool for configuring drivers and creating/managing DSNs. The tool is optional because you can also create DSNs manually by editing the appropriate odbc.ini
file. ODBC Manager is available from:
To install ODBC Manager:
After downloading ODBC Manager, double-click on the downloaded .dmg file.
Double-click on the installer file,
ODBCManager.pkg
, and follow the prompts.
The installer installs ODBC Manager in the ~/Applications/Utilities
directory.
Step 1: Install the ODBC Driver¶
To install the Snowflake ODBC driver for macOS:
If you haven’t already downloaded the driver, download it now. For details, see Downloading the ODBC Driver.
Double-click on the downloaded .dmg file,
snowflake_odbc_mac-<version>.dmg
.Double-click on the installer file,
snowflakeODBC_<version>.pkg
, and follow the prompts.You will likely be prompted for the administrator/sudo password for the machine on which you are installing the driver.
If you choose the default directory when prompted, the installer installs the ODBC driver files in the following directories:
Step 2: Configure the ODBC Driver¶
To configure the ODBC driver for macOS, create one or more data source (DSNs), which are stored in the following files, depending on the type of DSN you create:
User DSNs:
~/Library/ODBC/odbc.ini
System DSNs:
/Library/ODBC/odbc.ini
To create a DSN, either use ODBC Manager or edit the appropriate odbc.ini
file.
Odbc Driver Download 13
Creating a DSN Using ODBC Manager¶
To create a DSN in ODBC Manager:
Start ODBC Manager.
Click on User DSN or System DSN.
Click the Add button.
Select the driver to use (Snowflake) and click OK.
Enter the name of the DSN and optionally a description.
Create a Keyword/Value pair for each DSN parameter:
Click Add to create a Keyword/Value pair.
Select Keyword and replace it with the parameter name.
Select Value and replace it with the value for the parameter.
Repeat this process for each parameter. For details about the parameters that can be set for each DSN, see ODBC Configuration and Connection Parameters.
Click OK to create the DSN.
If you are creating the first user or system DSN for the ODBC driver, ODBC Manager creates the odbc.ini
file in the corresponding directory for the type of DSN you are creating. If you are creating additional DSNs, ODBC Manageradds entries for each DSN to the existing odbc.ini
file.
Creating a DSN by Adding an Entry in the odbc.ini
File¶
If a user or system DSN has already been created for the driver, add the new entry to the odbc.ini
file that already exists in the corresponding directory for the type of DSN you are creating. If you are creating the first DSNfor the driver, you must manually create the odbc.ini
file and add the entry to the file.
For each DSN, specify:
DSN name and driver name (Snowflake), in the form of
<dsn_name>=<driver_name>
.Directory path and name of the driver file, in the form of
Driver=/opt/snowflake/snowflakeodbc/lib/universal/libSnowflake.dylib
.Connection parameters, such as
server
anduid
(user login name). Any connection parameters you add to the DSN do not need to be specified in the ODBC connect string.Any additional parameters, such as default
role
,database
, andwarehouse
.
Parameters are specified in the form of <parameter_name>=<value>
. For details about the parameters that can be set for each DSN, see ODBC Configuration and Connection Parameters.
The following example illustrates an odbc.ini
file containing two drivers, testodbc1
for account xy12345
(located in the AWS US West region) and testodbc2
for account yz23456
(located in the AWS US East region):
Note the following:
Both
testodbc1
andtestodbc2
have default roles.testodbc2
also has a default database and warehouse.
Step 3: Test the ODBC Driver¶
You can use the iodbctest
command line utility provided with iODBC to test the DSNs you create.
When prompted for the ODBC connect string, enter the required connection parameters (DSN name, server, user login name, and password), as well as any other parameters that you would like to enter as part of the connect string. Theconnect string takes parameters in the form of <parameter_name>=<value>
, e.g. dsn=testodbc2
, with each parameter separated by a semi-colon (;
) and no blank spaces. For the list of supported parameters, seeODBC Configuration and Connection Parameters.
Note
If you set the server and user login name in the DSN, the only required parameters in the connect string are the DSN name and user password.
For example:
-->The ODBC drivers for Linux and macOS support AlwaysOn Availability Groups. For more information about AlwaysOn Availability Groups, see:
You can specify the availability group listener of a given availability group in the connection string. If an ODBC application on Linux or macOS is connected to a database in an availability group that fails over, the original connection is broken and the application must open a new connection to continue work after the failover.
The ODBC drivers on Linux and macOS iterate sequentially through all IP addresses associated with a DNS hostname if you are not connecting to an availability group listener, and multiple IP addresses are associated with the hostname.
If the DNS server's first returned IP address is not connectable, these iterations can be time consuming. When connecting to an availability group listener, the driver attempts to establish connections to all IP addresses in parallel. If a connection attempt succeeds, the driver discards any pending connection attempts.
Note
Because a connection can fail due to an availability group failover, implement connection retry logic; retry a failed connection until it reconnects. Increasing connection timeout and implementing connection retry logic increases the chance of connecting to an availability group.
Connecting With MultiSubnetFailover
Always specify MultiSubnetFailover=Yes when connecting to a SQL Server 2012 (11.x) availability group listener or SQL Server 2012 (11.x) Failover Cluster Instance. MultiSubnetFailover enables faster failover for all Availability Groups and failover cluster instance in SQL Server 2012 (11.x). MultiSubnetFailover also significantly reduces failover time for single and multi-subnet AlwaysOn topologies. During a multisubnet failover, the client attempts connections in parallel. During a subnet failover, the driver aggressively retries the TCP connection.
The MultiSubnetFailover connection property indicates that the application is being deployed in an availability group or Failover Cluster Instance. The driver tries to connect to the database on the primary SQL Server instance by trying to connect to all the IP addresses. When connecting with MultiSubnetFailover=Yes, the client retries TCP connection attempts faster than the operating system's default TCP retransmit intervals. MultiSubnetFailover=Yes enables faster reconnection after failover of either an AlwaysOn Availability Group or an AlwaysOn Failover Cluster Instance. MultiSubnetFailover=Yes applies to both single- and multi-subnet Availability Groups and Failover Cluster Instances.
Use MultiSubnetFailover=Yes when connecting to an availability group listener or Failover Cluster Instance. Otherwise, your application's performance can be negatively affected.
Note the following when connecting to a server in an availability group or Failover Cluster Instance:
Specify MultiSubnetFailover=Yes to improve performance when connecting to a single subnet or multi-subnet Availability Group.
Specify the availability group listener of the availability group as the server in your connection string.
You cannot connect to a SQL Server instance configured with more than 64 IP addresses.
Both SQL Server Authentication or Kerberos Authentication can be used with MultiSubnetFailover=Yes without affecting the behavior of the application.
You can increase the value of loginTimeout to accommodate for failover time and reduce the application's connection retry attempts.
Distributed transactions are not supported.
If read-only routing is not in effect, connecting to a secondary replica location in an availability group fails in the following situations:
If the secondary replica location is not configured to accept connections.
If an application uses ApplicationIntent=ReadWrite and the secondary replica location is configured for read-only access.
A connection fails if a primary replica is configured to reject read-only workloads and the connection string contains ApplicationIntent=ReadOnly.
Specifying Application Intent
The keyword ApplicationIntent can be specified in your connection string. The assignable values are ReadWrite or ReadOnly. The default is ReadWrite.
When ApplicationIntent=ReadOnly, the client requests a read workload when connecting. The server enforces the intent at connection time, and during a USE database statement.
The ApplicationIntent keyword does not work with legacy read-only databases.
Targets of ReadOnly
When a connection chooses ReadOnly, the connection is assigned to any of the following special configurations that might exist for the database:
- A database can allow or disallow read workloads on the targeted Always On database. This choice is controlled by using the ALLOW_CONNECTIONS clause of the PRIMARY_ROLE and SECONDARY_ROLE Transact-SQL statements.
If none of those special targets are available, the regular database is read from.
Odbc Driver Manager Mac
The ApplicationIntent keyword enables read-only routing.
Read-Only Routing
Read-only routing is a feature that can ensure the availability of a read-only replica of a database. To enable read-only routing, all of the following apply:
You must connect to an Always On Availability Group availability group listener.
The ApplicationIntent connection string keyword must be set to ReadOnly.
The Availability Group must be configured by the database administrator to enable read-only routing.
Multiple connections each using read-only routing might not all connect to the same read-only replica. Changes in database synchronization or changes in the server's routing configuration can result in client connections to different read-only replicas. You can ensure that all read-only requests connect to the same read-only replica. Ensure this sameness by not passing an availability group listener to the Server connection string keyword. Instead, specify the name of the read-only instance.
Download Odbc Driver For Macos
Read-only routing may take longer than connecting to the primary. The longer wait is because read-only routing first connects to the primary, and then looks for the best available readable secondary. Due to these multiple steps, you should increase your login timeout to at least 30 seconds.
ODBC Syntax
Two ODBC connection string keywords support AlwaysOn Availability Groups:
ApplicationIntent
MultiSubnetFailover
For more information about ODBC connection string keywords, see Using Connection String Keywords with SQL Server Native Client.
The equivalent connection attributes are:
Microsoft Odbc Driver Download
SQL_COPT_SS_APPLICATION_INTENT
SQL_COPT_SS_MULTISUBNET_FAILOVER
For more information about ODBC connection attributes, see SQLSetConnectAttr.
An ODBC application that uses AlwaysOn Availability Groups can use one of two functions to make the connection:
Function | Description |
---|---|
SQLConnect Function | SQLConnect supports both ApplicationIntent and MultiSubnetFailover via a data source name (DSN) or connection attribute. |
SQLDriverConnect Function | SQLDriverConnect supports ApplicationIntent and MultiSubnetFailover via DSN, connection string keyword, or connection attribute. |