Google Cloud ã® Spanner ã« æ°æ©èœãSpanner Graphãã远å ãããŸãã
ã¯ããã«
ããã«ã¡ã¯ãã¯ã©ãŠããšãŒã¹ ããŒã¿ãœãªã¥ãŒã·ã§ã³éšã®æ£®ã§ãã
ããŒã¿ãœãªã¥ãŒã·ã§ã³éšã§ã¯ãGoogle Cloud ãæäŸããŠããããŒã¿é åã®ãããã¯ãã«ã€ããŠãæ°èŠãªãªãŒã¹ããã£ããã¢ããããããã®èª¿æ»å ±åäŒãæ¯é±éå¬ããŠããŸãã
æ°èŠãªãªãŒã¹ã®äžã§ããç¹ã«éèŠãšèãããªãªãŒã¹ãèšäºãšããŠãŸãšããæ¬ããŒãžã®ããã«å
¬éããŠããŸãã
ã¯ã©ãŠããšãŒã¹ ããŒã¿ãœãªã¥ãŒã·ã§ã³éš ã«ã€ããŠ
ã¯ã©ãŠããšãŒã¹ã® IT ãšã³ãžãã¢ãªã³ã°ãæ
ã ã·ã¹ãã éçºçµ±æ¬éš ã®äžã§ãç¹ã«ããŒã¿åºç€æ§ç¯ã»åæåºç€æ§ç¯ããããŒã¿åæãŸã§ãå«ãäžè²«ããããŒã¿èª²é¡ã®è§£æ±ºãå°éãšããã®ã ããŒã¿ãœãªã¥ãŒã·ã§ã³éš ã§ãã
åŒç€Ÿã§ã¯ãæ°ãã«ä»²éã«å ãã£ãŠãã ããæ¹ãåéããŠããŸããããããèå³ãããã° ãšã³ããªãŒ ããåŸ
ã¡ããŠãããŸãïŒ
æ¬èšäºã§ã¯ã2024 幎 8 æ 1 æ¥ã«ãªãªãŒã¹ããããSpanner ã®æ°æ©èœã§ãããSpanner Graphãã«ã€ããŠç޹ä»ããŸãã
èŠçŽ
æ¬èšäºã®èŠçŽã¯ä»¥äžã®éãã§ãã
- Spanner Graph 㯠Spanner ã«è¿œå ãããæ°ããã°ã©ã ããŒã¿ããŒã¹æ©èœã§ãã
- ã°ã©ã ããŒã¿ããŒã¹ã®æŠå¿µã䜿çšããŠããŒã¿ã®é¢é£æ§ã«çç®ããŠåæã§ããŸãã
- äŸïŒã誰ãã©ã®å£åº§ããããŒã³ãè¿æžãããããã誰ã誰ãšåéãããªã©ãæããããŸãã
- äž»ãªå©ç¹ã¯ä»¥äžã§ãã
- ããŒã¿ã®é¢ä¿æ§ãçŽæçã«å¯èŠåã§ããŸãã
- æ¢åã® Spanner ããŒã¿ãå©çšã§ãããããããŒã¿ç§»è¡ãè€è£œã¯äžèŠã§ãã
- ç°¡æœã«æ·±ãé¢ä¿æ§ãæã€ããŒã¿ã®æ¢çŽ¢ãã§ããŸãã
- SQLïŒGoogleSQLãPostgreSQLïŒ ãš GQL ãçµã¿åãããŠäœ¿çšã§ããŸãã
- SQLïŒãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã§äœ¿çšããã¯ãšãªã§ããGoogleSQL ã®ã¿ ANSI æšæºã«æºæ ããŠããŸãã
- GQLïŒSpanner Graph ã§äœ¿çšããã¯ãšãªã§ããISO æšæºã«æºæ ããŠããŸãã
Spanner ãšã¯
Spanner ã¯ãGoogle Cloud ãæäŸãããã«ãããŒãžãã®ããŒã¿ããŒã¹ ãµãŒãã¹ã§ãã
å
·äœçã«ã¯ã以äžã®ç¹åŸŽããããŸããïŒGoogle Cloud ããŒã¿ããŒã¹ããŒãžããåŒçšïŒ
- ç¡å¶éã®ã¹ã±ãŒã«ãã°ããŒãã«ãªæŽåæ§ãæå€§ 99.999% ã®å¯çšæ§ãã¯ã©ãŠããã€ãã£ãã
- ããŒã¯æã«ã¯æ¯ç§ 30 å以äžã®ãªã¯ãšã¹ããåŠçããŸãã
- 10 GB ã®ã¹ãã¬ãŒãžãå©çšã§ãã 90 æ¥éã® Spanner ç¡æãã©ã€ã¢ã« ã€ã³ã¹ã¿ã³ã¹ãäœæã§ããŸãã
- Oracle ã DynamoDB ã®ãããªããŒã¿ããŒã¹ããç§»è¡ã§ããŸãã
Spanner ã®è©³çްã¯å ¬åŒããã¥ã¡ã³ããã芧ãã ããã
Spanner Graph ãšã¯
Spanner Graph ã®æŠèŠ
Spanner Graph ã¯ãSpanner ã«æ°ãã«è¿œå ãããã°ã©ã ããŒã¿ããŒã¹æ©èœã§ãã
Spanner ã®åºç€ã«ãã°ã©ã ããŒã¿ããŒã¹ã®æçšãªæ©èœãçµã¿åãããŠäœ¿çšã§ããŸãã
Spanner Graph ãå©çšããããšã§ãåŸæ¥ã®ãªã¬ãŒã·ã§ãã« ããŒã¿ããŒã¹ã§ã¯è¡šçŸãé£ããã£ãè€éãªããŒã¿é¢ä¿ãããããŸã§ã®æé ããç°¡æçã«è¡šçŸã§ããããã«ãªããŸãã
ãŸããSpanner ã®ããŒãã«ããŒã¿ãç§»è¡ã»è€è£œããããšãªã Spanner Graph ã§å©çšã§ãããããæ¢åããŒã¿ã掻çšããããã®ããã€ã³ãã§ãã
Spanner Graph ãå«ãã°ã©ã ããŒã¿ããŒã¹ã§ã¯ãããŒã¿ãããŒãïŒç¹ïŒãšãšããžïŒç·ïŒãšããæŠå¿µã䜿çšããŠãããŒã¿ã衚çŸããŸãã
以äžå³ã®ããã«ãåäººãææããå£åº§ãšããã®å£åº§ã§è¿æžãããããŒã³ã®é¢ä¿ã確èªã§ããã€ã¡ãŒãžã§ãã

åºå
žïŒCodelabs Spanner ã°ã©ãã䜿ã£ãŠã¿ã
- ããŒãïŒå人ïŒPersonïŒãå£åº§ïŒAccountïŒãããŒã³ïŒLoanïŒ
- ãšããžïŒææïŒOwnsïŒãè¿æžïŒRepaysïŒ
Spanner Graph ã®ã¯ãšãªã§ã¯ãäžèšç»åã®ãããªé¢ä¿ã以äžã®ããã«è¡šçŸããŸãã
-
(Person {name: "Bob"})-[Owns]->(Account {id:18})-[Repays]->(Loan{to_id:27})
ããŒãïŒ(Person, Account, Loan)ïŒã®éããšããžïŒ-[Owns, Repays]->ïŒãç¹ãã§ããããšã確èªã§ããŸãã
Spanner Graph ã®å®éã®åŠçã§ã¯ã以äžã®ç»åèµ€æ å
ã®ããã«è¡šåœ¢åŒã®çµæãåºåãããŸãã

åºå
žïŒCodelabs Spanner ã°ã©ãã䜿ã£ãŠã¿ã
åºåçµæã ããèŠããšãSQL ãšå€ãããªãããã«èŠããŸãããããŒã¿ããŒã¹ã®æŠå¿µããã¯ãšãªèšèªãæ ¹æ¬çã«ç°ãªããŸãããããã«ã€ããŠã¯ãSpanner Graph ã®åæç¥èã以éã®é ç®ã§ç޹ä»ããŸãã
Spanner Graph ã®å©ç¹
Spanner Graph ã®å©ç¹ã¯ä»¥äžã§ãã
-
ããŒã¿ã®é¢ä¿æ§å¯èŠå
- ããŒã¿å士ã®ã€ãªãããçŽæçã«è¡šçŸã§ããŸãã
- ã誰ã誰ãšåéããããã©ã®ååãããäžç·ã«è²·ããããããšãã£ãé¢ä¿æ§ããããããããæ¢çŽ¢ã§ããŸãã
-
æ¢åããŒã¿ã®ç§»è¡ãè€è£œãäžèŠ
- Spanner ã®æ¢åã®ããŒãã«ã«å¯ŸããŠãGQLïŒåŸè¿°ïŒã䜿çšããããŒã¿æ¢çŽ¢ãå¯èœã§ãã
- ããŒã¿ã®ç§»è¡ãè€è£œãªãã«ããªã¬ãŒã·ã§ãã« ããŒã¿ããŒã¹ãšã°ã©ã ããŒã¿ããŒã¹ã®äž¡æ¹ã掻çšã§ããŸãã
-
ã¯ãšãªã®ç°¡æœæ§
- æ·±ãé¢ä¿æ§ãæã€ããŒã¿ã®æ¢çŽ¢ããåŸæ¥ã® SQL ãããç°¡æœïŒè€æ°ã®ããŒãã«ãçµåããè€éãªã¯ãšãªãäžèŠïŒã«èšè¿°ã§ããŸãã
-
ãã€ããªããã¯ãšãª
- SQL ãš GQL ãçµã¿åãããŠäœ¿çšã§ããæè»ãªããŒã¿åæãå¯èœã§ãã
-
åœéæšæºãžã®æºæ
- GQL ã®åœéæšæºã§ãã ISO GQL ãæ¡çšããŠããŸãã
Spanner Graph ã®åæç¥è
Spanner Graph ã®åºæ¬æ©èœç޹ä»ã®åã«ã以äžã®æŠå¿µã«ã€ããŠçè§£ããŠããå¿ èŠããããŸãã
ã°ã©ã ããŒã¿ããŒã¹
ã°ã©ã ããŒã¿ããŒã¹ã¯ãããŒã¿ãããŒãïŒç¹ïŒãšãšããžïŒç·ïŒã§è¡šçŸããããŒã¿ããŒã¹ã§ãã
ã°ã©ã ããŒã¿ããŒã¹ã§äœ¿ãããçšèªãææ¡ããŠãããŸãããã
-
GQLïŒGraph Query LanguageïŒ
- ã°ã©ã ããŒã¿ããŒã¹ãæäœããããã®å°çšèšèªã§ãã
- ããŒãããšããžãã©ãã«ãããããã£ã䜿çšããŠããŒã¿ãã¯ãšãªããããšãå¯èœã§ãã
-
ããŒã
- åæå¯Ÿè±¡ãšãªããã¢ãããã人ãã衚çŸããŸãã
ã顧客ããã補åãããå Žæããªã©ã衚ãããšãã§ããŸãã
- åæå¯Ÿè±¡ãšãªããã¢ãããã人ãã衚çŸããŸãã
-
ãšããž
- ããŒããšããŒãã®é¢ä¿æ§ã衚çŸããŸãã
ããã©ããŒããŠãããããè³Œå ¥ããããããã«ããããšãã£ãé¢ä¿æ§ã衚ãããšãã§ããŸãã
- ããŒããšããŒãã®é¢ä¿æ§ã衚çŸããŸãã
-
ã©ãã«
- ããŒããšãšããžã®çš®é¡ãåé¡ããããã«äœ¿çšããŸãã
ããŠãŒã¶ãŒãããååãããè³Œå ¥ããšãã£ãã©ãã«ãä»ããããšãã§ããŸãã
ã©ãã«åäœã§ã¯ãšãªãã§ãããããç¹å®ã®ã©ãã«ãä»äžããã察象ã«å¯ŸããŠäžæ¬ã§åãåŠçãããããšãå¯èœã§ãã
- ããŒããšãšããžã®çš®é¡ãåé¡ããããã«äœ¿çšããŸãã
-
ããããã£
- ããŒããšãšããžã«ããŒãšå€ã®ãã¢ãæ
å ±ãšããŠè¿œå ã§ããŸãã
ã幎霢: ãæ³ããã顧客å: â³â³æ§ãããååå: â¡â¡ããšãã£ãæ å ±ã远å ã§ããŸãã
ã¯ãšãªã®æ¡ä»¶ã«ããŒãå€ã䜿çšããããšãã§ããããã现ããªããŒã¿ã®çµã蟌ã¿ãæ¢çŽ¢ãå¯èœã§ãã
- ããŒããšãšããžã«ããŒãšå€ã®ãã¢ãæ
å ±ãšããŠè¿œå ã§ããŸãã
Spanner Graph ã®åºæ¬æ©èœ
Spanner Graph ã®åºæ¬æ©èœã§ããä»¥äž 2 ã€ã®å 容ã玹ä»ããŸãã
- Spanner Graph ã¹ããŒã
- Spanner Graph ã¯ãšãª
Spanner Graph ã¹ããŒã
Spanner Graph ã§ã¯ãç¹å®ã®ã¹ããŒãïŒããŒã¿ã®æ§é ïŒã«åŸã£ãŠãããŒãããšããžãªã©ãå®çŸ©ããŸãã
GQL ã䜿çšããã«ã¯ãSpanner ã®ããŒãã«ã« Spanner Graph ã¹ããŒããäœæããå¿
èŠããããŸãã
å
·äœçã«ã¯ãCREATE PROPERTY GRAPH ã¹ããŒãã¡ã³ãã䜿çšããŠããŒãã«ããããŒãããšããžãªã©ãå®çŸ©ããŸãã
äŸãšããŠã4 ã€ã®ãªã¬ãŒã·ã§ãã« ããŒãã«ãããååäººãææããå£åº§éã®ééæ
å ±ã衚çŸããããã« FinGraph ãšãã Spanner Graph ã¹ããŒããäœæããŸãã
ã€ã¡ãŒãžã¯ä»¥äžç»åãã確èªãã ããã

次ã«ã4 ã€ã®ãªã¬ãŒã·ã§ãã« ããŒãã«ãš Spanner Graph ã¹ããŒããäœæããã¯ãšãªãèŠãŠãããŸãã
-- å人æ
å ± ããŒãã«äœæ
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);
-- åäººãææããå£åº§æ
å ± ããŒãã«äœæ
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;
-- Spanner Graph ã¹ããŒãäœæ
CREATE OR REPLACE 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
);
ãŸãã¯ãSpanner Graph ã®ã©ãã«ã«ã€ããŠèª¬æããŸãã
Spanner Graph ã§ã¯ãããŒããšãšããžã®èå¥ã«ã©ãã«ã䜿çšããŸããããã¯ãã¹ããŒãã«å¯Ÿããã¯ãšãªçºè¡æã«ã©ãã«ãæå®ããå¿
èŠãããããã§ãã
ã©ãã«ã¯ãããŒããšãšããžãäœæããéã«ä»»æã®å€ãä»äžã§ããŸããã©ãã«ãæç€ºçã«æå®ããªãã£ãå Žåã¯ãå
¥åããŒãã«åãèªåçã«ã©ãã«ãšããŠä»äžãããŸãã
ç¶ããŠãSpanner Graph ã¹ããŒãäœæãã®å
容ã確èªããŸãã
CREATE OR REPLACE PROPERTY GRAPH FinGraph å
ã§ã以äžã®ããŒããšãšããžãæå®ããŠããŸãã
-
ããŒãæå®
-
NODE TABLESã§ã¯ãå£åº§ã衚ãAccountããŒãã«ãšå人ã衚ãPersonããŒãã«ãããŒãã«æå®ããŠããŸãã - ã©ãã«ãæç€ºçã«æå®ããªããããå
¥åããŒãã«åïŒ
AccountãPersonïŒãèªåçã«ã©ãã«ãšããŠä»äžãããŸãã
-
-
ãšããžæå®
-
EDGE TABLESã§ã¯ã以äžã® 2 çš®é¡ã®é¢ä¿ãæå®ããããšã§ãåäººãææããå£åº§ãšå人éã®ééæ å ±ããšããžãšããŠæå®ããŠããŸãã-
PersonOwnAccountïŒPersonããŒããšAccountããŒããç¹ããšããžã§ããOwnsã©ãã«ãä»äžããŠããŸãã -
AccountTransferAccountïŒAccountããŒãããå¥ã®AccountããŒããç¹ããšããžã§ããTransfersã©ãã«ãä»äžããŠããŸãã
-
-
åãªã¬ãŒã·ã§ãã« ããŒãã«ãžã®ããŒã¿ã®æ ŒçŽã¯æ¬èšäºã®èŠæšã§ã¯ãªããããçç¥ããŠããŸãã
詳现ã¯å
¬åŒããã¥ã¡ã³ãïŒSet up and query Spanner Graph using the Google Cloud consoleïŒãã芧ãã ããã
ããŒãããšããžãã©ãã«ãããããã£ãå«ãã¹ããŒãã®èšå®æ¹æ³ã«ã€ããŠã¯ãå
¬åŒããã¥ã¡ã³ãïŒGQL schema statementsïŒãã芧ãã ããã
Spanner Graph ã¯ãšãª
Spanner Graph ã§ã¯ãGQL ã䜿çšã㊠Spanner Graph ã¹ããŒãã«ã¯ãšãªãçºè¡ããŸãã
ããŒãããšããžãæ€çŽ¢ããããé¢ä¿æ§ã蟿ã£ããããããšã§ãå¿
èŠãªæ
å ±ãæœåºããŸãã
ããã§ã¯ããSpanner Graph ã¹ããŒããã®é
ç®ã§äœæããã¹ããŒãã«å¯ŸããŠã¯ãšãªãçºè¡ããŠã¿ãŸãããã
以äžã®ã¯ãšãªã¯ãFinGraph å
ã®å
šãŠã®ããŒããæ€çŽ¢ãããã®ããŒãã«ä»äžãããŠããã©ãã«ãš ID ãååŸãããã®ã§ãã
GRAPH FinGraph
MATCH (n) -- ãããããããŒããæœåº
RETURN LABELS(n) AS label, n.id; -- label ãš id ãè¿ã
--åºåçµæ
/*---------------+
| label | id |
+---------------+
| Account | 7 |
| Account | 16 |
| Account | 20 |
| Person | 1 |
| Person | 2 |
| Person | 3 |
+---------------*/
MATCH (n) ã¯ãã°ã©ãå
ã®å
šãŠã®ããŒãã察象ãšããRETURN LABELS(n) ã§ãã®ããŒãã®ã©ãã«ãè¿ããn.id ã§ããŒãã®IDãè¿ããŸãã
ã¯ãšãªäžéšã®åºåçµæã®è¡šã確èªãããšãã°ã©ãã¹ããŒãã§å®çŸ©ãã Account ããŒããš Person ããŒãã® ID ã確èªã§ããŸããã
ç¶ããŠãç¹å®ã®äººç©ãææããå£åº§ããä»ã®å£åº§ãžã®ééã®é¢ä¿ãååŸããã¯ãšãªãèšèŒããŸãã
GRAPH FinGraph
MATCH
(p:Person {id: 2})-[:Owns]->(account:Account)-[t:Transfers]->
(to_account:Account)
RETURN
p.id AS sender_id, -- ééè
ã® ID
account.id AS from_id, -- ééå
å£åº§ã® ID
to_account.id AS to_id; -- ééå
å£åº§ã® ID
--åºåçµæ
/*-----------------------------+
| sender_id | from_id | to_id |
+-----------------------------+
| 2 | 20 | 7 |
| 2 | 20 | 16 |
+-----------------------------*/
MATCH ã®åŠçãå
·äœçã«èŠãŠãããŸãã
-
ããŒã
-
(p:Person {id: 2})-
Personã®ã©ãã«ãä»äžãããããŒããæå®ããŠããŸãã -
{id: 2}ã§ãidã 2 ã®PersonããŒããæ¡ä»¶ã«æå®ããŠããŸãã -
p:ã¯ããããããPersonããŒããåç §ããããã®å€æ°åã§ãã
-
-
(account:Account)-
Accountã®ã©ãã«ãä»äžãããããŒããæå®ããŠããŸãã - æ¡ä»¶ãæå®ããªãããã
Accountã©ãã«ãæã€ãã¹ãŠããŒãã察象ã§ãã -
account:ã¯ããããããPersonããŒããåç §ããããã®å€æ°åã§ãã
-
-
-
ã©ãã«
-
-[:Owns]->- åã®ããŒããšåŸã®ããŒããã€ãªããšããžãæå®ããŠããŸãã
-
PersonããŒãããOwnsã®ã©ãã«ãä»äžããããšããžã蟿ããAccountããŒãã«æ¥ç¶ããŸãã
ããã«ãããidã 2 ã®äººç©ãææããå£åº§ã蟿ããŸãã
-
-[t:Transfers]->-
AccountããŒãããTransfersã®ã©ãã«ãä»äžããããšããžã蟿ããå¥ã®AccountããŒãã«æ¥ç¶ããŸãã
ããã«ãããidã 2 ã®äººç©ãææããå£åº§ã®ééå å£åº§ã蟿ããŸãã
-
-
ã¯ãšãªäžéšã®åºåçµæã®è¡šã確èªãããšãééè ã® IDãééå å£åº§ã® IDãééå å£åº§ã® ID ãæ¢çŽ¢ã§ããŠããããšãããããŸããã
SQL ãš GQL ãçµã¿åãããã¯ãšãª
FinGraph å
ã®ããŒãããç¹å®ã® name ãš id ãæœåºããåŠçããSQL ãš GQL ãçµã¿åãããŠèšè¿°ããæ¹æ³ã玹ä»ããŸãã
åŠçå
容ã¯ã1 ã€åã®ã¯ãšãªã§ç¢ºèªãã FinGraph ã®ã¯ãšãªçµæãå
ã«ãname ã®å€ã Alex ã®è¡ãæœåºããŠããŸãã
SELECT name, id -- name ãš id ãéžæ
FROM GRAPH_TABLE(
FinGraph
MATCH (n) -- ãããããããŒããæœåº
RETURN n.name AS name, n.id AS id -- name ãš id ãè¿ã
)
WHERE name = "Alex"; -- ååã Alex ã®è¡ãæœåº
--åºåçµæ
/*-----------+
| name | id |
+-----------+
| Alex | 1 |
+-----------*/
ã¯ãšãªçµæã§ã¯ãname ã« Alex ãæ ŒçŽãããŠãã 1 è¡ã®ã¿ãæœåºã§ããŸãã
ãã®ããã«ãSQL ãš GQL ãçµã¿åãããåŠçãèšè¿°ã§ãããããSQL ã§çµåãå€çšããŠããç®æãéšåçã« GQL ã«çœ®ãæãããªã©ãåŠçã®è€éãè§£æ¶ãèŠèŸŒããŸãã
Spanner Graph ã¯ãšãªã®è©³çްã¯ãSpanner Graph ã¯ãšãªæ§é ãã芧ãã ããã
SQL ãš GQL ã®çµã¿åãã䜿çšã®è©³çްã¯ãå
¬åŒããã¥ã¡ã³ãïŒGQL within SQLïŒãã芧ãã ããã
Spanner Graph ã®å¶éã»æ³šæäºé
èšäºå·çæç¹ïŒ2024 幎 9 æ 27 æ¥ïŒã§ã¯ãSpanner Graph ã¯ãã¬ãã¥ãŒçãšããŠæäŸãããŠããããµããŒããå¶éãããŠããå¯èœæ§ããããŸãã
詳现ã«ã€ããŠã¯ããªãªãŒã¹ ã¹ããŒãžã®èª¬æãåç
§ããŠãã ããã
ãŸã Spanner ã§ã¯ 2024 幎 9 æ 24 æ¥ã«ãSpanner Editions ããªãªãŒã¹ãããŸãããããã«ãã£ãŠã Spanner ãå©çšããã«ãããå©çšè ã¯ãŸãã©ã® Edition ãå©çšããããæ±ºããªããã°ãªããªããªããŸãããä»åã玹ä»ãã Spanner Graph ã®æ©èœã¯ãSpanner Enterprise ãšãã£ã·ã§ã³ããã³ Enterprise Plus ãšãã£ã·ã§ã³ã®ããããã§ãªããšå©çšã§ããªãããæ³šæããŠãã ããã
Spanner Graph ã®æé
Spanner èªäœã®å©çšã«ã¯æéãããããŸãããSpanner Graph ã®å©çšã«ããè¿œå æéã¯ããããŸããã
Spanner èªäœã®æéæ å ±ã¯ãSpanner ã®æéããŒãžãã芧ãã ããã
ãŸããSpanner Editions ã§ã¯ãäžèšã®æéäœç³»ã§ã¯ãªã Spanner Editions ã®æéäœç³»ãé©çšãããããæ³šæãå¿
èŠã§ãã
Spanner Editions ã®æé詳现ã¯å
¬åŒããã¥ã¡ã³ããã芧ãã ããã
ãŸãšã
Spanner Graph ã¯ãªã¬ãŒã·ã§ãã« ããŒã¿ããŒã¹ã®ããã©ãŒãã³ã¹ãç¶æãã€ã€ãã°ã©ã ããŒã¿ããŒã¹ã®ç¹é·ãåãå
¥ããããšã§ãè€éãªããŒã¿é¢ä¿ã®çè§£ã容æã«ããæ°æ©èœã§ãã
åŸæ¥ã® SQL ããŒã¹ã®ããŒã¿åæã«å ããã°ã©ã ããŒã¿ããŒã¹ã®æŠå¿µã䜿çšããããŒã¿ã®é¢é£æ§åæãå¯èœã«ãªããŸãã
ä»åŸã®æ£åŒçãªãªãŒã¹ãåŸ
ã¡é ããã§ããã
Discussion
ãšãããŸãã
ãªã®ã§çŸç¶ GoogleSQL å°çšã§ã¯ãªãã§ããããã
apstndb æ§
ãã®åºŠã¯ã³ã¡ã³ãããã ããããããšãããããŸãã
ãææã«ã€ããŠã瀟å ã«ãŠç¢ºèªã®äžããè¿çããããŸãã
ææéããçŸç¶ GoogleSQL å°çšã®ããããSQLïŒGoogleSQLãPostgreSQLïŒ ãš GQL ãçµã¿åãããŠäœ¿çšã§ããŸãããã®æèšã¯èª€ããšãªããæ£ããã¯ããSQLïŒGoogleSQLïŒãš GQL ãçµã¿åãããŠäœ¿çšã§ããŸãããã«ãªããŸãã
ãã®åºŠã¯ã貎éãªãææããã ãããå¿ããæè¬ãç³ãäžããŸãã
åŒãç¶ããåŒç€Ÿ Zenn ããããããé¡ãããããŸãã