Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Schemat grafu to kolekcja typów węzłów, typów krawędzi i ich właściwości definiujących strukturę grafu. Dobrze zaprojektowany schemat grafu ułatwia wykonywanie zapytań, konserwację i rozszerzanie danych. Ten artykuł zawiera najlepsze rozwiązania dotyczące przekształcania danych tabelarycznych w lakehouse w skuteczny wykres właściwości o etykietach w Microsoft Fabric.
Przed rozpoczęciem modelowania w edytorze modeli grafów należy użyć tych wytycznych. Aby uzyskać instrukcje krok po kroku dotyczące tworzenia węzłów i krawędzi, zobacz samouczek dotyczący grafu. Przykłady w tym artykule korzystają z przykładowego zestawu danych firmy Adventure Works.
Ważna
Wykres obecnie nie obsługuje ewolucji schematu. Po utworzeniu modelu grafu i załadowaniu jego danych wszelkie zmiany strukturalne, takie jak dodawanie lub usuwanie typów węzłów, typów krawędzi i właściwości, wymagają ponownego załadowania wszystkich danych przed wykonaniem zapytania o zaktualizowaną strukturę. Aby ponownie załadować dane, wybierz pozycję Zapisz na górnej wstążce. Proces ponownego ładowania danych zajmuje trochę czasu i zużywa pojemność, dlatego należy dokładnie zaplanować schemat przed rozpoczęciem modelowania.
Wymagania wstępne
- Obszar roboczy Fabric z jeziorem danych, które zawiera twoje tabele źródłowe.
- Znajomość edytora modeli grafu.
- Opcjonalnie: przykładowy zestaw danych firmy Adventure Works , aby postępować zgodnie z przykładami w tym artykule.
Omówienie typów węzłów i typów krawędzi
Przed zaprojektowaniem schematu zapoznaj się z tymi podstawowymi pojęciami:
Typ węzła definiuje rodzaj jednostki na grafie, taki jak klient, produkt lub zamówienie. Składa się z następujących elementów:
-
Etykieta węzła, która jest nazwą identyfikującą tę kategorię węzła. Na przykład
Customer. Używasz etykiety w zapytaniach, aby odwoływać się do węzłów tego typu. - To tabela źródłowa, czyli tabela w lakehouse, która dostarcza dane źródłowe dla typu węzła. Na przykład tabela adventureworks_customers .
- Kolumna kluczowa, która jednoznacznie identyfikuje każdy węzeł. Na przykład
CustomerID_K. -
Właściwości, które są kolumnami z tabeli, które można dodać jako atrybuty w każdym węźle. Na przykład
FirstName,LastNameiEmailAddress.
Węzeł to pojedyncze wystąpienie typu węzła — jeden wiersz w tabeli źródłowej. Na przykład każdy wiersz w adventureworks_customers staje się węzłem Customer .
Typ krawędzi definiuje rodzaj relacji między dwoma typami węzłów. Składa się z następujących elementów:
-
Etykieta krawędzi, czyli nazwa identyfikująca tę kategorię relacji. Na przykład
purchases. - Tabela źródłowa zawierająca dane relacji między węzłami źródłowymi i docelowymi. Na przykład tabela adventureworks_orders .
- Typ węzła źródłowego i typ węzła docelowego, które łączy krawędź. Na przykład
Customerjako źródło iOrderjako element docelowy.
Krawędź to pojedyncze wystąpienie typu krawędzi — jeden wiersz w tabeli źródłowej, który łączy dwa określone węzły.
Uwaga / Notatka
W edytorze modelu grafu przyciski Dodaj węzeł i Dodaj krawędź tworzą typy węzłów i typy krawędzi, a nie poszczególne węzły ani krawędzie.
Identyfikowanie jednostek i relacji
Zacznij od zidentyfikowania jednostek (rzeczy) i relacji (połączeń) w danych. Jednostki stają się typami węzłów. Połączenia między jednostkami stają się typami krawędzi.
Zadaj następujące pytania dotyczące tabel źródłowych:
- Jakie są jednostki podstawowe? Wiersze reprezentujące odrębne rzeczywiste obiekty są kandydatami na typy węzłów. Na przykład klienci, produkty, zamówienia i pracownicy.
- Jak te jednostki odnoszą się do siebie nawzajem? Kolumny odwołujące się do wierszy w innej tabeli (klucze obce) sugerują typy krawędzi. Na przykład
CustomerID_FKw tabeliorderswskazuje na tabelęcustomers, co sugeruje modelowanie krawędzipurchases. - Czy są wbudowane jednostki? Kolumna wewnątrz tabeli może reprezentować odrębną jednostkę, którą warto wyodrębnić do własnego typu węzła. Aby zapoznać się z przykładem, zobacz Wybieranie typów węzłów. Aby zapoznać się z przewodnikiem krok po kroku, zobacz Dodawanie wielu typów węzłów i krawędzi z jednej tabeli źródłowej.
Wybieranie typów węzłów
Utwórz typ węzła dla każdej encji, którą potrzebujesz zbadać lub przemieszczać się po niej niezależnie. Skorzystaj z następujących wytycznych:
| Ustaw jednostkę jako typ węzła , gdy... | Zachowaj ją jako właściwość, gdy... |
|---|---|
| Musisz dotrzeć do niego lub przejść przez niego. | Są to metadane opisowe przeznaczone wyłącznie do odczytu, a nie do przeszukiwania. |
| Wiele jednostek ma z nią związek. | Jest ona unikatowa dla jednostki, do niej należy. |
| Musisz dopasować lub pogrupować ją bezpośrednio w zapytaniach. | Filtrujesz według niej tylko jako właściwość innej jednostki. |
Przykład: W zestawie danych Adventure Works Country zaczyna się od kolumny w tabeli employees. Jeśli chcesz wykonać zapytanie "którzy pracownicy mieszkają w tym samym państwie?" lub "które państwa mają najwięcej pracowników?", wyodrębnij Country jako osobny typ węzła. Jeśli musisz wyświetlić tylko kraj pracownika jako etykietę, pozostaw ją jako właściwość.
Wybieranie kolumn kluczy
Każdy typ węzła wymaga kolumny klucza (lub klucza złożonego), która jednoznacznie identyfikuje każdy węzeł. Starannie wybierz klucze:
-
Użyj istniejących unikatowych identyfikatorów z tabel źródłowych. Na przykład:
CustomerID_KlubProductID_K. -
Unikaj kluczy zastępczych, które nie mają znaczenia biznesowego , chyba że nie istnieje klucz naturalny. Na przykład preferuj
CustomerIDzamiast automatycznego zwiększania numeru wiersza. -
Używaj kluczy złożonych , gdy pojedyncza kolumna nie gwarantuje unikatowości. Na przykład węzeł
ProductVersionmoże potrzebować zarównoProductID, jak iVersionNumberjako klucza. - Dopasuj typy danych między kolumnami kluczy i kolumnami kluczy obcych używanymi w mapowaniach krawędzi. Niezgodne typy powodują niepowodzenia podczas tworzenia krawędzi.
Wskazówka
Zdefiniuj ograniczenia klucza węzła, aby umożliwić aparatowi zapytań wykonywanie bezpośredniego wyszukiwania we właściwościach klucza. Ta optymalizacja przyspiesza zapytania, które wyszukują określone węzły według klucza.
Dodawanie właściwości węzła
Podczas tworzenia typu węzła wybierz właściwości z tabeli źródłowej, które mają zostać uwzględnione jako właściwości w typie węzła, szczególnie właściwości, dla których reguły dostępu do zabezpieczeń usługi OneLake zostały zastosowane do bazowej tabeli źródłowej.
Dodaj właściwości podczas tworzenia węzła za pomocą przycisku + Dodaj właściwość . Alternatywnie dodaj właściwości do istniejącego węzła, klikając dwukrotnie typ węzła w edytorze modelu grafu, aby otworzyć okno dialogowe edycji węzła i wybrać pozycję Edytuj definicję. Wybierz pozycję Dodaj właściwość, a następnie wybierz kolumny z tabeli źródłowej.
Możesz nie chcieć dodać każdej kolumny w tabeli jako właściwości. Nadmierne właściwości zwiększają wymaganą pamięć do przechowywania, spowalniają zapytania i utrudniają utrzymanie grafu. Z tych powodów należy unikać dodawania właściwości, których nie potrzebujesz w przypadku zapytań ani analiz.
Dla każdego typu węzła zachowaj tylko następujące właściwości:
- Wymagane dla unikatowości węzła (kolumny kluczy)
- Używane w
WHEREfiltrach lubRETURNprojekcjach w twoich zapytaniach - Wymagane do analizy podrzędnej lub wizualizacji
Aby uzyskać więcej informacji na temat wpływu liczby właściwości na wydajność zapytań, zobacz Zwracanie tylko potrzebnych właściwości.
Wybieranie typów danych
Wybierz najbardziej konkretny typ danych dla każdej właściwości. Odpowiednie typy zwiększają wydajność magazynu i wydajność zapytań:
- Użyj
INTlubUINT64dla identyfikatorów liczbowych i liczb. Porównania liczbowe są szybsze niż porównania ciągów. - Używaj
ZONED DATETIMEdla znaczników czasu zamiast dat sformatowanych jako ciąg. - Używaj
BOOLEANdla wartości logicznych typu true/false zamiast wartości ciągu, takich jak"yes"lub"no".
Aby uzyskać pełną listę obsługiwanych typów, zobacz Bieżące ograniczenia — typy danych.
Wybieranie typów krawędzi
Typy krawędzi definiują relacje między typami węzłów. Każdy typ krawędzi łączy typ węzła źródła z typem węzła docelowego za pośrednictwem tabeli źródłowej.
Postępuj zgodnie z następującymi wytycznymi:
-
Użyj etykiet opisowych , które są odczytywane jako czasowniki lub frazy czasownikowe. Na przykład ,
purchases,sellslivesIn, ibelongsTo. Dobrze nazwana krawędź ułatwia odczytywanie zapytań. - Uważnie zastanów się nad kierunkiem. Krawędzie w grafie są skierowane. Wybierz kierunek, który najlepiej reprezentuje relację w świecie rzeczywistym. Na przykład
Customer--zakupy — >Orderbrzmi bardziej naturalnie niżOrder--kupionePrzez — >Customer. - Nadaj unikatowe nazwy typom krawędzi, które łączą różne pary typów węzłów. Jeśli zarówno "pracownik sprzedaje zamówienie", jak i "klient kupuje zamówienie" są połączone z
Order, nadaj im nazwysellsipurchases, zamiast dawać im tę samą etykietę. Aby uzyskać więcej informacji, zobacz Ograniczenia tworzenia krawędzi.
Dodawanie właściwości do typów krawędzi
Podobnie jak w przypadku węzłów, typy krawędzi zaczynają się bez właściwości. Opcjonalnie można dodać właściwości, gdy dane opisują samą relację, a nie jeden z punktów końcowych. Właściwości krawędzi są najbardziej przydatne podczas pisania zapytań GQL, które muszą filtrować, agregować lub zwracać dane dotyczące samej relacji.
Aby dodać właściwość, kliknij dwukrotnie typ krawędzi w edytorze modelu grafu, aby otworzyć okno dialogowe edycji krawędzi, a następnie wybierz pozycję Edytuj definicję. Wybierz pozycję Dodaj właściwość, a następnie wybierz kolumny z tabeli źródłowej.
Kiedy dodać właściwości krawędzi: Jeśli kolumna odpowiada na pytanie „ile?”, „kiedy?” lub „w jaki sposób?” dotyczące połączenia między dwoma węzłami, powinna znaleźć się na krawędzi — a nie na żadnym z węzłów.
Przykład: W zestawie danych Adventure Works, krawędź łączy contains z Order za pośrednictwem tabeli Product. Kolumny, takie jak OrderQty, UnitPricei LineTotal opisują relację — ile produktów było w określonej kolejności, po jakiej cenie. Kolumny takie jak OrderDate lub ShipDate opisują kolejność i należą do typu węzła Order, a nie do krawędzi.
Ważna
Tabela źródłowa dla krawędzi musi zawierać kolumny odpowiadające kolumnom kluczowym obu typów węzłów — początkowego i docelowego — pod względem wartości i typu danych. Tabele używane do tworzenia typów węzłów mogą również służyć jako tabele źródłowe krawędzi, jeśli spełniają ten wymóg.
Typowe wzorce z tabeli na graf
W poniższej tabeli podsumowano, jak niektóre typowe struktury danych tabelarycznych tłumaczą się na elementy grafu:
| Struktura tabelaryczna | Wynik grafu | Przykład |
|---|---|---|
| Jeden do wielu: Tabela nadrzędna i tabela podrzędna z kluczem obcym | Dwa typy węzłów połączone za pomocą typu krawędzi. |
Customer
--
zakupy —>Order |
| Wiele do wielu: Tabela łącznikowa łącząca dwie tabele | Typ krawędzi między dwoma typami węzłów. |
Vendor
--
produkuje ->Product |
| Jednostka osadzona: Kolumna reprezentująca udostępnioną jednostkę | Typ wyodrębnionego węzła z krawędzią. |
Employee
--
livesIn-->Country |
| Hierarchia: Łańcuch tabel nadrzędny-podrzędny | Typy węzłów połączone przez krawędzie na każdym poziomie. |
Product
--
isOfType ->Subcategory --należy do->Category |
Aby zapoznać się z instrukcją krok po kroku dotyczącą wzorca osadzonej encji, zobacz Dodaj wiele typów węzłów i krawędzi z jednej tabeli źródłowej.
Zmienianie schematu grafu
Program Graph nie obsługuje ewolucji schematu. Po zapisaniu modelu grafu struktura typów węzłów, typów krawędzi i ich właściwości jest stała. Aby wprowadzić zmiany strukturalne — takie jak dodawanie właściwości do typu węzła, usuwanie typu krawędzi lub zmienianie kolumny klucza — należy utworzyć nowy model grafu i ponownie załadować dane.
Aby zmienić schemat grafu:
- W obszarze roboczym utwórz nowy element grafu, który łączy się z tym samym lakehouse'em.
- W edytorze modelu grafu dodaj potrzebne typy węzłów i typy krawędzi, w tym wszelkie nowe lub zmodyfikowane właściwości.
- Konfiguracja kolumn kluczowych i mapowań krawędzi. Upewnij się, że typy danych są zgodne między kolumnami kluczowymi a kolumnami kluczy obcych.
- Wybierz pozycję Zapisz , aby pozyskać dane i skompilować nowy graf.
- Zaktualizuj wszystkie zestawy zapytań, aby wskazywały nowy graf.
- Po sprawdzeniu, czy nowy graf działa zgodnie z oczekiwaniami, usuń oryginalny element grafu, jeśli go nie potrzebujesz.