Dokumen ini menunjukkan cara membuat, memperbarui, atau menghapus grafik properti di Spanner Graph menggunakan contoh skema yang Menyiapkan dan membuat kueri Spanner Graph.
Spanner memungkinkan Anda memperbarui skema tanpa periode nonaktif. Anda dapat memperbarui skema dari 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 Ringkasan atau Tabel Database halaman ringkasan. Untuk informasi selengkapnya tentang mengakses Spanner Studio, lihat Mengelola data Anda menggunakan konsol Google Cloud.
Alat command line
gcloud spanner
Kirim perintah dengan menggunakan
gcloud spanner databases ddl update
perintah.Tujuan
projects.instances.databases.updateDdl
REST APITujuan
UpdateDatabaseDdl
RPC API
Membuat skema grafik properti
Untuk 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-tabel ini digunakan sebagai tabel input untuk definisi node di 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 edge pada 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 menggunakan contoh
CREATE PROPERTY GRAPH
pernyataan pribadi Anda.Contoh berikut menentukan grafik properti bernama
FinGraph
dengan NodeAccount
danPerson
, sertaPersonOwnAccount
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:
- Sisipkan tepi di bawah node sumber atau tujuan.
- Hindari tepi yang menjuntai menggunakan batasan referensial.
Untuk informasi selengkapnya, lihat Praktik terbaik untuk desain skema grafik.
Untuk mengetahui informasi tentang error skema Grafik Spanner umum, lihat Memecahkan masalah Grafik Spanner.
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.
- Hapus 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 edge baru, ikuti langkah-langkah berikut:
Menambahkan tabel input baru.
Menentukan tabel input yang terkait dengan definisi elemen grafik yang 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
. Tujuan contoh berikut memperbarui skemaFinGraph
dengan menambahkan node baru definisiCompany
dan definisi edge 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
menggunakanCREATE OR REPLACE PROPERTY GRAPH
pernyataan pribadi Anda. Dalam contoh ini, definisi nodePerson
otomatis mengambil definisi tabelPerson
yang diubah karena tabel input skema diubah.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 diekspos dari tabel input. Untuk informasi selengkapnya, lihat Sesuaikan label dan properti.
Menghapus definisi node atau edge yang ada
Untuk menghapus definisi node atau edge yang ada, buat ulang grafik properti tanpa tabel {i>node<i} atau {i>edge<i} tersebut.
Contoh berikut menghapus definisi node Person
dan
Definisi edge 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 Grafik Spanner.
- Pelajari kueri Spanner Graph.
- Pelajari praktik terbaik untuk menyesuaikan kueri Grafik Spanner.