首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >雅典娜对红移的拼花

雅典娜对红移的拼花
EN

Stack Overflow用户
提问于 2019-03-08 04:15:57
回答 3查看 2.1K关注 0票数 4

我希望外面的人能帮我解决这个问题。我目前正在从事一个数据管道项目,我目前的两难处境是与雅典娜一起使用拼板,还是将其存储到Redshift。

2种情况:第一,

代码语言:javascript
复制
EVENTS --> STORE IT IN S3 AS JSON.GZ --> USE SPARK(EMR) TO CONVERT TO PARQUET --> STORE PARQUET BACK INTO S3 --> ATHENA FOR QUERY --> VIZ

第二,

代码语言:javascript
复制
EVENTS --> STORE IT IN S3 --> USE SPARK(EMR) TO STORE DATA INTO REDSHIFT

与此设想有关的问题:

  1. 火花JDBC与红移是缓慢的
  2. 火花-红移数据砖回购有一个失败的构建,并在两年前更新。

关于哪种方法更好,我找不到有用的信息。我应该使用红移还是地板足够好?

另外,如果有人能告诉我是否还有其他方法来连接Redshift,那就太好了,因为我在网上只看到了2种解决方案-- JDBC和spark (Databricks)

定价模型不是我所关心的,我也在处理数百万的事件数据。

EN

回答 3

Stack Overflow用户

发布于 2019-03-08 08:06:24

以下是一些想法/建议

  • 不要使用JDBC。
  • 火花红移很好,但是一个复杂的解决方案。
  • 你不需要用火花来转换为地板,也有选择使用蜂巢。请参阅https://docs.aws.amazon.com/athena/latest/ug/convert-to-columnar.html
  • 雅典娜对地板使用时很棒,所以你根本不需要使用红移。
  • 如果您想要使用红移,然后使用红移频谱设置一个视图针对您的拼花表,如果必要的话,在红移内的CTAS,以使数据,如果您需要的话。
  • AWS Glue Crawler可以是一个伟大的方式来创建元数据所需的映射到雅典娜和红移光谱。

我提议的架构:

事件->将信息存储在S3中->蜂巢转换为拼花->直接在雅典娜使用

和/或

事件->将IT存储在S3中->蜂巢转换为拼板->使用红移谱直接在红移中使用

如果您使用正确的分区结构(s3文件夹)并对数据进行gzip,那么雅典娜/频谱的性能就可以足够好,而不需要转换到拼板的复杂性。这取决于您的用例(需要运行的数据量和查询类型)。

票数 2
EN

Stack Overflow用户

发布于 2019-03-08 08:07:20

使用哪一个取决于您的数据和访问模式。雅典娜直接使用S3键结构来限制要扫描的数据量。假设事件中有事件类型和时间。S3键可以是yyyy/MM/dd/type/*type/yyyy/MM/dd/*。前一个键结构允许您限制按日期或日期和类型扫描的数据量,但不能仅限于类型。如果您只想按x类型进行搜索,但不知道日期,则需要进行完整的桶扫描。后一个关键模式则相反。如果你主要只需要用一种方式访问数据(例如按时间),雅典娜可能是一个不错的选择。

另一方面,Redshift是一个基于PostgreSQL的数据仓库,它比雅典娜更加复杂和灵活。数据分区在性能方面起着很大的作用,但是模式可以通过多种方式来设计,以适应您的用例。根据我的经验,将数据加载到Redshift的最佳方法是先将数据存储到S3,然后使用COPY COPY.html。它比JDBC快多个数量级,我发现JDBC只适合用少量数据进行测试。这也是将数据加载到Redshift中的方式。如果您不希望自己实现S3复制,则Firehose提供了一种替代方法。

票数 1
EN

Stack Overflow用户

发布于 2019-06-19 05:16:40

这个问题很少有细节遗漏。如何管理数据管道中的增量插入。

如果您已经实现了缓慢更改的维度(SCD类型1或2),则不能使用拼花文件来管理相同的维度。但在Redshift中,这是很容易管理的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55056640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档