<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>New blog articles in Lakebase Hub</title>
    <link>https://community.databricks.com/t5/lakebase-hub/ct-p/LakebasePostgres</link>
    <description>New blog articles in Lakebase Hub</description>
    <pubDate>Sun, 28 Jun 2026 17:22:02 GMT</pubDate>
    <dc:creator>LakebasePostgres</dc:creator>
    <dc:date>2026-06-28T17:22:02Z</dc:date>
    <item>
      <title>Building a GraphQL API on Lakebase</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/building-a-graphql-api-on-lakebase/ba-p/152621</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Use GraphQL on Databricks Lakebase with pg_graphql and the Lakebase Data API&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2026 14:11:46 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/building-a-graphql-api-on-lakebase/ba-p/152621</guid>
      <dc:creator>uday_satapathy</dc:creator>
      <dc:date>2026-03-31T14:11:46Z</dc:date>
    </item>
    <item>
      <title>Lakebase as the Operational Data Store: Bringing Back the Tactical Data Layer</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/lakebase-as-the-operational-data-store-bringing-back-the/ba-p/151832</link>
      <description>&lt;P&gt;&lt;SPAN&gt;A governed, low-latency data layer that transforms data intelligence into real-time operational action.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 26 Mar 2026 15:05:19 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/lakebase-as-the-operational-data-store-bringing-back-the/ba-p/151832</guid>
      <dc:creator>uday_satapathy</dc:creator>
      <dc:date>2026-03-26T15:05:19Z</dc:date>
    </item>
    <item>
      <title>Lakebase Branching Meets Docker: The Migration Safety Net I Wish I Had Years Ago</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/lakebase-branching-meets-docker-the-migration-safety-net-i-wish/ba-p/149945</link>
      <description>&lt;P&gt;&lt;SPAN&gt;In this post, I walk through how to take advantage of Lakebase with instant branching in a dev-ops workflow to add a layer of confidence that catches the databricks migration failures you'd otherwise discover at the worst possible time.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Mar 2026 06:32:38 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/lakebase-branching-meets-docker-the-migration-safety-net-i-wish/ba-p/149945</guid>
      <dc:creator>alex_feng</dc:creator>
      <dc:date>2026-03-09T06:32:38Z</dc:date>
    </item>
    <item>
      <title>How to perform Semantic Search in Databricks Lakebase</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/how-to-perform-semantic-search-in-databricks-lakebase/ba-p/139846</link>
      <description>&lt;P&gt;&lt;SPAN class="appsElementsGenerativeaiAstAnimated"&gt;In today's AI-native world, applications are moving beyond keyword matching to embrace&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class="appsElementsGenerativeaiAstAnimated"&gt;semantic search&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class="appsElementsGenerativeaiAstAnimated"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;powered by embeddings. This blog post explores how to leverage&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class="appsElementsGenerativeaiAstAnimated"&gt;pgvector on Databricks Lakebase&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class="appsElementsGenerativeaiAstAnimated"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Postgres OLTP database) to natively store, index, and query these embeddings in SQL. Learn the architecture to unify your product metadata, vector data, and operational workloads in a single, scalable Lakehouse-integrated platform for powerful e-commerce search, intelligent recommendations, and more.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Dec 2025 15:58:00 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/how-to-perform-semantic-search-in-databricks-lakebase/ba-p/139846</guid>
      <dc:creator>uday_satapathy</dc:creator>
      <dc:date>2025-12-04T15:58:00Z</dc:date>
    </item>
    <item>
      <title>Operationalize Your Lakehouse: Lakebase for Low-Latency Apps &amp; APIs</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/operationalize-your-lakehouse-lakebase-for-low-latency-apps-amp/ba-p/136294</link>
      <description>&lt;P&gt; Still copying data into a separate database just to power your apps? Lakebase eliminates the sprawl. Build operational APIs and transactional features directly on the Lakehouse using PostgreSQL — no external databases or custom ETL pipelines needed.&lt;/P&gt;</description>
      <pubDate>Thu, 13 Nov 2025 13:59:48 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/operationalize-your-lakehouse-lakebase-for-low-latency-apps-amp/ba-p/136294</guid>
      <dc:creator>zach_goehring</dc:creator>
      <dc:date>2025-11-13T13:59:48Z</dc:date>
    </item>
    <item>
      <title>[PARTNER] Databricks Lakebase Costing: Compute, Storage &amp; Reusable AI/BI Dashboard</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/partner-databricks-lakebase-costing-compute-storage-amp-reusable/ba-p/127945</link>
      <description>&lt;P&gt;A complete guide to calculating Databricks Lakebase costs. Learn pricing components, SQL examples using system tables, and how to build a reusable LSQL dashboard for cost monitoring.&lt;/P&gt;</description>
      <pubDate>Tue, 12 Aug 2025 14:36:26 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/partner-databricks-lakebase-costing-compute-storage-amp-reusable/ba-p/127945</guid>
      <dc:creator>Nivethan_Venkat</dc:creator>
      <dc:date>2025-08-12T14:36:26Z</dc:date>
    </item>
    <item>
      <title>[PARTNER BLOG] Benchmarking Databricks Lakebase and AWS Aurora (PostgreSQL engine) using pgbench</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/partner-blog-benchmarking-databricks-lakebase-and-aws-aurora/ba-p/126575</link>
      <description>&lt;P&gt;&lt;LI-TOC indent="15" liststyle="disc" maxheadinglevel="3"&gt;&lt;/LI-TOC&gt;&lt;/P&gt;
