This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-website.git


The following commit(s) were added to refs/heads/master by this push:
     new 01b7ed716a00 [blog] Add Doris Summit 2026 recap (#4608)
01b7ed716a00 is described below

commit 01b7ed716a00db174acd4c6ce127ace67cb587d5
Author: Mingyu Chen (Rayner) <[email protected]>
AuthorDate: Thu Nov 12 20:08:02 2026 +0800

    [blog] Add Doris Summit 2026 recap (#4608)
    
    Publish the complete English Doris Summit 2026 recap at
    `/blog/doris-summit-2026-recap`, authored by Apache Doris · Mingyu Chen
    and dated November 11, 2026, with the recap video at the start of the
    article.
    
    The article includes four compressed content images, an 1800 × 766
    cover, and a local video poster. It preserves the supplied text and
    recording links and includes the required metadata, image alt text, and
    ASF license header.
    
    The reusable `YouTube` component initially shows the local poster and a
    play button. Activation creates the YouTube iframe in place, so the
    initial page makes no YouTube requests. The component uses existing
    theme tokens, supports keyboard activation and focus transfer, and
    provides a direct YouTube link. It adds no dependencies or video
    binaries. Registering it in the MDX component map makes it available to
    other MDX pages; converting this post to `.mdx` preserves its URL.
    
    ## Validation
    
    - Article link lint passed without errors or warnings; external links
    were reported without fetching. SEO lint reported no findings.
    - Confirmed the original body and publication metadata are preserved and
    local image references resolve.
    - Development server compiled successfully; the article, cover, and
    activated YouTube embed returned HTTP 200.
    - Automated local Chrome checks confirmed zero YouTube requests before
    activation, keyboard activation and focus transfer, responsive desktop
    and mobile layouts, theme token rendering across eight brand themes, and
    no page JavaScript errors.
    - Inspected desktop and mobile screenshots.
    - `git diff --check` passed. No production build was run, following
    `doc-tools/HOW-TO-ADD-BLOG.md`.
    
    ## Versions
    
    Not applicable: this is a Blog post and a shared MDX component; there
    are no versioned documentation content changes.
    
    - [ ] dev
    - [ ] 4.x
    - [ ] 3.x
    - [ ] 2.1 or older (not covered by version/language sync gate)
    
    ## Languages
    
    - [ ] Chinese
    - [x] English
    
    The request covers the English article only. No translated post or
    versioned documentation counterparts are required. The shared component
    marks its interface strings for translation through Docusaurus.
    
    ## Docs Checklist
    
    - [x] Checked by AI
    - [ ] Test Cases Built
    - [x] Updated required version and language counterparts, or explained
    why not
    - [x] If only one language changed, confirmed whether source/translation
    counterparts need sync
    
    Validation used static checks and an automated local browser check; no
    permanent test files were added. Blog discovery is automatic, and the
    article URL is unchanged.
    
    ---------
    
    Co-authored-by: morningman <[email protected]>
---
 blog/doris-summit-2026-recap.mdx                   | 125 +++++++++++++++++++++
 scripts/i18n/__tests__/fixtures/blog.cjs           |   2 +-
 src/components/YouTube/index.tsx                   |  61 ++++++++++
 src/components/YouTube/styles.scss                 |  87 ++++++++++++++
 src/theme/MDXComponents.js                         |   2 +
 .../images/blogs/doris-summit-2026-recap/cover.jpg | Bin 0 -> 100195 bytes
 .../fig-1-staying-fresh.jpg                        | Bin 0 -> 97909 bytes
 .../fig-2-beyond-tables.jpg                        | Bin 0 -> 101521 bytes
 .../fig-3-agents-and-data.jpg                      | Bin 0 -> 101810 bytes
 .../fig-4-into-production.jpg                      | Bin 0 -> 100144 bytes
 .../blogs/doris-summit-2026-recap/video-poster.jpg | Bin 0 -> 164390 bytes
 11 files changed, 276 insertions(+), 1 deletion(-)

diff --git a/blog/doris-summit-2026-recap.mdx b/blog/doris-summit-2026-recap.mdx
new file mode 100644
index 000000000000..1a4bcd959581
--- /dev/null
+++ b/blog/doris-summit-2026-recap.mdx
@@ -0,0 +1,125 @@
+---
+title: 'Doris Summit 2026 Recap: From Real-Time Analytics to Real-Time 
Intelligence'
+summary: 'Explore Doris Summit 2026 keynotes and production stories from 
HubSpot, Sony Interactive Entertainment, Raiffeisen Bank Romania, and more as 
Apache Doris moves toward real-time intelligence.'
+description: 'Doris Summit 2026 recap: Apache Doris 5.0, fresh data, 
multimodal analytics, AI agents, and production stories from HubSpot, Sony, and 
Raiffeisen Bank Romania.'
+keywords:
+  - 'Doris Summit 2026'
+  - 'Apache Doris 5.0'
+  - 'real-time intelligence'
+  - 'multimodal analytics'
+  - 'AI agents'
+date: '2026-11-11'
+author: 'Apache Doris · Mingyu Chen'
+tags:
+  - 'Top News'
+image: '/images/blogs/doris-summit-2026-recap/cover.jpg'
+---
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<YouTube
+  videoId="CTsaY5ISK6g"
+  title="Apache Doris Summit 2026 Recap"
+  poster="/images/blogs/doris-summit-2026-recap/video-poster.jpg"
+/>
+
+> Apache Doris, an Apache Software Foundation project, is an open-source 
database for real-time analytics and search. Teams commonly use it for 
real-time reporting, log analytics, lakehouse queries, and serving data to AI 
agents. Doris Summit is the Apache Doris community's global technical 
conference, where users, contributors, and partners share how they run Doris in 
production and where the technology is going.
+
+*How Apache Doris is moving from real-time analytics to real-time 
intelligence: the keynotes mapped out the path, and production stories from 
HubSpot, Sony Interactive Entertainment, Raiffeisen Bank Romania, and other 
teams made it concrete.*
+
+At HubSpot, Apache Doris powers CRM object analytical queries across 33 
clusters worldwide, and **P50 backend query latency has dropped from about 1.8 
seconds to about 500 milliseconds**. At Raiffeisen Bank Romania, **AI agents 
are already real users of the analytics platform**: they query Doris through 
MCP tools, read governed model scores, and then explain risks and recommend 
next steps to bank employees. The first example is real-time analytics as it 
works today. The second points to  [...]
+
+Doris Summit 2026 took place online on October 21–22, with 34 speakers 
presenting 31 sessions. The opening keynote started with exactly this shift. 
Apache Doris PMC Chair Mingyu Chen described it as a move [from real-time 
analytics to real-time 
intelligence](https://apache-doris-summit.org/watch/real-time-intelligence). 
Real-time analytics helps people see what is happening, faster. Real-time 
intelligence goes further: it lets AI continuously access fresh data, 
understand multimodal cont [...]
+
+That theme ran through the entire summit. The other five keynotes built on it, 
covering how Apache Doris 5.0 keeps results fresh, how it goes beyond tables, 
and how agents understand, access, and verify data. The remaining 25 sessions 
showed what these directions look like in practice. They came from teams in 
CRM, gaming, retail, telecom, banking, insurance, mobility, and online video, 
as well as ecosystem partners working on stream processing, lakehouses, 
semantic layers, and graph analytics.
+
+**Recordings of all 31 sessions are free to watch on the [Doris Summit 2026 
website](https://apache-doris-summit.org/watch).**
+
+## Staying Fresh: Results That Keep Pace with the Business
+
+![Two panels compare batch refresh and incremental processing. Batch refresh 
runs a full recompute at intervals, so results lag behind the business; 
incremental processing handles only the changes, so results keep 
pace.](/images/blogs/doris-summit-2026-recap/fig-1-staying-fresh.jpg)
+
+Agents need more than fresh source data. They also need metrics and analytical 
results that keep up as the business changes. In the [incremental computing 
keynote](https://apache-doris-summit.org/watch/incremental-computing), VeloDB 
Solutions Architect Shilin Wu pointed out that maintaining these results 
through repeated batch refreshes introduces delays and costly recomputation. 
The upcoming Apache Doris 5.0 addresses this by **processing only what 
changes**. Changelog and Table Stream  [...]
+
+User talks showed what fresh results mean in production. At Silpo, part of the 
Ukrainian retail group Fozzy Group, each pricing run recomputes about 15 
million price cells across roughly 1,500 stores. Data Platform Lead Vitalii 
Kalmykov explained that the original calculation, built on SQL Server stored 
procedures, took about 10 minutes. With [Doris running the 
calculation](https://apache-doris-summit.org/watch/unified-data-platform) and 
Temporal orchestrating it, **each run now takes ab [...]
+
+Rumble lets the teams that use the data build their own processing chains. In 
[*Growing a Data 
Tree*](https://apache-doris-summit.org/watch/trusted-data-products), Jayson 
Minard described how Rumble's recommendations team moved from a centralized 
ClickHouse warehouse to Doris in compute-storage decoupled mode. The platform 
provides trusted base tables, and each team builds its own views and 
materialized views on top. It handles **about 10 billion events a month with 91 
materialized views [...]
+
+Ishan Harkhani and Parmeetrai Lalwani of Armakuni built a [multi-tenant 
marketing attribution 
platform](https://apache-doris-summit.org/watch/multi-tenant-platform) for home 
services businesses, running all three transformation layers (Bronze, Silver, 
and Gold) inside Doris. According to the speakers, **processing time dropped 
from hours to minutes**, and customer dashboards now refresh every 10 minutes. 
GreenSM, a Vietnamese EV ride-hailing platform, computes its recommendations 
ahead o [...]
+
+## Beyond Tables: Agent Context Doesn't Always Fit in a Table
+
+![Tables, custom attributes, logs and text, vectors and images, and live 
events all flow into Apache Doris, which passes the combined context to an 
agent.](/images/blogs/doris-summit-2026-recap/fig-2-beyond-tables.jpg)
+
+The context that agents rely on often doesn't sit in neat tables. It includes 
customer-defined attributes, logs and text, vectors and images, and the latest 
events still in the stream. In the [multimodal lakehouse 
keynote](https://apache-doris-summit.org/watch/multimodal-lakehouse), Mingyu 
Chen and Lei Xu, co-founder and CTO of LanceDB, showed how **Apache Doris 5.0 
extends the lakehouse to multimodal analytics and retrieval**. They started 
with how Kuaishou, the Chinese short-video plat [...]
+
+CRM data at [HubSpot](https://apache-doris-summit.org/watch/hubspot) is far 
from a neat table. Customers can define their own objects and properties, some 
tenants have thousands of properties, about 90% of write traffic is updates, 
and queries range from search to analytics that join across objects. Staff 
Software Engineer Alvaro Tuso explained how HubSpot **maps arbitrary properties 
to typed VARIANT subpaths with inverted indexes**, uses Merge-on-Write to 
absorb frequent updates, and sp [...]
+
+Fresh events and historical data also need to be queried together. Apache 
Fluss PMC Member Anton Borisov showed how Doris, through the Fluss Catalog, can 
query historical data in Apache Paimon and real-time data in Fluss that hasn't 
been tiered into the lake yet, [**all in a single SQL 
statement**](https://apache-doris-summit.org/watch/fluss-streaming-lakehouse). 
**This integration is coming in Apache Doris 5.0.** The talk also covered 
prototypes that improve scan and point-lookup perfor [...]
+
+Search can live in the same database, too. Daniel Adayev of Tabsdata used 
Doris inverted indexes to [handle event search and analytics 
together](https://apache-doris-summit.org/watch/tabsdata-event-search), with 
**no separate Elasticsearch cluster to maintain**. Ákos Zalaváry, founder of 
Logiqum, used 73 million rows of real logs to compare [several append-only 
logging designs](https://apache-doris-summit.org/watch/append-only-logging). 
The final design keeps the logs themselves immutabl [...]
+
+## Between Agents and Data: Understand, Access, Verify
+
+![An agent's question goes through Understand (the business) and Access (the 
data) to reach Apache Doris, and the answer returns to the agent through Verify 
(the results).](/images/blogs/doris-summit-2026-recap/fig-3-agents-and-data.jpg)
+
+Once the data is fresh and complete, agents still have to use it well. Three 
keynotes each took on one part of the problem: how agents understand the 
business, how they access the data, and how to tell whether they got it right.
+
+**Understanding the business.** In [*Talk to Your 
Data*](https://apache-doris-summit.org/watch/talk-to-your-data), VeloDB 
Co-founder Owen Xiao described a three-layer architecture for enterprise 
analytics agents. The agent layer handles conversation, planning, and SQL 
execution, with support for multi-user collaboration, permissions, and 
auditing. **The context layer records schemas, metric definitions, and business 
rules in Markdown files** (for example, whether "revenue" means MRR or A [...]
+
+Raiffeisen Bank Romania lets **models produce the numbers and LLMs explain 
them**, hence the talk's title: [*ML Decides, LLMs 
Explain*](https://apache-doris-summit.org/watch/raiffeisen). Models for churn, 
default, fraud, and more are trained and governed separately, and each writes 
its scores and drivers into Doris. ARIA, the bank's agentic AI platform, reads 
those results through MCP-based tools, uses OpenMetadata as its semantic layer, 
and explains them to employees. Alin Nedelcu and A [...]
+
+Other talks approached understanding from different angles. Azhar Izzannada 
Elbachtiar's [reference 
implementation](https://apache-doris-summit.org/watch/metricflow-on-doris) uses 
MetricFlow to compile governed metrics into Doris SQL and returns an answer 
only when both freshness and provenance checks pass. It was validated on 
billion-scale event data. DatusAI Co-founder Harrison Zhao presented an [open 
semantic layer](https://apache-doris-summit.org/watch/open-semantic-layer) for 
data a [...]
+
+**Accessing the data.** Getting results out of the database and into the 
agent's hands can also become a bottleneck. In [*The Agentic Data 
Plane*](https://apache-doris-summit.org/watch/agentic-data-plane), Kevin Shen, 
a product manager at VeloDB, and Ian Cook, co-founder and CEO of Columnar, 
pointed out that row-by-row conversion and lost type information slow the whole 
pipeline down. They split connectivity into two planes. Tools such as MCP and 
CLIs form the **control plane**, which de [...]
+
+Agents also query differently from traditional analytics workloads. Ganesh 
Kumar noted that **agents send large numbers of highly concurrent, narrow 
queries, often with latency budgets under 500 milliseconds**. The talk compared 
Amazon Athena, Amazon Redshift Serverless, and Doris, then proposed a reference 
architecture with [Doris as the hot data serving 
layer](https://apache-doris-summit.org/watch/agent-data-layer). Sijie Han of 
AWS demonstrated Amazon Quick agents [querying Doris thro [...]
+
+Because a single agent often acts on behalf of many users, Arpit Jain of MIT 
built a [custom access 
controller](https://apache-doris-summit.org/watch/custom-access-controller) on 
the AccessControllerFactory SPI in Doris, with OpenFGA as the policy engine. It 
authorizes each user individually and fails closed when the policy service is 
unavailable.
+
+**Verifying the results.** In [*Observe the 
Agent*](https://apache-doris-summit.org/watch/observe-the-agent), Apache Doris 
Committer Jack Jiang reminded the audience that **an agent can run without a 
single error and still give the wrong answer**. The talk introduced 
[Litefuse](https://litefuse.ai/), an agent observability and evaluation 
platform that is now available. Litefuse is OpenTelemetry-native, compatible 
with the Langfuse SDK, and built on Apache Doris. Jack Jiang argued that ** 
[...]
+
+## Into Production: A Foundation That Stands Up to Real Workloads
+
+![Many data streams flow into an Ingest workload while a separate Query 
workload serves dashboards and agents; both stand side by side on an Apache 
Doris 
foundation.](/images/blogs/doris-summit-2026-recap/fig-4-into-production.jpg)
+
+The opening keynote named **production-ready infrastructure** as one of the 
core themes of Apache Doris 5.0. Real-time intelligence ultimately has to run 
on production systems, and production is where the user talks offered the most 
evidence.
+
+At Sony Interactive Entertainment, Staff Software Engineer Derek Bradley is 
responsible for analyzing IPFIX traffic at the edge of PlayStation's global 
network. The previous in-memory database slowed down on writes and timed out on 
queries during anomalies such as DDoS attacks, which is exactly when network 
experts need the data most. The new design had to handle ingestion, cleanup, 
aggregation, and queries at the same time on limited hardware (some edge sites 
have only a single server). [...]
+
+Malawian telecom operator TNM handles about 1.1 billion records a day. James 
Mandiza walked through the company's [migration from an Oracle data warehouse 
to Doris](https://apache-doris-summit.org/watch/telecom-lakehouse). TNM 
deployed Doris 3.1 in compute-storage decoupled mode on a private cloud, kept 
its existing Qlik reports, ran the old and new systems side by side for about a 
month to reconcile results one business domain at a time, and built a single 
unified subscriber profile tha [...]
+
+Turkish insurer HDI Sigorta took a different path. Kazım Cesur explained that 
Oracle 19c still handles core transactions, while data flows through GoldenGate 
CDC and Kafka into VeloDB, built on Apache Doris, for [real-time 
analytics](https://apache-doris-summit.org/watch/ai-ready-data-foundation). 
**More than 450 Routine Load jobs run in production**, and AI applications are 
the next step for this foundation.
+
+Lessons from operations and ingestion matter just as much. Nilanjan Sarkar of 
Tesco shared practices for [running Doris in decoupled 
mode](https://apache-doris-summit.org/watch/decoupled-mode-on-aks) on Azure 
Kubernetes Service, covering node pool isolation, historical data migration, 
and metadata backup and recovery. Shekhar Rajak of Atlassian explained how 
[exactly-once 
ingestion](https://apache-doris-summit.org/watch/exactly-once-ingestion) works 
across three paths: Routine Load, Flin [...]
+
+## What's Next
+
+**Apache Doris 5.0 is coming soon.** Over the next few weeks, we'll publish 
deep dives on topics including HubSpot, Apache Fluss, incremental computing, 
Sony Interactive Entertainment, Silpo, and Raiffeisen Bank Romania.
+
+Get involved with the community:
+
+- Website: [https://doris.apache.org](https://doris.apache.org)
+- Contribute: 
[https://doris.apache.org/community/how-to-contribute/contribute-to-doris](https://doris.apache.org/community/how-to-contribute/contribute-to-doris)
+- GitHub: [github.com/apache/doris](https://github.com/apache/doris)
+- Slack: [doris.apache.org/slack](https://doris.apache.org/slack)
+
+Thanks to all 34 speakers and 27 community partners. Doris Summit 2026 was 
organized by VeloDB, with the Apache Software Foundation as Community Partner.
+
+**Watch every session on demand at 
[apache-doris-summit.org/watch](https://apache-doris-summit.org/watch). Slides 
will be posted on the website as speakers approve them.**
diff --git a/scripts/i18n/__tests__/fixtures/blog.cjs 
b/scripts/i18n/__tests__/fixtures/blog.cjs
index 262b981e11af..5a2f394d16ca 100644
--- a/scripts/i18n/__tests__/fixtures/blog.cjs
+++ b/scripts/i18n/__tests__/fixtures/blog.cjs
@@ -15,7 +15,7 @@ async function createBlogFixture(root) {
     for (const directory of ['src/theme/BlogListPage', 
'src/theme/BlogListItem', 'src/theme/BlogFooter', 'src/theme/BlogLayout',
         'src/theme/BlogPostItem/Container', 
'src/theme/BlogPostItem/Header/Title', 'src/theme/BlogPostPage/Metadata',
         'src/theme/BlogPostPage/StructuredData', 'src/theme/BlogTagsListPage', 
'src/theme/BlogTagsPostsPage', 'src/components/PageHeader',
-        'src/components/VersionsDoc'])
+        'src/components/VersionsDoc', 'src/components/YouTube'])
         fs.cpSync(path.join(repo, directory), path.join(root, directory), 
{recursive: true});
     for (const file of ['src/components/blogs/BlogLanguageNote.tsx', 
'src/components/blogs/components/head-blogs.tsx',
         'src/utils/blogLocale.ts', 'src/hooks/use-format-date.ts', 
'src/theme/BlogPostItem/styles.scss', 'src/scss/_variables.scss', 
'src/theme/MDXComponents.js'])
diff --git a/src/components/YouTube/index.tsx b/src/components/YouTube/index.tsx
new file mode 100644
index 000000000000..b6e08a7c6788
--- /dev/null
+++ b/src/components/YouTube/index.tsx
@@ -0,0 +1,61 @@
+import React, {useEffect, useRef, useState} from 'react';
+import {translate} from '@docusaurus/Translate';
+import useBaseUrl from '@docusaurus/useBaseUrl';
+import './styles.scss';
+
+interface YouTubeProps {
+    videoId: string;
+    title: string;
+    poster: string;
+}
+
+export default function YouTube({videoId, title, poster}: YouTubeProps): 
JSX.Element {
+    const [playing, setPlaying] = useState(false);
+    const playerRef = useRef<HTMLIFrameElement>(null);
+    const posterUrl = useBaseUrl(poster);
+    const id = encodeURIComponent(videoId);
+
+    useEffect(() => {
+        if (playing) playerRef.current?.focus();
+    }, [playing]);
+
+    return (
+        <figure className="doris-youtube">
+            <div className="doris-youtube__frame">
+                {playing ? (
+                    <iframe
+                        ref={playerRef}
+                        className="doris-youtube__player"
+                        
src={`https://www.youtube-nocookie.com/embed/${id}?autoplay=1&playsinline=1`}
+                        title={title}
+                        width="960"
+                        height="540"
+                        referrerPolicy="strict-origin-when-cross-origin"
+                        allow="autoplay; encrypted-media; picture-in-picture; 
fullscreen"
+                        allowFullScreen
+                    />
+                ) : (
+                    <button
+                        type="button"
+                        className="doris-youtube__preview"
+                        aria-label={translate({id: 'youtube.play', message: 
'Play video: {title}'}, {title})}
+                        onClick={() => setPlaying(true)}
+                    >
+                        <img className="doris-youtube__poster" src={posterUrl} 
alt="" width="1920" height="1080" loading="lazy" decoding="async" />
+                        <span className="doris-youtube__play" 
aria-hidden="true">
+                            <svg width="28" height="28" viewBox="0 0 24 24" 
fill="currentColor">
+                                <path d="M8 5v14l11-7z" />
+                            </svg>
+                        </span>
+                    </button>
+                )}
+            </div>
+            <figcaption className="doris-youtube__caption">
+                <span>{title}</span>
+                <a href={`https://www.youtube.com/watch?v=${id}`} 
target="_blank" rel="noopener noreferrer">
+                    {translate({id: 'youtube.watch', message: 'Watch on 
YouTube'})} <span aria-hidden="true">↗</span>
+                </a>
+            </figcaption>
+        </figure>
+    );
+}
diff --git a/src/components/YouTube/styles.scss 
b/src/components/YouTube/styles.scss
new file mode 100644
index 000000000000..7bf6674ca6fe
--- /dev/null
+++ b/src/components/YouTube/styles.scss
@@ -0,0 +1,87 @@
+.doris-youtube {
+    margin: 0 0 2rem;
+    overflow: hidden;
+    border: 1px solid var(--brand-border-soft);
+    border-radius: 12px;
+    background: var(--brand-paper);
+
+    &__frame {
+        position: relative;
+        width: 100%;
+        aspect-ratio: 16 / 9;
+        min-height: 200px;
+        background: var(--brand-ink);
+    }
+
+    &__preview,
+    &__poster,
+    &__player {
+        position: absolute;
+        inset: 0;
+        display: block;
+        width: 100%;
+        height: 100%;
+        margin: 0;
+        border: 0;
+    }
+
+    &__preview {
+        display: grid;
+        place-items: center;
+        padding: 0;
+        background: transparent;
+        cursor: pointer;
+
+        &:focus-visible {
+            outline: 3px solid var(--brand-accent);
+            outline-offset: -5px;
+        }
+    }
+
+    &__poster {
+        object-fit: contain;
+    }
+
+    &__play {
+        position: relative;
+        display: grid;
+        place-items: center;
+        width: 72px;
+        height: 72px;
+        border-radius: 50%;
+        color: var(--brand-ink);
+        background: var(--brand-cream-light);
+        box-shadow: 0 4px 24px var(--global-shadow-primary);
+        transition: transform 150ms ease;
+
+        svg {
+            margin-left: 3px;
+        }
+    }
+
+    &__preview:hover &__play,
+    &__preview:focus-visible &__play {
+        transform: scale(1.08);
+    }
+
+    &__caption {
+        display: flex;
+        flex-wrap: wrap;
+        align-items: center;
+        justify-content: space-between;
+        gap: 0.5rem 1rem;
+        padding: 0.875rem 1rem;
+        color: var(--brand-ink);
+        font-size: 0.875rem;
+
+        a {
+            white-space: nowrap;
+        }
+    }
+}
+
+@media (prefers-reduced-motion: reduce) {
+    .doris-youtube__play {
+        transition: none;
+    }
+}
diff --git a/src/theme/MDXComponents.js b/src/theme/MDXComponents.js
index 08ddfaee0252..c73c6b8d6cfe 100644
--- a/src/theme/MDXComponents.js
+++ b/src/theme/MDXComponents.js
@@ -2,10 +2,12 @@
 import MDXComponents from '@theme-original/MDXComponents';
 import VersionsDoc from '@site/src/components/VersionsDoc';
 import LocalizedLink from '@site/src/components/home-next/LocalizedLink';
+import YouTube from '@site/src/components/YouTube';
 
 export default {
     // 复用默认的映射
     ...MDXComponents,
     a: LocalizedLink,
     version: VersionsDoc,
+    YouTube,
 };
diff --git a/static/images/blogs/doris-summit-2026-recap/cover.jpg 
b/static/images/blogs/doris-summit-2026-recap/cover.jpg
new file mode 100644
index 000000000000..955079610b02
Binary files /dev/null and 
b/static/images/blogs/doris-summit-2026-recap/cover.jpg differ
diff --git 
a/static/images/blogs/doris-summit-2026-recap/fig-1-staying-fresh.jpg 
b/static/images/blogs/doris-summit-2026-recap/fig-1-staying-fresh.jpg
new file mode 100644
index 000000000000..b0f3c160b943
Binary files /dev/null and 
b/static/images/blogs/doris-summit-2026-recap/fig-1-staying-fresh.jpg differ
diff --git 
a/static/images/blogs/doris-summit-2026-recap/fig-2-beyond-tables.jpg 
b/static/images/blogs/doris-summit-2026-recap/fig-2-beyond-tables.jpg
new file mode 100644
index 000000000000..69c380f499f9
Binary files /dev/null and 
b/static/images/blogs/doris-summit-2026-recap/fig-2-beyond-tables.jpg differ
diff --git 
a/static/images/blogs/doris-summit-2026-recap/fig-3-agents-and-data.jpg 
b/static/images/blogs/doris-summit-2026-recap/fig-3-agents-and-data.jpg
new file mode 100644
index 000000000000..c5bc2d8d5894
Binary files /dev/null and 
b/static/images/blogs/doris-summit-2026-recap/fig-3-agents-and-data.jpg differ
diff --git 
a/static/images/blogs/doris-summit-2026-recap/fig-4-into-production.jpg 
b/static/images/blogs/doris-summit-2026-recap/fig-4-into-production.jpg
new file mode 100644
index 000000000000..244ce6654142
Binary files /dev/null and 
b/static/images/blogs/doris-summit-2026-recap/fig-4-into-production.jpg differ
diff --git a/static/images/blogs/doris-summit-2026-recap/video-poster.jpg 
b/static/images/blogs/doris-summit-2026-recap/video-poster.jpg
new file mode 100644
index 000000000000..0747d8947e41
Binary files /dev/null and 
b/static/images/blogs/doris-summit-2026-recap/video-poster.jpg differ


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to