Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengonversi tabel standar ke tabel tanpa batas
Anda dapat mengonversi tabel standar menjadi tabel sharded atau referensi. Selama konversi, data dipindahkan dari tabel standar ke tabel terdistribusi, kemudian tabel standar sumber dihapus. Data dipindahkan menggunakan INSERT INTO SELECT FROM
perintah.
Membuat tabel sharded
Anda membuat tabel sharded dengan menjalankan rds_aurora.limitless_alter_table_type_sharded
prosedur pada tabel standar. Prosedur ini mengambil tabel standar dan daftar kolom, kemudian mendistribusikan tabel yang diberikan menggunakan daftar kolom sebagai kunci pecahan. Prosedur berjalan secara serempak, dan memperoleh ACCESS EXCLUSIVE
kunci di atas meja.
Setelah prosedur selesai dengan sukses, tabel standar sumber dihapus, dan tabel sharded dengan nama yang sama menjadi tersedia.
rds_aurora.limitless_alter_table_type_sharded
Prosedur ini menggunakan sintaks berikut:
postgres=>
CALL rds_aurora.limitless_alter_table_type_sharded('schema
.table
', ARRAY['shard_key1
', 'shard_key2
', ... 'shard_keyn
']);
Prosedur ini membutuhkan parameter berikut:
-
schema
— Skema database yang berisi tabel yang akan di-sharded. Jika skema tidak ditentukan, prosedur menggunakan.search_path
-
table
— Meja yang akan dibelah. -
shard_keyn
— Sebuah array kolom tabel untuk digunakan sebagai kunci shard.Nilai kunci shard adalah literal string, dan oleh karena itu peka huruf besar/kecil. Jika kunci pecahan berisi satu kutipan ('), gunakan kutipan tunggal lain untuk menghindarinya. Misalnya, jika kolom tabel diberi nama
customer's id
, gunakancustomer''s id
sebagai kunci shard. Backslashes (\) dan tanda kutip ganda (“) tidak perlu diloloskan.
catatan
Semua kunci primer dan unik harus menyertakan kunci shard. Ini berarti bahwa kunci shard adalah bagian dari kunci primer atau unik.
Dalam tabel sharded, CHECK
kendala tidak mendukung ekspresi.
Untuk informasi selengkapnya, lihat Batasan.
Untuk membuat tabel sharded
Contoh berikut menunjukkan cara membuat tabel customer
sharded dengan kunci shard. customer_id
-
Buat tabel standar.
CREATE TABLE customer (customer_id INT PRIMARY KEY NOT NULL, zipcode INT, email VARCHAR);
-
Ubah tabel standar menjadi tabel sharded.
postgres=>
CALL rds_aurora.limitless_alter_table_type_sharded('public.customer', ARRAY['customer_id']);postgres=>
\d List of relations Schema | Name | Type | Owner --------+--------------+-------------------+-------------------- public | customer | partitioned table | postgres_limitless public | customer_fs1 | foreign table | postgres_limitless public | customer_fs2 | foreign table | postgres_limitless public | customer_fs3 | foreign table | postgres_limitless public | customer_fs4 | foreign table | postgres_limitless public | customer_fs5 | foreign table | postgres_limitless (6 rows)
Membuat tabel kolokasi
Jika dua atau lebih tabel di-sharded menggunakan kunci shard yang sama, Anda dapat secara eksplisit menyelaraskan (collocate) tabel tersebut. Ketika dua atau lebih tabel ditempatkan, baris dari tabel dengan nilai kunci shard yang sama ditempatkan pada pecahan yang sama. Kolokasi membantu membatasi beberapa operasi ke pecahan tunggal, yang menghasilkan kinerja yang lebih baik.
Anda menggunakan rds_aurora.limitless_alter_table_type_sharded
prosedur dengan sintaks berikut:
postgres=>
CALL rds_aurora.limitless_alter_table_type_sharded('schema
.collocated_table
', ARRAY['shard_key1
', 'shard_key2
', ... 'shard_keyn
'], 'schema
.sharded_table
');
Prosedur ini membutuhkan parameter berikut:
-
schema
— Skema database yang berisi tabel yang akan ditempatkan. Jika skema tidak ditentukan, prosedur menggunakan.search_path
-
collocated_table
— Meja yang akan ditempatkan. -
shard_keyn
— Sebuah array kolom tabel untuk digunakan sebagai kunci shard.Anda harus menggunakan kunci shard yang sama seperti untuk tabel sharded asli, termasuk nama kolom dan jenis kolom yang sama.
-
sharded_table
— Meja sharded yang Anda gunakan untuk mengkolokasi.collocated_table
Untuk membuat tabel berkolokasi
-
Buat tabel sharded pertama dengan mengikuti prosedur diMembuat tabel sharded.
-
Buat tabel standar untuk tabel collocated.
CREATE TABLE mytable2 (customer_id INT PRIMARY KEY NOT NULL, column1 INT, column2 VARCHAR);
-
Ubah tabel standar menjadi tabel collocated.
postgres=>
CALL rds_aurora.limitless_alter_table_type_sharded('public.mytable2', ARRAY['customer_id'], 'public.customer');postgres=>
\d List of relations Schema | Name | Type | Owner --------+--------------+-------------------+-------------------- public | customer | partitioned table | postgres_limitless public | customer_fs1 | foreign table | postgres_limitless public | customer_fs2 | foreign table | postgres_limitless public | customer_fs3 | foreign table | postgres_limitless public | customer_fs4 | foreign table | postgres_limitless public | customer_fs5 | foreign table | postgres_limitless public | mytable2 | partitioned table | postgres_limitless public | mytable2_fs1 | foreign table | postgres_limitless public | mytable2_fs2 | foreign table | postgres_limitless public | mytable2_fs3 | foreign table | postgres_limitless public | mytable2_fs4 | foreign table | postgres_limitless public | mytable2_fs5 | foreign table | postgres_limitless (12 rows)
Membuat tabel referensi
Anda membuat tabel referensi dengan menjalankan rds_aurora.limitless_alter_table_type_reference
prosedur pada tabel standar. Prosedur ini mereplikasi tabel yang diberikan ke semua pecahan dalam grup pecahan DB, dan mengubah jenis tabel menjadi referensi. Prosedur berjalan secara serempak, dan memperoleh ACCESS EXCLUSIVE
kunci di atas meja.
Setelah prosedur selesai dengan sukses, tabel standar sumber dihapus, dan tabel referensi dengan nama yang sama menjadi tersedia.
rds_aurora.limitless_alter_table_type_reference
Prosedur ini menggunakan sintaks berikut:
postgres=>
CALL rds_aurora.limitless_alter_table_type_reference('schema
.table
');
Prosedur yang disimpan membutuhkan parameter berikut:
-
schema
— Skema database yang berisi tabel yang akan direplikasi. Jika skema tidak ditentukan, prosedur menggunakan.search_path
-
table
— Tabel yang akan direplikasi.
catatan
Tabel standar dari mana Anda membuat tabel referensi harus memiliki kunci utama.
Dalam tabel referensi, CHECK
kendala tidak mendukung ekspresi.
Fungsi sebelumnya,limitless_table_alter_type_reference
, sudah usang.
Untuk membuat tabel referensi
Contoh berikut menunjukkan cara membuat tabel zipcodes
referensi.
-
Buat tabel standar.
CREATE TABLE zipcodes (zipcode INT PRIMARY KEY, details VARCHAR);
-
Ubah tabel standar menjadi tabel referensi.
CALL rds_aurora.limitless_alter_table_type_reference('public.zipcodes');
postgres=>
\d List of relations Schema | Name | Type | Owner --------+--------------+-------------------+-------------------- public | customer | partitioned table | postgres_limitless public | customer_fs1 | foreign table | postgres_limitless public | customer_fs2 | foreign table | postgres_limitless public | customer_fs3 | foreign table | postgres_limitless public | customer_fs4 | foreign table | postgres_limitless public | customer_fs5 | foreign table | postgres_limitless public | zipcodes | foreign table | postgres_limitless (7 rows)Output menunjukkan tabel
customer
sharded dan tabelzipcodes
referensi.