ALTER 语句与管道数据集配合使用

重要

此功能目前以公共预览版提供。

Lakeflow Spark 声明性管道(SDP)在特定于 SDP 的源代码中定义管道。 可以在 SQL 或 Python 中编辑管道源,例如,在 Lakeflow 管道编辑器中。

Azure Databricks 还提供一个名为 Databricks SQL 的 SQL 环境。 可以使用不依赖 SDP 的管道功能通过 Databricks SQL 创建物化视图和流表(请参阅 在 Databricks SQL 中使用管道)。 通常,Databricks SQL 不与 Lakeflow Spark 声明性管道一起使用。

但是,可以使用 ALTER Databricks SQL 中的 SQL 语句修改使用 SDP 或 Databricks SQL 创建的数据集的属性。 无论是修改 SDP 数据集还是 Databricks SQL 管道数据集,都可从任何 Databricks SQL 环境中使用这些 SQL 语句。

注释

不能使用 ALTER 语句修改在 SDP 中定义的数据集的计划或触发器。

限制:使用ALTER进行的管道更新和更改

在某些情况下, ALTER 语句与管道创建的数据集的定义冲突。 定义管道中的表或视图的 SQL 会在每次更新时重新运行。 这可以撤消使用 ALTER 语句所做的更改。

例如,如果你有一个定义具体化视图的 SQL 语句,如下所示:

CREATE OR REPLACE MATERIALIZED VIEW masked_view (
    id int,
    name string,
    region string,
    ssn string MASK catalog.schema.ssn_mask_fn
  )
  WITH ROW FILTER catalog.schema.us_filter_fn ON (region)
  AS SELECT id, name, region, ssn
       FROM employees;

然后,尝试使用ssn语句从ALTER列中删除掩码,如下所示:

ALTER MATERIALIZED VIEW masked_view ALTER COLUMN ssn DROP MASK;

删除掩码,但下次更新具体化视图时,SQL 定义会将其添加回去。

若要安全删除掩码,必须编辑 SQL 定义以删除掩码,然后将命令运行 ALTERDROP 掩码。

注释

若要编辑 SDP 中定义的管道的定义,请使用 管道编辑器编辑管道源。 若要编辑 Databricks SQL 中定义的管道的定义,请在任何 Databricks SQL 环境中运行修改后的 SQL 语句。

其他资源