【发布时间】:2018-12-27 15:16:16
【问题描述】:
我的数据在 redshift 集群中,并且每天都在刷新。
我希望每天运行一个 SQL 代码,以便在 redshift 集群中创建表。所以我必须设置将在特定时间运行的 ETL 作业,以从 SQL 代码创建表。
我不知道,最好的方法是什么,我是 AWS 的新手,并且对 SQL 有很好的了解。谁能建议如何进行?
【问题讨论】:
标签: amazon-web-services amazon-redshift
我的数据在 redshift 集群中,并且每天都在刷新。
我希望每天运行一个 SQL 代码,以便在 redshift 集群中创建表。所以我必须设置将在特定时间运行的 ETL 作业,以从 SQL 代码创建表。
我不知道,最好的方法是什么,我是 AWS 的新手,并且对 SQL 有很好的了解。谁能建议如何进行?
【问题讨论】:
标签: amazon-web-services amazon-redshift
简短的回答:可能有很多方法可以做到这一点,你正在尝试什么。
长答案:通常可以通过以下任何一种方式完成。
既然你说你很天真,我想向你解释一下我过去用于复杂 ETL 的简单方法(即纯 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."
这只是为您提供一些开始的指针。每种方法都有很多优点/缺点,正如我所说,在决定任何方法之前,您必须权衡所有优点/缺点。
【讨论】:
psql 是客户端工具,我相信它可以在没有完整的 PostgreSQL 数据库的情况下安装。这是一些指针。 unix.stackexchange.com/questions/249494/… ,类似地 crontab 是非常流行和旧的安排作业的方式,我想请检查您的网络管理员或任何熟悉 unix 的人。在这里,您可以使用cron-tab 上的基本信息。 tutorialspoint.com/unix_commands/crontab.htm。有关更多信息,请使用 cron 标签在 youtube 上搜索,您应该会得到很多好的材料。