热门标签 | 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定价有效地使我们为该查询增加一倍的费用。

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





推荐阅读
  • 时序数据是指按时间顺序排列的数据集。通过时间轴上的数据点连接,可以构建多维度报表,揭示数据的趋势、规律及异常情况。 ... [详细]
  • Spring Cloud Config 使用 Vault 作为配置存储
    本文探讨了如何在Spring Cloud Config中集成HashiCorp Vault作为配置存储解决方案,基于Spring Cloud Hoxton.RELEASE及Spring Boot 2.2.1.RELEASE版本。文章还提供了详细的配置示例和实践建议。 ... [详细]
  • Windows 环境下安装 Git 并连接 GitHub 的详细步骤
    本文详细介绍了如何在 Windows 系统中安装 Git 工具,并通过配置 SSH 密钥实现与 GitHub 的安全连接。包括下载、安装、环境配置及验证连接等关键步骤。 ... [详细]
  • Java EE CDI:解决依赖关系冲突的实例
    在本教程中,我们将探讨如何在Java EE的CDI(上下文和依赖注入)框架中有效解决依赖关系的冲突问题。通过学习如何使用限定符,您将能够为应用程序的不同客户端提供多种接口实现,并确保每个客户端都能正确调用其所需的实现。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • 本文介绍了如何在WildFly 10中配置MySQL数据源时遇到的服务依赖问题及其解决方案。 ... [详细]
  • 交互式左右滑动导航菜单设计
    本文介绍了一种使用HTML和JavaScript实现的左右可点击滑动导航菜单的方法,适用于需要展示多个链接或项目的网页布局。 ... [详细]
  • 微信小程序中实现位置获取的全面指南
    本文详细介绍了如何在微信小程序中实现地理位置的获取,包括通过微信官方API和腾讯地图API两种方式。文中不仅涵盖了必要的准备工作,如申请开发者密钥、下载并配置SDK等,还提供了处理用户授权及位置信息获取的具体代码示例。 ... [详细]
  • 深入解析Android中的SQLite数据库使用
    本文详细介绍了如何在Android应用中使用SQLite数据库进行数据存储。通过自定义类继承SQLiteOpenHelper,实现数据库的创建与版本管理,并提供了具体的学生信息管理示例代码。 ... [详细]
  • 本文探讨如何利用Java反射技术来模拟Webwork框架中的URL解析过程。通过这一实践,读者可以更好地理解Webwork及其后续版本Struts2的工作原理,尤其是它们在MVC架构下的角色。 ... [详细]
  • Java实现文本到图片转换,支持自动换行、字体自定义及图像优化
    本文详细介绍了如何使用Java实现将文本转换为图片的功能,包括自动换行、自定义字体加载、抗锯齿优化以及图片压缩等技术细节。 ... [详细]
  • Django xAdmin 使用指南(第一部分)
    本文介绍如何在Django项目中集成和使用xAdmin,这是一个增强版的管理界面,提供了比Django默认admin更多的功能。文中详细描述了集成步骤及配置方法。 ... [详细]
  • 本文总结了MySQL的一些实用技巧,包括查询版本、修改字段属性、添加自动增长字段、备份与恢复数据库等操作,并提供了一些常见的SQL语句示例。 ... [详细]
  • This feature automatically validates new regions using the AWS SDK, ensuring compatibility and accuracy. ... [详细]
  • 本文介绍了如何通过ARM编译器组件重定向标准C运行时库的I/O函数,以适应不同的硬件平台。原文链接:https://www.keil.com/pack/doc/compiler/RetargetIO/html/retarget_overview.html ... [详细]
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社区 版权所有