Skip to main content

Optimizing Join with Colocate Group

Defining colocate group is an efficient way of Join, through which the execution engine can effectively avoid the transmission overhead of input data in Join operations (for an introduction to Colocate Group, see JOIN)

However, in some use cases, even if a Colocate Group has been successfully established, the execution plan may still show as Shuffle Join or Bucket Shuffle Join. This situation typically occurs when Doris is in the process of data organization, for instance, it may be migrating tablets between BE to ensure a more balanced distribution of data across multiple BE.

You can view the Colocate Group status using the command show proc "/colocation_group"; as shown in the figure below: If IsStable appears as false, it indicates that there are unavailable colocation_group instances.

Optimizing Join with Colocate Group