Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak zrozumieć typ danych geograficznych serwera SQL?

Typ danych Geografia programu SQL Server różni się od innych typów, ponieważ nie jest używany często. To nie jest jak varchar , int , pływak lub DataGodzina obecne w każdej tabeli, przynajmniej w jednym rodzaju.

Czy potrzebujemy typu danych Geografia serwera SQL? Aby coś nowego zrozumieć, musimy odpowiedzieć na trzy podstawowe pytania:

Jakie problemy rozwiązuje ? Odpowiedź leży w przypadkach użycia.
Jakie są rzeczy związane z jej studiowaniem? Poznasz kilka podstawowych definicji i akronimów. Zebrałem tylko ważne rzeczy, więc nie będziesz się nudzić.
Czy istnieją przykłady wyjaśniające, jak to działa i czy jest łatwe do wdrożenia? Nasz rodzaj żyje z kodem. Z nim jemy i śpimy. Dlatego w tym poście będziemy mieć przykładowe kody.

Nie jest to post, który ma na celu wypchanie Cię technicznym żargonem i składnią w takiej postaci, w jakiej jest. Po złamaniu podstaw typu danych geograficznych programu SQL Server możesz zacząć. Brzmi dobrze?

Zanurzmy się.

Użyj przypadków użycia danych przestrzennych

Zacznijmy od najbardziej oczywistego i najwyższego – ogólnego terminu „dane przestrzenne”.

Dane przestrzenne lub geoprzestrzenne to dane o obiektach, zdarzeniach lub zjawiskach znajdujących się na powierzchni Ziemi. Innymi słowy, jest to informacja wypchana na mapie. Pomyśl na przykład o Mapach Google lub Waze.

Ale to nie wszystko:

  • Zlokalizuj firmową ciężarówkę dostawczą za pośrednictwem strony internetowej lub aplikacji mobilnej.
  • Znajdź interesujące miejsca, takie jak pobliskie restauracje, banki lub szpitale.
  • Przeanalizuj dane dotyczące trzęsienia ziemi, rozprzestrzeniania się COVID-19, powodzi lub ruchu drogowego – analiza geoprzestrzenna.

I tak dalej.

Kilka platform baz danych zajmuje się danymi przestrzennymi, ale skupimy się tylko na jednej.

Co to jest typ danych geograficznego serwera SQL?

Firma Microsoft dodała typy danych geografia i geometria w SQL Server 2008. Geografia reprezentuje dane w okrągłym układzie współrzędnych. Jest również zaimplementowany jako typ danych .Net CLR, który ma właściwości takie jak szerokość lub długość geograficzna.

Ten post koncentruje się na typach danych geograficznych i ich zastosowaniach, w szczególności w:

  • Użyteczne miejsca, takie jak lokalizowanie pobliskich restauracji i przykładowe zapytanie.
  • Analiza geoprzestrzenna.

Ponieważ jest to typ danych, tworzymy tabelę. Następnie definiujemy kolumnę lub kolumny jako geografię. I na koniec tworzymy indeks przestrzenny na tych kolumnach.

Kiedy zapytasz tabelę z kolumną geograficzną, dane wyjściowe będą w formacie binarnym.

Spróbujmy wykonać podstawowy przykład poniżej:

SELECT [Identyfikator Miasta],[Nazwa Miasta],[Geolokalizacja] Z [Miasta] 

Rysunek 1 poniżej przedstawia zestaw wyników:

Gdy zestaw wyników zawiera dane przestrzenne, Wyniki przestrzenne pojawi się również zakładka. Rysunek 2 ilustruje wyniki przestrzenne z powyższego zapytania:

Co się właśnie stało?

Wygląda na to, że przeglądanie zestawu wyników nie jest łatwe i użyteczne, nie mówiąc już o kropkach wzdłuż linii siatki. Pokazałem ci, czego możesz się spodziewać podczas pierwszego SELECT oświadczenie dotyczące typów danych geograficznych. Następna sekcja rozwinie znacznie lepszą perspektywę.

