Hive(四):c#通过odbc访问hive
天戈朱 2016-08-12 原文
hive odbc 驱动配置成功后,通过c#访问就变得比较简单了,分为查询与更新操作,直接附上测试代码。在此过程中需要注意c#工程编译的目标平台
- 读写访问代码示例:
- public class HiveOdbcClient
- {
- /// <summary>
- ///
- /// </summary>
- public static HiveOdbcClient Current
- {
- get { return new HiveOdbcClient(); }
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="context"></param>
- public void ExcuteNoQuery(string dns, string sql)
- {
- OdbcConnection conn = null;
- try
- {
- conn = new OdbcConnection(dns);
- conn.Open();
- OdbcCommand cmd = new OdbcCommand(sql, conn);
- cmd.ExecuteNonQuery();
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (null != conn)
- {
- conn.Close();
- }
- }
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="context"></param>
- /// <returns></returns>
- public DataSet Query(string dns, string sql,string tblName = "tbl")
- {
- DataSet set = new DataSet();
- OdbcConnection conn = null;
- try
- {
- conn = new OdbcConnection(dns);
- conn.Open();
- OdbcCommand cmd = conn.CreateCommand();
- cmd.CommandText = sql;
- OdbcDataAdapter adapter = new OdbcDataAdapter(cmd);
- adapter.Fill(set, tblName);
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (null != conn)
- {
- conn.Close();
- }
- }
- return set;
- }
- }
- 测试:新建一个控制台工程,测试表创建及数据插入,示例代码如下:
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine("按任意键开始进行建表及数据插入测试");
- Console.ReadKey();
- string dns = "DSN=myhive;UID=hive;PWD=";
- string sql = "create table Employee(ID string,Code string,Name string)";
- HiveOdbcClient.Current.ExcuteNoQuery(dns,sql);
- sql = "insert into table Employee values('002','002','zhangShan');";
- HiveOdbcClient.Current.ExcuteNoQuery(dns, sql);
- Console.WriteLine("数据插入完成,按任意键退出");
- Console.ReadKey();
- }
- }
- 使用上一章介绍的SQurriel 工具,执行: Select * from employee ,显示代码中插入的数据则OK
C#通过ODBC方式连接Hive方法
xtf__moji 2019-10-14 17:04:32 467 收藏
分类专栏: 大数据 C#
版权
C#通过ODBC方式连接Hive方法
C#连接hive,有两种办法:
方法一:使用驱动程序,增加dll,连接语句中写好db路径,用户名,密码。
方法二:使用数据源,在windows和vs种配置好数据源。
使用方法一的时候,配置失败了,有个dll文件没法引用,所以使用了方法二。
1,安装软件
MapRHiveODBC32.msi
MapRHiveODBC64.msi
根据自己主机的类型选择安装32位或者是64位版本。
2,配置数据源
路径一,MapRHiveODBC安装目录,打开 administrator。
路径二,控制面板-设置数据源。
用户DSN--添加--MapR Hive ODBC Connector
输入用户名,密码。
点击test,成功,则可以。
3,visual studio 配置
视图--服务器资源管理器--数据连接--添加连接
选择自己刚刚配置的dsn。
测试连接,通过,那就可以了。
4,代码使用
代码中增加引用:using System.Data.Odbc;
使用:ODBC类库,OdbcConnection,OdbcCommand,OdbcDataReader,最后 odbcConn.Close();
Odbc支持普通SQL,直接写普通SQL查询就可以了。
连接的时候:
string dns = "DSN=MapR_Hive_ODBC";
OdbcConnection odbcConn = new OdbcConnection(dns);
注意:
操作系统最好使用win7,之前我的系统是xp,折腾了很久没弄起来。
参考资料:
C#使用ODBC连接MySql数据库
https://blog.csdn.net/small_bottle_cap/article/details/93846594
使用.net通过odbc访问Hive
https://cloud.tencent.com/developer/article/1350010
————————————————
版权声明:本文为CSDN博主「xtf__moji」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/GoOnDrift/article/details/102552129