构建模型

构建模型 #

建模的目的

为了帮助你更好地理解建模的过程, 我们通过一个问题示例来进行介绍: SuperSonic本身作为一个产品, 那么如何用语义建模来统计它的埋点访问数据呢?比如SuperSonic在一段时间内的访问用户数是多少? 这些用户的访问次数和停留时长是怎样的?这些用户来自哪些部门?这些用户看了哪些页面?分别看了多少次?等我们建模完成, 这些问题的答案也就浮出水面了。

1. 创建一个主题域和模型集 #

如图所示, 为了统计SuperSonic的埋点访问情况, 我们创建了一个叫"超音数"的主题域以及基于SuperSonic的埋点数据创建了一个"埋点模型集":

image

2. 创建数据模型 #

创建好了一个模型集后, 我们就可以把物理数据抽象为一个个数据模型并创建到模型集下。如下图, SuperSonic提供了两种创建数据模型的方式。

快速创建可以直接指定一张物理表来把它创建为数据模型。

SQL脚本则提供了更灵活的数据模型创建方式, 我们可以通过写一条逻辑SQL来把它指定为数据模型。

image

2.1 编辑SQL创建数据模型 #

在填写完数据模型名称和描述等基本信息后,我们首先写一条SQL来表达我们的数据模型逻辑。 然后点击运行, 就可以看到这条SQL查询出来的数据。 校验数据无误之后, 我们可以点击生成数据模型。

注意 这里选择数据库链接的时候, 需要有数据库的使用者权限。

image

如图,我们把这条SQL的表头字段指定为日期,主键,维度和度量之后,还可以写一条过滤SQL用于词典导入场景。 举个例子,在问答中,如果需要对维度值进行识别,那么就需要提前把维度值写入到词典,但是当我们希望对维度值做一些过滤的时候,如在音乐场景里, 我们只希望把国风类型的歌曲导入到词典中,那么就可以通过这条SQL来进行过滤。

image

快速创建 若勾选,则会直接把选中的维度/度量批量创建到维度/指标列表。

2.2 指定库表名快速创建模型 #

image 如图,在选择快速创建的方式之后,需要先填写该模型依赖的数据库连接,然后系统会自动拉取这个数据库连接的元数据,用户直接选择库名和表名并填写基本信息就可以进入到下一步。 在第二步中,和上述通过SQL脚本来创建模型的方式基本一致,就不再重复介绍了。

如下图所示, 重复以上步骤,为我们创建的3个数据模型示例, 分别为:

用户部门: 主要包含用户以及用户的部门信息

PVUV统计: 主要包含用户访问次数和访问人数等信息

停留时长统计: 主要包含用户的停留时长信息

image 同时,在刚刚创建模型时,我们把一些字段标识为了维度/度量,并勾选了快速创建,因此,可以在对应模型中的指标维度列表看到已快速创建好的指标维度:

image

image

image

到此为止, 我们就成功把超音数的访问统计数据建模成了相关的数据模型、维度和指标。

3. 创建模型间连接 #

可以看到,刚刚创建的这些指标和维度分散在不同的模型里,那么如果想要在一次查询里同时包含这些指标和维度,如"按部门统计访问次数",应该还要继续如何配置呢?我们可以在模型列表右上角点击切换到画布模式,并创建模型间的连接关系,如下图: image

到目前为止,我们就创建好了指标维度,以及模型间的关联关系。但要想被上层应用使用到,这还不够,还需要进行最后一步,创建一个数据集。