Tworzenie instancji geograficznych serwera SQL

Potrzebna jest instancja do działania na danych z typem danych geograficznych programu SQL Server. Istnieją cztery sposoby tworzenia instancji geograficznej:

  1. z innej instancji geograficznej
  2. używając dobrze znanego tekstu (WKT)
  3. używając dobrze znanego pliku binarnego (WKB)
  4. z wprowadzania tekstu w języku Geography Markup Language (GML)

Skupmy się na użyciu dobrze znanego tekstu.

Korzystanie ze znanego tekstu (WKT)

Ta reprezentacja opiera się na Open Geospatial Consortium (OGC). Umożliwia wymianę danych geograficznych w formie tekstowej.

Weźmy nasz poprzedni przykład, ale zamiast binarnego wyjścia, skonwertujemy go na ciąg:

SELECT [Identyfikator Miasta],[Nazwa Miasta],[Geolokalizacja].ToString() AS Ciąg GeolokalizacjiFROM [Miasta] 

Zwróć uwagę na ToString () metoda. Konwertuje dane wyjściowe na wartość ciągu. Możesz zobaczyć wynik na rysunku 3 poniżej:

Lepszy? Cóż, to wciąż tylko liczby. Ale co jeśli powiem ci, że te liczby to szerokość i długość geograficzna tych miast? To ma więcej sensu, prawda?

Jest to dobrze znany tekst (WKT) i jest niezbędny przy wprowadzaniu danych do kolumny. Więcej o tym później. Teraz musimy zbadać jeszcze jedną rzecz.

Identyfikator odniesienia przestrzennego (SRID)

Oprócz dobrze znanego tekstu, każda instancja geografii ma identyfikator SRID (Spatial Reference Identifier). Jest niezbędny do pomiaru instancji geograficznych (miejsc lub punktów) w mapowaniu okrągłej ziemi.

Najbardziej rozpowszechnioną jednostką miary są metry lub metry kwadratowe, oznaczane przez SRID 4326. Wszystkie inne identyfikatory SRID można znaleźć w sys.spatial_reference_systems .

Twoje kolumny geograficzne mogą mieć różne identyfikatory SRID. Zwróć uwagę, że podczas wykonywania operacji na dwóch instancjach geograficznych, takich jak mierzenie ich odległości. Obie instancje powinny mieć ten sam SRID, w przeciwnym razie zwróci Ci NULL .

STGeomFromText

Po zapoznaniu się z WKT i SRID utworzenie instancji geograficznej wymaga metody o nazwie STGeomFromText . Ma następującą składnię:

geografia::STGeomFromText( , SRID )

Przykład:

INSERT INTO Cities(CityName, GeoLocation)VALUES('CITY OF MANILA',geography::STGeomFromText('POINT(14.6077 120.98202)', 4326)) 

Sprawdźmy wartości parametrów:

„PUNKT(14.6077 120.98202)” – znany tekst punktu na mapie o szerokości 14,6077 i długości 120,98202. Odpowiada to Manili, stolicy Filipin.

4326 – identyfikator odniesienia przestrzennego

Przejdźmy od razu do przykładów i wykorzystajmy ten nowy klejnot, który znaleźliśmy.

Praktyczne przykłady typów danych geograficznych serwera SQL

Będziemy mieć dwie popularne aplikacje, które pozwolą Ci zacząć korzystać z danych geograficznych.

Obliczanie odległości (najbliższy sąsiad)

Powszechne zastosowanie w geograficznych danych przestrzennych nazywa się zapytaniem najbliższego sąsiada. W tym zapytaniu chcesz wiedzieć, jak daleko lub blisko znajduje się coś od innego obiektu lub miejsca.

W moim poście o wykresie SQL opisałem, jak klient mógł znaleźć pobliskie restauracje z bieżącej lokalizacji. Odwołajmy się ponownie do tego przykładu:

