(no title)
mavam | 2 years ago
Also a pipeline language, PRQL-inspired, but differing in that (i) TQL supports multiple data types between operators, both unstructured blocks of bytes and structured data frames as Arrow record batches, (ii) TQL is multi-schema, i.e., a single pipeline can have different "tables", as if you're processing semi-structured JSON, and (iii) TQL has support for batch and stream processing, with a light-weight indexed storage layer on top of Parquet/Feather files for historical workloads and a streaming executor. We're in the middle of getting TQL v2 [@] out of the door with support for expressions and more advanced control flow, e.g., match-case statements. There's a blog post [#] about the core design of the engine as well.
While it's a general-purpose ETL tool, we're targeting primary operational security use case where people today use Splunk, Sentinel/ADX, Elastic, etc. So some operators are very security'ish, like Sigma, YARA, or Velociraptor.
Comparison:
users
| where eventTime > minus(now(), toIntervalDay(1))
| project user_id, user_email
vs TQL: export
where eventTime > now() - 1d
select user_id, user_email
[@] https://github.com/tenzir/tenzir/blob/64ef997d736e9416e859bf...[#] https://docs.tenzir.com/blog/five-design-principles-for-buil...
No comments yet.