1.在Cloudera官网上根据impala的版本下载对应的驱动:

https://www.cloudera.com/downloads/connectors/impala/odbc/2-5-41.html

2.安装ODBC驱动

3.配置ODBC:

注意:根据windows系统的版本,在对应的ODBC应用程序下配置数据库信息

C:\Windows\System32或者C:\Windows\SysWOW64找到对应的ODBC执行文件,进行如下配置:

.NET 通过ODBC连接Impala

4. C#程序调用:


(1)ConsoleApplication1,注意:需要引入System.Data.Odbc

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Data.Odbc;

namespace ConsoleApplication1
{
   public  class Program

    {

       public static void Main(string[] args)

        {

            String constr = "DSN=MyImpala";

            String query = "select * from smes_trans.trans_queue_tri where slot_reel_id='710654562';";   

             try    {

                OdbcConnection conn = new OdbcConnection(constr);

                conn.Open();
                testConnect db = new testConnect();
                Console.WriteLine(db.Select(conn, query));
                conn.Close();
            } 
            catch (Exception e)
            {
                Console.Write(e.Message);
            }
        }
    }

}

2. testConnect

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Odbc;

using System.ComponentModel;

namespace ConsoleApplication1
{
   public class testConnect
    {
        public String Select(OdbcConnection conn, string selectSql)
        {
            String result = null;
            OdbcCommand cmd = new OdbcCommand(selectSql, conn);
            try
            {
                OdbcDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {             
                    Console.Write(reader.GetString(1) + ", ");
                    Console.WriteLine(reader.GetString(2));
                    result = reader.GetString(1) + ", " + reader.GetString(2)+ ","+ reader.GetString(3) + ", "+ reader.GetString(4) + ", " +reader.GetString(5) + ", ";
                }
            }
            catch(Exception s)
            {
                Console.WriteLine(s.Message);
            }          
            return result;

        }

异常问题记录:

1.ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程

https://blog.csdn.net/grape875499765/article/details/49304559

总结:32位和64的驱动都安装






相关文章: