标识列生成现在可以使用代理键附近的Lakehouse你!
一个标识列是什么?
一个标识列是一个列在数据库中自动生成一个惟一的ID号码为每个新行数据。这个数字不是行相关的内容。
标识列的一种形式代理键。在数据仓库中,通常使用一个额外的关键,称为代理键,来唯一地标识每一行和跟踪数据随时间的变化。另外,建议使用代理键自然键。代理键是系统生成的,而不是依赖于几个字段来标识的唯一性。
所以,标识列是用于创建代理键,它可以作为主键和外键维度模型的数据仓库和数据集市。正如下面所看到的,这些键彼此连接不同的表的列维度模型在传统的像一个星型模式。
传统方法生成代理键数据湖泊
大多数大数据技术使用并行性,或者能够把任务分成更小的部分,可以在同一时间完成,以提高性能。在早期的数据湖泊,没有简单的方法来创建独特的序列在一组机器。这导致了一些数据工程师使用不可靠的方法来生成代理键没有适当的特性,如:
monotonically_increasing_id (),
row_number (),
排名,
ZipWithIndex (),
ZipWithUniqueIndex (),
- 散列和行
散列(),
和 - 散列和行
md5 ()
。
虽然这些功能能够完成工作在某些情况下,它们常常充满了许多警告和警告稀疏填充序列,在规模的性能问题,并发事务问题。
数据库已经能够生成序列自从早期,生成代理键来唯一地标识一行数据的援助集中的事务管理器。然而,典型的实现需要锁和事务提交,这很难管理。
标识列三角洲湖上简化生成代理键
标识列解决上面提到的问题并提供一个简单的、高性能的解决方案生成代理键。湖三角洲湖是第一个数据协议支持代理键的标识列的一代。
三角洲湖现在支持创建身份
列,可以自动生成独特的新行加载时增加的ID数字。虽然这些ID数字可能不是连续,三角洲使尽最大努力保持尽可能小的差距。您可以使用此功能来创建代理键轻松为你的数据仓库的工作负载。
如何创建一个代理键和一个标识列使用SQL和三角洲湖吗
[推荐]产生总是身份
创建一个标识列在SQL创建三角洲湖表一样简单。当宣布你的列,叫添加一个列的名字id
,或任何你喜欢的数据类型长整型数字
,然后输入生成的总是作为身份
。
现在,每次执行一个操作在这个表中插入数据,忽略这一列插入,三角洲湖将会自动生成一个惟一的值身份
为每一行插入到三角洲湖表列。
这是一个简单的例子,如何使用标识列在三角洲湖:
创建或取代表演示(id长整型数字生成的总作为身份,product_type字符串,销售长整型数字);
展望未来,列标题为“身份id
“将自动递增每当你将新记录插入到表中。然后您可以插入新的数据如下所示:
插入成演示(product_type、销售)值(“电池”,150000年);
注意代理键列标题为“id
“不见了插入
声明的一部分。三角洲湖写表时将填充代理键云对象存储(例如AWS S3,蔚蓝的湖数据存储,或谷歌云存储)。BOB低频彩学习更多的文档。
在默认情况下生成
还有一在默认情况下生成的身份
选项,该选项允许插入身份被覆盖,而总是
选项不能被覆盖。
需要指出的是你应该记住当采用这个新特性。标识列不能被添加到现有表;需要重新创建的表添加新标识列。为此,只需创建一个新表DDL标识列,和现有的列插入新表,和代理键将生成新表。
开始使用身份与三角洲湖列砖今天SQL
标识列现在GA(通常)在砖运行SQL 2022.17 + 10.4 +和砖。标识列,现在可以让你所有的数据仓库的工作负载都Lakehouse架构带来的好处,通过光子加速。今天尝试身份列砖SQL。