GaussDB(DWS)流式数据入库实践一:Python接口

网友投稿 880 2022-05-28

GaussDB(DWS)尚未宣称支持psycopg2开源Python接口,但实际上研发内部测试框架一直在使用Python接口,并没有功能问题,经过系统性测试和多平台验证即可对外支持。

GaussDB(DWS)流式数据入库实践一:Python接口

GaussDB(DWS)数据入库方式主要有三种:INSERT/COPY/FDW,三者性能INSERT最差,FDW(gds外表/obs外表)性能最好,但在很多客户场景下都是流式数据,不额外落盘,需要直接入库,这种场景下可以采用copy方式入库,Python接口同样支持copy_from接口,示例程序如下,实际应用中可以通过StringIO来进行数据的缓存,本次举例只是给出copy_from的使用指导:

#!/usr/bin/env python # -*- coding: UTF-8 -*- import sys import psycopg2 import os def copy_from_file(conn, table): """ Here we are going to load the csv file and use copy_from() to copy it to the table """ tmp_df = "./tpcds_1x/store_sales.dat" f = open(tmp_df, 'r') cursor = conn.cursor() try: cursor.copy_from(f, table, sep=",") conn.commit() except (Exception, psycopg2.DatabaseError) as error: print("Error: %s" % error) conn.rollback() cursor.close() return 1 print("copy_from_file() done") cursor.close() #----------------------------------------------- # Main code #----------------------------------------------- conn = psycopg2.connect(host='x.x.x.x', port='8000', database='postgres', user='jack', password='Gauss_234') conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT) copy_from_file(conn, 'store_sales') conn.close() # close the connection

HUAWEI CONNECT Gauss AP EI企业智能 数据仓库服务 GaussDB(DWS)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【C 语言】内存四区原理 ( 内存四区建立流程 )
下一篇:kafka性能调优解密(一)-- Broker端
相关文章