设置目标目录和架构

Lakeflow 声明性管道配置 UI 数据资产默认位置部分 设置管道的默认目录和模式。 此默认目录和模式用于所有数据集定义和表数据读取,除非在查询中被重写。

注释

旧版发布模式使用 LIVE 虚拟架构来实现类似的行为。 在默认发布模式(所有新管道使用)中,将忽略 LIVE 关键字。 请参阅 LIVE 架构(旧版)。

以不同目录或架构中的数据集为目标

Lakeflow 声明性管道支持三层标识符解析语义。 Databricks 建议对目标数据集的查询和语句使用完全限定的标识符,而不是为管道配置的默认值。 请参阅 Unity Catalog 标识符解析。 例如,若要在regional_sales目录和main模式中创建名为stores的物化视图(这些不是你的管道默认值),请完全限定名称,如下所示:

Python

from pyspark import pipelines as dp

@dp.materialized_view(name="main.stores.regional_sales")
def func():
  return spark.read.table("partners");

SQL

CREATE OR REPLACE MATERIALIZED VIEW main.stores.regional_sales
  AS SELECT *
  FROM partners;

Lakeflow 声明性管道源代码支持 SQL 命令 USE CATALOG catalog_nameUSE SCHEMA schema_name。 运行这些命令,将当前目录和架构设置为包含这些命令的文件或笔记本。 在源代码文件中遵循这些命令并使用不限定或部分限定标识符的操作将解析为当前目录和架构,而不是管道配置中设置的默认值。 请参阅 当前目录和架构是什么?

如果数据集不存在,会发生什么情况?

下表描述了 Lakeflow 声明性管道源代码引用不存在的数据集时的行为:

操作 结果
读取 如果指定标识符对应的表、具体化视图、流表或视图不存在,则更新将失败。
写入 如果指定标识符没有对应的具体化视图、流式处理表、视图或接收器,则更新将尝试创建数据集。 如有必要,更新还会创建指定的架构。

重要

如果没有足够的权限查看数据集,则可能会收到一条错误消息,指出数据集不存在。

必须具有足够的权限才能使用 Lakeflow 声明性管道读取、写入和创建数据集。 请参阅 要求