数据集成最佳实践:分区表作为来源表时的处理策略

简介: 分区表是指拥有分区空间的表,在集成任务中指定来源表的分区数据进行抽取,可以避免全表扫描,提高处理效率。但是来源表为分区表时也会遇到一些问题,如某些分区不存在,或者是需要抽取多个分区的数据,下面介绍一下Dataphin为这些场景提供的对应能力。

一、概念解释

分区表是指拥有分区空间的表,即在创建表时指定表内的一个或者某几个字段作为分区列。分区表实际就是对应分布式文件系统上的独立的文件夹,一个分区对应一个文件夹,文件夹下是对应分区所有的数据文件。分区可以理解为分类,通过分类把不同类型的数据放到不同的目录下。分类的标准就是分区字段,可以是一个,也可以是多个。分区表的意义在于优化查询。查询表时通过指定所需查询的分区,避免全表扫描,提高处理效率,降低计算费用。使用数据时,如果指定需要访问的分区名称,则只会读取相应的分区。

在Dataphin的集成管道中,MaxCompute、Hive和TDH Inceptor组件中,选择表后会判断是否是分区表,如果是分区表的话则需要填写分区配置。

二、场景及功能

场景一:某企业有一个每天定时调度的集成任务,来源表是一张MaxCompute的分区表,每天会抽取ds=${bizdate}的分区数据进行数据同步。某天该集成任务运行失败了,原因是前一天因某种原因未产生当日业务数据,所以没有产生当日分区,此时集成任务抽取该表的ds=${bizdate}分区会发现该分区不存在,导致任务失败,然后导致后续链路上的任务也无法进行调度运行,数据无法产出。未产生该分区的原因可能是因为当日就是没有产生数据,对业务来说属于正常情况;也可能未产生分区属于异常情况,需要及时被感知并处理。

对应功能:MaxCompute、Hive、TDH Inceptor输入组件支持分区不存在时的选择策略。MaxCompute输入组件支持“置任务失败”、“置任务成功,无数据写入”和“使用最新非空分区”策略;Hive、TDH Inceptor输入组件支持“置任务失败”和“置任务成功,无数据写入”策略。

【Dataphin V3.9及以上支持该功能】

  • 如果下游任务一定依赖当日分区的数据才可运行,选择“置任务失败”策略,在当日分区没有及时产出时,集成任务运行时找不到分区便会置任务失败,并及时告警运维人员异常情况,及时处理修复。
  • 如果在特定业务场景下,不一定每天会产生分区,可以选择“置任务成功,无数据写入”,集成任务调度时如没有抽取到该分区,任务也会运行成功,支持没有数据写入,这样可以不阻塞下游任务的运行。
  • 如果来源表是一张维表,每日数据的变动基本不大,后续任务在产出时间上有要求,但对于这张维表的当日变化感知不强,可以考虑选择“使用最新非空分区”策略,在当日分区没有及时产出时,使用最新非空分区的数据进行下游任务的数据处理。

场景二:某企业的业务数据有可能会延后录入数据库,比如每天都会收集并更新前七天的数据库到指定的日期分区中。此时就需要创建一个每天调度的集成任务抽取运行当日的业务时间及之前六天的共七个分区数据到中台然后进行后续的数据处理。

对应功能:MaxCompute、Hive、TDH Inceptor输入组件支持抽取多分区数据。

【Dataphin V3.10及以上支持该功能】

抽取单分区数据时,可以直接输入等式来指定需要读取的分区,如ds=${bizdate}。如果需要抽取多个分区的数据,如上述场景所述,每天都需要抽取业务时间及之前六天的七个分区,可以在集成管道属性配置中配置一个参数作为集成任务调度时业务时间的七天前,例如seven_days=${yyyymmdd-7},然后在输入组件的分区配置中使用 /*query*/ds>${seven_days}的语法来指定抽取这天之后的所有分区。需注意的是,抽取多分区需要在条件上加上 /*query*/再写条件。

三、总结

当来源表为分区表时,Dataphin集成管道提供了分区不存在时的策略,以及读取多分区的能力,以应对不同的业务场景。