&lt;H1 id="a864" class="ala kf kg bf kh pr alb ps kl pt alc pu kp pv ald pw px py ale pz qa qb alf qc qd alg bk" data-selectable-paragraph=""&gt;A Quick Word Before We Dive In&lt;/H1&gt;
&lt;P class="pw-post-body-paragraph lz ma kg mb b mc alh me mf mg ali mi mj kq alj ml mm ku alk mo mp ky all mr ms mt jz bk" data-selectable-paragraph=""&gt;In&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mb mu"&gt;Part-1&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;we introduced Databricks Lakebase architecture — essentially a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mb mu"&gt;PostgreSQL‑compatible OLTP layer&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that sits next to Delta tables inside the Databricks Lakehouse. If that’s new to you, start&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A class="ag amk" href="https://community.databricks.com/t5/technical-blog/partner-blog-introduction-to-databricks-lakebase-unified-oltp/ba-p/126301" target="_self" data-discover="true"&gt;&lt;EM class="alq"&gt;here&lt;/EM&gt;&lt;/A&gt;&lt;EM class="alq"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/EM&gt;and learn more on how to spin it up, connect a psql client, and load a starter dataset into its Postgres‑compatible front‑end. With the environment in place, it’s time to answer the next logical question:&lt;/P&gt;
&lt;BLOCKQUOTE class="aln alo alp"&gt;
&lt;P class="lz ma alq mb b mc md me mf mg mh mi mj kq mk ml mm ku mn mo mp ky mq mr ms mt jz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mb mu"&gt;“How does Lakebase behave under real OLTP pressure, and how does that compare to a well‑known managed Postgres?”&lt;/STRONG&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P class="pw-post-body-paragraph lz ma kg mb b mc md me mf mg mh mi mj kq mk ml mm ku mn mo mp ky mq mr ms mt jz bk" data-selectable-paragraph=""&gt;This article walks through the methodology, command lines, and metrics captured during benchmarking.&lt;/P&gt;
&lt;H1 class="wx wy sh as wz kn xa ko kr ks xb kt kw kx xc ky lb lc xd ld lg lh xe li ll xf by" data-selectable-paragraph=""&gt;&amp;nbsp;&lt;/H1&gt;
&lt;H1 id="aa28" class="wx wy sh as wz kn xa ko kr ks xb kt kw kx xc ky lb lc xd ld lg lh xe li ll xf by" data-selectable-paragraph=""&gt;Why Benchmark Matters&lt;/H1&gt;
&lt;P class="pw-post-body-paragraph xg xh sh xi b sv xj xk xl sx xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb ix by" data-selectable-paragraph=""&gt;Anecdotes and marketing slides are helpful, but nothing beats&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="xi gt"&gt;an empirical workload run under controlled conditions&lt;/STRONG&gt;. Benchmarks reveal:&lt;/P&gt;
&lt;TABLE class="lia-align-left" style="height: 201px; width: 100%;" border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="28.375149342891277%" height="49px" style="background-color: grey;"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Trade-off&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="63.381123058542414%" height="49px" style="background-color: grey;"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;What we learn from benchmarks &lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="28.375149342891277%" height="43px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Latency vs. Throughput&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="63.381123058542414%" height="43px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;When does response time rise as you chase higher TPS? &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="28.375149342891277%" height="44px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Scalability limits&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="63.381123058542414%" height="44px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Does performance collapse once the buffer cache is cold?&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="28.375149342891277%" height="44px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Operational complexity&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="63.381123058542414%" height="44px"&gt;How do connection limits, poolers and locking behave at high concurrency?&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P class="pw-post-body-paragraph xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb ix by" data-selectable-paragraph=""&gt;It surfaces trade‑offs and behavioural differences so you can decide what matters for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="yd"&gt;your&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;application. With that in mind, this article records&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="yd"&gt;what we observed&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;when running the same&lt;STRONG class="xi gt"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;CODE class="cv zi zj zk zl b"&gt;pgbench&lt;/CODE&gt;&lt;STRONG class="xi gt"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;script against:&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI id="2903" class="xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Databricks Lakebase&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI id="b144" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;AWS Aurora&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;(PostgreSQL engine)&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1 id="f49b" class="wx wy sh as wz kn xa ko kr ks xb kt kw kx xc ky lb lc xd ld lg lh xe li ll xf by" data-selectable-paragraph=""&gt;About the Benchmarking Tool - pgbench&lt;/H1&gt;
&lt;P class="pw-post-body-paragraph xg xh sh xi b sv xj xk xl sx xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb ix by" data-selectable-paragraph=""&gt;You can benchmark a Postgres‑compatible engine in many ways:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="yd"&gt;custom micro‑services, JVM stress tests,&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and so on. For this study we use&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;&lt;STRONG class="xi gt"&gt;pgbench&lt;/STRONG&gt;&lt;/CODE&gt;, the canonical tool that ships with PostgreSQL itself:&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI id="d6a7" class="xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;Generates a mix of single‑row selects, updates, and account transfers.&lt;/LI&gt;
&lt;LI id="4d51" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;Lets you plug in a same&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="xi gt"&gt;script&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to better mimic your schema (&lt;EM class="yd"&gt;can be found in the repo below&lt;/EM&gt;).&lt;/LI&gt;
&lt;LI id="ba05" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;Produces TPS and latency histograms that are easy to parse and visualise.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1 class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by"&gt;Benchmarking&lt;/H1&gt;
&lt;P&gt;Let's deep dive into the benchmarking of Databricks Lakebase with AWS Aurora&lt;/P&gt;
&lt;H2 id="2979" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by" data-selectable-paragraph=""&gt;Repository &amp;amp; Reproducibility&lt;/H2&gt;
&lt;P&gt;&lt;SPAN&gt;Complete procedure for performing the benchmark of Databricks Lakebase is available in the github repo:&amp;nbsp;&lt;/SPAN&gt;&lt;A class="bg yc" href="https://github.com/dediggibyte/diggi_lakebase" target="_blank" rel="noopener ugc nofollow"&gt;https://github.com/dediggibyte/diggi_lakebase&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Benchmark repo — README" style="width: 998px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18535iAD1D48455EF650FD/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753626990118.png" alt="Benchmark repo — README" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Benchmark repo — README&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="7693" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by" data-selectable-paragraph=""&gt;Environment&lt;/H2&gt;
&lt;H3&gt;&lt;STRONG&gt;Hardware / Configuration:&lt;/STRONG&gt;&lt;/H3&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="18.39904420549582%" height="49px" style="background-color: grey;"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Dimension&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="32.97491039426524%" height="49px" style="background-color: grey;"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Lakebase&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="48.62604540023895%" height="49px" style="background-color: grey;"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Aurora DSQL (PostgreSQL)&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="18.39904420549582%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Compute&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="32.97491039426524%" height="30px"&gt;1 CU (Capacity Unit)- 16GB RAM&lt;/TD&gt;
&lt;TD width="48.62604540023895%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;1 router + 8 shards,&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;db.r8g.large&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;(8 vCPU each)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="18.39904420549582%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Storage&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="32.97491039426524%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Delta cache (NVMe SSD)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="48.62604540023895%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;gp3&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;100 GiB, 3 k IOPS&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="18.39904420549582%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Region&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="32.97491039426524%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;STRONG&gt;us-east-2&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;(Ohio)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="48.62604540023895%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;STRONG&gt;us-east-2&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;(Ohio)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="18.39904420549582%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Client VM&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="32.97491039426524%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;c7g.xlarge&lt;/STRONG&gt;&lt;SPAN&gt;, same AZ&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="48.62604540023895%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;c7g.xlarge&lt;/STRONG&gt;&lt;SPAN&gt;, same AZ&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;H2 id="c8fd" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by" data-selectable-paragraph=""&gt;Executions&lt;/H2&gt;
&lt;H3&gt;&lt;STRONG class="xi gt"&gt;Databricks Lakebase - 240s Run:&lt;/STRONG&gt;&lt;/H3&gt;
&lt;LI-CODE lang="markup"&gt;pgbench -n \
  -h "$LAKEBASE_HOST" -p "$LAKEBASE_PORT" -U "$PGUSER" \
  -f custom_test.sql \
  -T 240 \
  -c 180 \
  -j 6 \
  "$PGDATABASE"&lt;/LI-CODE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Environment variables exported — Lakebase (240s run)" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18536i59CBAE2DF54E221C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753628312928.png" alt="Environment variables exported — Lakebase (240s run)" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Environment variables exported — Lakebase (240s run)&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG class="xi gt"&gt;Databricks Lakebase - 180s Run:&lt;/STRONG&gt;&lt;/H3&gt;
