使用 AWS Step Functions 和 Amazon QuickSight 自动化 AWS

2026-01-27 12:57:20 29

自动化 AWS Clean Rooms 查询与仪表板发布

关键要点

公共卫生组织亟需快速获取能实时应用的数据洞察。本文进一步讲解如何借助 AWS Clean Rooms 和 AWS Step Functions 自动化数据查询及仪表板发布。自动化流程能有效减少手动操作,提高数据获取的及时性与准确性。

公共卫生组织在面对健康危机时,急需快速有效的数据洞察,尤其是在数据需要每日多次更新的情况下。例如,在 COVID19 大流行期间,公共卫生机构需要及时的数据洞察来协调应急响应。最新的信息和分析使得组织能够监控快速变化的情况,并合理调配资源。

本文为本系列的第二篇文章,建议您先阅读上一篇启用公共卫生机构之间的数据协作第一部分,了解公共卫生机构如何利用 AWS Clean Rooms 创建协作、邀请其他利益相关者参与,及在不共享或复制数据的情况下进行查询。AWS Clean Rooms 使多个组织能够分析各自数据并获得可以采取行动的洞察,而无需共享敏感、受限或专有数据。

然而,公共卫生组织的领导者和决策官员并不直接访问 AWS Simple Storage Service (S3) 桶中的数据协作输出。他们更依赖于实时更新的仪表板,来帮助他们快速可视化数据洞察,做出明智决策。

确保这些仪表板展示最新洞察,需要数据架构师和构建者定期编目和更新 AWS Clean Rooms 的协作输出,这往往涉及重复和手动的过程。如果操作不当,可能会延迟组织对最新数据洞察的获取。

在大规模环境中,手动处理重复的日常任务可能导致延迟洞察、错误分类或仪表板崩溃。手动方式还需要全天候人员支持,会造成预算紧张。这一过程也可能使决策者接触到不准确或过时的信息。

自动化重复的工作流程、验证检查及程序化仪表板刷新,能够消除人为瓶颈并减少不准确性。这种方式确保了持续、可靠的流程,可以及时向领导提供最新数据洞察,同时优化资源使用。

全局加速器永久免费

本篇文章将解释如何使用 AWS Step Functions 和 Amazon QuickSight 实现自动化工作流程,帮助组织快速访问最新的结果和分析,避免手动数据处理步骤的延误。这种工作流程将使决策者实时掌握不断演变的协作分析输出,确保他们获得最新且相关的洞察,能够迅速采取行动。

解决方案概述

以下的参考架构展示了基于 AWS 服务的 Clean Rooms 查询自动化和仪表板发布的基本组件。通过使用 Step Functions 结合 Amazon EventBridge 定时任务,我们自动运行查询,构建 AWS Glue 数据目录并使用 QuickSight 发布仪表板,使其能够与新数据自动刷新。这使得公共卫生团队可以监控到最新的洞察,无需手动更新。

架构组件

组件描述事件触发EventBridge 规则定时触发 Step Functions 工作流。查询执行Step Functions 工作流使用 StartProtectedQuery AWS Clean Rooms API 启动查询,确保数据隐私与合规性,结果存储于指定的 S3 桶中。更新表位置查询成功后,Step Functions 工作流调用 AWS Glue API 更新数据目录中表的位置。数据查询Amazon Athena 使用数据目录查询信息。数据可视化QuickSight 用于查询、构建可视化和发布仪表板。

前提条件

要进行本次操作,您需要以下资源:

一个 AWS 账户。AWS Management Console 访问权限,以启用 AWS CloudFormation 模板。一个 QuickSight 账户。一个 AWS Clean Rooms 协作。本文使用第一部分中创建的协作的会员 ID。您可以在 AWS Clean Rooms 控制台的协作 详细信息 标签中找到此信息。

启动 CloudFormation 堆栈

在本篇文章中,我们提供了一个 CloudFormation 模板,以创建以下资源:

触发 Step Functions 状态机的 EventBridge 规则一个 AWS Glue 数据库及数据目录表一个 Athena 工作组三个 S3 桶:用于 AWS Clean Rooms 上传查询结果用于 Athena 上传查询结果用于存储其他桶的访问日志一个设计用于执行 AWS Clean Rooms 查询、将结果上传至 S3 桶并在 AWS Glue 数据目录中更新表位置的 Step Functions 工作流一个 AWS Key Management Service (AWS KMS) 客户管理密钥,以加密 S3 桶中的数据具备必要权限的 AWS Identity and Access Management (IAM) 角色和策略

创建所需资源的步骤如下:

选择 Launch Stack :

使用 AWS Step Functions 和 Amazon QuickSight 自动化 AWS 输入 Stack name 为 cleanroomsqueryautomationblog。输入在第一部分中创建的 AWS Clean Rooms 协作的会员 ID。

选择 Next。

再次选择 Next。

在 Review 页面,选中 I acknowledge that AWS CloudFormation might create IAM resources。选择 Create stack。

在执行 CloudFormation 模板并创建资源后,您可以在 AWS CloudFormation 控制台的堆栈 Outputs 标签中找到以下信息:

AthenaWorkGroup Athena 工作组EventBridgeRule 触发 Step Functions 状态机的 EventBridge 规则GlueDatabase AWS Glue 数据库GlueTable 存储 AWS Clean Rooms 查询结果元数据的 AWS Glue 表S3Bucket AWS Clean Rooms 上传查询结果的 S3 桶StepFunctionsStateMachine Step Functions 状态机

