我是一名分析师,准备Tableau报告并对其他团队进行分析。我希望通过创建一个如此优化的数据源来获得我肩负的一些工作量,用户将能够使用它来获取所需的数据并自行进行分析。
现状:
我们使用Amazon Redshift。我们有直接来自系统的原始数据表。我们还有一些转换表,以便于工作。总而言之,这是几十张桌子。我们正在使用Tableau桌面和Tableau服务器。
理想情况:
我希望保留对原始数据的访问权限,以便我可以将任何潜在问题回溯到原始数据源。从原始数据,我想创建转换表,允许用户对它们进行查询(双层系统)。这些表应包含用户可能需要的所有数据,但对于初学者级SQL用户来说足够简单。
我认为有两种方法可以解决这个问题:
此外,还需要考虑对数据的访问权限。
您认为解决我的问题的好方法是什么?它是上述两种解决方案中的任何一种吗?你有其他解决方案吗?你会推荐什么?
答案 0 :(得分:0)
我们遇到了这个问题,我们整理了AWS Athena。只有在扫描和使用数据时才需要付费。否则,您将不会付款,也不会触及任何数据。
使用AWS Athena,您可以创建具有不同属性的任何表集,并且易于维护角色权限。
最后一部分,Tableau与Athena有直接接口,因此无需任何中间存储。
此外,只要您不想要桌子,只需删除并删除角色即可。其余的将自动照顾。
在附加说明中,我们在JSON数据上尝试了Redshift Spectrum,它还不能与嵌套的JSON一起使用。所以你的所有属性应该只有一个层次。
希望它有所帮助。
<强> EDIT1:强>
Redshift是一个柱状数据库,小表和大表之间没有区别。如果可以避免与较小的表连接。即使表更大,您的查询速度也取决于查询中涉及的字段。如果查询中不需要字段,则在查询数据时永远不会触及该字段。
我更喜欢将所有相关数据放在更大的表中,因此需要复制任何关系或表连接。
另外,当您存储在更大的表格中时,您需要确保没有太多的数据重复。
有关数据库规范化的更多信息,