【发布时间】:2017-07-23 04:19:07
【问题描述】:
我是 Redshift 新手,正在寻找存储事件数据的最佳方式。数据由标识符、时间和有关当前状态的 JSON 元数据组成。
我正在考虑三种方法:
- 为每种事件类型创建一个表,并为每条数据创建一个列。
- 为事件创建单个表并将元数据存储为 JSON 字段。
- 为我可能要存储的每条可能的数据创建一个包含一列的表。
#1 的优点是我可以过滤所有数据字段,并且解决方案更加灵活。缺点是每次我想添加一个新事件时,我都必须创建一个新表。
#2 的优点是我可以将所有类型的事件放在一个表中。缺点是过滤元数据中的任何数据,我需要在每一行上使用 JSON 函数。
#3 的优点是我可以轻松访问所有字段而无需运行函数,并且不必为每种类型创建新表。缺点是使用数据的人需要记住要忽略哪些列。
是其中一种方式比其他方式更好,还是我完全错过了什么?
【问题讨论】:
-
你考虑过雅典娜还是迪纳摩?
-
@Henry 据我所知,我会遇到与非结构化数据相同的问题 + 我希望拥有 Redshift 的灵活性。
-
纯粹从数据库的角度来看,3是最好的,1是最差的。有趣的是,稀疏列上的这个 sn-p 建议选项 2。forums.aws.amazon.com/thread.jspa?threadID=134407 数据输入的速度以及需要报告的速度有多快?这提供了一些线索,即 JSON 是否应该在进入(即成无数列)或退出时被切碎。你的 JSON 是扁平的还是分层的?如果它是分层的,那么很难在单行上放入一堆扁平列
-
红移有什么“灵活性”?
标签: database amazon-web-services amazon-redshift data-warehouse bigdata