Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime
Nota
Pada tabel Apache Iceberg terkelola, Unity Catalog hanya mendukung pengklusteran cair dan menginterpretasikan partisi yang ditentukan dalam PARTITION BY klausul sebagai kunci pengklusteran untuk pengklusteran cairan.
Databricks merekomendasikan pengklusteran cairan untuk semua tabel Delta baru dan tabel Iceberg terkelola. Lihat Tabel terkelola Unity Catalog di Azure Databricks untuk Delta Lake dan Apache Iceberg dan Gunakan pengelompokan cair untuk tabel.
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 partisi 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 klausa PARTITION.
Sintaks ini juga tersedia untuk tabel yang tidak menggunakan format Delta Lake, untuk DROP, ADD, atau RENAME partisi dengan cepat 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_identifierdalam tabel. Jika Anda menentukan lebih dari satu kolom, tidak boleh ada duplikat. Jika Anda mereferensikan semua kolom dalam tabelcolumn_specification, akan terjadi kesalahan. -
Kecuali
partition_columnmengacu padacolumn_identifierdalamcolumn_specificationtabel,column_typemenentukan jenis data daripartition_column.Tidak semua jenis data yang didukung oleh Databricks SQL didukung oleh semua sumber data.
Catatan
Kecuali Anda menentukan kolom partisi untuk tabel Delta Lake, kolom yang merujuk pada spesifikasi kolom akan selalu dipindahkan ke akhir tabel.
PARTITION
Anda menggunakan klausul PARTITION 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 yang dinamai sebagai kolom partisi pada tabel. Anda mungkin tidak menentukan kolom yang sama dua kali.
= partition_valueSebuah nilai tetap dari jenis data yang sesuai dengan jenis kolom partisi. Jika Anda menghilangkan nilai partisi, spesifikasi akan cocok dengan semua nilai untuk kolom partisi ini.
LIKE patternFormulir ini hanya diperbolehkan dalam ALTER SHARE ADD TABLE.
Mencocokkan representasi string dari
partition_columnkepattern.patternharus berupa untai (karakter) 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
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');