&lt;LI-CODE lang="markup"&gt;pgbench -n \
  -h "$LAKEBASE_HOST" -p "$LAKEBASE_PORT" -U "$PGUSER" \
  -f custom_test.sql \
  -T 180 \
  -c 180 \
  -j 6 \
  "$PGDATABASE"&lt;/LI-CODE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Environment variables exported — Lakebase (180s run)" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18537i5F4570B0FBA09BD9/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_1-1753628396726.png" alt="Environment variables exported — Lakebase (180s run)" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Environment variables exported — Lakebase (180s run)&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG class="xi gt"&gt;AWS Aurora (PGSQL) - 240s Run:&lt;/STRONG&gt;&lt;/H3&gt;
&lt;LI-CODE lang="markup"&gt;pgbench -n \
  -h "$AURORA_HOST" -p "$AURORA_PORT" -U "$PGUSER" \
  -f custom_test.sql \
  -T 240 \
  -c 180 \
  -j 6 \
  "$PGDATABASE"&lt;/LI-CODE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Environment variables exported — Aurora (240s run)" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18538iC59A783741C487E7/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753628586417.png" alt="Environment variables exported — Aurora (240s run)" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Environment variables exported — Aurora (240s run)&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG class="xi gt"&gt;AWS Aurora (PGSQL) - 180s Run:&lt;/STRONG&gt;&lt;/H3&gt;
&lt;LI-CODE lang="markup"&gt;pgbench -n \
  -h "$AURORA_HOST" -p "$AURORA_PORT" -U "$PGUSER" \
  -f custom_test.sql \
  -T 180 \
  -c 180 \
  -j 6 \
  "$PGDATABASE"&lt;/LI-CODE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Environment variables exported — Aurora (180s run)" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18539i2C6F5D84D6AFFB42/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_1-1753628682558.png" alt="Environment variables exported — Aurora (180s run)" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Environment variables exported — Aurora (180s run)&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG class="xi gt"&gt;Interpreting&amp;nbsp; &amp;nbsp;&lt;/STRONG&gt;&lt;CODE class="cv zi zj zk zl b"&gt;&lt;STRONG class="xi gt"&gt;pgbench&lt;/STRONG&gt;&lt;/CODE&gt;&amp;nbsp; &amp;nbsp;&lt;STRONG class="xi gt"&gt;summary&lt;/STRONG&gt;&lt;/H2&gt;
