blob: b2012c8f9848fb83301fe85e6bd3f6af5c9de490 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-61232409-1');
</script>
<meta charset="UTF-8">
<meta name="ignite-version" content="2.9.0" />
<title>Connection String and DSN | Ignite Documentation</title>
<link rel="canonical" href="/docs/2.9.0/SQL/ODBC/connection-string-dsn" />
<link rel="stylesheet" href="/assets/css/styles.css?1600286555">
<link rel="stylesheet" href="/assets/css/asciidoc-pygments.css">
<link rel="shortcut icon" href="/favicon.ico">
<meta name='viewport' content='width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0'>
<script type="text/javascript" src="/assets/js/anchor.min.js?1600286555"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" />
</head>
<body>
<header>
<!--#include virtual="/includes/promotion_banner.html" -->
<div class="container">
<button type='button' class='menu' title='Docs menu'>
<img src="/assets/images/menu-icon.svg"/>
</button>
<div class='home'>
<a href="/" class='home' title='Apache Ignite home'>
<img src="/assets/images/apache_ignite_logo.svg" alt="Apache Ignite logo" width="103" >
</a>
</div>
<nav>
</nav>
<select id="version-selector">
<option value="2.9.0">2.9.0</option>
</select>
<a href="https://github.com/apache/ignite" title='GitHub' class='github' target="_blank">
<img src="/assets/images/github-gray.svg" alt="GitHub logo">
</a>
<form class='search'>
<button class="search-close" type='button'><img src='/assets/images/cancel.svg'></button>
<input type="search" placeholder="Search…" id="search-input">
</form>
<button type='button' class='search-toggle'><img src='/assets/images/search.svg'></button>
<button type='button' class='top-nav-toggle'></button>
</div>
</header>
<link rel="stylesheet" href="/assets/css/docs.css">
<section class='page-docs'>
<nav class='left-nav' data-swiftype-index='false'>
<li>
<a href="/docs/2.9.0/preface" class='' >Preface</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Quick Start Guides<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/quick-start/java"
class=''
>Java</a>
</li>
<li>
<a href="/docs/2.9.0/quick-start/dotnet"
class=''
>.NET/C#</a>
</li>
<li>
<a href="/docs/2.9.0/quick-start/cpp"
class=''
>C++</a>
</li>
<li>
<a href="/docs/2.9.0/quick-start/python"
class=''
>Python</a>
</li>
<li>
<a href="/docs/2.9.0/quick-start/nodejs"
class=''
>Node.JS</a>
</li>
<li>
<a href="/docs/2.9.0/quick-start/sql"
class=''
>SQL</a>
</li>
<li>
<a href="/docs/2.9.0/quick-start/php"
class=''
>PHP</a>
</li>
<li>
<a href="/docs/2.9.0/quick-start/restapi"
class=''
>REST API</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="/installation" class='group-toggle collapsed '>Installation<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/installation/installing-using-zip"
class=''
>Installing Using ZIP Archive</a>
</li>
<li>
<a href="/docs/2.9.0/installation/installing-using-docker"
class=''
>Installing Using Docker</a>
</li>
<li>
<a href="/docs/2.9.0/installation/deb-rpm"
class=''
>Installing DEB or RPM package</a>
</li>
<li>
<button
type='button'
class='collapsed '>Kubernetes<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/2.9.0//installation/kubernetes/amazon-eks-deployment" class=''>Amazon EKS</a></li>
<li><a href="/docs/2.9.0//installation/kubernetes/azure-deployment" class=''>Azure Kubernetes Service</a></li>
<li><a href="/docs/2.9.0//installation/kubernetes/gke-deployment" class=''>Google Kubernetes Engine</a></li>
</nav>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Setting Up<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/setup"
class=''
>Setting Up Ignite for Java</a>
</li>
<li>
<a href="/docs/2.9.0/setup-dotnet"
class=''
>Setting Up Ignite for .NET/C#</a>
</li>
</nav>
</li>
<li>
<a href="/docs/2.9.0/understanding-configuration" class='' >Understanding Configuration</a>
</li>
<li>
<a href="/docs/2.9.0/logging" class='' >Configuring Logging</a>
</li>
<li>
<a href="/docs/2.9.0/starting-nodes" class='' >Starting and Stopping Nodes</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Clustering<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/clustering/clustering"
class=''
>Overview</a>
</li>
<li>
<a href="/docs/2.9.0/clustering/tcp-ip-discovery"
class=''
>TCP/IP Discovery</a>
</li>
<li>
<a href="/docs/2.9.0/clustering/zookeeper-discovery"
class=''
>ZooKeeper Discovery</a>
</li>
<li>
<a href="/docs/2.9.0/clustering/discovery-in-the-cloud"
class=''
>Discovery in the Cloud</a>
</li>
<li>
<a href="/docs/2.9.0/clustering/network-configuration"
class=''
>Network Configuration</a>
</li>
<li>
<a href="/docs/2.9.0/clustering/connect-client-nodes"
class=''
>Connecting Client Nodes</a>
</li>
<li>
<a href="/docs/2.9.0/clustering/running-client-nodes-behind-nat"
class=''
>Running Client Nodes Behind NAT</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Data Modeling<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/data-modeling/data-modeling"
class=''
>Introduction</a>
</li>
<li>
<a href="/docs/2.9.0/data-modeling/data-partitioning"
class=''
>Data Partitioning</a>
</li>
<li>
<a href="/docs/2.9.0/data-modeling/affinity-collocation"
class=''
>Affinity Colocation</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Configuring Memory<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/memory-architecture"
class=''
>Memory Architecture</a>
</li>
<li>
<a href="/docs/2.9.0/memory-configuration/data-regions"
class=''
>Configuring Data Regions</a>
</li>
<li>
<a href="/docs/2.9.0/memory-configuration/eviction-policies"
class=''
>Eviction Policies</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Configuring Caches<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/configuring-caches/configuration-overview"
class=''
>Cache Configuration</a>
</li>
<li>
<a href="/docs/2.9.0/configuring-caches/configuring-backups"
class=''
>Configuring Partition Backups</a>
</li>
<li>
<a href="/docs/2.9.0/configuring-caches/atomicity-modes"
class=''
>Atomicity Modes</a>
</li>
<li>
<a href="/docs/2.9.0/configuring-caches/expiry-policies"
class=''
>Expiry Policy</a>
</li>
<li>
<a href="/docs/2.9.0/configuring-caches/on-heap-caching"
class=''
>On-Heap Caching</a>
</li>
<li>
<a href="/docs/2.9.0/configuring-caches/cache-groups"
class=''
>Cache Groups</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Persistence<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/persistence/native-persistence"
class=''
>Ignite Persistence</a>
</li>
<li>
<a href="/docs/2.9.0/persistence/external-storage"
class=''
>External Storage</a>
</li>
<li>
<a href="/docs/2.9.0/persistence/swap"
class=''
>Swapping</a>
</li>
<li>
<a href="/docs/2.9.0/persistence/custom-cache-store"
class=''
>Implementing Custom Cache Store</a>
</li>
<li>
<a href="/docs/2.9.0/persistence/disk-compression"
class=''
>Disk Compression</a>
</li>
<li>
<a href="/docs/2.9.0/persistence/persistence-tuning"
class=''
>Tuning Persistence</a>
</li>
</nav>
</li>
<li>
<a href="/docs/2.9.0/baseline-topology" class='' >Baseline Topology</a>
</li>
<li>
<a href="/docs/2.9.0/cluster-states" class='' >Cluster States</a>
</li>
<li>
<a href="/docs/2.9.0/data-rebalancing" class='' >Data Rebalancing</a>
</li>
<li>
<a href="/docs/2.9.0/partition-loss-policy" class='' >Partition Loss Policy</a>
</li>
<li>
<a href="/docs/2.9.0/deploying-user-code" class='' >Deploying User Code</a>
</li>
<li>
<a href="/docs/2.9.0/peer-class-loading" class='' >Peer Class Loading</a>
</li>
<li>
<a href="/docs/2.9.0/data-streaming" class='' >Data Streaming</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Using Key-Value Cache API<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/key-value-api/basic-cache-operations"
class=''
>Basic Cache Operations</a>
</li>
<li>
<a href="/docs/2.9.0/key-value-api/binary-objects"
class=''
>Working with Binary Objects</a>
</li>
<li>
<a href="/docs/2.9.0/key-value-api/using-scan-queries"
class=''
>Using Scan Queries</a>
</li>
<li>
<a href="/docs/2.9.0/read-repair"
class=''
>Read Repair</a>
</li>
</nav>
</li>
<li>
<a href="/docs/2.9.0/key-value-api/continuous-queries" class='' >Using Continuous Queries</a>
</li>
<li>
<a href="/docs/2.9.0/key-value-api/transactions" class='' >Performing Transactions</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Working with SQL<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/SQL/sql-introduction"
class=''
>Introduction</a>
</li>
<li>
<a href="/docs/2.9.0/SQL/schemas"
class=''
>Understanding Schemas</a>
</li>
<li>
<a href="/docs/2.9.0/SQL/indexes"
class=''
>Defining Indexes</a>
</li>
<li>
<a href="/docs/2.9.0/SQL/sql-api"
class=''
>Using SQL API</a>
</li>
<li>
<a href="/docs/2.9.0/SQL/distributed-joins"
class=''
>Distributed Joins</a>
</li>
<li>
<a href="/docs/2.9.0/SQL/sql-transactions"
class=''
>SQL Transactions</a>
</li>
<li>
<a href="/docs/2.9.0/SQL/custom-sql-func"
class=''
>Custom SQL Functions</a>
</li>
<li>
<a href="/docs/2.9.0/SQL/JDBC/jdbc-driver"
class=''
>JDBC Driver</a>
</li>
<li>
<a href="/docs/2.9.0/SQL/JDBC/jdbc-client-driver"
class=''
>JDBC Client Driver</a>
</li>
<li>
<a href="/docs/2.9.0/transactions/mvcc"
class=''
>Multiversion Concurrency Control</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Distributed Computing<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/distributed-computing/distributed-computing"
class=''
>Distributed Computing API</a>
</li>
<li>
<a href="/docs/2.9.0/distributed-computing/cluster-groups"
class=''
>Cluster Groups</a>
</li>
<li>
<a href="/docs/2.9.0/distributed-computing/executor-service"
class=''
>Executor Service</a>
</li>
<li>
<a href="/docs/2.9.0/distributed-computing/map-reduce"
class=''
>MapReduce API</a>
</li>
<li>
<a href="/docs/2.9.0/distributed-computing/load-balancing"
class=''
>Load Balancing</a>
</li>
<li>
<a href="/docs/2.9.0/distributed-computing/fault-tolerance"
class=''
>Fault Tolerance</a>
</li>
<li>
<a href="/docs/2.9.0/distributed-computing/job-scheduling"
class=''
>Job Scheduling</a>
</li>
</nav>
</li>
<li>
<a href="/docs/2.9.0/collocated-computations" class='' >Colocating Computations with Data</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Working with Events<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/events/listening-to-events"
class=''
>Enabling and Listenting to Events</a>
</li>
<li>
<a href="/docs/2.9.0/events/events"
class=''
>Events</a>
</li>
</nav>
</li>
<li>
<a href="/docs/2.9.0/near-cache" class='' >Near Caches</a>
</li>
<li>
<a href="/docs/2.9.0/platform-cache" class='' >.NET Platform Cache</a>
</li>
<li>
<a href="/docs/2.9.0/services/services" class='' >Services</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Distributed Data Structures<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/data-structures/queue-and-set"
class=''
>Queue and Set</a>
</li>
<li>
<a href="/docs/2.9.0/data-structures/atomic-types"
class=''
>Atomic Types</a>
</li>
<li>
<a href="/docs/2.9.0/data-structures/countdownlatch"
class=''
>CountDownLatch</a>
</li>
<li>
<a href="/docs/2.9.0/data-structures/atomic-sequence"
class=''
>Atomic Sequence</a>
</li>
<li>
<a href="/docs/2.9.0/data-structures/semaphore"
class=''
>Semaphore</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Machine Learning<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/machine-learning/machine-learning"
class=''
>Machine Learning</a>
</li>
<li>
<a href="/docs/2.9.0/machine-learning/partition-based-dataset"
class=''
>Partition Based Dataset</a>
</li>
<li>
<a href="/docs/2.9.0/machine-learning/updating-trained-models"
class=''
>Updating Trained Models</a>
</li>
<li>
<button
type='button'
class='collapsed '>Binary Classification<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/2.9.0//machine-learning/binary-classification/introduction" class=''>Introduction</a></li>
<li><a href="/docs/2.9.0//machine-learning/binary-classification/linear-svm" class=''>Linear SVM (Support Vector Machine)</a></li>
<li><a href="/docs/2.9.0//machine-learning/binary-classification/decision-trees" class=''>Decision Trees</a></li>
<li><a href="/docs/2.9.0//machine-learning/binary-classification/multilayer-perceptron" class=''>Multilayer Perceptron</a></li>
<li><a href="/docs/2.9.0//machine-learning/binary-classification/logistic-regression" class=''>Logistic Regression</a></li>
<li><a href="/docs/2.9.0//machine-learning/binary-classification/knn-classification" class=''>k-NN Classification</a></li>
<li><a href="/docs/2.9.0//machine-learning/binary-classification/ann" class=''>ANN (Approximate Nearest Neighbor)</a></li>
<li><a href="/docs/2.9.0//machine-learning/binary-classification/naive-bayes" class=''>Naive Bayes</a></li>
</nav>
</li>
<li>
<button
type='button'
class='collapsed '>Regression<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/2.9.0//machine-learning/regression/introduction" class=''>Introduction</a></li>
<li><a href="/docs/2.9.0//machine-learning/regression/linear-regression" class=''>Linear Regression</a></li>
<li><a href="/docs/2.9.0//machine-learning/regression/decision-trees-regression" class=''>Decision Trees Regression</a></li>
<li><a href="/docs/2.9.0//machine-learning/regression/knn-regression" class=''>k-NN Regression</a></li>
</nav>
</li>
<li>
<button
type='button'
class='collapsed '>Clustering<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/2.9.0//machine-learning/clustering/introduction" class=''>Introduction</a></li>
<li><a href="/docs/2.9.0//machine-learning/clustering/k-means-clustering" class=''>K-Means Clustering</a></li>
<li><a href="/docs/2.9.0//machine-learning/clustering/gaussian-mixture" class=''>Gaussian mixture (GMM)</a></li>
</nav>
</li>
<li>
<a href="/docs/2.9.0/machine-learning/preprocessing"
class=''
>Preprocessing</a>
</li>
<li>
<button
type='button'
class='collapsed '>Model Selection<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/2.9.0//machine-learning/model-selection/introduction" class=''>Introduction</a></li>
<li><a href="/docs/2.9.0//machine-learning/model-selection/evaluator" class=''>Evaluator</a></li>
<li><a href="/docs/2.9.0//machine-learning/model-selection/split-the-dataset-on-test-and-train-datasets" class=''>Split the dataset on test and train datasets</a></li>
<li><a href="/docs/2.9.0//machine-learning/model-selection/hyper-parameter-tuning" class=''>Hyper-parameter tuning</a></li>
<li><a href="/docs/2.9.0//machine-learning/model-selection/pipeline-api" class=''>Pipeline API</a></li>
</nav>
</li>
<li>
<a href="/docs/2.9.0/machine-learning/multiclass-classification"
class=''
>Multiclass Classification</a>
</li>
<li>
<button
type='button'
class='collapsed '>Ensemble Methods<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/2.9.0//machine-learning/ensemble-methods/introduction" class=''></a></li>
<li><a href="/docs/2.9.0//machine-learning/ensemble-methods/stacking" class=''>Stacking</a></li>
<li><a href="/docs/2.9.0//machine-learning/ensemble-methods/baggin" class=''>Bagging</a></li>
<li><a href="/docs/2.9.0//machine-learning/ensemble-methods/random-forest" class=''>Random Forest</a></li>
<li><a href="/docs/2.9.0//machine-learning/ensemble-methods/gradient-boosting" class=''>Gradient Boosting</a></li>
</nav>
</li>
<li>
<a href="/docs/2.9.0/machine-learning/recommendation-systems"
class=''
>Recommendation Systems</a>
</li>
<li>
<button
type='button'
class='collapsed '>Importing Model<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/2.9.0//machine-learning/importing-model/introduction" class=''>Introduction</a></li>
<li><a href="/docs/2.9.0//machine-learning/importing-model/model-import-from-gxboost" class=''>Import Model from XGBoost</a></li>
<li><a href="/docs/2.9.0//machine-learning/importing-model/model-import-from-apache-spark" class=''>Import Model from Apache Spark</a></li>
</nav>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Monitoring<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/monitoring-metrics/intro"
class=''
>Introduction</a>
</li>
<li>
<a href="/docs/2.9.0/monitoring-metrics/cluster-id"
class=''
>Cluster ID and Tag</a>
</li>
<li>
<button
type='button'
class='collapsed '>Metrics<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/2.9.0//monitoring-metrics/configuring-metrics" class=''>Configuring Metrics</a></li>
<li><a href="/docs/2.9.0//monitoring-metrics/metrics" class=''>JMX Metrics</a></li>
</nav>
</li>
<li>
<button
type='button'
class='collapsed '>New Metrics System<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/2.9.0//monitoring-metrics/new-metrics-system" class=''>Introduction</a></li>
<li><a href="/docs/2.9.0//monitoring-metrics/new-metrics" class=''>Metrics</a></li>
</nav>
</li>
<li>
<a href="/docs/2.9.0/monitoring-metrics/system-views"
class=''
>System Views</a>
</li>
<li>
<a href="/docs/2.9.0/monitoring-metrics/tracing"
class=''
>Tracing</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="/security" class='group-toggle collapsed '>Security<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/security/authentication"
class=''
>Authentication</a>
</li>
<li>
<a href="/docs/2.9.0/security/ssl-tls"
class=''
>SSL/TLS</a>
</li>
<li>
<button
type='button'
class='collapsed '>Transparent Data Encryption<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/2.9.0//security/tde" class=''>Introduction</a></li>
<li><a href="/docs/2.9.0//security/master-key-rotation" class=''>Master key rotation</a></li>
</nav>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Thin Clients<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/thin-clients/getting-started-with-thin-clients"
class=''
>Thin Clients Overview</a>
</li>
<li>
<a href="/docs/2.9.0/thin-clients/java-thin-client"
class=''
>Java Thin Client</a>
</li>
<li>
<a href="/docs/2.9.0/thin-clients/dotnet-thin-client"
class=''
>.NET Thin Client</a>
</li>
<li>
<a href="/docs/2.9.0/thin-clients/cpp-thin-client"
class=''
>C++ Thin Client</a>
</li>
<li>
<a href="/docs/2.9.0/thin-clients/python-thin-client"
class=''
>Python Thin Client</a>
</li>
<li>
<a href="/docs/2.9.0/thin-clients/php-thin-client"
class=''
>PHP Thin Client</a>
</li>
<li>
<a href="/docs/2.9.0/thin-clients/nodejs-thin-client"
class=''
>Node.js Thin Client</a>
</li>
<li>
<button
type='button'
class='collapsed '>Binary Client Protocol<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/2.9.0//binary-client-protocol/binary-client-protocol" class=''>Binary Client Protocol</a></li>
<li><a href="/docs/2.9.0//binary-client-protocol/data-format" class=''>Data Format</a></li>
<li><a href="/docs/2.9.0//binary-client-protocol/key-value-queries" class=''>Key-Value Queries</a></li>
<li><a href="/docs/2.9.0//binary-client-protocol/sql-and-scan-queries" class=''>SQL and Scan Queries</a></li>
<li><a href="/docs/2.9.0//binary-client-protocol/binary-type-metadata" class=''>Binary Types Metadata</a></li>
<li><a href="/docs/2.9.0//binary-client-protocol/cache-configuration" class=''>Cache Configuration</a></li>
</nav>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle expanded '>ODBC Driver<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group expanded'>
<li>
<a href="/docs/2.9.0/SQL/ODBC/odbc-driver"
class=''
>ODBC Driver</a>
</li>
<li>
<a href="/docs/2.9.0/SQL/ODBC/connection-string-dsn"
class='active'
>Connection String and DSN</a>
</li>
<li>
<a href="/docs/2.9.0/SQL/ODBC/querying-modifying-data"
class=''
>Querying and Modifying Data</a>
</li>
<li>
<a href="/docs/2.9.0/SQL/ODBC/specification"
class=''
>Specification</a>
</li>
<li>
<a href="/docs/2.9.0/SQL/ODBC/data-types"
class=''
>Data Types</a>
</li>
<li>
<a href="/docs/2.9.0/SQL/ODBC/error-codes"
class=''
>Error Codes</a>
</li>
</nav>
</li>
<li>
<a href="/docs/2.9.0/restapi" class='' >REST API</a>
</li>
<li>
<a href="/docs/2.9.0/control-script" class='' >Control Script</a>
</li>
<li>
<a href="/docs/2.9.0/plugins" class='' >Plugins</a>
</li>
<li>
<a href="/docs/2.9.0/sqlline" class='' >SQLLine</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Ignite for Spark<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/ignite-for-spark/overview"
class=''
>Overview</a>
</li>
<li>
<a href="/docs/2.9.0/ignite-for-spark/ignitecontext-and-rdd"
class=''
>IgniteContext and IgniteRDD</a>
</li>
<li>
<a href="/docs/2.9.0/ignite-for-spark/ignite-dataframe"
class=''
>Ignite DataFrame</a>
</li>
<li>
<a href="/docs/2.9.0/ignite-for-spark/installation"
class=''
>Installation</a>
</li>
<li>
<a href="/docs/2.9.0/ignite-for-spark/spark-shell"
class=''
>Test Ignite with Spark-shell</a>
</li>
<li>
<a href="/docs/2.9.0/ignite-for-spark/troubleshooting"
class=''
>Troubleshooting</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="/sql-reference/sql-reference-overview" class='group-toggle collapsed '>SQL Reference<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/2.9.0/sql-reference/sql-conformance"
class=''
>SQL Conformance</a>
</li>
<li>
<a href="/docs/2.9.0/sql-reference/ddl"
class=''
>Data Definition Language (DDL)</a>
</li>
<li>
<a href="/docs/2.9.0/sql-reference/dml"
class=''
>Data Manipulation Language (DML)</a>
</li>
<li>
<a href="/docs/2.9.0/sql-reference/transactions"
class=''
>Transactions</a>
</li>
<li>
<a href="/docs/2.9.0/sql-reference/operational-commands"
class=''
>Operational Commands</a>
</li>
<li>
<a href="/docs/2.9.0/sql-reference/aggregate-functions"
class=''
>Aggregate functions</a>
</li>
<li>
<a href="/docs/2.9.0/sql-reference/numeric-functions"
class=''
>Numeric Functions</a>
</li>
<li>
<a href="/docs/2.9.0/sql-reference/string-functions"
class=''
>String Functions</a>
</li>
<li>
<a href="/docs/2.9.0/sql-reference/date-time-functions"
class=''
>Data and Time Functions</a>
</li>
<li>
<a href="/docs/2.9.0/sql-reference/system-functions"
class=''
>System Functions</a>
</li>
<li>
<a href="/docs/2.9.0/sql-reference/data-types"
class=''
>Data Types</a>
</li>
</nav>
</li>
</nav>
<div class="left-nav__overlay"></div>
<article data-swiftype-index='true'>
<a class='edit-link' href="https://github.com/apache/ignite/tree/IGNITE-7595/docs/_docs/SQL/ODBC/connection-string-dsn.adoc" target="_blank">Edit</a>
<h1>Connection String and DSN</h1>
<div class="sect1">
<h2 id="connection-string-format">Connection String Format</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The ODBC Driver supports standard connection string format. Here is the formal syntax:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="text">connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
empty-string ::=
attribute ::= attribute-keyword=attribute-value | DRIVER=[{]attribute-value[}]
attribute-keyword ::= identifier
attribute-value ::= character-string</code></pre>
</div>
</div>
<div class="paragraph">
<p>In simple terms, an ODBC connection URL is a string with parameters of the choice separated by semicolon.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="supported-arguments">Supported Arguments</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The ODBC driver supports and uses several connection string/DSN arguments. All parameter names are case-insensitive - <code>ADDRESS</code>, <code>Address</code>, and <code>address</code> all are valid parameter names and refer to the same parameter. If an argument is not specified, the default value is used. The exception to this rule is the <code>ADDRESS</code> attribute. If it is not specified, <code>SERVER</code> and <code>PORT</code> attributes are used instead.</p>
</div>
<table class="tableblock frame-all grid-all stripes-even stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 60%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Attribute keyword</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ADDRESS</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Address of the remote node to connect to. The format is: <code>&lt;host&gt;[:&lt;port&gt;]</code>. For example: <code>localhost</code>, <code>example.com:12345</code>, <code>127.0.0.1</code>, <code>192.168.3.80:5893</code>.
If this attribute is specified, then <code>SERVER</code> and <code>PORT</code> arguments are ignored.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">None.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SERVER</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Address of the node to connect to.
This argument value is ignored if ADDRESS argument is specified.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">None.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>PORT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Port on which <code>OdbcProcessor</code> of the node is listening.
This argument value is ignored if <code>ADDRESS</code> argument is specified.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>10800</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>USER</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Username for SQL Connection. This parameter is required if authentication is enabled on the server.
See <a href="/docs/2.9.0/security/authentication">Authentication</a> and <a href="/docs/2.9.0/sql-reference/ddl#create-user">CREATE</a> user docs for more details on how to enable authentication and create user, respectively.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Empty string</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>PASSWORD</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Password for SQL Connection. This parameter is required if authentication is enabled on the server.
See <a href="/docs/2.9.0/security/authentication">Authentication</a> and <a href="/docs/2.9.0/sql-reference/ddl#create-user">CREATE</a> user docs for more details on how to enable authentication and create user, respectively.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Empty string</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SCHEMA</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Schema name.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>PUBLIC</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DSN</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">DSN name to connect to.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">None.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>PAGE_SIZE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of rows returned in response to a fetching request to the data source. Default value should be fine in most cases. Setting a low value can result in slow data fetching while setting a high value can result in additional memory usage by the driver, and additional delay when the next page is being retrieved.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>1024</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DISTRIBUTED_JOINS</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Enables the <a href="/docs/2.9.0/SQL/distributed-joins#non-colocated-joins">non-colocated distributed joins</a> feature for all queries that are executed over the ODBC connection.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ENFORCE_JOIN_ORDER</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Enforces a join order of tables in SQL queries. If set to <code>true</code>, the query optimizer does not reorder tables in the join.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>PROTOCOL_VERSION</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Used to specify ODBC protocol version to use. Currently, there are following versions: <code>2.1.0</code>, <code>2.1.5</code>, <code>2.3.0</code>, <code>2.3.2</code>, <code>2.5.0</code>. You can use earlier versions of the protocol for backward compatibility.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>2.3.0</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>REPLICATED_ONLY</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Set this property to <code>true</code> if the query is to be executed over fully replicated tables. This can enforce execution optimizations.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>COLLOCATED</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Set this parameter to <code>true</code> if your SQL statement includes a GROUP BY clause that groups the results by either primary
or affinity key. When Ignite executes a distributed query, it sends sub-queries to individual cluster members. If
you know in advance that the elements of your query selection are colocated together on the same node and you group by
a primary or affinity key, then Ignite makes significant performance and network optimizations by grouping data locally
on each node participating in the query.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>LAZY</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Lazy query execution.
By default, Ignite attempts to fetch the whole query result set to memory and send it to the client. For small and medium result sets, this provides optimal performance and minimize duration of internal database locks, thus increasing concurrency.
However, if the result set is too big to fit in the available memory, then it can lead to excessive GC pauses and even <code>OutOfMemoryError</code> errors. Use this flag to tell Ignite to fetch the result set lazily, thus minimizing memory consumption at the cost of a moderate performance hit.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SKIP_REDUCER_ON_UPDATE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Enables server side update feature.
When Ignite executes a DML operation, first, it fetches all the affected intermediate rows for analysis to the query initiator (also known as reducer), and only then prepares batches of updated values that will be sent to remote nodes.
This approach might affect performance, and saturate the network if a DML operation has to move many entries over it.
Use this flag to tell Ignite to do all intermediate rows analysis and updates "in-place" on corresponding remote data nodes.
Defaults to <code>false</code>, meaning that intermediate results will be fetched to the query initiator first.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SSL_MODE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Determines whether the SSL connection should be negotiated with the server. Use <code>require</code> or <code>disable</code> mode as needed.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">None.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SSL_KEY_FILE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the name of the file containing the SSL server private key.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">None.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SSL_CERT_FILE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the name of the file containing the SSL server certificate.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">None.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SSL_CA_FILE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the name of the file containing the SSL server certificate authority (CA).</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">None.</p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect1">
<h2 id="connection-string-samples">Connection String Samples</h2>
<div class="sectionbody">
<div class="paragraph">
<p>You can find samples of the connection string below. These strings can be used with <code>SQLDriverConnect</code> ODBC call to establish connection with a node.</p>
</div>
<code-tabs><code-tab data-tab='Authentication'><div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="text">DRIVER={Apache Ignite};
ADDRESS=localhost:10800;
SCHEMA=somecachename;
USER=yourusername;
PASSWORD=yourpassword;
SSL_MODE=[require|disable];
SSL_KEY_FILE=&lt;path_to_private_key&gt;;
SSL_CERT_FILE=&lt;path_to_client_certificate&gt;;
SSL_CA_FILE=&lt;path_to_trusted_certificates&gt;</code></pre>
</div>
</div></code-tab><code-tab data-tab='Specific Cache'><div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="text">DRIVER={Apache Ignite};ADDRESS=localhost:10800;CACHE=yourCacheName</code></pre>
</div>
</div></code-tab><code-tab data-tab='Default cache'><div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="text">DRIVER={Apache Ignite};ADDRESS=localhost:10800</code></pre>
</div>
</div></code-tab><code-tab data-tab='DSN'><div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="text">DSN=MyIgniteDSN</code></pre>
</div>
</div></code-tab><code-tab data-tab='Custom page size'><div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="text">DRIVER={Apache Ignite};ADDRESS=example.com:12901;CACHE=MyCache;PAGE_SIZE=4096</code></pre>
</div>
</div></code-tab></code-tabs>
</div>
</div>
<div class="sect1">
<h2 id="configuring-dsn">Configuring DSN</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The same arguments apply if you prefer to use <a href="https://en.wikipedia.org/wiki/Data_source_name">DSN</a> (Data Source Name) for connection purposes.</p>
</div>
<div class="paragraph">
<p>To configure DSN on Windows, you should use a system tool called <code>odbcad32</code> (for 32-bit [x86] systems) or <code>odbc64</code> (for 64-bit systems) which is an ODBC Data Source Administrator.</p>
</div>
<div class="paragraph">
<p>When installing the DSN tool, <em>if you use the pre-built msi file</em>, make sure you&#8217;ve installed Microsoft Visual C++ 2010 (<a href="https://www.microsoft.com/en-ie/download/details.aspx?id=5555">32-bit/x86</a> or <a href="https://www.microsoft.com/en-us/download/details.aspx?id=14632">64-bit/x64</a>).</p>
</div>
<div class="paragraph">
<p>Launch this tool, via <code>Control panel&#8594;Administrative Tools&#8594;Data Sources (ODBC)</code>. Once the ODBC Data Source Administrator is launched, select <code>Add&#8230;&#8203;&#8594;Apache Ignite</code> and configure your DSN.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="/docs/2.9.0/images/odbc_dsn_configuration.png" alt="Configuring DSN">
</div>
</div>
<div class="paragraph">
<p>To do the same on Linux, you have to locate the <code>odbc.ini</code> file. The file location varies among Linux distributions and depends on a specific Driver Manager used by the Linux distribution. As an example, if you are using unixODBC then you can run the following command which will print system wide ODBC related details:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="text">odbcinst -j</code></pre>
</div>
</div>
<div class="paragraph">
<p>Use the <code>SYSTEM DATA SOURCES</code> and <code>USER DATA SOURCES</code> properties to locate the <code>odbc.ini</code> file.</p>
</div>
<div class="paragraph">
<p>Once you locate the <code>odbc.ini</code> file, open it with the editor of your choice and add the DSN section to it, as shown below:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="text">[DSN Name]
description=&lt;Insert your description here&gt;
driver=Apache Ignite
&lt;Other arguments here...&gt;</code></pre>
</div>
</div>
</div>
</div>
<div class="copyright">
© 2020 The Apache Software Foundation.<br/>
Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation.
</div>
</article>
<nav class="right-nav" data-swiftype-index='false'>
<ul class="sectlevel1">
<li><a href="#connection-string-format">Connection String Format</a></li>
<li><a href="#supported-arguments">Supported Arguments</a></li>
<li><a href="#connection-string-samples">Connection String Samples</a></li>
<li><a href="#configuring-dsn">Configuring DSN</a></li>
</ul>
<footer>
</footer>
</nav>
</section>
<script type='module' src='/assets/js/code-copy-to-clipboard.js' async crossorigin></script>
<script>
// inits deep anchors -- needs to be done here because of https://www.bryanbraun.com/anchorjs/#dont-run-it-too-late
anchors.add('.page-docs h1, .page-docs h2, .page-docs h3:not(.discrete), .page-docs h4, .page-docs h5');
anchors.options = {
placement: 'right',
visible: 'always'
};
</script>
<!-- load google fonts async -->
<script type="text/javascript">
WebFontConfig = {
google: { families: [ 'Open+Sans:300,400,600,700&display=swap' ] }
};
(function() {
var wf = document.createElement('script');
wf.src = 'https://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
wf.type = 'text/javascript';
wf.async = 'true';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(wf, s);
})(); </script>
<script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
<script>
docsearch({
// Your apiKey and indexName will be given to you once
// we create your config
apiKey: '3eee686c0ebe39eff3baeb18c56fa5f8',
indexName: 'apache_ignite',
// Replace inputSelector with a CSS selector
// matching your search input
inputSelector: '#search-input',
// algoliaOptions: { 'facetFilters': ["version:$VERSION"] },
// Set debug to true to inspect the dropdown
debug: false,
});
</script>
<script type='module' src='/assets/js/index.js?1600286555' async crossorigin></script>
<script type='module' src='/assets/js/versioning.js?1600286555' async crossorigin></script>
</body>
</html>