<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>DuckDB on foojay.io - Friends Of OpenJDK</title><link>http://foojayio.github.io/website/today/category/duckdb/</link><description>Recent content in DuckDB on foojay.io - Friends Of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 08 Sep 2026 08:38:34 +0000</lastBuildDate><atom:link href="http://foojayio.github.io/website/today/category/duckdb/index.xml" rel="self" type="application/rss+xml"/><item><title>From OpenTelemetry to DuckDB</title><link>http://foojayio.github.io/website/today/from-opentelemetry-to-duckdb/</link><pubDate>Tue, 08 Sep 2026 08:29:37 +0000</pubDate><guid>http://foojayio.github.io/website/today/from-opentelemetry-to-duckdb/</guid><description>&lt;p&gt;Observability platforms generally expect you to do your analysis inside them, using their query language and their dashboards. That works for the questions you already know you have. It works less well for the ad-hoc ones: &lt;em&gt;&lt;strong&gt;a quick percentile&lt;/strong&gt;&lt;/em&gt; , &lt;em&gt;&lt;strong&gt;a pivot by status code&lt;/strong&gt;&lt;/em&gt; , or &amp;ldquo;&lt;em&gt;&lt;strong&gt;which service is actually eating the latency budget?&lt;/strong&gt;&lt;/em&gt;&amp;rdquo; once the data is in front of you.&lt;/p&gt;&#10;&lt;p&gt;This article describes a small pipeline for that kind of question. On one side is &lt;a href="https://duckdb.org" target="_blank" rel="noopener noreferrer"&gt;DuckDB&lt;/a&gt;, the in-process analytical database that reads CSV, JSON and Parquet directly. On the other is the &lt;a href="https://github.com/dash0hq/dash0-cli" target="_blank" rel="noopener noreferrer"&gt;Dash0 CLI&lt;/a&gt;, which pulls OpenTelemetry spans, logs, metrics and traces out of &lt;a href="https://www.dash0.com" target="_blank" rel="noopener noreferrer"&gt;Dash0&lt;/a&gt; and prints them as CSV or JSON.&lt;/p&gt;</description></item><item><title>NetBeans DataWrangler: Query, Convert, and Edit Data Analytics Files</title><link>http://foojayio.github.io/website/today/netbeans-datawrangler-query-convert-and-edit-data-analytics-files/</link><pubDate>Sun, 30 Aug 2026 10:25:43 +0000</pubDate><guid>http://foojayio.github.io/website/today/netbeans-datawrangler-query-convert-and-edit-data-analytics-files/</guid><description>&lt;p&gt;&lt;a href="https://github.com/geertjanw/Apache-NetBeans-Data-Wrangler" target="_blank" rel="noopener noreferrer"&gt;Apache NetBeans DataWrangler&lt;/a&gt; brings the file formats of data analytics into Apache NetBeans 31: CSV, &lt;a href="https://parquet.apache.org/" target="_blank" rel="noopener noreferrer"&gt;Apache Parquet&lt;/a&gt;, JSON and Excel, the formats exchanged with pandas, Spark, R, dbt, Power BI and Excel itself.&lt;/p&gt;&#10;&lt;p&gt;You can query, convert, inspect, edit and analyze them without leaving the IDE. They open as documents with their own views and you can query them with SQL, join, aggregate and pivot them, convert them between formats, load them into tables and export the results. The SQL editor is enhanced with code completion, documentation, error checking and quick fixes for analytical SQL.&lt;/p&gt;</description></item><item><title>Running DuckDB's JDBC Driver in a GraalVM Native Image</title><link>http://foojayio.github.io/website/today/running-duckdbs-jdbc-driver-in-a-graalvm-native-image/</link><pubDate>Sat, 29 Aug 2026 16:22:10 +0000</pubDate><guid>http://foojayio.github.io/website/today/running-duckdbs-jdbc-driver-in-a-graalvm-native-image/</guid><description>&lt;p&gt;&lt;a href="https://duckdb.org/" target="_blank" rel="noopener noreferrer"&gt;DuckDB&lt;/a&gt; is an in-process analytical database. You add one JAR to a Java project and get a SQL engine that reads CSV, Parquet, and JSON files directly, with no server to run.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://www.graalvm.org/jdk25/reference-manual/native-image/" target="_blank" rel="noopener noreferrer"&gt;GraalVM Native Image&lt;/a&gt; compiles a Java program ahead of time into a standalone executable that starts in milliseconds and needs no JVM on the target machine.&lt;/p&gt;&#10;&lt;p&gt;Combining the two produces a data tool that is distributed as a single binary, like a Go or Rust program, while using Java libraries.&lt;/p&gt;</description></item><item><title>DuckDB in Spring Batch: Replace In-Memory Java Loops with One SQL Statement</title><link>http://foojayio.github.io/website/today/duckdb-in-spring-batch-replace-in-memory-java-loops-with-one-sql-statement/</link><pubDate>Tue, 11 Aug 2026 13:34:43 +0000</pubDate><guid>http://foojayio.github.io/website/today/duckdb-in-spring-batch-replace-in-memory-java-loops-with-one-sql-statement/</guid><description>&lt;p&gt;Spring Batch jobs usually follow the same pattern: an &lt;code&gt;ItemReader&lt;/code&gt; streams rows, an &lt;code&gt;ItemProcessor&lt;/code&gt; transforms each one, and an &lt;code&gt;ItemWriter&lt;/code&gt; writes them out, chunk by chunk. A chunk-oriented step wires those three pieces together:&lt;/p&gt;&#10;&lt;pre class="EnlighterJSRAW" data-enlighter-language="generic"&gt;new StepBuilder(&amp;#34;transform&amp;#34;, jobRepository)&#10; .&amp;lt;Order, Summary&amp;gt;chunk(1_000, transactionManager)&#10; .reader(reader) // stream rows&#10; .processor(processor) // transform each row&#10; .writer(writer) // write the chunk&#10; .build();&lt;/pre&gt;&lt;p&gt;&lt;em&gt;The chunk-oriented processing model (&lt;a href="https://docs.spring.io/spring-batch/reference/step/chunk-oriented-processing.html" target="_blank" rel="noopener noreferrer"&gt;Spring Batch reference&lt;/a&gt;).&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;That pattern works well for moving records between systems.&lt;/p&gt;</description></item><item><title>Embedding DuckDB in a Maven App (and Using It for Things That Aren't Databases)</title><link>http://foojayio.github.io/website/today/embedding-duckdb-in-a-maven-app-and-using-it-for-things-that-arent-databases/</link><pubDate>Thu, 06 Aug 2026 08:46:28 +0000</pubDate><guid>http://foojayio.github.io/website/today/embedding-duckdb-in-a-maven-app-and-using-it-for-things-that-arent-databases/</guid><description>&lt;p&gt;&lt;a href="https://duckdb.org/" target="_blank" rel="noopener noreferrer"&gt;DuckDB&lt;/a&gt; is described as &amp;ldquo;SQLite for analytics,&amp;rdquo; which is true: it&amp;rsquo;s an in-process database engine that runs inside your application, with no server to install or manage. What&amp;rsquo;s less obvious from that description is that &lt;strong&gt;you can get value out of it without ever creating a database at all&lt;/strong&gt;. Because it can query CSV, JSON, and Parquet files directly — local or over HTTP — it works perfectly well as an embedded data-crunching library that happens to speak SQL.&lt;/p&gt;</description></item></channel></rss>