forked from trinodb/trino.io
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
173 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,169 @@ | ||
--- | ||
layout: episode | ||
title: "59: Querying Trino with Java and jOOQ" | ||
date: 2024-04-24 | ||
tags: trino | ||
youtube_id: "UH9adsSyV4Q" | ||
wistia_id: "kv548c9fnd" | ||
sections: | ||
- title: "Introduction and Manfred's Seattle trip" | ||
time: 0:00 | ||
- title: Trino 445 | ||
time: 1:46 | ||
- title: Our guest - Lukas Eder | ||
desc: Java expert, Java Champion and creator of jOOQ | ||
time: 3:26 | ||
- title: High-level intro to jOOQ | ||
time: 7:32 | ||
- title: data geekery history and more jOOQ architecture | ||
time: 9:32 | ||
- title: Other similar systems | ||
desc: Java ORMs, object graph persistence, and comparison with Hibernate | ||
time: 11:51 | ||
- title: jOOQ for existing databases | ||
time: 13:04 | ||
- title: Query rewriting | ||
time: 14:59 | ||
- title: Other project from data geekery | ||
time: 16:47 | ||
- title: jOOQ community, users, customers, and more | ||
time: 19:05 | ||
- title: More comparisons | ||
desc: Hibernate and MyBatis | ||
time: 21:27 | ||
- title: Download, distributions, features | ||
time: 23:42 | ||
- title: querydsl | ||
time: 26:05 | ||
- title: Support for different database | ||
desc: And discussion around SQL dialects | ||
time: 27:14 | ||
- title: Trino details | ||
desc: Mmory connector, data types, type safety, and other aspects | ||
time: 28:49 | ||
- title: Audience comment | ||
desc: Discussion about non-relational features moving to RDBMS | ||
time: 33:07 | ||
- title: Audience comment | ||
desc: User question about jOOQ and Trino support | ||
time: 35:20 | ||
- title: Trino connectors, jOOQ, testing, and issues | ||
time: 37:15 | ||
- title: Different databases and function support | ||
time: 40:42 | ||
- title: Demo | ||
desc: Including the fluent API, type safety, pojos, daos, ... | ||
time: 43:50 | ||
- title: Rounding out with announcements | ||
time: 1:01:18 | ||
- title: Trino Fest sponsors, speakers, and talks | ||
time: 1:02:16 | ||
--- | ||
|
||
## Host | ||
|
||
* [Manfred Moser](https://www.linkedin.com/in/manfredmoser), Director of Trino | ||
Community Leadership at [Starburst](https://starburst.io), | ||
([@simpligility](https://twitter.com/simpligility)) | ||
|
||
## Guest | ||
|
||
* Lukas Eder, Creator of [jOOQ](https:/jooq.org), | ||
([@lukaseder](https://twitter.com/lukaseder)) | ||
|
||
## Trino releases | ||
|
||
[Trino 445](https://trino.io/docs/current/release/release-445.html) | ||
|
||
* Add support for time travel queries with the Delta Lake connector. | ||
* Add support for the `REPLACE` modifier as part of a `CREATE TABLE` statement | ||
with the Delta Lake connector. | ||
* Add support for writing Bloom filters in Parquet files with the Hive connector. | ||
* Add support for dynamic filtering to the MongoDB connector. | ||
* Expand support for function pushdown in the Snowflake connector. | ||
|
||
## Lukas Eder and data geekery | ||
|
||
[Lukas](https://twitter.com/lukaseder) is recognized as a Java Champion and | ||
well-known as a very active member of the Java community. We chat about his | ||
history and involvement in the community of Java and related open source | ||
projects, and how it lead to [jOOQ and his company data | ||
geekery](https://www.jooq.org/). Lukas also briefly talks about other products. | ||
|
||
## jOOQ | ||
|
||
jOOQ stands for jOOQ Object Oriented Querying (jOOQ). It generates Java code | ||
from your database, and lets you build type safe SQL queries through its | ||
fluent API. | ||
|
||
All editions of jOOQ since the 3.19 release include support for Trino. The | ||
level of support depends on the used catalog and connector, and further | ||
Trino-specific enhancements are in progress. | ||
|
||
<a href="{{site.url}}/ecosystem/add-on.html#jooq"> | ||
<img src="{{site.url}}/assets/images/logos/jooq.png"> | ||
</a> | ||
|
||
In our conversation and demo session with Lukas, we cover all the following | ||
aspects and a few other topics: | ||
|
||
* What is jOOQ? | ||
* What motivated the creation of jOOQ? | ||
* Discuss the great reasons for using jOOQ: | ||
* Database first | ||
* Typesafe SQL | ||
* Code generation | ||
* Active records | ||
* Multi-tenancy | ||
* Standardization | ||
* Query lifecycle | ||
* Procedures | ||
* How does it compare to ORM system like [Hibernate](https://hibernate.org/) or | ||
others like the old [MyBatis](https://blog.mybatis.org/) | ||
* What databases are supported by jOOQ and commonly used? | ||
* Chat about some customer use cases. | ||
* Supported and required Java versions, fun with upgrades, and experience from customers. | ||
* How Lukas discovered Trino and decided to add support for it. | ||
* Challenges and interesting aspects of supporting different databases | ||
* What is next for jOOQ in general, and Trino support specifically? | ||
* Cool SQL features in Trino that might be suitable for standardization: | ||
* Higher order functions, partially [already supported in jOOQ](https://www.jooq.org/doc/dev/manual/sql-building/column-expressions/array-functions/) | ||
* Integration of object-relational database feature, such as nested | ||
collections with `ARRAY` or `LIST`. | ||
* Potential introduction of new concepts to SQL, such as `MAP`. | ||
* Complexities from Trino having different catalogs and connectors, and the | ||
catalog, schema, table hierarchy. | ||
|
||
jOOQ resources and further information: | ||
|
||
* [Website](https://www.jooq.org/) | ||
* [User group mailing list](https://groups.google.com/g/jooq-user) | ||
* [Documentation and other learning resources](https://www.jooq.org/learn/) | ||
* [Source code](https://github.com/jOOQ/jOOQ) | ||
* [Example projects](https://github.com/jOOQ/jOOQ/tree/main/jOOQ-examples) | ||
* [jOOQ on X](https://twitter.com/JavaOOQ) | ||
|
||
## Rounding out | ||
|
||
Trino Fest news: | ||
|
||
* [Great speaker lineup]({% post_url 2024-04-15-trino-fest-2024-approaches %}) announced | ||
* More to come | ||
* [Register for event and hotel now](https://www.starburst.io/info/trino-fest-2024/?utm_medium=trino&utm_source=website&utm_campaign=Global-FY25-Q2-EV-Trino-Fest-2024&utm_content=banner) | ||
* Contact us to join the Trino Contributor Congregation the next day | ||
|
||
Other news and events: | ||
|
||
* Manfred's recap of Open Source Summit NA and Data Engineer Things meeting in Seattle. | ||
* Trino Contributor Call right after the episode. | ||
* Contact us to be a guest in upcoming [Trino Community | ||
Broadcast]({{site.url}}/broadcast/index.html) episodes. | ||
|
||
If you want to learn more about Trino, check out the definitive guide from | ||
O'Reilly. You can get [the free PDF from | ||
Starburst](https://www.starburst.io/info/oreilly-trino-guide/) or buy the | ||
[English, Polish, Chinese, or Japanese | ||
edition]({{site.url}}/trino-the-definitive-guide.html). | ||
|
||
Music for the show is from the [Megaman 6 Game Play album by Krzysztof | ||
Slowikowski](https://krzysztofslowikowski.bandcamp.com/album/mega-man-6-gp). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters