Partisi

Berlaku untuk:centang ditandai ya pemeriksaan Databricks SQL ditandai ya 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

  • partition_column

    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.

  • column_type

    partition_column Kecuali mengacu pada column_identifier dalam tabel column_specification, column_type mendefinisikan jenis partition_columndata .

    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

  • partition_column

    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 ke pattern. 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');