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

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

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

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

【问题讨论】:

标签: amazon-web-services amazon-redshift


【解决方案1】:

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

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

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

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

  1. 创建您的 shell/批处理脚本以运行 SQL。
  2. 设置 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 上搜索,您应该会得到很多好的材料。
猜你喜欢
  • 1970-01-01
  • 2016-01-19
  • 2022-01-17
  • 1970-01-01
  • 2020-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-05
相关资源
最近更新 更多