4.2.1 简介

  数据集是一个数据的集合,通常以表格形式出现。每一列代表一个特定变量。每一行都对应于某一成员的具体信息。
  在Dataviz中,数据集是数据展现和数据的分析基础,数据集的主要作用是提供数据的模型,确定的维度和度量。 所以,数据集中的数据就是数据源中原始的数据,是不需要进行聚合或统计处理的,在后边的数据展现和数据分析阶段再做数据的计算处理。

  数据集属于项目资源,不可跨项目使用。

4.2.2 创建数据集

  在项目资源页面,点击“建数据”,进入数据源管理页面,页面如下: 001.png

  在数据源页面,选择任何一个数据源点击,即可进入到依赖于所选择数据源的数据集创建页面: 002.png

4.2.2.1 图形数据集

  数据集默认页面是图形拖拽的方式创建的图形数据集。

  1. 拖拽表
      页面左侧显示当前数据源下的所有数据表,可以拖拽数据表到右侧数据集编辑区域,在编辑区域进行数据集字段的勾选;
    003.gif

  2. 设置关联关系

    • 如果数据集中需要引用多个数据表,则可以继续拖拽需要使用的数据表。多个表之间需要建立表间的关联关系, 如果两个表之间存在主外键关系,系统会自动根据主外键创建表之间的关联;如果表之间没有主外键,则会根据相同的字段名自动建立关联关系。 如下图:
      003.gif
    • 如果无法自动创建表间的关联关系就需要手动创建。手动建立关联关系,需要点击表一侧的圆点,按下鼠标左键,拖拽到另一个表的圆点上, 松开鼠标左键,会出现弹出设置关联关系的窗口,选择关联方式以及关联字段,再点击确认按钮后即可完成关联关系的创建,如下图所示: 004.gif
    • 点击关联关系图标选中关联关系,然后按键盘的Delete键可以删除选中的关联关系。
    • 双击表间的关联关系可以弹出编辑窗口,编辑关联方式和关联字段。
  3. 勾选字段
      在表中选择需要的字段,下面区域可以预览字段的数据(如果数据加载较慢可取消勾选实时刷新复选框),如下图所示: 005.gif

  4. 自定义字段
      在数据集编辑页面除了可以勾选数据源的表中的字段外,还可以根据表中的字段自定义数据集字段。点击“添加自定义字段”,弹出自定义字段编辑窗口, 在窗口中可以通过双击和拖拽的操作方式把字段和公式添加到字段内容区,组成新的计算字段,点击公式,可以在右侧查看公式的详细说明。如下图: 006.gif

  5. 字段类型转换
      数据集预览区域表头下拉菜单中提供了数据字段的类型转换功能,对于以字符串类型存储的数值字段可在此处转换为数值和日期类型,对于数值类型的字段可在此处转换为字符串。后续计算以转换后的类型为准。

  6. 设置过滤条件
      可以通过把数据集字段拖拽到下方的过滤区域进行数据的过滤,如下图: 007.gif

  7. 同步元数据
      如果数据源中的表的字段发生了变化,可以点击右上角的同步元数据按钮进行元数据的更新。

  8. 多数据源

    如果DataViz服务的计算资源充足,DataViz能够支持跨数据源的数据集。使用方法是点击左侧数据来源旁边的 + 号,此时会弹出数据源选择,选择一个数据源确定,左侧即会新增一个数据源抽屉。用户可以点击数据源名,打开指定的数据源抽屉,拖拽表到编辑区域。(注意:不能拖拽来自不同数据源,但表名、Schema、Catalog完全相同的表进行关联)

    一旦在数据集中拖拽了来自多个数据源的表,该数据集将变为多数据源模式,该数据集及使用它的图表在使用自定义字段时将仅限于使用DataViz中提供的函数进行计算,且无法将字符串转为时间。

    多数据源计算需要更多的服务器资源。当数据源表数据量较大,服务器计算资源相对不足时,多数据源数据集可能会出现执行缓慢或执行失败。

4.2.2.2 SQL数据集

  SaCa DataViz支持通过写SQL代码的方式创建数据集,为具有开发能力的用户提供更高的自由度,SQL语法以具体连接的数据源为准。 图形数据集和SQL数据集是相互不兼容的,不能相互转化,每个数据集只能选择一种方式进行数据集创建。 单击新建数据集界面上方的切换按钮即可切换到SQL数据集页面。如下图: 008.gif

  输入完SQL之后可以点击页面右上方执行按钮执行SQL,点击美化SQL按钮格式化SQL代码。如下图: 009.gif

可以在SQL中引用系统变量,目前系统变量分为单值类型和列表类型,单值类型在替换的时候不会自动添加引号,需要用户在引用的时候自己添加, 例如:

select * from emp_table where id='[用户ID]';

