在 OpenSearch 仪表板中配置您的数据源 - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在 OpenSearch 仪表板中配置您的数据源

这是针对亚马逊 OpenSearch 服务直接查询 Amazon S3 的预发行文档,该文档处于预览版。文档和特征都可能会更改。我们建议您仅在测试环境中使用此特征,不要在生产环境中使用。有关预览条款和条件,请参阅 Amazon 服务条款中的测试版和预览

现在,您已创建数据来源,可以配置安全设置、定义 Amazon S3 表或设置加速数据索引。在查询数据之前,本节将引导您了解 OpenSearch 仪表板中数据源的各种用例。

要配置以下部分,必须先在 OpenSearch 仪表板中导航到您的数据源。在左侧导航的管理下,选择数据来源。在管理数据来源下,选择您在控制台中创建的数据来源的名称。

设置访问控制

在数据来源的详细信息页面上,找到访问控制部分,然后选择编辑。如果您安装了安全插件,请选择受限,然后选择要向哪些基于角色的组提供对新数据来源的访问权限。如果您只想让管理员访问数据来源,也可以选择仅管理员

重要

请注意,索引用于针对数据来源的任何查询,因此对给定数据来源的请求索引具有读取权限的用户可以读取针对该数据来源的所有查询,而对结果索引具有读取权限的用户可以读取针对该数据来源的所有查询的结果。

定义 Amazon Glue Data Catalog 表

从 OpenSearch 服务直接查询到 Amazon S3 使用中的 Spark 表 Amazon Glue Data Catalog。您可以使用 Amazon Glue 爬网程序 来抓取您的数据,这将为您创建一个表。或者,您也可以从查询工作台手动创建表。

要管理数据来源中现有的数据库和表,或创建要对其使用直接查询的新表,请在数据来源详细信息页面上选择定义表选项。此操作会将您带到查询工作台插件页面。

要设置一个包含示例数据的表,供您在下一节中浏览和用于加速,请运行以下查询:

CREATE EXTERNAL TABLE IF NOT EXISTS datasourcename.gluedatabasename.gluetablename ( `@timestamp` TIMESTAMP, clientip STRING, request STRING, status INT, size INT, year INT, month INT, day INT) USING json PARTITIONED BY(year, month, day) OPTIONS (path 's3://my-bucket/data/http_log', compression 'bzip2')

创建该表后,运行以下查询以确保其与直接查询兼容:

MSCK REPAIR TABLE datasourcename.databasename.tablename

加速您的查询

在数据来源详细信息页面上,选择加速性能选项。为了确保在 Amazon S3 中快速使用数据,您可以设置三种不同的加速方式来将数据编入 OpenSearch 服务索引,即跳过索引、物化视图和覆盖索引。

跳过索引

使用跳过索引,您只能为 Amazon S3 中所存储数据的元数据编制索引。查询带有跳过索引的表时,查询计划程序会引用该索引并重写查询以有效地定位数据,而不是扫描所有分区和文件。这使跳过索引可以快速缩小存储数据具体位置的范围。

在配置要从中使用的 Spark 表时 Amazon Glue Data Catalog, OpenSearch 仪表板会询问您是否要在表上创建跳过的索引。您可以在那里创建一个跳过索引,也可以在完成表配置后使用加速性能用例创建一个索引。

CREATE SKIPPING INDEX ON datasourcename.gluedatabasename.gluetablename ( year PARTITION, month PARTITION, day PARTITION, hour PARTITION )

实体化视图

借助实体化视图,您可以使用复杂的查询(例如聚合)为控制面板可视化提供支持。物化视图会将少量数据摄取到 OpenSearch 服务存储中。 OpenSearch 然后,服务会从摄取的数据中形成一个索引,您可以将其用于可视化。您可以使用管理实例化视图索引Amazon OpenSearch Service 中的索引状态管理,就像管理任何其他 OpenSearch 索引一样。

使用以下查询为您在 定义 Amazon Glue Data Catalog 表 中创建的 http_logs 表创建新的实体化视图:

CREATE MATERIALIZED VIEW datasourcename.gluedatabasename.viewname_view AS SELECT window.start AS `start.time`, COUNT(*) AS count FROM datasourcename.gluedatabasename.gluetablename WHERE status != 200 GROUP BY TUMBLE(`@timestamp`, '1 Minutes') WITH ( auto_refresh = true, refresh_interval = '1 Minutes', checkpoint_location = 's3://my-bucket/data/http_log/checkpoint_http_count_view', watermark_delay = '10 Minutes' );

覆盖索引

使用覆盖索引,您可以从表中的指定列摄取数据。这是三种索引类型中性能最高的一种。由于 S OpenSearch ervice 会从所需列中提取所有数据,因此您可以获得更好的性能并可以执行高级分析。

与实例化视图一样,S OpenSearch ervice 会根据覆盖索引数据创建新索引。您可以将此新索引用于仪表板可视化和其他 OpenSearch 服务功能,例如异常检测或地理空间功能。您可以使用管理覆盖视图索引Amazon OpenSearch Service 中的索引状态管理,就像管理任何其他 OpenSearch 索引一样。

使用以下查询为您在 定义 Amazon Glue Data Catalog 表 中创建的 http_logs 表创建新的覆盖索引:

CREATE INDEX status_clientip_and_day ON datasourcename.gluedatabasename.gluetablename ( status, day, clientip ) WITH ( auto_refresh = true, refresh_interval = '5 minute', checkpoint_location = 's3://my-bucket/data/http_log/checkpoint_status_and_day' )