大數據“復活”記
1146
2025-03-31
GaussDB(DWS)尚未宣稱支持psycopg2開源Python接口,但實際上研發內部測試框架一直在使用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小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。