前提条件 #
数据准备 #
已创建一个数据源,请参见数据管理。
新建分析表入口 #
入口1:在“数据分析”主页面的资源筛选区点击添加按钮,选择“新建数据分析表”
入口2:在“数据分析”主页面的资源区空白处右键,选择“新建数据分析表”
入口3:在“数据管理”中选择数据源右键,选择“分析服务”-“新建数据分析表”
选择数据源 #
用户进入“选择数据源”页面,可在资源筛选区设置筛选条件,后选目标数据源,点击“确认”即可。
资源筛选区支持筛选逻辑有:
- 按数据源类型检索:全部、ES数据源、关系型数据库、大数据引擎
- 按排序条件检索:默认、创建时间、编辑时间、文件名、编辑者
-
按名称检索:数据源名称关键字模糊查询
用户若选择入口3创建数据分析表,不用二次选择数据源,直接进入下一个流程
数据分析表命名 #
用户选择数据源后,需要命名该数据分析表。名称需唯一,不可同名。
字段选择栏 #
字段选择栏会列出数据源的全部字段供用户选择。用户可以用鼠标拖拽的方式,将字段拖拽到筛选器中,或者透视选择框中。
不同的字段可能有不同的字段类型。方舟会按照数值 长文本 短文本 日期时间 嵌套区分字段类型(字段类型).
其中嵌套类型字段可以在字段选择栏中展开,实际分析的时候对内层字段操作。
- 字段后面数值描述该字段在表中聚类统计后的基数值(类似group by 后统计数量。假如全表有2w+数据,性别只有男女,因此只有2)
- 时间类型字段的统计逻辑为"年/年月/年月日"的基数值
创建计算字段 #
实际分析场景中,常常需要对源字段做提取运算,形成新的计算字段再做分析。如提取身份证字段的前6位形成行政区划代码字段;或者对 转发量、点赞数、评论数 综合运算得出帖子的关注度。
基于用户需要根据数据源字段再加工处理形成新数据字段,方舟提供了创建计算字段功能。
在编辑区输入反引号后,系统可根据用户关键字带出相关数据字段,方便用户快速选择编辑。
透视选择 #
行、列选择 #
直接从左侧数据源字段列表中拖拽字段到行、列、值中,透视结果区会根据行列自动统计结果。
值运算 #
针对不同类型的字段类型的提供不同的计算模式。
时间型:记录数,记录数去重,最大值(最新),最小值(最久) 高级计算-同比/环比
数值型:记录数,记录数去重,最大值,最小值,求和,平均值,总体标准差,总体方差, 高级计算-百分比,高级计算-同比/环比
文本型:记录数,记录数去重,高级计算-百分比,高级计算-同比/环比
自定义计算指标 #
方舟支持选择自定义编辑指标计算逻辑,在"值"中选择"在功能区中编辑"即可进入编辑页面。
同比环比 #
做与时间相关的分析时,会用某一个指标在一段时间的表现与过去另一段时间的表现相比较,得到同比或环比数据。计算同比、环比时,比较的都是“本期”、“上期”两个时间段的数据。数说方舟在筛选器中提供了筛选方法,供用户选出“本期”和“上期”数据。
当期 #
容易理解,当期是一个连续的时间区间。在方舟的时间筛选器以及API中,我们可以快速选择一个我们所关注的当期时间范围的数据(通过影响某个datetime/timestamp类型的字段)。它可能是如下几种形式:
- 起止时间均不设限的区间(时间轴上的全部值,一般没有意义)
- 起始时间设限,结束时间不设限的区间(某一个时间点至今)
- 起始时间不设限,结束时间为某一时刻的区间(某个时间点之前)
- 某一个时间点到另一个时间点的区间(固定的某段时间)
- 周期长度固定但结束时间跟随当前时间而变化的区间(最近一段时间)
上期 #
“上期”相对于“当期”而言,没有“当期”就谈不上“上期”,所以任何指代“上期”的区间,都需要有一个“当期”区间与之同时存在。
一般而言,由“当期”的时间区间向时间轴上更早的方向做偏移可以得到“上期”区间,两者有相等的时间长度,但需要注意它们并不总是相等。如果定义“当期”的时候,对于起始时间或结束时间的定义不设限,尤其是对起始时间不设限的时候(在这种情况下也很难得到一个具有统计学意义的“上一期”区间,不建议这么设置当期区间,除非你知道你在干什么),此时区间的长度本身就是一个无法测量的值,所以无法保证两个区间有相等的时间长度。
偏移量 #
有经验的分析师会为“当期”区间的筛选设置明确的起止时间,但是仍然无法保证其起止时间是固定的,分析师可能会改动当期区间的起止时间,给它们一对新的明确的值。
所以获取“上一期”区间时,我们一般不是直接描述其区间的起止点,而是通过描述“当期”区间的起止点,再加上一定的偏移得到它。毕竟“当期”区间的起止点可能会变动,我们必须要保证这种变动可以传导到“上一期”区间。
这就是引入“偏移量”这一概念的原因。
在分析“同比”的时候,偏移量应该是一个固定值。例如一年、一月等。这种偏移叫做“同比偏移”
在分析“环比”的时候,我们要使“上一期”的结束时间与“当期”的开始时间一致,所以偏移量应该与“当期”区间的长度一致,这种偏移叫做“环比偏移”
偏移运算 #
如果一个datetime/timestamp类型的字段明确了偏移方式的时候,他就要对一个时间区间(当期)进行偏移运算得到一个新的时间区间(上一期)。下面列的是不同区间类型下的偏移运算规则:
区间类型 | 偏移方式 | 举例-当期区间 | 举例-上一期区间 | 说明 |
起止时间均不设限 | 同比偏移,1年 | [] | (,now()-length(偏移量)] | now()返回当前时间戳;length()返回用时间戳计量的长度 |
环比偏移 | [] | Error,msg:没有周期起始时间,无法计算环比 | 如果是筛选器,通过警告框报错,且不允许保存设置;如果是API,通过msg报错 | |
起始时间设限,结束时间不设限 | 同比偏移,1年 | [start,) | [start-length(偏移量),now()-length(偏移量)) | |
环比偏移 | [start,) | [start *2-now(), start) | ||
起始时间不设限,结束时间设限 | 同比偏移,1年 | (,end] | (,end-length(偏移量)] | |
环比偏移 | (,end] | Error,msg:没有周期起始时间,无法计算环比 | 如果是筛选器,通过警告框报错,且不允许保存设置;如果是API,通过msg报错 | |
起止时间均设限 | 同比偏移,1年 | [start, end] | [start-length(偏移量)end-length(偏移量)] | |
环比偏移 | [start, end] | [start-length, start] | ||
长度设限,结束时间为此刻 | 同比偏移,1年 | [now() – length, now()] | [now() – length(长度) – length(偏移量), now()- length(偏移量)] | |
环比偏移 | [now() – length, now()] | [now() – length(长度) * 2, now() – length(长度)] | ||
其他 | – | 是空、非空 | Error,msg:没有周期起始时间,无法计算环比 |
排序与筛选 #
我们有时候需要对透视结果进行有针对性的筛选或排序,比如只展示 TOP10的城市结果,需要先排序结果集后,再进行取顶部的筛选。
针对行、列中字段,点击“排序与筛选”可进行透视表结果表中行列展示内容的排序和筛选。
- 排序:可选择基于该字段或字段统计记录数(“值”)进行升序或降序排序
- 筛选:对行列内容的筛选。
这里的 排序与筛选 是针对透视结果的行列进行操作。原始数据源的数据集并未改变。
行、列、值的限制规则 #
行、列、值中分别可以放入不同类型和数量的字段,但是受约于如下规则限制:
- 日期时间- 行、列、值中可以放入’日期时间’ ‘短文本’ ‘数值’ 类型的字段,不可以放入长文本类型字段;
- 行、列、值中可以放入 ‘嵌套’ 类字段的 内嵌字段 以及 数组 字段,但其类型不可以是长文本;
- 行、列、值中可以为空,但行、列均不为空的时候,值不能为空;
- 行、列、值中可以有多个字段,但当值中有多个字段的时候,列必须为空;
- 行、列选择限制只能选择基数在10W以下,且行、列乘积数小于10W,若超出,是无法选进行列中。
- ES类型的数据源,透视表每个层级设置的条数,最大是1500
筛选器 #
将参与筛选条件的字段拖拽到筛选框中,开启筛选操作:
每次把一个字段拖拽到筛选框中时,需要设置该字段的筛选条件。
对于不同类型的字段,可以编辑的筛选条件不同,下面表格列出了各类型字段可选的筛选条件
例如,用户选择了发表时间(类型为日期时间)作为筛选字段,点击编辑图标,用户可配置以下筛选条件:
不同的筛选条件适用于不同的字段类型,这是由字段类型的属性决定的,但是“全部记录”可以应用于所有的字段类型。
全部记录的含义是:不对该字段进行任何的筛选操作。
你可能会对“全部记录”条件所产生的行为感到诧异,不进行任何筛选行为意味着它在筛选器中是可有可无的。的确是这样,但是这种条件在制作API的时候很有价值,我们将在后续数据分析与API制作章节详述。
附属筛选条件 #
数组 嵌套 日期时间类型的字段在筛选器中会有一些附属的选项。
记录筛选与行内筛选 #
筛选的对象是 数据表 的 记录 ,所以对于有嵌套字段类型的数据源来说,对基于记录的筛选结果进行透视可能会带来误会。例如一个有着数组类型字段与嵌套类型字段的数据源,如下图所示
该数据表的一条记录有ID 关键词 内容三个字段,字段类型分别为数值 数组 嵌套. 传统的筛选条件会筛选一整条记录——例如筛选内容.正负面 等于 负面时,会筛选出如下图所示的数据记录:
这种情况下,如果对内层数据进行透视,例如对内容.正负面进行透视,由于被筛选到的记录中既有正面评价,又有负面评价,可能会得到正、负面分别50%的结果。为了在含有嵌套字段的数据源内能够更精确地筛选,方舟对于内嵌字段提供了“行内筛选”的选项。
行内筛选可以得到如下图这样的筛选结果,对于这样的数据进行透视,可以准确得到内容.正负面的负面概率为100%;
需要注意的是,一个嵌套字段的内嵌字段,如果同时在筛选器中,那么它们在是否选择“行内筛选”的行为上是一致的。你设置内容.正负面的筛选是行内筛选的同时,不能同时设置内容.情感的筛选是记录筛选。
数组内筛选 #
数组内筛选在面对数组类字段的时候,有着与“行内筛选”同样的交互设置项,而且在筛选之后的透视阶段,能得到与“行内筛选”类似的效果。仅对于数组类字段有效。
筛选逻辑 #
当需要对多个筛选条件进行复杂的组合筛选时,筛选器支持筛选逻辑的配置。
筛选逻辑在筛选器的顶部,有四种种模式:
- 满足下列全部条件(默认)(所有条件以且关系连接)
- 满足下列任意条件(所有条件以或关系连接)
- 自定义编辑(可以自定义编辑,默认以AND连接)
- 无筛选条件(所有筛选条件都不采用)
自定义编辑页面
共享 #
当需要对筛选器进行共享,以便其他协作者快速使用,可选择筛选器中的“创建共享筛选器”
公共筛选器编辑页面
- 若需要共享筛选组中的某个筛选条件到非同个数据源的分析表中,不可使用共享功能,可以选择高级模式复制相关Query语句到目标筛选器中黏贴
- 当筛选器共享后,“共享”与“高级模式”置灰,不可选择。字段不可再次编辑。若需要修改筛选器筛选条件,需检出到本地或到公共筛选器编辑页面中,其中检出到本地,可进行个性化修改,不会影响公共筛选器及其使用对象
- 同个数据源若已有共享筛选器,可在筛选器面板中查看到,直接选取即可复用
高级模式 #
透视表本质上是通过UI交互产生Query语句,语句作用于底层数据引擎。掌握了Query语句编写知识的技术人员可能更倾向于通过语句来了解透视表中发生了什么。我们为其提供了查看和编辑Query语句的便利。
筛选组合功能 #
在实际使用场景中,例如月报,数据源是新的,但我们使用的筛选条件和表达式和每个月基本一样,直接复用即可。此时就可以使用筛选组合功能,对筛选条件和表达式进行保存、应用和管理。也就是说,筛选组合 = 筛选条件 + 表达式。
保存:
注意:筛选组合保存时仅保存当前表达式中包含的筛选条件,如果需要保存全部条件,需要额外保存一个筛选组合。
引用:
即将保存的筛选组合追加或覆盖到当前分析表中,追加是指在当前分析表的筛选条件和表达式的基础上增加,覆盖是指将现有条件和表达式完全替换为引用的。
注意:引用时字段匹配的逻辑是 (真名相同|别名相同)&(字段类型相同)。如果引用的筛选组合中的字段匹配不上,需要重新配置这部分筛选条件
管理:
可视化设计 #
方舟默认以表格展示透视结果,在透视话区,用户可进行前端的行列运算,缺省值补充。因为只是前端展示,所以不会保存在数据分析表上。
用户可从可视化方案栏中选择合适样式进行设计展示。若透视结果无法渲染所选图表的时候,图表会呈现无数据的状态。
数据筛选表 #
如果不需要对数据进行透视,仅有筛选需求的时候,可直接在配置筛选器,不需配置透视选择栏。
- 在“显示字段”的设置项中,按照字段的选择顺序,从左到右排列各字段
- 数据支持分页预览,每页50条,最多支持预览200页
- 数据表支持按字段排序,长文本支持关键字检索查看
- 支持查看筛选表对应的Query语句
- 支持数据导出,查看和编辑DSL语句