簡體   English   中英

使用 AWS Glue 中的動態框架更新 RDS 表

[英]RDS Table update using Dynamic Frame in AWS Glue

我有一個粘合工作,因為我將數據從 csv 插入到 postgresql 表。 現在我需要更新 postgresql 數據庫表中的一行。 我已經這樣做了,但是所需的行作為表中的一個新條目出現,而不是更新現有的。 我怎樣才能做到這一點? 請幫忙...

Glue 目前不支持覆蓋模式。 您需要將DynamicFrame轉換為DataFrame ,然后使用mode = overwrite寫入,如下所示:

dynamic_frame.toDF()
  .write
  .mode("overwrite")

Spark 尚不支持更新記錄。 您只能覆蓋(刪除現有記錄並添加新記錄)或追加(與現有記錄一起添加新記錄)。 但是,如果您想更新特定行,您可以使用 python 庫 pg8000。 膠水版本 2.0 和 python 版本 3 的步驟如下:

  1. 下載並解壓 pg8000、asn1crypto 和 scramp tar 文件,然后將它們全部壓縮為一個。

  2. 將文件上傳到 s3 存儲桶

  3. 在python庫路徑中,添加壓縮后的pg8000文件的路徑。 例如:s3://bucketname/foldername/pg8000-1.19.2.zip

  4. 僅導入 pg8000.native 並使用以下代碼直接連接到數據庫。

    導入 ssl

    導入 pg8000.native

    conn = pg8000.native.Connection(database="database", host="xxxxxxrds.amazonaws.com", port=xxxx, user="user", password="password",ssl_context=ssl._create_unverified_context())

    insert_query = "您通常會在 postgresql 中編寫的更新查詢"

    conn.run(insert_query)

    conn.run(“提交”)

    conn.close()

PS:您還可以使用 python '.format' 使您的查詢通用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM