資料分割
適用於: Databricks SQL
Databricks Runtime
數據分割是由數據表中的數據列子集所組成,該數據列針對稱為 數據分割數據行之預先定義的數據行子集共用相同的值。 使用分割區可以加速對數據表的查詢,以及數據操作。
若要使用數據分割,您可以在建立數據表時定義一組數據分割數據行,方法是包含 PARTITIONED BY 子句。
在數據表中插入或操作數據列時,Azure Databricks 會自動將數據列分派至適當的分割區。
您也可以使用 PARTITION 子句直接指定分割區。
此語法也適用於不使用 Delta Lake 格式的數據表,使用 ALTER TABLE 語句快速新增或 RENAME 資料分割。
數據分割者
子 PARTITIONED BY
句會指定數據行的清單,其中會沿著新數據表進行分割。
語法
PARTITIONED BY ( { partition_column [ column_type ] } [, ...] )
參數
-
識別元可以在資料表中參考
column_identifier
。 如果您指定多個數據行,則不一定有重複專案。 如果您參考數據表中的所有數據行,column_specification
就會引發錯誤。 -
partition_column
除非 參考column_identifier
資料表column_specification
中的 ,column_type
否則會定義 的partition_column
數據類型。並非所有數據源都支援 Databricks SQL 支援的所有 數據類型 。
備註
除非您定義 Delta Lake 資料表分割數據行來參考資料行規格中的數據行,否則一律會移至數據表的結尾。
PARTITION
您可以使用 PARTITION
子句來識別要查詢或操作的數據分割。
數據分割的識別方式是命名其所有數據行,並將每個數據行與值產生關聯。 您不需要以特定順序指定它們。
除非您將新的分割區新增至現有的數據表,否則您可以省略數據行或值,以指出作業會套用至符合數據行子集的所有相符數據分割。
PARTITION ( { partition_column [ = partition_value | LIKE pattern ] } [ , ... ] )
參數
-
名為的數據行,做為數據表的數據分割數據行。 您可能不會指定相同的數據行兩次。
= partition_value
符合數據分割數據行類型的數據類型常值。 如果您省略數據分割值,規格將會符合此資料分割數據行的所有值。
LIKE pattern
此表單只能在 ALTER SHARE ADD TABLE 中使用。
將的
partition_column
字串表示與pattern
相符。pattern
必須是 LIKE 中使用的字串常值。
範例
-- Use the PARTTIONED BY clause in a table definition
> CREATE TABLE student(university STRING,
major STRING,
name STRING)
PARTITIONED BY(university, major)
> CREATE TABLE professor(name STRING)
PARTITIONED BY(university STRING,
department STRING);
-- Use the PARTITION specification to INSERT into a table
> INSERT INTO student
PARTITION(university= 'TU Kaiserslautern') (major, name)
SELECT major, name FROM freshmen;
-- Use the partition specification to add and drop a partition
> CREATE TABLE log(date DATE, id INT, event STRING)
USING CSV LOCATION 'dbfs:/log'
PARTITIONED BY (date);
> ALTER TABLE log ADD PARTITION(date = DATE'2021-09-10');
> ALTER TABLE log DROP PARTITION(date = DATE'2021-09-10');
-- Drop all partitions from the named university, independent of the major.
> ALTER TABLE student DROP PARTITION(university = 'TU Kaiserslautern');
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應