Thank you ColinLee for your work to bring the TsFile support to druid.
On Mon, Nov 2, 2026 at 10:06 AM ColinLee <[email protected]> wrote: > Hi all, > > A short follow-up to the discussion from August on adding Apache TsFile as > an input format: > > https://lists.apache.org/thread/qmrkhobp7p07wkmcf4y4myq36k866zz0 > > apache/druid#20729 has been merged into master (merged 2026-11-01 by Frank > Chen), so the community extension we agreed on is now in the tree. Thank > you for the review — it was thorough, and the extension is better for it. > > What landed > > extensions-contrib/tsfile-extensions (artifactId druid-tsfile-extensions), > adding an InputFormat of type tsfile, implemented on > org.apache.tsfile:tsfile:2.5.0 using the table-model reader. > > Batch ingestion works with both index_parallel specs and MSQ EXTERN. > tables / columns select a subset of the file; interval is pushed down and > uses the per-chunk time statistics to prune chunks. > TsFile's implicit timestamp is exposed as Time (epoch millis), so specs > use "timestampSpec": {"column": "Time", "format": "millis"}. > Docs: docs/development/extensions-contrib/tsfile.md. > > The only new Druid dependencies are org.apache.tsfile:tsfile and > org.apache.tsfile:common, both Apache-2.0; the transitive compression and > parser libraries were already shipped by Druid. TsFile 2.5.0 required xz > 1.10, which is why the root pom moved from 1.9 to 1.10 in the same PR. > > Current scope > > This first version reads the table model. Tree-model files are not > supported yet, the format is not splittable (parallelism is one file per > task from the input source), and VECTOR/OBJECT/ROW/UNKNOWN columns are > rejected with an explicit error. > > As agreed, the TsFile community maintains this extension and runs its > compatibility testing as TsFile evolves. Feedback and issues are very > welcome here or against apache/druid — we'll follow up on both. > > Best regards, > > ColinLee, Apache TsFile PMC > > > > > >
