hive odbc 驱动配置成功后,通过c#访问就变得比较简单了,分为查询与更新操作,直接附上测试代码。在此过程中需要注意c#工程编译的目标平台

  • 读写访问代码示例:

    1. public class HiveOdbcClient
    2. {
    3. /// <summary>
    4. ///
    5. /// </summary>
    6. public static HiveOdbcClient Current
    7. {
    8. get { return new HiveOdbcClient(); }
    9. }
    10.  
    11. /// <summary>
    12. ///
    13. /// </summary>
    14. /// <param name="context"></param>
    15. public void ExcuteNoQuery(string dns, string sql)
    16. {
    17. OdbcConnection conn = null;
    18.  
    19. try
    20. {
    21. conn = new OdbcConnection(dns);
    22. conn.Open();
    23. OdbcCommand cmd = new OdbcCommand(sql, conn);
    24. cmd.ExecuteNonQuery();
    25. }
    26. catch (Exception ex)
    27. {
    28. throw ex;
    29. }
    30. finally
    31. {
    32. if (null != conn)
    33. {
    34. conn.Close();
    35. }
    36. }
    37. }
    38.  
    39. /// <summary>
    40. ///
    41. /// </summary>
    42. /// <param name="context"></param>
    43. /// <returns></returns>
    44. public DataSet Query(string dns, string sql,string tblName = "tbl")
    45. {
    46. DataSet set = new DataSet();
    47. OdbcConnection conn = null;
    48.  
    49. try
    50. {
    51. conn = new OdbcConnection(dns);
    52. conn.Open();
    53. OdbcCommand cmd = conn.CreateCommand();
    54. cmd.CommandText = sql;
    55. OdbcDataAdapter adapter = new OdbcDataAdapter(cmd);
    56. adapter.Fill(set, tblName);
    57. }
    58. catch (Exception ex)
    59. {
    60. throw ex;
    61. }
    62. finally
    63. {
    64. if (null != conn)
    65. {
    66. conn.Close();
    67. }
    68. }
    69.  
    70. return set;
    71. }
    72. }
  • 测试:新建一个控制台工程,测试表创建及数据插入,示例代码如下:
    1. class Program
    2. {
    3.  
    4. static void Main(string[] args)
    5. {
    6. Console.WriteLine("按任意键开始进行建表及数据插入测试");
    7. Console.ReadKey();
    8.  
    9. string dns = "DSN=myhive;UID=hive;PWD=";
    10.  
    11. string sql = "create table Employee(ID string,Code string,Name string)";
    12. HiveOdbcClient.Current.ExcuteNoQuery(dns,sql);
    13.  
    14. sql = "insert into table Employee values('002','002','zhangShan');";
    15. HiveOdbcClient.Current.ExcuteNoQuery(dns, sql);
    16.  
    17. Console.WriteLine("数据插入完成,按任意键退出");
    18. Console.ReadKey();
    19. }
    20.  
    21. }
  • 使用上一章介绍的SQurriel 工具,执行: Select * from employee  ,显示代码中插入的数据则OK

Hive(四):c#通过odbc访问hive的更多相关文章

  1. Spark访问Hive表

    知识点1:Spark访问HIVE上面的数据 配置注意点:. 1.拷贝mysql-connector-java-5.1.38-bin.jar等相关的jar包到你${spark_home}/lib中(sp ...

  2. 其它语言通过HiveServer2访问Hive

    先解释一下几个名词: metadata :hive元数据,即hive定义的表名,字段名,类型,分区,用户这些数据.一般存储关系型书库mysql中,在测试阶段也可以用hive内置Derby数据库. me ...

  3. 【hive】——Hive四种数据导入方式

    Hive的几种常见的数据导入方式这里介绍四种:(1).从本地文件系统中导入数据到Hive表:(2).从HDFS上导入数据到Hive表:(3).从别的表中查询出相应的数据并导入到Hive表中:(4).在 ...

  4. Spark&Hive:如何使用scala开发spark访问hive作业,如何使用yarn resourcemanager。

    背景: 接到任务,需要在一个一天数据量在460亿条记录的hive表中,筛选出某些host为特定的值时才解析该条记录的http_content中的经纬度: 解析规则譬如: 需要解析host: api.m ...

  5. SparkSQL On Yarn with Hive,操作和访问Hive表

    转载自:http://lxw1234.com/archives/2015/08/466.htm 本文将介绍以yarn-cluster模式运行SparkSQL应用程序,访问和操作Hive中的表,这个和在 ...

  6. 使用spark访问hive错误记录

    在spark集群中执行./spark-shell时报以下错误: 18/07/23 10:02:39 WARN DataNucleus.Connection: BoneCP specified but ...

  7. Hive四种数据导入方式介绍

    问题导读 1.从本地文件系统中通过什么命令可导入数据到Hive表? 2.什么是动态分区插入? 3.该如何实现动态分区插入? 扩展: 这里可以和Hive中的三种不同的数据导出方式介绍进行对比? Hive ...

  8. spark on yarn模式下配置spark-sql访问hive元数据

    spark on yarn模式下配置spark-sql访问hive元数据 目的:在spark on yarn模式下,执行spark-sql访问hive的元数据.并对比一下spark-sql 和hive ...

  9. pyinstaller打包python源程序访问hive

    1.需求 使用hvie server一段时间后,业务部门需要自己不定时的查询业务数据,之前这一块都是他们提需求我们来做,后来发现这样重复一样的工作放在我们这边做是在没有效率,遂提出给他们工具或者web ...

随机推荐

  1. C# 如何执行bat文件 传参数

    C# 如何执行bat文件 传参数 分类: C# basic 2011-04-25 18:55 3972人阅读 评论(0) 收藏 举报 c#stringpathoutput Process p = ne ...

  2. 英文VS2010安装中文版MSDN文档方法

    英文VS2010安装中文版MSDN文档方法 2010-06-01 11:52 by 李永京, 51409 阅读, 50 评论, 收藏, 编辑 在2010年4月12号发布Visual Studio 20 ...

  3. 图例解析四大UML关系【转】

    转自http://developer.51cto.com/art/201007/209644.htm 本文和大家重点讨论一下UML关系图,UML中有五类图,共有九种图形,UML类之间的UML关系图你是 ...

  4. nginx的启动,停止命令

    停止操作停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文 章)来进行的步骤1:查询nginx主进程号ps -ef | grep nginx在进程列表里 面找master进程,它的编 ...

  5. php <? ?> <?php ?>

    /******************************************************************** * php <? ?> <?php ?&g ...

  6. 在yii中使用分页

    yii中使用分页很方便,如下两种方法: 在控制器中: 1. $criteria = new CDbCriteria(); //new cdbcriteria数据库$criteria->id = ...

  7. jbrowse 的配置与使用gff, vcf, fa, bed, bam

    1,jbrowse 是什么东西 ? JBrowse is a genome browser with a fully dynamic AJAX interface, being developed a ...

  8. Phonegap开发的前后台数据交互

    在用Phonegap开发时,需要进行前后台数据交互,在网上找资料,很多东西让人一头雾水,最后借鉴了下面的博客: http://blog.sina.com.cn/s/blog_681929ae01017 ...

  9. 关于typedef的用法总结(转)

    不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中.typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些 ...

  10. 使用使用for in 语句,并对数组中元素进行了增删操作,报错却不知怎么办?

    解决方案: 在forin遍历过程中不要对遍历数据进行修改, for in 的时候如果在操作内移除会打乱 他的count 导致出错,如果要修改尽量用for循环