Python脚本同步Hive表结构到MySQL

  • 环境说明:pycharm2022.3.2连接虚拟机远程环境,具体详见上一篇。
import pymysql
from pyhive import hive

# 连接Hive数据库
hive_conn = hive.Connection(host='hadoop102',
                            port=10000,
                            database='db_hive')
hive_cursor = hive_conn.cursor()

# 连接MySQL数据库
mysql_conn = pymysql.connect(host='hadoop102', user='xxxx',
                             password='xxxxxx', database='xxx')
mysql_cursor = mysql_conn.cursor()

# 获取Hive表结构信息
hive_cursor.execute('SHOW TABLES')
tables = hive_cursor.fetchall()
# [('category_info',) , ('order_info',), ('user_login_detail',)]

# 同步表结构到MySQL
for table_name in tables:
    print(f'DESCRIBE {table_name[0]}')
    hive_cursor.execute(f'DESCRIBE {table_name[0]}')
    columns = hive_cursor.fetchall()

    create_table_sql = f'CREATE TABLE {table_name[0]} ('
    for column in columns:
        # 进行数据类型映射(以下数据类型转换可根据具体内容做调整,本案例仅用于简单的表结构同步)
        if column[1].startswith('string'):
            data_type = 'VARCHAR(255)'
        elif column[1].startswith('int'):
            data_type = 'INT'
        elif column[1].startswith('double'):
            data_type = 'DOUBLE'
        else:
            # 其他类型映射为VARCHAR(255)
            data_type = 'VARCHAR(255)'

        create_table_sql += f'{column[0]} {data_type}, '
        print(create_table_sql)

    create_table_sql = create_table_sql[:-2] + ')'
    print(create_table_sql)

    mysql_cursor.execute(create_table_sql)

# 关闭连接
hive_cursor.close()
hive_conn.close()
mysql_cursor.close()
mysql_conn.close()

相关推荐

  1. Python脚本同步Hive结构MySQL

    2024-05-13 09:18:13       13 阅读
  2. mysql創建hive腳本

    2024-05-13 09:18:13       18 阅读
  3. python 比较 mysql 结构差异

    2024-05-13 09:18:13       9 阅读
  4. Spark SQL将Hive中的数据写入MySQL数据库中

    2024-05-13 09:18:13       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-13 09:18:13       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-13 09:18:13       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-13 09:18:13       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-13 09:18:13       20 阅读

热门阅读

  1. 深度神经网络详解

    2024-05-13 09:18:13       10 阅读
  2. TCP与HTTP的关系?

    2024-05-13 09:18:13       8 阅读
  3. Elasticsearch框架学习的难点和重点有哪些

    2024-05-13 09:18:13       11 阅读
  4. HttpServletRequest对象

    2024-05-13 09:18:13       12 阅读
  5. Cloudera:大数据领域的领航者及其安装部署指南

    2024-05-13 09:18:13       12 阅读
  6. 1.4. 离散时间鞅-鞅的Lp收敛,鞅与停时 (1)

    2024-05-13 09:18:13       11 阅读