后进先出存储的
下推特性描述
我们感动!为了改善客户体验,Collibra数据质量用户指南已转移到新万博移动客户端
新万博移动客户端Collibra文档中心
作为Collibra数据质量2新万博移动客户端022.11版本的一部分。为了确保平稳过渡,
dq-docs.新万博移动客户端collibra.com
仍然可以访问,但DQ用户指南现在只在文档中心进行维护。
一些DQ特性支持下推,以避免将大数据集从数据源(数据库、云存储、文件系统等)传输到Spark。当启用并支持下推时,DQ Job将生成SQL查询,将计算卸载到数据源,从而减少DQ Job的数据传输量和Spark计算量。并非所有特性都支持下推,也不是下推完全消除了数据传输。
为了作为DQ作业的一部分分析DQ结果的数据集,CDQ使用Spark作为计算引擎来支持分析。这需要将数据集作为Spark DataFrame加载到Spark中,DQ Job的性能(作业完成速度)受到Spark可用资源和作业复杂性的限制。狗万新闻c从数据源到Spark的数据传输依赖于以下两个因素:
-
1.数据源带宽限制如果DQ Job需要从SQL数据库抽取1亿行数据,那么将数据从SQL数据库传输到Spark集群的Input/Output限制将大大提高DQ Job的整体速度。
-
2.如果DQ作业需要复杂的查询来创建数据集(通过
q
),则此计算在SQL数据库级别完成。“复杂”查询的一些例子是:-q "SELECT * FROM public。WHERE date = ${rd} and department = 'finance'"
在数据库级别上,此查询可能需要很长时间,因为在哪里
子句在列上过滤一个非常长的表日期
而且部门
索引可能不正确,导致全表扫描而没有限制
子句指定。-q "SELECT * FROM public。very_long_table_of_transactions transactions INNER JOIN public.departments department ON transactions.department_id = departents。id WHERE事务。日期= ${rd} and departments.name = 'finance'"
由于表之间的连接,在数据库级别上,此查询可能花费很长时间。 -
3..数据源的资源限制数据源可能没有足够的硬件资源来有效地完成查询和/或处理多个DQ作业和其他请求数据的非cdq应用程序。
由于数据传输造成的瓶颈可以在Jobs页面> Job Logs > LOAD stage中查看。这个数据加载步骤是所有DQ作业的第一步。但是,可以使用下推功能减少如果指定的DQ作业不需要将所有数据加载到Spark,则不消除从数据源传输和计算到Spark的数据。总之,从数据源加载数据到Spark的速度是一个
查询数据源的计算时间
+-q结果在数据源和Spark之间的网络传输
.下推可以减少这两个元素,但所获得的效率取决于的复杂性q
查询和数据集的大小q
结果是没有压力的。
由DQ作业执行的一些Spark计算可以转换为大多数关系数据库本地支持的SQL查询。在这种情况下,DQ作业不需要加载数据集的所有行。相反,DQ Job可以在数据源中查询这些SQL查询的结果,并减少从数据源传输出去的数据量。与定义的完整数据集相比,这些SQL查询的结果几乎总是导致更少的数据量
q
.只有一些DQ作业特性需要将完整的数据集加载到Spark中。因此,下推是加快DQ作业整体速度的有用工具只要执行这些SQL查询的速度快于将数据从数据源传输到Spark的速度.在大多数用例中,下推可以使大型数据集的DQ作业执行速度更快。如果q
如果查询足够复杂,那么通过向Spark传输更少的数据而降低的速度可以通过Pushdown过程对数据源进行多次频繁的SQL查询来抵消(因为由于查询的复杂性,每个查询可能有冗余计算)q
)
只使用下推减少了从数据源传输出去的数据量。它不会在DQ作业中跳过LOAD阶段。每个DQ作业都需要定义的数据集的一个小样本行(10-20)
q
以便生成数据预览并分析数据集运行的模式信息。这意味着q
查询可以在采样发生之前在数据源上完全计算(取决于q
).在这种情况下,对10-20行数据进行采样并不是一个快速和直接的LOAD阶段,只有在数据源和Spark之间缺乏数据传输才能提高效率。因此,下推功能将是最有效的q
是一个具有简单where过滤的简单选择查询。好处来自于这样一个事实,即如果您的数据集由q
结果在1亿行中,仅定义了10-20行数据集q
将加载到Spark中。
然后,带有下推的概要文件将生成一系列SQL查询,并再次查询数据源以获得聚合度量数据。根据数据集的不同,这些多个SQL查询比将所有数据加载到Spark并在Spark中计算这些聚合度量更有效。结果是带下推的剖面而且无压剖面(几乎)一模一样。
下面是Profile活动的摘要,其中包含有关下推支持的详细信息
功能
|
支持下推
|
描述
|
---|---|---|
行数
|
是的
|
计算数据集的行数。
|
不同的数
|
是的
|
一列中不同值的数目
|
的意思是
|
是的
|
该列中所有值的平均值。只支持数字列。
|
最小/最大值
|
是的
|
列的最小值和最大值。仅支持数字和布尔列
|
空数
|
是的
|
列中空值的数目。
|
空的数
|
是的
|
列中空值的数目。只支持字符串列。
|
类型的数
|
是的
|
在一个列中推断出的不同类型的数量(如果有的话)
|
TopN / BottomN
|
没有
|
计算前5个最频繁(TopN)和最不频繁(BottomN)的值。支持所有类型。在“配置文件”页面以频率柱状图的形式显示该结果。如果启用了下推功能,则不显示TopN和BottomN值。相关功能,如统计规则(分布)也被禁用。
|
数据形状检测
|
没有
|
根据所提供的形状参数(自动或手动)检测值的形状。
|
柱状图
|
没有
|
创建列中值的直方图。
|
相关矩阵
|
没有
|
创建相关矩阵。仅支持数字列
|