From c9b70c7f3a30389d00212f4cf43840b11190dadf Mon Sep 17 00:00:00 2001
From: LXW <1264174498@qq.com>
Date: Sun, 16 Jun 2024 18:42:12 +0800
Subject: [PATCH] =?UTF-8?q?Updated=20=E6=9E=84=E5=BB=BA=E8=AF=AD=E4=B9=89?=
=?UTF-8?q?=E6=A8=A1=E5=9E=8B=20(markdown)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
构建语义模型.md | 82 ++++++++++++++++++++++++++++++++-----------------
1 file changed, 53 insertions(+), 29 deletions(-)
diff --git a/构建语义模型.md b/构建语义模型.md
index 0856a87..c8b82f5 100644
--- a/构建语义模型.md
+++ b/构建语义模型.md
@@ -2,7 +2,7 @@
**问题示例**
-为了帮助你更好地理解建模的过程, 我们通过一个问题示例来进行介绍: 超音数本身作为一个产品, 那么如何用语义建模来统计它的埋点访问数据呢?比如超音数在一段时间内的访问用户数是多少?这些用户的访问次数和停留时长是怎样的?这些用户来自哪些部门?这些用户看了哪些页面?分别看了多少次?等我们建模完成, 这些问题的答案也就浮出水面了。
+为了帮助你更好地理解建模的过程, 我们通过一个问题示例来进行介绍: SuperSonic本身作为一个产品, 那么如何用语义建模来统计它的埋点访问数据呢?比如SuperSonic在一段时间内的访问用户数是多少?这些用户的访问次数和停留时长是怎样的?这些用户来自哪些部门?这些用户看了哪些页面?分别看了多少次?等我们建模完成, 这些问题的答案也就浮出水面了。
### **1. 创建一个数据库链接**
在开始探索之前, 你首先需要创建一个数据库链接来连接你的数据库, 以便后续获取数据。在SuperSonic中,主要支持JDBC类型的数据库链接,创建一个数据库连接主要分为
@@ -11,7 +11,7 @@
2. 点击测试连接, 若连接测试通过, 则可点击保存。否则, 返回步骤1
3. 点击保存。
-如图1-1所示, 由于超音数的埋点访问数据被存放在H2数据库中, 因此我们创建了一个H2数据库实例作为例子。除了H2数据库以外, 我们还支持MySQL, ClickHouse, PG等多种常见数据库。
+如图1-1所示, 由于SuperSonic的埋点访问数据被存放在H2数据库中, 因此我们创建了一个H2数据库实例作为例子。除了H2数据库以外, 我们还支持MySQL, ClickHouse, PG等多种常见数据库。

@@ -25,8 +25,8 @@
**使用者**: 可以使用这个数据库链接查询数据的人
-### **2. 创建一个主题域**
-接下来, 用户可以按自己的业务场景去创建主题域, 然后在主题域下面创建具体的模型集。如图2-1所示, 为了统计超音数的埋点访问情况, 我们创建了一个叫"超音数"的主题域以及基础超音数的埋点数据创建了一个"埋点模型集":
+### **2. 创建一个主题域和模型集**
+接下来, 用户可以按自己的业务场景去创建主题域, 然后在主题域下面创建具体的模型集。如图2-1所示, 为了统计SuperSonic的埋点访问情况, 我们创建了一个叫"超音数"的主题域以及基于SuperSonic的埋点数据创建了一个"埋点模型集":

@@ -34,7 +34,7 @@
### **3. 创建数据模型**
-创建好了一个模型集后, 我们就可以把物理数据抽象为一个个数据模型并创建到模型集下。在超音数中, 数据模型是对数据库中数据的一种逻辑层面上的抽象, 它既可以直接指代一张物理表, 也可以由一段SQL逻辑表示而成。数据模型中涉及的字段可被指定为维度或者度量, 而这些维度和度量又可以衍生出更复杂的维度和指标。如图3-1, 超音数提供了两种创建数据模型的方式。
+创建好了一个模型集后, 我们就可以把物理数据抽象为一个个数据模型并创建到模型集下。在SuperSonic中, 数据模型是对数据库中数据的一种逻辑层面上的抽象, 它既可以直接指代一张物理表, 也可以由一段SQL逻辑表示而成。数据模型中涉及的字段可被指定为维度或者度量, 而这些维度和度量又可以衍生出更复杂的维度和指标。如图3-1, 超音数提供了两种创建数据模型的方式。
图3-1 数据模型创建方式
@@ -54,49 +54,73 @@
图3-3 SQL脚本
-如图3-4所示, 执行完SQL之后, 根据SQL执行结果, 需要填写一些字段信息, 把数据模型的字段指定为维度或者度量, 其中日期和主键为特殊的维度。
+我们可以把这些字段指定为**日期,主键,维度和度量**并快速创建到维度/指标列表,也可以不指定。其中日期和主键为特殊的维度。作用如下:
-**维度**主要用于筛选和分组
+**维度**主要用于筛选和分组,在选定为维度之后,若需要把它快速创建到维度列表中,可以勾选好快速创建按钮,并填写好它的中文名称。同时,若把该维度设置为标签,则在后续使用中,可以把它当作标签来使用。如一个名为"风格"的标签,则可以在后续问答对话中,用来圈选实体,如"国风风格的艺人"就可以命中明细模式来圈选艺人。
-**度量**主要标识数值类型字段, 用来进行聚合计算
+**度量**主要标识数值类型字段,用来进行聚合计算,把字段选中为度量之后,可以进一步选择该度量的聚合方式。度量可在后续用来创建指标,当然,也可以在这一步填写好中文名称后,就可以立即创建为指标。
-**日期字段**主要用于标识, 方便问答进行数据查询。
+**日期**类型维度主要用于标识,方便问答进行数据查询。
-**主键**则用于不同数据模型之间的连接字段, 有了连接字段后,就可以在画布进行连接关系的配置, 配置完成, 在查询模型数据的时候, 多个模型之间就可以进行Join连接了
+**主键**则用于不同数据模型之间的连接字段,有了连接字段后,就可以在画布进行连接关系的配置,配置完成,在查询模型数据的时候,多个模型之间就可以进行Join连接了。同时,可以通过在主键上绑定标签对象来把主键设置为实体,比如在歌曲ID这个主键上绑定"歌曲"这个标签对象,那么在后续问答会话中问到"给我一批流行歌曲"的时候,可以通过"流行"这个标签值来圈选出一批歌曲ID。
+把字段指定为**维度/度量**之后,还可选择是否勾选**快速创建**单选框。若勾选,则会直接把选中的维度/度量批量创建到维度/指标列表。
+
+若不勾选,但字段已被选定为维度/度量,该字段虽然不会直接被创建到维度/指标列表,但是后续在创建衍生维度/指标的时候也可作为表达式中的字段被用上。
+
+最下面的过滤SQL用于词典导入场景。举个例子,在问答中,如果需要对维度值进行识别,那么就需要提前把维度值写入到词典,但是当我们希望对维度值做一些过滤的时候,如在音乐场景里,我们只希望把国风类型的歌曲导入到词典中,那么就可以通过这条SQL来进行过滤。
-

