尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Python - GaussDB table sync to Hive

Python - GaussDB table sync to Hive
📅 发布时间:2026/6/20 13:58:27
Python - GaussDB table sync to Hive

 

import psycopg2
from datetime import date, datetimeSRC_TABLE = "aaa"
TARGET_TABLE = "bbb"# ----------------------------
# Step 1: Connect to GaussDB
# ----------------------------
src_conn = psycopg2.connect(host="1.2.3.4",port="8000",database="source_db",user="user1",password="password1"
)
src_cur = src_conn.cursor()
src_cur.execute("SELECT id, name, salary FROM employees;")# ----------------------------
# Step 2: Initialize Hive connector
# ----------------------------
from hive_connector import Connector
hive_conn = Connector()def to_hive_value(v):if v is None:return "NULL"elif isinstance(v, str):return f"'{v}'"elif isinstance(v, date) and not isinstance(v, datetime):return f"'{v.strftime('%Y-%m-%d')}'"elif isinstance(v, datetime):return f"'{v.strftime('%Y-%m-%d %H:%M:%S')}'"elif isinstance(v, dict):# store as string "{}" or convert to Hive map()return "'{}'"elif isinstance(v, list) or isinstance(v, tuple):# could convert to Hive array() if schema requiresreturn f"array({', '.join(to_hive_value(x) for x in v)})"else:return str(v)# ----------------------------
# Step 3: Fetch & Insert
# ----------------------------
BATCH_SIZE = 500  # send multiple rows per INSERT if neededwhile True:rows = src_cur.fetchmany(BATCH_SIZE)if not rows:break# Convert each row into a Hive VALUES tuplevalues_list = []for row in rows:# Make sure to escape single quotes in string valuesrow_values = [to_hive_value(v) for v in row]if row_values:values_list.append(f"({', '.join(row_values)})")# Send a single INSERT statement to Hiveif values_list:insert_sql = f"INSERT INTO {TARGET_TABLE} VALUES {', '.join(values_list)}"  # DO NOT add a ';' at the end.
        hive_conn.run_sql(insert_sql)# ----------------------------
# Step 4: Cleanup
# ----------------------------
src_cur.close()
src_conn.close()

 

相关新闻

  • 很烦不知道 自己以后要做什么,工作不会很稳定。感觉有很多东西要学习 但是 也有很多东西 不会 不知道咋办了
  • 揭秘“牛牛透视”
  • 从 Web 到 LLM,多入口、多链路的自动化威胁如何防护? - 详解

最新新闻

  • Clawdbot本地AI网关:绿联NAS上的数字员工部署指南
  • SPI通信协议深度解析:时序、错误处理与实战配置
  • TradingAgents-CN:可审计的金融AI Agent工程化部署指南
  • 终极指南:如何用免费开源工具轻松抢到B站会员购热门门票
  • 无锡家电维修平台推荐:本地用户反馈较好的几家服务商深度实测对比——2026年6月最新发布 - 一步到家
  • Web自动化测试工具全解析:从Selenium到Playwright的实战选型指南

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号