Class GlobalTableDataSource

All Implemented Interfaces:
Cacheable, DataSource

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 Details

    • GlobalTableDataSource

      public GlobalTableDataSource(String name)
  • Method Details

    • isGlobal

      public boolean isGlobal()
      Description copied from interface: DataSource
      Decides if this datasource can be accessed globally.

      This means that all servers have a full copy of this datasource.

      Examples: inline table, lookup.

      Specified by:
      isGlobal in interface DataSource
      Overrides:
      isGlobal in class TableDataSource
    • isCacheable

      public boolean isCacheable(boolean isBroker)
      Query results from Broadcast datasources should not be cached on broker https://github.com/apache/druid/issues/10444
      Specified by:
      isCacheable in interface DataSource
      Overrides:
      isCacheable in class TableDataSource
    • toString

      public String toString()
      Overrides:
      toString in class TableDataSource