列表类型的目前只支持in,用户不必添加引号 例如:

select * from emp_table where org_id in ([用户组织ID]);

其中[用户ID]和[用户组织ID]就是系统变量。目前系统默认提供的系统变量中,只有一个单值类型的 :[用户ID],其他的都是列表类型。

4.2.2.2.1 多数据源

当拖拽方式的操作无法满足多数据源需求时,也可以手写SQL执行查询。只要在左侧存在多个数据源,书写的SQL便按照多数据源方式执行查询。此时有如下规则和限制:

  1. 同一数据集中不能同时使用具有相同名称的数据源。

  2. SQL中所有的表引用(主要出现于SELECT 的 FROM子句),除了可能需要的Schema、Catalog、表名外,需要额外添加数据源名前缀,且要求此时数据源名、Catalog(如果有)、Schema(如果有)每项必须使用双引号作为分隔标识符括起来(表名不要求),标识符与表引用使用的点之间不能包含空格或换行。支持的写法如: "数据源A"."TableA""数据源B"."SchemaA".TableA ,不支持的写法如: "数据源B".SchemaA.TableA"数据源A" . "TableA"

  3. SQL中的列引用中指定表名时,应使用 FROM 子句中的定义别名,而不是重复书写原始表名。例如: select t1.colA from "DS1"."Schema1".Table t1

  4. SQL语法使用类SQL-1992标准SQL的语法(使用双引号作为分隔标识符),不支持原始数据源的数据库函数,只支持特定的函数。

  5. 由于一些技术限制,取决于原始数据源对SQL特性的支持情况及SQL的某些写法,某些符合语法结构的SQL也有可能出现无法执行的情况。最保守的情况下只能使用原始数据库支持的SQL特性。

  6. 多数据源SQL与多数据源拖拽一样,相较单数据源会需要更多的服务器内存及CPU资源。

4.2.2.2.2 多数据源 SQL 支持的语法结构

多数据源SQL目前支持如下常见的标准SELECT中的语法结构(非完全列举)。

  • WITH(CTE)
  • UNION
  • INTERSECT
  • LIMIT start, offset
  • INNER/LEFT/RIGHT/FULL JOIN ON
  • DATE、TIME、TIMESTAMP 常量

4.2.2.2.3 多数据源 SQL 支持的运算符及函数

4.2.2.2.3.1 比较运算符
  • value1 = value2
  • value1 <> value2
  • value1 != value2
  • value1 > value2
  • value1 >= value2
  • value1 < value2
  • value1 <= value2
  • value IS NULL
  • value IS NOT NULL
  • value1 BETWEEN value2 AND value3
  • value1 NOT BETWEEN value2 AND value3
  • string1 LIKE string2 [ ESCAPE string3 ]
  • string1 NOT LIKE string2 [ ESCAPE string3 ]
  • value IN (value [, value]*)
  • value NOT IN (value [, value]*)
  • value IN (sub-query)
  • value NOT IN (sub-query)
  • value comparison SOME (sub-query)
  • value comparison ANY (sub-query)
  • value comparison ALL (sub-query)
  • EXISTS (sub-query)
4.2.2.2.3.2 逻辑运算符
  • boolean1 OR boolean2
  • boolean1 AND boolean2
  • NOT boolean
4.2.2.2.3.3 算术运算符
  • + numeric
  • - numeric
  • numeric1 + numeric2
  • numeric1 - numeric2
  • numeric1 * numeric2
  • numeric1 / numeric2
  • numeric1 % numeric2
4.2.2.2.3.4 条件运算符
  • CASE value WHEN value1 [, value11 ]* THEN result1 [ WHEN valueN [, valueN1 ]* THEN resultN ]* [ ELSE resultZ ] END

  • CASE WHEN condition1 THEN result1 [ WHEN conditionN THEN resultN ]* [ ELSE resultZ ] END

4.2.2.2.3.5 类型转换
  • CAST(value AS type)
4.2.2.2.3.6 数学函数
  • POWER(numeric1, numeric2)
  • ABS(numeric)
  • MOD(numeric1, numeric2)
  • SQRT(numeric)
  • LN(numeric)
  • LOG10(numeric)
  • EXP(numeric)
  • CEIL(numeric)
  • FLOOR(numeric)
  • ACOS(numeric)
  • ASIN(numeric)
  • ATAN(numeric)
  • ATAN2(numeric, numeric)
  • COS(numeric)
  • COT(numeric)
  • DEGREES(numeric)
  • PI()
  • RADIANS(numeric)
  • ROUND(numeric1 [, numeric2])
  • SIGN(numeric)
  • SIN(numeric)
  • TAN(numeric)
