SpoilerTento blog popisuje funkčnost Pro 2.9 (v době psaní nevydáno) - zeptejte se svého zástupce Esri na ArcGIS Knowledge!
Některé věci v informačních technologiích se zdají být věčnými příklady dodávání dat, nikoli informací, a pokud chcete být řízeni daty, je to informace, kterou chcete. Můj příklad zde je vizualizace a analýza vztahů mezi georelačními datovými sadami, což je klíčová oblast, kterou ArcGIS obývá, a něco, s čím jsem se vždy potýkal nad rámec základů. Můžete aplikovat spojení a vztahy na mapové vrstvy, ale tyto rychle ztrácejí sílu a použitelnost, například jak vizualizovat kardinálnost a jak provádět výkonné dotazy. Navíc, pokud jsou vaše datové sady z různých zdrojů, je to ještě těžší. Udělal jsem odbočky do kódovaných přístupů, ale zjistil jsem, že nejsou škálovatelné.
ArcGIS Data Interoperability a ArcGIS Knowledge na pomoc!
Proč právě toto spojení? No, Data Interoperability v Pro 2.8+ zahrnuje Tech Preview verzi Esri Knowledge graph database reader/writer a řeší problém „všechny zdroje“ pro vytváření a údržbu databází Knowledge graph. Čtečka/zapisovač není jen flexibilní, ale také rychlá. V době psaní je Knowledge stále ve vývoji a používám alfa verzi Pro 2.9, ale téma je tak vhodné pro řízení daty, že jsem nemohl odolat.
Zde jsou některé grafiky z mé ETL práce na naplnění grafu, pracovní prostory jsou ke stažení v příspěvku. Graf, který vytvářím, jsou data o nemovitostech, uzly jsou centroidy katastrálních titulů plus další entity pro vlastníky a zatížení (obvykle nájmy a hypotéky), s vztahy jako „vlastní“ a „zatěžuje“.
Načítání entit (uzlů)
Načítání vztahů
Zdrojové uzly nemovitostí
V grafu je přes 10 milionů entit a přes 10 milionů vztahů. Trochu jsem zjednodušil svůj datový model, abych ignoroval některé právní detaily (existuje něco jako estate, které umožňuje složitější vztahy mezi tituly a vlastníky), abych získal graf, kde body katastrálních titulů (modré tečky) mají jeden nebo více podílů vlastnictví nad nimi a podíly vlastnictví mají nula nebo více zatížení. Body titulů jsou samozřejmě prostorové, vlastníci a zatížení jsou tabulková data. Zde jsou některé počty prvků:
Datový model
Uvidíte, že načítání dat probíhalo ve dvou částech, nejprve entity a pak vztahy. Je to proto, že vztahy entit jsou vytvářeny pomocí automaticky generovaných polí GlobalID, takže entity musí být vytvořeny nejdříve; dostanete představu z pracovních prostorů. Entity GlobalID se stávají počátečními a cílovými GlobalID vztahů.
Grafy žijí v Enterprise Portal, používám Enterprise 10.9.1/Pro 2.9 jako svůj portál a klienta.
Existuje nespočet dotazů, které můžete na svém grafu provést; to je interaktivně usnadněno buď pomocí něčeho nazvaného Link Chart, nebo pomocí dotazovacího jazyka Cypher .
Nejprve jednoduchý link chart. Moje data nejsou opravdu typem, kde by se spojení objevovala nově interaktivním průzkumem link chartu; všechny vztahy jsou již známy, ale můžete vybrat a přidat entity do link chartu pro vyšetření svých dat. Toto je můj první pokus o Knowledge, takže to držím jednoduché. Zde je kdo vlastní některé tituly někde:
Základní link chart
Nepoužil jsem interaktivní nástroje k vytvoření entit grafu; použil jsem Cypher dotaz:
match (ee:Encumbrancee {name:'Her Majesty The Queen'})-[oe:owns_encumbrance]-(e:Encumbrance)-[he:has_encumbrance]-(t:Title {land_district:'Otago'}) return ee,oe,e,he,t limit 5
Tento našel 5 titulů v konkrétním pozemkovém okrese zatížených jedním encumbrancee. Link charty zde opustím, ale přicházejí s nástroji pro jejich naplnění a jsou skvělým způsobem prozkoumání spojení.
Existují větší vzory k objevení! Například kde jsou tituly hodně zatíženy?
Nezatížené (zelené) a zatížené (červené) tituly
Kdybych to dělal vážně, mohl bych před načtením do grafu připojit demografické proměnné k bodům titulů, což by mi umožnilo analyzovat segmenty populace.
Existují zajímavé věci k naučení i bez studia demografie. Výhodou grafových databází je rychlost dotazování na agregované statistiky ve srovnání s ekvivalentními SQL příkazy; například podíváme se na rozložení tržního podílu encumbrancee (finanční instituce nebo pronajímatel).
Držení zatížení podle instituce
Tento výsledek se objevil z mého grafu během několika sekund pomocí dotazu viditelného v ovládacím prvku:
match (e:Encumbrance) where e.name is not null return e.name, count(*) as book order by book desc
Data držitelů zatížení mají dlouhý ocas; řekněme, že nás zajímají velcí komerční věřitelé, kteří mají 10 000 nebo více zatížení a jsou společnosti.
Velcí věřitelé
Toto shrnutí je za celou datovou sadu; všimnete si tří institucí těsně soupeřících na trhu, pak tržní podíl rychle klesá a je zde 12 institucí splňujících můj limit. Je něco jiného na mé studijní oblasti? Udělal jsem dotaz pro zjištění:
match (e:Encumbrance)
with e.name as lender , count(*) as book where book > 10000 and lender contains 'Limited'
with collect(lender) as biglenders
match (t:Title {land_district:'Otago'})-[:has_encumbrance]-(e:Encumbrance) where e.name in biglenders
return t, e
Zde je mapa a graf:
Krajina půjček
Mohl bych být schopen podat případ pro horká místa, kde některé instituce dosahují lepších výsledků než jiné, ale zajímavý je graf, držby čtyř nejlepších institucí nesledují národní rozložení.<\/P>
Můžeme se podívat na zatížené držby ve studované oblasti:<\/P>
match (o:Owner)-[:has_owner]-(t:Title {land_district:'Otago'})-[:has_encumbrance]-(e:Encumbrance) where e.name contains 'Limited'<\/STRONG>
with o.prime_other_names + ' ' + o.prime_surname as owner, o.corporate_name as company, count(*) as holdings<\/STRONG>
return owner, company,holdings order by holdings desc<\/STRONG><\/P> <\/P>
Držby<\/span><\/span><\/P> <\/P>Nebo související dotaz, které ne-farm tituly jsou zatíženy velkými věřiteli?<\/P>match (e:Encumbrance)<\/STRONG>
with e.name as lender , count(*) as book where book > 10000 and lender contains 'Limited'<\/STRONG>
with collect(lender) as biglenders<\/STRONG>
match (t:Title {land_district:'Otago'})-[:has_encumbrance]-(e:Encumbrance)<\/STRONG>
where e.name in biglenders<\/STRONG>
with t,e<\/STRONG>
match (o:Owner)-[:has_owner]-(t)-[:has_encumbrance]-(e)<\/STRONG>
where not (o.corporate_name contains 'Farm' or o.corporate_name contains 'Pasture')<\/STRONG>
return o,t,e<\/STRONG><\/P>Pospíchám dodat, že to stále zachytilo mnoho farem, protože datový model opravdu nepodporuje dotazy na klasifikaci využití půdy, ale samozřejmě pokud budu mít oblasti využití půdy, mohl bych předem provést překrytí bodů titulů a udělat to skutečně.<\/P> <\/P>
Ne-farm Zatížení podle Banky<\/span><\/span><\/P>Takže zatímco při psaní jsem před požadovaným vydáním softwaru, doufám, že vám to dává představu o umění možného s ArcGIS Knowledge<\/STRONG>, jak učinit dotazování složitých vztahů ve velkých datech jednoduché a rychlé. Toto byl můj první pokus o Knowledge a hodně jsem se naučil, včetně základů jazyka pro dotazy grafů OpenCypher<\/STRONG>, který vidíte výše. Jak říkám v upozornění na spoiler, obraťte se na svého zástupce Esri ohledně plánů vydání (Pro 2.9) a pokud máte opravdu zájem, na komunitu Early Adopter při Pro 2.8.<\/P> <\/P> <\/P>