Skip to content

Databricks SQL Connector

DatabricksSQLConnection

Bases: ConnectionInterface

The Databricks SQL Connector for Python is a Python library that allows you to use Python code to run SQL commands on Databricks clusters and Databricks SQL warehouses.

The connection class represents a connection to a database and uses the Databricks SQL Connector API's for Python to intereact with cluster/jobs. To find details for SQL warehouses server_hostname and http_path location to the SQL Warehouse tab in the documentation.

Parameters:

Name Type Description Default
server_hostname str

Server hostname for the cluster or SQL Warehouse

required
http_path str

Http path for the cluster or SQL Warehouse

required
access_token str

Azure AD or Databricks PAT token

required
Source code in src/sdk/python/rtdip_sdk/connectors/odbc/db_sql_connector.py
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
class DatabricksSQLConnection(ConnectionInterface):
  """
    The Databricks SQL Connector for Python is a Python library that allows you to use Python code to run SQL commands on Databricks clusters and Databricks SQL warehouses. 

    The connection class represents a connection to a database and uses the Databricks SQL Connector API's for Python to intereact with cluster/jobs.
    To find details for SQL warehouses server_hostname and http_path location to the SQL Warehouse tab in the documentation.

    Args:
        server_hostname: Server hostname for the cluster or SQL Warehouse
        http_path: Http path for the cluster or SQL Warehouse
        access_token: Azure AD or Databricks PAT token
  """
  def __init__(self, server_hostname: str, http_path: str, access_token: str) -> None:
    #call auth method
    self.connection = sql.connect(
      server_hostname=server_hostname,
      http_path=http_path,
      access_token=access_token)

  def close(self) -> None:
    """Closes connection to database."""
    try:
      self.connection.close()
    except Exception as e:
      logging.exception('error while closing connection')
      raise e

  def cursor(self) -> object:
    """
    Intiates the cursor and returns it.

    Returns:
      DatabricksSQLCursor: Object to represent a databricks workspace with methods to interact with clusters/jobs.
    """
    try:
      return DatabricksSQLCursor(self.connection.cursor())
    except Exception as e:
      logging.exception('error with cursor object')
      raise e

close()

Closes connection to database.

Source code in src/sdk/python/rtdip_sdk/connectors/odbc/db_sql_connector.py
39
40
41
42
43
44
45
def close(self) -> None:
  """Closes connection to database."""
  try:
    self.connection.close()
  except Exception as e:
    logging.exception('error while closing connection')
    raise e

cursor()

Intiates the cursor and returns it.

Returns:

Name Type Description
DatabricksSQLCursor object

Object to represent a databricks workspace with methods to interact with clusters/jobs.

Source code in src/sdk/python/rtdip_sdk/connectors/odbc/db_sql_connector.py
47
48
49
50
51
52
53
54
55
56
57
58
def cursor(self) -> object:
  """
  Intiates the cursor and returns it.

  Returns:
    DatabricksSQLCursor: Object to represent a databricks workspace with methods to interact with clusters/jobs.
  """
  try:
    return DatabricksSQLCursor(self.connection.cursor())
  except Exception as e:
    logging.exception('error with cursor object')
    raise e

DatabricksSQLCursor

Bases: CursorInterface

Object to represent a databricks workspace with methods to interact with clusters/jobs.

Parameters:

Name Type Description Default
cursor object

controls execution of commands on cluster or SQL Warehouse

required
Source code in src/sdk/python/rtdip_sdk/connectors/odbc/db_sql_connector.py
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
class DatabricksSQLCursor(CursorInterface):
  """
  Object to represent a databricks workspace with methods to interact with clusters/jobs.

  Args:
      cursor: controls execution of commands on cluster or SQL Warehouse
  """
  def __init__(self, cursor: object) -> None:
    self.cursor = cursor

  def execute(self, query: str) -> None:
    """
    Prepares and runs a database query.

    Args:
        query: sql query to execute on the cluster or SQL Warehouse
    """
    try:  
      self.cursor.execute(query)
    except Exception as e:
      logging.exception('error while executing the query')
      raise e

  def fetch_all(self) -> list: 
    """
    Gets all rows of a query.

    Returns:
        list: list of results
    """
    try:
      result = self.cursor.fetchall_arrow()
      df = result.to_pandas()
      return df
    except Exception as e:
      logging.exception('error while fetching the rows of a query')
      raise e

  def close(self) -> None: 
    """Closes the cursor."""
    try:
      self.cursor.close()
    except Exception as e:
      logging.exception('error while closing the cursor')
      raise e

close()

Closes the cursor.

Source code in src/sdk/python/rtdip_sdk/connectors/odbc/db_sql_connector.py
 99
100
101
102
103
104
105
def close(self) -> None: 
  """Closes the cursor."""
  try:
    self.cursor.close()
  except Exception as e:
    logging.exception('error while closing the cursor')
    raise e

execute(query)

Prepares and runs a database query.

Parameters:

Name Type Description Default
query str

sql query to execute on the cluster or SQL Warehouse

required
Source code in src/sdk/python/rtdip_sdk/connectors/odbc/db_sql_connector.py
71
72
73
74
75
76
77
78
79
80
81
82
def execute(self, query: str) -> None:
  """
  Prepares and runs a database query.

  Args:
      query: sql query to execute on the cluster or SQL Warehouse
  """
  try:  
    self.cursor.execute(query)
  except Exception as e:
    logging.exception('error while executing the query')
    raise e

fetch_all()

Gets all rows of a query.

Returns:

Name Type Description
list list

list of results

Source code in src/sdk/python/rtdip_sdk/connectors/odbc/db_sql_connector.py
84
85
86
87
88
89
90
91
92
93
94
95
96
97
def fetch_all(self) -> list: 
  """
  Gets all rows of a query.

  Returns:
      list: list of results
  """
  try:
    result = self.cursor.fetchall_arrow()
    df = result.to_pandas()
    return df
  except Exception as e:
    logging.exception('error while fetching the rows of a query')
    raise e