1
我已經構建了一個Web UI作爲ETL應用程序,允許用戶選擇一些包含大量記錄的CSV和TSV文件,並試圖將它們插入到PostgreSQL數據庫中。正如已經很好地評論的那樣,這個過程有點慢。經過一番研究後,它看起來像使用UNNEST函數將是我的答案,但我在實現它時遇到了麻煩。老實說,我沒有像在Python中研究任何數據處理時那樣找到一個很好的步驟式教程。使用unnest with psycopg2
這裏的SQL字符串作爲我存儲他們(在功能後使用):
salesorder_write = """
INSERT INTO api.salesorder (
site,
sale_type,
sales_rep,
customer_number,
shipto_number,
cust_po_number,
fob,
order_number
) VALUES (
UNNEST(ARRAY %s)
「」」
我用這個字符串像這樣的元組的列表一起:
for order in orders:
inputs=(
order['site'],
order['sale_type'],
order['sales_rep'],
order['customer_number'],
order['shipto_number'],
order['cust_po_number'],
order['fob'],
order['order_number']
)
tup_list.append(inputs)
cur.execute(strSQL,tup_list)
這給了我錯誤Not all arguments converted during string formatting
。我的第一個問題是如何構建我的SQL能夠傳遞我的元組列表。我的第二個是,我可以使用現有的字典結構大致相同?
非常有趣。是否有任何基準指示性能指標? – RyanM
表現明顯改善,但沒有我期望的那麼好。我意識到我的問題可能實際上是在等待PostgreSQL服務器的響應。我正在寫入一個具有自定義INSERT規則的視圖,該規則又執行多個INSERT。我也將使用多線程方法進行研究。 – RyanM