-- Zapytanie o lokalizację klientaDECLARE @deliveryLocation GEOGRAPHYSELECT @deliveryLocation =Locations.GeoLocationFROM Klienci, willReceiveIn, LocationsWHERE MATCH(Klienci-(willReceiveIn)->Lokalizacje)AND Customers.CustomerID =3-- Zapytanie o restauracje w promieniu 1000 metrów od lokalizacji klientaWYBIERZ Restauracje.Nazwa,Restauracje.Opis,Restauracje.Otwarcie,Restauracje.Zamykanie,Lokalizacje.Opis,ROUND(Lokalizacje.Geolokalizacja.STDodległość(@dostawaLokalizacja),2) AS ODLEGŁOŚĆ OD restauracji, znajduje się, Lokalizacje GDZIE MATCH(Restauracje-(isLocated)->Lokalizacje)I lokalizacje.GeoLocation.STDistance(@deliveryLocation) <=1000ORDER BY Distance

Sekret tego zapytania najbliższego sąsiada to STDistance (). Potrzebuje dwóch lokalizacji geograficznych:jednej dla klienta i drugiej dla restauracji w promieniu 1000 metrów od lokalizacji klienta.

Fajne jest to, że ta sama koncepcja dotyczy innych pomysłów dotyczących dwóch lub więcej lokalizacji.

Analiza geoprzestrzenna przy użyciu Power BI

Innym zastosowaniem danych przestrzennych jest wykorzystanie ich do analizy geoprzestrzennej. W tej sekcji mamy przykład wykorzystania przypadków COVID-19 na lokalizację i prezentowania ich za pomocą usługi Power BI.

(Na marginesie, oto więcej informacji na temat tego, czym jest Power BI i jak go zainstalować)

Instalacja programu Power BI Desktop jest bezpłatna. Jedną z domyślnych wizualizacji jest wizualizacja Mapa za pomocą Bing Maps. Nie potrzebujemy współrzędnych znanych lokalizacji, takich jak kraje i stany USA. Zobacz to w poniższym przykładzie:

Zwróć uwagę na czerwone pole na rysunku 4. Szerokość i długość geograficzna są puste, ale bąbelki są dobrze narysowane na mapie.

Jednak w następnym przykładzie użyjemy regionów i miast na Filipinach. Współrzędne są niezbędne do prawidłowego wykreślenia bąbelków.

CZEGO POTRZEBUJESZ

Zanim przejdziemy do mięsistej części raportu, oto podstawowe rzeczy, których potrzebujemy:

  • Power BI Desktop
  • Wizualizacja mapy
  • Tabele i zapytania
  • Przykładowe dane

PRZYGOTOWANIE DANYCH

Przygotowywanie tabel i widoków

Na początku musimy skonfigurować kontenery na nasze dane. Dlatego potrzebujemy następujących tabel:

  1. Miasta – lista miast na Filipinach podzielonych na kategorie według regionu.
  2. Regiony – lista obszarów na Filipinach
  3. CityCase – lista zawierająca liczbę spraw dla każdego miasta.

Poniżej znajduje się struktura tabeli:

