Databricks C++ SDK 0.2.4
Interact with Databricks via an SDK
Loading...
Searching...
No Matches
databricks::Client Class Reference

Main client class for Databricks SQL operations. More...

#include <client.h>

Classes

class  Builder
 Builder pattern for constructing Client with modular configuration. More...
 
struct  Parameter
 Parameter for parameterized queries. More...
 

Public Member Functions

 ~Client ()
 Destructor.
 
 Client (const Client &)=delete
 
Clientoperator= (const Client &)=delete
 
 Client (Client &&) noexcept
 
Clientoperator= (Client &&) noexcept
 
const AuthConfigget_auth_config () const
 Get the authentication configuration.
 
const SQLConfigget_sql_config () const
 Get the SQL configuration.
 
const PoolingConfigget_pooling_config () const
 Get the pooling configuration.
 
bool is_configured () const
 Check if the client is configured with valid credentials.
 
std::vector< std::vector< std::string > > query (const std::string &sql, const std::vector< Parameter > &params={})
 Execute a SQL query against Databricks.
 
void connect ()
 Explicitly establish connection to Databricks.
 
std::future< void > connect_async ()
 Asynchronously establish connection to Databricks.
 
std::future< std::vector< std::vector< std::string > > > query_async (const std::string &sql, const std::vector< Parameter > &params={})
 Asynchronously execute a SQL query.
 
void disconnect ()
 Disconnect from Databricks.
 

Friends

class Builder
 

Detailed Description

Main client class for Databricks SQL operations.

This class provides a clean interface for executing SQL queries against Databricks. It uses a modular configuration approach with AuthConfig, SQLConfig, and PoolingConfig.

Example usage:

// Simple usage with environment configuration
.build();
// Advanced usage with explicit configuration
auth.host = "https://your-workspace.cloud.databricks.com";
auth.token = "your_token";
sql.http_path = "/sql/1.0/warehouses/abc123";
.with_auth(auth)
.with_sql(sql)
.with_pooling({.enabled = true, .max_connections = 20})
.build();
auto results = client.query("SELECT * FROM my_table");
Builder pattern for constructing Client with modular configuration.
Definition client.h:74
Builder & with_auth(const AuthConfig &auth)
Set authentication configuration.
Builder & with_sql(const SQLConfig &sql)
Set SQL configuration.
Builder & with_pooling(const PoolingConfig &pooling)
Set connection pooling configuration (optional)
Builder & with_environment_config(const std::string &profile="DEFAULT")
Load configuration from environment (profile + env vars)
Client build()
Build the Client.
Core authentication configuration shared across all Databricks features.
Definition config.h:16
std::string host
Databricks workspace URL (e.g., "https://your-workspace.cloud.databricks.com")
Definition config.h:17
std::string token
Authentication token (personal access token or OAuth token)
Definition config.h:18
SQL-specific configuration for Databricks SQL operations.
Definition config.h:72
std::string http_path
HTTP path for SQL warehouse/cluster (e.g., "/sql/1.0/warehouses/abc123")
Definition config.h:73

Definition at line 54 of file client.h.

Constructor & Destructor Documentation

◆ ~Client()

databricks::Client::~Client ( )

Destructor.

◆ Client() [1/2]

databricks::Client::Client ( const Client )
delete

◆ Client() [2/2]

databricks::Client::Client ( Client &&  )
noexcept

Member Function Documentation

◆ connect()

void databricks::Client::connect ( )

Explicitly establish connection to Databricks.

Normally not needed as query() will auto-connect. Useful for validating credentials or pre-warming connection.

Exceptions
std::runtime_errorif connection fails

◆ connect_async()

std::future< void > databricks::Client::connect_async ( )

Asynchronously establish connection to Databricks.

Non-blocking connection useful for reducing perceived latency. Call wait() on returned future before executing queries, or query() will automatically wait.

Returns
std::future<void> Future that completes when connected

◆ disconnect()

void databricks::Client::disconnect ( )

Disconnect from Databricks.

◆ get_auth_config()

const AuthConfig & databricks::Client::get_auth_config ( ) const

Get the authentication configuration.

Returns
const AuthConfig& Reference to auth configuration

◆ get_pooling_config()

const PoolingConfig & databricks::Client::get_pooling_config ( ) const

Get the pooling configuration.

Returns
const PoolingConfig& Reference to pooling configuration

◆ get_sql_config()

const SQLConfig & databricks::Client::get_sql_config ( ) const

Get the SQL configuration.

Returns
const SQLConfig& Reference to SQL configuration

◆ is_configured()

bool databricks::Client::is_configured ( ) const

Check if the client is configured with valid credentials.

Returns
true if configured, false otherwise

◆ operator=() [1/2]

Client & databricks::Client::operator= ( Client &&  )
noexcept

◆ operator=() [2/2]

Client & databricks::Client::operator= ( const Client )
delete

◆ query()

std::vector< std::vector< std::string > > databricks::Client::query ( const std::string &  sql,
const std::vector< Parameter > &  params = {} 
)

Execute a SQL query against Databricks.

This method supports both static queries and parameterized queries for security.

Static Query (no parameters):

auto results = client.query("SELECT * FROM my_table LIMIT 10");

Parameterized Query (RECOMMENDED for dynamic values): Use placeholders (?) and provide parameters to prevent SQL injection:

auto results = client.query(
"SELECT * FROM users WHERE id = ? AND name = ?",
{{"123"}, {"John"}}
);
Parameters
sqlThe SQL query to execute (use ? for parameter placeholders)
paramsOptional vector of parameter values (default: empty = static query)
Returns
Results as a 2D vector of strings (rows and columns)
Warning
When using dynamic values (user input, variables), always use parameters to prevent SQL injection attacks. Never concatenate strings into SQL.

◆ query_async()

std::future< std::vector< std::vector< std::string > > > databricks::Client::query_async ( const std::string &  sql,
const std::vector< Parameter > &  params = {} 
)

Asynchronously execute a SQL query.

Parameters
sqlThe SQL query to execute
paramsOptional vector of parameter values
Returns
std::future with query results

Friends And Related Symbol Documentation

◆ Builder

friend class Builder
friend

Definition at line 271 of file client.h.


The documentation for this class was generated from the following file: