sql >> Database teknologi >  >> RDS >> PostgreSQL

AWS-lim - Afkort destinationspostgres-tabel før indsættelse

Jeg har prøvet DROP/ TRUNCATE scenario, men har ikke været i stand til at gøre det med forbindelser, der allerede er oprettet i Glue, men med en ren Python PostgreSQL-driver, pg8000 .

  1. Download taren til pg8000 fra pypi
  2. Opret en tom __init__.py i rodmappen
  3. Zip indholdet og upload til S3
  4. Referer til zip-filen i Python lib path af jobbet
  5. Indstil DB-forbindelsesdetaljerne som jobparametre (sørg for at sætte -- foran alle nøglenavne ). Sæt flueben i "Kryptering på serversiden".

Så kan du blot oprette en forbindelse og udføre 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. Oprettelse af en UDF til MySQL i Delphi

  2. hvordan man laver nedtællingstimeren til ikke at nulstille ved sideopdatering

  3. Opdag 10 mindre kendte funktioner i SQL Diagnostic Manager

  4. SQLite Undtagen