<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Matt Martin's Substack]]></title><description><![CDATA[Matt's substack on high performance data engineering topics]]></description><link>https://performancede.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!e_gM!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6cfb160-fc5c-4efe-8fb0-93e984c961dd_1040x1040.png</url><title>Matt Martin&apos;s Substack</title><link>https://performancede.substack.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 05 Apr 2026 14:25:47 GMT</lastBuildDate><atom:link href="https://performancede.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Matt Martin]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[performancede@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[performancede@substack.com]]></itunes:email><itunes:name><![CDATA[Matt Martin]]></itunes:name></itunes:owner><itunes:author><![CDATA[Matt Martin]]></itunes:author><googleplay:owner><![CDATA[performancede@substack.com]]></googleplay:owner><googleplay:email><![CDATA[performancede@substack.com]]></googleplay:email><googleplay:author><![CDATA[Matt Martin]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[DuckDB 1.5 And Iceberg]]></title><description><![CDATA[AWS Glue Catalog Gets A Facelift]]></description><link>https://performancede.substack.com/p/duckdb-15-and-iceberg</link><guid isPermaLink="false">https://performancede.substack.com/p/duckdb-15-and-iceberg</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Fri, 13 Mar 2026 12:36:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aWG4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3051514d-25e5-4155-9e57-eac16f3fcb8c_1024x1536.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aWG4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3051514d-25e5-4155-9e57-eac16f3fcb8c_1024x1536.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aWG4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3051514d-25e5-4155-9e57-eac16f3fcb8c_1024x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!aWG4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3051514d-25e5-4155-9e57-eac16f3fcb8c_1024x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!aWG4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3051514d-25e5-4155-9e57-eac16f3fcb8c_1024x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!aWG4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3051514d-25e5-4155-9e57-eac16f3fcb8c_1024x1536.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aWG4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3051514d-25e5-4155-9e57-eac16f3fcb8c_1024x1536.heic" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3051514d-25e5-4155-9e57-eac16f3fcb8c_1024x1536.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:342898,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/190826568?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3051514d-25e5-4155-9e57-eac16f3fcb8c_1024x1536.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aWG4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3051514d-25e5-4155-9e57-eac16f3fcb8c_1024x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!aWG4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3051514d-25e5-4155-9e57-eac16f3fcb8c_1024x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!aWG4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3051514d-25e5-4155-9e57-eac16f3fcb8c_1024x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!aWG4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3051514d-25e5-4155-9e57-eac16f3fcb8c_1024x1536.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>For a while now, the DuckDB Iceberg extension has had great support for AWS S3 Tables (AWS&#8217;s managed Iceberg table experience); you can perform basic CRUD operations such as create a table, insert, update, and delete. I wrote about this a few months ago <a href="https://performancede.substack.com/p/aws-s3-tables-and-duckdb">here</a>; but for many that have been on the AWS stack for a while, you all know well that S3 Tables are still relatively new and arrived years after AWS started supporting Iceberg tables in their regular Glue catalogs. But DuckDB and their Iceberg extension had not been focused on this &#8220;legacy&#8221; glue stuff&#8230;until now :). </p><p>The DuckDB 1.5 update brought a significant update to standard AWS glue catalogs, which this article will cover. We will demonstrate how to connect to a regular glue catalog, create new Iceberg tables, run inserts, updates, and deletes on them.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://performancede.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Matt Martin's Substack is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Connecting to the Catalog</h2><p>To connect to a standard glue iceberg catalog with DuckDB, this is all it takes:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Irb-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75db2a0-df17-4928-b6bf-dfa208d96dc6_1426x652.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Irb-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75db2a0-df17-4928-b6bf-dfa208d96dc6_1426x652.heic 424w, https://substackcdn.com/image/fetch/$s_!Irb-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75db2a0-df17-4928-b6bf-dfa208d96dc6_1426x652.heic 848w, https://substackcdn.com/image/fetch/$s_!Irb-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75db2a0-df17-4928-b6bf-dfa208d96dc6_1426x652.heic 1272w, https://substackcdn.com/image/fetch/$s_!Irb-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75db2a0-df17-4928-b6bf-dfa208d96dc6_1426x652.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Irb-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75db2a0-df17-4928-b6bf-dfa208d96dc6_1426x652.heic" width="1426" height="652" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e75db2a0-df17-4928-b6bf-dfa208d96dc6_1426x652.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:652,&quot;width&quot;:1426,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:43569,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/190826568?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75db2a0-df17-4928-b6bf-dfa208d96dc6_1426x652.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Irb-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75db2a0-df17-4928-b6bf-dfa208d96dc6_1426x652.heic 424w, https://substackcdn.com/image/fetch/$s_!Irb-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75db2a0-df17-4928-b6bf-dfa208d96dc6_1426x652.heic 848w, https://substackcdn.com/image/fetch/$s_!Irb-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75db2a0-df17-4928-b6bf-dfa208d96dc6_1426x652.heic 1272w, https://substackcdn.com/image/fetch/$s_!Irb-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75db2a0-df17-4928-b6bf-dfa208d96dc6_1426x652.heic 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;m using the credential chain to authenticate to AWS, which IMO is best practice here vs. using an IAM user with persistent access keys. </p><h2>Creating the Table</h2><p>The major update that DuckDB V1.5 and iceberg brought was the ability to specify a location for an Iceberg table in the SQL using the &#8220;WITH&#8221; predicate. This feature was not necessary with S3 Tables, since the location was built into the backend ARN. Also, DuckDB enabled CTAS operations, which is rather interesting, given that AWS&#8217;s official docs located <a href="https://docs.aws.amazon.com/glue/latest/dg/iceberg-rest-apis.html">here</a> indicate that their Iceberg rest endpoint does not support this (see section on creating a table and the remark on &#8220;stage create&#8221;). Gotta give it to the Duck and its parsing gymnastics to get the job done:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JbjP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9e50ede-9098-41a7-97d2-51c3203b259a_1238x652.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JbjP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9e50ede-9098-41a7-97d2-51c3203b259a_1238x652.heic 424w, https://substackcdn.com/image/fetch/$s_!JbjP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9e50ede-9098-41a7-97d2-51c3203b259a_1238x652.heic 848w, https://substackcdn.com/image/fetch/$s_!JbjP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9e50ede-9098-41a7-97d2-51c3203b259a_1238x652.heic 1272w, https://substackcdn.com/image/fetch/$s_!JbjP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9e50ede-9098-41a7-97d2-51c3203b259a_1238x652.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JbjP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9e50ede-9098-41a7-97d2-51c3203b259a_1238x652.heic" width="1238" height="652" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e9e50ede-9098-41a7-97d2-51c3203b259a_1238x652.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:652,&quot;width&quot;:1238,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:28493,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/190826568?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9e50ede-9098-41a7-97d2-51c3203b259a_1238x652.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JbjP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9e50ede-9098-41a7-97d2-51c3203b259a_1238x652.heic 424w, https://substackcdn.com/image/fetch/$s_!JbjP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9e50ede-9098-41a7-97d2-51c3203b259a_1238x652.heic 848w, https://substackcdn.com/image/fetch/$s_!JbjP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9e50ede-9098-41a7-97d2-51c3203b259a_1238x652.heic 1272w, https://substackcdn.com/image/fetch/$s_!JbjP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9e50ede-9098-41a7-97d2-51c3203b259a_1238x652.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Basic CRUD Operations</h2><p>As I mentioned before, we can also perform INSERT/UPDATE/DELETE operations on these tables like so:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7Neb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28a40b86-752f-41aa-b644-ba5106c785ea_1568x436.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7Neb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28a40b86-752f-41aa-b644-ba5106c785ea_1568x436.heic 424w, https://substackcdn.com/image/fetch/$s_!7Neb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28a40b86-752f-41aa-b644-ba5106c785ea_1568x436.heic 848w, https://substackcdn.com/image/fetch/$s_!7Neb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28a40b86-752f-41aa-b644-ba5106c785ea_1568x436.heic 1272w, https://substackcdn.com/image/fetch/$s_!7Neb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28a40b86-752f-41aa-b644-ba5106c785ea_1568x436.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7Neb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28a40b86-752f-41aa-b644-ba5106c785ea_1568x436.heic" width="1456" height="405" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/28a40b86-752f-41aa-b644-ba5106c785ea_1568x436.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:405,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36716,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/190826568?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28a40b86-752f-41aa-b644-ba5106c785ea_1568x436.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7Neb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28a40b86-752f-41aa-b644-ba5106c785ea_1568x436.heic 424w, https://substackcdn.com/image/fetch/$s_!7Neb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28a40b86-752f-41aa-b644-ba5106c785ea_1568x436.heic 848w, https://substackcdn.com/image/fetch/$s_!7Neb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28a40b86-752f-41aa-b644-ba5106c785ea_1568x436.heic 1272w, https://substackcdn.com/image/fetch/$s_!7Neb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28a40b86-752f-41aa-b644-ba5106c785ea_1568x436.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>And Now&#8230;Let&#8217;s See The Results</h2><p>Voila&#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YwBx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09230ee5-5e39-4c79-86e3-ed0cd198314c_668x368.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YwBx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09230ee5-5e39-4c79-86e3-ed0cd198314c_668x368.png 424w, https://substackcdn.com/image/fetch/$s_!YwBx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09230ee5-5e39-4c79-86e3-ed0cd198314c_668x368.png 848w, https://substackcdn.com/image/fetch/$s_!YwBx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09230ee5-5e39-4c79-86e3-ed0cd198314c_668x368.png 1272w, https://substackcdn.com/image/fetch/$s_!YwBx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09230ee5-5e39-4c79-86e3-ed0cd198314c_668x368.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YwBx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09230ee5-5e39-4c79-86e3-ed0cd198314c_668x368.png" width="668" height="368" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/09230ee5-5e39-4c79-86e3-ed0cd198314c_668x368.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:368,&quot;width&quot;:668,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61368,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/190826568?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09230ee5-5e39-4c79-86e3-ed0cd198314c_668x368.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YwBx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09230ee5-5e39-4c79-86e3-ed0cd198314c_668x368.png 424w, https://substackcdn.com/image/fetch/$s_!YwBx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09230ee5-5e39-4c79-86e3-ed0cd198314c_668x368.png 848w, https://substackcdn.com/image/fetch/$s_!YwBx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09230ee5-5e39-4c79-86e3-ed0cd198314c_668x368.png 1272w, https://substackcdn.com/image/fetch/$s_!YwBx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09230ee5-5e39-4c79-86e3-ed0cd198314c_668x368.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>A Gotcha</h2><p>One thing I noticed is that when I attempted to drop the table before creating it via a &#8220;DROP TABLE IF EXISTS&#8221;, it kind of worked if the table was already there. But if it was missing, I got some weird HTTP error. Thus, as a workaround, I instead wrote 2 functions to use the GLUE Api to nuke the table and the S3 API to delete all its supporting files. Running that prior to creating the table makes the process repeatable with no errors. Below is the code that does that:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IanP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd44c73a-4170-46fe-a66b-9abae2505b44_1310x796.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IanP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd44c73a-4170-46fe-a66b-9abae2505b44_1310x796.heic 424w, https://substackcdn.com/image/fetch/$s_!IanP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd44c73a-4170-46fe-a66b-9abae2505b44_1310x796.heic 848w, https://substackcdn.com/image/fetch/$s_!IanP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd44c73a-4170-46fe-a66b-9abae2505b44_1310x796.heic 1272w, https://substackcdn.com/image/fetch/$s_!IanP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd44c73a-4170-46fe-a66b-9abae2505b44_1310x796.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IanP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd44c73a-4170-46fe-a66b-9abae2505b44_1310x796.heic" width="1310" height="796" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bd44c73a-4170-46fe-a66b-9abae2505b44_1310x796.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:796,&quot;width&quot;:1310,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69149,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/190826568?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd44c73a-4170-46fe-a66b-9abae2505b44_1310x796.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IanP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd44c73a-4170-46fe-a66b-9abae2505b44_1310x796.heic 424w, https://substackcdn.com/image/fetch/$s_!IanP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd44c73a-4170-46fe-a66b-9abae2505b44_1310x796.heic 848w, https://substackcdn.com/image/fetch/$s_!IanP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd44c73a-4170-46fe-a66b-9abae2505b44_1310x796.heic 1272w, https://substackcdn.com/image/fetch/$s_!IanP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd44c73a-4170-46fe-a66b-9abae2505b44_1310x796.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Additional Remarks</h2><p>I also tested these 2 CRUD operations, which did not work:</p><ul><li><p>CREATE OR REPLACE TABLE AS&#8230;</p></li><li><p>MERGE INTO</p></li></ul><p>The good new is that after testing those 2 operations, I filed these issues <a href="https://github.com/duckdb/duckdb-iceberg/issues/787">here</a> and <a href="https://github.com/duckdb/duckdb-iceberg/issues/784">here</a> on the official duckdb-iceberg extension repo and got a quick response that these were in the works, which is great to hear. Like I&#8217;ve said many times, I think with just a little more time, the DuckDB Iceberg extension will be nearly feature complete. The 1.5 release was a giant leap forward IMO.</p><p><a href="https://github.com/mattmartin14/dream_machine/blob/main/substack/articles/2026.03.13-duckdb_iceberg_glue_v2/test.py">THE CODE</a></p><p>Thanks for reading,</p><p>Matt</p><p></p>]]></content:encoded></item><item><title><![CDATA[DuckLake and BI Tools]]></title><description><![CDATA[Yep, it Works]]></description><link>https://performancede.substack.com/p/ducklake-and-bi-tools</link><guid isPermaLink="false">https://performancede.substack.com/p/ducklake-and-bi-tools</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Fri, 27 Feb 2026 16:19:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!6zIi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b15edf4-3dbf-4aef-90d2-158e2df79fce_1024x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6zIi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b15edf4-3dbf-4aef-90d2-158e2df79fce_1024x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6zIi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b15edf4-3dbf-4aef-90d2-158e2df79fce_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!6zIi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b15edf4-3dbf-4aef-90d2-158e2df79fce_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!6zIi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b15edf4-3dbf-4aef-90d2-158e2df79fce_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!6zIi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b15edf4-3dbf-4aef-90d2-158e2df79fce_1024x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6zIi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b15edf4-3dbf-4aef-90d2-158e2df79fce_1024x1024.heic" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9b15edf4-3dbf-4aef-90d2-158e2df79fce_1024x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:157331,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/189372680?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b15edf4-3dbf-4aef-90d2-158e2df79fce_1024x1024.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6zIi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b15edf4-3dbf-4aef-90d2-158e2df79fce_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!6zIi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b15edf4-3dbf-4aef-90d2-158e2df79fce_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!6zIi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b15edf4-3dbf-4aef-90d2-158e2df79fce_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!6zIi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b15edf4-3dbf-4aef-90d2-158e2df79fce_1024x1024.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I think it&#8217;s no secret at this point, but if you saw my post the other day or the LinkedIn announcement, you&#8217;d know that Alex and I are hard at work on the O&#8217;Reilly book titled &#8220;DuckLake - The Definitive Guide&#8221;. With that being said, when Ducklake first came out in 2025, I was amazed at how easy it was to get up and running; but like most data warehousing/&#8220;lake-housing&#8221; I&#8217;ve done in the past, I always am curious on how these implementations look on downstream BI tools. Because let&#8217;s be honest folks:</p><div class="pullquote"><p><em>&#8220;Your data is worthless if it can&#8217;t be analyzed&#8221;</em></p></div><p>Some might scoff at such a statement and say &#8220;how dare you&#8221;, but I would respond with &#8220;why go through the effort to curate this data if no one is going to use it to make informed decisions?&#8221;</p><p>Anyways, today&#8217;s article shows how to get DuckLake to talk to Tableau Desktop.</p><blockquote><p>Side Note - Out of all the BI tools I&#8217;ve used (I&#8217;ve used most of them), Tableau is by far the easiest and most intuitive. That&#8217;s just my opinion though</p></blockquote><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://performancede.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Matt Martin's Substack is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h2>Step 1: Let&#8217;s Build a DuckLake</h2><p>For today&#8217;s article, I will use a python script and duckDB to build out some fake datasets - a classic order header and detail, with the theme of this one being a store that sells flashlights. Honestly though, thanks to the advancements in LLM&#8217;s over the last year, I just gave copilot and GPT 5.3 codex this prompt and it generated the python script in less than 10 seconds:</p><div class="pullquote"><p>&#8220;i&#8217;m using uv and duckdb; i want a python script here that leverages duckdb to create a couple data files in csv; an order header and and order detail; the order detail data needs to join to the order header; the order data theme is a flashlight store; it needs things like order id, order date, order year, order month, sku, order amount, quantity; stuff like that; i want as a param to specify the number of orders i want it to generate&#8221;</p></div><p>Once the script was ready, all I had to do was run this in terminal:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XSXy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca72739-d011-4595-81f7-484dcdb91ee3_1222x322.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XSXy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca72739-d011-4595-81f7-484dcdb91ee3_1222x322.heic 424w, https://substackcdn.com/image/fetch/$s_!XSXy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca72739-d011-4595-81f7-484dcdb91ee3_1222x322.heic 848w, https://substackcdn.com/image/fetch/$s_!XSXy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca72739-d011-4595-81f7-484dcdb91ee3_1222x322.heic 1272w, https://substackcdn.com/image/fetch/$s_!XSXy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca72739-d011-4595-81f7-484dcdb91ee3_1222x322.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XSXy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca72739-d011-4595-81f7-484dcdb91ee3_1222x322.heic" width="1222" height="322" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ca72739-d011-4595-81f7-484dcdb91ee3_1222x322.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:322,&quot;width&quot;:1222,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11008,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/189372680?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca72739-d011-4595-81f7-484dcdb91ee3_1222x322.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XSXy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca72739-d011-4595-81f7-484dcdb91ee3_1222x322.heic 424w, https://substackcdn.com/image/fetch/$s_!XSXy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca72739-d011-4595-81f7-484dcdb91ee3_1222x322.heic 848w, https://substackcdn.com/image/fetch/$s_!XSXy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca72739-d011-4595-81f7-484dcdb91ee3_1222x322.heic 1272w, https://substackcdn.com/image/fetch/$s_!XSXy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca72739-d011-4595-81f7-484dcdb91ee3_1222x322.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And voila - 2 csv&#8217;s were generated. Now onto the funner part - let&#8217;s load this data to some ducklake tables in AWS. To do that, all you need is a simple script like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nmdO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b4cf8a-e9e1-442d-9c98-4994624dd9fa_2134x688.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nmdO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b4cf8a-e9e1-442d-9c98-4994624dd9fa_2134x688.heic 424w, https://substackcdn.com/image/fetch/$s_!nmdO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b4cf8a-e9e1-442d-9c98-4994624dd9fa_2134x688.heic 848w, https://substackcdn.com/image/fetch/$s_!nmdO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b4cf8a-e9e1-442d-9c98-4994624dd9fa_2134x688.heic 1272w, https://substackcdn.com/image/fetch/$s_!nmdO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b4cf8a-e9e1-442d-9c98-4994624dd9fa_2134x688.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nmdO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b4cf8a-e9e1-442d-9c98-4994624dd9fa_2134x688.heic" width="1456" height="469" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9b4cf8a-e9e1-442d-9c98-4994624dd9fa_2134x688.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:469,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:55554,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/189372680?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b4cf8a-e9e1-442d-9c98-4994624dd9fa_2134x688.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nmdO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b4cf8a-e9e1-442d-9c98-4994624dd9fa_2134x688.heic 424w, https://substackcdn.com/image/fetch/$s_!nmdO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b4cf8a-e9e1-442d-9c98-4994624dd9fa_2134x688.heic 848w, https://substackcdn.com/image/fetch/$s_!nmdO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b4cf8a-e9e1-442d-9c98-4994624dd9fa_2134x688.heic 1272w, https://substackcdn.com/image/fetch/$s_!nmdO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b4cf8a-e9e1-442d-9c98-4994624dd9fa_2134x688.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I ran that in the duckdb CLI and within a couple seconds, my ducklake catalog was created and the CSV data was slingshotted up to S3 from my laptop. Simply amazing at how brain-dead easy this is.</p><h2>Ok - We Have Our Lakehouse - But What About Tableau?</h2><p>Tableau desktop can be downloaded as a free trial, which is what I did. And DuckDB has good documentation that can be found <a href="https://duckdb.org/docs/stable/guides/data_viewers/tableau">here</a> that shows how to connect to Tableau. So for my first attempt, I clicked on the &#8220;Other (JDBC)&#8221; connector for tableau, set the dialect to Postgres on the drop down and then connected to a duckdb database like this: </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Mdgh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03078603-ad0e-4449-bd7f-2ba3434ba26c_842x786.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Mdgh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03078603-ad0e-4449-bd7f-2ba3434ba26c_842x786.png 424w, https://substackcdn.com/image/fetch/$s_!Mdgh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03078603-ad0e-4449-bd7f-2ba3434ba26c_842x786.png 848w, https://substackcdn.com/image/fetch/$s_!Mdgh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03078603-ad0e-4449-bd7f-2ba3434ba26c_842x786.png 1272w, https://substackcdn.com/image/fetch/$s_!Mdgh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03078603-ad0e-4449-bd7f-2ba3434ba26c_842x786.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Mdgh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03078603-ad0e-4449-bd7f-2ba3434ba26c_842x786.png" width="842" height="786" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03078603-ad0e-4449-bd7f-2ba3434ba26c_842x786.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:786,&quot;width&quot;:842,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:60703,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/189372680?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03078603-ad0e-4449-bd7f-2ba3434ba26c_842x786.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Mdgh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03078603-ad0e-4449-bd7f-2ba3434ba26c_842x786.png 424w, https://substackcdn.com/image/fetch/$s_!Mdgh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03078603-ad0e-4449-bd7f-2ba3434ba26c_842x786.png 848w, https://substackcdn.com/image/fetch/$s_!Mdgh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03078603-ad0e-4449-bd7f-2ba3434ba26c_842x786.png 1272w, https://substackcdn.com/image/fetch/$s_!Mdgh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03078603-ad0e-4449-bd7f-2ba3434ba26c_842x786.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The connection worked fine, but then here was the fundamental problem:</p><div class="pullquote"><p>How Do I now add in my AWS creds and attach my ducklake catalog?</p></div><p>After some snooping around on Google and consulting some experts, the only real solution would be to use a Tableau connector that would support an &#8220;initial SQL&#8221; statement e.g. when you connect, run this command first before connecting to the actual database.</p><p>But then lo and behold, if you read further down on DuckDB&#8217;s Tableau documentation, MotherDuck has put out their own custom connector for Tableau that does allow an init sql statement. So I figured, is this all I need? Let&#8217;s go try:</p><ol><li><p>Download this &#8220;taco&#8221; file from <a href="https://github.com/motherduckdb/duckdb-tableau-connector/releases">here</a></p><ol><li><p>a taco file is a custom connector file for Tableau</p></li></ol></li><li><p>Once its downloaded, copy it into this path (if on a Mac): ~/Documents/My Tableau Repository/Connectors</p></li><li><p>restart Tableau</p></li></ol><p>You should now see in your connectors menu a new one called &#8220;DuckDB by MotherDuck&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XxwZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4874ae59-9b62-41b1-9739-545e4949bd4d_1297x1180.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XxwZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4874ae59-9b62-41b1-9739-545e4949bd4d_1297x1180.png 424w, https://substackcdn.com/image/fetch/$s_!XxwZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4874ae59-9b62-41b1-9739-545e4949bd4d_1297x1180.png 848w, https://substackcdn.com/image/fetch/$s_!XxwZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4874ae59-9b62-41b1-9739-545e4949bd4d_1297x1180.png 1272w, https://substackcdn.com/image/fetch/$s_!XxwZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4874ae59-9b62-41b1-9739-545e4949bd4d_1297x1180.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XxwZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4874ae59-9b62-41b1-9739-545e4949bd4d_1297x1180.png" width="1297" height="1180" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4874ae59-9b62-41b1-9739-545e4949bd4d_1297x1180.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1180,&quot;width&quot;:1297,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:239275,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/189372680?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4874ae59-9b62-41b1-9739-545e4949bd4d_1297x1180.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XxwZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4874ae59-9b62-41b1-9739-545e4949bd4d_1297x1180.png 424w, https://substackcdn.com/image/fetch/$s_!XxwZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4874ae59-9b62-41b1-9739-545e4949bd4d_1297x1180.png 848w, https://substackcdn.com/image/fetch/$s_!XxwZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4874ae59-9b62-41b1-9739-545e4949bd4d_1297x1180.png 1272w, https://substackcdn.com/image/fetch/$s_!XxwZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4874ae59-9b62-41b1-9739-545e4949bd4d_1297x1180.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Click on that and you will see this pop-up that has a general and an &#8220;Initial SQL&#8221; tab:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!O6kJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc4a4df3-4140-4965-a017-8d413036fe0c_1002x662.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!O6kJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc4a4df3-4140-4965-a017-8d413036fe0c_1002x662.png 424w, https://substackcdn.com/image/fetch/$s_!O6kJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc4a4df3-4140-4965-a017-8d413036fe0c_1002x662.png 848w, https://substackcdn.com/image/fetch/$s_!O6kJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc4a4df3-4140-4965-a017-8d413036fe0c_1002x662.png 1272w, https://substackcdn.com/image/fetch/$s_!O6kJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc4a4df3-4140-4965-a017-8d413036fe0c_1002x662.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!O6kJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc4a4df3-4140-4965-a017-8d413036fe0c_1002x662.png" width="1002" height="662" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fc4a4df3-4140-4965-a017-8d413036fe0c_1002x662.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:662,&quot;width&quot;:1002,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:52238,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/189372680?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc4a4df3-4140-4965-a017-8d413036fe0c_1002x662.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!O6kJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc4a4df3-4140-4965-a017-8d413036fe0c_1002x662.png 424w, https://substackcdn.com/image/fetch/$s_!O6kJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc4a4df3-4140-4965-a017-8d413036fe0c_1002x662.png 848w, https://substackcdn.com/image/fetch/$s_!O6kJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc4a4df3-4140-4965-a017-8d413036fe0c_1002x662.png 1272w, https://substackcdn.com/image/fetch/$s_!O6kJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc4a4df3-4140-4965-a017-8d413036fe0c_1002x662.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Click on the Initial SQL tab and add in your secrets command as well as attaching the ducklake catalog that you had previously generated in the earlier part of this article:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Jn0o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa371fd9f-6fbe-42bf-99a6-5fbf49ae8657_502x414.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jn0o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa371fd9f-6fbe-42bf-99a6-5fbf49ae8657_502x414.heic 424w, https://substackcdn.com/image/fetch/$s_!Jn0o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa371fd9f-6fbe-42bf-99a6-5fbf49ae8657_502x414.heic 848w, https://substackcdn.com/image/fetch/$s_!Jn0o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa371fd9f-6fbe-42bf-99a6-5fbf49ae8657_502x414.heic 1272w, https://substackcdn.com/image/fetch/$s_!Jn0o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa371fd9f-6fbe-42bf-99a6-5fbf49ae8657_502x414.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jn0o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa371fd9f-6fbe-42bf-99a6-5fbf49ae8657_502x414.heic" width="502" height="414" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a371fd9f-6fbe-42bf-99a6-5fbf49ae8657_502x414.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:414,&quot;width&quot;:502,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:19257,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/189372680?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa371fd9f-6fbe-42bf-99a6-5fbf49ae8657_502x414.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Jn0o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa371fd9f-6fbe-42bf-99a6-5fbf49ae8657_502x414.heic 424w, https://substackcdn.com/image/fetch/$s_!Jn0o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa371fd9f-6fbe-42bf-99a6-5fbf49ae8657_502x414.heic 848w, https://substackcdn.com/image/fetch/$s_!Jn0o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa371fd9f-6fbe-42bf-99a6-5fbf49ae8657_502x414.heic 1272w, https://substackcdn.com/image/fetch/$s_!Jn0o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa371fd9f-6fbe-42bf-99a6-5fbf49ae8657_502x414.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After that, hit sign-in and you should be at the landing page that shows your available schemas and tables:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qjpi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93d3613d-af59-45e0-91ed-8acd211762f8_765x1001.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qjpi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93d3613d-af59-45e0-91ed-8acd211762f8_765x1001.heic 424w, https://substackcdn.com/image/fetch/$s_!qjpi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93d3613d-af59-45e0-91ed-8acd211762f8_765x1001.heic 848w, https://substackcdn.com/image/fetch/$s_!qjpi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93d3613d-af59-45e0-91ed-8acd211762f8_765x1001.heic 1272w, https://substackcdn.com/image/fetch/$s_!qjpi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93d3613d-af59-45e0-91ed-8acd211762f8_765x1001.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qjpi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93d3613d-af59-45e0-91ed-8acd211762f8_765x1001.heic" width="765" height="1001" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/93d3613d-af59-45e0-91ed-8acd211762f8_765x1001.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1001,&quot;width&quot;:765,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:30354,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/189372680?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93d3613d-af59-45e0-91ed-8acd211762f8_765x1001.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qjpi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93d3613d-af59-45e0-91ed-8acd211762f8_765x1001.heic 424w, https://substackcdn.com/image/fetch/$s_!qjpi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93d3613d-af59-45e0-91ed-8acd211762f8_765x1001.heic 848w, https://substackcdn.com/image/fetch/$s_!qjpi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93d3613d-af59-45e0-91ed-8acd211762f8_765x1001.heic 1272w, https://substackcdn.com/image/fetch/$s_!qjpi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93d3613d-af59-45e0-91ed-8acd211762f8_765x1001.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Under database, we should see our &#8220;aws_wh&#8221; we created with ducklake and attached. Then under main, we should see our tables. Let&#8217;s drag those on the canvas and start slicing:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qyy1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63549976-9bbe-4e57-b065-9e96c96e7e16_1107x715.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qyy1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63549976-9bbe-4e57-b065-9e96c96e7e16_1107x715.heic 424w, https://substackcdn.com/image/fetch/$s_!Qyy1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63549976-9bbe-4e57-b065-9e96c96e7e16_1107x715.heic 848w, https://substackcdn.com/image/fetch/$s_!Qyy1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63549976-9bbe-4e57-b065-9e96c96e7e16_1107x715.heic 1272w, https://substackcdn.com/image/fetch/$s_!Qyy1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63549976-9bbe-4e57-b065-9e96c96e7e16_1107x715.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qyy1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63549976-9bbe-4e57-b065-9e96c96e7e16_1107x715.heic" width="1107" height="715" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/63549976-9bbe-4e57-b065-9e96c96e7e16_1107x715.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:715,&quot;width&quot;:1107,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:47874,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/189372680?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63549976-9bbe-4e57-b065-9e96c96e7e16_1107x715.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Qyy1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63549976-9bbe-4e57-b065-9e96c96e7e16_1107x715.heic 424w, https://substackcdn.com/image/fetch/$s_!Qyy1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63549976-9bbe-4e57-b065-9e96c96e7e16_1107x715.heic 848w, https://substackcdn.com/image/fetch/$s_!Qyy1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63549976-9bbe-4e57-b065-9e96c96e7e16_1107x715.heic 1272w, https://substackcdn.com/image/fetch/$s_!Qyy1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63549976-9bbe-4e57-b065-9e96c96e7e16_1107x715.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Boom - it worked. Tableau is using DuckDB and connecting to our ducklake tables that live and breath in AWS S3. Winning!</p><p>Here&#8217;s another slice I did for fun:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SKAM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0ce253d-c50c-450c-b2cc-4a778bbf1f77_1729x1006.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SKAM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0ce253d-c50c-450c-b2cc-4a778bbf1f77_1729x1006.heic 424w, https://substackcdn.com/image/fetch/$s_!SKAM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0ce253d-c50c-450c-b2cc-4a778bbf1f77_1729x1006.heic 848w, https://substackcdn.com/image/fetch/$s_!SKAM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0ce253d-c50c-450c-b2cc-4a778bbf1f77_1729x1006.heic 1272w, https://substackcdn.com/image/fetch/$s_!SKAM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0ce253d-c50c-450c-b2cc-4a778bbf1f77_1729x1006.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SKAM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0ce253d-c50c-450c-b2cc-4a778bbf1f77_1729x1006.heic" width="1456" height="847" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b0ce253d-c50c-450c-b2cc-4a778bbf1f77_1729x1006.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:847,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:109668,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/189372680?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0ce253d-c50c-450c-b2cc-4a778bbf1f77_1729x1006.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SKAM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0ce253d-c50c-450c-b2cc-4a778bbf1f77_1729x1006.heic 424w, https://substackcdn.com/image/fetch/$s_!SKAM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0ce253d-c50c-450c-b2cc-4a778bbf1f77_1729x1006.heic 848w, https://substackcdn.com/image/fetch/$s_!SKAM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0ce253d-c50c-450c-b2cc-4a778bbf1f77_1729x1006.heic 1272w, https://substackcdn.com/image/fetch/$s_!SKAM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0ce253d-c50c-450c-b2cc-4a778bbf1f77_1729x1006.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Conclusion</h2><p>This article showed us how to create a simple ducklake lakehouse from scratch, inject some dummy data, send it up to S3, and then have Tableau connect and visualize it. In regards to other BI tools such as PowerBI, I have not done much research; but the kicker is that as long as the connector supports an &#8220;initial sql&#8221; block, you should be able to make it work.</p><p>Hope this helped you learn something!</p><p><a href="https://github.com/mattmartin14/dream_machine/tree/main/substack/articles/2026.02.27-ducklake_tableau">THE CODE</a></p><p>Thanks for reading,<br>Matt</p>]]></content:encoded></item><item><title><![CDATA[The Secret Is Out]]></title><description><![CDATA[I'm writing a book]]></description><link>https://performancede.substack.com/p/the-secret-is-out</link><guid isPermaLink="false">https://performancede.substack.com/p/the-secret-is-out</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Mon, 23 Feb 2026 20:15:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Wb2k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57b0c942-e336-42d1-82ee-436d3ac928f6_2100x2757.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wb2k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57b0c942-e336-42d1-82ee-436d3ac928f6_2100x2757.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wb2k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57b0c942-e336-42d1-82ee-436d3ac928f6_2100x2757.heic 424w, https://substackcdn.com/image/fetch/$s_!Wb2k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57b0c942-e336-42d1-82ee-436d3ac928f6_2100x2757.heic 848w, https://substackcdn.com/image/fetch/$s_!Wb2k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57b0c942-e336-42d1-82ee-436d3ac928f6_2100x2757.heic 1272w, https://substackcdn.com/image/fetch/$s_!Wb2k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57b0c942-e336-42d1-82ee-436d3ac928f6_2100x2757.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wb2k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57b0c942-e336-42d1-82ee-436d3ac928f6_2100x2757.heic" width="1456" height="1912" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/57b0c942-e336-42d1-82ee-436d3ac928f6_2100x2757.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1912,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:464631,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/188943760?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57b0c942-e336-42d1-82ee-436d3ac928f6_2100x2757.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wb2k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57b0c942-e336-42d1-82ee-436d3ac928f6_2100x2757.heic 424w, https://substackcdn.com/image/fetch/$s_!Wb2k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57b0c942-e336-42d1-82ee-436d3ac928f6_2100x2757.heic 848w, https://substackcdn.com/image/fetch/$s_!Wb2k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57b0c942-e336-42d1-82ee-436d3ac928f6_2100x2757.heic 1272w, https://substackcdn.com/image/fetch/$s_!Wb2k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57b0c942-e336-42d1-82ee-436d3ac928f6_2100x2757.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I haven&#8217;t written on Substack in over a month, and if you saw the announcement this morning via LinkedIn, you&#8217;d understand why. I&#8217;m currently working on a book with Alex Monahan that we hope to roll out by the end of the year. I&#8217;ve never written a book before so this will be a major shift in how I approach projects. I do plan to still write here from time to time, but don&#8217;t expect an article every couple weeks.</p><p>Stay tuned though: &#8220;DuckLake - The Definitive Guide&#8221; is going to be awesome, and Alex and I look forward to getting it out the door so you all can learn about the newest offering of a lakehouse and where it fits in.</p><p>If this is your first time hearing about it, here&#8217;s a primer that I wrote back in June of last year: <a href="https://performancede.substack.com/p/ducklake-the-easiest-way-to-lakehouse">Ducklake - The Easiest Way to Lakehouse</a></p><p>Thanks,<br>Matt</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://performancede.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Matt Martin's Substack is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[MotherDuck and The Hybrid Cloud]]></title><description><![CDATA[Making Big Data Look Small Across the Pond]]></description><link>https://performancede.substack.com/p/motherduck-and-the-hybrid-cloud</link><guid isPermaLink="false">https://performancede.substack.com/p/motherduck-and-the-hybrid-cloud</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Tue, 20 Jan 2026 13:44:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dvKK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6758a2ec-3f41-40d6-9ee0-7ab59765d54d_1024x1536.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dvKK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6758a2ec-3f41-40d6-9ee0-7ab59765d54d_1024x1536.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dvKK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6758a2ec-3f41-40d6-9ee0-7ab59765d54d_1024x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!dvKK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6758a2ec-3f41-40d6-9ee0-7ab59765d54d_1024x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!dvKK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6758a2ec-3f41-40d6-9ee0-7ab59765d54d_1024x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!dvKK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6758a2ec-3f41-40d6-9ee0-7ab59765d54d_1024x1536.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dvKK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6758a2ec-3f41-40d6-9ee0-7ab59765d54d_1024x1536.heic" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6758a2ec-3f41-40d6-9ee0-7ab59765d54d_1024x1536.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:165065,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/183130314?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6758a2ec-3f41-40d6-9ee0-7ab59765d54d_1024x1536.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dvKK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6758a2ec-3f41-40d6-9ee0-7ab59765d54d_1024x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!dvKK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6758a2ec-3f41-40d6-9ee0-7ab59765d54d_1024x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!dvKK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6758a2ec-3f41-40d6-9ee0-7ab59765d54d_1024x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!dvKK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6758a2ec-3f41-40d6-9ee0-7ab59765d54d_1024x1536.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;ve been on a roll lately with <a href="https://motherduck.com">MotherDuck</a>, who is the sponsor of today&#8217;s article:</p>
      <p>
          <a href="https://performancede.substack.com/p/motherduck-and-the-hybrid-cloud">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Mixing Motherduck With Other Metastores]]></title><description><![CDATA[The Need is Definitely Out There]]></description><link>https://performancede.substack.com/p/mixing-motherduck-with-other-metastores</link><guid isPermaLink="false">https://performancede.substack.com/p/mixing-motherduck-with-other-metastores</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Wed, 14 Jan 2026 18:36:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8R-v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc448bfd0-fea5-4878-a122-cc0708bb8811_1536x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8R-v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc448bfd0-fea5-4878-a122-cc0708bb8811_1536x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8R-v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc448bfd0-fea5-4878-a122-cc0708bb8811_1536x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!8R-v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc448bfd0-fea5-4878-a122-cc0708bb8811_1536x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!8R-v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc448bfd0-fea5-4878-a122-cc0708bb8811_1536x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!8R-v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc448bfd0-fea5-4878-a122-cc0708bb8811_1536x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8R-v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc448bfd0-fea5-4878-a122-cc0708bb8811_1536x1024.heic" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c448bfd0-fea5-4878-a122-cc0708bb8811_1536x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:109933,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/183130347?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc448bfd0-fea5-4878-a122-cc0708bb8811_1536x1024.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8R-v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc448bfd0-fea5-4878-a122-cc0708bb8811_1536x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!8R-v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc448bfd0-fea5-4878-a122-cc0708bb8811_1536x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!8R-v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc448bfd0-fea5-4878-a122-cc0708bb8811_1536x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!8R-v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc448bfd0-fea5-4878-a122-cc0708bb8811_1536x1024.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We live in a world where nothing is ever perfect; especially in the data engineering space, we are tasked quite often with solving integration problems where we have multiple catalogs and multiple data stores floating around the ether; to further complicate things, these catalogs can also be in different clouds or managed services. I know most of you re&#8230;</p>
      <p>
          <a href="https://performancede.substack.com/p/mixing-motherduck-with-other-metastores">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Multi-Cloud Lakehouse with MotherDuck]]></title><description><![CDATA[To bring together all the madness]]></description><link>https://performancede.substack.com/p/multi-cloud-lakehouse-with-motherduck</link><guid isPermaLink="false">https://performancede.substack.com/p/multi-cloud-lakehouse-with-motherduck</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Wed, 07 Jan 2026 13:17:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-5Rw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd1d0f23-792b-4acb-9b43-07abeed654d0_1536x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-5Rw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd1d0f23-792b-4acb-9b43-07abeed654d0_1536x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-5Rw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd1d0f23-792b-4acb-9b43-07abeed654d0_1536x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!-5Rw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd1d0f23-792b-4acb-9b43-07abeed654d0_1536x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!-5Rw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd1d0f23-792b-4acb-9b43-07abeed654d0_1536x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!-5Rw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd1d0f23-792b-4acb-9b43-07abeed654d0_1536x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-5Rw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd1d0f23-792b-4acb-9b43-07abeed654d0_1536x1024.heic" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd1d0f23-792b-4acb-9b43-07abeed654d0_1536x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:255080,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/183130282?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd1d0f23-792b-4acb-9b43-07abeed654d0_1536x1024.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-5Rw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd1d0f23-792b-4acb-9b43-07abeed654d0_1536x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!-5Rw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd1d0f23-792b-4acb-9b43-07abeed654d0_1536x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!-5Rw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd1d0f23-792b-4acb-9b43-07abeed654d0_1536x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!-5Rw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd1d0f23-792b-4acb-9b43-07abeed654d0_1536x1024.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We live in a world these days where we have many choices abound for data services; the 3 predominant cloud providers are no doubt AWS, GCP and Azure; and what&#8217;s really interesting about the current landscape is that many orgs find themselves in situations where they have built up apps and data stores that span across more than just one cloud; this is us&#8230;</p>
      <p>
          <a href="https://performancede.substack.com/p/multi-cloud-lakehouse-with-motherduck">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Building A Meaningful Semantic Layer]]></title><description><![CDATA[For My Concept 2 Rowing Data]]></description><link>https://performancede.substack.com/p/building-a-meaningful-semantic-layer</link><guid isPermaLink="false">https://performancede.substack.com/p/building-a-meaningful-semantic-layer</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Mon, 29 Dec 2025 14:59:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZJE7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6f86ec6-dd87-4850-aa1a-cdb185a613ac_1024x1536.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZJE7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6f86ec6-dd87-4850-aa1a-cdb185a613ac_1024x1536.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZJE7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6f86ec6-dd87-4850-aa1a-cdb185a613ac_1024x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!ZJE7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6f86ec6-dd87-4850-aa1a-cdb185a613ac_1024x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!ZJE7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6f86ec6-dd87-4850-aa1a-cdb185a613ac_1024x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!ZJE7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6f86ec6-dd87-4850-aa1a-cdb185a613ac_1024x1536.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZJE7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6f86ec6-dd87-4850-aa1a-cdb185a613ac_1024x1536.heic" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a6f86ec6-dd87-4850-aa1a-cdb185a613ac_1024x1536.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:259077,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/182815755?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6f86ec6-dd87-4850-aa1a-cdb185a613ac_1024x1536.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZJE7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6f86ec6-dd87-4850-aa1a-cdb185a613ac_1024x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!ZJE7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6f86ec6-dd87-4850-aa1a-cdb185a613ac_1024x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!ZJE7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6f86ec6-dd87-4850-aa1a-cdb185a613ac_1024x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!ZJE7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6f86ec6-dd87-4850-aa1a-cdb185a613ac_1024x1536.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you have readily followed me on LinkedIn, you will notice from time to time, I drop some nuggets on my rowing journey. I would not consider myself an &#8220;elite&#8221; rower by any means, but I have logged well over 1M meters now on my Concept 2 rower and have a pretty good clue of what direction is up. Plus, the few times that I have ranked my workouts in the&#8230;</p>
      <p>
          <a href="https://performancede.substack.com/p/building-a-meaningful-semantic-layer">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[AWS S3 Tables and Duckdb]]></title><description><![CDATA[Something is Cookin']]></description><link>https://performancede.substack.com/p/aws-s3-tables-and-duckdb</link><guid isPermaLink="false">https://performancede.substack.com/p/aws-s3-tables-and-duckdb</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Wed, 19 Nov 2025 13:34:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5E2b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8287034-15ba-4a50-8e45-7e577d3557b0_1024x1536.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5E2b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8287034-15ba-4a50-8e45-7e577d3557b0_1024x1536.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5E2b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8287034-15ba-4a50-8e45-7e577d3557b0_1024x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!5E2b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8287034-15ba-4a50-8e45-7e577d3557b0_1024x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!5E2b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8287034-15ba-4a50-8e45-7e577d3557b0_1024x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!5E2b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8287034-15ba-4a50-8e45-7e577d3557b0_1024x1536.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5E2b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8287034-15ba-4a50-8e45-7e577d3557b0_1024x1536.heic" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8287034-15ba-4a50-8e45-7e577d3557b0_1024x1536.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:497067,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/179350166?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8287034-15ba-4a50-8e45-7e577d3557b0_1024x1536.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5E2b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8287034-15ba-4a50-8e45-7e577d3557b0_1024x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!5E2b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8287034-15ba-4a50-8e45-7e577d3557b0_1024x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!5E2b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8287034-15ba-4a50-8e45-7e577d3557b0_1024x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!5E2b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8287034-15ba-4a50-8e45-7e577d3557b0_1024x1536.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>It&#8217;s been over a month since I last wrote an article. I&#8217;ve been on a bit of a hiatus, but I have some good things coming down the pipeline. Today though, we will be looking at the current state of AWS S3 Tables and Duckdb.</p><p>If you rewind the clock a few months back, Duckdb had a monumental release (1.4) which came with the ability to write to Iceberg tabl&#8230;</p>
      <p>
          <a href="https://performancede.substack.com/p/aws-s3-tables-and-duckdb">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Spark Config Madness]]></title><description><![CDATA[Will it Ever Stop?]]></description><link>https://performancede.substack.com/p/spark-config-madness</link><guid isPermaLink="false">https://performancede.substack.com/p/spark-config-madness</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Mon, 13 Oct 2025 14:59:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ks2u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff618a00a-e8f8-4fa1-bdb4-2b675d34eee0_1024x1536.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ks2u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff618a00a-e8f8-4fa1-bdb4-2b675d34eee0_1024x1536.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ks2u!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff618a00a-e8f8-4fa1-bdb4-2b675d34eee0_1024x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!ks2u!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff618a00a-e8f8-4fa1-bdb4-2b675d34eee0_1024x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!ks2u!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff618a00a-e8f8-4fa1-bdb4-2b675d34eee0_1024x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!ks2u!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff618a00a-e8f8-4fa1-bdb4-2b675d34eee0_1024x1536.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ks2u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff618a00a-e8f8-4fa1-bdb4-2b675d34eee0_1024x1536.heic" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f618a00a-e8f8-4fa1-bdb4-2b675d34eee0_1024x1536.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:245276,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/176044688?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff618a00a-e8f8-4fa1-bdb4-2b675d34eee0_1024x1536.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ks2u!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff618a00a-e8f8-4fa1-bdb4-2b675d34eee0_1024x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!ks2u!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff618a00a-e8f8-4fa1-bdb4-2b675d34eee0_1024x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!ks2u!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff618a00a-e8f8-4fa1-bdb4-2b675d34eee0_1024x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!ks2u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff618a00a-e8f8-4fa1-bdb4-2b675d34eee0_1024x1536.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>I&#8217;ve been on a spark config kick lately. A week or so ago, I <a href="https://performancede.substack.com/p/aws-glue-iceberg-rest-catalog">published a post</a> showing how to config Spark for the AWS Glue Iceberg Rest endpoint. Overall, the config is not too complex, but does require a ton of inputs. Comparing that to the duck, you see a stark contrast.</p><p>However, after working through that article, I was somewhat disappointed that the &#8230;</p>
      <p>
          <a href="https://performancede.substack.com/p/spark-config-madness">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Duckdb and AWS Glue Catalog]]></title><description><![CDATA[Working with Iceberg and non-iceberg tables in harmony]]></description><link>https://performancede.substack.com/p/duckdb-and-aws-glue-catalog</link><guid isPermaLink="false">https://performancede.substack.com/p/duckdb-and-aws-glue-catalog</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Thu, 02 Oct 2025 13:54:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NTKR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858e82-940c-432d-975c-ed29a773b50a_1189x795.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NTKR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858e82-940c-432d-975c-ed29a773b50a_1189x795.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NTKR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858e82-940c-432d-975c-ed29a773b50a_1189x795.heic 424w, https://substackcdn.com/image/fetch/$s_!NTKR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858e82-940c-432d-975c-ed29a773b50a_1189x795.heic 848w, https://substackcdn.com/image/fetch/$s_!NTKR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858e82-940c-432d-975c-ed29a773b50a_1189x795.heic 1272w, https://substackcdn.com/image/fetch/$s_!NTKR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858e82-940c-432d-975c-ed29a773b50a_1189x795.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NTKR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858e82-940c-432d-975c-ed29a773b50a_1189x795.heic" width="1189" height="795" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/49858e82-940c-432d-975c-ed29a773b50a_1189x795.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:795,&quot;width&quot;:1189,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:129856,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/175105148?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858e82-940c-432d-975c-ed29a773b50a_1189x795.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NTKR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858e82-940c-432d-975c-ed29a773b50a_1189x795.heic 424w, https://substackcdn.com/image/fetch/$s_!NTKR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858e82-940c-432d-975c-ed29a773b50a_1189x795.heic 848w, https://substackcdn.com/image/fetch/$s_!NTKR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858e82-940c-432d-975c-ed29a773b50a_1189x795.heic 1272w, https://substackcdn.com/image/fetch/$s_!NTKR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858e82-940c-432d-975c-ed29a773b50a_1189x795.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Duckdb has been making some major inroads over the past few months to advance their integrations with Iceberg and AWS. One can simply run the following now to map any iceberg tables from an AWS account into duckdb (no fancy s3 tables required):</p>
      <p>
          <a href="https://performancede.substack.com/p/duckdb-and-aws-glue-catalog">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[AWS Glue Iceberg Rest Catalog]]></title><description><![CDATA[An Exhaustive Test]]></description><link>https://performancede.substack.com/p/aws-glue-iceberg-rest-catalog</link><guid isPermaLink="false">https://performancede.substack.com/p/aws-glue-iceberg-rest-catalog</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Mon, 29 Sep 2025 12:43:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1dVm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8a0d871-a74e-4908-beda-e6b1748ad375_736x505.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve been on a never ending quest to seek the holy grail of local testing being as close as possible to matching AWS production, but without having to go full blown docker bananas. When the AWS Glue Iceberg Rest catalog was very subtly announced at re:invent a year ago (circa December 2024), I still didn&#8217;t have a decent understanding of what the &#8220;rest&#8221; &#8230;</p>
      <p>
          <a href="https://performancede.substack.com/p/aws-glue-iceberg-rest-catalog">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Setting Up MFA For An AWS IAM User]]></title><description><![CDATA[It's a pain, but you will sleep better at night]]></description><link>https://performancede.substack.com/p/setting-up-mfa-for-an-aws-iam-user</link><guid isPermaLink="false">https://performancede.substack.com/p/setting-up-mfa-for-an-aws-iam-user</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Mon, 22 Sep 2025 11:44:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4iil!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4f7baa2-f105-4a3b-9fd0-aea472377d4e_419x354.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s been a long&#8230;..time since I have used AWS for my personal projects. But I&#8217;m glad to finally get back in. I recently ranted about how I&#8217;m jumping ship from Google&#8217;s cloud to AWS, due to Google&#8217;s lack of investment in their lakehouse arch. If you don&#8217;t believe, just take a look at Google BigLake, which was announced 3 years ago. You still have to issu&#8230;</p>
      <p>
          <a href="https://performancede.substack.com/p/setting-up-mfa-for-an-aws-iam-user">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The 3 Window Functions I Always Use]]></title><description><![CDATA[Window Functions Are A Superpower]]></description><link>https://performancede.substack.com/p/the-3-window-functions-i-always-use</link><guid isPermaLink="false">https://performancede.substack.com/p/the-3-window-functions-i-always-use</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Tue, 09 Sep 2025 12:34:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NJ9w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5e61add-c8fb-48a7-a081-12225a61f736_1728x3244.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ss_g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6a96c2-5868-4e45-ad6f-00b91840dff9_270x270.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ss_g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6a96c2-5868-4e45-ad6f-00b91840dff9_270x270.heic 424w, https://substackcdn.com/image/fetch/$s_!ss_g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6a96c2-5868-4e45-ad6f-00b91840dff9_270x270.heic 848w, https://substackcdn.com/image/fetch/$s_!ss_g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6a96c2-5868-4e45-ad6f-00b91840dff9_270x270.heic 1272w, https://substackcdn.com/image/fetch/$s_!ss_g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6a96c2-5868-4e45-ad6f-00b91840dff9_270x270.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ss_g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6a96c2-5868-4e45-ad6f-00b91840dff9_270x270.heic" width="270" height="270" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e6a96c2-5868-4e45-ad6f-00b91840dff9_270x270.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:270,&quot;width&quot;:270,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:15188,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/173173942?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6a96c2-5868-4e45-ad6f-00b91840dff9_270x270.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ss_g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6a96c2-5868-4e45-ad6f-00b91840dff9_270x270.heic 424w, https://substackcdn.com/image/fetch/$s_!ss_g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6a96c2-5868-4e45-ad6f-00b91840dff9_270x270.heic 848w, https://substackcdn.com/image/fetch/$s_!ss_g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6a96c2-5868-4e45-ad6f-00b91840dff9_270x270.heic 1272w, https://substackcdn.com/image/fetch/$s_!ss_g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6a96c2-5868-4e45-ad6f-00b91840dff9_270x270.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>I first learned about window functions back in my SQL Server days; to be exact, it was on the SQL Server 2012 edition when I was an analyst in finance; up until that day, whenever I had to build forecasts and/or budgets, I&#8217;d query the data from SQL Server, dump it in Excel, and then build a bunch of excel calcs there to figure out moving averages and Yo&#8230;</p>
      <p>
          <a href="https://performancede.substack.com/p/the-3-window-functions-i-always-use">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[How To Level Up Your Prompting]]></title><description><![CDATA[For software engineering]]></description><link>https://performancede.substack.com/p/how-to-level-up-your-prompting</link><guid isPermaLink="false">https://performancede.substack.com/p/how-to-level-up-your-prompting</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Wed, 27 Aug 2025 13:27:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wjUo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9ed22f-a2ca-4d38-845d-404e5ff718d3_1024x1536.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wjUo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9ed22f-a2ca-4d38-845d-404e5ff718d3_1024x1536.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wjUo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9ed22f-a2ca-4d38-845d-404e5ff718d3_1024x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!wjUo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9ed22f-a2ca-4d38-845d-404e5ff718d3_1024x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!wjUo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9ed22f-a2ca-4d38-845d-404e5ff718d3_1024x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!wjUo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9ed22f-a2ca-4d38-845d-404e5ff718d3_1024x1536.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wjUo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9ed22f-a2ca-4d38-845d-404e5ff718d3_1024x1536.heic" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c9ed22f-a2ca-4d38-845d-404e5ff718d3_1024x1536.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:651678,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/172082086?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9ed22f-a2ca-4d38-845d-404e5ff718d3_1024x1536.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wjUo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9ed22f-a2ca-4d38-845d-404e5ff718d3_1024x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!wjUo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9ed22f-a2ca-4d38-845d-404e5ff718d3_1024x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!wjUo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9ed22f-a2ca-4d38-845d-404e5ff718d3_1024x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!wjUo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9ed22f-a2ca-4d38-845d-404e5ff718d3_1024x1536.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I think I&#8217;ve finally cracked a part of the LLM secret sauce; it took me several months of trial/error to get here, but now that I have gotten over this hard paradigm shift, I wanted to share my success with you all so that you can learn and build on it. </p><p>What the gist of this really boils down to is the following:</p><div class="pullquote"><p>You need to <strong>SLOW DOWN</strong> and take your time &#8230;</p></div>
      <p>
          <a href="https://performancede.substack.com/p/how-to-level-up-your-prompting">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Handling Fuzzy Matching of Transactions Cleanly]]></title><description><![CDATA[Ditch Those Long-Winded Case Statements]]></description><link>https://performancede.substack.com/p/handling-fuzzy-matching-of-transactions</link><guid isPermaLink="false">https://performancede.substack.com/p/handling-fuzzy-matching-of-transactions</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Fri, 15 Aug 2025 13:53:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XDz0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22d9b40d-dd63-4e00-a720-83fdcf4f9fb3_1536x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XDz0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22d9b40d-dd63-4e00-a720-83fdcf4f9fb3_1536x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XDz0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22d9b40d-dd63-4e00-a720-83fdcf4f9fb3_1536x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!XDz0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22d9b40d-dd63-4e00-a720-83fdcf4f9fb3_1536x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!XDz0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22d9b40d-dd63-4e00-a720-83fdcf4f9fb3_1536x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!XDz0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22d9b40d-dd63-4e00-a720-83fdcf4f9fb3_1536x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XDz0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22d9b40d-dd63-4e00-a720-83fdcf4f9fb3_1536x1024.heic" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22d9b40d-dd63-4e00-a720-83fdcf4f9fb3_1536x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:486530,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/171050975?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22d9b40d-dd63-4e00-a720-83fdcf4f9fb3_1536x1024.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XDz0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22d9b40d-dd63-4e00-a720-83fdcf4f9fb3_1536x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!XDz0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22d9b40d-dd63-4e00-a720-83fdcf4f9fb3_1536x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!XDz0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22d9b40d-dd63-4e00-a720-83fdcf4f9fb3_1536x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!XDz0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22d9b40d-dd63-4e00-a720-83fdcf4f9fb3_1536x1024.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We&#8217;ve all been there before. We inherit someone&#8217;s sql query, we crack it open, and we see a long winded case when statement that uses the like operator to categorize data. Something ugly like this:</p>
      <p>
          <a href="https://performancede.substack.com/p/handling-fuzzy-matching-of-transactions">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Pulling Public Datasets For Analysis]]></title><description><![CDATA[Charting via Python is not too hard]]></description><link>https://performancede.substack.com/p/pulling-public-datasets-for-analysis</link><guid isPermaLink="false">https://performancede.substack.com/p/pulling-public-datasets-for-analysis</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Mon, 11 Aug 2025 13:28:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!je8B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab21cdd-f358-4d32-bf32-b0a5ab346327_1536x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!je8B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab21cdd-f358-4d32-bf32-b0a5ab346327_1536x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!je8B!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab21cdd-f358-4d32-bf32-b0a5ab346327_1536x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!je8B!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab21cdd-f358-4d32-bf32-b0a5ab346327_1536x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!je8B!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab21cdd-f358-4d32-bf32-b0a5ab346327_1536x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!je8B!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab21cdd-f358-4d32-bf32-b0a5ab346327_1536x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!je8B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab21cdd-f358-4d32-bf32-b0a5ab346327_1536x1024.heic" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cab21cdd-f358-4d32-bf32-b0a5ab346327_1536x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:486681,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/170682398?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab21cdd-f358-4d32-bf32-b0a5ab346327_1536x1024.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!je8B!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab21cdd-f358-4d32-bf32-b0a5ab346327_1536x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!je8B!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab21cdd-f358-4d32-bf32-b0a5ab346327_1536x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!je8B!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab21cdd-f358-4d32-bf32-b0a5ab346327_1536x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!je8B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab21cdd-f358-4d32-bf32-b0a5ab346327_1536x1024.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Throughout my career, I&#8217;ve had to at times, pull government and/or public datasets  for analytics. As an example, when I worked in transportation and logistics as an analyst, each month we would go to the department of energy website and pull in fuel forecasts to help us understand where our budget would potentially land in case the price of fuel went u&#8230;</p>
      <p>
          <a href="https://performancede.substack.com/p/pulling-public-datasets-for-analysis">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Analyzing My Concept 2 Rowing Data]]></title><description><![CDATA[Data Engineering for Fun]]></description><link>https://performancede.substack.com/p/analyzing-my-concept-2-rowing-data</link><guid isPermaLink="false">https://performancede.substack.com/p/analyzing-my-concept-2-rowing-data</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Mon, 28 Jul 2025 17:07:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ytnb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ccd5a5c-ad99-4183-a4a8-c54e327e049d_1024x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ytnb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ccd5a5c-ad99-4183-a4a8-c54e327e049d_1024x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ytnb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ccd5a5c-ad99-4183-a4a8-c54e327e049d_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!Ytnb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ccd5a5c-ad99-4183-a4a8-c54e327e049d_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!Ytnb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ccd5a5c-ad99-4183-a4a8-c54e327e049d_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!Ytnb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ccd5a5c-ad99-4183-a4a8-c54e327e049d_1024x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ytnb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ccd5a5c-ad99-4183-a4a8-c54e327e049d_1024x1024.heic" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6ccd5a5c-ad99-4183-a4a8-c54e327e049d_1024x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:358630,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/167434500?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ccd5a5c-ad99-4183-a4a8-c54e327e049d_1024x1024.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ytnb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ccd5a5c-ad99-4183-a4a8-c54e327e049d_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!Ytnb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ccd5a5c-ad99-4183-a4a8-c54e327e049d_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!Ytnb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ccd5a5c-ad99-4183-a4a8-c54e327e049d_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!Ytnb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ccd5a5c-ad99-4183-a4a8-c54e327e049d_1024x1024.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>I&#8217;ve shared a few times on LinkedIn throughout the past several months that I&#8217;m an avid rower on my concept 2 rowerg; I recently (May 2025) broke a major milestone of 1M meters. This took about 13 months to get to, but throughout the journey, I learned a ton about rowing and how to hone in my technique. With that said, the Concept 2 logbook is a free se&#8230;</p>
      <p>
          <a href="https://performancede.substack.com/p/analyzing-my-concept-2-rowing-data">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Containers for Data Engineers]]></title><description><![CDATA[Starter's Guide]]></description><link>https://performancede.substack.com/p/containers-for-data-engineers</link><guid isPermaLink="false">https://performancede.substack.com/p/containers-for-data-engineers</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Wed, 16 Jul 2025 13:18:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QtsU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c1e9be9-46ba-4b49-8f06-d4b258eff457_1024x1536.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QtsU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c1e9be9-46ba-4b49-8f06-d4b258eff457_1024x1536.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QtsU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c1e9be9-46ba-4b49-8f06-d4b258eff457_1024x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!QtsU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c1e9be9-46ba-4b49-8f06-d4b258eff457_1024x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!QtsU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c1e9be9-46ba-4b49-8f06-d4b258eff457_1024x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!QtsU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c1e9be9-46ba-4b49-8f06-d4b258eff457_1024x1536.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QtsU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c1e9be9-46ba-4b49-8f06-d4b258eff457_1024x1536.heic" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c1e9be9-46ba-4b49-8f06-d4b258eff457_1024x1536.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:329333,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/168138002?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c1e9be9-46ba-4b49-8f06-d4b258eff457_1024x1536.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QtsU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c1e9be9-46ba-4b49-8f06-d4b258eff457_1024x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!QtsU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c1e9be9-46ba-4b49-8f06-d4b258eff457_1024x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!QtsU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c1e9be9-46ba-4b49-8f06-d4b258eff457_1024x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!QtsU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c1e9be9-46ba-4b49-8f06-d4b258eff457_1024x1536.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Throughout my career, I&#8217;ve seen many evolutions of how we, as data engineers, &#8220;ship&#8221; pipelines to production. Some of the common methods are through:</p><ul><li><p>CICD Pipelines in Gitlab/Github</p></li><li><p>Emailing the script to the DBA to run (No one will ever admit this though &#128518;)</p></li><li><p>Saving bash jobs to a shared drive and using cron to run them (or windows task scheduler)</p></li><li><p>Airflow+S&#8230;</p></li></ul>
      <p>
          <a href="https://performancede.substack.com/p/containers-for-data-engineers">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Die Hard Is A Christmas Movie]]></title><description><![CDATA[And I'm going to prove it with data]]></description><link>https://performancede.substack.com/p/die-hard-is-a-christmas-movie</link><guid isPermaLink="false">https://performancede.substack.com/p/die-hard-is-a-christmas-movie</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Wed, 09 Jul 2025 10:09:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-Y4W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae071d9c-a368-421a-bde4-9be1de3baf47_1280x720.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p><strong>Full Disclosure - </strong>I was able to &#8220;vibe&#8221; roughly 95% of this entire article and script via ChatGPT with some careful prompting. I did this more as an experiment and don&#8217;t plan on having chatgpt draft my substack articles for the foreseeable future. But I was also getting bored with my writing style and wanted some inspiration. If chat gippity&#8217;s overblown &#8230;</p></blockquote>
      <p>
          <a href="https://performancede.substack.com/p/die-hard-is-a-christmas-movie">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Running Microsoft SQL Server on a Mac]]></title><description><![CDATA[Because we can]]></description><link>https://performancede.substack.com/p/running-microsoft-sql-server-on-a</link><guid isPermaLink="false">https://performancede.substack.com/p/running-microsoft-sql-server-on-a</guid><dc:creator><![CDATA[Matt Martin]]></dc:creator><pubDate>Mon, 07 Jul 2025 10:30:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WqIL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f7307a-e2ac-4f6c-9025-1080becd8985_996x506.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WqIL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f7307a-e2ac-4f6c-9025-1080becd8985_996x506.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WqIL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f7307a-e2ac-4f6c-9025-1080becd8985_996x506.heic 424w, https://substackcdn.com/image/fetch/$s_!WqIL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f7307a-e2ac-4f6c-9025-1080becd8985_996x506.heic 848w, https://substackcdn.com/image/fetch/$s_!WqIL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f7307a-e2ac-4f6c-9025-1080becd8985_996x506.heic 1272w, https://substackcdn.com/image/fetch/$s_!WqIL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f7307a-e2ac-4f6c-9025-1080becd8985_996x506.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WqIL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f7307a-e2ac-4f6c-9025-1080becd8985_996x506.heic" width="996" height="506" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2f7307a-e2ac-4f6c-9025-1080becd8985_996x506.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:506,&quot;width&quot;:996,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:40485,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://performancede.substack.com/i/167401333?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f7307a-e2ac-4f6c-9025-1080becd8985_996x506.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WqIL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f7307a-e2ac-4f6c-9025-1080becd8985_996x506.heic 424w, https://substackcdn.com/image/fetch/$s_!WqIL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f7307a-e2ac-4f6c-9025-1080becd8985_996x506.heic 848w, https://substackcdn.com/image/fetch/$s_!WqIL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f7307a-e2ac-4f6c-9025-1080becd8985_996x506.heic 1272w, https://substackcdn.com/image/fetch/$s_!WqIL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2f7307a-e2ac-4f6c-9025-1080becd8985_996x506.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I truly sorely miss the days I was a cowboy running wild on SQL Servers. A little bit of sp_executesql here, a little bit of xp_cmdshell there &#128518;&#8230;Needless to say, I owe a lot of my early career and resume building to Microsoft in this regard. I started off with SQL Server 2005 running under a desk at my office, but had over time graduated to IT supporte&#8230;</p>
      <p>
          <a href="https://performancede.substack.com/p/running-microsoft-sql-server-on-a">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>