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

luzhijing 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 b6812c48872 update website (#195)
b6812c48872 is described below

commit b6812c48872e0efb826a69a585cd3af1358f3d70
Author: wangyongfeng <943155...@qq.com>
AuthorDate: Tue Feb 21 08:20:56 2023 +0800

    update website (#195)
    
    * add announcementBar and update user case page
    
    * add document download link
    
    * remove useless logos
    
    * add Roadmap
    
    * remove user cases
    
    ---------
    
    Co-authored-by: wangyf0555 <wangyongf...@flywheels.com>
---
 docusaurus.config.js                        |  11 +++
 package.json                                |   1 +
 src/pages/download/index.scss               |   7 ++
 src/pages/download/index.tsx                | 114 ++++++++++++++++++------
 src/pages/index.tsx                         |   7 +-
 src/pages/users/index.scss                  |  31 +++++--
 src/pages/users/index.tsx                   | 133 +++++++++++++++-------------
 src/theme/AnnouncementBar/index.d.ts        |   2 +
 src/theme/AnnouncementBar/index.tsx         |  39 ++++++++
 src/theme/AnnouncementBar/styles.module.css |  87 ++++++++++++++++++
 src/theme/Layout/index.tsx                  |   3 +-
 static/images/announcementBar-left.png      | Bin 0 -> 4720 bytes
 static/images/announcementBar-right.png     | Bin 0 -> 4770 bytes
 static/images/github-white-icon.png         | Bin 0 -> 969 bytes
 static/images/github-white-icon.svg         |   3 +
 static/images/icon/download.png             | Bin 0 -> 460 bytes
 static/images/icon/u1.png                   | Bin 5211 -> 0 bytes
 static/images/icon/u10.png                  | Bin 14194 -> 0 bytes
 static/images/icon/u11.png                  | Bin 4477 -> 0 bytes
 static/images/icon/u12.png                  | Bin 9229 -> 0 bytes
 static/images/icon/u13.png                  | Bin 14922 -> 0 bytes
 static/images/icon/u14.png                  | Bin 5973 -> 0 bytes
 static/images/icon/u15.png                  | Bin 20277 -> 0 bytes
 static/images/icon/u16.png                  | Bin 6772 -> 0 bytes
 static/images/icon/u17.png                  | Bin 9363 -> 0 bytes
 static/images/icon/u18.png                  | Bin 21662 -> 0 bytes
 static/images/icon/u19.png                  | Bin 15925 -> 0 bytes
 static/images/icon/u2.png                   | Bin 9179 -> 0 bytes
 static/images/icon/u20.png                  | Bin 7369 -> 0 bytes
 static/images/icon/u21.png                  | Bin 18084 -> 0 bytes
 static/images/icon/u22.png                  | Bin 10167 -> 0 bytes
 static/images/icon/u23.png                  | Bin 4090 -> 0 bytes
 static/images/icon/u24.png                  | Bin 11263 -> 0 bytes
 static/images/icon/u25.png                  | Bin 11132 -> 0 bytes
 static/images/icon/u26.png                  | Bin 9928 -> 0 bytes
 static/images/icon/u27.png                  | Bin 7888 -> 0 bytes
 static/images/icon/u28.png                  | Bin 15949 -> 0 bytes
 static/images/icon/u29.png                  | Bin 16856 -> 0 bytes
 static/images/icon/u3.png                   | Bin 7434 -> 0 bytes
 static/images/icon/u30.png                  | Bin 8611 -> 0 bytes
 static/images/icon/u4.png                   | Bin 11174 -> 0 bytes
 static/images/icon/u5.png                   | Bin 6499 -> 0 bytes
 static/images/icon/u6.png                   | Bin 21360 -> 0 bytes
 static/images/icon/u7.png                   | Bin 8108 -> 0 bytes
 static/images/icon/u8.png                   | Bin 9595 -> 0 bytes
 static/images/icon/u9.png                   | Bin 8734 -> 0 bytes
 static/images/icon/xiaomi.png               | Bin 9412 -> 0 bytes
 static/images/user-logos-1.jpg              | Bin 0 -> 177548 bytes
 static/images/user-logos-2.jpg              | Bin 0 -> 184558 bytes
 static/images/user-logos-3.jpg              | Bin 0 -> 164679 bytes
 userCases/en_US.md                          |  85 ++++++++++++++++++
 userCases/zh_CN.md                          |  83 +++++++++++++++++
 52 files changed, 506 insertions(+), 100 deletions(-)

diff --git a/docusaurus.config.js b/docusaurus.config.js
index 05ed1b0589f..1dda8ecee25 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -180,6 +180,16 @@ const config = {
     themeConfig:
         /** @type {import('@docusaurus/preset-classic').ThemeConfig} */
         ({
+            announcementBar: {
+                id: 'support_us',
+                content: `Do you like Apache Doris?Give us a 🌟 on Github 
+                    <a href="https://github.com/apache/doris"; target="_blank" 
style="display: inline-block; margin-left: 4px; height: 1.2rem;">
+                        <img style="width: 1.2rem; height: 1.2rem;" 
src="./images/github-white-icon.svg">
+                    </a>`,
+                backgroundColor: '#3C2FD4',
+                textColor: '#FFFFFF',
+                isCloseable: false,
+            },
             navbar: {
                 title: '',
                 logo: {
@@ -204,6 +214,7 @@ const config = {
                         docsPluginId: 'community',
                     },
                     { to: '/users', label: 'Users', position: 'left' },
+                    { to: 'https://github.com/apache/doris/issues/16392', 
label: 'Roadmap', position: 'left' },
                     // {
                     //     type: 'docsVersionDropdown',
                     //     position: 'right',
diff --git a/package.json b/package.json
index 8222f5262f7..60fba9c3d42 100644
--- a/package.json
+++ b/package.json
@@ -31,6 +31,7 @@
         "react-dom": "^17.0.2",
         "react-github-button": "^0.1.11",
         "sass": "^1.53.0",
+        "swiper": "^9.0.5",
         "vitpress-generate-pdf": "^1.1.0"
     },
     "devDependencies": {
diff --git a/src/pages/download/index.scss b/src/pages/download/index.scss
index 6bb307e34ad..03a20ae9ca0 100644
--- a/src/pages/download/index.scss
+++ b/src/pages/download/index.scss
@@ -18,6 +18,13 @@
             font-size: 1.5rem;
         }
     }
+    .downlaod-document {
+        color: var(--ifm-color-primary);
+        cursor: pointer;
+        padding-left: 0.4rem;
+        display: flex;
+        align-items: center;
+    }
 
     &-box {
         padding: 3.125rem;
diff --git a/src/pages/download/index.tsx b/src/pages/download/index.tsx
index 82fd76040d5..e0010fe2baa 100644
--- a/src/pages/download/index.tsx
+++ b/src/pages/download/index.tsx
@@ -66,6 +66,27 @@ export default function Download(): JSX.Element {
         setCurrent(linkObj);
     };
 
+    function downloadFile(url: string) {
+        const a = document.createElement('a');
+        a.download = url;
+        a.href = url;
+        a.target = '_blank';
+        const clickEvt = new MouseEvent('click', {
+            view: window,
+            bubbles: true,
+            cancelable: true,
+        });
+        a.dispatchEvent(clickEvt);
+        a.remove();
+    }
+
+    const downloadDocument = () => {
+        const url =
+            currentLocale === 'en'
+                ? 'https://cdn-tencent.selectdb.com/assets/files/Apache Doris 
Docs (English).pdf'
+                : 'https://cdn-tencent.selectdb.com/assets/files/Apache Doris 
Docs (中文).pdf';
+        downloadFile(url);
+    };
     useEffect(() => {
         getDownloadLinks();
     }, [version, cpu, jdk]);
@@ -185,38 +206,49 @@ export default function Download(): JSX.Element {
                                     <>
                                         {currentLocale === 'zh-CN' ? (
                                             <>
-                                            <li>
-                                                由于 Apache 服务器文件大小限制,1.2 
版本的二进制程序被分为三个包,其中新增的 apache-doris-dependencies 包含用于支持 JDBC 外表和 JAVA UDF 
的jar包,以及 Broker 和 AuditLoader。
-下载后,需要将其中的 java-udf-jar-with-dependencies.jar 放到 be/lib 目录下。
-                                                详细升级注意事项请参考
-                                                <Link 
to="/docs/dev/releasenotes/release-1.2.1">
-                                                    1.2.1 Release Note
-                                                </Link>
-                                                以及
-                                                <Link 
to="/docs/dev/install/install-deploy">
-                                                    <Translate 
id="Installation and deployment">
-                                                        Installation and 
deployment
-                                                    </Translate>
-                                                </Link>
-                                                以及
-                                                <Link 
to="/docs/dev/admin-manual/cluster-management/upgrade">
-                                                    <Translate id="Cluster 
Upgrade">Cluster Upgrade</Translate>
-                                                </Link>
-                                                手册。
-                                            </li>
-                                            <li>
-                                                1.2.1 版本的 
java-udf-jar-with-dependencies.jar 可能存在兼容性问题,如果在使用 java udf 
功能时遇到问题,请和我们联系:d...@doris.apache.org
-                                            </li>
+                                                <li>
+                                                    由于 Apache 服务器文件大小限制,1.2
+                                                    版本的二进制程序被分为三个包,其中新增的 
apache-doris-dependencies
+                                                    包含用于支持 JDBC 外表和 JAVA UDF 
的jar包,以及 Broker 和
+                                                    AuditLoader。 下载后,需要将其中的
+                                                    
java-udf-jar-with-dependencies.jar 放到 be/lib 目录下。
+                                                    详细升级注意事项请参考
+                                                    <Link 
to="/docs/dev/releasenotes/release-1.2.1">
+                                                        1.2.1 Release Note
+                                                    </Link>
+                                                    以及
+                                                    <Link 
to="/docs/dev/install/install-deploy">
+                                                        <Translate 
id="Installation and deployment">
+                                                            Installation and 
deployment
+                                                        </Translate>
+                                                    </Link>
+                                                    以及
+                                                    <Link 
to="/docs/dev/admin-manual/cluster-management/upgrade">
+                                                        <Translate id="Cluster 
Upgrade">Cluster Upgrade</Translate>
+                                                    </Link>
+                                                    手册。
+                                                </li>
+                                                <li>
+                                                    1.2.1 版本的 
java-udf-jar-with-dependencies.jar
+                                                    可能存在兼容性问题,如果在使用 java udf
+                                                    
功能时遇到问题,请和我们联系:d...@doris.apache.org
+                                                </li>
                                             </>
                                         ) : (
                                             <>
-                                            <li>
-                                                Due to the file size 
limitation of the Apache server, the binary program of version 1.2 is divided 
into three packages, among which the newly added apache-doris-dependencies 
include jar packages for supporting JDBC appearance and JAVA UDF, as well as 
Broker and AuditLoader.
-After downloading, you need to put the java-udf-jar-with-dependencies.jar in 
the be/lib directory.
-                                            </li>
-                                            <li>
-                                                The 1.2.1 version of 
java-udf-jar-with-dependencies.jar may have compatibility issues. If you 
encounter problems when using the java udf function, please contact us: 
d...@doris.apache.org
-                                            </li>
+                                                <li>
+                                                    Due to the file size 
limitation of the Apache server, the binary
+                                                    program of version 1.2 is 
divided into three packages, among which
+                                                    the newly added 
apache-doris-dependencies include jar packages for
+                                                    supporting JDBC appearance 
and JAVA UDF, as well as Broker and
+                                                    AuditLoader. After 
downloading, you need to put the
+                                                    
java-udf-jar-with-dependencies.jar in the be/lib directory.
+                                                </li>
+                                                <li>
+                                                    The 1.2.1 version of 
java-udf-jar-with-dependencies.jar may have
+                                                    compatibility issues. If 
you encounter problems when using the java
+                                                    udf function, please 
contact us: d...@doris.apache.org
+                                                </li>
                                             </>
                                         )}
                                         <li>
@@ -370,6 +402,30 @@ After downloading, you need to put the 
java-udf-jar-with-dependencies.jar in the
                     </CodeBlock>
                 </PageColumn>
             </section>
+            <section className="table-content">
+                <PageColumn
+                    align="left"
+                    title={
+                        <Translate id="download.document" description="文档">
+                            Document
+                        </Translate>
+                    }
+                >
+                    <div className="content">
+                        <p style={{ display: 'flex', alignItems: 'center' }}>
+                            Click to download the latest
+                            <span className="downlaod-document" 
onClick={downloadDocument}>
+                                offline documents{' '}
+                                <img
+                                    style={{ width: '1.2rem', height: 
'1.2rem', paddingLeft: '0.2rem' }}
+                                    
src={require('@site/static/images/icon/download.png').default}
+                                    alt=""
+                                />
+                            </span>
+                        </p>
+                    </div>
+                </PageColumn>
+            </section>
             <section className="table-content">
                 <PageColumn
                     align="left"
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index b54a328046b..0b39697fd6d 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -144,6 +144,7 @@ export default function Home(): JSX.Element {
                 id: 'homepage.banner.subTitle',
                 message: 'An easy-to-use, high-performance and unified 
analytical database',
             })}
+            showAnnouncementBar
         >
             <PageBanner {...banner}></PageBanner>
             <section className="news-section">
@@ -151,9 +152,9 @@ export default function Home(): JSX.Element {
                     <div className="news-wrap">
                         <div className="news-item">
                             <span className="news-icon"></span>
-                            <Link to="https://doris-summit.selectdb.com"; 
className="news-content">
-                                <Translate id="homepage.news" description="The 
label for the link to homepage news">
-                                    Check out all the sessions in Doris Summit 
2022 online!
+                            <Link 
to="https://github.com/apache/doris/releases/tag/1.2.2-rc01"; 
className="news-content">
+                                <Translate id="1.2.2" description="Apache 
Doris 1.2.2 Release">
+                                    Apache Doris 1.2.2 Release
                                 </Translate>
                             </Link>
                         </div>
diff --git a/src/pages/users/index.scss b/src/pages/users/index.scss
index e96339cff6b..f7260c20cc8 100644
--- a/src/pages/users/index.scss
+++ b/src/pages/users/index.scss
@@ -10,7 +10,8 @@
     }
 
     .users-wall-list {
-        padding-left: 0;
+        padding: 0 1rem;
+        padding-bottom: 4rem;
 
         .users-wall-item {
             list-style: none;
@@ -26,11 +27,20 @@
         }
 
         .col {
-            &+.col {
+            & + .col {
                 margin-top: 0 !important;
             }
         }
     }
+
+    .swiper-pagination-bullet {
+        background: #d9d9d9;
+        margin: 0 0.5rem !important;
+    }
+
+    .swiper-pagination-bullet-active {
+        background: var(--ifm-color-primary);
+    }
 }
 
 .users-wall-description {
@@ -40,7 +50,7 @@
 
     .count {
         font-size: 30px;
-        line-height: 1.0;
+        line-height: 1;
         margin: 0 0.3125rem;
         color: var(--ifm-color-primary);
         font-weight: 400;
@@ -56,6 +66,15 @@
                 margin-bottom: 3.75rem;
             }
         }
+        .container {
+            p {
+                font-size: 1rem;
+            }
+            h2 {
+                margin-top: 3.8rem;
+                font-size: 1.75rem;
+            }
+        }
     }
 
     .story-item {
@@ -83,7 +102,7 @@
             min-height: 10.5rem;
             margin-bottom: 0;
 
-            >svg {
+            > svg {
                 &:first-child {
                     position: absolute;
                     left: 1.25rem;
@@ -117,7 +136,7 @@
             font-weight: bold;
             font-size: var(--global-font-size-small);
             cursor: pointer;
-            transition: all .3s;
+            transition: all 0.3s;
             padding: 0 1rem;
 
             &:hover {
@@ -237,4 +256,4 @@ html[lang='zh-CN'] {
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/pages/users/index.tsx b/src/pages/users/index.tsx
index 906e422e926..6ef6a9c3af0 100644
--- a/src/pages/users/index.tsx
+++ b/src/pages/users/index.tsx
@@ -4,49 +4,29 @@ import useDocusaurusContext from 
'@docusaurus/useDocusaurusContext';
 import Translate, { translate } from '@docusaurus/Translate';
 import './index.scss';
 import Link from '@docusaurus/Link';
-import More from '@site/src/components/More/index';
 import PageColumn from '@site/src/components/PageColumn';
+import MDXContent from '@theme/MDXContent';
+// import CaseStudiesCn from '@site/userCases/zh_CN.md';
+// import CaseStudiesEn from '@site/userCases/en_US.md';
+import { Swiper, SwiperSlide } from 'swiper/react';
+import 'swiper/css';
+import 'swiper/css/pagination';
+import { Pagination } from 'swiper';
 
-const arr = new Array(30).fill('');
-const usersWalls = arr.map((item, index) => 
require(`@site/static/images/icon/u${index + 1}.png`).default);
-
-const storyList = [
-    {
-        img: require('@site/static/images/icon/meituan.png').default,
-        summary: (
-            <Translate id="sotry.summary.meituan">
-                Apache Doris can better meet the requirements of summary and 
detailed query, historical backtracking,
-                flexible query and real-time processing.
-            </Translate>
-        ),
-        link: '/blog/meituan',
-        id: 'meituan',
-    },
-    {
-        img: require('@site/static/images/icon/jd.png').default,
-        summary: (
-            <Translate id="sotry.summary.jindong">
-                Apache Doris can not only deal with second-level queries of 
massive data, but also meet real-time and
-                quasi-real-time analysis requirements.
-            </Translate>
-        ),
-        link: '/blog/jd',
-        id: 'jindong',
-    },
-    {
-        img: require('@site/static/images/icon/xiaomi.png').default,
-        summary: (
-            <Translate id="sotry.summary.xiaomi">
-                Apache Doris has been widely used in Xiaomi, and it has served 
dozens of businesses and formed a set of
-                data ecology with it as the core.
-            </Translate>
-        ),
-        link: '/blog/xiaomi',
-        id: 'xiaomi',
-    },
-];
 export default function Users(): JSX.Element {
-    const { siteConfig } = useDocusaurusContext();
+    const { i18n } = useDocusaurusContext();
+
+    const getUserLogos = (page: number = 1, total: number = 30) => {
+        const arr = new Array(total).fill('');
+        return arr.map((item, index) => 
require(`@site/static/images/user-logo-${page}/u-${index + 1}.png`).default);
+    };
+
+    const pagination = {
+        clickable: true,
+        renderBullet: function (index, className) {
+            return '<span class="' + className + '"></span>';
+        },
+    };
     return (
         <Layout
             title={translate({ id: 'users.title', message: 'Users' })}
@@ -59,49 +39,80 @@ export default function Users(): JSX.Element {
                 <PageColumn
                     align="left"
                     title={
-                        <Translate id="user.companies" description="Companies 
That Trust Apache Doris">
+                        <Translate id="user.logos" description="Companies That 
Trust Apache Doris">
                             Companies That Trust Apache Doris
                         </Translate>
                     }
                 >
-                    <ul className="users-wall-list row">
-                        {usersWalls.map((item, index) => (
-                            <li className="users-wall-item col col--2" 
key={index}>
-                                <img className="users-wall-img" src={item} 
alt="" />
-                            </li>
-                        ))}
-                    </ul>
+                    <Swiper
+                        pagination={pagination}
+                        modules={[Pagination]}
+                        spaceBetween={50}
+                        slidesPerView={1}
+                        className="mySwiper"
+                        onSlideChange={() => console.log('slide change')}
+                        onSwiper={(swiper: any) => console.log(swiper)}
+                    >
+                        <SwiperSlide>
+                            <div className="users-wall-list row">
+                                <img
+                                    className="users-wall-img"
+                                    
src={require(`@site/static/images/user-logos-1.jpg`).default}
+                                    alt=""
+                                />
+                            </div>
+                        </SwiperSlide>
+                        <SwiperSlide>
+                            <div className="users-wall-list row">
+                                <img
+                                    className="users-wall-img"
+                                    
src={require(`@site/static/images/user-logos-2.jpg`).default}
+                                    alt=""
+                                />
+                            </div>
+                        </SwiperSlide>
+                        <SwiperSlide>
+                            <div className="users-wall-list row">
+                                <img
+                                    className="users-wall-img"
+                                    
src={require(`@site/static/images/user-logos-3.jpg`).default}
+                                    alt=""
+                                />
+                            </div>
+                        </SwiperSlide>
+                    </Swiper>
                 </PageColumn>
             </section>
             <section className="story">
                 <PageColumn
                     align="left"
                     title={
-                        <Translate id="user.case" description="Case Studies">
-                            Case Studies
+                        <Translate id="user.user-case" description="Companies 
Powerd by Apache Doris">
+                            Companies Powerd by Apache Doris
                         </Translate>
                     }
                     footer={
                         <div className="share-story">
                             <Link 
to="https://github.com/apache/doris/issues/10229"; className="share-button">
                                 <Translate id="user.add..your.company" 
description="Add Your Company">
-                                    Add Your Company
+                                    Share You Stroy
                                 </Translate>
                             </Link>
                         </div>
                     }
                 >
-                    <div className="row">
-                        {storyList.map((item, index) => (
-                            <div className="col col--4" key={index}>
-                                <div className="story-item">
-                                    <img src={item.img} alt="" />
-                                    <p 
className="story-summary">{item.summary}</p>
-                                    <More link={item.link} />
-                                </div>
-                            </div>
-                        ))}
+                    <div style={{ fontSize: 16, marginTop: '-2rem', 
marginBottom: '-1rem' }}>
+                        <Translate
+                            id="user.case-description"
+                            description="There are more than 1,000 companies 
worldwide leveraging Apache Doris to build their unified
+                            data analytical database. Some of them are listed 
below:"
+                        >
+                            There are more than 1,000 companies worldwide 
leveraging Apache Doris to build their unified
+                            data analytical database. Some of them are listed 
below:
+                        </Translate>
                     </div>
+
+                    {/* <MDXContent>{i18n.currentLocale === 'en' ? 
<CaseStudiesEn /> : <CaseStudiesCn />}</MDXContent> */}
                 </PageColumn>
             </section>
         </Layout>
diff --git a/src/theme/AnnouncementBar/index.d.ts 
b/src/theme/AnnouncementBar/index.d.ts
new file mode 100644
index 00000000000..fa0f7c93881
--- /dev/null
+++ b/src/theme/AnnouncementBar/index.d.ts
@@ -0,0 +1,2 @@
+/// <reference types="react" />
+export default function AnnouncementBar(): JSX.Element | null;
diff --git a/src/theme/AnnouncementBar/index.tsx 
b/src/theme/AnnouncementBar/index.tsx
new file mode 100644
index 00000000000..e80abaa5742
--- /dev/null
+++ b/src/theme/AnnouncementBar/index.tsx
@@ -0,0 +1,39 @@
+import React from 'react';
+import clsx from 'clsx';
+import { useThemeConfig, useAnnouncementBar } from '@docusaurus/theme-common';
+import { translate } from '@docusaurus/Translate';
+import IconClose from '@theme/IconClose';
+import styles from './styles.module.css';
+export default function AnnouncementBar() {
+    const { isActive, close } = useAnnouncementBar();
+    const { announcementBar } = useThemeConfig();
+    if (!isActive) {
+        return null;
+    }
+    const { content, backgroundColor, textColor, isCloseable } = 
announcementBar;
+    return (
+        <div className={styles.announcementBar} style={{ backgroundColor, 
color: textColor }} role="banner">
+            {isCloseable && <div className={styles.announcementBarPlaceholder} 
/>}
+            <div
+                className={styles.announcementBarContent}
+                // Developer provided the HTML, so assume it's safe.
+                // eslint-disable-next-line react/no-danger
+                dangerouslySetInnerHTML={{ __html: content }}
+            />
+            {isCloseable ? (
+                <button
+                    type="button"
+                    className={clsx('clean-btn close', 
styles.announcementBarClose)}
+                    onClick={close}
+                    aria-label={translate({
+                        id: 'theme.AnnouncementBar.closeButtonAriaLabel',
+                        message: 'Close',
+                        description: 'The ARIA label for close button of 
announcement bar',
+                    })}
+                >
+                    <IconClose width={14} height={14} strokeWidth={3.1} />
+                </button>
+            ) : null}
+        </div>
+    );
+}
diff --git a/src/theme/AnnouncementBar/styles.module.css 
b/src/theme/AnnouncementBar/styles.module.css
new file mode 100644
index 00000000000..2e51edff4d0
--- /dev/null
+++ b/src/theme/AnnouncementBar/styles.module.css
@@ -0,0 +1,87 @@
+:root {
+  --docusaurus-announcement-bar-height: 30px;
+}
+
+.announcementBar {
+  display: flex;
+  align-items: center;
+  height: var(--docusaurus-announcement-bar-height);
+  background-color: var(--ifm-color-white);
+  background: linear-gradient(270.01deg, #3C2FD5 -12.32%, #7780F4 150.41%);;
+  color: var(--ifm-color-black);
+  border-bottom: 1px solid var(--ifm-color-emphasis-100);
+}
+
+html[data-announcement-bar-initially-dismissed='true'] .announcementBar {
+  display: none;
+}
+
+.announcementBarPlaceholder {
+  flex: 0 0 10px;
+}
+
+.announcementBarClose {
+  flex: 0 0 30px;
+  align-self: stretch;
+  padding: 0;
+  line-height: 0;
+}
+
+.announcementBarContent {
+  flex: 1 1 auto;
+  font-size: 85%;
+  text-align: center;
+  padding: 5px 0;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  position: relative;
+}
+
+.announcementBarContent:before {
+  content: '';
+  display: block;
+  position: absolute;
+  left: 1rem;
+  top: 50%;
+  transform: translateY(-50%);
+  background: url('../../../static/images/announcementBar-left.png') center 
no-repeat;
+  background-size: contain;
+  width: 29rem;
+  height: 2.375rem;
+}
+
+.announcementBarContent:after {
+  content: '';
+  display: block;
+  position: absolute;
+  right: 1rem;
+  top: 50%;
+  transform: translateY(-50%);
+  background: url('../../../static/images/announcementBar-right.png') center 
no-repeat;
+  background-size: contain;
+  width: 29rem;
+  height: 2.375rem;
+}
+
+@media print {
+  .announcementBar {
+    display: none;
+  }
+}
+
+.announcementBarContent a {
+  color: inherit;
+  text-decoration: underline;
+}
+
+@media (min-width: 997px) {
+  :root {
+    --docusaurus-announcement-bar-height: 40px;
+  }
+
+  .announcementBarPlaceholder,
+  .announcementBarClose {
+    flex-basis: 50px;
+  }
+}
diff --git a/src/theme/Layout/index.tsx b/src/theme/Layout/index.tsx
index 7ca0ae17006..9a7bbe98b57 100644
--- a/src/theme/Layout/index.tsx
+++ b/src/theme/Layout/index.tsx
@@ -19,6 +19,7 @@ export default function Layout(props) {
         title,
         description,
         isPage,
+        showAnnouncementBar,
     } = props;
     useKeyboardNavigation();
     const { isTop } = useScrollTop(80);
@@ -29,7 +30,7 @@ export default function Layout(props) {
 
             <SkipToContent />
 
-            <AnnouncementBar />
+            {showAnnouncementBar && <AnnouncementBar />}
             <Navbar />
             <div className={clsx(ThemeClassNames.wrapper.main, 
wrapperClassName, isPage ? 'has-margin' : '')}>
                 <ErrorBoundary fallback={params => <ErrorPageContent 
{...params} />}>{children}</ErrorBoundary>
diff --git a/static/images/announcementBar-left.png 
b/static/images/announcementBar-left.png
new file mode 100644
index 00000000000..73ab8c3c80a
Binary files /dev/null and b/static/images/announcementBar-left.png differ
diff --git a/static/images/announcementBar-right.png 
b/static/images/announcementBar-right.png
new file mode 100644
index 00000000000..0f8bedda277
Binary files /dev/null and b/static/images/announcementBar-right.png differ
diff --git a/static/images/github-white-icon.png 
b/static/images/github-white-icon.png
new file mode 100644
index 00000000000..b04b5db94a5
Binary files /dev/null and b/static/images/github-white-icon.png differ
diff --git a/static/images/github-white-icon.svg 
b/static/images/github-white-icon.svg
new file mode 100644
index 00000000000..e01d593dc3d
--- /dev/null
+++ b/static/images/github-white-icon.svg
@@ -0,0 +1,3 @@
+<svg width="18" height="18" viewBox="0 0 18 18" fill="none" 
xmlns="http://www.w3.org/2000/svg";>
+<path d="M8.99999 0.28125C4.02749 0.28125 1.31358e-06 4.28167 1.31358e-06 
9.22073C-0.00101948 11.0974 0.592933 12.9267 1.69759 14.4492C2.80225 15.9716 
4.36152 17.1099 6.15419 17.7025C6.60419 17.7803 6.77249 17.5121 6.77249 
17.277C6.77249 17.0651 6.76079 16.3616 6.76079 15.6125C4.49999 16.0264 3.91499 
15.0654 3.73499 14.5621C3.63329 14.3046 3.195 13.5117 2.8125 13.2989C2.4975 
13.1318 2.0475 12.7179 2.8008 12.7071C3.51 12.6955 4.01579 13.3552 4.18499 
13.6234C4.99499 14.9751 6.28919 14.5952 [...]
+</svg>
diff --git a/static/images/icon/download.png b/static/images/icon/download.png
new file mode 100644
index 00000000000..888ace4d71f
Binary files /dev/null and b/static/images/icon/download.png differ
diff --git a/static/images/icon/u1.png b/static/images/icon/u1.png
deleted file mode 100644
index d583558ba49..00000000000
Binary files a/static/images/icon/u1.png and /dev/null differ
diff --git a/static/images/icon/u10.png b/static/images/icon/u10.png
deleted file mode 100644
index fa16811b653..00000000000
Binary files a/static/images/icon/u10.png and /dev/null differ
diff --git a/static/images/icon/u11.png b/static/images/icon/u11.png
deleted file mode 100644
index d30cf1b9968..00000000000
Binary files a/static/images/icon/u11.png and /dev/null differ
diff --git a/static/images/icon/u12.png b/static/images/icon/u12.png
deleted file mode 100644
index d5b6ac252a5..00000000000
Binary files a/static/images/icon/u12.png and /dev/null differ
diff --git a/static/images/icon/u13.png b/static/images/icon/u13.png
deleted file mode 100644
index ae15f6fa419..00000000000
Binary files a/static/images/icon/u13.png and /dev/null differ
diff --git a/static/images/icon/u14.png b/static/images/icon/u14.png
deleted file mode 100644
index 0c07c4d65c7..00000000000
Binary files a/static/images/icon/u14.png and /dev/null differ
diff --git a/static/images/icon/u15.png b/static/images/icon/u15.png
deleted file mode 100644
index 9d3f2ccaf5e..00000000000
Binary files a/static/images/icon/u15.png and /dev/null differ
diff --git a/static/images/icon/u16.png b/static/images/icon/u16.png
deleted file mode 100644
index 03c8d6ebda4..00000000000
Binary files a/static/images/icon/u16.png and /dev/null differ
diff --git a/static/images/icon/u17.png b/static/images/icon/u17.png
deleted file mode 100644
index 30381fb99e2..00000000000
Binary files a/static/images/icon/u17.png and /dev/null differ
diff --git a/static/images/icon/u18.png b/static/images/icon/u18.png
deleted file mode 100644
index 31568ccee46..00000000000
Binary files a/static/images/icon/u18.png and /dev/null differ
diff --git a/static/images/icon/u19.png b/static/images/icon/u19.png
deleted file mode 100644
index 7c777ffe284..00000000000
Binary files a/static/images/icon/u19.png and /dev/null differ
diff --git a/static/images/icon/u2.png b/static/images/icon/u2.png
deleted file mode 100644
index 6fcf0ade7b5..00000000000
Binary files a/static/images/icon/u2.png and /dev/null differ
diff --git a/static/images/icon/u20.png b/static/images/icon/u20.png
deleted file mode 100644
index 95b757be52a..00000000000
Binary files a/static/images/icon/u20.png and /dev/null differ
diff --git a/static/images/icon/u21.png b/static/images/icon/u21.png
deleted file mode 100644
index 5584e479f93..00000000000
Binary files a/static/images/icon/u21.png and /dev/null differ
diff --git a/static/images/icon/u22.png b/static/images/icon/u22.png
deleted file mode 100644
index 2ca80135d54..00000000000
Binary files a/static/images/icon/u22.png and /dev/null differ
diff --git a/static/images/icon/u23.png b/static/images/icon/u23.png
deleted file mode 100644
index 61a4ea49e2a..00000000000
Binary files a/static/images/icon/u23.png and /dev/null differ
diff --git a/static/images/icon/u24.png b/static/images/icon/u24.png
deleted file mode 100644
index 401f73d9728..00000000000
Binary files a/static/images/icon/u24.png and /dev/null differ
diff --git a/static/images/icon/u25.png b/static/images/icon/u25.png
deleted file mode 100644
index bbc6277d01f..00000000000
Binary files a/static/images/icon/u25.png and /dev/null differ
diff --git a/static/images/icon/u26.png b/static/images/icon/u26.png
deleted file mode 100644
index 0e2a97261b9..00000000000
Binary files a/static/images/icon/u26.png and /dev/null differ
diff --git a/static/images/icon/u27.png b/static/images/icon/u27.png
deleted file mode 100644
index 9cef63b4797..00000000000
Binary files a/static/images/icon/u27.png and /dev/null differ
diff --git a/static/images/icon/u28.png b/static/images/icon/u28.png
deleted file mode 100644
index d8e63db4a57..00000000000
Binary files a/static/images/icon/u28.png and /dev/null differ
diff --git a/static/images/icon/u29.png b/static/images/icon/u29.png
deleted file mode 100644
index 9608f2dc2b3..00000000000
Binary files a/static/images/icon/u29.png and /dev/null differ
diff --git a/static/images/icon/u3.png b/static/images/icon/u3.png
deleted file mode 100644
index 72fed75d4b4..00000000000
Binary files a/static/images/icon/u3.png and /dev/null differ
diff --git a/static/images/icon/u30.png b/static/images/icon/u30.png
deleted file mode 100644
index d63056b7a46..00000000000
Binary files a/static/images/icon/u30.png and /dev/null differ
diff --git a/static/images/icon/u4.png b/static/images/icon/u4.png
deleted file mode 100644
index 065d10de546..00000000000
Binary files a/static/images/icon/u4.png and /dev/null differ
diff --git a/static/images/icon/u5.png b/static/images/icon/u5.png
deleted file mode 100644
index da03e8e96e2..00000000000
Binary files a/static/images/icon/u5.png and /dev/null differ
diff --git a/static/images/icon/u6.png b/static/images/icon/u6.png
deleted file mode 100644
index 4fe780828ce..00000000000
Binary files a/static/images/icon/u6.png and /dev/null differ
diff --git a/static/images/icon/u7.png b/static/images/icon/u7.png
deleted file mode 100644
index 37a6fbf2700..00000000000
Binary files a/static/images/icon/u7.png and /dev/null differ
diff --git a/static/images/icon/u8.png b/static/images/icon/u8.png
deleted file mode 100644
index 1fb75f571cf..00000000000
Binary files a/static/images/icon/u8.png and /dev/null differ
diff --git a/static/images/icon/u9.png b/static/images/icon/u9.png
deleted file mode 100644
index 305ef83fd03..00000000000
Binary files a/static/images/icon/u9.png and /dev/null differ
diff --git a/static/images/icon/xiaomi.png b/static/images/icon/xiaomi.png
deleted file mode 100644
index 2316f0a4865..00000000000
Binary files a/static/images/icon/xiaomi.png and /dev/null differ
diff --git a/static/images/user-logos-1.jpg b/static/images/user-logos-1.jpg
new file mode 100644
index 00000000000..316a9207f9a
Binary files /dev/null and b/static/images/user-logos-1.jpg differ
diff --git a/static/images/user-logos-2.jpg b/static/images/user-logos-2.jpg
new file mode 100644
index 00000000000..edebb503d03
Binary files /dev/null and b/static/images/user-logos-2.jpg differ
diff --git a/static/images/user-logos-3.jpg b/static/images/user-logos-3.jpg
new file mode 100644
index 00000000000..830c2e265fa
Binary files /dev/null and b/static/images/user-logos-3.jpg differ
diff --git a/userCases/en_US.md b/userCases/en_US.md
new file mode 100644
index 00000000000..32c93b48518
--- /dev/null
+++ b/userCases/en_US.md
@@ -0,0 +1,85 @@
+
+
+## 360 DigiTech
+
+Fintech businesses have stricter requirements on data security, accuracy, and 
real-time performance. Early ClickHouse clusters had problems such as complex 
operation and maintenance, low stability, and slow JOIN queries. After 
conducting full-research on function, operation and maintenance, maturity, 
security and legal risks, etc., we decided to migrate to Apache Doris and build 
a new real-time data warehouse. At present, 360 DigiTech has multiple sets of 
clusters in production, realizin [...]
+
+## Momenta
+
+The construction of an automatic driving system relies on a large amount of 
vehicle road test data. Plus, the road test vehicles will always collect 
information from road conditions and related vehicles. Based on the data 
collected in the road test, we built a highly available real-time data 
warehouse based on Apache Doris and Flink, which has achieved a nearly 10x 
increase in business support. In the future, we will use Apache Doris in 
offline batch processing scenarios more often, and  [...]
+
+## Tencent Music
+
+Content profiling is an important method of recommendation. When facing a 
large amount of user data, how to accurately process and analyze is the key to 
the formation of content profiling, and it will also affect the user 
experience. In order to better meet business needs, Tencent Music has carried 
out 4 versions of architecture iterations, among which Apache Doris has become 
the solution for the analysis acceleration and plays an important role in the 
entire data architecture. In the gr [...]
+
+## ZONGTENG Group
+
+The early technology stack based on multiple sets of CDH architecture was so 
complicated that it brought heavy pressure on development and maintenance, 
making it impossible to quickly adapt to the growth of enterprise data and 
business needs with high complexity. Therefore, ZONGTENG Group adopted Apache 
Doris in 2022. Doris' simple architecture, excellent performance, rich ecology 
and other advantages helped us quickly build a unified batch and streaming data 
architecture.
+
+## Pocket Xianji Network Technology
+
+The e-commerce SaaS has clear requirements for lightweight architecture, query 
flexibility, and resource isolation mechanism. However, with the increase in 
the amount of data, ClickHouse we used has significantly reduced JOIN 
performance and cannot meet the needs of flexible scaling out. Therefore, we 
introduced Apache Doris to replace ClickHouse, and migrated all the basic data 
previously stored in MySQL to Doris, which not only greatly improved the 
efficiency of ETL, but also greatly r [...]
+
+## Meituan
+
+As one of the Internet companies with the largest business volume in China, 
Meituan is facing the challenge of low-latency analysis of massive data, and 
the company's rich business forms raise higher requirements for the flexibility 
and versatility of the OLAP engine. Therefore, Meituan conducted research on a 
various OLAP engines including Kylin and Druid to solve problems in different 
scenarios, and finally established a unified OLAP engine with Apache Doris. 
With years of development, [...]
+
+## Bank of Hangzhou Consumer Finance Company
+
+Financial risk control often has higher requirements for real-time data. The 
early risk control data mart based on Greenplum+CDH can no longer meet the high 
timeliness requirements of data. The T+1 data production mode seriously reduces 
the efficiency of daily analysis. Therefore, Bank of Hangzhou Consumer Finance 
Company introduced Apache Doris in 2022. Through the Multi-Catalog function of 
the latest version 1.2, it realizes federated analysis with data sources such 
as Hive/ES, which g [...]
+
+## Qigo-Tech
+
+Manufacturing data is well-known for numerous sources, large data volumes, 
strong real-time performance requirements, non-standard heterogeneity, 
significant noise, and frequent changes. Apache Doris’ advantages in core 
performance, data ecological adaptation, and scenario adaptation can help the 
manufacturing industry users build a variety of data analysis architectures. In 
a leading clothing industry data platform, Apache Doris was used as a real-time 
data warehouse, which shortened th [...]
+
+## Xiaomi
+
+Xiaomi Group adopted Apache Doris for the first time in 2019 due to the need 
for growing analysis business. After three years of development, Apache Doris 
has been widely used in dozens of businesses such as A/B tests, user behavior 
analysis, advertising BI, Xiaomi Youpin, and Xiaomi Auto, with dozens of 
clusters and hundreds of nodes. This year, we further carried out in-depth 
cooperation with Apache Doris, and used the vectorized execution engine in the 
A/B test. The query performance  [...]
+
+## Mashang Consumer Finance
+
+With the rapid growth of business volume and the upgrading of business models, 
there is a higher demand for real-time data analysis, which means it is 
neccessary to upgrade from offline data warehouse to real-time data warehouse. 
After comparing the popular open source data warehouses in the industry, we 
finally decided to build our real-time data warehouse based on Apache Doris. At 
present, Apache Doris has served the data applications of more than ten 
business departments. The P99 quer [...]
+
+## Douyu
+
+With the rapid development of Douyu's live-streaming business, the demand for 
business growth analysis and revenue analysis using user behavior data is 
becoming more and more urgent and sophisticated. To deal with the increasing 
demand, Douyu introduced Apache Doris to upgrade the real-time data warehouse, 
standardized and improved the real-time data warehouse, and established a 
unified HOLAP multi-dimensional analysis platform, which solved the 
difficulties caused by heavy architecture  [...]
+
+## JD.COM
+
+JD.COM's Search & Push Project started in 2019. Its goal is to bring better 
exposure and clicks to the high-quality goods resources of merchants on the 
platform through traffic control. Since joining the project, Apache Doris has 
been responsible for the traffic in JD.COM's Double 11 and 6.18 promotions 
during the past three years, with the traffic peaks reaching 450 million per 
minute. The 1.1.5 version released by Apache Doris has made a major 
breakthrough in performance and stability. [...]
+
+## LY Digital
+
+The growing demand for analysis of real-time data has further made real-time 
data warehouse an important part of enterprise production systems. In order to 
achieve a complete real-time analysis capability, we have carried out 
iterations of various architectures, from offline data warehouses, to real-time 
data warehouses, and finally to streaming compute & batch processing's 
integration. Finally, we built a unified data warehouse with Apache Doris, 
realizing the unification of storage lay [...]
+
+## Yunda EX
+
+In recent years, with the vigorous development of the express logistics 
industry, the amount of data has increased by hundreds of times. In 2022, the 
number of deliveries has exceeded 100 billion. Faced with such a large amount 
of data, Yunda has established a data platform based on the business center and 
data center to provide unified and diversified data services for the business. 
After detailed research and selection, we decided to build a unified real-time 
data warehouse with Apache [...]
+
+## Yiguanzhiku Network Technology
+
+In the early days, Yiguanzhiku Network Technology introduced Greenplum as the 
OLAP database in query analysis scenarios. With business development and 
technology changes, Greenplum's performance cannot support real-time analysis 
of large amounts of data, and the introduction of other components such as 
Hive/ES has brought new pressure on operation and maintenance. So Yiguanzhiku 
Network Technology migrated to Apache Doris from Greenplum. With the advantages 
of Doris’ rich data ecology an [...]
+
+## Moka
+
+As an industry-leading, data-driven intelligent HR SaaS service, Moka BI 
provides comprehensive data statistics and report support for enterprise human 
resources. In the research of BI report engine, real-time query, standard SQL 
and JOIN supports are what we are looking for. After comprehensive comparison 
of various databases, we finally chose Apache Doris. During more than two years 
of use, Moka has kept following the latest versions of Doris. The performance 
of the latest version has  [...]
+
+## 360 Security
+
+360 Security began to use Apache Doris sinced Version 0.13. In terms of OLAP 
storage engine, 360 Security experienced various databases. Currently, Apache 
Doris is the most ideal OLAP storage engine. The excellent query performance 
and easy-to-use features of Apache Doris make our real-time data warehouse 
architecture more concise, and ensure the end-to-end consistency of real-time 
data. In the future, we hope to bring Apache Doris to more business scenarios 
and we can deeply participate [...]
+
+## ZHIHU.COM
+
+Refined operations can improve the operating efficiency of enterprises and 
bring more revenue to enterprises. Effective tools can bring more business 
value to enterprises. Therefore, the Zhihu data platform was created and became 
handy in data-driven decision-making for business personnel since it was born. 
With its outstanding query and data processing performance, Apache Doris meets 
our needs for fast data ingestion, second-level grouping and insight of 
hundreds of billions of feature  [...]
+
+## Linkedcare
+
+Linkedcare is a leader in the medical technology industry. When building the 
store operation platform, we encountered the downtime problem caused by high 
concurrency, so we chose Apache Doris to replace ClickHouse. Doris can support 
thousands of concurrency and easily solve the concurrency problem of the report 
services. Then we introduced Doris to more business units and built a unified 
data warehouse. Brand-new architecture makes us no longer rely on the Hadoop 
ecosystem, reduces the p [...]
+
+## DuyanSoft
+
+DuyanSoft's current database architecture of MySQL + MongoDB + Elasticsearch 
has the problems of slow response speed, high operation cost of dim-tables and 
does not support high-concurrency point queries. After the introduction of 
Apache Doris in 2022, the query performance has been improved by more than 10 
times, and the most complex queries can be responded in seconds. Doris' Join 
function is outstanding and can easily store dim-tables in Doris for further 
maintenance, significantly im [...]
+
+## Advance Intelligence Group
+
+Advance Intelligence Group is a technology group driven by AI technology in 
Singapore. In order to solve the problems of real-time report statistics and 
decision analysis of billions of data volumes, Advance Intelligence Group chose 
the real-time data warehouse solution of Flink + Doris. After the real-time 
data warehouse built by Flink + Doris is launched, the response speed of the 
report interface has been significantly improved. The response speed of the 1 
billion-level aggregation qu [...]
\ No newline at end of file
diff --git a/userCases/zh_CN.md b/userCases/zh_CN.md
new file mode 100644
index 00000000000..1fb08820ffd
--- /dev/null
+++ b/userCases/zh_CN.md
@@ -0,0 +1,83 @@
+## 360数科
+
+金融科技业务对数据的安全性、准确性、实时性有着更严格的要求,早期Clickhouse集群存在运维复杂、稳定性低和Join查询较慢等问题。在对功能特性、运维管理、成熟度、安全与ca法律风险等多个维度进行调研后,我们决定引入Apache
 Doris构建新的实时数仓。目前360数科已有多套集群上线生产,实现了万亿数据秒级实时分析,后续也会将Apache Doris拓展到更多业务场景中。
+
+## Momenta
+
+自动驾驶系统的建设依赖于海量的车辆路测信息,而路测车辆会时刻采集着车辆周边道路状况信息及相关车辆信息。在路测采集的数据之上,我们基于Apache 
Doris与Flink搭建了一个高可用的实时数仓平台,实现了业务支撑量近十倍的提升,后续我们将在更多离线批处理场景利用Apache 
Doris,并推广至更多内部业务线使用,通过Apache Doris构建统一的数据分析平台。
+
+## 腾讯音乐
+
+内容画像是进行推荐中的重要手段,面对大量的用户数据,如何准确地进行处理分析是内容画像形成的关键,同时也将影响用户的使用体验。为了更好满足业务需求,腾讯音乐进行了4个版本的架构迭代,其中Apache
 Doris 
成为分析加速层的解决方案,在整个数据架构中起着重要的作用。在百万分群圈选中实现了性能近20倍的提升,同时借助冷热数据精细化管理和易用性特性,使我们存储成本和开发维护成本分别降低40%以上。
+
+## 纵腾集团
+
+早期基于多套CDH的架构技术栈繁杂,带来了沉重的开发与运维压力,无法快速应对企业数据的增长及复杂度较高的业务需求。于是纵腾集团于2022年正式引入Apache
 Doris,其简洁的架构、优异的性能、丰富的生态等优势,帮助我们快速构建了全新的流批一体数据架构。
+
+## 掌上先机(惠策)
+
+电商SaaS场景对于架构的轻量化、查询的灵活度和资源隔离机制有着明确的要求,而早期引入的Clickhouse随着数据量的增加,Join性能显著降低且无法承载灵活扩容的需求。因此我们引入Apache
 
Doris替换了原有的Clickhouse、并将原本存储在MySQL的基础数据全部迁移至Doris,这不仅极大提升了ETL效率,还极大降低了存储成本、存储空间仅原先40%不到,同时进一步提升了大表Join的性能表现。
+
+## 美团
+
+作为中国业务体量最大的互联网公司之一,美团面临海量数据低延时分析的挑战,而公司丰富的业务形态又对OLAP引擎的灵活性和通用性提出了更高的要求。于是美团探索了包括Kylin、Druid在内的多种OLAP引擎解决不同场景的问题,最终确立以Apache
 Doris来建立统一的OLAP引擎。随着多年发展,Apache 
Doris已经为外卖、买菜、优选、金融、到店、酒旅等十余业务线提供了服务,集群规模超百个、总机器规模数千台。而美团也同样在深度参与Apache 
Doris社区的建设中,在向量化执行引擎、查询优化器、Pipeline引擎等多个核心特性的开发中发挥着不可或缺的作用。
+
+## 杭银消金
+
+金融风控场景往往对数据的实时性有着更高的要求,早期基于Greenplum+CDH搭建的风控数据集市已经无法满足数据高时效性的要求,T+1的数据生产模式严重影响日常分析的效率。因此杭银消金于2022年引入了Apache
 
Doris,通过1.2最新版本的Multi-Catalog功能、实现与Hive/ES等数据源的联邦分析,极大提升查询性能,同时将日常跑批与统计分析进行解耦,降低资源消耗的同时使系统稳定性得到进一步增强。
+
+## 启高
+
+制造业数据具有来源众多、数据量大、实时性强、非标异构、噪声显著以及变更频繁等特点,而Apache Doris 
在核心性能、数据生态适配以及场景适应性的优势,可以帮助制造业用户构建多种不同的数据分析架构。在某头部服装行业数据平台升级项目中,通过Doris构建实时数据仓库,使得项目交付周期缩短40%、开发工作量减少30%、查询速度提升10倍以上,报表时效从T+1提升至实时,同时还使运维工作量降低80%!
+
+## 小米
+
+因增长分析业务需要小米集团于2019年首次引入了Apache Doris。经过三年时间的发展,目前 Apache Doris 
已经在A/B实验、用户行为分析、广告BI、小米有品、小米造成等数十个业务中得到广泛应用 ,集群规模有数十个、总节点规模数百台。今年我们与Apache 
Doris进一步展开深度合作,将向量化版本上线至A/B实验场景中,查询性能得到50%以上提升,稳定性也更高。后续我们也将推广Apache 
Doris到更多核心业务线使用,并逐步推动各业务线升级至新版本。
+
+## 马上消费金融
+
+随着业务体量的飞跃式增长以及业务模式的优化升级,数据分析的实时性有了更高的诉求,于是从离线数仓到实时数仓的架构升级势在必行。在对业内主流开源方案进行对比后,我们最终决定引入Apache
 Doris作为我们实时数仓的基座。目前Apache 
Doris已经服务了十余个业务线的数据应用,P99查询响应在5秒内,从数据生产至数据应用,整个数据处理链路时延不超过1分钟,极大提升了数据时效性,使得包括业务分析师、数据开发者、平台管理及运维方在内的不同类型用户均收获了更多。
+
+## 斗鱼
+
+随着斗鱼直播业务迅猛发展,利用用户行为数据对业务进行增长分析和营收分析的需求越来越迫切且精细。基于此斗鱼引入了Apache 
Doris来升级实时数据仓库,规范和完善了实时数仓的分层体系,并建立起统一的HOLAP多维分析平台,解决了过去烟囱式开发和繁重架构带来的难运维问题。与此同时,原有的标签中台架构也被Apache
 Doris所取代,实现标签圈选时间分钟级至秒级的进化,实时标签任务稳定性的同时产出时间也提升了40%。
+
+## 京东
+
+京东搜推登月计划从2019年开始启动,其目标旨在通过流量调控的手段,为平台上商家的优质货品资源带来更好的曝光与点击。从接入搜推登月计划至今,Apache 
Doris承担了近三年京东双11、618多次大促流量高峰,流量峰值最高达4.5+亿条每分钟。而Apache 
Doris发布的1.1.5版本更是在性能和稳定性上取得重大突破,查询性能较之前提升2-3倍、集群导入吞吐量整体提升100%,极大解决了我们使用中的痛点,达到了成本、效率、用户体验三者的统一。
+
+## 同程数科
+
+对实时数据越来越多的分析诉求,使得实时数仓的地位进一步提升,成为企业生产系统中的重要一环。为了实现更完善的实时分析能力,我们进行了多种架构的迭代,从离线数据仓库、到离线实时两条数据链路、再到流批一体,最终我们以Apache
 
Doris为核心构建了统一数据仓库,实现了存储层、计算层和数据接入层的统一。这不仅精简了整体链路体系、降低整个数据生产环节的维护程度,还可以像使用数据库一样使用大数据,业务团队就具备自助开发的能力、最大化减少开发周期、新增需求快速上线。
+
+## 韵达科技
+
+近些年来随着快递物流行业的蓬勃发展,数据量呈数百倍的增长态势,2022年票件量已突破千亿。面对如此大的数据量,韵达建立了以业务中台和数据中台为基础的平台,为集团业务提供统一和多样化的数据服务。在经过详尽的调研选型后,我们确定以Apache
 Doris为核心构建了统一的实时数仓,服务于多部门的报表场景,涵盖了90%以上的核心指标、多表关联的查询响应在秒级,后续我们也将让Apache Doris 
服务于更多业务、进一步推动离线指标实时化。
+
+## 易观
+
+早期易观在查询分析场景引入Greenplum作为OLAP数据库,随着业务发展与技术更迭,Greenplum性能无法支撑大数据量的实时分析、而引入其他如Hive/ES等组件又带来了新的运维压力、且组件间数据同步复杂,基于此易观引入Apache
 
Doris以替换Greenplum。通过Doris数据生态丰富以及易用性优势,日常查询耗时降低30%、特殊场景效率提升5倍,并且数据通过Doris统一管理、节省存储空间40%,后续也将结合Doris更多特性、与公司业务探索更多可行性方案。
+
+## Moka
+
+作为业界领先、数据驱动的智能化HR SaaS服务产品,Moka 
BI为企业HR业务提供了全方位的数据统计与报表支持。在BI报表引擎的调研中,实时查询/导入/更新以及标准SQL、Join支持能力是我们选型更为关注的方向,在综合对比多款数据库后,我们最终选择了能力最优秀的Apache
 
Doris。在两年多的使用过程中,Moka一直跟随社区的节奏更新迭代版本,最新版本的性能较过去有了极大提升,P95查询在3秒以内。后续Moka也会持续跟随社区步伐、持续关注和使用最新特性。
+
+## 360
+
+360商业化是在2021年0.13版本开始使用的Apache Doris,OLAP 存储引擎方面,在360商业化内部经历了许多选择,目前而言,Apache 
Doris是最理想的OLAP存储引擎。Apache Doris 
优异的查询性能以及极简易用的特性,使我们实时数仓架构更加简洁,实现了OLAP引擎的统一,保障了实时数据的端到端一致性。未来我们希望将Apache 
Doris推广到内部更多的场景,也希望能够深入参与到Apache Doris社区的建设中去。
+
+## 知乎
+
+精细化运营可以提升企业运营效率、为企业带来更多收入,而有效的工具可以为企业带来更多的业务价值,因此知乎舰桥平台应运而生,基于数据驱动为业务人员获取决策以来的事实依据。Palo(Powered
 by Apache 
Doris)凭借其突出的查询和导入性能,解决了我们千亿级特征数据的快速导入、秒级圈选和洞察的需求。同时在上线最新的向量化版本后,亿级数据的人群圈选性能提升10倍,单表聚合查询和多表关联查询性能也提升了3-5倍。未来也期待使用
 Palo 进一步支撑业务平台的功能完善,实现精细化运营与降本增效。
+
+## 领健
+
+领健是医疗科技行业的领导者。在构建门店运营平台时我们遇到了高并发带来的宕机问题,因此选择是 Apache Doris 替代了原有的 
ClickHouse,支持了上千并发量,轻松解决增值报表服务的并发问题。随后我们将Apache 
Doris扩展到更多业务线,构建了公司的统一数仓。全新的架构使我们不再依赖Hadoop生态,减少了运维压力,在性能得到大幅提升的同时还减少了服务器资源消耗。
+
+## 度言
+
+度言软件目前MySQL+MongoDB+Elasticsearch的传统数据库架构存在响应速度慢、维度表运维成本高、不支持高并发点查询的问题。22 年 3 
月份引入 Apache Doris后,查询性能得到超过10倍的提升、最复杂的查询可以在秒级响应。Doris 
Join能力突出,可以将维度表存储至Doris维护,明显提升开发效率,满足业务对维度表实时更新的需求。同时Doris简易的系统架构和丰富了系统功能,覆盖了原有多个技术栈才能实现的业务场景,极大简化了大数据的架构体系。
+
+## 领创
+
+领创是新加坡地区AI技术驱动的科技集团。为了解决十亿级数据量的实时报表统计与决策分析的问题,领创集团选择了 Flink + Doris 
的实时数仓方案。Flink + Doris 构建的实时数仓上线后,报表接口响应速度得到了明显提高,单表 10 亿级聚合查询响应速度 TP95 为 0.79 
秒,TP99 为 5.03 秒。未来,领创会随着社区的新版本逐步迭代Doris并参与到社区建设之中。
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to