Class ExternalSourceResolver

java.lang.Object
org.elasticsearch.xpack.esql.datasources.ExternalSourceResolver

public class ExternalSourceResolver extends Object
Resolver for external data sources (Iceberg tables, Parquet files, etc.). This runs in parallel with IndexResolver to resolve external source metadata.

Following the same pattern as IndexResolver, this resolver:

  • Takes a list of external source paths to resolve
  • Performs I/O operations to fetch metadata (from S3/Iceberg catalogs)
  • Returns ExternalSourceResolution containing resolved metadata
  • Runs asynchronously to avoid blocking

Registry-based resolution: This resolver iterates the ExternalSourceFactory instances collected by DataSourceModule to find the first factory that can handle a given path. File-based sources (Parquet, CSV) are handled by the framework-internal FileSourceFactory registered as a catch-all fallback.

Configuration handling: Query parameters are converted to a generic Map<String, Object> instead of source-specific classes like S3Configuration. This allows the SPI to remain generic while source-specific implementations can interpret the configuration as needed.