Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for DuckDB JDBC #1825

Closed
hvbtup opened this issue Aug 2, 2024 · 4 comments
Closed

Support for DuckDB JDBC #1825

hvbtup opened this issue Aug 2, 2024 · 4 comments
Assignees
Labels
Enhancement Small change to improve the current supported functionality
Milestone

Comments

@hvbtup
Copy link
Contributor

hvbtup commented Aug 2, 2024

DuckDB is an in-memory column-based high-performance OLAP database.
As such it could greatly improve the "BI" in BIRT.
Furthermore, it makes accessing a great variety of data sources a snap and it has excellent SQL support.

So I thought it would be great to create a sample report demonstrating how to use DuckDB to perform advanced SQL queries over Parquet or Arrow files (both are columnar storage formats).

DuckDB also can be used as a stand-alone CLI program (similar to e.g. Oracle SQL*Plus, but more advanced).

DuckDB includes a JDBC driver.

I was able to install the driver (straightforward), create a report with a data source and test the data source successfully.

However, when I try to create a JDBC Select data set, this fails with an exception

Unrecognized configuration property ",metadataBidiFormatStr"

Note: The error message above is not copy-pasted, it is what I remember from yesterday when I was at home.

What I did:

  SELECT count(*)
   FROM 'taxi_2019_04.parquet'
   WHERE pickup_at BETWEEN '2019-04-15' AND '2019-04-20'

Here, I replaced the filename with the full path.

As soon as I press OK in the DS editor, BIRT fails with the exception as described.

I don't say this is an error in BIRT. Obviously the DuckDB JDBC driver does not implement some metadata calls which BIRT seems to expect. However, it would be great if we can make this work somehow.

@speckyspooky
Copy link
Contributor

@hvbtup
Yes, I can confirm that there is a topic with the JDBC-driver.
Following your instruction I got the error the first time directly at creation moment of the DataSet
and further at the moment where I tried to store the query.

The last time as I saw the "metadataBidiFormatStr" it was very deep into the source.
I will take a look with the debuger and may be we have luck to see details which can help to find a solution of it.

grafik

grafik

@speckyspooky speckyspooky added the Enhancement Small change to improve the current supported functionality label Aug 3, 2024
@speckyspooky speckyspooky added this to the 4.17 milestone Aug 3, 2024
@speckyspooky
Copy link
Contributor

The optimization is added under PR #1827
The change include a specialized validation of the supported driver properties in compare to the given options.

This is currently the issue because the most common JDBC-driver fullfil the ODA-requirements and so it was never a topic before.

Attached a screen of the access of DuckDB-data-files:

grafik

@speckyspooky
Copy link
Contributor

The improved handling basedon the supported property validation will be available with BIRT 4.17.

@hvbtup
Copy link
Contributor Author

hvbtup commented Aug 7, 2024

Tnanks a lot, Thomas!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement Small change to improve the current supported functionality
Projects
None yet
Development

No branches or pull requests

2 participants