What are tables and views?
Tables and views are fundamental concepts in Databricks for organizing and accessing data.
A table is a structured dataset stored in a specific location, typically in Delta Lake format. Tables store actual data on storage and can be queried and manipulated using SQL commands or DataFrame APIs, supporting operations like insert, update, delete, and merge. See What is a table?.
A view is a virtual table defined by a SQL query. A view does not itself store data. Instead, a view provides a way to present data from one or more tables in a specific format or abstraction. Views are useful for simplifying complex queries, encapsulating business logic, and providing a consistent interface to the underlying data without duplicating storage. See What is a view?.
Tables and views in Unity Catalog
Tables and views are governed using Unity Catalog. In Unity Catalog, tables and views sit at the third level of the three-level namespace (catalog.schema.table), as shown in the following diagram.
Differences between Delta tables, streaming tables, and materialized views
The following table answers frequently asked questions about the differences between Delta tables, streaming tables, and materialized views.
Question | Delta table | Streaming table | Materialized view |
---|---|---|---|
What is it? | Standard tables stored in the Delta Lake format, supporting ACID transactions, schema enforcement, and other Delta Lake features. | A regular Delta table that has been extended for streaming and incremental processing use cases. | The result of a query whose result is always pre-computed and correct. |
What use cases is it recommended for? | Procedural code that does the following: - Ingestion - Transformation |
Declarative code that does the following: - Ingestion from append-only sources - Low-latency transformations |
Declarative code that does the following: - Incremental transformations - Batch transformations |
How is it populated? | Procedural code (INSERT , UPDATE , MERGE , partition overwrite using replaceWhere ) |
Declarative code including: - Append streams - APPLY CHANGES streams - Once Flows |
Declarative queries |
What is the object type in Unity Catalog? | Table | Table | View |
Who can update it? | Any writer that can update a Delta table. | Only the pipeline that defines the streaming table can update it. | Only the pipeline that defines the materialized view can update it. |
What Delta Lake features is it compatible with? | Supports all Delta Lake features. | Does not support: - Liquid Partitioning - Predictive Optimization |
Does not support: - Liquid Partitioning - Predictive Optimization |