Skip to content

Commit

Permalink
Add TCB 59 about jOOQ
Browse files Browse the repository at this point in the history
  • Loading branch information
mosabua committed Apr 25, 2024
1 parent 7aeae85 commit ecb967b
Show file tree
Hide file tree
Showing 3 changed files with 173 additions and 8 deletions.
2 changes: 2 additions & 0 deletions _data/tools.yml
Expand Up @@ -818,6 +818,8 @@
url: https://www.jooq.org/
- urltext: jOOQ 3.19 release notes
url: https://www.jooq.org/notes
- urltext: Interview about jOOQ from Trino Community Broadcast 59
url: https://trino.io/episodes/59.html
- name: Jupy SQL
anchor: jupy-sql
category: client
Expand Down
169 changes: 169 additions & 0 deletions _episodes/59.md
@@ -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).
10 changes: 2 additions & 8 deletions broadcast/index.md
Expand Up @@ -21,14 +21,8 @@ interesting developments in the ecosystem around Trino.

<dl>

<dt>24 Apr 2024: Trino Community Broadcast 59 - jOOQ</dt>
<dd>
Java champion and all around geek, Lukas Eder, joins us to talk about Java,
Trino, and his company <a href="https://www.datageekery.com/">datageekery</a>.
We learn about their product <a href="../ecosystem/add-on.html#jooq">jOOQ</a>,
which enables you to generates Java code from your database, including Trino,
and lets you build type-safe SQL queries through its fluent API.</dd>

<dt>23 May 2024: Trino Community Broadcast 60</dt>
<dd>Topic to be determined.</dd>
</dl>

Find [more details and other events on our calendar]({{site.url}}/community.html#events).
Expand Down

0 comments on commit ecb967b

Please sign in to comment.