Freigeben über


Broadcastjoin

Heute werden reguläre Joins auf einem einzelnen Clusterknoten ausgeführt. Broadcast-Join ist eine Ausführungsstrategie des Joins, die den Join über Clusterknoten verteilt. Diese Strategie ist nützlich, wenn die linke Seite des Joins klein ist (bis zu mehreren zehn MBs). In diesem Fall ist ein Broadcast-Join leistungsfähiger als ein regulärer Join.

Verwenden Sie den Nachschlageoperator , wenn die rechte Seite kleiner als die linke Seite ist. Der Suchoperator wird standardmäßig in der Broadcaststrategie ausgeführt, wenn die rechte Seite kleiner als die linke ist.

Hinweis

Wenn die linke Seite der Verknüpfung größer als mehrere zehn MBs ist, schlägt die Abfrage fehl.

Sie können die folgende Abfrage ausführen, um die Größe der linken Seite in Bytes zu schätzen:

leftSide
| summarize sum(estimate_data_size(*))

Wenn die linke Seite der Verknüpfung ein kleines Dataset ist, können Sie die Verknüpfung im Broadcastmodus mit der folgenden Syntax (hint.strategy = broadcast) ausführen:

leftSide 
| join hint.strategy = broadcast (factTable) on key

Die Leistungsverbesserung ist in Szenarien deutlicher, in denen der Join von anderen Operatoren wie summarizefolgt. Sehen Sie sich beispielsweise die folgende Abfrage an:

leftSide 
| join hint.strategy = broadcast (factTable) on Key
| summarize dcount(Messages) by Timestamp, Key