以下是在开发管道时必须了解的 Lakeflow Spark 声明性管道的限制:
Azure Databricks 工作区限制为 200 个并发管道更新。 单个管道可以包含的数据集数取决于管道配置和工作负荷复杂性。
管道的配置包括对源文件和文件夹的引用。
如果配置 仅 引用单个笔记本或文件,则每个管道的限制为 100 个源文件。
如果配置包含文件夹,最多可以包含由文件或文件夹组成的 50 个源条目。
间接引用一个文件夹就等于间接引用该文件夹中的文件。 在这种情况下,对引用的文件数(直接或间接)的限制为 1000。
如果需要 100 多个源文件,请将它们组织到文件夹中。 若要了解如何使用文件夹包含源文件,请参阅 Lakeflow 管道编辑器中的 管道资产浏览器 。
管道数据集只能定义一次。 因此,它们只能在所有管道中成为单个操作的目标。 例外情况是使用追加流处理的流表,这使你可以从多个流源写入流表。 请参阅 使用多个流写入单个目标。
标识列具有以下限制。 若要详细了解 Delta 表中的标识列,请参阅 在 Delta Lake 中使用标识列。
- 标识列不支持用作 AUTO CDC 处理的目标表。
- 在更新物化视图时,标识列可能会被重新计算。 因此,Databricks 建议仅在流式表中使用标识列。
只能由 Azure Databricks 客户端和应用程序访问从管道发布的物化视图和流式表,包括那些由 Databricks SQL 创建的。 但是,若要使具体化视图和流式处理表在外部可访问,可以使用
sinkAPI 写入外部 Delta 实例中的表。 请参阅 Lakeflow Spark 声明式管道中定义的 'Sinks'。运行和查询 Unity Catalog 管道所需的 Databricks 计算具有限制性。 请参阅发布到 Unity Catalog 的管道要求。
Delta Lake 的时间旅行查询仅支持流式表,而不支持具体化视图。 参见 使用表历史记录。
无法在物化视图和流式表上启用Iceberg 读取。
不支持
pivot()函数。 Spark 中的pivot操作需要预先加载输入数据以计算输出架构。 管道不支持此功能。
有关 Lakeflow Spark 声明性管道资源配额,请参阅 资源限制。