Snowflake - Amazon Managed Grafana

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

Snowflake

借助 Snowflake Enterprise 数据源,您可以在 Grafana 中将您的 Snowflake 数据与 Grafana 中的所有其他数据源以及上下文中的日志和指标数据一起可视化。该数据源包括强大的预输入查询编辑器,支持复杂的注释,设置警报阈值,控制访问权限和权限等。

注意

此数据源仅适用于 Grafana 企业版。有关更多信息,请参阅管理对企业插件的访问权限

此外,在支持版本 9 或更高版本的工作空间中,此数据源可能需要您安装相应的插件。有关更多信息,请参阅Grafana 插件

概述

什么是雪花?

Snowflake 提供基于云的数据存储和分析服务,通常称为 “数据 warehouse-as-a-service”,为数据仓库、数据湖、数据工程、数据科学、数据应用程序开发和数据共享提供解决方案。在过去的几年中,Snowflake之所以广受欢迎,是因为它能够使用基于云的硬件和软件以经济实惠的方式存储和分析数据;最近,Snowflake实现了有史以来最大规模的软件首次公开募股。如今,许多公司使用 Snowflake 作为其主要数据库来存储应用程序和业务数据,例如交易计数、活跃用户会话,甚至是时间序列和指标数据。

充分利用 Snowflake 和亚马逊托管 Grafana

无需移动 Snowflake 数据即可对其进行可视化:Grafana 独特的架构可直接查询数据所在的位置,而不是将其移动并支付冗余存储和摄取费用。

组成来自不同来源的面板:使用预先构建和自定义的仪表板,将来自许多不同数据源的数据汇总到一个窗格中。

在用户层面进行转换和计算:用户可以转换数据并对他们看到的数据进行各种计算,从而减少了数据准备工作。

在面板中进行合并、计算和可视化:创建混合数据源面板,显示来自 Snowflake 和其他来源的相关数据。

功能

查询编辑器:查询编辑器是一款 Smart SQL 自动完成编辑器,允许您可视化时间序列或表数据、处理 SQL 语法错误以及自动完成基本的 SQL 关键字。

数据源权限:控制谁可以在 Grafana 中查看或查询 Snowflake 数据

注释:在任何 Grafana 图上叠加 Snowflake 事件,将事件与其他图形数据关联起来

警报:在 Snowf lake 中设置存储的基于警报的指标

查询变量:基于 S nowflake 数据在 Grafana 中创建模板变量,并在 Snowflake 查询中包含变量以制作交互式仪表板。

多指标查询:编写一个返回多个指标的查询,每个指标都在自己的列中

开始使用 Snowflake 插件

以下是开始使用 Grafana 中的 Snowflake 插件的五个快速步骤:

步骤 1:设置 Snowflake 数据源

要配置数据源,请选择配置、数据源、添加数据源、Snowflake。

添加您的身份验证详细信息,即可查询数据源!

以下配置字段可用。

名称 描述
账户 Snowflake 账号。
用户名 服务帐号的用户名。
密码 服务帐户的密码。
架构(可选) 设置查询的默认架构。
仓库(可选) 为查询设置默认仓库。
数据库(可选) 为查询设置默认数据库。
角色(可选) 担任查询角色。

第 2 步:为你的 Snowflake 数据编写查询

在仪表板中创建一个面板,然后选择一个 Snowflake 数据源开始使用查询编辑器。

  • 日期/时间可以出现在查询中的任何地方,前提是它包含在内。

  • 必须包含数字列。这可以是聚合,也可以是整数/浮点列。

  • 或者,如果您的时间序列数据是针对不同的指标设置格式的,则可以包含字符串列来创建单独的数据序列。

Snowflake 查询的布局

select <time_column>, <any_numerical_column> <other_column_1>, <other_column_2>, <...> from <any_table> where $__timeFilter(<time_column>) // predefined where clause for time range and $<custom_variable> = 1 // custom variables start with dollar sign

按间隔分组的时间序列的 SQL 查询格式

select $__timeGroup(created_ts, '1h'), // group time by interval of 1h <time_column>, <any_numerical_column>, <metric_column> from <any_table> where $__timeFilter(<time_column>) // predefined where clause for time range and $<custom_variable> = 1 // custom variables start with dollar sign group by <time_column>

表的 SQL 查询格式

select <time_column>, // optional if result format option is table <any_column_1> <any_column_2> <any_column_3> from <any_table> where $__timeFilter(time_column) // macro for time range, optional if format as option is table and $<custom_variable> = 1 // custom variables start with dollar sign

步骤 3:创建和使用模板变量

使用模板变量

您可以在查询中包含模板变量,如以下示例所示。

select <column> from <table> WHERE column >= '$variable'

以下示例演示了在查询中使用多值变量。

select <column> from <table> WHERE <column> regexp '${variable:regex}'

使用 Snowflake 数据源创建变量

在仪表板设置中,选择变量,然后选择新建

使用 “查询” 变量类型,选择 Snowflake 数据源作为 “数据源”。

重要

确保在变量查询中只选择一列。

例如:

SELECT DISTINCT query_type from account_usage.query_history;

会给你这些变量:

All DESCRIBE USE UNKNOWN GRANT SELECT CREATE DROP SHOW

步骤 4:设置警报

您可以针对特定的 Snowflake 指标或您创建的查询设置提醒。

在查询编辑器中选择警报选项卡按钮,然后选择创建警报

第 5 步。创建注释

标注允许您在图表上叠加事件。

要创建注释,请在仪表板设置中选择 “批注” 和 “建”,然后选择 Snowflake 作为数据源。

由于注释是事件,因此它们需要至少一个时间列和一列来描述事件。

以下示例代码显示了一个查询,用于注释所有失败的 Snowflake 登录。

SELECT EVENT_TIMESTAMP as time, EVENT_TYPE, CLIENT_IP FROM ACCOUNT_USAGE.LOGIN_HISTORY WHERE $__timeFilter(time) AND IS_SUCCESS!='YES' ORDER BY time ASC;

And

  • 时间:TIME

  • 标题:EVENT_TYPE

  • 文本:CLIENT_IP

这将在您的仪表板面板上叠加所有登录 Snowflake 失败的注释。

其他功能

使用 “显示名称” 字段

此插件使用 “选项” 面板的 “字段” 选项卡中的 “显示名称” 字段,根据图例键的名称、标签或值来缩短或更改图例键。其他数据源使用自定义alias功能来修改图例键,但是 Display Name 函数是更一致的方式。

数据源权限

在数据源配置页面中选择 “权限” 选项卡以启用数据源权限,从而限制对 Snowflake 的访问权限。在权限页面上,管理员可以启用权限并将查询权限限制为特定的用户和团队。

了解您的 Snowflake 账单和使用数据

在 Snowflake 数据源中,您可以导入账单和使用情况控制面板,显示有用的账单和使用量信息。

在 Snowflake 数据源配置页面中添加控制面板:

此控制面板使用 ACCOUNT_USAGE 数据库,并要求查询者具有 ACCOUNTADMIN 角色。为安全地执行此操作,请创建一个新的 Grafana 数据源,该数据源中包含具有账户管理员角色的用户。然后在变量中选择该数据源。