gpt4 book ai didi

python - AWS Redshift 数据处理

转载 作者:搜寻专家 更新时间:2023-10-30 22:07:26 29 4
gpt4 key购买 nike

我目前正在与一家小公司合作,该公司将其所有应用程序数据存储在 AWS Redshift 集群中。我的任务是对该 Redshift 集群中的数据进行一些数据处理和机器学习。

我需要做的第一个任务是根据一些相当简单的 SQL 逻辑将该集群中的现有数据基本转换为一些新表。在 MSSQL 环境中,我会简单地将所有逻辑放入参数化存储过程中,并通过 SQL Server 代理作业对其进行调度。但是,sprocs 似乎与 Redshift 无关。我将如何着手创建 SQL 作业并安排它在 AWS 环境中每晚(例如)运行?

我的另一项任务涉及开发机器学习模型(使用 Python)并在该 Redshift 数据库中对记录进行评分。如果计划是从该 Redshift 集群中提取数据、对其评分,然后将其插入到同一集群上的新表中,那么托管我的 Python 逻辑和进行数据处理的最佳方式是什么?似乎我可以启动一个 EC2 实例,在那里托管我的 python 脚本,在那里进行处理,并安排脚本通过 cron 运行?

我看到大量看起来可能相关的 AWS(和非 AWS)产品(AWS Glue/Data Pipeline/EMR),但数量太多以至于我有点不知所措。在此先感谢您的帮助!

最佳答案

ETL

Amazon Redshift 不支持存储过程。另外,我应该指出,存储过程通常一件坏事,因为您将逻辑放入存储层,这使得将来很难迁移到其他解决方案。 (我知道许多 Oracle 客户将自己锁定在永远无法改变技术中!)

您应该在 Redshift 外部运行 ETL 逻辑,只需将 Redshift 用作数据库即可。这可能就像运行一个使用 psql 调用 Redshift 的脚本一样简单,例如:

`psql <authentication stuff> -c 'insert into z select a, b, from x'`

(使用 Redshift 所基于的 psql v8。)

或者,您可以使用更复杂的 ETL 工具,例如 AWS Glue (目前并非在每个区域)或第 3 方工具,例如 Bryte .

机器学习

是的,您可以在 EC2 实例上运行代码。如果它很小,您可以使用 AWS Lambda(最多 5 分钟运行时间)。许多 ML 用户喜欢在 Amazon EMR 上使用 Spark。这取决于您需要的技术堆栈。

Amazon CloudWatch Events 可以 schedule Lambda 函数,然后可以启动 EC2 实例来执行您的处理,然后自行终止。

确实有很多选择!

关于python - AWS Redshift 数据处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46618762/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com