hi @noorbasha534
Do you mean something like this?
import os
from databricks import sql
from databricks.sdk.core import Config, oauth_service_principal
# --- Set environment variables or supply directly ---
DATABRICKS_HOST = os.getenv("DATABRICKS_HOST") # Databricks workspace URL
DATABRICKS_SQLWAREHOUSE_HTTP_PATH = os.getenv("DATABRICKS_SQLWAREHOUSE_HTTP_PATH") # HTTP path for SQL Warehouse
DATABRICKS_CLIENT_ID = os.getenv("DATABRICKS_CLIENT_ID") # Service principal Application (client) ID
DATABRICKS_CLIENT_SECRET = os.getenv("DATABRICKS_CLIENT_SECRET") # Service principal secret/password
# --- Optionally set values directly ---
# DATABRICKS_HOST = "https://<your-databricks-instance>.cloud.databricks.com"
# DATABRICKS_SQLWAREHOUSE_HTTP_PATH = "<your-sql-warehouse-http-path>"
# DATABRICKS_CLIENT_ID = "<your-service-principal-client-id>"
# DATABRICKS_CLIENT_SECRET = "<your-service-principal-secret>"
# Create OAuth config for Service Principal
config = Config(
host=DATABRICKS_HOST,
client_id=DATABRICKS_CLIENT_ID,
client_secret=DATABRICKS_CLIENT_SECRET,
)
# Authenticate via OIDC and connect
connection = sql.connect(
server_hostname=DATABRICKS_HOST,
http_path=DATABRICKS_SQLWAREHOUSE_HTTP_PATH,
credential_provider=oauth_service_principal(config)
)
cursor = connection.cursor()
cursor.execute("SELECT current_date() as today")
result = cursor.fetchall()
for row in result:
print(row)
cursor.close()
connection.close()