

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

# 连接到 Snowflake 数据来源
<a name="snowflake-datasource-for-AMG"></a>

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

**注意**  
此数据来源仅适用于 Grafana Enterprise。有关更多信息，请参阅 [管理对 Enterprise 插件的访问](upgrade-to-enterprise-plugins.md)。  
此外，在支持版本 9 或更高版本的工作区中，此数据来源可能需要您安装相应的插件。有关更多信息，请参阅 [使用插件扩展您的工作区](grafana-plugins.md)。

## 概述
<a name="snowflake-overview"></a>

### 什么是 Snowflake？
<a name="what-is-snowflake"></a>

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

### 充分利用 Snowflake 和 Amazon Managed Grafana
<a name="making-the-most-of-snowflake-and-AMG"></a>

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

 **编写来自不同来源的面板：**使用预构建和自定义的控制面板，将来自许多不同数据来源的数据整合到一个窗格中。

 **在用户级别转换和计算：**用户可以转换数据，并对他们看到的数据执行各种计算，从而减少数据准备工作。

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

### 功能
<a name="snowflake-features"></a>

 **查询编辑器：**该查询编辑器是一款 Smart SQL 自动完成编辑器，使您能够可视化时间序列或表数据、处理 SQL 语法错误以及自动完成基本的 SQL 关键字。

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

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

 **警报：**在 Snowflake 中设置基于警报的指标存储 

 **查询变量：**基于 Snowflake 数据在 Grafana 中创建模板变量，并在 Snowflake 查询中包含变量以制作交互式控制面板。

 **多指标查询：**编写一个返回多个指标的查询，每个指标都在自己的列中 

## Snowflake 插件入门
<a name="get-started-with-the-snowflake-plugin"></a>

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

### 步骤 1：设置 Snowflake 数据来源
<a name="set-up-the-snowflake-data-source"></a>

 要配置数据来源，请选择**配置**、**数据来源**、**添加数据来源**、Snowflake。

 添加您的身份验证详细信息，即可查询数据来源！

 以下配置字段可用。


|  Name  |  说明  | 
| --- | --- | 
|  Account  |  Snowflake 账户。 | 
|  用户名  |  服务账户的用户名。 | 
|  密码  |  服务账户的密码。 | 
|  架构（可选）  |  设置查询的默认架构。 | 
|  仓库（可选）  |  为查询设置默认仓库。 | 
|  数据库（可选）  |  为查询设置默认数据库。 | 
|  角色（可选）  |  担任查询角色。 | 

### 步骤 2：为您的 Snowflake 数据编写查询
<a name="write-queries-for-your-snowflake-data"></a>

 在控制面板中创建一个面板，然后选择一个 Snowflake 数据来源开始使用查询编辑器。
+  日期/时间可以出现在查询中的任何地方，前提是它被包含在内。
+  必须包含数字列。这可以是聚合或 int/float 列。
+  或者，如果您的时间序列数据针对不同的指标进行了格式化，则可以包含字符串列来创建单独的数据序列。

#### Snowflake 查询的布局
<a name="layout-of-a-snowflake-query"></a>

```
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 查询格式
<a name="sql-query-format-for-timeseries-group-by-interval"></a>

```
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 查询格式
<a name="sql-query-format-for-tables"></a>

```
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：创建和使用模板变量
<a name="snowflake-create-and-use-template-variables"></a>

#### 使用模板变量
<a name="snowflake-using-template-variables-1"></a>

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

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

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

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

#### 使用 Snowflake 数据来源创建变量
<a name="using-the-snowflake-datasource-to-create-variables"></a>

 在控制面板设置中，选择**变量**，然后选择**新建**。

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

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

 示例：

```
SELECT DISTINCT query_type from account_usage.query_history;
```

 将为您提供以下变量：

```
All DESCRIBE USE UNKNOWN GRANT SELECT CREATE DROP SHOW
```

### 第 4 步：设置警报
<a name="snowflake-set-up-an-alert"></a>

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

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

### 步骤 5。创建注释
<a name="snowflake-create-an-annotation"></a>

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

 要创建注释，请在控制面板设置中选择**注释**和**新建**，然后选择 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 登录的注释。

## 其他功能
<a name="additional-functionality"></a>

### 使用“显示名称”字段
<a name="snowflake-using-display-name"></a>

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

### 数据来源权限
<a name="snowflake-data-source-permissions"></a>

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

### 了解您的 Snowflake 账单和使用情况数据
<a name="understand-your-snowflake-billing-and-usage-data"></a>

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

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

 此控制面板使用 ACCOUNT\$1USAGE 数据库，并要求查询者具有 ACCOUNTADMIN 角色。要安全地执行此操作，请创建一个新的 Grafana 数据来源，该数据来源中包含具有 ACCOUNTADMIN 角色的用户。然后在变量中选择该数据来源。