AWS中ETL流程的最佳方法是什么

时间:2018-12-27 15:16:17

标签: amazon-web-services amazon-redshift

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

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

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

1 个答案:

答案 0 :(得分:0)

简短的答案:您尝试的方法有很多。

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

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

自从您说过之后,您就太天真了,我想向您解释我过去用于复杂ETL的简单方法(即普通外壳脚本),尽管考虑您的用例并将其权衡于我建议的各种选项和使用最适合您的那个。

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

这里是示例shell脚本的开头。确保运行beow命令,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."

这仅为您提供一些开始的指针。每种方法都有很多利弊,正如我所说,在决定采用哪种方法之前,您必须权衡所有利弊。