热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AWSAthena拼合嵌套列而不会丢失空行

我正在使用AWSAthena查询S3中作为JSON输出的Jira数据。我们的数据具有一个自定义字

我正在使用AWS Athena查询S3中作为JSON输出的Jira数据。我们的数据具有一个自定义字段,其中包含受错误影响的一系列应用程序。我想做的是为受影响的应用程序创建一行,同时仍然保留未列出任何受影响的应用程序的任何问题。

我的数据

function maximum_api_filter($query_params) {
$query_params['per_page']["maximum"]=100000;
return $query_params;
}
add_filter('rest_product_collection_params','maximum_api_filter');

所需的输出

我想要一个可以在Athena中使用的查询,该查询将返回五行,如下所示:

{
"expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields","id": "982832","self": "https://reallycoolcompany.atlassian.net/rest/api/2/issue/982832","key": "HI-1","fields": {
"summary": "Customer Care unresponsive on Web01","customfield_14402": null
}
}
{
"expand": "operations,"id": "332422","self": "https://reallycoolcompany.atlassian.net/rest/api/2/issue/332422","key": "HI-2","fields": {
"summary": "RCC API issue - clients were experiencing a failure when navigating through the site.","id": "114128","self": "https://reallycoolcompany.atlassian.net/rest/api/2/issue/114128","key": "HI-3","fields": {
"summary": "HIE customer can't connect","customfield_14402": [
{
"self": "https://reallycoolcompany.atlassian.net/rest/api/2/customFieldOption/14724","value": "ECC","id": "14724"
}
]
}
}
{
"expand": "operations,"id": "723392","self": "https://reallycoolcompany.atlassian.net/rest/api/2/issue/723392","key": "HI-4","fields": {
"summary": "Database Lock-Up Following Roll","customfield_14402": [
{
"self": "https://reallycoolcompany.atlassian.net/rest/api/2/customFieldOption/14722","value": "CC","id": "14722"
},{
"self": "https://reallycoolcompany.atlassian.net/rest/api/2/customFieldOption/14724","id": "14724"
}
]
}
}
}

到目前为止我尝试过的事情

我可以使用以下查询(找到的解决方案here)为每个受影响的应用程序(customfield_14402)获取一行:

|-----------|--------------------------|
| key | Affected App |
|-----------|--------------------------|
| HI-1 | null |
|-----------|--------------------------|
| HI-2 | null |
|-----------|--------------------------|
| HI-3 | ECC |
|-----------|--------------------------|
| HI-4 | ECC |
|-----------|--------------------------|
| HI-4 | CC |
|-----------|--------------------------|

但是,这将排除我的两个问题,而没有任何受影响的应用程序。

我可以通过在第一个查询中创建一个视图,然后在另一个查询中将其加入来解决此问题,如下所示:

SELECT key,affected_apps.value as affected_apps
FROM jira_quicksight_poc
CROSS JOIN UNnesT(fields.customField_14402) as t(affected_apps)

但是,这会使我在S3中的数据被扫描两次。尝试避免这种情况,因为这样可以通过Athena定价有效地使我们为该查询增加一倍的费用。

是否可以通过一次查询/扫描数据来获得所需的结果?





推荐阅读
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
author-avatar
血红中国心_686
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有