PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

AWS Glue - Cắt ngắn bảng postgres đích trước khi chèn

Tôi đã thử DROP/ TRUNCATE nhưng không thể thực hiện được với các kết nối đã được tạo trong Glue, nhưng với trình điều khiển Python PostgreSQL thuần túy, pg8000 .

  1. Tải xuống tar của pg8000 từ pypi
  2. Tạo một __init__.py trống trong thư mục gốc
  3. Giải nén nội dung và tải lên S3
  4. Tham chiếu tệp zip trong Python lib path của công việc
  5. Đặt chi tiết kết nối DB làm thông số công việc (đảm bảo thêm trước tất cả các tên khóa bằng -- ). Đánh dấu vào hộp "Mã hóa phía máy chủ".

Sau đó, bạn có thể chỉ cần tạo kết nối và thực thi SQL.

import sys
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.dynamicframe import DynamicFrame
from awsglue.job import Job

import pg8000

args = getResolvedOptions(sys.argv, [
    'JOB_NAME',
    'PW',
    'HOST',
    'USER',
    'DB'
])
# ...
# Create Spark & Glue context

job = Job(glueContext)
job.init(args['JOB_NAME'], args)

# ...
config_port = 5432
conn = pg8000.connect(
    database=args['DB'], 
    user=args['USER'], 
    password=args['PW'],
    host=args['HOST'],
    port=config_port
)
query = "TRUNCATE TABLE {0};".format(".".join([schema, table]))
cur = conn.cursor()
cur.execute(query)
conn.commit()
cur.close()
conn.close()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển django RawQuerySet thành Queryset

  2. Hủy truy vấn hiện tại / đang hoạt động trong Ruby on Rails

  3. Cài đặt PostgresSQL 9.5 không thành công:“khởi tạo cụm cơ sở dữ liệu không thành công” MAC os (big sur 11.4)

  4. Đăng ký và chạy PostgreSQL 9.0 dưới dạng Dịch vụ Windows

  5. Hiển thị tên cột với giá trị tối đa giữa một số cột