【问题标题】:Executing a Redshift procedure through AWS Glue通过 AWS Glue 执行 Redshift 过程
【发布时间】:2020-07-08 03:54:19
【问题描述】:

我在 Redshift 上创建了存储过程,需要对其进行编排。 SP 包含用于创建 SCD 的 DML 语句,并且仅限于 Redshift。

AWS 上有没有办法通过 Glue 或任何其他 AWS 服务在 Redshift 上运行 SP?

由于我们在 RS 上没有触发器,我正在探索其他选项。非常感谢您的帮助。

【问题讨论】:

    标签: amazon-web-services amazon-redshift aws-glue


    【解决方案1】:

    我认为您可以尝试使用 preactions/Postactions。 Preactions/Postactions 允许您在动态框架处理数据之前/之后执行 sql 命令。您可以提供一个以分号分隔的命令列表,例如只是普通的 sql 命令,您可以尝试使用相同的方法调用程序:

    datasink5 = glueContext.write_dynamic_frame.from_jdbc_conf(frame = prod_dynamicframe, catalog_connection = "my_rdshft", connection_options = {"preactions":"delete from dw.product_dim where sku in ('xxxxx,'bbbb');","dbtable": "dw.product_dim", "database": "DWBI","postactions":"truncate table ld_stg.ld_product_tbl;"}, redshift_tmp_dir = args["TempDir"], transformation_ctx = "datasink5")
    

    This 也可能会有所帮助。

    【讨论】:

      【解决方案2】:

      您可以尝试的一种方法是@Eman 提到的前置操作和后置操作,我还没有尝试过。

      但我使用 psycopg2 来触发 redshift 上的存储过程。 只需压缩包装并传递给胶水。

      建立一个jdbc连接

      并使用callproc()函数调用存储过程。

      找到它的用法https://www.psycopg.org/docs/usage.html

      【讨论】:

        猜你喜欢
        • 2022-01-22
        • 1970-01-01
        • 2020-06-04
        • 2018-09-26
        • 1970-01-01
        • 1970-01-01
        • 2021-07-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多