Dokumen ini memberikan panduan komprehensif tentang cara mengelola skema properti Spanner Graph, yang menjelaskan proses untuk membuat, memperbarui, dan menghapus skema menggunakan pernyataan DDL.
Untuk mengetahui informasi selengkapnya tentang skema grafik properti, lihat Ringkasan skema Spanner Graph. Jika Anda mengalami error saat membuat skema grafik properti, lihat Memecahkan masalah Spanner Graph.
Membuat skema grafik properti
Untuk membuat skema grafik properti, lakukan hal berikut:
Saat membuat skema grafik properti, pastikan untuk mempertimbangkan praktik terbaik.
Bagian berikut menunjukkan cara membuat contoh skema grafik properti:
Membuat tabel input node
Berikut ini membuat dua tabel input node, Person
dan Account
, yang berfungsi
sebagai input untuk definisi node dalam grafik properti contoh:
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);
Membuat tabel input tepi
Kode berikut membuat dua tabel input edge, PersonOwnAccount
dan
AccountTransferAccount
, sebagai input untuk definisi edge 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;
Menentukan grafik properti
Kode berikut menentukan grafik properti menggunakan pernyataan CREATE PROPERTY GRAPH
. Pernyataan ini menentukan grafik properti bernama FinGraph
dengan
node Account
dan Person
, serta edge PersonOwnAccount
dan
AccountTransferAccount
:
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
);
Memperbarui skema grafik properti
Setelah membuat skema grafik properti, Anda dapat memperbaruinya menggunakan pernyataan CREATE OR
REPLACE PROPERTY GRAPH
. Pernyataan ini menerapkan perubahan dengan membuat ulang skema grafik dengan pembaruan yang diinginkan.
Anda dapat melakukan perubahan berikut pada skema grafik properti:
Menambahkan definisi node atau edge: Buat tabel input baru untuk node dan edge, lalu gunakan pernyataan
CREATE OR REPLACE PROPERTY GRAPH
untuk menambahkan definisi baru ke grafik.Memperbarui definisi node atau tepi: Perbarui tabel input pokok dengan definisi node dan tepi baru. Kemudian, gunakan pernyataan
CREATE OR REPLACE PROPERTY GRAPH
untuk memperbarui definisi dalam grafik.Menghapus definisi node atau tepi: Gunakan pernyataan
CREATE OR REPLACE PROPERTY GRAPH
dan hilangkan definisi yang ingin Anda hapus dari grafik.
Menambahkan definisi node atau tepi baru
Untuk menambahkan definisi node dan edge baru, ikuti langkah-langkah berikut:
Tambahkan tabel input definisi node baru,
Company
, dan tabel input definisi edge baru,PersonInvestCompany
.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 skema
FinGraph
dengan menambahkan definisi nodeCompany
baru dan definisi edgePersonInvestCompany
baru.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 tepi
Untuk memperbarui definisi node atau edge yang ada, Anda harus mengubah tabel input yang mendasarinya terlebih dahulu, lalu menggunakan pernyataan CREATE OR REPLACE PROPERTY GRAPH
untuk menerapkan perubahan skema ke grafik. Untuk menyesuaikan properti yang ditampilkan dari tabel input, gunakan
PROPERTIES clause
.
Untuk mengetahui informasi selengkapnya, lihat
Menyesuaikan label dan properti.
Langkah-langkah berikut menunjukkan cara memperbarui tabel pokok skema, lalu menerapkan pembaruan ke skema.
Tambahkan kolom
mailing_address
ke tabel input pokokPerson
.ALTER TABLE Person ADD COLUMN mailing_address STRING(MAX);
Terapkan perubahan pada tabel
Person
ke skema. Gunakan pernyataanCREATE OR REPLACE PROPERTY GRAPH
. Definisi nodePerson
mencerminkan definisi tabelPerson
yang diperbarui 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 );
Menghapus definisi node atau tepi
Untuk menghapus definisi node atau edge yang ada, buat ulang grafik properti tanpa tabel node atau edge tersebut.
Berikut menghapus definisi node Person
dan definisi
tepi PersonOwnAccount
dengan menghilangkannya dalam pernyataan CREATE OR REPLACE PROPERTY GRAPH
.
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
);
Menghapus skema grafik properti
Untuk menghapus skema grafik dari tabel input pokok, gunakan pernyataan DDL DROP PROPERTY
GRAPH
. Anda tidak dapat menghapus data dari tabel pokok saat
Anda menghapus skema.
Kode berikut menghapus skema grafik properti FinGraph
:
DROP PROPERTY GRAPH FinGraph;
Langkah berikutnya
- Mengelola data Spanner Graph.
- Pelajari kueri Spanner Graph.
- Pelajari praktik terbaik untuk menyesuaikan kueri Spanner Graph.