在现代数据驱动的世界中,组织面临着安全、高效地管理大量数据的挑战。本文将介绍如何利用 Amazon OpenSearch Service 和 Amazon OpenSearch Ingestion 功能将 CSV 文件从 Amazon S3 摄取到 OpenSearch,并使用 OpenSearch Dashboards 进行数据可视化。
在如今这个数据驱动的时代,组织必须不断面对安全高效地管理庞大数据的挑战。无论是客户信息、销售记录,还是来自物联网IoT设备的传感器数据,如何轻松高效地处理和存储数据显得尤为重要。
客户普遍的需求之一是对数据进行搜索和可视化。本文将展示如何通过 Amazon OpenSearch Ingestion 功能,将 CSV 文件从 Amazon Simple Storage Service (Amazon S3) 摄取到 Amazon OpenSearch Service 中,并使用 OpenSearch Dashboards 对摄取的数据进行可视化。
OpenSearch Service 是一个完全托管的开源搜索和分析引擎,帮助用户快速高效地摄取、搜索和分析大数据集。OpenSearch Service 使您能够快速部署、操作和扩展 OpenSearch 集群,适用于日志分析、实时应用监控、点击流分析、网站搜索等多种用例。
OpenSearch Dashboards 则是一个可视化和探索工具,允许您根据索引在 OpenSearch 集群中的数据创建、管理和交互各种视觉效果、仪表板和报告。
在 OpenSearch Dashboards 中可视化数据的步骤如下:
摄取数据 在可视化数据之前,您需要将数据摄取到 OpenSearch Service 域中的 OpenSearch Service 索引中,或摄取到 Amazon OpenSearch Serverless 集合中,并定义索引的映射。您可以指定字段的数据类型及其分析方式;如果未指定,OpenSearch Service 会自动检测每个字段的数据类型并为您的索引创建动态映射。
创建索引模式 数据索引到 OpenSearch Service 域后,您需要创建一个索引模式,以使 OpenSearch Dashboards 能读取存储在该域中的数据。该模式可以基于索引名称、别名或通配符表达式。您可以通过指定时间戳字段如适用和与数据相关的其他设置来配置索引模式。
创建可视化 您可以创建表示数据的视觉效果。常见的视觉效果包括折线图、柱状图、饼图、地图和表格。您还可以创建更复杂的可视化,例如热图和地理空间表示。
将数据摄取到 OpenSearch Service 中可能具有挑战性,因为它涉及多个步骤,包括从不同数据源收集、转换、映射和加载数据到 OpenSearch Service 索引。传统上,这些数据通过与 Amazon Data Firehose 、Logstash、Data Prepper 和 Amazon CloudWatch 等服务的集成进行摄取。
OpenSearch Ingestion 是于 2023 年 4 月推出的 OpenSearch Service 功能,旨在简化到 OpenSearch Service 的 PB 级数据 的摄取和处理。OpenSearch Ingestion 是一个完全托管的、无服务器的数据收集器,允许您将数据摄取、过滤、丰富和路由到 OpenSearch Service 域或 OpenSearch Serverless 集合中。您只需配置数据提供者将数据发送到 OpenSearch Ingestion,系统便会自动将数据传递到您指定的域或集合中,还可以配置 OpenSearch Ingestion 在投递前进行数据转换。
OpenSearch Ingestion 会自动扩展以满足最苛刻工作负载的要求,帮助您专注于业务逻辑,同时简化复杂数据管道的管理。这一过程由 Data Prepper 提供支持,作为一个开源流式的提取、转换、加载 (ETL) 工具,它可以过滤、丰富、转换、规范化和聚合数据,为后续分析和可视化提供支撑。
OpenSearch Ingestion 使用管道作为机制,由三个主要组件组成:
源 管道的输入组件,定义管道如何消费记录的机制。处理器 中间处理单元,可以将记录过滤、转换和丰富成期望的格式,再发布到接收端。处理器是管道的可选组件。接收端 管道的输出组件,定义管道将记录发布到一个或多个目标的方式。接收端也可以是另一条管道,从而使多个管道串联在一起。可以通过两种方式处理编写在 S3 存储桶中的数据文件:一是近实时处理 Amazon S3 中的文件,使用 Amazon Simple Queue Service (Amazon SQS);二是通过计划扫描方法,以批处理方式使用一次性或重复的扫描配置处理数据文件。
接下来,我们将概述解决方案,并引导您通过使用 OpenSearch Ingestion 中的 S3SQS 方法,将 CSV 文件从 Amazon S3 摄取到 OpenSearch Service。此外,我们还将演示如何使用 OpenSearch Dashboards 可视化摄取的数据。
以下图示概述了将 CSV 文件从 Amazon S3 摄取到 OpenSearch Service 的工作流程。
工作流程包括以下几个步骤:
用户通过 AWS 管理控制台或 AWS 命令行界面 (AWS CLI) 直接上传 CSV 文件到 Amazon S3,或者通过 Amazon S3 SDK 上传。Amazon SQS 接收到 Amazon S3 事件通知,这是一份 JSON 文件,包含元数据,如 S3 存储桶名称、对象键和时间戳。OpenSearch Ingestion 管道从 Amazon SQS 接收消息,从 Amazon S3 加载文件,并解析 CSV 数据。然后,它在 OpenSearch Service 域中创建索引并将数据添加到该索引。最后,您创建一个索引模式,并使用 OpenSearch Dashboards 可视化摄取的数据。OpenSearch Ingestion 提供了一个无服务器的摄取框架,让您只需几次点击即可轻松将数据摄取到 OpenSearch Service。
确保您满足以下先决条件:
您必须有权访问 AWS 帐户以设置此解决方案。您必须创建了 OpenSearch Service 域。有关详细信息,请参考 创建和管理 Amazon OpenSearch Service 域。Amazon SQS 提供了一种安全、持久和可用的托管队列,让您能够实现和解耦分布式软件系统和组件。创建一个 标准 SQS 队列,并为队列提供一个描述性名称,然后通过导航到 Amazon SQS 控制台,打开队列的详细信息并编辑 高级 选项卡上的访问策略进行更新。
以下是您可以参考的示例访问策略,以便更新访问策略:
json{ Version 20081017 Id exampleID Statement [ { Sid examplestatementID Effect Allow Principal { Service s3amazonawscom } Action SQSSendMessage Resource ltSQSQUEUEARNgt } ]}
SQS FIFO先进先出队列不支持作为 Amazon S3 事件通知的目标。要将 Amazon S3 事件的通知发送到 SQS FIFO 队列,您可以使用 Amazon EventBridge。
创建一个将作为 CSV 文件源的 S3 存储桶并启用 Amazon S3 通知。Amazon S3 通知会在存储桶中发生特定事件时调用操作。在此工作流中,任何类型为 S3ObjectCreated 的事件都会向上一步创建的 SQS 队列发送 Amazon S3 通知。有关如何配置 Amazon S3 通知的详细信息,请参考 配置存储桶以用于通知SNS 主题或 SQS 队列的逐步指南。
为 OpenSearch 管道创建一个 AWS 身份与访问管理 (IAM) 政策,并赋予以下权限:
在 Amazon SQS 上的读取和删除权限在 Amazon S3 上的 GetObject 权限描述域和在 OpenSearch Service 域上的 ESHttp 权限以下是一个示例策略:
json{ Version 20121017 Statement [ { Effect Allow Action esDescribeDomain Resource ltOPENSEARCHSERVICEDOMAINENDPOINTgtdomain/ } { Effect Allow Action esESHttp Resource ltOPENSEARCHSERVICEDOMAINENDPOINTgt/ } { Effect Allow Action s3GetObject Resource ltS3BUCKETARNgt/ } { Effect Allow Action [ sqsDeleteMessage sqsReceiveMessage ] Resource ltSQSQUEUEARNgt } ]}
信任关系定义哪些实体如 AWS 账户、IAM 用户、角色或服务可以假定特定的 IAM 角色。为 OpenSearch Ingestion 管道创建一个 IAM 角色osispipelinesamazonawscom,附加在上一步创建的 IAM 策略,并添加信任关系以允许 OpenSearch Ingestion 管道写入域。