&lt;TABLE border="1" width="100.10740436341901%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="47px" style="background-color: grey;"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Field&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="47px" style="background-color: grey;"&gt;&lt;STRONG&gt;Example&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="47px" style="background-color: grey;"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Take-away&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 40px;"&gt;
&lt;TD width="24.544504181600956%" height="57px"&gt;&lt;STRONG&gt;Scaling factor&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="57px"&gt;1&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="57px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Internally&lt;/SPAN&gt;&lt;CODE class="cv zi zj zk zl b" style="font-weight: bold;"&gt;&lt;STRONG class="xi gt"&gt;pgbench&lt;/STRONG&gt;&lt;/CODE&gt;&lt;SPAN&gt;multiplies scaling factor; for the loaded 4 M in respective Database system.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="39px"&gt;&lt;STRONG&gt;Clients&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="39px"&gt;180&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="39px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Simultaneous sessions hitting the server.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="37px"&gt;&lt;STRONG&gt;Threads&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="37px"&gt;6&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="37px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Worker threads on the benchmark &lt;/SPAN&gt;&lt;SPAN&gt;&lt;STRONG&gt;driver&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;; keep ≤ driver CPU cores.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="35px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Duration&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="35px"&gt;240 s&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="35px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Timed, steady&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;state window after a 2&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;s ramp&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;up.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="40px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Transactions processed&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="40px"&gt;373 785&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="40px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Divided by 240 s → TPS.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="40px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Latency average&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="40px"&gt;103.60 ms&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="40px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Mean client&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;perceived response time.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="38px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Failed Transactions&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="38px"&gt;0 (0 %)&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="38px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Deadlocks or serialisation retries.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="39px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Initial Connection time&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="39px"&gt;24 952 ms&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="39px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;One&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;off cost of opening 180 connections.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="37px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;TPS&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="37px"&gt;1737&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="37px"&gt;&amp;nbsp;The headline throughput number.&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;H2 id="d38b" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by" data-selectable-paragraph=""&gt;Workload details&lt;/H2&gt;
&lt;TABLE border="1" width="77.89057830245069%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="43px" style="background-color: grey;"&gt;&lt;STRONG&gt;Parameter&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="43px" style="background-color: grey;"&gt;&lt;STRONG&gt;Value&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;&lt;STRONG&gt;Tool&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;&lt;CODE class="cv zi zj zk zl b" style="font-weight: bold;"&gt;&lt;STRONG class="xi gt"&gt;pgbench&lt;/STRONG&gt;&lt;/CODE&gt;&amp;nbsp;16.9&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Script&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;CODE class="cv zi zj zk zl b" style="font-weight: bold;"&gt;&lt;STRONG class="xi gt"&gt;custom_test.sql&lt;/STRONG&gt;&lt;/CODE&gt;&amp;nbsp;- &lt;/SPAN&gt;&lt;SPAN&gt;random look&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;ups + indexed updates&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Dataset&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;&lt;STRONG&gt;4 000 000&lt;/STRONG&gt; rows (scale ~ 100)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Concurrency&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;180 clients&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;(both engines) &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Threads&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;&lt;SPAN&gt;6 (&lt;/SPAN&gt;&lt;STRONG&gt;-j 6&lt;/STRONG&gt;&lt;SPAN&gt;, matches vCPU of driver VM)&lt;/SPAN&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Durations&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;&lt;SPAN&gt;180 s &lt;/SPAN&gt;&lt;EM&gt;and&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;240 s runs&lt;/SPAN&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Repeats&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;3 runs each; medians reported&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Failures&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;&amp;nbsp;&lt;STRONG&gt;0 %&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;in every run&lt;/SPAN&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;H2 id="7563" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by" data-selectable-paragraph=""&gt;Results at-a-Glance (4 Million‑Row Dataset, 180 Clients)&lt;/H2&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="20%" height="46px" style="background-color: grey;"&gt;&lt;STRONG&gt;Engine&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="46px" style="background-color: grey;"&gt;&lt;STRONG&gt;Run length&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="46px" style="background-color: grey;"&gt;&lt;STRONG&gt;TPS (median)&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="46px" style="background-color: grey;"&gt;&lt;STRONG&gt;Avg Latency&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="46px" style="background-color: grey;"&gt;&lt;STRONG&gt;Txn(s) Processed&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Lakebase&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;180 s&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;&lt;STRONG&gt;1731&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;103.97 ms&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;267 613&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Lakebase&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;240 s&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;&lt;STRONG&gt;1737&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;103.60 ms&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;373 785&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Aurora PostgreSQL&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;180 s&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;&lt;STRONG&gt;1509&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;119.28 ms&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;241 034&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Aurora PostgreSQL&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;240 s&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;&lt;STRONG&gt;1508&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;119.37 ms&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;&amp;nbsp;331 148&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;H3&gt;&lt;SPAN&gt;Key take-aways:&lt;/SPAN&gt;&lt;/H3&gt;
&lt;UL class=""&gt;
&lt;LI id="8830" class="xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Flat lines:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Both engines kept TPS almost flat between&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;180s and 240s&lt;/CODE&gt;, indicating the buffer cache stayed warm.&lt;/LI&gt;
&lt;LI id="54fc" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Latency Delta:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Lakebase averaged&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;~15 ms faster per transaction&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;at the same concurrency.&lt;/LI&gt;
&lt;LI id="3af6" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Clean runs:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Zero failed or aborted transactions across all tests.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 id="2d7d" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by"&gt;What Else is Observed?&lt;/H2&gt;
&lt;OL class=""&gt;
&lt;LI id="08ed" class="xg xh sh xi b sv xj xk xl sx xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb acd zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Region affinity:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Our first Lakebase attempt used a driver VM in another AZ; TPS cratered by ~50 %. Lesson: keep client and database in the same AZ for OLTP benchmarks.&lt;/LI&gt;
&lt;LI id="4ba9" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb acd zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Data‑volume resilience:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;A pilot with only 1M rows clocked 1880 TPS on Lakebase. Bumping to 4 M rows shaved off ~8 % — a healthy sign.&lt;/LI&gt;
&lt;LI id="3039" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb acd zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Connection spikes:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Spooling up 180 new sessions took 20–25 s on&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="yd"&gt;both&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;engines. Harmless for steady workloads; something to watch for burst‑and‑idle patterns.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2 id="3e8e" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by"&gt;Deep‑Dive: Parameter Tuning&lt;/H2&gt;
&lt;TABLE border="1" width="99.07165271966525%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="19.623655913978496%" height="50px" style="background-color: grey;"&gt;&lt;STRONG&gt;Knob&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20.459976105137397%" height="50px" style="background-color: grey;"&gt;&lt;STRONG&gt;Databricks Lakebase&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="14.964157706093186%" height="50px" style="background-color: grey;"&gt;&lt;STRONG&gt;AWS Aurora&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="44.02486945836553%" height="50px" style="background-color: grey;"&gt;&lt;STRONG&gt;Why it matters&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="19.623655913978496%" height="57px"&gt;&lt;STRONG&gt;&lt;CODE class="cv zi zj zk zl b"&gt;shared buffers&lt;/CODE&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20.459976105137397%" height="57px"&gt;Ignored&lt;/TD&gt;
&lt;TD width="14.964157706093186%" height="57px"&gt;75 % RAM&lt;/TD&gt;
&lt;TD width="44.02486945836553%" height="57px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Aurora benefits from a large shared cache; Lakebase handles buffering internally.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="19.623655913978496%" height="57px"&gt;&lt;STRONG&gt;work_mem&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20.459976105137397%" height="57px"&gt;4 MB&lt;/TD&gt;
&lt;TD width="14.964157706093186%" height="57px"&gt;32-64 MB&lt;/TD&gt;
&lt;TD width="44.02486945836553%" height="57px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Impacts join &amp;amp; sort spilling; not hit in our micro&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;benchmark.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="19.623655913978496%" height="30px"&gt;&lt;STRONG&gt;&lt;CODE class="cv zi zj zk zl b"&gt;max connections&lt;/CODE&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20.459976105137397%" height="30px"&gt;1024 hard-cap&lt;/TD&gt;
&lt;TD width="14.964157706093186%" height="30px"&gt;500 x router&lt;/TD&gt;
&lt;TD width="44.02486945836553%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Dictates pooler settings.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="19.623655913978496%" height="57px"&gt;&lt;STRONG&gt;Autovacuum&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20.459976105137397%" height="57px"&gt;Auto&lt;/TD&gt;
&lt;TD width="14.964157706093186%" height="57px"&gt;Auto&lt;/TD&gt;
&lt;TD width="44.02486945836553%" height="57px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Neither engine needed vacuum tweaks for this workload.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="19.623655913978496%" height="30px"&gt;&lt;STRONG&gt;Connection pooling&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20.459976105137397%" height="30px"&gt;&lt;STRONG&gt;Advised&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="14.964157706093186%" height="30px"&gt;&lt;STRONG&gt;Advised&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="44.02486945836553%" height="30px"&gt;&amp;nbsp;Smooths bursty client behaviour.&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;H2 id="5c11" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by"&gt;Observability Shortcuts&lt;/H2&gt;
&lt;H3&gt;&lt;STRONG class="xi gt"&gt;Lakebase UI&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;Monitor ▶︎ Lakebase&amp;nbsp;shows live&amp;nbsp;&lt;SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;TPS&lt;/CODE&gt;&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;P95 latency&lt;/CODE&gt;&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;active connections&lt;/CODE&gt;&lt;/SPAN&gt;, and&amp;nbsp;&lt;SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;storage utilisation&lt;/CODE&gt;&lt;/SPAN&gt;%.&lt;/P&gt;
&lt;H2&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Databricks Lakebase Metrics" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18543iC18DCFAA8DF54F06/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753631375337.png" alt="Databricks Lakebase Metrics" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Databricks Lakebase Metrics&lt;/span&gt;&lt;/span&gt;&lt;/H2&gt;
&lt;H3&gt;&lt;SPAN&gt;Aurora&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN&gt;CloudWatch metrics (&lt;CODE class="cv zi zj zk zl b"&gt;DatabaseConnections&lt;/CODE&gt;,&amp;nbsp;&lt;CODE class="cv zi zj zk zl b"&gt;SelectLatency&lt;/CODE&gt;,&amp;nbsp;&lt;CODE class="cv zi zj zk zl b"&gt;CommitLatency&lt;/CODE&gt;) plus&amp;nbsp;&lt;CODE class="cv zi zj zk zl b"&gt;pg_stat_statements&lt;/CODE&gt;&amp;nbsp;for top queries.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="AWS Cloudwatch Metrics" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18544i2103495391801AE4/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_1-1753631444596.png" alt="AWS Cloudwatch Metrics" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;AWS Cloudwatch Metrics&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H1 id="dc2b" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by"&gt;Conclusion - Key Takeaways and What’s Next&lt;/H1&gt;
&lt;P class="pw-post-body-paragraph xg xh sh xi b sv xj xk xl sx xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb ix by" data-selectable-paragraph=""&gt;In this post we&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="xi gt"&gt;ran a head‑to‑head&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;CODE class="cv zi zj zk zl b"&gt;&lt;STRONG class="xi gt"&gt;pgbench&lt;/STRONG&gt;&lt;/CODE&gt;&lt;STRONG class="xi gt"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;benchmark on a 4 million‑row dataset&lt;/STRONG&gt;—same script, same client count—against Databricks Lakebase and AWS Aurora (PostgreSQL). From seeding data to reading the latency histogram, a few things stood out:&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI id="a23c" class="xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Identical workload, distinct personalities:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Lakebase’s vectorised execution path edged out Aurora on average latency (~15 ms per transaction) while both engines held steady throughput around 1.5–1.7 k TPS with zero failures.&lt;/LI&gt;
&lt;LI id="7dfd" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Topology still matters:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Keeping the driver VM in the same AZ as the database doubled Lakebase TPS versus an earlier cross‑AZ trial — a reminder that network round‑trips still rule OLTP.&lt;/LI&gt;
&lt;LI id="c0e3" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Good defaults get you far:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Out‑of‑the‑box settings (no&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;shared_buffers&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;tuning, no custom autovacuum) were enough to clear enterprise‑grade throughput on both platforms.&lt;/LI&gt;
&lt;LI id="8fb0" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Connection spikes are the new cold start:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Spooling up 180 sessions took ~20–25 s for both engines. If your workload bursts from zero, a pooler is mandatory.&lt;/LI&gt;
&lt;LI id="0a38" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Schema awareness pays dividends:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Lakebase lost only ~8 % TPS when scaling from 1 M to 4 M rows, underscoring the value of tight indexing over brute‑force hardware.&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="ix qi sd se sf"&gt;
&lt;DIV class="o q"&gt;
&lt;DIV class="dj n dk dl dm dn"&gt;
&lt;H2 id="a381" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by" data-selectable-paragraph=""&gt;Caveats &amp;amp; Future Work&lt;/H2&gt;
&lt;UL class=""&gt;
&lt;LI id="9ea0" class="xg xh sh xi b sv xj xk xl sx xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Lakebase:&lt;/STRONG&gt;&amp;nbsp;Cross‑region DR, backup limits, and fail‑over speeds are still being hardened.&lt;/LI&gt;
&lt;LI id="c480" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Chaos testing:&lt;/STRONG&gt;&amp;nbsp;An induced&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="xi gt"&gt;Aurora Limitless&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;router fail‑over recovered in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="xi gt"&gt;&amp;lt; 30 s&lt;/STRONG&gt;; a forced Lakebase database restart recovered in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="xi gt"&gt;~ 20 s&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(smaller footprint, but worth retesting at GA).&lt;/LI&gt;
&lt;LI id="b189" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Next stop - Part 3: &lt;/STRONG&gt;We’ll put a price‑tag on these TPS numbers, dive into reserved‑instance math, and see how database autoscales (and bills) when the workload starts and stops. Stay tuned!&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="o q na fk ir ach" role="separator"&gt;
&lt;H1 id="045c" class="wx wy sh as wz kn xa ko kr ks xb kt kw kx xc ky lb lc xd ld lg lh xe li ll xf by" data-selectable-paragraph=""&gt;References&lt;/H1&gt;
&lt;UL&gt;
&lt;LI class="pw-post-body-paragraph xg xh sh xi b sv xj xk xl sx xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb ix by"&gt;&lt;A href="https://community.databricks.com/t5/technical-blog/partner-blog-introduction-to-databricks-lakebase-unified-oltp/ba-p/126301" target="_self"&gt;Introduction to Lakebase and configuration&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="pw-post-body-paragraph xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb ix by"&gt;&lt;A class="bg yc" href="https://docs.databricks.com/aws/en/oltp/" target="_blank" rel="nofollow noopener ugc"&gt;Databricks Lakebase documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="pw-post-body-paragraph xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb ix by"&gt;&lt;A class="bg yc" href="https://www.databricks.com/blog/announcing-lakebase-public-preview" target="_blank" rel="nofollow noopener ugc"&gt;Public Preview announcement&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="pw-post-body-paragraph xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb ix by"&gt;&lt;A class="bg yc" href="https://github.com/dediggibyte/diggi_lakebase" target="_blank" rel="nofollow noopener ugc"&gt;Benchmark reference repo&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="ix qi sd se sf"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="ix qi sd se sf"&gt;&lt;STRONG class="xi gt"&gt;Disclaimer:&lt;BR /&gt;&lt;/STRONG&gt;&lt;EM&gt;These results reflect each engine’s default configuration. Feedback is welcome — send your ideas and we’ll happily rerun the tests with any community‑driven tweaks.&lt;/EM&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 29 Jul 2025 11:02:27 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/partner-blog-benchmarking-databricks-lakebase-and-aws-aurora/ba-p/126575</guid>
      <dc:creator>Nivethan_Venkat</dc:creator>
      <dc:date>2025-07-29T11:02:27Z</dc:date>
    </item>
    <item>
      <title>[Partner Blog] Introduction to Databricks Lakebase: Unified OLTP+OLAP Engine for AI-Native Workloads</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/partner-blog-introduction-to-databricks-lakebase-unified-oltp/ba-p/126301</link>
      <description>&lt;P&gt;&lt;LI-TOC indent="15" liststyle="disc" maxheadinglevel="2"&gt;&lt;/LI-TOC&gt;&lt;/P&gt;
&lt;H1 id="c3ac" class="lr ls fv bf lt lu lv gv lw lx ly gy lz ma mb mc md me mf mg mh mi mj mk ml mm bk" data-selectable-paragraph=""&gt;Introduction&lt;/H1&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;Databricks Lakebase is a new,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;fully managed OLTP (Online Transaction Processing) database engine&lt;/STRONG&gt;, designed to seamlessly integrate transactional and analytical workloads within the Databricks Data Intelligence Platform. Currently available in public preview across multiple regions, Lakebase is built on a Postgres foundation and aims to bridge the gap between traditional databases and modern data lake architectures.&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;This is an introductory blog about Databricks Lakebase and it’s capabilities, more detailed information will be published in Part-2 of this blog series.&lt;/P&gt;
&lt;H1 class="lr ls fv bf lt lu lv gv lw lx ly gy lz ma mb mc md me mf mg mh mi mj mk ml mm bk" data-selectable-paragraph=""&gt;&amp;nbsp;&lt;/H1&gt;
&lt;H1 id="1cc4" class="lr ls fv bf lt lu lv gv lw lx ly gy lz ma mb mc md me mf mg mh mi mj mk ml mm bk" data-selectable-paragraph=""&gt;&lt;STRONG class="am"&gt;Motivation&lt;/STRONG&gt;&lt;/H1&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;Online Transaction Processing (OLTP) systems have long been the backbone of enterprise software — powering everything&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;from banking applications to e-commerce platforms&lt;/STRONG&gt;. Systems like PostgreSQL, MySQL, and Oracle have matured over decades to handle millions of transactions per second in structured, stateful workloads.&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;But as organisations shift toward AI-driven applications, real-time analytics, and data-centric architecture, the limitations of traditional OLTP systems become increasingly apparent.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Limitations with traditional OLTP" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18455i814BCC3428A5C13C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753348146388.png" alt="Limitations with traditional OLTP" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Limitations with traditional OLTP&lt;/span&gt;&lt;/span&gt;&lt;SPAN&gt;In this landscape,&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw" style="font-family: inherit;"&gt;Databricks Lakebase&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;emerges as a game-changing offering. A fully-managed, PostgreSQL-compatible OLTP engine&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw" style="font-family: inherit;"&gt;natively integrated&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;into the Databricks Lakehouse Platform, Lakebase blends the transactional strength of Postgres with the elasticity, analytics, and governance of the Lakehouse.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 id="5987" class="lr ls fv bf lt lu lv gv lw lx ly gy lz ma mb mc md me mf mg mh mi mj mk ml mm bk" data-selectable-paragraph=""&gt;&lt;STRONG class="am"&gt;What is Databricks Lakebase?&lt;/STRONG&gt;&lt;/H1&gt;
&lt;P data-selectable-paragraph=""&gt;Lakebase allows organisations to&amp;nbsp;create OLTP databases directly on Databricks, leveraging Databricks-managed storage and compute.&amp;nbsp;This integration means you can run&amp;nbsp;high-throughput, low-latency transactional workloads&amp;nbsp;(like those traditionally handled by PostgreSQL or cloud-native OLTP systems) while&amp;nbsp;keeping data in sync with your analytical Lakehouse environment.&lt;/P&gt;
&lt;H1&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Lakebase highlights" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18456i1EA9AB47D8C6A892/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_1-1753348317436.png" alt="Lakebase highlights" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Lakebase highlights&lt;/span&gt;&lt;/span&gt;&lt;/H1&gt;
&lt;H1&gt;&lt;STRONG class="am"&gt;Key Features&lt;/STRONG&gt;&lt;/H1&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Key features" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18457i8A3BFB09744AE0C8/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753348404135.png" alt="Key features" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Key features&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Lakebase gives developers a fully-managed Postgres database with cloud-native enhancements like instant provisioning, branching (think&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="cx ot ou ov ow b"&gt;git checkout&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;and&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="cx ot ou ov ow b"&gt;git branch&lt;/CODE&gt;&lt;SPAN&gt;for databases), and real-time sync with Delta for analytics.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H1 data-selectable-paragraph=""&gt;&amp;nbsp;&lt;/H1&gt;
&lt;H1 id="fc99" data-selectable-paragraph=""&gt;Working with Lakebase&lt;/H1&gt;
&lt;P data-selectable-paragraph=""&gt;Lakebase integrates closely with Databricks unity catalog and managed at workspace level, below architecture depict the placement of Lakebase along with analytical layer.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Target Architecture (OLAP with OLTP in Databricks)" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18458i9A3EAD462BF3191C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_1-1753348504082.png" alt="Target Architecture (OLAP with OLTP in Databricks)" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Target Architecture (OLAP with OLTP in Databricks)&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="da5b" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk"&gt;1. Prerequisites:&lt;/H2&gt;
&lt;UL class=""&gt;
&lt;LI id="e1c9" class="mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Unity Catalog must be enabled&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in your workspace&lt;/LI&gt;
&lt;LI id="c378" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Access granted to Lakebase&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(via Admin Console or Support)&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 id="1757" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;2. Enabling Lakebase:&lt;/H2&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;Currently the feature is in Public Preview as highlighted in the below image, but soon it will be GA.&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;&lt;SPAN&gt;Enable PostgreSQL OLTP database Preview:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Nivethan_Venkat_0-1753348665256.png" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18459i02CDA2F8790E8C0C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753348665256.png" alt="Nivethan_Venkat_0-1753348665256.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="9e14" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;3.Creating a Lakebase Database:&lt;/H2&gt;
&lt;UL class=""&gt;
&lt;LI id="1c8d" class="mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;Click on&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;&lt;EM class="nk"&gt;Compute tab&lt;/EM&gt;&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in Workspace UI&lt;/LI&gt;
&lt;LI id="3428" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;Click on and navigate to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;&lt;EM class="nk"&gt;OLTP Database instances&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;tab&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in compute pane&lt;/LI&gt;
&lt;LI id="2d12" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;Click&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;&lt;EM class="nk"&gt;Create database instance&lt;/EM&gt;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Nivethan_Venkat_1-1753348726116.png" style="width: 400px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18460iD6CC1293CA2F4C96/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Nivethan_Venkat_1-1753348726116.png" alt="Nivethan_Venkat_1-1753348726116.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="e153" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;4. Authentication:&lt;/H2&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;Once we have Lakebase instance next question comes in mind… How to use Lakebase instance (database) ?&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;To use one can&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;connect to database via SQL Client or Programatically over JDBC in Notebook&lt;/STRONG&gt;. An OAuth token is needed for identities to connecting to database.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;Identities&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;could be&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;databricks users (user to machine ) or service principal (machine to machine )&lt;/STRONG&gt;. Tokens can be obtained from UI or programmatically as standard process. More on this can be found&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A class="ag nj" href="https://docs.databricks.com/aws/en/oltp/oauth" target="_blank" rel="noopener ugc nofollow"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Obtaining Tokens Manually" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18461i6D8420888A663BED/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_2-1753348835362.png" alt="Obtaining Tokens Manually" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Obtaining Tokens Manually&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Obtaining Tokens Programmatically" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18462iC36CA7C426FB0F6D/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_3-1753348878767.png" alt="Obtaining Tokens Programmatically" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Obtaining Tokens Programmatically&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="e9d7" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;5. Authorisation:&lt;/H2&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;As Lakebase is managed PostgreSQL it offers&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;both UnityCatalog and PGSQL personas to govern data access&lt;/STRONG&gt;. As Unity catalog is unified governance component of Databricks stack, it is inherently integrated with Lakebase. Moreover users who want to use PostgresSQL interface they can use PostgresSQL roles as well.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Lakebases permissions set up with different Connection mechanism" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18463i1C744A61F3434DBF/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_4-1753349335505.png" alt="Lakebases permissions set up with different Connection mechanism" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Lakebases permissions set up with different Connection mechanism&lt;/span&gt;&lt;/span&gt;&lt;SPAN&gt;To perform database operations like read and write on postgres database, follow the best practices applicable on&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;database_roles&amp;nbsp;&lt;SPAN&gt;and&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;privileges&amp;nbsp;&lt;SPAN&gt;required on respective role.&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk"&gt;&lt;STRONG class="mp fw"&gt;Database_roles:&lt;/STRONG&gt;&lt;A class="ag nj" href="https://www.postgresql.org/docs/current/database-roles.html" target="_blank" rel="noopener ugc nofollow"&gt;https://www.postgresql.org/docs/current/database-roles.html&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk"&gt;&lt;STRONG class="mp fw"&gt;Privileges:&lt;/STRONG&gt;&amp;nbsp;&lt;A class="ag nj" href="https://www.postgresql.org/docs/current/ddl-priv.html" target="_blank" rel="noopener ugc nofollow"&gt;https://www.postgresql.org/docs/current/ddl-priv.html&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;For leveraging more privileges w.r.to RLS and other Postgres native roles, refer the above links mentioned against&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;Database_roles&lt;/STRONG&gt;&amp;nbsp;and&amp;nbsp;&lt;STRONG class="mp fw"&gt;Privileges.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Postgres Native Permission for Databricks Identity" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18464i18CF910E599BAE97/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_5-1753349422687.jpeg" alt="Postgres Native Permission for Databricks Identity" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Postgres Native Permission for Databricks Identity&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="cb40" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;6. Using Lakebase data in Analytical load (No ETL):&lt;/H2&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Nivethan_Venkat_6-1753349466077.png" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18466i513D34C32083DC21/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_6-1753349466077.png" alt="Nivethan_Venkat_6-1753349466077.png" /&gt;&lt;/span&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;To unify the Databricks user experience it make sense to have a way to access and govern database instance using unity catalog.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;The database created in Lakebase can be registered as a catalog in Unity Catalog&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for better governance and access provisioning. It act as federated data source which can be easily used in analytical processing.&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;&lt;SPAN&gt;This means we can&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw" style="font-family: inherit;"&gt;access OLTP data without any ETL&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;into our analytical work loads.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Added Database as Catalog into UC" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18468i04EE67B2CECBAD43/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753359433552.jpeg" alt="Added Database as Catalog into UC" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Added Database as Catalog into UC&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Synced Lakebase Database in Unity Catalog" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18469iCC3F38C539C276FE/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_1-1753359499981.jpeg" alt="Synced Lakebase Database in Unity Catalog" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Synced Lakebase Database in Unity Catalog&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="2350" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;7. Sending Lakebase update to Lakehouse (ETL):&lt;/H2&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Nivethan_Venkat_3-1753359569631.png" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18471iC7D06C2C74315549/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_3-1753359569631.png" alt="Nivethan_Venkat_3-1753359569631.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;LakeFlow declarative pipelines is a powerful and efficient way to create and maintain a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;OLAP (DLT)&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that mirrors an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;OLTP (Lakebase)&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in your Databricks Lakehouse. It simplifies handling out-of-order data and managing updates, inserts, and deletes.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Auto CDC Delta changes from-OLTP-to-OLAP" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18472i23FD4D2925ED4B86/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_4-1753359613876.png" alt="Auto CDC Delta changes from-OLTP-to-OLAP" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Auto CDC Delta changes from-OLTP-to-OLAP&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;In the below snippet, it is provided the&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;baseline syntax for syncing delta changes from OLTP to OLAP&lt;/STRONG&gt;&lt;SPAN&gt;. Refer the&amp;nbsp;&lt;/SPAN&gt;&lt;A class="ag nj" href="https://docs.databricks.com/aws/en/dlt-ref/dlt-python-ref-apply-changes" target="_blank" rel="noopener ugc nofollow"&gt;documentation&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;for which options are necessary in your case.&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;import dlt

