首页 文章

AWS Glue截断红移表

提问于
浏览
1

我创建了一个胶水作业,将数据从S3(csv文件)复制到Redshift . 它可以工作并填充所需的表格 .

但是,我需要在此过程中清除表,因为在完成该过程后,我将留下重复的记录 .

我正在寻找一种方法将此清除添加到Glue流程中 . 任何意见,将不胜感激 .

谢谢 .

3 回答

  • 0

    你看过Job Bookmarks in Glue了吗?这是保持高水位标记的功能,仅适用于s3 . 我不是100%肯定,但它可能需要分区到位 .

  • 0

    您需要修改Glue提供的自动生成代码 . 使用spark jdbc连接连接到redshift并执行清除查询 .

    在红移VPC中旋转胶水容器;在glue作业中指定连接,以获得对redshift集群的访问权限 .

    希望这可以帮助 .

  • 0

    您可以使用spark / Pyspark数据库来覆盖表:

    df.write\
      .format("com.databricks.spark.redshift")\
      .option("url", redshift_url)\
      .option("dbtable", redshift_table)\
      .option("user", user)\
      .option("password", readshift_password)\
      .option("aws_iam_role", redshift_copy_role)\
      .option("tempdir", args["TempDir"])\
      .mode("overwrite")\
      .save()
    

    Per Databricks / Spark文档:

    覆盖现有表:默认情况下,此库使用事务来执行覆盖,这是通过删除目标表,创建新的空表并向其追加行来实现的 .

    您可以查看here中的数据库文档

相关问题