CREATE VIEW (Lakeflow Declarative Pipelines)
Constructs a virtual table with no physical data based on the result-set of a SQL query in your Lakeflow Declarative Pipelines.
Syntax
The following describes the syntax for declaring views with SQL:
CREATE VIEW view_name
  [ COMMENT view_comment ]
  [ TBLPROPERTIES ]
  AS query
Parameters
- 
view_name The name for the view. The name must be unique within the catalog and schema targeted by the pipeline. 
- 
view_comment An optional description for the view. 
- 
TBLPROPERTIES An optional list of table properties for the table. 
- 
query A query that constructs the view from base tables or other views. 
Required permissions
The run-as user for the pipeline must have the following permissions to be able to create a view:
- SELECT privilege on the base tables referenced by the view.
- USE CATALOG privilege on the parent catalog and the USE SCHEMA privilege on the parent schema.
- CREATE TABLE privilege on the schema for the view.
For a user to be able to update the view within the pipeline, they must have the following permissions:
- USE CATALOG privilege on the parent catalog and the USE SCHEMA privilege on the parent schema.
- MANAGE permission for the view.
- SELECT privileges on the base tables referenced by the view.
For a user to be able to query the resulting view, they must have the following permissions:
- USE CATALOG privilege on the parent catalog and the USE SCHEMA privilege on the parent schema.
- SELECT privilege on the view.
Limitations
- CREATE VIEWis only available in pipelines that support the default publishing mode. Pipelines that use the LIVE schema (legacy) are not supported. For more information, see LIVE schema (legacy).
- The pipeline must be a Unity Catalog pipeline.
- Expectations, in the form of CONSTRAINTclauses, are not supported.
- Views cannot have streaming queries, or be used as a streaming source.
Examples
-- Create a view from an external data source
CREATE VIEW taxi_raw AS SELECT *
  FROM read_files("/databricks-datasets/nyctaxi/sample/json/");
-- Use a view to create a filtered view:
CREATE VIEW taxi_silver AS SELECT *
  FROM taxi_raw
  WHERE distance > 0.0;