AWS中ETL流程的最佳方式是啥

Posted

技术标签:

【中文标题】AWS中ETL流程的最佳方式是啥【英文标题】:what is the best way of ETL Process In AWSAWS中ETL流程的最佳方式是什么 【发布时间】:2018-12-27 15:16:16 【问题描述】:

我的数据在 redshift 集群中,并且每天都在刷新。

我希望每天运行一个 SQL 代码,以便在 redshift 集群中创建表。所以我必须设置将在特定时间运行的 ETL 作业,以从 SQL 代码创建表。

我不知道,最好的方法是什么,我是 AWS 的新手,并且对 SQL 有很好的了解。谁能建议如何进行?

【问题讨论】:

您可以查看***.com/questions/52306194/… 【参考方案1】:

简短的回答:可能有很多方法可以做到这一点,你正在尝试什么。

长答案:通常可以通过以下任何一种方式完成。

    使用任何通用编程语言(java、python、C/C++、.net 等) 使用任何现成的ETL 工具(如 pantaho、AWS 胶水等) 其他方式

既然你说你很天真,我想向你解释一下我过去用于复杂 ETL 的简单方法(即纯 shell 脚本),尽管考虑一下你的用例,并根据我建议的各种选项权衡它和使用最适合您的。

    创建您的 shell/批处理脚本以运行 SQL。 设置 cron 作业以调用 #1 shell 脚本。

这里是开始的示例 shell 脚本。确保运行以下命令,psql 命令应安装在您将连接到 Redshift 的 EC2 之一上

#!/bin/sh
# example comment!
echo "Executing the create sales table"
psql postgresql://username:password@redshift-url:port/databasename?sslmode=require -c 
    "create table sales(    Colunm1 varchar(55),    Colunm2 varchar(255), updated_at timestamp);"
echo "Sales table created."

这只是为您提供一些开始的指针。每种方法都有很多优点/缺点,正如我所说,在决定任何方法之前,您必须权衡所有优点/缺点。

【讨论】:

您好,非常感谢您的帮助,非常感谢您的建议。 我在 RDS 实例下有 PostgreSQL,我可以在其中创建数据库,我是否必须在我的系统上安装 PostgreSQL?或者我将如何运行 cron 作业?有没有视频可以让我一步一步进入最后阶段? psql 是客户端工具,我相信它可以在没有完整的 PostgreSQL 数据库的情况下安装。这是一些指针。 unix.stackexchange.com/questions/249494/… ,类似地 crontab 是非常流行和旧的安排作业的方式,我想请检查您的网络管理员或任何熟悉 unix 的人。在这里,您可以使用cron-tab 上的基本信息。 tutorialspoint.com/unix_commands/crontab.htm。有关更多信息,请使用 cron 标签在 youtube 上搜索,您应该会得到很多好的材料。

以上是关于AWS中ETL流程的最佳方式是啥的主要内容,如果未能解决你的问题,请参考以下文章

aws CI/CD 工作流程的最佳路径是啥? Cloudformation、SAM 还是无服务器框架?

在 Terraform 中将多个 AWS 账户作为环境处理的最佳方式是啥?

在 AWS 上存储 Docker 容器的配置文件的最佳方式是啥?

在 AWS 上跨 EC2 集群提供图像的最佳方式是啥?

AWS Redshift ETL的几个性能最佳实践

使用 Amazon AWS Elastic Beanstalk 运行具有多个 git 存储库的平台的最佳方式是啥?