Operátor join napříč clustery
Spojení mezi clustery zahrnuje spojení dat z datových sad, které se nacházejí v různých clusterech.
Ve spojení mezi clustery je možné dotaz spustit na třech možných místech, z nichž každá má konkrétní označení pro referenci v celém tomto dokumentu:
- Místní cluster: Cluster, do kterého se požadavek odesílá. Označuje se také jako cluster hostující databázi v kontextu.
- Levý cluster: Cluster hostující data na levé straně operace připojení.
- Pravý cluster: Cluster hostující data na pravé straně operace připojení.
Cluster, který spouští dotaz, načte data z druhého clusteru.
Poznámka
Pokud jsou data na levé a pravé straně operace spojení hostovaná ve stejném clusteru, nepovažují se za spojení mezi clustery, a to ani v případě, že jsou data hostovaná mimo místní cluster.
Syntax
[ cluster(
Název_databáze).database(
).
_clusteru]LeftTable|
...
|
join
[ hint.remote=
Strategie ] (
[ cluster(
Název_clusteru_).database(
databáze).
]RightTable|
...
)
v podmínkách
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Typ | Vyžadováno | Popis |
---|---|---|---|
Levá tabulka | string |
✔️ | Levá tabulka nebo tabulkový výraz, jehož řádky se mají sloučit. Označuje se jako $left . |
Strategie | string |
Určuje cluster, na kterém se má provést spojení. Podporované hodnoty jsou: left , right , local a auto . Další informace najdete v tématu Strategie. |
|
Název clusteru | string |
Pokud se data pro spojení nacházejí mimo místní cluster, použijte k určení clusteru funkci cluster( ). | |
Databasename | string |
Pokud se data pro spojení nacházejí mimo kontext místní databáze, použijte k určení databáze funkci database( ). | |
RightTable | string |
✔️ | Pravá tabulka nebo tabulkový výraz, jehož řádky se mají sloučit. Označuje se jako $right . |
Podmínky | string |
✔️ | Určuje shodu řádků z tabulky LeftTable s řádky z tabulky RightTable. Pokud mají sloupce, které chcete porovnat, stejný název v obou tabulkách, použijte syntaxi ON ColumnName. V opačném případě použijte syntaxi ON $left. LeftColumn== $right. RightColumn. Pokud chcete zadat více podmínek, můžete buď použít klíčové slovo "a", nebo je oddělit čárkami. Pokud použijete čárky, podmínky se vyhodnotí pomocí logického operátoru "a". |
Strategie
Následující seznam vysvětluje podporované hodnoty parametru Strategy :
left
: Spusťte join v clusteru levé tabulky nebo levého clusteru.right
: Spusťte join v clusteru správné tabulky nebo pravého clusteru.local
: Spusťte připojení v clusteru aktuálního clusteru nebo v místním clusteru.auto
: (Výchozí) Kusto provede rozhodnutí o vzdálené komunikace.
Poznámka
Nápověda ke vzdálené komunikace spojení se ignoruje, pokud se naznačená strategie nevztahuje na operaci spojení.
Jak automatická strategie funguje
Ve výchozím nastavení strategie určuje, auto
kde se má provést připojení mezi clustery, na základě následujících pravidel:
- Pokud je některá z tabulek hostovaná v místním clusteru, provede se spojení v místním clusteru.
- Pokud jsou obě tabulky hostované mimo místní cluster, provede se spojení na správném clusteru.
Představte si následující příklady:
// Example 1
T | ... | join (cluster("B").database("DB").T2 | ...) on Col1
// Example 2
cluster("B").database("DB").T | ... | join (cluster("C").database("DB2").T2 | ...) on Col1
V případě této auto
strategie by se v místním clusteru spustil příklad 1. V příkladu 2 se za předpokladu, že ani jeden z clusterů není místním clusterem, provede se spojení na správném clusteru.
Otázky výkonu
Pro zajištění optimálního výkonu doporučujeme spustit dotaz v clusteru, který obsahuje největší tabulku.
Pojďme se znovu podívat na následující příklady:
// Example 1
T | ... | join (cluster("B").database("DB").T2 | ...) on Col1
// Example 2
cluster("B").database("DB").T | ... | join (cluster("C").database("DB2").T2 | ...) on Col1
Příklad 1 je nastavený tak, aby běžel v místním clusteru, ale pokud je datová sada vytvořená nástrojem T | ...
menší než datová sada vytvořená nástrojem cluster("B").database("DB").T2 | ...
, bylo by efektivnější spustit operaci připojení v clusteru B
, v tomto případě správném clusteru, a ne v místním clusteru.
Následující dotaz to provede pomocí right
strategie. V případě strategie se right
operace spojení provádí v pravém clusteru, i když je levá tabulka v místním clusteru.
T | ... | join hint.remote=right (cluster("B").database("DB").T2 | ...) on Col1
Související obsah
Tato funkce není ve službě Azure Monitor podporována.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro