You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何实现DynamoDB与QuickSight集成并支持仪表盘实时更新?

DynamoDB与QuickSight实时同步仪表盘的解决方案

以下是几种实现DynamoDB数据新增后QuickSight仪表盘实时/近实时更新的可行方案:

方案1:DynamoDB Streams + Lambda + QuickSight SPICE增量刷新

适合需要低延迟且依赖SPICE高性能查询的场景:

  • 给目标DynamoDB表开启DynamoDB Streams,选择捕获NEW_AND_OLD_IMAGESNEW_IMAGE模式,确保能获取新增数据事件
  • 创建Lambda函数,将DynamoDB Stream设为触发源,函数逻辑无需处理数据内容,只需调用QuickSight的CreateIngestion API触发对应SPICE数据集的增量刷新
  • 配置Lambda的IAM角色:需包含dynamodb:DescribeStreamdynamodb:GetRecordsdynamodb:GetShardIterator权限,以及quicksight:CreateIngestion权限,同时要允许访问目标QuickSight数据集

方案2:DynamoDB → S3 → Athena → QuickSight(近实时)

适合数据量较大、需要灵活分析的场景:

  • 开启DynamoDB Streams,用Lambda将新增数据以JSON/Parquet格式同步到S3的时间分区路径(如s3://your-bucket/dynamo-data/year=YYYY/month=MM/day=DD/
  • 在Athena中创建外部表,映射S3中存储的DynamoDB数据结构,利用分区提升查询效率
  • 在QuickSight中创建基于Athena的数据集,可设置固定间隔的计划刷新,或通过Lambda调用QuickSight API触发按需刷新
  • 若需更接近实时,可缩短S3同步的批量间隔,或使用Athena的实时查询模式

方案3:QuickSight直接查询DynamoDB(准实时)

适合数据量较小、对实时性要求不是极端苛刻的场景:

  • 在QuickSight中创建基于DynamoDB的直接查询数据集(不导入SPICE),这种模式下每次打开或刷新仪表盘时,都会直接查询DynamoDB的最新数据
  • 注意:该方案依赖DynamoDB的读写性能,仪表盘加载速度会受DynamoDB响应速度影响,且频繁查询可能增加DynamoDB的消耗

关键注意事项

  • 配置SPICE增量刷新时,需确保数据集已开启增量刷新选项,避免全量刷新浪费资源
  • 所有跨服务操作的IAM权限必须配置完整,避免因权限不足导致同步失败
  • 对于高并发的DynamoDB写入场景,建议在Lambda中加入批量处理逻辑,减少QuickSight API的调用频率

内容的提问来源于stack exchange,提问作者Hema Chandrika Ravela

火山引擎 最新活动