测试解决方案

名为 cleanroomsqueryexecutionStepfunctionstrigger 的 EventBridge 规则计划每小时触发一次。一旦触发,将启动 CleanRoomsBlogStateMachineXXXXXXX Step Functions 状态机。请按照以下步骤测试解决方案的端到端流程:

在 Step Functions 控制台,导航到您创建的状态机。在状态机详情页面,找到最新的查询运行。

最新运行历史记录显示:

状态机使用 startProtectedQuery API 向 AWS Clean Rooms 提交查询,输出包括查询运行 ID及其状态。状态机在查询运行后等待 30 秒检查状态。30 秒后,状态机使用 getProtectedQuery API 检查查询状态。当状态变为 SUCCESS 时,它将继续下一步获取 AWS Glue 表的元数据信息。该步骤的输出包含查询运行结果上传的 S3 位置。状态机检索名为 patientimmunization 的 AWS Glue 表的元数据,该表是通过 CloudFormation 堆栈创建的。状态机在 AWS Glue 表的元数据中更新 S3 位置AWS Clean Rooms 上传结果的位置。

在成功更新 AWS Glue 表的元数据后,状态机完成。

在 Athena 控制台,切换工作组 到 CustomWorkgroup。

执行以下查询:

sqlSELECT FROM cleanroomspatientdbpatientimmunization limit 10

使用 QuickSight 可视化数据

现在您可以在 Athena 中查询数据,可以使用 QuickSight 对结果进行可视化。首先,授权 QuickSight 访问存储 AWS Clean Rooms 查询结果的 S3 桶。

授权 QuickSight 访问 Athena 和您的 S3 桶

首先,授权 QuickSight 访问 S3 桶:

登录到 QuickSight 控制台。选择您的用户名,然后选择 Manage QuickSight。选择 Security and permissions。对于 QuickSight access to AWS services,选择 Manage。对于 Amazon S3,选择 Select S3 buckets,选择名为 cleanroomsqueryexecutionresults XXXXXXXXXXXXXXXXXX 的 S3 桶XXXXX 代表 AWS 区域和帐户号。选择 Save。

创建数据集并发布可视化

在 QuickSight 中分析和可视化数据之前,您必须为您的 Athena 表创建数据集。

在 QuickSight 控制台,选择导航窗格中的 Datasets。选择 New dataset。选择 Athena。为数据集输入名称。选择 Create data source。选择 AWS Glue 数据库 cleanroomspatientdb,并选择表 PatientImmunization。选择 Directly query your data。

选择 Visualize。

在 Analysis 标签中,选择所需的可视化类型并添加可视化内容。

清理资源

当您不再需要此解决方案时,请按照以下步骤清理资源:

手动删除 S3 桶及其中存储的数据。删除 CloudFormation 模板。删除 QuickSight 分析。删除数据源。

总结

本文展示了如何通过 Step Functions 的 API 调用自动化运行 AWS Clean Rooms 查询。我们还展示了如何更新现有 AWS Glue 表的查询结果信息,利用 Athena 查询信息,并通过 QuickSight 创建可视化。

这一自动化工作流程解决方案不仅通过自动检测新输出、处理和 Amazon QuickSight 仪表板的刷新,及时为决策者提供了来自 AWS Clean Rooms 协作的实时洞察,而且消除了手动处理的任务,使得基于最新分析更迅速地做出数据驱动的决策。此外,自动化使得员工能够将精力集中于更战略性的项目,而不是重复更新。

若要了解如何设置此解决方案,请直接联系公共部门团队,或与您的 AWS 账户团队沟通,参与此解决方案的概念验证。

关于 AWS Clean Rooms

AWS Clean Rooms 帮助企业及其合作伙伴更轻松、安全地分析和协作其共同的数据集无须分享或复制彼此的基础数据。利用 AWS Clean Rooms,您可以在几分钟内创建一个安全的数据清洗室,并与 AWS 云上的其他公司协作,生成有关广告活动、投资决策和研究开发的独特洞察。

AWS Clean Rooms 团队不断构建新功能,以助您实现更好的协作。请观看此 视频 了解关于 AWS Clean Rooms 的隐私增强协作更多信息。

了解更多关于 AWS 合作伙伴,或联系 AWS 代表,了解如何加速您的业务的发展。

额外资源

启用公共卫生机构之间的数据协作第一部分AWS Clean Rooms 现已符合健康保险可携带性和问责法案HIPAA要求AWS Clean Rooms 现已开放给医疗及生命科学行业AWS Clean Rooms 现已提供无需共享原始数据即可与合作伙伴协作开始使用 AWS Clean Rooms

关于作者

Venkata Kampana 是 AWS 健康与人类服务团队的高级解决方案架构师,常驻加利福尼亚州萨克拉门托。在这个角色中,他帮助公共部门客户通过 AWS 构建良好架构的解决方案,从而实现其任务目标。

Jim Daniel 是亚马逊网络服务的公共卫生负责人,曾在美国卫生与公共服务部工作近十年,担任公共卫生创新主管和公共卫生协调员。在政府服务之前,Jim 曾担任马萨诸塞州公共卫生部的首席信息官。