测试和查询 Amazon SNS 配置以实现有效的数据管理 - Amazon Simple Notification Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

测试和查询 Amazon SNS 配置以实现有效的数据管理

本页介绍如何通过向 Amazon SNS 主题发布消息来测试消息存档和分析示例用例。这些说明包括一个示例查询,您可以运行并根据自己的需求对其进行调整。

测试配置
  1. 打开 Amazon SNS 控制台的主题页面

  2. 选择 ticketTopic 主题。

  3. 选择发布消息

  4. Publish message to topic(发布消息到主题)页面上,为消息正文输入以下内容。在消息结尾处添加换行符。

    {"BookingDate":"2020-12-15","BookingTime":"2020-12-15 04:15:05","Destination":"Miami","FlyingFrom":"Vancouver","TicketNumber":"abcd1234"}

    保留所有其他选项作为默认值。

  5. 选择发布消息

    有关发布消息的更多信息,请参阅 发布亚马逊SNS消息

  6. 在 60 秒的传输流间隔后,打开 Amazon Simple Storage Service (Amazon S3) 控制台并选择您最初创建的 Amazon S3 存储桶。

    存储桶中会显示已发布的消息。

要查询数据
  1. 打开 Amazon Athena 控制台

  2. 运行查询。

    例如,假设 default schema 中的 notifications 表包含下列数据:

    {"BookingDate":"2020-12-15","BookingTime":"2020-12-15 04:15:05","Destination":"Miami","FlyingFrom":"Vancouver","TicketNumber":"abcd1234"} {"BookingDate":"2020-12-15","BookingTime":"2020-12-15 11:30:15","Destination":"Miami","FlyingFrom":"Omaha","TicketNumber":"efgh5678"} {"BookingDate":"2020-12-15","BookingTime":"2020-12-15 3:30:10","Destination":"Miami","FlyingFrom":"NewYork","TicketNumber":"ijkl9012"} {"BookingDate":"2020-12-15","BookingTime":"2020-12-15 12:30:05","Destination":"Delhi","FlyingFrom":"Omaha","TicketNumber":"mnop3456"}

    要查找最佳目标,请运行以下查询:

    SELECT destination FROM default.notifications GROUP BY destination ORDER BY count(*) desc LIMIT 1;

    要查询在特定日期和时间范围内售出的票证,请运行如下所示的查询:

    SELECT * FROM default.notifications WHERE bookingtime BETWEEN TIMESTAMP '2020-12-15 10:00:00' AND TIMESTAMP '2020-12-15 12:00:00';

    您可以根据自己的需求调整两个示例查询。有关使用 Athena 运行查询的更多信息,请参阅 Amazon Athena 用户指南中的入门

清理

为避免在完成测试后产生使用费用,请删除您在本教程中创建的以下资源:

  • 亚马逊SNS订阅

  • 亚马逊SNS话题

  • 亚马逊简单队列服务 (AmazonSQS) 队列

  • Amazon S3 存储桶

  • 亚马逊 Data Firehose 传送流

  • AWS Identity and Access Management (IAM) 角色和政策