查询雪花模式中的所有表
Posted
技术标签:
【中文标题】查询雪花模式中的所有表【英文标题】:Query all tables within a Snowflake Schema 【发布时间】:2020-08-05 14:11:38 【问题描述】:由于我们数据库的存储方式,我们为产品生命周期内发生的每个重要事件都有表格:
获得 已售出 已交付我需要在任何给定时间浏览并查找产品的状态。为此,我需要查询架构中的所有表并找到具有最新记录的记录。我知道这可以通过合并所有表然后找到 MAX 时间戳来实现,但我想知道是否有更优雅的解决方案?
是否可以仅通过查询根架构或数据库来查询所有表?有没有办法遍历架构中的所有表并将其替换为 FROM 子句?
感谢任何帮助。
谢谢
【问题讨论】:
【参考方案1】:您可以编写一个存储过程,但是,IMO,只有在表列表定期更改时才值得付出努力(而且更优雅)。 如果表列表相对固定,那么创建 UNION 语句可能是最优雅的解决方案,而且创建起来也相对简单——如果您打算定期使用它,那么只需将其创建为视图。
我总是处理这类问题(为多个表创建相同的 SQL)的方法是将表列表转储到 Excel 中,使用函数为第一个表生成 SQL 语句,然后将此函数复制到所有表表名称,然后在最终函数中连接所有这些语句。然后,您可以将此文本粘贴回您的 SQL 编辑器中
【讨论】:
是的,我创建了一个 UNION 语句来完成这项工作并获取 MAX 时间戳。表可能会定期更改,因此我将研究存储过程。感谢您回复我! 我支持这一点 - 我也通过将 Excel 单元格与函数连接起来为多个表创建语句来做同样的事情 :)以上是关于查询雪花模式中的所有表的主要内容,如果未能解决你的问题,请参考以下文章