4.2.2.2.3.7 字符函数
  • string || string
  • CHAR_LENGTH(string)
  • UPPER(string)
  • LOWER(string)
  • POSITION(string1 IN string2)
  • TRIM( { BOTH | LEADING | TRAILING } string1 FROM string2)
  • OVERLAY(string1 PLACING string2 FROM position [ FOR length ])
  • SUBSTRING(string FROM position)
  • SUBSTRING(string FROM position FOR length)
4.2.2.2.3.8 时间日期函数
  • LOCALTIME
  • LOCALTIMESTAMP
  • CURRENT_TIME
  • CURRENT_DATE
  • CURRENT_TIMESTAMP
  • EXTRACT(timeUnit FROM datetime)
  • FLOOR(datetime TO timeUnit)
  • CEIL(datetime TO timeUnit)
  • YEAR(date)
  • QUARTER(date)
  • MONTH(date)
  • WEEK(date)
  • DAYOFYEAR(date)
  • DAYOFMONTH(date)
  • DAYOFWEEK(date)
  • HOUR(date)
  • MINUTE(date)
  • SECOND(date)
  • TIMESTAMPADD(timeUnit, integer, datetime)
  • TIMESTAMPDIFF(timeUnit, datetime, datetime2)

其中时间单位 timeUnit 可取值为:YEARMONTHWEEKDAYHOURMINUTESECOND

4.2.2.3 数据集字段排序

  如果希望在数据集的字段在之后的编辑图表时可以按照指定的顺序显示,需要先设定数据集字段的顺序。如下图: 010.gif

4.2.2.4 标签

  标签用于组织数据集,当创建的数据集数量非常多时,使用标签检索数据集会非常高效。单击页面右上角标签按键,弹出页面编辑标签, 对数据集打标签,一个数据集可以添加多个标签。 011.gif

4.2.2.5 字符类型字段排序

  字符类型字段排序作用于项目全局,后续依赖此“数据集”的“图表”、“图册”及“字符类型过滤条件列表”的排序均默认以此顺序为准。但是此顺序在数据集预览中并不会体现。

  点击字段下拉菜单中的“排序”按钮,弹出“自定义排序”页面,在该页面可以选择“默认排序”、“字母/拼音排序”、“其他字段”、“手动排序”等排序方式。如下图: 012.gif

  这里“其他字段”选项指的是以数据集中另一个字段作为排序依据。(典型的:用户名单中有用户序号字段,那么就可以根据序号字段对用户姓名进行排序)

4.2.2.6 详细信息字段项定义

  点击字段下拉菜单中的“编辑”按钮,弹出“字段编辑”页面,在其中可以进行字段重命名操作,并可选择是否在图表的详细信息项中显示该字段, 默认选择为“是”,当选择了“否”时,点击“确定”按钮后,字段名称的颜色将发生变化,以方便区分。如下图所示: 013.gif

在图表页面右键点击“详细信息项”按钮后,选择了“否”的字段的数据内容没有被显示出来,如下图所示。 014.gif

4.2.2.7 导出Excel

  点击数据集字段预览区域的导出按钮,可以把数据集中的数据导出到Excel中。如下图: 015.gif

4.2.2.8 保存数据集

  1. 点击右上角保存按钮,可以把数据集模型存储到数据库中。
  2. 点击保存按钮右侧的小箭头,弹出下拉菜单,选择重命名,可以保存数据集并修改当前数据集的名称。
  3. 点击保存按钮右侧的小箭头,弹出下拉菜单,选择另存为,可以把当前数据集另存为一个新的数据及。
  4. 点击保存按钮右侧的小箭头,弹出下拉菜单,选择保存并新增,可以把当前数据集保存到数据库中并且清空数据集编辑区域以便继续创建其他数据集。

4.2.2.9 添加大数据计算引擎

  此功能的详细说明请参考最佳实践:《高性能分析引擎》

4.2.3 编辑数据集

  在项目资源页面,点击一个数据集进入数据集定义页面,可以进行数据集的编辑。

4.2.4 重命名数据集

  在项目资源页面,鼠标滑过数据集,点击重命名,在弹出窗口中修改数据集的名称。 016.gif

4.2.5 删除数据集

删除数据集有两种方式:

  • 单个删除
      鼠标滑过数据集,点击数据集上的删除按钮,删除单个数据集。

  • 批量删除
      在项目资源页面中,点击页面右上角的批量删除按钮,选中要删除的数据集,然后点击页面下的删除按钮进行批量删除。
      但是当选择的数据集被图表使用时依赖此数据集的图表和图册都会被选中,点击删除时会被一起删除。

4.2.6 切换数据源

  通过点击数据源右侧的按钮可以切换该数据集的数据源,如下图: 017.gif

【注意】切换数据源需要保证两个数据源中的表结构完全一致,包含:表名,字段名以及字段类型等。

results matching ""

    No results matching ""

    results matching ""

      No results matching ""