1、表更新,如何校验数据准确性:
如何通过 excel 拼接所有字段:
=IF(B2="string","nvl(t1."&A2&",''),","nvl(cast(t1."&A2&" as string),''),")
=IF(B2="string","nvl(t2."&A2&",''),","nvl(cast(t2."&A2&" as string),''),")
select count(1)
from (
select concat(
nvl(t1.field1,''),
nvl(t1.field2,''),
nvl(t1.field3,'')) as ss1
,concat(nvl(t2.field1,''),
nvl(t2.field2,''),
nvl(t2.field3,'')) as ss2
from (
select *
from table_origin
where xxx
) t1
join (
select *
from table_update
where xxx
) t2
on t1.lidu_field1= t2.lidu_field1 --表粒度
--where t1.field <> t1.field --更新的内容
) t
where ss1<>ss2
;
2、sprak 2 holo 的 ‘write_mode’: ‘insert_or_replace’ 是只会新增/更新,而不会删除数据的同步方式。如果业务场景存在删除情况,那么要注意添加 插入前 清空数据 的操作。
3、Python学习
所有序列类型都可以进行某些特定的操作。这些操作包括:索引、分片、加、乘以及检查某个元素是否属于序列的成员。除此之外,Python还有计算序列长度、找出最大元素和最小元素的内建函数。
4、数据仓库工具箱
信息几乎总是用作两个目的:操作型记录的保存和分析型决策的指定。简单来说,操作型系统保存数据,而DW/BI系统使用数据。
操作型系统的用户确保组织能正常运转。对操作型系统进行优化的目的是使其能够更快地处理事务。操作型系统一般一次处理一个事务记录。它们按部就班,以可预测的方式完成同样的操作型任务,可预测地执行组织的业务过程。鉴于这种执行特点,操作型系统通常不必维护历史数据,只需修改数据以反映最新的状态。
另一方面,DW/BI系统的用户研究分析企业的运转,并对其性能进行评估。这些信息用于分析并判断操作型过程是否处于正确的工作状态。尽管也需要详细的数据来支持始终处于变化状态的问题,但DW/BI系统一般不会一次只处理一个事务。对DW/BI 系统进行优化的目的是高性能地完成用户的查询,而回答用户的查询通常需要搜索成千上万条事务,并将查询结果放入一个查询集合中。为应对更复杂的问题,DW/BI 系统的用户通常要求保存历史环境,用于精确地评估组织在一段时间内的性能。
在关系数据库管理系统中实现的维度模型通常称为星型模式,因为其结构类似星型结构。在多维数据库环境中实现的维度模型通常称为联机分析处理(OLAP)多维数据库。我们通常推荐将详细的、原子的信息加载到星型模式中,然后将OLAP多维数据库移植到星型模式上。
所有事实表的粒度可划分为三类:事务、周期性快照和累积快照。事务粒度级别的事实表最常见。
多数情况下,数据仓库的好坏直接取决于维度属性的设置;DW/BI 环境的分析能力直接取决于维度属性的质量和深度。为维度属性提供详细的业务术语耗费的精力越多,效果就越好。为属性列填充领域值耗费的精力越多,效果就越好。为确保属性值的质量耗费的时间越多,效果就越好。强大的维度属性带来的回报是健壮的分片-分块分析能力。
规范化的方法构建的模式称为雪花模式。维度表通常不一定要满足第3范式,它常常是非规范化的,一个维度表中往往存在多对一的关系。由于与事实表比较,维度表通常要小得多,因此采用规范化或雪花模式实际上对数据库的总容量没有多大影响。一般对维度表存储空间的权衡往往需要关注简单性和可访问性。
Kimball 架构的DW/BI 环境组成:操作型源系统、ETL系统(获取-转换-加载)、数据展现和商业智能应用。
ETL系统是处于操作型源系统与DW/BI展现系统之间的区域。获取是将数据从操作型系统导入数据仓库环境这一ETL过程的第1步。获取意味着读取并理解源数据并将需要的数据复制到ETL系统中以利于后续的处理操作。从这点来看,数据属于数据仓库。
数据获取到ETL系统后,需要进行多种转换操作,例如,清洗数据,合并来自不同数据源的数据,复制数据等。ETL系统通过增强或数据变换,采用清洗和整合上述任务的方法,增加数据的利用价值。另外,这些工作还可以建立诊断元数据,逐步建立业务过程再工程以改进源系统的数据质量。