物理表
物理表是指按照一定规则和方法,将物理表中所定义的实体、属性、属性约束、关系等要素转换为数据库软件所能够识别的表关系图(Table Relationship Diagram)的一种物理描述。
可视化建模:
前提条件
需要完成主题规划和数仓分层设计信息配置后,才能进行物理建模操作,主题划分和数仓分层设计请参见数仓主题规划与数仓分层设计。
需要完成数据源接入,才可进行物理建模操作。
使用流程
登录数据中台,单击上侧导航栏的数据建模>物理建表,进入物理表页面。
2、创建物理表
a.在物理表页面,鼠标点击新建图标,创建物理表。
3、在“新建物理表”页面,根据页面提示完成相关配置。
a.填写基本配置参数。
| 参数名称 | 说明 |
| 选择所属的主题信息 |
| 选择处于已发布状态的数据源 |
| 以中文、英文、数字、下划线,且以中文或英文开头,最少4字符,最多64字符 |
| 以英文、数字、下划线组成,且以英文开头,最少4字符,最多64字符表英文名 |
| 物理表支持以下表类型: 表:表是数据库中用于存储数据的物理结构,它由行和列组成,每一行代表一个记录,每一列代表一个字段。当需要长期存储数据,且数据需要频繁更新和查询时,选择表。 视图:视图是基于一个或多个表的虚拟表,它不存储数据,而是通过SQL查询语句动态生成数据,需要提供数据的抽象层,简化用户查询时,选择视图。 |
| 选择物理表所需关联的逻辑模型 |
| 关联当前【关联逻辑模型】中生效的逻辑实体 |
| 当数据库类型是DM、可选如下分区类型:
当数据库类型是GaussDB、可选如下分区类型
当数据库类型是Doris、可选如下分区类型 Range(范围分区):根据指定列的值范围进行分区,适用于数据具有连续数值范围的场景。 List(列表分区):根据指定列的离散值列表进行分区,适用于数据具有离散值集合的场景。 |
| 当数据库类型是Hive、需选是否外部表信息 用于指定Hive表是否为外部表。外部表允许用户访问存储在Hive外部的文件系统中的数据,而不必将其移动到Hive的默认存储位置. |
| 当数据库类型是Hive、需选文件格式信息
|
| 当数据库类型是Hive、需定义列分隔符信息 指定Hive表中字段值之间的分隔方式,以便正确解析行式存储文件中的数据 |
| 当数据库类型是Hive、需定义压缩类型信息 压缩类型配置用于指定数据存储时采用的压缩算法,以减少存储空间和提高I/O效率 当数据库类型是KingBase、需选压缩类型信息。
|
| 当数据库类型是KingBase、需选择如下表类型。
当数据库类型是Doris、需选择如下表类型。 Aggregate:聚合表,用于存储聚合后的数据,适用于快速查询统计结果。 Unique:唯一表,保证表中每一行数据的唯一性,适用于需要去重的数据存储。 Duplicate:重复表,允许表中存在重复数据,适用于存储原始数据,不进行去重处理。 |
| 当数据库类型是KingBase、需选Nocopies表信息。 0:表示该表是复制表,即在数据库集群中,该表的数据会复制到所有的节点上,以保证数据的高可用性。 1:表示该表是非复制表,即在数据库集群中,该表的数据只存储在创建表的节点上,不会复制到其他节点,适用于存储不经常访问或不需要高可用性的数据。 |
| 当数据库类型是KingBase、需选行列模式信息。
|
| 当数据库类型是kafka、需填TTL信息。 TTL用于设置Kafka主题中消息的存活时间,超过此时间的消息将被自动删除。 单位是天(day)、小时(hours)或分钟(minutes) |
| 当数据库类型是kafka、需填分区个数信息。 分区个数的作用是提高并行处理能力和消息吞吐量,分区数越多,可同时处理的消费者和生产者请求就越多。对于小型集群(少于6个broker),可以选择是broker数量的3倍;对于大型集群(超过12个broker),可以选择是broker数量的2倍。 |
| 当数据库类型是kafka、需填当前分区信息。 指定创建主题(topic)时的初始分区数量,如果没有指定,则使用集群配置的默认值,默认的当前分区数值取决于Kafka集群的配置 |
| 当数据库类型是kafka、需填备份数信息。 备份数(Replication Factor):是指定每个分区的副本数量,以提高数据的可靠性和容错能力 |
| 当数据库类型是kafka、需填数据类型信息。 json:用于指定消息体为JSON格式,这是一种轻量级的数据交换格式。 json数组:用于指定消息体为JSON数组格式,允许单个消息包含多个JSON对象,适用于批量处理数据的场景。 Csv:用于指定消息体为CSV格式,其中的数据通常由纯文本组成,字段由逗号分隔,适用于存储表格数据的场景。 |
| 当数据库类型是kafka、需填写字符集信息。 f-8:指定使用UTF-8字符集,是一种广泛使用的字符编码,能够表示任何Unicode字符,适用于国际化场景 gbk:指定使用GBK字符集,是一种用于简体中文的字符编码,适用于涉及简体中文字符的场景 |
| 当数据库类型是kafka、需选择结构类型。 单一模式:消息体只包含单一结构的数据,如单个JSON对象或CSV记录,适用于简单的数据模型。 复合模式:消息体包含复合结构的数据,如JSON数组或嵌套JSON对象,适用于复杂的数据模型,可以包含多个记录或字段。 |
|
当数据库类型是Doris、需选择如下表引擎信息。
|
| 当数据库类型是Doris、需填分桶类型信息。 "hash"分桶:即根据哈希值将数据均匀分配到不同的桶中,以实现负载均衡 |
| 当数据库类型是Doris、需填分桶数量信息。 自动分桶:默认选择"auto"让系统根据数据量和查询模式自动决定最优的分桶数量。 手动分桶:支持用户手动设置分桶数,分桶数量的最小值为 1-5000。 |
| 当数据库类型是Doris、需填写拓展属性。 拓展属性:允许用户为表设置额外的配置选项,如副本数量、存储介质和数据冷却时间等,以满足特定的性能和存储需求。 |
b.在“物理表属性”页面添加所需要的物理表字段属性,物理表字段属性参数说明参考。
| 参数名称 | 说明 |
| 以英文、数字、下划线组成,且以英文开头,最少4字符,最多64字符。 |
| 以中文、英文、数字、下划线,且以中文或英文开头,最少4字符,最多64字符。 |
| 设置属性的数据类型。 |
| 选择一个已发布数据标准与逻辑实体属性关联 |
| 表中唯一标识每条记录的字段或字段组合 |
| 选中表示基于该字段值进行数据分区 |
| 选中表示该字段不可为空 |
| 当数据库类型是DM、需填写索引信息。
|
| 当数据库类型是Hive、需填写加密方式信息。
|
| 当数据库类型是kafka、需填写日期表达式信息。 用于定义Kafka消息中日期字段的格式,例如:yyyy-MM-dd |
| 当数据库类型是kafka、需填写选择器表达式信息。 jsonpath:使用JSONPath表达式从JSON格式的消息中提取特定字段,适用于处理JSON消息。 xpath:使用XPath表达式从XML格式的消息中提取数据,适用于处理XML消息。 列表下标:通过指定列表的下标来提取数组中的特定元素,适用于处理包含数组的数据结构。 |
| 当数据库类型是ClickHouse、需设置分布排序键。 分布排序键”(Distribution Key):用于指定数据在分布式表中的分布方式,通常选择一个或多个列作为分布键,以确保数据按照这些列的值分布到不同的节点上,从而优化查询性能和负载均衡。 |
| 当数据库类型是Dorise、需设置分桶字段。 设置该字段为分桶字段,这个字段的值将影响数据在不同桶中的分布,从而对查询性能和负载均衡产生影响。 |
| 当数据库类型是Dorise、需设置聚合key字段。 设置改字段为聚合字段,这些字段决定了数据的聚合方式,如SUM、MAX、MIN等,适用于数据预聚合场景 |
| 当数据库类型是Dorise、需选择聚合类型。 SUM:对数值列进行求和,适用于需要计算总量或累计值的场景。 REPLACE:用于替换Value列的值。当新数据的Key列与已有数据的Key列相同时,新数据的Value列会替换掉旧数据的Value列 MAX:找出数值列的最大值,适用于需要确定最大值的场景。 MIN:找出数值列的最小值,适用于需要确定最小值的场景。 |
| 当数据库类型是Dorise、需设置分区key。 “分区key”参数用于指定表的分区键 |
c.在“属性信息”页面,单击“创建关系”进入创建数据表之间关系。
| 参数名称 | 说明 |
| 默认选择上一步骤创建的物理表 |
| 默认选择上一步骤创建的物理表的属性信息 |
| 1:1表示此物理表数据在关联物理表中只有一条数据与之对应。 1:N表示此物理表数据在关联物理表中至少有一条数据与之对应。 N:1表示此物理表数据有多条数据与关联物理表中一条数据与之对应。 |
| 与同模型下已生效物理表进行关联 |
| 与同模型下已生效物理表字段进行关联 |
6、 完成物理表基本信息后,单击“确定”,完成物理表信息创建。
后续步骤
您可进行物理表物化、上线转为已生效状态,已生效的物理表可在其他模块应用。