管道是 OpenSearch Ingestion 用于将数据从源数据的来源迁移到接收端数据的去向的机制。OpenSearch Ingestion 提供开箱即用的 配置蓝图,帮助您快速设置管道,而无需从头编写配置。将 S3 存储桶设置为源,将 OpenSearch Service 域设置为接收端,使用以下蓝图配置 OpenSearch Ingestion 管道:
yamlversion 2s3pipeline source s3 acknowledgments true notificationtype sqs compression automatic codec newline #headerdestination ltcolumnnamesgt sqs queueurl ltSQSQUEUEURLgt aws region ltAWSREGIONgt stsrolearn ltSTSROLEARNgt processor csv columnnamessourcekey columnnames columnnames rowid orderid orderdate datekey contactname country city region subregion customer customerid industry segment product license sales quantity discount profit convertentrytype key sales type double convertentrytype key profit type double convertentrytype key discount type double convertentrytype key quantity type integer date match key orderdate patterns MM/dd/yyyy destination orderdatenew sink opensearch hosts ltOPENSEARCHSERVICEDOMAINENDPOINTgt index csvingestindex aws stsrolearn ltSTSROLEARNgt region ltAWSREGIONgt
在 OpenSearch Service 控制台上创建名为 mypipeline 的管道,保持默认容量设置,并在 管道配置 部分输入上述管道配置。
根据之前创建的 IAM 角色更新配置设置,使其能够从 Amazon S3 读取并写入 OpenSearch Service,还需更新 SQS 队列的 URL 及 OpenSearch Service 域的端点。
鲨鱼加速器官网要验证此解决方案,您可以使用数据集 SaaSSalescsv。该数据集包含一家软件即服务 (SaaS) 公司向其他公司B2B销售销售和营销软件的交易数据。您可以通过将 SaaSSalescsv 文件上传到 S3 存储桶来启动此工作流程,从而触发管道并在您之前创建的 OpenSearch Service 域中创建索引。
请按照以下步骤使用 OpenSearch Dashboards 验证数据。
首先,创建一个索引模式。索引模式用于定义一组共享相同命名约定的索引的逻辑分组。这使您能够通过单一查询或可视化,在所有匹配的索引中搜索和分析数据。例如,如果您在摄取月度销售数据时,将索引命名为 csvingestindex20240101 和 csvingestindex20240102,您可以将索引模式定义为 csv,以涵盖所有这些索引。
接下来,您可以创建可视化。可视化是探索和分析存储在 OpenSearch 索引中的数据的强大工具。您可以将这些可视化汇聚到实时 OpenSearch 仪表板中。OpenSearch 仪表板提供了一种用户友好的界面,用于创建多种类型的可视化,例如图表、图形、地图和仪表板,以从数据中获取洞见。
您可以通过创建的索引模式,以饼图的方式可视化按行业划分的销售数据。要创建饼图,请在 数据 选项卡上更新度量细节如下:
将 度量 设置为 切片将 聚合 设置为 求和将 字段 设置为销售额要在饼图中查看
电话:13594780397
联系人:周经理
邮箱:proportionate@qq.com
网址:https://www.qiyeseoer.com
地址:福安市艳摘谷187号