如何使用 JDBC/ODBC 驱动程序从 C# .NET 正确连接到 Azure Databricks 仓库

问题描述 投票:0回答:1

我们正在尝试在 C# .NET 控制台应用程序和 Azure Databricks 仓库之间建立连接。 我们已按照以下说明设置和配置 ODBC 驱动程序:

https://docs.databricks.com/en/integrations/jdbc-odbc-bi.html#odbc-windows

这是控制台应用程序代码:

using System;
using System.Data;
using System.Data.Odbc;

namespace DatabricksJdbcExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a connection string to the Databricks warehouse.
           // string connectionString = "odbc:databricks://adb-6817616643364.19.azuredatabricks.net:443/default;transportMode=http;ssl=1;AuthMech=3;httpPath=/sql/1.0/warehouses/827c2f60de39fa0e;";
            string connectionString = "DSN=databricksfiledsn";
            // Create a new OdbcConnection object.
            using (OdbcConnection connection = new OdbcConnection(connectionString))
                
            {
                // Open the connection.
                connection.Open();

                // Create a new OdbcCommand object.
                OdbcCommand command = new OdbcCommand("SELECT * FROM hive_metastore.demos_dlt_loans_eugene_goldberg117.historical_txs", connection);

                // Execute the command and get the results.
                OdbcDataReader reader = command.ExecuteReader();

                // Print the results to the console.
                while (reader.Read())
                {
                    for (int i = 0; i < reader.FieldCount; i++)
                    {
                        Console.Write(reader.GetValue(i) + "\t");
                    }
                    Console.WriteLine();
                }

                // Close the reader.
                reader.Close();

                // Close the connection.
                connection.Close();
            }
        }
    }
}

请注意,我们有两种连接字符串变体:第一个具有完整的连接字符串,而下面的一个则引用我们在开始时设置的 ODBC DSN。 有趣的是,这两种方法都不适合我们,因为我们在使用任一 connectionString 变体时都会收到相同的错误消息:

System.Data.Odbc.OdbcException:  Data source not found and no default driver specified

配置它使其工作的正确方法是什么?

jdbc odbc databricks azure-databricks
1个回答
0
投票

添加 DSN 设置,如下所示:

enter image description here

Password 字段中,提供您创建的 Databricks 访问令牌。它应该看起来像这样:

dapi..........

在 Thrift Transport 选项中选择

HTTP

HTTP 选项中,添加来自 Databricks 的 HTTP 路径。 在 SSL 选项中,启用 SSL。

请参阅此 Stack Overflow 解决方案

输出:

enter image description here

如果您想使用连接字符串,请将其格式化如下:

Driver=<path-to-driver>;Host=<server-hostname>;Port=443;HTTPPath=<http-path>;ThriftTransport=2;SSL=1;AuthMech=3;UID=token;PWD=<personal-access-token>

示例:

Driver={Simba Spark ODBC Driver};Host=adb-436423333334855.15.azuredatabricks.net;Port=443;HTTPPath=sql/protocolv1/o/234456634855/1111-3456-jdcbhj2;ThriftTransport=2;SSL=1;AuthMech=3;UID=token;PWD=dapi......"

输出:

enter image description here

确保安装 ODBC 驱动程序

© www.soinside.com 2019 - 2024. All rights reserved.