@gchandra you have a really good point.
If I Remember Correctly (IIRC), C# can get to the data I need using a service account and Personal Access Token (PAT) against the SQL Statement Execution API. I don't think I've tried ODBC yet though.
My team specifically wants me to use Delta Sharing (in this case) for two different reasons:
- Delta Sharing does not require us to spin a cluster up to get a result.
- Delta Sharing is easier to use with customers outside our organization.
It would be preferable if I could access Delta Sharing libraries directly from C# through a library or the REST API mentioned in my original post, but right now, I don't think that works so I've experimented with other means.
I managed to trigger Python code to call the Delta Sharing libraries using C#'s System.Diagnostics.Process. This works well for simple examples, but it's clunky and I'm concerned it might break in complex situations. On the other hand, I had a coworker suggest I also try calling the Delta Sharing libraries using Python.NET. Unfortunately, the latest version of Python.NET seems a little buggy to me and while it does appear to be getting back the correct data, there seem to be some "security issues" that prevent the processes it launches from terminating properly.
Yes, ODBC (or the SQL Statement Execution API) might be how I would personally work around these problems, but I'm not sure my team agrees with me. From a team perspective, it would be useful if Databricks could support a native C# library for Delta Sharing. It's currently a lot of unnecessary work to use C# to pull data from Databricks.