相关文章
|
SQL 分布式计算 关系型数据库
|
安全 API 分布式计算
“Dataphin功能tips”系列
hello,大家好: 为了更好地引导广大用户深入探索和高效利用Dataphin全方位的数据智能能力,我们特别推出“Dataphin功能小Tips”系列,旨在通过生动直观的场景描述与对应的功能应用方案,以简洁明快的语言呈现,力求让每一位用户都能轻松解锁Dataphin中的每一个实用功能点。 这一系列内容专为提升您的使用体验而设计,期待能为大家解决实际问题、优化数据管理工作带来切实的帮助,在此,我们也诚挚邀请所有用户积极参与互动,随时分享您宝贵的使用心得与建议。您的反馈将是我们不断迭代优化的重要动力!
865 0
|
SQL 存储 运维
Dataphin中基于Flink的实时研发
本文将以一个简单的场景来说明如何在Dataphin中进行实时研发
Dataphin中基于Flink的实时研发
|
10月前
|
数据采集 监控 调度
Dataphin功能Tips系列(76)质量规则调度配置系列(3)-定时调度
Dataphin「定时调度」功能支持按需设定数据质量检测时间与频率,适用于定期检查数据质量问题的场景。提供手动配置和系统推荐两种方式,可自动执行规则并生成报告,帮助用户高效发现并处理问题。
315 9
|
JSON API 数据安全/隐私保护
API数据源与集成优化【Dataphin V3.9】
在DataphinV3.9版本中,对于API数据源的认证方式配置与URL相对路径配置等场景进行了功能优化,并且新增支持了通过离线集成管道中的API输出组件向API数据源写入数据的功能。
889 0
|
监控
数据标准应用(一):落标映射关系
数据标准创建完成后,需要指定其关联的资产对象才能发挥应用价值。数据标准和资产对象的映射关系当前可以通过落标映射规则来管理;生成映射关系后,对象是否遵循了映射到的标准定义则通过落标监控评估来判断。本文为您介绍落标映射关系的分类和管理方式。
2316 0
|
监控 供应链
Dataphin资产专题助力您打造精品数据
随着数据量的不断增长以及消费场景的多样化,当前单一的数据目录已经很难满足数据管理者和消费者对于资产管理和查找的需求。 种种困难和吐槽的背后,核心原因是缺少一套有效的资产管理及运营体系,数据难以与业务形成有效连接,数据资产价值无法发挥放大。基于此背景,Dataphin 全新推出资产专题功能,希望打造面向主题的精品数据资产建设和运营生态,提升数据生产者和消费者的工作效率。 通过专题,您可以灵活高效地组织、管理并运营精品数据资产,交流并沉淀业务知识,形成数据与业务更多更强的连接,让数据更好地驱动业务。
1216 1
|
数据采集 监控 数据管理
数据质量最佳实践(5):利用质量分和排行榜提升企业数据质量【Dataphin V3.12】
在数据质量最佳实践(3):通过质量治理工作台,实现质量问题的跟踪和处理这篇文章中,我们详细的介绍了如何通过治理工作台,对系统出现的一个一个具体质量问题进行治理。 但是对于企业整体的数据质量情况,我们该如何评估呢?以及如何寻找当前企业的数据质量短板,并有针对性的进行改进和提升呢? 在Dataphin V3.12版本中,质量新增了质量分的能力,可以给数据表和质量规则配置打分权重和打分方式,从而获得全局、数据源、项目、负责人、数据表等维度的质量打分评估,帮助CDO判断企业整体的数据质量情况和数据质量问题的分布,从而有针对性的提升企业整体的数据质量水平。
1521 1
|
数据采集 监控 数据建模
Dataphin
Dataphin是阿里云推出的一款数据开发平台,旨在帮助企业进行数据开发和管理。Dataphin提供了一系列数据开发工具和服务,包括数据集成、数据建模、数据开发和数据治理等,可以满足企业在数据开发和管理方面的各种需求。
1041 0
|
Shell 网络安全 Python
妙用Dataphin的Python三方包管理
Dataphin 中的 Python 计算任务不随意增加内置 module 是为了避免安装包过大和升级时间延长。用户可通过执行 "pip list" 或 "pip3 list" 查看内置 module 列表。 Dataphin 的 Python 环境在镜像中固定,无法用户直接修改,但 v3.14 版本起支持在线安装或上传安装三方包,预安装后在任务中显式引入。对于依赖操作系统库的 module,用户需上传包含相应程序的自定义安装包进行预安装。此外,此功能也可扩展用于管理 shell 任务所需的系统程序。
632 0

热门文章

最新文章