operator sprzężenia
Scal wiersze dwóch tabel, aby utworzyć nową tabelę, pasując do wartości określonych kolumn z każdej tabeli.
język zapytań Kusto (KQL) oferuje wiele rodzajów sprzężeń, które wpływają na schemat i wiersze w wynikowej tabeli na różne sposoby. Jeśli na przykład używasz inner
sprzężenia, tabela ma te same kolumny co lewa tabela oraz kolumny z prawej tabeli. Aby uzyskać najlepszą wydajność, jeśli jedna tabela jest zawsze mniejsza niż druga, użyj jej jako lewej join
strony operatora.
Na poniższej ilustracji przedstawiono wizualną reprezentację operacji wykonywanej przez każde sprzężenia.
Składnia
LeftTable|
join
[ JoinFlavor ] [=
kind
Wskazówki ] (
Warunki RightTable)
on
Dowiedz się więcej o konwencjach składniowych.
Parametry
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
LeftTable | string |
✔️ | Lewa tabela lub wyrażenie tabelaryczne, czasami nazywane tabelą zewnętrzną, której wiersze mają być scalane. Oznaczono jako $left . |
JoinFlavor | string |
Typ sprzężenia do wykonania: innerunique , , leftouter inner , rightouter fullouter rightanti leftanti , leftsemi , . rightsemi Wartość domyślna to innerunique . Aby uzyskać więcej informacji na temat smaków sprzężenia, zobacz Zwracanie. |
|
Wskazówki | string |
Zero lub więcej wskazówek sprzężenia rozdzielanego spacjami w postaci wartości nazwy= , która kontroluje zachowanie operacji dopasowania wiersza i planu wykonywania. Aby uzyskać więcej informacji, zobacz Wskazówki. |
|
RightTable | string |
✔️ | Właściwa tabela lub wyrażenie tabelaryczne, czasami nazywane tabelą wewnętrzną, której wiersze mają być scalane. Oznaczono jako $right . |
Warunki | string |
✔️ | Określa, jak wiersze z tabeli LeftTable są dopasowywane do wierszy z tabeli RightTable. Jeśli kolumny, które chcesz dopasować, mają taką samą nazwę w obu tabelach, użyj składni ON ColumnName. W przeciwnym razie użyj składni ON $left. LeftColumn RightColumn== $right. . Aby określić wiele warunków, możesz użyć słowa kluczowego "and" lub oddzielić je przecinkami. Jeśli używasz przecinków, warunki są oceniane przy użyciu operatora logicznego "i". |
Porada
Aby uzyskać najlepszą wydajność, jeśli jedna tabela jest zawsze mniejsza niż druga, użyj jej jako lewej strony sprzężenia.
Wskazówki
Klucz wskazówki | Wartości | Opis |
---|---|---|
hint.remote |
auto , left , local , right |
Zobacz sprzężenia między klastrami |
hint.strategy=broadcast |
Określa sposób udostępniania obciążenia zapytania w węzłach klastra. | Zobacz dołączanie do emisji |
hint.shufflekey=<key> |
shufflekey Zapytanie współudzieli obciążenie zapytania w węzłach klastra przy użyciu klucza do partycjonowania danych. |
Zobacz zapytanie shuffle |
hint.strategy=shuffle |
shuffle Zapytanie strategii współdzieli obciążenie zapytania w węzłach klastra, gdzie każdy węzeł przetwarza jedną partycję danych. |
Zobacz zapytanie shuffle |
Nazwa | Wartości | Opis |
---|---|---|
hint.remote |
auto , left , local , right |
|
hint.strategy=broadcast |
Określa sposób udostępniania obciążenia zapytania w węzłach klastra. | Zobacz dołączanie do emisji |
hint.shufflekey=<key> |
shufflekey Zapytanie współudzieli obciążenie zapytania w węzłach klastra przy użyciu klucza do partycjonowania danych. |
Zobacz zapytanie shuffle |
hint.strategy=shuffle |
shuffle Zapytanie strategii współdzieli obciążenie zapytania w węzłach klastra, gdzie każdy węzeł przetwarza jedną partycję danych. |
Zobacz zapytanie shuffle |
Uwaga
Wskazówki sprzężenia nie zmieniają semantyki, join
ale mogą mieć wpływ na wydajność.
Zwraca
Schemat powrotny i wiersze zależą od smaku sprzężenia. Smak sprzężenia jest określony za pomocą słowa kluczowego kind . W poniższej tabeli przedstawiono obsługiwane smaki sprzężenia. Aby wyświetlić przykłady konkretnego smaku sprzężenia, wybierz link w kolumnie sprzężenia .
Sprzężenia smak | Zwraca | Ilustracji |
---|---|---|
innerunique (ustawienie domyślne) | Sprzężenie wewnętrzne z deduplikacją po lewej stronie Schemat: Wszystkie kolumny z obu tabel, w tym pasujące klucze Wiersze: wszystkie deduplikowane wiersze z lewej tabeli, które pasują do wierszy z prawej tabeli |
|
Wewnętrzny | Standardowe sprzężenie wewnętrzne Schemat: Wszystkie kolumny z obu tabel, w tym pasujące klucze Wiersze: tylko pasujące wiersze z obu tabel |
|
leftouter | Lewe sprzężenie zewnętrzne Schemat: Wszystkie kolumny z obu tabel, w tym pasujące klucze Wiersze: wszystkie rekordy z lewej tabeli i tylko pasujące wiersze z prawej tabeli |
|
rightouter | Prawe sprzężenie zewnętrzne Schemat: Wszystkie kolumny z obu tabel, w tym pasujące klucze Wiersze: Wszystkie rekordy z prawej tabeli i tylko pasujące wiersze z lewej tabeli |
|
fullouter | Pełne sprzężenie zewnętrzne Schemat: Wszystkie kolumny z obu tabel, w tym pasujące klucze Wiersze: wszystkie rekordy z obu tabel z niezgodnymi komórkami wypełnionymi wartością null |
|
leftsemi | Lewe sprzężenia półsprzężenia Schemat: wszystkie kolumny z lewej tabeli Wiersze: wszystkie rekordy z tabeli po lewej stronie pasujące do rekordów z prawej tabeli |
|
leftanti , anti , leftantisemi |
Lewy antysprzężenia i wariant półprzeciągowy Schemat: wszystkie kolumny z lewej tabeli Wiersze: wszystkie rekordy z lewej tabeli, które nie pasują do rekordów z prawej tabeli |
|
rightsemi | Prawe sprzężenia częściowe Schemat: wszystkie kolumny z prawej tabeli Wiersze: wszystkie rekordy z prawej tabeli, które pasują do rekordów z lewej tabeli |
|
rightanti , rightantisemi |
Prawy antysprzężenia i wariant półprzestępy Schemat: wszystkie kolumny z prawej tabeli Wiersze: wszystkie rekordy z prawej tabeli, które nie pasują do rekordów z lewej tabeli |
Sprzężenia krzyżowe
KQL nie zapewnia smaku sprzężenia krzyżowego. Można jednak osiągnąć efekt sprzężenia krzyżowego przy użyciu metody klucza zastępczego.
W poniższym przykładzie klucz zastępczy jest dodawany do obu tabel, a następnie używany do operacji sprzężenia wewnętrznego, skutecznie osiągając zachowanie przypominające sprzężenie krzyżowe:
X | extend placeholder=1 | join kind=inner (Y | extend placeholder=1) on placeholder
Zawartość pokrewna
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla