Reserved. 5、巨⼤グラフをAzureで実現 グラフDB 19 • AzureでグラフDBを利⽤する場合,IaaSに任意のDBサーバーを⽴てるか,SQL Database, COSMOS DBという選択肢があります. 管理 OSレベルでの管理 PaaSなので⼿軽 PaaSなので⼿軽 クエリ DBサーバーによる(Neo4jならCypher) 独⾃のSQL構⽂ Gremlin スケー ル VMのスケールとDBサーバーの設定変更 ポータルで設定変更 ポータルで設定変更 価格 中(VMの価格) 中 ⾼ 経路検 索 match (start:L_Station {name:"品川"}), (end:L_Station{name:"新宿"}), path = shortestPath((start)-[:Line*]-(end)) return path with cte as ( select S.駅名 as 発駅, E.駅名 as 着駅, cast(R.距離 as decimal(10, 1)) as 距離, R. 分, cast(concat(S.駅名, '-', E.駅名) as nvarchar(max)) as ルート, 1 as cnt from G_駅 S, G_路線 R, G_駅 E where match (S - (R) -> E) and S.駅名 = N'新宿' union all select cte.着駅, E.駅名, cast(cte.距離 + R.距離 as decimal(10, 1)), cte.分 + R.分, cast(concat(cte.ルート, '-', E.駅名) as nvarchar(max)), cte.cnt + 1 from cte, G_駅 S, G_路線 R, G_駅 E where cte.着駅 = S.駅名 and match (S - (R) -> E) and charindex(E.駅名, cte. ルート) = 0 ) select top(1) cte.ルート , cte.距離 , cte.分 , cte.cnt from cte where cte.着駅 = N'新宿' order by cte.距離 g.V(). has(""station"", ""name"", ""品川 "").emit().repeat(bothE(""connectedTo"").otherV().sim plePath()).until(has(""name"", ""新宿 "").or().loops().is(eq(6))).has(""name"", ""Marble Arch"").path().unfold().hasLabel(""station"") [参考] SQL Server 2019では,グラフ機能が⼤幅にアップデートされているのでぜひ体験して⾒てください. https://www.sqlshack.com/graph-database-features-in-sql-server-2019-part-1/