数据查询
数据查询
数据查询
查询是Studio的核心功能,是后续数据操作的基础。点击导航栏“创建查询”按钮,用户可以选择希望对数据使用的查询方式。Studio提供三种查询方式:快捷查询、条件查询和SQL查询。
快捷查询
快捷查询模式,可快速实现简单的筛选和聚合,支持后续的可视化分析操作。
选择数据
快捷查询支持在数据表和已有查询结果上建立新的查询,示例将使用Palo Studio自带的数据库sampledata进行操作,需要先选定进行查询的数据库和数据表。
显示详细数据表
选定数据表后可以在页面中查看数据表的详细数据。点击数据表字段中的主键的数值,可以查看其在表中唯一标识的详细信息。例如,数据表orders中的主键为“编号”。
直接点击其他字段的数值,数字型和日期型的字段可以在弹出的小操作框中进行简单的筛选操作,包括小于、等于、不等于、大于;文字型的字段可以进行筛选操作包括等于、不等于。点击对应筛选条件后,会立刻得到筛选结果。
- 小于:筛选得到对应字段的值小于选中字段的值的行记录
- 等于:筛选得到对应字段的值等于选中字段的值的行记录
- 不等于:筛选得到对应字段的值不等于等于字段的值的行记录
- 大于:筛选得到对应字段的值大于选中字段的值的行记录
例如,当选择“等于”作为筛选条件后,数据表的名称下方会显示筛选标签。点击标签右侧的删除键,可以删除该筛选条件,数据表恢复为原始状态;点击筛选标签本身,可以根据字段的属性设置更为详细的筛选条件,具体地可见于“筛选”一节中的说明。
显示编辑器
快捷查询支持直接对数据进行筛选、聚合操作;若需完成更复杂的操作,用户可以点击数据表右上方的“显示编辑器”按钮,进入条件查询的编辑页面,具体地可见于“条件查询”一节中的说明。此处将详细介绍筛选与聚合的操作。
筛选
筛选功能可通过增加某些标准以实现数据范围的缩小。点击页面右侧的筛选按钮打开侧边栏,侧边栏中会显示该表中的所有字段,以及和该表相关联的表中的所有字段。
不同的筛选条件适用于不同的选中的字段类型。字段主要有三种类型:文本型、数字型,日期型。
-
文本型:文本型字段可添加是、不是、包含、不包含、为空、不为空、以...开始、以...结束等筛选条件。
- 是:筛选得到对应字段是所设置的文字的行
- 不是:筛选得到对应字段不是所设置的文字的行
- 包含:筛选得到对应字段包含了所设置的文字的行
- 不包含:筛选得到对应字段没有包含所设置的文字的行
- 为空:筛选得到对应字段没有文字的行
- 不为空:筛选得到对应字段有文字的行
- 以...开始:筛选得到对应字段开始部分的文字是所设置的文字的行
- 以...结束:筛选得到对应字段结束部分的文字是所设置的文字的行
-
数字型:数字型字段可添加等于、不等于、大于、小于、介于、大于或等于、小于或等于、为空、不为空 等筛选条件。
- 等于:筛选得到对应字段的值等于所设置的值的行
- 不等于:筛选得到对应字段的值不等于所设置的值的行
- 大于:筛选得到对应字段的值大于所设置的值的行
- 小于:筛选得到对应字段的值小于所设置的值的行
- 介于:筛选得到对应字段的值介于所设置的两个值之间的行
- 大于或等于:筛选得到对应字段的值大于或等于所设置的值的行
- 小于或等于:筛选得到对应字段的值小于或等于所设置的值的行
- 为空:筛选得到对应字段没有值的行
- 不为空:筛选得到对应字段有值的行
-
日期型:日期型字段可以选择绝对的时间范围,或相对的之前或之后的一段时间。日期型筛选支持通过日历、输入框等两种方式实现。
- 前:筛选得到对应字段的日期值是当前日期值前一段时间范围(天/周/月/年/分钟/小时)内的行记录,可以根据需要选择是否包括当前日期(天/周/月/年/分钟/小时)
- 下一个:筛选得到对应字段的日期值是当前日期值后一段时间范围(天/周/月/年/分钟/小时)内的行记录,可以根据需要选择是否包括当前日期(天/周/月/年/分钟/小时)
- 当前:筛选得到对应字段的日期值是当前时间范围(天/周/月/年)内的行记录
- 早于:筛选得到对应字段的日期值是早于所设置的日期值的行记录,可以根据需要添加具体时间(24时制)
- 晚于:筛选得到对应字段的日期值是晚于所设置的日期值的行记录,可以根据需要添加具体时间(24时制)
- 固定:筛选得到对应字段的日期值是等于所设置的日期值的行记录,可以根据需要添加具体时间(24时制)
- 介于:筛选得到对应字段的日期值介于所设置的两个日期值之间的行记录,可以根据需要添加具体时间(24时制)
- 为空:筛选得到对应字段没有日期值的行记录
- 不为空:筛选得到对应字段有日期值的行记录
另外,如果以上筛选条件不能满足需求,可通过自定义的方式创建更多筛选条件。输入字符后,Studio将会自动显示可选择填充的完整的公式、字段、符号等;将光标放在公式的参数位置,Studio会展示该公式的具体使用方法。例如常用公式——前30天
- 聚合
聚合功能可实现特定条件下的数据汇总,可以分为两个步骤:设置聚合条件和设置分组条件。点击页面右侧的聚合按钮打开侧边栏。
聚合条件包括基础指标和共同指标。Palo Studio提供计数,总和,平均值,去重计数,累计求和,累计行数,标准差,最小值,最大值 等基础指标;用户还可以根据需要在管理员界面设置共同指标。选择好指标后,Palo Studio会展示可执行该指标的字段。
默认指标是为“计数”,可以点击其修改为其他指标;用户也可以根据需要选择多重指标,点击“添加指标”即可。
- 总行数:数据所占行数的总和。
- 求和:指定字段所有数值的总和。
- 平均值:指定字段所有数值的平均值。
- 去重计数:指定字段所有互不重复的值的总数。
- 累计求和:指定字段的数值的加和。例如: $$ X_2=x_1+x_2, X_3=x_1+x_2+x_3 $$
- 累计行数:数据所占行数的加和。
- 标准差:指定字段所有数值的标准差。
- 最小值:指定字段的最小值。
- 最大值:指定字段的最大值。
如果数据需要进行分组,可在下方“分组条件”继续选择字段进行分组。Palo Studio将会自动显示默认的可视化效果或图标;用户可以根据需要设置分组的大小单位、分组的数量等。
- 文本型:文本型字段可添加 是、不是、包含、不包含、为空、不为空、以...开始、以...结束 等分组条件。
- 数字型:数字型字段可添加 自动间隔、间隔10、间隔50、间隔100、无间隔 等分组条件。
- 日期型:日期型字段可添加分钟、小时、天、周、月、季度、年、每分钟、每小时、每天(周度)、每天(月度)、每天(年度)、每周、每月、每季度 等分组条件。其中,分钟、小时、天、周、月、季度 等分组条件强调聚合的值随时间的趋势变化;每分钟、每小时、每天(周度)、每天(月度)、每天(年度)、每周、每月、每季度 强调聚合的值随时间的数量变化。
保存查询
点击页面右上方的“保存”按钮,可以对已完成的查询结果进行保存。
刷新数据
点击数据表右上方的“刷新”按钮,手动更新数据。
预览行数设置
点击数据右下方的“展示 … 行”按钮,可以设定数据表中预览的数据的行数,默认展示最大值行数2000行。
下载完整结果
点击数据右下方的下载按钮,可以选择csv、xlsx、json三种格式下载查询结果数据到本地。
设置提醒
点击数据右下方的提醒按钮,可以将已保存的查询结果按照需要设置为提醒。更多相关操作可见于手册“提醒”板块。
条件查询
条件查询模式,支持使用高级查询编辑器实现更多高级功能。Studio提供两种方式进入条件查询。
第一种:用户可以通过在“创建查询”中选择“条件查询”进入编辑页面。
第二种:用户也可以通过“快捷查询”中数据表右上方的“显示编辑器”按钮进入编辑页面。
选择数据
条件查询同样支持在数据表和已有查询结果上建立新的查询,示例将使用Studio自带的sampledata进行操作。
注意:以下几种查询结果不能作为新查询的起始数据:
- Druid查询
- Mongo查询
- 使用累积求和或累积行数的查询
- 存在重复命名列的查询
编辑数据
条件查询编辑器支持多重筛选、多重聚合、多表关联、自定义新列、设置排序、设置行限制等六种编辑方式。
此外,点击每次编辑时编辑框中的“列选项”,可以选择数据表显示的字段内容;点击编辑框右侧的播放图标,可以查看执行编辑后的前5/10条记录的预览效果;点击编辑框上方的叉图标,可以关闭设置,且不会保存设置内容。
多重筛选
不同的筛选条件适用于不同的选中的字段类型。字段主要有三种类型:文本型、数字型,日期型。
-
文本型:文本型字段可添加 是、不是、包含、不包含、为空、不为空、以...开始、以...结束 等筛选条件。
- 是:筛选得到对应字段的文字是所设置的文字的行
- 不是:筛选得到对应字段的文字不是所设置的文字的行
- 包含:筛选得到对应字段的文字包含了所设置的文字的行
- 不包含:筛选得到对应字段的文字没有包含所设置的文字的行
- 为空:筛选得到对应字段没有文字的行
- 不为空:筛选得到对应字段有文字的行
- 以...开始:筛选得到对应字段开始部分的文字是所设置的文字的行
- 以...结束:筛选得到对应字段结束部分的文字是所设置的文字的行
-
数字型:数字型字段可添加等于、不等于、大于、小于、介于、大于或等于、小于或等于、为空、不为空 等筛选条件。
- 等于:筛选得到对应字段的值等于所设置的值的行
- 不等于:筛选得到对应字段的值不等于所设置的值的行
- 大于:筛选得到对应字段的值大于所设置的值的行
- 小于:筛选得到对应字段的值小于所设置的值的行
- 介于:筛选得到对应字段的值介于所设置的两个值之间的行
- 大于或等于:筛选得到对应字段的值大于或等于所设置的值的行
- 小于或等于:筛选得到对应字段的值小于或等于所设置的值的行
- 为空:筛选得到对应字段没有值的行
- 不为空:筛选得到对应字段有值的行
-
日期型:日期型字段可以选择绝对的时间范围,或相对的之前或之后的一段时间。日期型筛选通过日历、输入框等两种方式实现。
- 前:筛选得到对应字段的日期值是当前日期值前一段时间范围(天/周/月/年/分钟/小时)内的行,可以根据需要选择是否包括当前日期(天/周/月/年/分钟/小时)
- 下一个:筛选得到对应字段的日期值是当前日期值后一段时间范围(天/周/月/年/分钟/小时)内的行,可以根据需要选择是否包括当前日期(天/周/月/年/分钟/小时)
- 当前:筛选得到对应字段的日期值是当前时间范围(天/周/月/年)内的行
- 早于:筛选得到对应字段的日期值是早于所设置的日期值的行,可以根据需要添加具体时间(24时制)
- 晚于:筛选得到对应字段的日期值是晚于所设置的日期值的行,可以根据需要添加具体时间(24时制)
- 固定:筛选得到对应字段的日期值是等于所设置的日期值的行,可以根据需要添加具体时间(24时制)
- 介于:筛选得到对应字段的日期值介于所设置的两个日期值之间的行,可以根据需要添加具体时间(24时制)
- 为空:筛选得到对应字段没有日期值的行
- 不为空:筛选得到对应字段有日期值的行
条件查询编辑器同样支持多重筛选功能。
用户可以设置多个独立的筛选条件实现目标查询。如果默认的筛选条件不能满足需求,用户可以通过“自定义表达方式”使用常见函数和运算符等,创建自定义的筛选条件。
多重聚合
聚合条件包括基础指标和共同指标。Palo Studio提供计数,总和,平均值,去重计数,累计求和,累计行数,标准差,最小值,最大值 等基础指标;用户还可以根据需要在管理员界面设置共同指标。
- 总行数:数据所占行数的总和。
- 求和:指定字段所有数值的总和。
- 平均值:指定字段所有数值的平均值。
- 去重计数:指定字段所有互不重复的值的总数。
- 累计求和:指定字段的数值的加和。例如: $$ X_2=x_1+x_2, X_3=x_1+x_2+x_3 $$
- 累计行数:数据所占行数的加和。
- 标准差:指定字段所有数值的标准差。
- 最小值:指定字段的最小值。
- 最大值:指定字段的最大值。
类似于多重筛选,条件查询编辑器支持多重聚合。
用户可以设置多个聚合条件实现目标查询,例如多个叠加的聚合、多个聚合指标、多个分组的列等。
如果默认的聚合条件不能满足需求,用户可以通过“自定义表达方式”使用常见函数和运算符等,创建自定义的聚合条件。
多表关联
条件查询支持多表关联,可将当前数据表与另一张表或另外一个已有的查询结果相连接。Palo Studio仅支持同一数据库内的多表关联,即只能选择与当前数据表处于同一数据库的表或已有的查询结果相连接。
选择好需要关联的数据表后,需要选择两张数据表之间的关联字段。如果已经在数据库中设置了外键,Palo Studio会自动选择对应的字段。如果没有设置外键,此处的关联字段需要用户自行设置。
Palo Studio支持三种关联方式,左外连接、右外连接和内连接。
- 左外连接:选择表A中的所有记录,以及表B中满足关联条件的记录。
- 右外连接:选择表B中的所有记录,以及表A中满足关联条件的记录。
- 内连接:只选择表A和表B中满足关联条件的记录。
Palo Studio同样支持多表关联。表A、B和C,其中A和B有联系,B和C有联系,但A和C没有联系。如果要连接A和C,只需添加多个“关联”即可:先建立A和B的关联,再按照同样步骤,再次点击“关联”按钮建立B和C的关联,就可以实现将A连接到B再连接到C。
自定义新列
条件查询支持创建自定义新列。在查询中创建的新列不会修改原始数据,仅在该查询中生效。
设置排序
条件设置支持对输出数据按照一个字段或多个字段对查询结果进行排序。
排序将按照条件的先后顺序依次执行。点击排序条件左侧的箭头可以切换升序排序和降序排序;向上箭头代表升序排序,向下箭头代表降序排序。
设置行限制
条件设置支持对输出数据的行数进行设置。
用户可以将鼠标悬停在编辑框上,点击编辑框出现的上/下按钮调整行数;用户也可以在选中编辑框后,使用键盘的上/下键调整行数,或直接在编辑框内输入预期的行数。
查看SQL语句
用户可以点击编辑器页面右上角的图标,查看当前查询对应的SQL语句。
在提示框中点击“将此查询转换为SQL”按钮,进入SQL查询的编辑页面。
SQL查询
SQL查询模式,支持使用SQL命令实现更多复杂查询。用户可以通过在“创建查询”中选择“SQL查询”进入编辑页面。
也可以通过点击“条件查询”编辑器页面右上角图标,并在提示框中点击“将此查询转换为SQL”按钮进入编辑页面。
选择数据
SQL查询是在数据库上建立的新的查询。示例将使用Palo Studio自带的sampledata进行操作。
SQL编辑数据
SQL编辑区可以主要划分为编辑区和结果显示区两部分。
编辑区左侧支持直接使用SQL语句实现查询。
例如,sampledata中,想要查看products表中的各类商品数量,可直接输入并执行:
select category,count(*)from products
group by category;
结果如图:
右侧侧边栏可实现了解数据库信息、设置筛选变量和使用SQL片段三个子功能。点击编辑器右上角的缩小箭头可以收起编辑器,使页面只有结果显示。
结果显示区域能够显示完整的查询结果。若编辑区进行了修改,需点击“运行查询”刷新查询结果;在Windows和Linux系统中可以使用“ctrl+enter”快捷键组合,或在Mac系统中使用“⌘+return”快捷键组合运行SQL查询。
若只运行部分命令,可以先选中需要运行的命令行,再点击右键,选择“运行选中语句”执行命令;也可以选中后使用上述快捷键组合,或点击“运行查询”执行该选中部分命令。
了解数据库
SQL查询支持查看当前数据库的基本情况,用户可以点击编辑器右侧的“了解数据库”展开侧边栏。点击具体的数据表名称可以查看该数据表中包含的字段和表连接情况。
筛选变量
SQL查询同样支持筛选功能。用户可以通过WHERE语句(自定义语句,非标准SQL语句)实现,使用
{{`\{\{variable_name\}\}`}}
表达式在此查询中创建一个名为“ variable_name”的变量,从而执行对选定字段的筛选。
筛选变量功能将筛选类型分为四类:文本、数字、时间和筛选控制器。其中,前三种类型实现方式相似。
文本、数字和日期筛选
使用文字、数字和日期筛选类型通过“where 变量名={{`\{\{variable_name\}\}`}}
”语句实现。筛选变量类型对应了字段类型。若字段为文本型,则选择变量类型为“文本”;若字段为数字型,则选择为“数字”;若字段为时间型,则选择为“时间”。
若筛选变量类型为文本、数字和日期筛选,用户仅需要设置筛选框名称、是否必选。
- 设置筛选框名称
筛选框名称将会用于区分不同的筛选变量,作为筛选标签名称显示在编辑器上方。用户可以直接在筛选标签处填写筛选内容。
- 设置是否必选
必选筛选指默认运行指定的筛选值。设置为“必选”后,用户需要填写映射字段中的可选值作为“筛选默认值”。若不在筛选标签中填写内容,查询则按照默认值运行;若同时在筛选标签中填写其他筛选值,则按照筛选标签中的筛选值运行。
不设置为“必选”,用户需要在筛选标签中填写筛选值。在没有填写筛选值的情况下,运行查询会报错“无法运行查询:缺少必需的参数;填写筛选值后才可以正常运行查询。
若需要将筛选值设置为非必填,即默认执行全量查询,可以使用[[where 变量名 = {{variable_name}}]]
语句实现。若未填写默认值或筛选值,查询则按照全量查询运行,忽略该筛选变量;若填写默认值或筛选值,查询则按照默认值或筛选值运行。
筛选控制器
单个筛选控制器与数据表中的单个字段相映射,完成设置后支持在下拉列表中选择字段的值,也支持与仪表盘筛选相关联。
使用筛选控制器筛选类型通过 ”where {{`\{\{variable_name\}\}`}}
“语句实现,并选择筛选类型为“筛选控制器”。
若筛选变量类型为筛选控制器,用户需要设置映射字段、筛选样式、筛选框名称、是否必选。
- 设置映射字段
映射字段指筛选控制器作用在对应的数据表的字段。
- 设置筛选样式
筛选样式若为“None”,则该筛选标签不会在编辑器上方展示;但仍然可以在仪表盘设置中,与仪表盘筛选相关联。
筛选样式的可选项与映射字段的类型相关:
若映射字段为文本型:
- 类别(Category)
- None
若映射字段为数字型,筛选控制器不支持数字类型的字段,只有唯一可选项:
- None
若映射字段为日期型:
- 年份月份(Month and Year)
- 年份季度(Quarter and Year)
- 单日日期(Single Date)
- 日期范围(Date Range)
- 相关日期(Relative Date)
- 日期条件筛选(Date Filter)
- 设置筛选框名称
筛选样式若非为“None”,同样地,筛选框名称将会用于区分不同的筛选变量,作为筛选标签的名称展示在编辑器上方。
- 设置是否必选
同样地,必选筛选指默认运行指定的筛选值。设置为“必选”后,用户需要填写映射字段中的可选值作为“筛选默认值”。若不在筛选标签中填写内容,查询则按照默认值运行;若同时在筛选标签中填写其他筛选值,则按照筛选标签中的筛选值运行。
- 关于筛选控制器的其他说明
当字段在数据模板中设置为以下类型时,不支持使用筛选控制器:
- 头像图片URL(Avatar Image URL)
- 描述(Description)
- 电子邮件(Email)
- 枚举(Enum)
- 包含JSON的字段(Field containing JSON)
- 图片URL(Image URL)
- 数字(Number)
- 纬度(Latitude)
- 经度(Longitude)
- URL
文本、数字和日期筛选与筛选控制器
功能 | 文本、数字和日期筛选 | 筛选控制器 |
---|---|---|
语法 | “where 字段名={{`\{\{variable_name\}\}`}} ” |
“where{{`\{\{variable_name\}\}`}} ” |
字段类型 | 支持所有类型字段 | 不支持头像图片URL(Avatar Image URL)、描述(Description)、电子邮件(Email)、枚举(Enum)、包含JSON的字段(Field containing JSON)、图片URL(Image URL)、数字(Number)、纬度(Latitude)、经度(Longitude)、URL等类型 |
下拉选择 | 不支持 | 支持 |
关联仪表盘筛选 | 不支持 | 支持 |
设置非必填 | 支持 | 支持 |
SQL片段
Palo Studio支持将SQL片段保存后重复使用。
用户选中将保存为SQL片段的语句,再点击右键,选择“保存为SQL片段”。页面中将会弹出“创建新片段”的编辑框,其中自动填入了选中的SQL语句,可以进行修改调整;设置完成片段名称、片段说明、片段所处位置后,点击“保存”。SQL片段名称唯一,不可重复命名。
在SQL编辑器中编写代码时,调用SQL片段可键入snippet:
,Palo Studio将为可用的代码段提供自动完成选项。
SQL编辑器侧边栏有一个SQL代码片段菜单,可进行以下操作:
- 创建片段:单击SQL代码段侧栏右上角的“+”以创建新代码段。
- 预览片段:单击代码段右侧的向下箭头以查看其说明及其SQL代码的预览。还有一个编辑代码段的选项。
- 插入片段:单击代码段的名称以将其插入到查询中光标的当前位置。
- 搜索片段:如果用户已经保存了超过15个片段,一个搜索图标(经典的放大镜)将出现在+按钮的左侧。请注意,搜索结果只包括用户有权访问的代码段,不包括片段文件夹。
- 编辑代码段:用户可以更改片段的名称、说明和具体内容。修改后,所有使用该片段的命令中该片段的名称都会同步修改。
- 回收和取消回收片段:在编辑框中可以回收片段,将此片段从菜单中删除。注意,回收片段不会影响使用该片段的查询和数据结果。通过单击侧栏左下角的“片段回收站”按钮,可以从中查看已放入回收站的片段。
创建子查询
Palo Studio支持在新创建的查询中引用已保存的查询结果,使用{{`\{\{查询编号#\}\}`}}
as 别名语句。
查询编号为查看该查询时,浏览器地址栏URL中”/question/“后面出现的数字。
用户也可以通过直接在编辑区中输入{{`\{\{#\}\}`}}
语句,在弹出的右侧边栏中搜索想引用的已保存的查询。
使用{{`\{\{#查询编号\}\}`}}
as 别名语句给引用的查询重新命名别名后,就可以基于已保存查询结果继续创建查询。需要注意的是,想要引用的查询和现在正在创建的查询必须基于一个数据库。