跳转到主要内容
bob体育客户端下载平台的博客

数据建模的最佳实践和实现现代化Lakehouse

分享这篇文章

大量的客户正在迁移遗留数据仓库数据砖Lakehouse它使他们不仅现代化数据仓库也立即获得一个成熟的流和先进的分析平台。bob体育客户端下载Lakehouse可以做到,因为它是一个平台,你所有的流、ETL、BI和Abob体育客户端下载I的需求,它可以帮助您的业务和数据团队协作平台。

我们帮助客户在这个领域,我们发现许多正在寻找最佳实践适当的数据建模和物理数据模型实现砖。

在本文中,我们的目标是深入研究维度建模的最佳实践在砖Lakehouse平台上,并提供一个生活的例子使用我们的表创建一个物理数据模型实现和DDL最佳实践。bob体育客户端下载

这里是高级主题我们将介绍在这个博客:

  1. 数据建模的重要性
  2. 公共数据建模技术
  3. 数据仓库建模DDL实现
  4. 数据建模的最佳实践和推荐砖Lakehouse

数据仓库的数据建模的重要性

数据模型是构建数据仓库的前面和中心。通常这个过程始于捍卫语义业务信息模型,然后一个逻辑数据模型,最后一个物理数据模型(PDM)。这一切开始于一个适当的系统分析和设计阶段,业务信息模型和流程是首先创建和关键业务实体、属性和它们的相互作用捕获的业务流程在组织内。然后创建逻辑数据模型描述实体是如何彼此相关的技术,这是一个不可知论者模型。最后创建一个PDM基于底层技术平台,以确保读和写可以有效地执行。bob体育客户端下载我们都知道,对于数据仓库,Analytics-friendly建模风格星形架构数据保险库非常受欢迎的。

创建一个物理数据模型在数据砖的最佳实践

基于定义的业务问题,数据模型设计的目的是表示数据的一种简单的方法可重用性,灵活性和可伸缩性。这是一个典型的星形架构数据模型显示销售事实表包含每个事务和各种维度表如客户、产品、商店、分片数据的日期等。维度可以加入到事实表回答特定的业务问题,如什么是最受欢迎的产品对于一个给定的月或哪些商店表现最好的季度。让我们看一下如何实现数据砖。

图表显示了星型模式是如何工作的,用事实和维度构建lakehouse
Lakehouse维度模型

数据仓库建模DDL实现砖

在下面几节中,我们将演示使用以下示例。

  • 创建三级目录、数据库和表
  • 主键、外键的定义
  • 身份为代理键列
  • 列约束对数据质量
  • 索引,优化和分析
  • 先进的技术

1。统一名称空间目录- 3水平

统一目录是一个砖治理层砖管理员和数据管理员可以管理用户及其访问数据集中所有的工作区砖使用一个Metastore帐户。用户在不同的工作区可以共享访问相同的数据,根据权限集中在统一目录。统一目录有3个级别名称空间(catalog.schema(数据库).table)组织您的数据。BOB低频彩了解更多关于统一目录。

统一名称空间目录- 3水平

统一名称空间目录- 3水平

这里是如何设置目录和模式在我们的数据库中创建表。在我们的示例中,我们创建一个目录US_Stores和一个模式(数据库)Sales_DW如下所示,使用它们的后部分的一部分。

创建目录如果存在US_Stores;使用目录US_Stores;创建模式,如果存在Sales_DW;使用模式Sales_DW;

设置目录和数据库

这里有一个例子查询fact_sales表3级名称空间。

查询与catalog.database.tablename表的例子
查询与catalog.database.tablename表的例子

2。主键、外键的定义

主键和外键的定义是非常重要的,当创建一个数据模型。有能力支持PK /颗定义使砖的超级简单定义数据模型。它还帮助分析师迅速指出连接关系数据砖SQL仓库,这样他们可以有效地编写查询。像大多数其他的大规模并行处理(MPP),仓库,和云数据仓库,PK /颗约束信息。砖不支持执法的PK /颗关系,但给它定义的能力语义数据模型的设计简单。

这是创建的一个例子dim_store可以作为一个标识列,也在同一时间定义为一个主键。

——存储维度创建取代dim_store (可以长整型数字生成的总作为身份键,business_key字符串,名称字符串,电子邮件的字符串,城市的字符串,地址字符串,phone_number字符串,created_date时间戳,updated_date时间戳,start_at时间戳,end_at时间戳);

DDL创建存储实现维度与主键定义

创建表后,我们可以看到,在创建主键(可以)如下表定义的约束。

主键可以显示表的约束
主键可以显示表的约束

这是创建的一个例子fact_salestransaction_id作为一个主键,以及外国引用维度表键。

