雪花Grafana数据源
雪花数据源插件允许您查询和可视化雪花从Grafana内部数据指标。
需求
这个插件有以下要求:
插件安装雪花数据源
安装的数据源,请参考安装
配置雪花
配置需要雪花雪花数据源用户提供用户名和密码。
Grafana建议创建一个新用户有限的权限为这个数据源。
创建一个用户
为了连接到雪花,您必须创建一个用户或使用一个现有的验证。这个用户将运行所有查询从Grafana发送。
如果你想要单独的用户不同的查询/工作负载运行,那么您应该创建多个雪花数据源使用不同的设置。
在雪花创建一个用户,您必须登录到您的雪花实例并运行创建用户命令。
授予一个角色
现在雪花创建用户时,用户必须被授予角色使用授予角色命令。给予用户角色允许用户执行操作所允许的这个角色。
这个角色是定义了用户访问仓库和表。
在Grafana配置数据源
这些用于连接设置是一样的连接通过SnowSQL
添加一个数据源通过填写以下字段:
场 | 描述 |
---|---|
的名字 | 这个雪花数据源的名称 |
账户 | 账户的名字是雪花账户由雪花。在URL中收到的雪花帐户配置后,帐户名称整个左边的字符串snowflakecomputing.com 。如果不是雪花实例us-west-2 ,那么该地区必须包括帐户名称。例子:xyz123.us-east-1 如果不是雪花实例亚马逊网络服务 ,那么这个平台也必须包含在帐户名称。例子:xyz123.us -东- 1. - gcp |
地区 | 弃用的帐户。区域指定区域雪花实例住在哪里 |
用户名 | 用户名的帐户查询雪花 |
验证类型 | 身份验证类型。您可以使用密码身份验证或密钥对身份验证 |
密码 | 密码的账户查询雪花 |
私钥 | 输入您的私钥在这个领域如果你喜欢使用基于密钥的认证。 |
角色 | 这个选项允许用户连接到雪花实例使用一个角色,不是默认为用户。这个角色必须授予用户使用授予角色 命令才能被假定。 |
仓库 | 仓库使用默认查询 |
数据库 | 使用默认的数据库查询 |
模式 | 模式使用默认查询 |
TimeInterval | 可选的。的下限__interval美元 和__interval_ms美元 宏。如果留空,十年代 将被用作默认吗 |
默认查询 | 可选的。默认查询使用当添加一个新的雪花查询面板 |
默认变量查询 | 可选的。默认查询使用当添加一个新的雪花查询到仪表板变量 |
密钥对身份验证
您可以使用增强的安全密钥对身份验证来代替基本身份验证。您可以生成公钥/私钥中指定雪花文档。
如果您正在使用密钥对身份验证,确保你有更新了rsa_public_key
在雪花和提供相应的数据源配置用户名和私钥。
OAuth身份验证
您可以通过使用OAuth身份验证令牌代表用户登录Grafana雪花。以下提供一些说明使用Azure广告作为OAuth提供者。
使用Azure广告设置OAuth
按照指令在这里更新您在步骤1中创建的应用程序,并添加一个雪花的客户机应用程序。
更新作用域你在grafana在步骤1中创建。ini文件。添加您在步骤2中创建的api。作用域类似于:
范围= api: / / 8 c1a0b1c - 6 - bb0 - 4190 a730 - 8 a1c34237619 /会话:角色openid offline_access邮件概要文件
- 重启Grafana和登录Azure的广告。创建一个雪花数据源使用的身份验证类型:OAuth和切换向前OAuth身份。保存并测试确认标记被通过,是有效的。
如果我得到一个无效的字符的错误呢?第2步指令提供方法来验证令牌将提供额外的信息为什么它是无效的。
选择系统verify_external_oauth_token美元(“< ACCESS_TOKEN >”);
额外的链接:
Azure OAuth。遵循“代表用户”流程:https://docs.snowflake.com/en/user-guide/oauth-azure测试与邮递员:https://community.snowflake.com/s/article/How-To-Configure-Postman-for-testing-SQL-API-with-OAuth设置一个雪花安全集成:https://community.snowflake.com/s/article/Create-Security-Integration-User-To-Use-With-OAuth-Client-Token-With-Azure-AD
配置数据源的配置
可以使用配置文件配置数据源Grafana准备系统。你可以阅读更多关于它是如何工作的和所有的设置可以设置数据源配置文档页面
例子:
数据源:名称:雪花类型:grafana-snowflake-datasource访问:代理basicAuth:假可编辑:真正启用:真实jsonData:账户:xyz123.east-us-2。azure用户名:grafana-user authType:密码timeInterval: 10 s defaultQuery:选择\ n \台币__timeGroup (< time_column >, __interval美元)随着时间,\ n \ t < value_column >从< metric_table > \ n \ n __timeFilter美元(时间)defaultVariableQuery:从< metric_table >限制选择不同的< column_name > 1000 defaultInterpolation:“#参考://www.tubolov.com/docs/grafana/latest/variables/advanced-variable-format-options/ secureJsonData:密码:grafana-password -名称:雪花计费数据类型:grafana-snowflake-datasource访问:代理basicAuth:假可编辑:真正启用:真正的jsonData:账户:xyz123.us-east1。gcp用户名:grafana-admin-user数据库:雪花角色:ACCOUNTADMIN timeInterval: 10 s defaultQuery:选择\ n \台币__timeGroup (< time_column >, __interval美元)随着时间的推移,\ n \ t < value_column >从< metric_table > \ n \ n __timeFilter美元(时间)defaultVariableQuery:从< metric_table >限制选择不同的< column_name > 1000 defaultInterpolation:主题是#参考://www.tubolov.com/docs/grafana/latest/variables/advanced-variable-format-options/ secureJsonData:密码:grafana-admin-password
查询的数据源
所提供的查询编辑器是一个标准的SQL查询编辑器。Grafana包括一些宏协助编写更复杂的timeseries查询。
宏
宏 | 描述 | 输出示例 |
---|---|---|
美元__timeFilter(列) |
__timeFilter美元 过滤器的列 由面板时间范围。列 必须有字段没有时区。 |
CONVERT_TIMEZONE (UTC, UTC,时间)< 2017 - 07 - 18 t11:15:52z和CONVERT_TIMEZONE (UTC, UTC,时间)> 2017 - 07 - 18 t11:15:52z |
__timeFilter美元(列,时区) |
__timeFilter美元 过滤器的列 由面板从UTC时间范围和转换时区 。列 必须有字段没有时区。 |
CONVERT_TIMEZONE (UTC,‘美国/ New_York’,时间)< 2017 - 07 - 18 t11:15:52z和CONVERT_TIMEZONE (UTC,‘美国/ New_York’,时间)> 2017 - 07 - 18 t11:15:52z |
美元__timeTzFilter(列) |
__timeTzFilter美元 过滤器的列 由面板时间范围。列 应该有字段,包括时区。 |
CONVERT_TIMEZONE (UTC,时间)< 2017 - 07 - 18 t11:15:52z和CONVERT_TIMEZONE (UTC,时间)> 2017 - 07 - 18 t11:15:52z |
__timeTzFilter美元(列,时区) |
__timeTzFilter美元 过滤器的列 由面板时间范围和当前时区转换时区 。列 应该有字段,包括时区。 |
CONVERT_TIMEZONE(美国/ New_York,时间)< 2017 - 07 - 18 t11:15:52z和CONVERT_TIMEZONE(美国/ New_York,时间)> 2017 - 07 - 18 t11:15:52z |
美元__timeGroup(列,__interval美元) |
__timeGroup美元 组时间戳的间隔只有1点每__interval美元 在图上 |
TIME_SLICE (TO_TIMESTAMP (created_ts), 1,“小时”,“开始”) |
__timeGroup美元(列,__interval美元,时区) |
__timeGroup美元 组时间戳的间隔只有1点每__interval美元 图形和转换时区 |
TIME_SLICE (TO_TIMESTAMP (CONVERT_TIMEZONE (UTC,美国/ Los_Angeles, created_ts)), 1,“小时”,“开始”) |
例子
表可视化
最好查询在雪花将由一个表可视化表示。任何查询会显示一个表中的数据。如果它可以查询,那么它可以放在一个表。
这个例子中返回结果的表显示:
选择{column_1}, {column_2}{表};
Timeseries /图形可视化
timeseries /图形可视化,有几个要求:
- 一个列
日期
或datetime
必须选择类型 - 的
日期
列必须按升序(使用命令列ASC
) - 一个数字列也必须选择
做出更合理的图,一定要使用__timeFilter美元
和__timeGroup美元
宏。
例子timeseries查询:
选择avg (execution_time) average_execution_time, __timeGroup美元(start_time, __interval美元),从account_usage query_type。query_history在美元__timeFilter (start_time) group by query_type start_time start_time秩序,query_type ASC;
检查查询
雪花不因为Grafana支持宏,完全呈现查询,可以直接复制/粘贴到雪花,查询中是可见的检查员。查看全部插入查询,点击查询检查按钮,查询将是可见的在“查询”选项卡。
模板和变量
添加一个新的雪花查询变量,请参考添加一个查询变量。用你的雪花数据源的数据源后可以查询:
任何值查询从雪花表可以作为一个变量。一定要避免选择太多的值,因为这可能会导致性能问题。
如果变量查询返回两列,第二列的值将被用作显示值
使用变量
在创建一个变量,您可以使用它在你的雪花查询使用变量的语法。关于变量的更多信息,请参考模板和变量。
在查询中使用的变量时,你也可以选择设置插值格式。您还可以配置数据源配置默认的插值格式。
单一变量
如果一个变量返回单个值,您可以使用以下格式之一。以下示例假设,你有设置主题是
为默认插值和你有两个变量queryTypeSingle
和限制
。他们的价值观选择
和2
分别。
从account_usage选择query_type。query_history query_type = $ {queryTypeSingle}限制${限制:原始}
将翻译成
从account_usage选择query_type。query_history query_type =‘选择’限制10
设置默认变量插值类型是在version 1.2中引入的。从这个版本,您可以设置默认插值类型
主题是
1.2之前版本的插件或如果你使用没有一个
作为默认插值类型,相同的查询必须写成以下
从account_usage选择query_type。query_history query_type = " $ {queryTypeSingle}”限制${限制:原始}
使用是多值变量插值
当使用一个变量返回多个选项,您可以使用下面的方法。以下示例假设,你有设置主题是
为默认插值和变量queryTypeMulti
和限制
。他们的价值观创建、选择
和2
分别。
从account_usage选择query_type。query_history query_type在($ {queryTypeMulti})限制${限制:原始}
将翻译成
从account_usage选择query_type。query_history query_type在(“创造”,“选择”)限制10
多值变量使用正则表达式
使用一个变量,有多个值,您可以使用正则表达式修改选项和正则表达式
雪花函数。如。${变量:正则表达式}
例如,这个查询将过滤器只使用查询类型
选择的queryType
变量:
…和query_type regexp的$ {queryType:正则表达式}”……
这个查询转化为:
…下降和query_type regexp”(描述| CREATE_USER | | TRUNCATE_TABLE |改变)”……
可视化数据日志
与日志格式中选择查询,你可以想象中的数据日志查看器在资源管理器中。当查询日志格式,您的查询应该至少有一个列和一个字符串/内容列。可选地,查询可以有第三列水平设置日志级别的特定行。支持日志级别和他们的关键字中可以找到grafana日志集成文档站点。如果查询返回任何额外的列,他们将被视为附加字段/日志中发现字段。
例如,下面是有效的日志查询。
选择“你好foo”作为“内容”,(时间戳“2021-12-31”)作为“start_time”,“警告”,“水平”联盟选择“你好棒”作为“内容”,(时间戳的2021-12-30 14:12:59)作为“start_time”,“错误”“水平”联盟选择“你好巴兹”作为“内容”,(时间戳“2021-12-30”)作为“start_time”,“警告”,“水平”联盟选择“你好qux”作为“内容”,(时间戳“2021-12-29”)作为“start_time”,“信息”是“水平”联盟选择“hello world”作为“内容”,(时间戳“2021-12-28”)作为“start_time”,“未知”“水平”联盟选择“你好用户”作为“内容”,(时间戳“2021-12-27”)作为“start_time”,“信息”是“水平”
导入一个仪表板雪花
捆绑雪花仪表板需要与一个数据源ACCOUNTADMIN
角色查看账单数据。配置部分中有一个这样的例子。
遵循这些指令导入一个仪表板。
进口的仪表板可以在数据源配置> >选择你的雪花数据源>选择仪表板选项卡可用预先做好的仪表板。