+
图3-4 数据模型字段信息
+以上就是基于SQL脚本来创建模型的基本介绍,接下来我们来介绍如何通过指定库表名来快速创建模型:
+
+

+
图3-5 快速创建模型
+
+如图,在选择快速创建的方式之后,需要先填写该模型依赖的数据库连接,然后系统会自动拉取这个数据库连接的元数据,用户直接选择库名和表名并填写基本信息就可以进入到下一步。
+在第二步中,和上述通过SQL脚本来创建模型的方式基本一致,就不再重复介绍了。如图3-6所示, 重复以上步骤,为我们创建的3个数据模型示例, 分别为:
-把字段指定为维度/度量之后, 还可选择是否勾选**快速创建**单选框。若**勾选**, 则会直接把选中的维度/度量批量创建到维度/指标列表。
-若**不勾选**, 但字段已被选定为维度/度量, 该字段虽然不会直接被创建到维度/指标列表, 但是后续在创建衍生维度/指标的时候也可作为表达式中的字段被用上。
-如图3-5所示, 为我们创建的3个数据模型示例, 分别为超音数用户停留时长统计, 访问次数和访问人数统计, 用户部门统计。
+**用户部门**: 主要包含用户以及用户的部门信息
+
+**PVUV统计**: 主要包含用户访问次数和访问人数等信息
+
+**停留时长统计**: 主要包含用户的停留时长信息

-
图3-5 模型列表
+
图3-6 模型列表
+同时,在刚刚创建模型时,我们把一些字段标识为了维度/度量,并勾选了快速创建,因此,可以在对应模型中的指标维度列表看到已快速创建好的指标维度:
+
+
-### **4. 创建维度**
-如图4-1, 为刚刚创建数据模型时, 通过勾选**快速创建**按钮创建出来的维度。分别为用户名, 用户所在的部门, 用户浏览过的超音数页面。
+
+
+到此为止, 我们就成功把超音数的访问统计数据建模成了相关的数据模型、维度和指标。
+
+### **6. 创建模型间连接**
+可以看到,刚刚创建的这些指标和维度分散在不同的模型里,那么如果想要在一次查询里同时包含这些指标和维度,如"按部门统计访问次数",应该还要继续如何配置呢?我们可以在模型列表右上角点击切换到画布模式,并创建模型间的连接关系,如下图:
+
+
+到目前为止,我们就创建好了指标维度,以及模型间的关联关系。但要想被上层应用使用到,这还不够,还需要进行最后一步,创建一个数据集。
+### **7. 创建数据集**
+数据集是SuperSonic用来对接问答和其它上层BI应用的一个数据结构,在数据集中,可包含多个模型的维度指标。对上层应用来说,底层建模细节是隐藏的,它只需要关注数据集中暴露出来的维度指标即可。
-

-
图4-1 维度列表
+

+
图7-1 创建数据集
-若我们需要更复杂的维度, 如我们需要根据页面来划分模块, 那我们可以点击创建按钮来创建一个更复杂的维度。如图4-2所示
+如上图7-1,创建数据集时,首先填写好数据集的名称等基本信息,然后即可进入到下一步,选择模型以及模型的指标维度,如图7-2,把上面创建的来自三个模型的指标维度全部加入
+到数据集中,由于这三个模型已经在画布中创建了连接关系,因此对于使用数据集的上层应用来说,只需要对指标维度进行使用即可,而不用担心底层的建模细节。
-

-
图4-2 维度创建
+

+
图7-2 创建数据集-下一步
-### **5. 创建指标**
-和维度类似, 如图5-1为通过**快速创建**按钮创建出来的指标, 分别为访问超音数的次数, 人数和停留时长。这几个指标都可以在用户、部门 、页面等分组粒度上进行计算。
-
-

-
图5-1 指标列表
-
+到此为止,就算是完成了所有的建模环节,开头提到的那些示例问题,也都可以在问答中通过自然语言的方式进行愉快的探索了!
+
+
+
-到此为止, 我们就成功把超音数的访问统计数据建模成了相关的数据模型、维度和指标。通过在问答中直接对这些维度和指标进行提问, 就可以回答我们在介绍开头提到的那些问题啦!
\ No newline at end of file