dlt.create_auto_cdc_flow(
 target = "&amp;lt;olap-table&amp;gt;",           #OLAP target table to be updated
 source = "&amp;lt;oltp-table&amp;gt;",           #OLTP source table to be referenced
 keys = ["key1", "key2", "keyN"],   #Columns that uniquely identify a row in the source data
 sequence_by = "&amp;lt;sequence-column&amp;gt;", #Logical order of CDC events in the source data
 ignore_null_updates = False,
 apply_as_deletes = None,
 apply_as_truncates = None,
 column_list = None,
 except_column_list = None,
 stored_as_scd_type = &amp;lt;type&amp;gt;,
 track_history_column_list = None,
 track_history_except_column_list = None
)&lt;/LI-CODE&gt;
&lt;H2 id="0114" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;8. Syncing Lakehouse update to Lakebase (Sync tables):&lt;/H2&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Nivethan_Venkat_5-1753359726397.png" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18473i43E4719FF1FFDEB0/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_5-1753359726397.png" alt="Nivethan_Venkat_5-1753359726397.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;Data can be synced to and from UC table. A synced / online table can be created on top of UC table with create&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;Synced table&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;option available under&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;Create&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;section for any UC table.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Synced Table creation from UC table" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18474i347EEF39F1BDBA85/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_6-1753359788760.png" alt="Synced Table creation from UC table" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Synced Table creation from UC table&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;STRONG class="mp fw" style="font-family: inherit;"&gt;Points to note:&lt;/STRONG&gt;&lt;EM class="fv" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/EM&gt;&lt;SPAN&gt;Synced / Online table&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw" style="font-family: inherit;"&gt;can be created under Lakebase catalog or in the separate catalog&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;with respective database instance for creating sync table.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="mn mo nk mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Optionally:&lt;/STRONG&gt;&lt;EM class="fv"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/EM&gt;&lt;STRONG class="mp fw"&gt;Primary Key&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;Timeseries Key&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;can be given in the synced table creation for fetching latest / new records from the OLAP table. For using&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;Triggered&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;/&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;Continuous&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;mode for synced table options,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;ChangeDataFeed&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;needs to be enabled on the source OLAP table.&lt;/P&gt;
&lt;H2 id="44b2" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;9. Querying Lakebase :&lt;/H2&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;There are multiple options to query the table / view from Lakebase Database.&lt;/P&gt;
&lt;P&gt;&lt;STRONG class="mp fw" style="font-family: inherit;"&gt;DBSQL:&lt;/STRONG&gt;&lt;EM class="fv" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/EM&gt;&lt;SPAN&gt;&lt;SPAN&gt;Native SQL editor with warehouse endpoint can be used to query within Databricks with respective privileges.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Querying in DBSQL layer" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18475i41D12E29F38D515F/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_7-1753359912026.jpeg" alt="Querying in DBSQL layer" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Querying in DBSQL layer&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG class="mp fw"&gt;Databricks Notebook:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;Databricks Notebook as well can be used for querying from Lakebase Database with interactive / SQL warehouse cluster.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Querying in Databricks Notebook" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18476i2DE72B7F02D88454/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_8-1753360012407.jpeg" alt="Querying in Databricks Notebook" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Querying in Databricks Notebook&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG class="mp fw"&gt;SQL Client:&lt;/STRONG&gt;&lt;EM class="fv"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/EM&gt;&lt;SPAN&gt;SQL clients can also be used to interact with the tables after authenticating with the Lakebase Database instance. More info upon using SQL clients can be found&amp;nbsp;&lt;/SPAN&gt;&lt;A class="ag nj" href="https://docs.databricks.com/aws/en/oltp/query/psql" target="_blank" rel="noopener ugc nofollow"&gt;here&lt;/A&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="DBeaver — SQL Client Desktop App" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18477i6B01A689BBCAA536/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_9-1753360069391.png" alt="DBeaver — SQL Client Desktop App" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;DBeaver — SQL Client Desktop App&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="CLI — Using psql client to interact with Lakebase Database" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18478i2C609801D5B39B6F/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_10-1753360113880.png" alt="CLI — Using psql client to interact with Lakebase Database" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;CLI — Using psql client to interact with Lakebase Database&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="4dfa" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk"&gt;10. Branching : Working with Child instance&lt;/H2&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;Lakebase allows you to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;create branches of your Postgres database almost instantly&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;and this will be useful in various scenrios like:&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI id="4f24" class="mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Rapid Data Restoration:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;Instantly restore lost data by creating a database copy from timestamp.&lt;/LI&gt;
&lt;LI id="3124" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Safe Testing and Validation:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;clone a recent production environment to safely test changes or run integration tests without affecting live data.&lt;/LI&gt;
&lt;LI id="7299" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Compliance&lt;/STRONG&gt;: Easily generate a database snapshot from any past date to support audits, reconciliations, or investigations.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Branching / Cloning DB instance" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18485iC07EC4A60F395EDC/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753360940391.jpeg" alt="Branching / Cloning DB instance" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Branching / Cloning DB instance&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Key features include:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI id="7d6a" class="mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Copy-on-write:&lt;/STRONG&gt;&amp;nbsp;Branches are lightweight clones. They initially share the parent’s data without duplication. Storage costs only increase for the changes (deltas) made within a branch.&lt;/LI&gt;
&lt;LI id="1b2b" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Isolation:&lt;/STRONG&gt;&amp;nbsp;Each branch operates independently. Changes made in one branch do not affect the parent or other branches. This is perfect for development, testing, or running experiments without impacting production data.&lt;/LI&gt;
&lt;LI id="7c7f" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Speed:&lt;/STRONG&gt;&amp;nbsp;Creating a branch takes only a few seconds.&lt;/LI&gt;
&lt;LI id="90fc" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Connection string:&lt;/STRONG&gt;&amp;nbsp;Each branch gets its own unique connection string, allowing applications to connect directly to it.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG class="mp fw"&gt;Below is the example of Lakebase database to be cloned / branched without disrupting the data in Parent DB&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Branched OLTP database for additional purpose" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18486i19ADABBFF8F035AF/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_1-1753361196162.png" alt="Branched OLTP database for additional purpose" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Branched OLTP database for additional purpose&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H1 id="249f" class="lr ls fv bf lt lu lv gv lw lx ly gy lz ma mb mc md me mf mg mh mi mj mk ml mm bk" data-selectable-paragraph=""&gt;Conclusion&lt;/H1&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;Lakebase collapses the long-standing wall between OLTP and analytics. By fusing serverless Postgres semantics, AI-native branching, and lakehouse governance, it gives engineers a single surface to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;transact, analyse, and iterate at the speed of machine learning&lt;/STRONG&gt;. For teams already on Databricks,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;adoption is a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="nk"&gt;configuration&lt;/EM&gt;, not a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="nk"&gt;migration&lt;/EM&gt;&lt;/STRONG&gt;&lt;EM class="nk"&gt;.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/EM&gt;And it unlocks low latency queries, elastic economics, and real-time Delta sync out of the box. As Lakebase heads toward GA later this year, the real question isn’t&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="nk"&gt;why&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;you’d converge OLTP and OLAP, but&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="nk"&gt;how soon&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;you’ll start.&lt;/P&gt;
&lt;H1 id="475f" class="lr ls fv bf lt lu aiy gv lw lx aiz gy lz ma aja mc md me ajb mg mh mi ajc mk ml mm bk" data-selectable-paragraph=""&gt;References&lt;/H1&gt;
&lt;UL&gt;
&lt;LI class="lr ls fv bf lt lu aiy gv lw lx aiz gy lz ma aja mc md me ajb mg mh mi ajc mk ml mm bk"&gt;&lt;STRONG class="mp fw" style="color: #1b3139; font-family: inherit; font-size: 16px;"&gt;Databricks Lakebase documentation:&lt;/STRONG&gt;&amp;nbsp;&lt;A class="ag nj" style="font-family: inherit; font-size: 16px; font-weight: normal; background-color: #ffffff;" href="https://docs.databricks.com/aws/en/oltp/" target="_blank" rel="noopener ugc nofollow"&gt;https://docs.databricks.com/aws/en/oltp/&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="mn mo nk mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk"&gt;&lt;STRONG class="mp fw"&gt;Public Preview announcement:&lt;/STRONG&gt;&amp;nbsp;&lt;A class="ag nj" href="https://www.databricks.com/blog/announcing-lakebase-public-preview" target="_blank" rel="noopener ugc nofollow"&gt;https://www.databricks.com/blog/announcing-lakebase-public-preview&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="mn mo nk mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk"&gt;&lt;STRONG class="mp fw"&gt;Product, Pricing and more:&amp;nbsp;&lt;/STRONG&gt;&lt;A class="ag nj" href="https://www.databricks.com/product/lakebase" target="_blank" rel="noopener ugc nofollow"&gt;https://www.databricks.com/product/lakebase&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="mn mo nk mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk"&gt;&lt;STRONG class="mp fw"&gt;Release notes-DataAISummit2025:&amp;nbsp;&lt;/STRONG&gt;&lt;A class="ag nj" href="https://www.databricks.com/blog/what-is-a-lakebase" target="_blank" rel="noopener ugc nofollow"&gt;https://www.databricks.com/blog/what-is-a-lakebase&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="mn mo nk mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk"&gt;&lt;STRONG class="mp fw"&gt;Benchmark repo:&amp;nbsp;&lt;/STRONG&gt;&lt;A class="ag nj" href="https://github.com/dediggibyte/diggi_lakebase" target="_blank" rel="noopener ugc nofollow"&gt;https://github.com/dediggibyte/diggi_lakebase&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 24 Jul 2025 15:05:59 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/partner-blog-introduction-to-databricks-lakebase-unified-oltp/ba-p/126301</guid>
      <dc:creator>Nivethan_Venkat</dc:creator>
      <dc:date>2025-07-24T15:05:59Z</dc:date>
    </item>
  </channel>
</rss>