CREATE TABLE [dbo].[Miasta]([CityID] [int] IDENTITY(1,1) NOT NULL,[CityName] [varchar](50) NOT NULL,[RegionID] [int] NOT NULL,[GeoLocation] [geografia] NULL, CONSTRAINT [PK_Cities] PRIMARY KEY CLUSTERED([CityID] ASC)WITH (PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, IGNORE_DUP_KEY =OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_OPTIMALIZES_ON, [PRIMARY]) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GOCREATE TABLE [dbo].[Regiony]([RegionID] [int] IDENTITY(1,1) NOT NULL,[Region] [varchar](50) NOT NULL,[ Geolokalizacja] [geografia] NULL, OGRANICZENIE [PK_Regions] KLUCZ PODSTAWOWY ([Identyfikator regionu] ASC) Z (PAD_INDEX =WYŁ., STATISTICS_NORECOMPUTE =WYŁ., IGNORE_DUP_KEY =WYŁ., ALLOW_ROW_LOCKS =WŁ., ALLOW_PAGE_LOCKSIZE WŁ._PR., =OPTIM) ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GOCREATE TABLE [dbo].[CityCases]([CityCaseID] [int] IDENTITY(1,1) NOT NULL,[CityID] [int] NOT NULL,[Data zgłoszenia] [data] NOT NULL,[TotalCases] [int] NOT NULL,[TotalDeath s] [int] NOT NULL, OGRANICZENIE [PK_CityCases] PRIMARY KEY CLUSTERED([CityCaseID] ASC)WITH (PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, IGNORE_DUP_KEY =OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_SEPTIMLOCKS_PR_IM ]) W [PRIMARY]TABELI BRAMKARÓW [dbo].[CityCases] Z CZEKIEM OGRANICZENIA DODAWANIA [FK_CityCases_Cities] KLUCZ OBCY([CityID])REFERENCJE [dbo].[Cities] ([CityID])TABELA BRAMKARÓW [dbo].[CityCases ] SPRAWDŹ OGRANICZENIE [FK_CityCases_Cities]GO 

Ponieważ typ danych geograficznych jest nieznany w wizualizacji usługi Power BI Map, musisz utworzyć widoki. Celem jest ujawnienie szerokości i długości geograficznej z tych kolumn. Robimy to dla miast i regionów – patrz poniżej:

UTWÓRZ WIDOK vwMiastoWspółrzędneASSELECT ID miasta,Nazwa miasta,Geolokalizacja.Lat AS Szerokość geograficzna,Geolokalizacja.Długość AS Długość geograficzna,Identyfikator regionu Z miastUTWÓRZ WIDOK vwRegionCoordinatesASSELECT RegionID,Region,GeoLocation.Lat AS Latitude,GeoLocation.Long AS Longcode>F 

Otóż ​​to. Łat i Długie są właściwościami dla szerokości i długości geograficznej. Teraz można ich używać w naszym raporcie Power BI.

Budowanie danych

W następnej kolejności musisz utworzyć dane dla naszych trzech tabel.

Serdeczne podziękowania dla Ministerstwa Zdrowia Filipin za udostępnienie zbioru danych opinii publicznej. Plik jest w formacie CSV. Konwencja nazewnictwa plików to DOH COVID Data Drop_ rrrrmmdd – 04 Case Information.CSV.

Oto, jak uzyskać plik, aby lepiej wykorzystać nasz przykład:

  1. Kliknij link do zestawu danych.
  2. Wybierz folder miesiąca. Sierpień 2020 jest w danych DOH COVID (08).
  3. Wybierz datę. Na przykład 12 sierpnia 2020 r. znajduje się w DOH COVID Data Drop_2020812.
  4. Pobierz dane DOH COVID Drop_ 200812 – 04 Informacje o sprawie.CSV. Powtórz kroki 2-4, aby uzyskać raport z pozostałych dni.

Co więcej, musisz zaimportować te dane do SQL Server. Oto jak to zrobić:

  1. Otwórz plik CSV w Excelu.
  2. Dodaj kolumnę Data zgłoszenia i wypełnij wszystkie rekordy odpowiednią datą. W tym przypadku 08.10.2020.
  3. Zapisz go jako plik Excela (.xlsx).
  4. Wyeksportuj plik Excel do SQL Server do tabeli o nazwie covid_ph .

Teraz, gdy dane są gotowe w SQL Server, następnym zadaniem jest uruchomienie następującego edytora zapytań SSMS:

 INSERT INTO CityCases(CityID, DateReported, TotalCases, TotalDeaths)SELECT DISTINCT c.CityID,cp.DateReported,(SELECT COUNT(*) FROM covid_ph cp1 WHERE cp1.CityMunRes =cp.CityMunDateReported =cp1. cp.DateReported) AS TotalCases,(SELECT COUNT(*) FROM covid_ph cp1 WHERE cp1.CityMunRes =cp.CityMunRes AND cp1.DateReported =cp.DateReported AND cp1.RemovalType='DIED') AS TotalDeathsCpities covid .CityMunRes =c.NazwaMiastaZAMÓW WG cp.Data Zgłoszenia 

Tymczasem w używanym przez nas zbiorze danych nie ma współrzędnych. Dlatego ręcznie dodałem szerokość i długość geograficzną regionów i miast z latlongdata.com.

Oto dane dla regionów :

INSERT INTO Regions(Region, GeoLocation)VALUES('BARMM',geography::STGeomFromText('POINT(121.987 6.42964)', 4326)),('CAR',geography::STGeomFromText('POINT() 121.466 17.4737)', 4326)),('CARAGA',geografia::STGeomFromText('POINT(125.492 9.78604)', 4326)),('NCR',geografia::STGeomFromText('POINT(120.984 14.5995)', 4326 )),('Region I:Region Ilocos',geography::STGeomFromText('POINT(120.381 17.5553)', 4326)),('Region II:Cagayan Valley',geography::STGeomFromText('POINT(121.811 16.9754)' , 4326)),('Region III:Środkowy Luzon',geography::STGeomFromText('POINT(120.712 15.4828)', 4326)),('Region IV-A:CALABARZON',geography::STGeomFromText('POINT(121.079) 14.1008)', 4326)),('Region IV-B:MIMAROPA',geografia::STGeomFromText('POINT(118.736 9.84321)', 4326)),('Region IX:Półwysep Zamboanga',geografia::STGeomFromText(' POINT(123.259 8.15408)', 4326)),('Region V:Region Bicol',geography::STGeomFromText('POINT(123.414 13.421)', 4326)),('Region VI:Western Visayas',geography::STGeomFromText ('PUNKT(12' 2.537 11.005)', 4326)),('Region VII:Środkowe Visayas',geography::STGeomFromText('POINT(124.064 9.81687)', 4326)),('Region VIII:Eastern Visayas',geography::STGeomFromText(' POINT(125.039 12.2446)', 4326)),('Region X:Północne Mindanao',geography::STGeomFromText('POINT(124.686 8.02016)', 4326)),('Region XI:Region Davao',geography::STGeomFromText ('POINT(126.089 7.30416)', 4326)),('Region XII:SOCCSKSARGEN',geography::STGeomFromText('POINT(124.686 6.27069)', 4326)) 

Oto dane z częściowej listy miast dla Miast tabela:

INSERT INTO Cities(CityName, RegionID, GeoLocation)VALUES('CALOOCAN CITY',4,geography::STGeomFromText('POINT(120.967 14.6488)', 4326))),('CITY OF LAS PIÃ'AS ',4,geography::STGeomFromText('POINT(120.999 14.4325)', 4326)),('MIASTO MAKATI',4,geography::STGeomFromText('POINT(121.033 14.5502)', 4326)),('CITY OF MALABON',4,geography::STGeomFromText('POINT(120.957 14.6633)', 4326)),('MIASTO MANDALUYONG',4,geography::STGeomFromText('POINT(121.039 14.5771)', 4326)),( 'MIASTO MANILA',4,geography::STGeomFromText('POINT(120.982 14.6077)', 4326)),('MIASTO MARIKINA',4,geography::STGeomFromText('POINT(121.097 14.6409)', 4326)) ,('MIASTO MUNTINLUPA',4,geografia::STGeomFromText('POINT(121.05 14.4209)', 4326)),('MIASTO NAVOTAS',4,geografia::STGeomFromText('POINT(120.933 14.6775)', 4326 )),('CITY OF PARAÃ'AQUE',4,geography::STGeomFromText('POINT(121.017 14.4664)', 4326)),('CITY OF PASIG',4,geography::STGeomFromText('POINT(121.061 14.5876) )', 4326))),('MIASTO SAN JUAN',4,geografia::STGeomFromTe xt('POINT(121.037 14.6001)', 4326)),('MIASTO WALENZUELA',4,geography::STGeomFromText('POINT(120.967 14.6823)', 4326)),('PASAY CITY',4,geografia::STGeomFromText('POINT(121 14.5505)', 4326)),('PATEROS',4,geography::STGeomFromText('POINT(121.071 14.5487)', 4326)),('QUEZON CITY',4,geografia::STGeomFromText('POINT(121.033 14.633)', 4326)),('TAGUIG CITY',4,geography::STGeomFromText('POINT(121.062 14.5216)', 4326)),('ALFONSO',8,geography::STGeomFromText ('POINT(120.861 14.1214)', 4326)),('AMADEO',8,geography::STGeomFromText('POINT(120.922 14.1693)', 4326)),('BACOOR CITY',8,geography::STGeomFromText( 'POINT(120.974 14.413)', 4326)),('CARMONA',8,geography::STGeomFromText('POINT(121.041 14.3108)', 4326)),('CAVITE CITY',8,geography::STGeomFromText(' POINT(120.897 14.4791)', 4326)),('MIASTO DASMARIÃ'AS',8,geography::STGeomFromText('POINT(120.959 14.299)', 4326)),('MIASTO OGÓLNE TRIAS',8,geografia ::STGeomFromText('PUNKT(120.907 14.3214)', 4326)),('GEN. MARIANO ALVAREZ',8,geography::STGeomFromText('POINT(121.013 14.3051)', 4326)),('GENERAL EMILIO AGUINALDO',8,geography::STGeomFromText('POINT(120.792 14.1931)', 4326))),( 'IMUS CITY',8,geography::STGeomFromText('POINT(120.941 14.4064)', 4326)),('INDANG',8,geography::STGeomFromText('POINT(120.873 14.192)', 4326)),(' KAWIT',8,geography::STGeomFromText('POINT(120.904 14.441)', 4326)),('MAGALANES',8,geography::STGeomFromText('POINT(120.746 14.1583)', 4326)),('MARAGONDON' ,8,geography::STGeomFromText('POINT(120.735 14.253)', 4326)),('MENDEZ (MENDEZ-NUÃ'EZ)',8,geography::STGeomFromText('POINT(120.902 14.1312)', 4326)) ,('NAIC',8,geography::STGeomFromText('POINT(120.792 14.2965)', 4326)),('NOVELETA',8,geography::STGeomFromText('POINT(120.88 14.4279)', 4326)),( 'ROSARIO',8,geography::STGeomFromText('POINT(120.857 14.414)', 4326)),('SILANG',8,geography::STGeomFromText('POINT(120.969 14.2142)', 4326)),('TAGAYTAY MIASTO',8,geography::STGeomFromText('POINT(120.962 14.1153)', 4326)),('TANZA',8,geography::S TGeomFromText('POINT(120.85 14.3429)', 4326)),('TERNATE',8,geography::STGeomFromText('POINT(120.678 14.2714)', 4326)),('TRECE MARTRES CITY (STOLICA)',8, geography::STGeomFromText('POINT(120.868 14.2822)', 4326)) 

Teraz, gdy wszystkie dane są gotowe, jesteśmy gotowi do przygotowania raportu.

PRZYGOTOWANIE RAPORTU

Zanim zaczniemy, potrzebujemy dwóch stron raportów. Jedna strona zawiera dane dla regionu, a druga strona dla miasta.

Raport COVID-19 na region

Oto proste kroki tworzenia raportu według regionu:

  1. Połącz się z programem SQL Server z usługi Power BI. Wskaż serwer i bazę danych.
  2. Wybierz tabele i widoki potrzebne do raportu.

3. Zdefiniuj relacje – patrz Rysunek 6 poniżej. Aby uzyskać więcej informacji na temat definiowania relacji w Power BI, odwiedź tę stronę.

4. Kliknij wizualizację Mapa i wypełnij właściwości. Powiąż właściwości szerokości i długości geograficznej ze vwRegionCoordinates . Następnie podpowiedź od vwRegionCoordinates Region kolumna. I wreszcie rozmiar z CityCases Wszystkie sprawy kolumna. Zobacz rysunek 7 poniżej:

  1. Dodaj fragmentator i powiąż go z DateReported z CityCases stół.
  2. Włóż kartę i powiąż ją z TotalCases z CityCases stół
  3. Dodaj grupowy wykres słupkowy. Powiąż właściwość Axis z Regionem kolumna z vwRegionCoordinates . Następnie powiąż wartości z TotalCases kolumna z CityCases . Zobacz rysunek 8 poniżej:

Po wykonaniu powyższych kroków zobaczysz ostateczny wygląd. Powinien być podobny do rysunku 9 poniżej:

Raport COVID-19 według miasta

Pierwsza strona jest gotowa. Dodanie kolejnej strony raportu według miasta nie powinno być trudne.

Oto kroki:

  1. Dodaj nową stronę, klikając + w dolnej części okna i zmień jej nazwę Na miasto (Filipiny).
  2. Dołącz fragmentator i powiąż go z regionem z vwRegionCoordinates .
  3. Wstaw inny fragmentator i powiąż go z DateReported z CityCases .
  4. Dodaj kartę i przypisz ją do TotalCases z CityCases .
  5. Wstaw wizualizację mapy. Właściwości szerokości i długości geograficznej definiuje się na podstawie vwCityCoordinates . Etykietka pochodzi od vwCityCoordinates Nazwa miasta kolumna, a rozmiar pochodzi z CityCases Wszystkie sprawy kolumna.
  6. Dodaj skupiony wykres słupkowy i powiąż oś z CityName kolumna z vwCityCoordinates i wartości do TotalCases z CityCases .

Ostateczny wygląd raportu według miasta powinien być podobny do rysunku 10 poniżej:

A teraz, o co chodzi w używaniu map do analizy w porównaniu z patrzeniem na wykresy słupkowe lub liniowe?

Przede wszystkim nie chodzi tylko o estetykę i zaimponowanie odbiorcom efektownymi raportami. Co ważniejsze, daje im to lepsze zrozumienie danych w odniesieniu do lokalizacji.

W naszym przykładzie możesz zobaczyć, gdzie problem pandemii jest bardziej rozpowszechniony, w oparciu o wielkość baniek. Poza tym w mgnieniu oka możemy zobaczyć i porównać liczbę przypadków w różnych miejscach względem siebie. Pomoże to również urzędnikom państwowym w podejmowaniu lepszych decyzji.

Nasz przykładowy raport jest zbyt prosty, ale pokazuje, w jaki sposób typy danych geograficznych SQL Server mogą pomóc w analizie geoprzestrzennej.

Wniosek

Czy zrozumiałeś, co się w nim znajduje, używając typu danych przestrzennych geograficznych?

  • Dane przestrzenne lub geoprzestrzenne to dane dotyczące punktów znajdujących się na powierzchni Ziemi.
  • Może być używany do zapytania „najbliższy sąsiad” wyszukiwania pobliskich kin, restauracji, klubów itp.
  • Przydaje się również do analizy danych geoprzestrzennych, takiej jak raport, który stworzyliśmy w Power BI.
  • Podstawowymi elementami tworzenia instancji geograficznej są takie elementy, jak dobrze znany tekst (WKT), identyfikator odniesienia przestrzennego (SRID) i metoda STGeomFromText .

W tym poście dotknęliśmy tylko części tego, co dane przestrzenne w SQL Server mogą dla Ciebie zrobić. Możesz nie używać ich wszystkich naraz, ale najczęstsze przypadki użycia są tutaj, aby zacząć. Dlaczego nie dowiedzieć się więcej z poniższych materiałów referencyjnych firmy Microsoft?

  • Przegląd danych przestrzennych
  • Typy danych przestrzennych
  • Indeksowanie danych przestrzennych

Jeśli podoba Ci się ten post, udostępnij go swoim ulubionym platformom mediów społecznościowych.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Szyfrowanie kopii zapasowej bazy danych programu SQL Server

  2. Przestawiaj wiele kolumn na podstawie jednej kolumny w SQL Server

  3. Jak naprawić „Powiązana funkcja partycji generuje więcej partycji niż jest grup plików wymienionych w schemacie” Msg 7707 w SQL Server

  4. Najpopularniejsze systemy zarządzania bazami danych na świecie

  5. Atomic UPSERT w SQL Server 2005