详情页标题前

阿里云云原生大数据计算服务 MaxCompute公共规范-云淘科技

详情页1

本文为您介绍建设MaxCompute数据仓库的公共规范。

次调用约定

应用层应优先调用公共层数据,必须存在中间层CDM数据,不允许应用层跨过中间层CDM从ODS层重复加工数据。

中间层CDM需要积极了解应用层数据的建设需求,将公用的数据沉淀到公共层,为其他层提供数据服务。应用层需要积极配合中间层CDM持续改造公共层。必须避免出现过度的引用ODS层、不合理的数据复制以及子集合冗余

  • ODS层数据不能被应用层任务引用,中间层CDM不能有沉淀的ODS层数据,必须通过CDM层的视图访问。CDM层视图必须使用调度程序进行封装,保持视图的可维护性与可管理性。
  • CDM层任务的深度不宜过大(建议不超过10层)。
  • 原则上一个计算刷新任务只允许一个输出
  • 如果多个任务刷新输出一个表(不同任务插入不同的分区),DataWorks上需要建立一个依赖多个刷新任务的虚拟任务,通常下游应该依赖此虚拟任务。
  • CDM汇总层应优先调用CDM明细层。在调用可累加类指标计算时,CDM汇总层尽量优先调用已经产出的粗粒度汇总层,以避免大量汇总直接从海量的明细数据层计算。
  • CDM明细层累计快照事实表优先调用CDM事务型事实表,以保持数据的一致性产出。
  • 避免应用层过度引用和依赖CDM层明细数据,需要针对性地建设好CDM公共汇总层。

MaxCompute项目分配

按实际需求分配不同的ODS和CDM项目。一个ODS层项目对应一个CDM项目。例如:

  • ODS层项目,按业务部门的粒度建立。
  • CDM层项目,按业务部门的粒度建立。
  • ADS层项目,按应用的粒度建立。

一个项目的划分结构如下图所示。阿里云云原生大数据计算服务 MaxCompute公共规范-云淘科技

项目命名规范

  • ODS层项目名称以ods为后缀,例如tb_ods
  • 中间层CDM项目名称以cdm为后缀,例如tb_cdm
  • 应用层项目中,数据报表、数据分析等应用名称以bi为后缀,例如tb_bi;而数据产品等应用名称以app为后缀,例如sycm_app

数据类型规范

ODS层的数据类型应基于源系统数据类型转换。例如,源数据为MySQL时的转换规则如下。

MySQL数据类型 MaxCompute数据类型
TINYINT TINYINT
SMALLINT/MEDIUMINT SMALLINT
INTEGER INT
BIGINT BIGINT
FLOAT FLOAT
DOUBLE DOUBLE
DECIMAL DECIMAL
CHAR/VARCHAR VARCHAR
LONGTEXT/TEXT STRING
DATE/TIMESTAMP/TIME/YEAR STRING
DATETIME DATETIME

CDM数据公共层如果是引用ODS层数据,则默认使用ODS层字段的数据类型。其衍生加工数据字段按以下标准执行:

  • 金额类及其它小数点数据使用DOUBLE类型。
  • 字符类数据使用STRING类型。
  • ID类和整形数值使用BIGINT类型。
  • 时间类型数据使用STRING类型(如果有特殊的格式要求,可以选择性使用DATETIME类型)。
  • 状态使用STRING类型。

公共字段定义规范

  • 数据统计日期的分区字段按以下标准:
    • 按天分区:ds(YYYYMMDD)。
    • 按小时分区:hh(00~23)。
    • 按分钟:mi(00~59)。
  • is_{业务}:表示布尔型数据字段。以Y和N表示,不允许出现空值域。
  • 原则上不需要冗余分区字段。

数据冗余

一个表做宽表冗余维度属性时,应该遵循以下建议准则:

  • 冗余字段与表中其它字段高频率(大于3个下游应用SQL)同时访问。
  • 冗余字段的引入不应造成其本身的刷新完成时间产生过多后延。
  • 公共层数据不允许字段重复率大于60%的相同粒度数据表冗余,可以选择在原表基础上拓宽或者在下游应用中通过JOIN方式实现。

数据拆分

数据的水平和垂直拆分是按照访问热度分布和数据表非空数据值、零数据值在行列二维空间上分布情况进行划分的。

  • 在物理上划分核心模型和扩展模型,将其字段进行垂直划分。
  • 将访问相关度较高的列在一个表存储,将访问相关度较低的字段分开存储。
  • 将经常用到的Where条件按记录行进行水平切分或者冗余。水平切分可以考虑二级分区手段,以避免多余的数据复制与冗余。
  • 将出现大量空值和零值的统计汇总表,依据其空值和零值分布状况可以做适当的水平和垂直切分,以减少存储和下游的扫描数据量。

空值处理原则

  • 汇总类指标的空值:空值处理,填充为零,当前MaxCompute基于列存储的压缩技术不会由于填充大量空值导致存储成本上升。
  • 维度属性值为空:在汇总到对应维度上时,对于无法对应的统计事实,记录行会填充为-99(未知),对应维表会出现一条-99(未知)的记录。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/158875.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云人工智能平台PAI深度学习框架及开通说明-云淘科技

    阿里云机器学习平台支持深度学习框架,同时提供了功能强大的GPU计算集群。您可以使用这些框架及硬件资源来使用深度学习算法。 前提条件 已关联MaxCompute资源,具体操作,请参见管理工作空间。 背景信息 深度学习支持的框架包括TensorFlow(兼容开源TF1.12版本)。TensorFlow支持用户自己编写的Python代码。 在使用深度学习框架训练数…

    阿里云人工智能平台PAI 2023年12月10日
  • 阿里云RDS数据库DescribeDBInstanceNetInfo – 查询实例的所有连接地址信息-云淘科技

    该接口用于查询RDS实例的所有连接地址信息。 接口说明 适用引擎 RDS MySQL RDS PostgreSQL RDS SQL Server RDS MariaDB 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试调试授权信息下表是API对…

    阿里云数据库 2023年12月9日
  • 阿里云ECS云服务器迁移自建数据库至高可用版RDS实例-云淘科技

    将源ECS实例上的数据库迁移至高可用版云数据库RDS,可实现数据库服务的高可用性、高可靠性、高安全性和高易用性。本教程以MySQL数据库为例,介绍如何使用DTS将ECS实例上的自建数据库迁移至高可用版RDS实例。 前提条件 已配置SLB实例,详情请参见配置SLB实例。 已创建高可用版RDS实例,并且部署方案为多可用区部署。如未创建,请参见创建RDS MySQ…

    2023年12月9日
  • 阿里云云原生大数据计算服务 MaxComputeSPLIT-云淘科技

    通过pat将str分割后返回数组。 命令格式 split(, , []) 参数说明 str:必填。STRING类型。指被分割的字符串。 pat:必填。STRING类型的分隔符。支持正则表达式。更多正则表达式信息,请参见正则表达式规范。 trimTailEmpty: 可选参数,默认值为true,设置为false保留末尾空字符串 (Hive兼容)。 返回值说明 …

  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLS开启数据采集功能-云淘科技

    CloudLens for EBS支持手动或自动化开启数据采集功能。手动开启采集功能针对单个或当前所有的云盘,自动化开启采集功能支持设置采集条件,并自动采集符合条件的云盘(包括未来创建的)的秒级监控数据。本文介绍开启数据采集功能的操作步骤及相关操作。 注意 目前仅限白名单用户使用CloudLens for EBS。如果您需要使用CloudLens for E…

    阿里云日志服务SLS 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。