public class GlobalTableDataSource extends TableDataSource
TableDataSource
variant for globally available 'broadcast' segments. If bound to a
JoinableFactory
that can create an
IndexedTable
using DruidBinders.joinableFactoryBinder, this allows
optimal usage of segments using this DataSource type in join operations (because they are global), and so can be
pushed down to historicals as a JoinDataSource
, instead of requiring a subquery join using
InlineDataSource
to construct an IndexedTable
on the fly on the
broker. Because it is also a TableDataSource
, when queried directly, or on the left hand side of a join,
they will be treated as any normal table datasource.Constructor and Description |
---|
GlobalTableDataSource(String name) |
Modifier and Type | Method and Description |
---|---|
boolean |
isGlobal()
Returns true if all servers have a full copy of this datasource.
|
String |
toString() |
create, equals, getChildren, getName, getTableNames, hashCode, isCacheable, isConcrete, withChildren
public GlobalTableDataSource(String name)
public boolean isGlobal()
DataSource
JoinableFactory
which might build a
Joinable
for this datasource directly. If a subquery 'inline' join is
required to join this datasource on the right hand side, then this value must be false for now.
In the future, instead of directly using this method, the query planner and engine should consider
JoinableFactory.isDirectlyJoinable(DataSource)
when determining if the
right hand side is directly joinable, which would allow decoupling this property from joins.isGlobal
in interface DataSource
isGlobal
in class TableDataSource
public String toString()
toString
in class TableDataSource
Copyright © 2011–2021 The Apache Software Foundation. All rights reserved.