以下发行说明提供了由 Apache Spark 3.3.0 提供支持的 Databricks Runtime 11.1 的相关信息。 Databricks 于 2022 年 7 月发布了这些映像。
Photon 现已正式发布(从 Databricks Runtime 11.1 开始)。 Photon 是 Azure Databricks 原生的向量化查询引擎,直接与 Apache Spark API 兼容,因此可以处理现有的代码。 Photon 是使用 C++ 开发的,它利用了新式硬件,并使用最新的向量化查询处理技术基于 CPU 中的数据级和指令级并行度产生价值,可以增强实际数据和应用程序的性能 - 所有这些功能在 Data Lake 上都以原生方式实现。
Photon 是能够更快运行现有 SQL 和数据帧 API 调用,并降低每个工作负载总成本的高性能运行时的一部分。 Databricks SQL 仓库中默认使用 Photon。
新增功能和改进包括:
有关详细信息,请参阅以下 Photon 公告。
当查询包含
SORT_BY
、
CLUSTER_BY
或带有
ORDER BY
的窗口函数时,Photon 现在支持向量化排序。
限制:Photon 不支持全局
ORDER BY
子句。 用于窗口计算的排序将进行光化,但全局排序将继续在 Spark 中运行。
Photon 现在支持许多帧类型和函数的向量化窗口函数计算。 新的窗口函数包括:
row_number
、
rank
、
dense_rank
、
lag
、
lead
、
percent_rank
、
ntile
和
nth_value
。 受支持的窗口框架类型:运行 (
UNBOUNDED PRECEDING AND CURRENT ROW
)、无界 (
UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
)、增长 (
UNBOUNDED PRECEDING AND <OFFSET> FOLLOWING
) 和缩小 (
<OFFSET> PRECEDING AND UNBOUNDED FOLLOWING
)。
ROWS
版本。
<OFFSET> PRECEDING AND <OFFSET> FOLLOWING
)。
更改数据馈送 (CDF) 现在有一种新模式,可提供时间戳或高于最新提交版本的版本,而不会引发错误。 默认情况下禁用此模式。 可以通过将配置
spark.databricks.delta.changeDataFeed.timestampOutOfRange.enabled
设置为
true
来启用该模式。
命令
DESC TABLE
、
DESC DATABASE
、
DESC SCHEMA
、
DESC NAMESPACE
、
DESC FUNCTION
、
EXPLAIN
和
SHOW CREATE TABLE
现在始终在其输出中显示 Catalog 名称。
自动加载程序现在支持 Parquet 文件的架构推理和演变。 与 JSON、CSV 和 Avro 格式一样,现可使用补救数据列来补救 Parquet 文件中可能会出现的意外数据。 这包括在预期的数据类型中无法分析的数据、具有不同大小写的列或者不是预期架构一部分的其他列。 可以将自动加载程序配置为在传入数据中添加新列时自动演变架构。 请参阅 在自动加载程序中配置架构推理和演变 。
请参阅 在自动加载程序中配置架构推理和演变 。
Delta Lake 现在启用动态分区覆盖模式,以覆盖每个逻辑分区中的所有现有数据,写入操作将为这些分区提交新数据。 请参阅 使用 Delta Lake 选择性地覆盖数据 。
信息架构为各种数据库对象(包括表和视图、约束和例程)的元数据提供基于 SQL 的自描述 API。
在信息架构中,可以找到一组视图,这些视图描述了你有权查看的架构目录中的已知对象。
SYSTEM
目录的信息架构返回有关元存储中所有目录的对象的信息。
请参阅
信息架构
。
现在可以使用 Unity Catalog 在 Delta Lake 表上定义信息主键和外键约束。 不强制执行信息约束。 请参阅 CONSTRAINT 子句 。
Unity Catalog 现已正式发布(从 Databricks Runtime 11.1 开始)。 请参阅 什么是 Unity Catalog? 。
Delta Sharing 现已正式发布(从 Databricks Runtime 11.1 开始)。
Databricks 到 Databricks Delta Sharing 是完全托管的,无需交换令牌。 可以在 UI 中或使用 SQL 和 REST API 创建和管理提供者、接收者和共享。
部分功能包括限制接收者访问、使用 IP 访问列表和区域限制查询数据,以及将 Delta Sharing 管理委托给非管理员。 你还可以查询对数据的更改,或使用更改数据馈送共享增量版本。 参阅 使用 Delta Sharing 安全共享数据 。
DESCRIBE TABLE
和
SHOW TABLE PROPERTIES
命令现在可以编辑敏感属性。
为了支持 Unity Catalog,使用 Databricks Runtime 11.1 及更高版本通过作业 UI 或作业 API 创建的作业群集将默认设置为单用户访问模式。 单用户访问模式支持大多数编程语言、群集功能和数据治理功能。 你仍然可以通过 UI 或 API 配置共享访问模式,但语言或功能可能会受限。
Databricks Runtime 11.2 包括 Apache Spark 3.3.0。 此版本包括 Databricks Runtime 11.1(不受支持) 中提供的所有 Spark 修复和改进,还包括对 Spark 进行的以下其他 bug 修复和改进:
SparkThrowable
的一部分
containsNull
的误解逻辑
toAggregateExpression
构造
AggregateExpression
的代码
OptimizeLimitZero
并将其合并到
EliminateLimits
VectorizedDeltaBinaryPackedReader
中将
BytePackerForLong#unpack8Values
与数组输入 API 配合使用
AliasHelper
或
PredicateHelper
add_months()
的 int 溢出上使用错误类
ARITHMETIC_OVERFLOW
InvalidUDFClassException
的问题
protected
方法更改为
private
或
package-visible
DESCRIBE TABLE
_metadata
可能导致查询崩溃
toSeq.toArray
替换为构造函数
GenericArrayData
中的
.toArray[Any]
REGR_AVGX
和
REGR_AVGY
LevenshteinDistance
,而不使用
StringUtils.getLevenshteinDistance
REGEXP_INSTR
函数
JdbcUtils
将
catalogName
重命名为
dialectName
import
或不必要的
{}
ParquetColumnVector
中的常量
PERCENTILE_CONT
和
PERCENTILE_DISC
应支持聚合筛选器
REGEXP_SUBSTR
函数
spark.sql.codegen.factoryMode
ConstantColumnVector
来存储
OrcColumnarBatchReader
中的分区列
ColumnVectorUtils
的
ColumnVectorUtils#populate(WritableColumnVector, InternalRow, int)
ConstantColumnVector
,而不是使用
On/OffHeapColumnVector
来存储
VectorizedParquetRecordReader
中的分区列
REGEXP_COUNT
函数
ReplaceCTERefWithRepartition
添加到
nonExcludableRules
列表
array_agg
的“Since”标记
orcSchema
Inline.eval
中的 null 结构
ExpressionSet
的
concat
方法以提高性能
ExpressionSet
的
--
方法
Inline
输出属性正确设置可为空
MEDIAN
toCatalystOrdering
应该失败
请参阅 Databricks Runtime 11.1 维护更新 。