——事实销售创建取代fact_sales (transaction_id长整型数字键,date_id长整型数字约束dim_date_fk外国关键引用dim_date,customer_id长整型数字约束dim_customer_fk外国关键引用dim_customer,product_id长整型数字约束dim_product_fk外国关键引用dim_product,可以长整型数字约束dim_store_fk外国关键引用dim_store,store_business_key字符串,sales_amount);

DDL创建销售实现事实与外键的定义

创建事实表后,我们可以看到主键(transaction_id)和创建外键约束的表定义如下。

事实表定义主键和外国键引用维度
事实表定义主键和外国键引用维度

3所示。身份为代理键列

一个标识列是一个列在数据库中自动生成一个惟一的ID号码为每个新行数据。这些都是常用的在数据仓库中创建代理键。代理键是系统生成的,毫无意义的钥匙,这样我们不必依赖于各种自然主键和串连在几个字段来标识的唯一性行。通常使用这些代理键作为数据仓库的主键和外键。讨论了细节标识列这个博客。下面是创建一个customer_id标识列的一个例子,使用自动分配值从1开始,增加1。

——客户维度创建取代dim_customer (customer_id长整型数字生成的总作为身份(开始1增量通过1)键,名称字符串,电子邮件的字符串,地址字符串,created_date时间戳,updated_date时间戳,start_at时间戳,end_at时间戳);

DDL创建客户实现维度与标识列

4所示。列约束对数据质量

除了主键和外键信息约束,砖也支持列级数据质量检查约束,以确保执行的质量和完整性数据添加到表中。约束是自动验证。这些都不是空的好例子约束和列值约束。与其他云数据仓库,数据砖更进一步提供列值检查约束,这是非常有用的,以确保数据质量给定的列。我们可以看到下面valid_sales_amount检查约束将验证满足约束(即所有现有的行。销售额> 0),然后将它添加到表中。可以找到更多的信息在这里

下面是示例添加约束dim_storefact_sales分别以确保可以sales_amount有效值。

——添加约束dim_store以确保列可以是1 - 9998改变US_Stores.Sales_DW.dim_store添加约束valid_store_id检查(可以>0可以<9999年);——添加约束fact_sales以确保列sales_amount有效值改变US_Stores.Sales_DW.fact_sales添加约束valid_sales_amount检查(sales_amount>0);

列约束添加到现有表,确保数据质量

5。索引、优化和分析

传统数据库b -树和位图索引,砖有许多先进形式的索引——多维z值聚集索引和我们也支持布隆过滤器索引。首先,Delta文件格式使用镶花的文件格式,这是一个柱状压缩文件格式,所以它已经非常有效的修剪和在其上使用z顺序列索引使您能够筛选pb级别数据在几秒钟内。这两个z值布隆过滤器索引显著减少需要扫描的数据量为了回答高度选择性对大型三角洲表查询,通常转化成数量级运行时改进和成本节约。使用z值在你的主键和外键用于最常见的连接。并根据需要使用其他的布隆过滤器索引。

——优化customer_id和product_id fact_sales表更好的查询和连接性能优化US_Stores.Sales_DW。fact_salesZORDER通过(customer_id product_id);

优化fact_sales customer_id和product_id更好的性能

——创建一个bloomfilter索引启用数据store_business_key跳过创建BLOOMFILTER指数US_Stores.Sales_DW.fact_sales列(store_business_key)

创建一个Bloomfilter索引启用数据跳过一个给定的列上

就像任何其他数据仓库,你可以分析表更新统计数据,以确保查询优化器有最好的统计数据来创建最好的查询计划。

——收集统计所有列获得更好的性能分析US_Stores.Sales_DW.fact_salesCOMPUTE STATISTICS所有列;

收集数据的所有列更好的查询执行计划

6。先进的技术

而砖等先进技术的支持表分区,请谨慎使用这些特性,只有当你有许多tb的压缩数据,因为大部分时间我们优化和z顺序索引会给你最好的文件和数据修剪使分区表按日期或一个月几乎一个糟糕的做法。这不过是一个好的做法,以确保您的表ddl设置自动优化和自动压实。这将确保你经常写的数据在小文件压缩成更大的柱状三角洲的压缩格式。

你是想要利用视觉数据建模工具?我们的合作伙伴erwin数据建模师的任务可用于逆向工程,创建和实现星形架构,数据金库,任何行业数据模型在数据砖只需要点击几下。

砖笔记本的例子

砖的平台,一个可以很容易地设计与bob体育客户端下载轻松实现各种数据模型。看到上面例子中的一个完整的工作流,请看看这个例子

也请看看我们的博客——有关五个简单的步骤来实现一个星型模式与三角洲湖砖

开始在Lakehouse构建维度模型

砖免费试用14天

免费试着砖

相关的帖子

看到所有bob体育客户端下载平台的博客的帖子