Python
快速导航
设置
Python 查询运行器允许你运行任意 Python 3 脚本,并将脚本中声明的 result
变量的内容可视化。出于安全考虑,默认情况下是禁用的。要启用它,请将其添加到你的环境中
REDASH_ADDITIONAL_QUERY_RUNNERS: "redash.query_runner.python"
现在你可以从设置 > 数据源创建一个 Python 数据源。
- 在运行脚本之前导入的模块 允许你定义在主机服务器上通过
pip
安装的哪些模块可以在 Redash 查询中导入。 - AdditionalModulesPaths 是一个逗号分隔的绝对路径列表,位于 Redash 服务器上,指向在 Redash 查询时应可用的 Python 模块。 这对于无法通过
pip
获取的私有模块非常有用。 - AdditionalBuiltins Redash 自动允许 25 个被认为是安全的 Python 内置函数。 你可以在此处指定其他函数。
以下是默认的内置函数:abs
, all
, any
, bool
, complex
, dict
, divmod
, enumerate
, filter
, float
, int
, len
, list
, map
, max
, min
, next
, reversed
, round
, set
, slice
, sorted
, str
, sum
, tuple
编写查询
Redash 通过检查脚本执行的最终状态中名为 result
的变量来构建结果表。
result
是一个包含两个键的字典:columns
和 rows
。
-
columns
键应该公开一个字典列表,描述要包含在数据集中的列。每个字典将包含三个键name
type
friendly_name
-
rows
键应该公开一个字典列表,表示每一行数据。 每个字典的键应该与你的columns
字典中描述的name
键匹配。
以下数据类型支持用于列
- text
- integer
- float
- boolean
- string
- datetime
- date
下面是一个返回数据的示例
result = {
"columns": [
{
"name": "date",
"type": "date",
"friendly_name": "date"
},
{
"name": "day_number",
"type": "integer",
"friendly_name": "day_number"
},
{
"name": "value",
"type": "integer",
"friendly_name": "value"
},
{
"name": "total",
"type": "integer",
"friendly_name": "total"
}
],
"rows": [
{
"value": 40832,
"total": 53141,
"day_number": 0,
"date": "2014-01-30"
},
{
"value": 27296,
"total": 53141,
"day_number": 1,
"date": "2014-01-30"
},
{
"value": 22982,
"total": 53141,
"day_number": 2,
"date": "2014-01-30"
}
]
}
如果你在 Redash 中执行上面的代码片段,它将返回此表
date | day_number | value | total |
---|---|---|---|
2014-01-30 | 0 | 40832 | 53141 |
2014-01-30 | 1 | 27296 | 53141 |
2014-01-30 | 2 | 22982 | 53141 |