Petunjuk partisi - AWS Clean Rooms

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Petunjuk partisi

Petunjuk partisi mengontrol distribusi data di seluruh node pelaksana. Ketika beberapa petunjuk partisi ditentukan, beberapa node dimasukkan ke dalam rencana logis, tetapi petunjuk paling kiri dipilih oleh pengoptimal.

BERSATU

Mengurangi jumlah partisi ke jumlah partisi yang ditentukan.

Parameter: Nilai numerik (wajib) - harus berupa bilangan bulat positif antara 1 dan 2147483647

Contoh:

-- Reduce to 5 partitions SELECT /*+ COALESCE(5) */ employee_id, salary FROM employees;

PARTISI ULANG

Repartisi data ke jumlah partisi yang ditentukan menggunakan ekspresi partisi yang ditentukan. Menggunakan distribusi round-robin.

Parameter:

  • Nilai numerik (opsional) - jumlah partisi; Harus berupa bilangan bulat positif antara 1 dan 2147483647

  • Pengidentifikasi kolom (opsional) - kolom untuk dipartisi oleh; Kolom ini harus ada dalam skema input.

  • Jika keduanya ditentukan, nilai numerik harus didahulukan

Contoh:

-- Repartition to 10 partitions SELECT /*+ REPARTITION(10) */ * FROM employees; -- Repartition by column SELECT /*+ REPARTITION(department) */ * FROM employees; -- Repartition to 8 partitions by department SELECT /*+ REPARTITION(8, department) */ * FROM employees; -- Repartition by multiple columns SELECT /*+ REPARTITION(8, department, location) */ * FROM employees;

REPARTITION_BY_RANGE

Repartisi data ke jumlah partisi yang ditentukan menggunakan partisi rentang pada kolom yang ditentukan.

Parameter:

  • Nilai numerik (opsional) - jumlah partisi; Harus berupa bilangan bulat positif antara 1 dan 2147483647

  • Pengidentifikasi kolom (opsional) - kolom untuk dipartisi oleh; Kolom ini harus ada dalam skema input.

  • Jika keduanya ditentukan, nilai numerik harus didahulukan

Contoh:

SELECT /*+ REPARTITION_BY_RANGE(10) */ * FROM employees; -- Repartition by range on age column SELECT /*+ REPARTITION_BY_RANGE(age) */ * FROM employees; -- Repartition to 5 partitions by range on age SELECT /*+ REPARTITION_BY_RANGE(5, age) */ * FROM employees; -- Repartition by range on multiple columns SELECT /*+ REPARTITION_BY_RANGE(5, age, salary) */ * FROM employees;

MENYEIMBANGKAN KEMBALI

Menyeimbangkan kembali partisi keluaran hasil kueri sehingga setiap partisi berukuran wajar (tidak terlalu kecil dan tidak terlalu besar). Ini adalah operasi upaya terbaik: jika ada kemiringan, AWS Clean Rooms akan membagi partisi miring untuk membuatnya tidak terlalu besar. Petunjuk ini berguna ketika Anda perlu menulis hasil kueri ke tabel untuk menghindari file yang terlalu kecil atau terlalu besar.

Parameter:

  • Nilai numerik (opsional) - jumlah partisi; Harus berupa bilangan bulat positif antara 1 dan 2147483647

  • Pengidentifikasi kolom (opsional) - kolom harus muncul di daftar keluaran SELECT

  • Jika keduanya ditentukan, nilai numerik harus didahulukan

Contoh:

-- Rebalance to 10 partitions SELECT /*+ REBALANCE(10) */ employee_id, name FROM employees; -- Rebalance by specific columns in output SELECT /*+ REBALANCE(employee_id, name) */ employee_id, name FROM employees; -- Rebalance to 8 partitions by specific columns SELECT /*+ REBALANCE(8, employee_id, name) */ employee_id, name, department FROM employees;