Julian Hyde

Senior Staff Engineer, Google

Julian Hyde is the original developer of Apache Calcite, which provides SQL parsers and query optimizers for dozens of products, and Morel, a new functional query language. Previously he led the query processing team at Looker (acquired by Google in 2020), and co-founded SQLstream, an engine for continuous queries. He left Google in early 2025 to create the next language for data.

Julian Hyde

Sessions / 2025 / 1 talk

  • "Never bet against SQL,” the saying goes. But what exactly do we want from a query language, and will SQL always be the right tool for the job? What separates a query language from a regular programming language like Python or a framework like Apache Spark? This talk looks at recent efforts to extend SQL with measures and pipe syntax, and then gives an introduction to Morel. Morel is an exciting language that combines the strong type system and expressive power of a functional programming language with the efficiency of a declarative query language. Morel can express not just queries but also data-intensive programming, logic programming and mathematical optimization, and has the potential to replace today’s data frameworks. This talk explores the many ways that we use query languages today – from simple lookup queries and transactions to data engineering, data science and analytics – and related areas such as data-intensive programming, mathematical optimization and logic programming.

Sessions / 2023 / 1 talk

  • If SQL is the universal language of data, why do we author our most important data applications (metrics, analytics, business intelligence) in languages other than SQL? Multidimensional databases and languages such as MDX, DAX and Tableau LOD solve these problems but introduce others: they require specialized knowledge, complicate the data pipeline and don’t integrate well. Is it possible to define and query business intelligence models in SQL? Apache Calcite has extended SQL to support metrics (which we call ‘measures’), filter context, and analytic expressions. With these concepts you can define data models (which we call Analytic Views) that contain metrics, use them in queries, and define new metrics in queries. In this talk by the original developer of Apache Calcite, we describe the SQL syntax extensions for metrics, and how to use them for cross-dimensional calculations such as period-over-period, percent-of-total, non-additive and semi-additive measures. We describe how we got around fundamental limitations in SQL semantics, and approaches for optimizing queries that use metrics.

Sessions / 2019 / 1 talk

  • How do you organize your data so that your users get the right answers at the right time? That question is a pretty good definition of data engineering — but it is also describes the purpose of every DBMS (database management system). And it’s not a coincidence that these are so similar. This talk looks at the patterns that reoccur throughout data management — such as caching, partitioning, sorting, and derived data sets. As the speaker is the author of Apache Calcite, we first look at these patterns through the lens of Relational Algebra and DBMS architecture. But then we apply these patterns to the modern data pipeline, ETL and analytics. As a case study, we look at how Looker’s “derived tables” blur the line between ETL and caching, and leverage the power of cloud databases.

Sessions / 2018 / 1 talk

  • Did you know that databases often “cheat”? Even with a scalable query engine and smart optimizer, many real-world queries would be too slow if the engine read all the data, so the engine re-writes your query to use a pre-materialized result. B-tree indexes made the first relational databases possible, and there are now many flavors of materialization, from explicit materialized views to OLAP-style caching and spatial indexes. Materialization is more relevant than ever in today’s heterogenous, distributed systems. If you are evaluating data engines, we describe what materialization features to look for in your next engine. If you are implementing an engine, we describe the features provided by Apache Calcite to design, maintain and use materializations.

Sessions / 2017 / 1 talk

  • Your queries won't run fast if your data is not organized right. Apache Calcite optimizes queries, but can we evolve it so that it can optimize data? We had to solve several challenges. Users are too busy to tell us the structure of their database, and the query load changes daily, so Calcite has to learn and adapt. We talk about new algorithms we developed for gathering statistics on massive database, and how we infer and evolve the data model based on the queries, suggesting materialized views that will make your queries run faster without you changing them.

Ready to take this stage?

The next edition is programmed by practitioners. Tell us what you built and what you learned.

Apply to be a speaker