在 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 的默认日期时间

AWS Data Pipeline 在 emr 活动步骤部分中转义逗号

AWS Data Pipeline 无法验证 S3 访问 [权限警告]

AWS Data Pipeline - 创建定义时出错

什么是 AWS Data Pipeline