Dokumen ini menunjukkan cara membuat, memperbarui, atau menghapus grafik properti di Spanner Graph menggunakan contoh skema yang Anda buat di Menyiapkan dan membuat kueri Spanner Graph.
Spanner memungkinkan Anda membuat pembaruan skema tanpa periode nonaktif. Anda dapat memperbarui skema database yang ada dengan salah satu cara berikut:
Konsol Google Cloud
Kirim perintah di halaman Spanner Studio.
Untuk mengakses halaman Spanner Studio, klik Spanner Studio dari halaman Ringkasan database atau Ringkasan tabel. Untuk mengetahui informasi selengkapnya tentang cara mengakses Spanner Studio, lihat Mengelola data menggunakan konsol Google Cloud.
Alat command line
gcloud spanner
Kirim perintah menggunakan perintah
gcloud spanner databases ddl update
.RPC API
UpdateDatabaseDdl
Membuat skema grafik properti
Untuk mengetahui informasi selengkapnya tentang skema grafik properti, lihat Ringkasan skema Grafik Spanner.
Untuk membuat skema grafik properti, ikuti langkah-langkah berikut:
Buat tabel input node
Person
danAccount
. Tabel ini digunakan sebagai tabel input untuk definisi node dalam contoh grafik properti.CREATE TABLE Person ( id INT64 NOT NULL, name STRING(MAX), birthday TIMESTAMP, country STRING(MAX), city STRING(MAX), ) PRIMARY KEY (id); CREATE TABLE Account ( id INT64 NOT NULL, create_time TIMESTAMP, is_blocked BOOL, nick_name STRING(MAX), ) PRIMARY KEY (id);
Buat tabel input tepi
PersonOwnAccount
danAccountTransferAccount
. Tabel ini digunakan sebagai tabel input untuk definisi tepi dalam contoh grafik properti.CREATE TABLE PersonOwnAccount ( id INT64 NOT NULL, account_id INT64 NOT NULL, create_time TIMESTAMP, FOREIGN KEY (account_id) REFERENCES Account (id) ) PRIMARY KEY (id, account_id), INTERLEAVE IN PARENT Person ON DELETE CASCADE; CREATE TABLE AccountTransferAccount ( id INT64 NOT NULL, to_id INT64 NOT NULL, amount FLOAT64, create_time TIMESTAMP NOT NULL, order_number STRING(MAX), FOREIGN KEY (to_id) REFERENCES Account (id) ) PRIMARY KEY (id, to_id, create_time), INTERLEAVE IN PARENT Account ON DELETE CASCADE;
Tentukan grafik properti menggunakan contoh pernyataan
CREATE PROPERTY GRAPH
.Contoh berikut menentukan grafik properti bernama
FinGraph
dengan nodeAccount
danPerson
, serta tepiPersonOwnAccount
danAccountTransferAccount
.CREATE PROPERTY GRAPH FinGraph NODE TABLES ( Account, Person ) EDGE TABLES ( PersonOwnAccount SOURCE KEY (id) REFERENCES Person (id) DESTINATION KEY (account_id) REFERENCES Account (id) LABEL Owns, AccountTransferAccount SOURCE KEY (id) REFERENCES Account (id) DESTINATION KEY (to_id) REFERENCES Account (id) LABEL Transfers );
Contoh ini mengikuti praktik terbaik berikut:
- Menyisipkan tepi di bagian node sumber atau tujuan.
- Hindari tepi yang menggantung menggunakan batasan referensi.
Untuk informasi selengkapnya, lihat Praktik terbaik untuk desain skema grafik.
Untuk mengetahui informasi tentang error skema Spanner Graph yang umum, lihat Memecahkan masalah Spanner Graph.
Memperbarui skema grafik properti
Anda dapat memperbarui skema grafik properti dengan cara berikut:
- Tambahkan definisi node atau edge baru.
- Memperbarui definisi node atau edge yang ada.
- Menghapus definisi node atau edge yang ada.
Dalam setiap kasus, Anda harus membuat ulang grafik properti dengan skema yang diperbarui.
Menambahkan definisi node atau edge baru
Untuk menambahkan node baru dan definisi tepi baru, ikuti langkah-langkah berikut:
Tambahkan tabel input baru.
Tentukan tabel input yang terkait dengan definisi elemen grafik baru. Lihat contoh berikut, yang menambahkan dua tabel input baru
Company
danPersonInvestCompany
:CREATE TABLE Company ( id INT64 NOT NULL, name STRING(MAX) ) PRIMARY KEY (id); CREATE TABLE PersonInvestCompany ( id INT64 NOT NULL, company_id INT64 NOT NULL, FOREIGN KEY (company_id) REFERENCES Company (id) ) PRIMARY KEY (id, company_id), INTERLEAVE IN PARENT Person ON DELETE CASCADE;
Perbarui grafik dengan
CREATE OR REPLACE PROPERTY GRAPH
. Contoh berikut memperbarui skemaFinGraph
dengan menambahkan definisi node baruCompany
dan definisi tepi baruPersonInvestCompany
:CREATE OR REPLACE PROPERTY GRAPH FinGraph NODE TABLES ( Person, Account, Company ) EDGE TABLES ( AccountTransferAccount SOURCE KEY (id) REFERENCES Account DESTINATION KEY (to_id) REFERENCES Account LABEL Transfers, PersonOwnAccount SOURCE KEY (id) REFERENCES Person DESTINATION KEY (account_id) REFERENCES Account LABEL Owns, PersonInvestCompany SOURCE KEY (id) REFERENCES Person DESTINATION KEY (company_id) REFERENCES Company LABEL Invests );
Memperbarui definisi node atau edge yang ada
Untuk memperbarui definisi node atau edge yang ada, ikuti langkah-langkah berikut:
Perbarui skema tabel input. Contoh berikut menambahkan kolom
mailing_address
ke tabel inputPerson
.ALTER TABLE Person ADD COLUMN mailing_address STRING(MAX);
Perbarui skema grafik properti dengan
CREATE OR REPLACE PROPERTY GRAPH
. Contoh berikut menambahkan properti barumailing_address
ke definisi nodePerson
menggunakan pernyataanCREATE OR REPLACE PROPERTY GRAPH
. Dalam contoh ini, definisi nodePerson
secara otomatis mengambil definisi tabelPerson
yang diubah karena skema tabel input berubah.CREATE OR REPLACE PROPERTY GRAPH FinGraph NODE TABLES ( Person, Account ) EDGE TABLES ( AccountTransferAccount SOURCE KEY (id) REFERENCES Account DESTINATION KEY (to_id) REFERENCES Account LABEL Transfers, PersonOwnAccount SOURCE KEY (id) REFERENCES Person DESTINATION KEY (account_id) REFERENCES Account LABEL Owns );
Anda juga dapat menggunakan
PROPERTIES clause()
untuk menyesuaikan properti yang ditampilkan dari tabel input. Untuk mengetahui informasi selengkapnya, lihat Menyesuaikan label dan properti.
Menghapus definisi node atau edge yang ada
Untuk menghapus definisi node atau edge yang ada, buat ulang grafik properti tanpa tabel node atau edge tersebut.
Contoh berikut menghapus definisi node Person
dan
definisi tepi PersonOwnAccount
.
CREATE OR REPLACE PROPERTY GRAPH FinGraph
NODE TABLES (
Account
)
EDGE TABLES (
AccountTransferAccount
SOURCE KEY (id) REFERENCES Account
DESTINATION KEY (to_id) REFERENCES Account
LABEL Transfers
);
Menempatkan skema grafik properti
Anda dapat menggunakan pernyataan DDL DROP PROPERTY GRAPH
untuk menghapus skema grafik.
Contoh berikut menghapus skema grafik properti FinGraph
:
DROP PROPERTY GRAPH FinGraph;
Langkah selanjutnya
- Menyisipkan, memperbarui, atau menghapus data Spanner Graph.
- Pelajari kueri Spanner Graph.
- Pelajari praktik terbaik untuk menyesuaikan kueri Spanner Graph.