关系管理
关系管理
关系,可以将相同或不同实体的多张表通过主键关联后形成关系,创建关系后,可根据关系使用多张表的基础字段创建衍生标签。关系即多张表的关联。
举例:某项目中用户实体与书籍实体,两个实体的源表字段如下:
- 用户实体源表(user_tabel)
字段名 | 类型 | 注释 |
---|---|---|
id | STRING | 默认主键 |
name | STRING | 用户名称 |
sex | INT | 性别 |
age | TINYINT | 年龄 |
register_date | TIMESTAMP | 注册时间 |
last_login_date | TIMESTAMP | 上次登陆时间 |
total_money | INT | 消费额度 |
member_level | STRING | 消费等级 |
phone | STRING | 电话号码 |
education | STRING | 学历水平 |
character | STRING | 性格 |
income | STRING | 收入 |
submit_city | STRING | 城市 |
profession | STRING | 职业 |
channel | STRING | 渠道 |
activity_type | STRING | 促销 |
book_id | STRING | 书籍编号 |
- 书籍实体源表(book_tabel)
字段名 | 类型 | 注释 |
---|---|---|
id | STRING | 书籍编号 |
bk_name | STRING | 书籍名称 |
cate_lv4_id | STRING | 书籍分类ID |
cate_full_name | STRING | 书籍分类全名 |
page_size | SMALLINT | 页面大小 |
price | SMALLINT | 书籍价格 |
isbn | STRING | 图书ISBN编号 |
auth_name | STRING | 作者名称 |
store_id | STRING | 门店ID |
用户实体的源表中包含“用户id”、“最近购买书籍”字段,书籍实体包含“书籍id”、“书籍价格”字段,比如要创建“用户最近购买书籍价格”这个衍生标签,便可用关系来进行创建,即是以下SQL。
select a.id, b.price from user_table a join book_tabel b on a.book_id=b.id;
SQLCopied!
关系创建
进入“实体管理-关系管理”页面,点击新增关系按钮,填写关系信息,包含以下内容:
- 选择实体:选择项目下的某个实体,将关系与实体关联起来,便于后续用实体下的关系建衍生标签;
- 选择关系模型:选择当前项目hive库下的某个已发布的数据模型,若选项中无关系模型,可前往数据模型页面新建;选完关系模型后可直接预览表结构,并为字段配置穷举字典,字典的用途可见 字典管理
- 自定义:填写名称和内容自定义添加字典,系统将直接保存至字典管理菜单下
- 引用:引用已在字典管理菜单下创建的字典
- 选择模型主键:选择关系模型中的某个字段做为模型主键,如果使用关系建了标签,需要用该字段和标签大宽表做关联;
- 模型存储:选择关系模型的存储方式,可选择存储为逻辑关系或存储为物理表;
- 存储为逻辑关系:只保存SQL片段,后续应用该关系模型时,直接使用SQL片段;
- 存储为物理表:将关系模型存储为实际的物理表;
tip
如果需要用关系模型创建大量标签,建议存储为物理表,不建议存为逻辑关系,因为每次查询时需要执行一次这段SQL,查询时间较长。
如果选择「模型存储为物理表」,需要填写以下信息:
- 表名称:只支持数字、字母、下划线,不超过64个字符,相同项目hive库下的表名称不能重复;
- 加工任务名称:除空格外,其余字符都支持,不超过64个字符,相同项目下的任务名称不能重复;
- 任务更新周期:支持天、周、月、小时、分钟更新
- 更新时间:根据更新周期选择计划的具体更新时间,可参考更新周期
- 上游任务:关系加工任务的上游可以关联外部任务,形成任务依赖。目前支持关联「离线应用」和「标签应用」的任务,选择上游任务后,会形成任务依赖,上游任务运行成功后开始运行下游的关系加工任务
- 选择租户:单选,选择该集群内的租户
- 选择应用:单选,可以选择离线应用或标签应用
- 选择项目:单选,如果选了离线应用,可选择所选租户下的某个项目;如果选了标签应用,只能选择当前项目
- 选择任务:单选,如果是离线应用,可选择所选项目内已提交的任务;如果是标签应用,只能选择某个关系任务
关系编辑
关系创建后,关联的实体、关系模型、模型主键、模型存储方式将无法编辑。
关系删除
关系删除与关系是否被标签引用有关。
- 若被标签引用:不可删除;
- 若未被标签引用:可删除;
数据模型
进入“实体管理-关系管理-新增/编辑关系”页面,点击“选择关系模型”右边的“前往数据模型新建”跳转至「数据模型」页面
模型创建
步骤一:点击新建模型按钮,填写模型的基础信息:
- 模型名称:支持中文、字母、数字和下划线,不超过64个字符;
- 模型编码:支持字母、数字和下划线;
- 数据源:选择相关项目的数据源,选项格式为_${项目名称}_tag(Presto),表示标签产品下某个项目的数据源;
- 备注:描述模型的内容与用途,不超过200个字符;
步骤二:进行表关联,支持设置多张表之间的关联关系
- schema:选择标签应用的项目hive库,可在标签应用的“项目管理-项目配置-数据源地址”查看数据源信息;
- 选择表:选择数据源下的某张表进行后续的表关联设置,此处选择的表将被命名为“t0”;
- 添加关联表:配置关联表及关联键等信息,支持设置多张表之间的关联关系
- 选择表:选择左表,第一次添加关联表时,只能选择“t0”表;
- 关联关系:从“left join、right join、inner join”中选择一种关联关系;
- schema&关联表:选择右表并设置表名;
- 设置关联键:分别选择左表和右表的字段做为关联键,此处支持添加多个关联键;
步骤三:选择维度,从步骤二添加的关联表中选择建标签时需要使用的字段,用关系模型加工标签时只会返回此处已选择的字段
步骤四:选择度量,对于标签产品来说选择度量和选择维度的效果是一样的
步骤五:设置分区信息,当数据模型需要增量更新时,可设置分区信息;如果不需要增量更新,可不设置
其他操作
- 发布:用户可以在数据模型页面或模型新增、编辑页进行发布,只有发布后的模型才能被标签应用使用,模型发布后无法进行编辑和删除操作
- 下线:用户可以在数据模型页面下线模型,标签的关系无法引用已经下线的模型
tip
模型下线后将会对标签应用中的关系产生影响,导致无法正常用关系加工衍生标签,请谨慎下线数据模型。
- 编辑:只能编辑“已下线”的模型,编辑时的页面与新增页一致,但是无法修改模型编码、数据源、schema、关联表和分区信息
- 删除:只能删除“已下线”的模型