Partisi
Berlaku untuk: pemeriksaan Databricks SQL Databricks Runtime
Partisi terdiri dari subset baris dalam tabel yang memiliki nilai yang sama untuk subset kolom yang telah ditentukan sebelumnya yang disebut kolom partisi. Menggunakan partisi dapat mempercepat kueri terhadap tabel serta manipulasi data.
Untuk menggunakan partisi, Anda menentukan kumpulan kolom pemartisian saat membuat tabel dengan menyertakan klausa PARTITIONED BY .
Saat menyisipkan atau memanipulasi baris dalam tabel Azure Databricks secara otomatis mengirimkan baris ke dalam partisi yang sesuai.
Anda juga dapat menentukan partisi secara langsung menggunakan klausul PARTITION .
Sintaks ini juga tersedia untuk tabel yang tidak menggunakan format Delta Lake, untuk DROP, ADD, atau RENAME partisi dengan cepat dengan menggunakan pernyataan ALTER TABLE.
DIPARTISI OLEH
Klausa PARTITIONED BY
menentukan daftar kolom di mana tabel baru dipartisi.
Sintaks
PARTITIONED BY ( { partition_column [ column_type ] } [, ...] )
Parameter
-
Pengidentifikasi dapat mereferensikan
column_identifier
dalam tabel. Jika Anda menentukan lebih dari satu kolom, tidak boleh ada duplikat. Jika Anda mereferensikan semua kolom dalam tabel,column_specification
kesalahan akan muncul. -
partition_column
Kecuali mengacu padacolumn_identifier
dalam tabelcolumn_specification
,column_type
mendefinisikan jenispartition_column
data .Tidak semua jenis data yang didukung oleh Databricks SQL didukung oleh semua sumber data.
Catatan
Kecuali Anda menentukan kolom partisi tabel Delta Lake yang mereferensikan kolom dalam spesifikasi kolom selalu dipindahkan ke akhir tabel.
PARTISI
Anda menggunakan PARTITION
klausul untuk mengidentifikasi partisi yang akan dikueri atau dimanipulasi.
Partisi diidentifikasi dengan menamai semua kolomnya dan mengaitkan masing-masing dengan nilai. Anda tidak perlu menentukannya dalam urutan tertentu.
Kecuali Anda menambahkan partisi baru ke tabel yang sudah ada, Anda dapat menghilangkan kolom atau nilai untuk menunjukkan bahwa operasi berlaku untuk semua partisi yang cocok dengan subset kolom.
PARTITION ( { partition_column [ = partition_value | LIKE pattern ] } [ , ... ] )
Parameter
-
Kolom bernama sebagai kolom partisi tabel. Anda mungkin tidak menentukan kolom yang sama dua kali.
= partition_value
Harfiah jenis data yang cocok dengan jenis kolom partisi. Jika Anda menghilangkan nilai partisi, spesifikasi akan cocok dengan semua nilai untuk kolom partisi ini.
LIKE pattern
Formulir ini hanya diperbolehkan dalam ALTER SHARE ADD TABLE.
Cocok dengan representasi string dari
partition_column
kepattern
.pattern
harus berupa string harfiah seperti yang digunakan dalam LIKE.
Contoh
-- 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');