`
chakey
  • 浏览: 363927 次
  • 性别: Icon_minigender_1
  • 来自: 水星
社区版块
存档分类
最新评论

[7] 编写Python脚本将Hive的运算结果保存到MySQL数据库中(1)

    博客分类:
  • Hive
阅读更多

 

编写Python脚本将Hive的运算结果保存到MySQL数据库中(1)


很多情况下,需要将Hive中的运算结果保存到MySQL数据库中,可以通过简单的Python脚本来实现。

例子1:如果获取Hive查询语句的返回值

#encoding=utf-8

from hive_service import ThriftHive

from hive_service.ttypes import HiveServerException

from thrift import Thrift

from thrift.transport import TSocket

from thrift.transport import TTransport

from thrift.protocol import TBinaryProtocol


def hiveExe(sql):

try:

   transport = TSocket.TSocket('10.20.134.199', 10000) //Hive所在的服务器IP和使用的端口

   transport = TTransport.TBufferedTransport(transport)

   protocol = TBinaryProtocol.TBinaryProtocol(transport)

   client = ThriftHive.Client(protocol)

   transport.open()

   client.execute(sql)

   print "The return value is : " client.fetchOne() 

   transport.close()

except Thrift.TException, tx:

   print '%s' % (tx.message)


if __name__ == '__main__':

print hiveExe("select count(userid) as cnt from user_table where day ='20110120' ")



例子2:用户Hive查询结果的返回值更新MySQL指定表指定字段

def mysqlExe(sql):

        conn = MySQLdb.connect (host = "10.10.111.111",

                                   user = "user",

                                   passwd = "password",

                                   db = "database")

        cursor = conn.cursor ()

        cursor.execute (sql)

        cursor.close ()

        conn.close ()


def hiveExeUpdate(sql,db,tableName,column,date):

try:

   transport = TSocket.TSocket('10.20.134.199', 10000)

   transport = TTransport.TBufferedTransport(transport)

   protocol = TBinaryProtocol.TBinaryProtocol(transport)

   client = ThriftHive.Client(protocol)

   transport.open()

   client.execute(sql)

   update_sql= " update  " + tableName + " set " + column + " = " + client.fetchOne() + " where id = '" + date + "'"

   mysqlExe(update_sql) //执行一条SQL语句

   transport.close()

       except Thrift.TException, tx:

   print '%s' % (tx.message)





 

0
2
分享到:
评论
1 楼 jiedushi 2011-06-28  
No module named hive_service  请问是什么原因呢
我的hive --service hiveserver也执行成功了

相关推荐

    如何在python中写hive脚本

    在Python中编写Hive脚本主要是为了方便地与Hadoop HIVE数据仓库进行交互,这样可以在数据分析和机器学习流程中无缝地集成大数据处理步骤。以下将详细介绍如何在Python环境中执行Hive查询和管理Hive脚本。 1. **直接...

    Hive安装,使用MySQL作为元数据库

    本教程将详细介绍如何安装Hive,并配置使用MySQL作为其元数据库。 首先,我们来理解元数据库的作用。元数据库存储了关于Hive表、分区、列等对象的元数据,这些元数据是执行Hive查询的关键。通常,Hive默认使用Derby...

    java操作Hive源码之HiveJDBC实例(mysql数据库)

    通过以上步骤,你将能够使用Java通过HiveJDBC连接到MySQL作为元数据存储的Hive服务,并执行各种数据库操作。记住,理解每个组件的工作原理以及它们之间的交互对于有效的问题定位和性能优化至关重要。

    python连接MySQL数据库问题.docx

    本文将详细介绍如何使用 Python 连接到 MySQL 数据库,并解释 `cursor()`、`execute()` 和 `fetchall()` 方法的具体作用。 #### 一、Python 连接 MySQL 数据库的基本步骤 1. **安装 MySQLdb 库** - 在 Python 中...

    python脚本访问http接口数据写入hive表

    python脚本访问http接口数据写入hive表

    Hive metastore 使用达梦数据库存储元数据

    通常,Hive元数据默认存储在MySQL或Derby等关系型数据库中。然而,为了适应更复杂的业务需求和更高的性能,我们可以选择将Hive元数据存储在达梦数据库中。本文将详细介绍如何配置Hive metastore以使用达梦数据库。 ...

    python脚本中hivesql字段注释格式化

    # 此脚本查找以“--”开头的注释 # ----------------------------------------------示例----------------------------------------- # -- 查找姓名为张三的学生信息 # insert overwrite table student_search # ...

    hive1.2.1用mysql作为元数据库搭建DT-大数据.pdf

    上述内容涉及到的Hadoop生态系统中的Hive组件与MySQL数据库的结合使用,是大数据领域中常见的一种实践。在Hadoop生态中,Hive允许用户不必深入学习Java MapReduce编程即可操作存储在HDFS中的大规模数据集。通过上述...

    DataX数据的迁移(MySQL、HDFS,Hive)

    1.将Mysql中的数据迁移到Hdfs文件系统中,然后通过Hive加载HDFS文件系统中的数据值 2.将Hive中的数据迁移到指定Mysql数据库中 注意点: 1.数据迁移的过程中,由于hive的Null值存储为"\N",Mysql存储为NULL值,二者...

    Linux hadoop,hive,javajdk,mysql数据库等压缩包

    在IT行业中,Linux、Hadoop、Hive、Java JDK以及MySQL是大数据处理和存储的关键组件。这个压缩包包含了搭建一个完整的数据处理环境所需的基础软件,接下来我们将深入探讨这些技术及其相互之间的关系。 首先,让我们...

    cloudera manager中添加hive数据库使用mysql的配置步骤

    在Cloudera Manager中配置Hive使用MySQL数据库涉及多个步骤,从卸载CentOS默认MySQL到配置完毕,下面详细说明每一步的知识点。 首先,确保在添加Hive数据库前,系统中不存在先前安装的MySQL版本。使用命令rpm -qa |...

    hive介绍 安装 和 mysql 数据库的安装

    - **加载数据**:将数据文件加载到HDFS中相应的表路径下。 - **执行查询**:使用HQL查询数据。 - **查看结果**:查询完成后,结果可以存储在HDFS中或导出到其他位置。 ### MySQL数据库安装 MySQL是一款开源的关系...

    mysql数据抽取,自动生成hive建表语句

    7. **数据导入**:使用ETL工具(如Apache Sqoop)或编写脚本,将MySQL数据导入到Hive中。这一步可能涉及数据格式转换、数据清洗等操作。 8. **验证与优化**:导入数据后,进行数据校验,确保数据一致性。根据业务...

    Python 连接Hive离线方式1

    在测试用例中,我们使用 Python 连接 Hive 数据库,实现数据交互。我们首先连接 Hive 数据库,然后执行查询语句,最后获取查询结果。 Python 连接 Hive 离线方式1 是指使用 pyhs2 库连接 Hive 数据库的离线方式。...

    hive3.1.2+mysql驱动.zip

    2. 将"Hive 3.1.2+mysql驱动.zip"中的MySQL驱动JAR文件(通常为`mysql-connector-java.jar`)添加到Hive的类路径中。 3. 修改Hive的配置文件`hive-site.xml`,设置`javax.jdo.option.ConnectionURL`、`javax.jdo....

    8、NIFI综合应用场景-NiFi监控MySQL binlog进行实时同步到hive

    在本场景中,我们将探讨如何使用NiFi来实时监控MySQL数据库的binlog(二进制日志),并将其中的变更事件同步到Hive数据仓库。由于Hive的插入操作效率较低,这种方案通常不用于直接的实时写入,但可以作为数据流处理...

    hive-3.1.2&mysql-5.7.2安装包.rar

    接着,将 MySQL JDBC 驱动添加到 Hive 的类路径中,以便 Hive 可以通过 JDBC 连接到 MySQL 数据库。 对于 MySQL,你需要先解压 RPM 包,然后使用 `yum` 或 `rpm` 命令安装 MySQL 服务。配置 MySQL 服务器,创建用户...

    Hive4--HIVE元数据库.pdf

    元数据库通常存储在关系数据库管理系统(RDBMS)中,例如MySQL或Derby。在本例中,我们以Derby为例来探讨Hive元数据库的工作原理。 **1. Derby作为Hive元数据库** Derby是一种轻量级、嵌入式Java数据库,常被用于...

    HIVE数据库解析vc编写

    在IT行业中,HIVE数据库通常指的是Apache Hadoop的Hive组件,它是一个基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,使得大数据处理变得更加简单。而对于VC(Visual C++...

    数据库工具连接hive的驱动包

    在IT行业中,数据库管理和分析是至关重要的任务,而Hive作为一个大数据处理的仓库系统,它提供了对结构化数据的查询和分析能力。当需要通过图形化的数据库管理工具,如DBeaver,与Hive进行交互时,就需要用到特定的...

Global site tag (gtag.js) - Google Analytics