在 AWS Data Pipeline 中创建聚合表
Posted
技术标签:
【中文标题】在 AWS Data Pipeline 中创建聚合表【英文标题】:Create aggregate table in AWS Data Pipeline 【发布时间】:2016-10-18 22:58:04 【问题描述】:我在 Redshift 中存储了粒度数据。我想要一个定期创建的聚合表。我正在寻求使用 AWS Data Pipeline 来执行此操作。
假设我有一张包含所有航班的表格。我想生成一个机场表和从那里起飞的航班数量。但是因为这个表很大(也许我想加入其他表的东西),而不是在每个地方都写出这个聚合,我决定从它构建一个派生表。
我设置了我的数据管道。好像是这样
它正在Create Table Sql
字段中运行此 SQL
CREATE TABLE IF NOT EXISTS data.airports (
airport_id int not null
,flights int null);
我可以保存它(没有错误),但是在我激活它之后,该表永远不会出现。我检查了所涉及的(少数)参数,但没有什么明显错误的。尽管如此,我调整了一些,但仍然没有表。
我应该开始寻找什么?
【问题讨论】:
【参考方案1】:首先要查看数据管道,以确保其中没有错误。 (我想你已经完成了这一步)
您现在应该检查已在 redshift 上运行的 sql / load 命令,以确保其中有一些如预期的那样,并且它们已成功。
为此,一种简单的方法是在 aws 控制台中打开您的集群。从那里您可以单击“查询”选项卡以查看已运行的 sql,并单击“加载”以查看已运行的复制命令等。
也可以在不使用 aws 的情况下通过运行查看相同的详细信息 查询:
select query, trim(querytxt) as sqlquery
from stl_query
order by query desc limit 50;
对于加载,查看最近加载的错误
select d.query, substring(d.filename,14,20),
d.line_number as line,
substring(d.value,1,16) as value,
substring(le.err_reason,1,48) as err_reason
from stl_loaderror_detail d, stl_load_errors le
where d.query = le.query
and d.query = pg_last_copy_id();
【讨论】:
以上是关于在 AWS Data Pipeline 中创建聚合表的主要内容,如果未能解决你的问题,请参考以下文章
使用 Data Pipeline 在 AWS 中进行批处理文件
AWS Data Pipeline 在 emr 活动步骤部分中转义逗号