|
|
1
2
我最终使用了中描述的方法 this AWS example 和 this blog article 。 具体来说,我按照最初列出的方式设置了S3结构,只是去掉了hive表示法(这可以保留,但我认为在这种情况下,投影日期格式会变得更加混乱):
通过此操作,我将表属性设置为使用分区投影,设置如下:
在我的表模式中,我将JSON更新为以下内容:
在进行了这些更新之后,我现在可以使用pilcorow提出的更简单的分区结构来查询数据:
这里的重点是,我能够保留子文件夹嵌套日期结构(我更喜欢用于非Athena数据采集目的),但仍然为我的Athena查询保留简单的SQL查询WHERE语句,同时使用高效的分区投影。 还要注意的是,我相信pilcorow在分析我最初的年/月/日SQL查询效率低下时是正确的,因为我发现当切换到与单日5分钟间隔相关的查询的新结构时,速度提高了66%。 |
|
|
2
1
我看到两种选择。 首先理想地, 重新分配 使用单个“YYYYMMDD”属性分区,而不是嵌套分区。那是 a good practice for more natural querying ,例如,“…WHERE ymd_partition BETWEEN'START_ymd'AND'END_ymd'”,没有所有这些布尔扭曲。 否则,继续目前的方法,它有一个可行的想法,但为了 效率 。
我们希望根据输入范围应用三种场景中的一种(相同年/月、相同年、不同年);然而,正如所写的,我们根据所有记录评估每个场景的每个条件,而不考虑输入范围。(输入范围为
解决方案不会很好。
我可能漏掉了一个括号。
您可以添加
|
|
|
3
0
我想你也可以使用
|
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |