File formats for ES|QL Data Federation
Elastic Cloud Serverless projects are autoscaled environments, fully managed by Elastic and available on Elastic Cloud. Availability This functionality is not available in Elastic Cloud Serverless. The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats. Availability This functionality is experimental and is not ready for production usage. Experimental features may change or be removed at any time. Elastic will work to fix any issues, but experimental features are not subject to the support SLA of official GA features. Specific Support terms apply. Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.
Serverless
Unavailable
Unavailable
Stack
Experimental
9.5
…
Experimental in 9.5
ES|QL Data Federation reads Parquet, newline-delimited JSON (NDJSON), comma-separated values (CSV), and tab-separated values (TSV) files from external storage. Use the file extension, schema source, and compression support in this reference when defining a dataset.
This feature is experimental. It is not intended for production use and there are no guarantees around performance, scale, or stability in this release.
The following table compares the supported file formats:
| Format | Recognized extensions | Schema source | Compression |
|---|---|---|---|
| Parquet | .parquetThe Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats. Availability Planned We plan to add this functionality in a future Elastic Stack update. Subject to changes. Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. .parq |
File metadata | Internal per column chunk |
| NDJSON | .ndjson, .jsonl, .json |
Sampled rows | Uncompressed, gzip, or zstd |
| CSV | .csv |
Sampled rows | Uncompressed, gzip, or zstd |
| TSV | .tsv |
Sampled rows | Uncompressed, gzip, or zstd |
Scope each dataset to one file format. Elasticsearch infers the format when the resource pattern implies exactly one registered format. For example, **/*.parquet, _schema.parquet,events/**/*.parquet, and a.csv,b.csv.gz each imply one format. Compression suffixes don't count as a second format.
Set format explicitly for extensionless resources such as hits/* and for mixed patterns such as *.{parquet,csv}. Alternatively, use a resource pattern that selects one format, and create another dataset for files in a different format.
An explicit format selects the reader for every file that the resource pattern matches, including files with unrecognized extensions such as .log.gz. A file whose extension maps to a different registered format is rejected rather than skipped. For details, refer to format.
A text file can be uncompressed or compressed with a codec identified by its final extension. For example, clicks.csv, clicks.csv.gz, and clicks.csv.zst are all CSV files.
| Codec | Extensions |
|---|---|
| Uncompressed | None |
| gzip | .gz, .gzip |
| zstd | .zst, .zstd |
Parquet declares compression internally for each column chunk and does not support whole-file compression. The supported internal codecs are UNCOMPRESSED, SNAPPY, ZSTD, GZIP, LZ4_RAW, and legacy Hadoop-framed LZ4 for reading.
Parquet files include their schema in file metadata. Elasticsearch infers schemas for CSV, TSV, and NDJSON by sampling rows. Refer to schema inference to learn how Elasticsearch reconciles schemas across multiple files.