At the moment using ConnectorX and Polars to extract data from SQL Server into a Polars DataFrame. I want to remove the SQL credentials and update to using a managed identity. Do ConnectorX and Polars have support for Azure managed identities?
import os
from datetime import datetime, timedelta
from dotenv import load_dotenv
import polars as pl
from timeit import default_timer as timer
load_dotenv()
def extract_from_db():
env_upper = os.environ["envUpp"]
env_lower = env_upper.lower()
username = os.environ["UID"]
password = os.environ["PWD"]
host = f"my_host"
port = "1433"
db = f"nyd_db"
view = "my.view"
conn = f"mssql://{username}:{password}@{host}:{port}/{db}?encrypt=true"
datetime_limit = str(datetime.today() - timedelta(days=365))[:-3]
query = f"SELECT * from {view} WHERE RecordTime > '{datetime_limit}'"
print(query)
start = timer()
data = pl.read_sql(query, conn)
end = timer()
print("time taken to load data into df=", timedelta(seconds=end - start))
num_of_rows = data.shape[0]
num_of_cols = data.shape[1]
print(f"number of columns in df: {num_of_cols}")
print(f"number of rows in df: {num_of_rows}")
return data`
1