diff --git a/.github/workflows/build-check.yml b/.github/workflows/build-check.yml index 1b5b62a8b53ed..8e025bb56868a 100644 --- a/.github/workflows/build-check.yml +++ b/.github/workflows/build-check.yml @@ -70,11 +70,115 @@ jobs: exit 1 fi + - name: Detect changed doc versions and locales + id: detect + run: | + BASE_SHA=$(git merge-base origin/${{ github.base_ref }} HEAD) + CHANGED_FILES=$(git diff --name-only "$BASE_SHA" HEAD) + + echo "=== Changed files ===" + echo "$CHANGED_FILES" + + VERSIONS="" + LOCALES="en" + NEED_FULL_BUILD="false" + + # Check each changed file and map to doc version + while IFS= read -r file; do + case "$file" in + # English current (dev) docs + docs/*) + VERSIONS="current,$VERSIONS" + ;; + # English versioned docs + versioned_docs/version-*/*) + ver=$(echo "$file" | sed -n 's|versioned_docs/version-\([^/]*\)/.*|\1|p') + VERSIONS="${ver},$VERSIONS" + ;; + # Chinese current docs + i18n/zh-CN/docusaurus-plugin-content-docs/current/*) + VERSIONS="current,$VERSIONS" + LOCALES="en,zh-CN" + ;; + # Chinese versioned docs + i18n/zh-CN/docusaurus-plugin-content-docs/version-*/*) + ver=$(echo "$file" | sed -n 's|i18n/zh-CN/docusaurus-plugin-content-docs/version-\([^/]*\)/.*|\1|p') + VERSIONS="${ver},$VERSIONS" + LOCALES="en,zh-CN" + ;; + # Chinese community docs + i18n/zh-CN/docusaurus-plugin-content-docs-community/*|i18n/zh-CN/code.json) + LOCALES="en,zh-CN" + ;; + # Sidebar for current (dev) version + sidebars.ts) + VERSIONS="current,$VERSIONS" + ;; + # Versioned sidebars: extract version from filename + # e.g. versioned_sidebars/version-4.x-sidebars.json → 4.x + versioned_sidebars/version-*-sidebars.json) + ver=$(echo "$file" | sed -n 's|versioned_sidebars/version-\(.*\)-sidebars\.json|\1|p') + VERSIONS="${ver},$VERSIONS" + ;; + # Blog and community are independent plugins, not + # controlled by DOCS_VERSIONS. They are always built + # regardless of version filtering. + blog/*|community/*) + NEED_BUILD="true" + ;; + # Config, source code, or other structural changes + # require a full build to validate + sidebarsCommunity.json|docusaurus.config.js|src/*|static/*|config/*|package.json|yarn.lock|tailwind.config.js) + NEED_FULL_BUILD="true" + ;; + esac + done <<< "$CHANGED_FILES" + + # Deduplicate versions + if [ "$NEED_FULL_BUILD" = "true" ]; then + # Structural changes: build all active versions + DOCS_VERSIONS="" + echo "Structural changes detected, will build ALL versions." + elif [ -n "$VERSIONS" ]; then + # Only doc content changes: build only affected versions + DOCS_VERSIONS=$(echo "$VERSIONS" | tr ',' '\n' | sort -u | grep -v '^$' | tr '\n' ',' | sed 's/,$//') + echo "Doc-only changes detected for versions: $DOCS_VERSIONS" + else + # No versioned doc changes (e.g., only blog, community, or scripts). + # Blog and community plugins are always compiled by Docusaurus + # regardless of DOCS_VERSIONS, so we just set the minimal docs + # scope to keep the build fast. + DOCS_VERSIONS="current" + echo "No doc version changes detected, doing minimal build with 'current' only." + echo "(Blog and community plugins are always built regardless.)" + fi + + # Determine locales for the build command + LOCALE_ARGS="" + IFS=',' read -ra LOCALE_ARR <<< "$LOCALES" + for locale in "${LOCALE_ARR[@]}"; do + LOCALE_ARGS="$LOCALE_ARGS --locale $locale" + done + + echo "docs_versions=$DOCS_VERSIONS" >> "$GITHUB_OUTPUT" + echo "locale_args=$LOCALE_ARGS" >> "$GITHUB_OUTPUT" + echo "need_full_build=$NEED_FULL_BUILD" >> "$GITHUB_OUTPUT" + + echo "" + echo "=== Build plan ===" + echo " DOCS_VERSIONS: ${DOCS_VERSIONS:-all}" + echo " LOCALE_ARGS: $LOCALE_ARGS" + echo " NEED_FULL_BUILD: $NEED_FULL_BUILD" + - name: Build + env: + DOCS_VERSIONS: ${{ steps.detect.outputs.docs_versions }} run: | npm install -g yarn yarn cache clean export NODE_OPTIONS=--max-old-space-size=8192 yarn - PWA_SERVICE_WORKER_URL=https://doris.apache.org/sw.js yarn docusaurus build --locale en --locale zh-CN + + echo "Building with DOCS_VERSIONS=${DOCS_VERSIONS:-all}" + PWA_SERVICE_WORKER_URL=https://doris.apache.org/sw.js yarn docusaurus build ${{ steps.detect.outputs.locale_args }} rm -rf build diff --git a/README.md b/README.md index 9d862278e16e6..3be719e7d83e1 100644 --- a/README.md +++ b/README.md @@ -17,344 +17,129 @@ specific language governing permissions and limitations under the License. --> -# Doris document website +# Apache Doris Website -This repo is for [Apache Doris Website](https://doris.apache.org) +Source code for [doris.apache.org](https://doris.apache.org), built with [Docusaurus 3](https://docusaurus.io/). -And it use Github Action to automatically sync content from [Apache Doris Code Repo](https://github.com/apache/doris) +## Quick Start -There are 2 Github Actions: +### Prerequisites -1. cron-deploy-website.yml - - It will sync at 01:00 AM everyday from Doris's master branch. - -2. manual-deploy-website.yml - - It can only be triggered manually, and you can specify the branch name you want to sync. - -## View the website - -To view the website, navigate to -[https://doris.apache.org](https://doris.apache.org) - -## Run & Build Website - -This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. - -### Installation - -``` -$ yarn -``` +- Node.js >= 18 +- Yarn ### Local Development -``` -$ yarn start -``` +Use `local_dev.sh` to run the site locally. It handles dependency installation, version filtering, and memory settings automatically. -This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. +```bash +# Start English dev server (default: only 'current' version, 2 GB memory) +./local_dev.sh -### Build +# Start Chinese dev server +./local_dev.sh start-zh -``` -$ yarn build -``` +# Start on a custom port +./local_dev.sh start --port 8080 -This command generates static content into the `build` directory and can be served using any static contents hosting service. +# Build a specific doc version +./local_dev.sh start --versions "4.x" -### Deployment +# Build English docs (production build) +./local_dev.sh build -Using SSH: +# Build all locales (en + zh-CN) +./local_dev.sh build-all +# Clean build artifacts and caches +./local_dev.sh clean ``` -$ USE_SSH=true yarn deploy -``` - -Not using SSH: - -``` -$ GIT_USER= yarn deploy -``` - -If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. -# Modify the documentation +Run `./local_dev.sh help` for all available commands and options. -For how to submit pull requests, please refer to +### Production Build -- [How to Contribute](https://doris.apache.org/zh-CN/community/how-to-contribute/contribute-to-doris) - -- [How to contribute docs](https://doris.apache.org/community/how-to-contribute/contribute-doc) - -- [Docs Format Specification](https://doris.apache.org/community/how-to-contribute/docs-format-specification) - -## Doris Website Directory Structure - -```Plain -. -├── blog -│ ├── 1.1 Release.md -│ ├── Annoucing.md -│ ├── jd.md -│ ├── meituan.md -│ ├── release-note-0.15.0.md -│ ├── release-note-1.0.0.md -│ └── xiaomi.md -├── community -│ ├── design -│ │ ├── spark_load.md -│ │ ├── doris_storage_optimization.md -│ │ ├── grouping_sets_design.md -│ │ └── metadata-design.md -│ ├── ...... -├── docs -│ ├── admin-manual -│ │ ├── cluster-management -│ │ ├── config -│ │ ├── data-admin -│ │ ├── http-actions -│ │ ├── maint-monitor -│ │ ├── privilege-ldap -│ │ ├── multi-tenant.md -│ │ ├── optimization.md -│ │ ├── query-profile.md -│ │ └── sql-interception.md -│ │ └── workload-group.md -│ ├── ...... -├── i18n -│ └── zh-CN -│ ├── docusaurus-plugin-content-docs -│ │ ├── current -│ │ ├── version-1.2 -│ │ ├── version-2.0 -│ │ ├── version-2.1 -│ │ ├── current.json -│ │ ├── version-1.2.json -│ │ ├── version-2.0.json -│ │ ├── version-2.1.json -│ ├── docusaurus-plugin-content-docs-community -│ └── local_build_docs.sh -├── src -│ ├── components -│ │ ├── Icons -│ │ ├── More -│ │ ├── PageBanner -│ │ └── PageColumn -│ ├── ...... -├── static -│ ├── images -│ │ ├── Bloom_filter.svg.png -│ │ ├── ..... -│ └── js -│ └── redirect.js -├── versioned_docs -│ ├── version-1.2 -│ │ ├── admin-manual -│ │ ├── advanced -│ │ ├── benchmark -│ │ ├── data-operate -│ │ ├── data-table -│ │ ├── ecosystem -│ │ ├── faq -│ │ ├── get-starting -│ │ ├── install -│ │ ├── lakehouse -│ │ ├── query-acceleration -│ │ ├── releasenotes -│ │ └── sql-manual -│ └── version-2.0 -│ ├── admin-manual -│ ├── benchmark -│ ├── data-operate -│ ├── db-connect -│ ├── ecosystem -│ ├── faq -│ ├── get-starting -│ ├── install -│ ├── lakehouse -│ ├── query -│ ├── releasenotes -│ ├── sql-manual -│ └── table-design -└── version-2.1 -│ ├── admin-manual -│ ├── advanced -│ ├── benchmark -│ ├── data-operate -│ ├── data-table -│ ├── ecosystem -│ ├── faq -│ ├── get-starting -│ ├── install -│ ├── lakehouse -│ ├── query-acceleration -│ ├── releasenotes -│ └── sql-manual -├── versioned_sidebars -│ ├── version-1.2-sidebars.json -│ └── version-2.0-sidebars.json -│ └── version-2.1-sidebars.json -├── babel.config.js -├── build.sh -├── buildVersions.sh -├── docusaurus.config.js -├── package.json -├── README.md -├── sidebars.json -├── sidebarsCommunity.json -├── tree.out -├── tsconfig.json -├── versions.json +```bash +export NODE_OPTIONS=--max-old-space-size=8192 +yarn install +yarn docusaurus build --locale en --locale zh-CN ``` -The following describes the directory structure of the Doris Website site so that users can easily find the corresponding directory and submit changes. - -### 01 Blog Directory - -The blog directory is located at `/blog`. All Blog Markdown should be placed in that directory. - -If you would like to share your technical insights, welcome to directly submitting a Blog PR or contacting dev@doris.apache.org. - -### 02 Docs Directory - -Here is the list of files if you need to submit docs changes: - -1. **Markdown Files:** When you want to modify existing content or add new documents, you need to place them to the respective folders and both update Master branch and Version docs (2.1/2.0/1.2) . -2. **Sidebar Files:** These files control the directory structures. When adding new files or new directory, you should also update relative path in sidebar files that ensure the new document is displayed correctly in directory. Currently, Master branch and other versions have separate sidebar files, including `sidebar.json, version-2.0-sidebars.json, and version-2.1-sidebars.json`. +The output is generated in the `build/` directory. -Please make sure to update all the necessary files accordingly when modifying existing document content, adding new documents, or adding new directory sections. +## Directory Structure -The following are the detailed steps for explaining how and where modify the docs: - -**Updating Latest Version (Master Branch)** - -**1. Update content** - -This version is modified in the `/docs` directory - -```Plain -. -├── docs -│ ├── admin-manual -│ ├── ...... ``` - -**2. Update sidebar** - -The docs directory structure of the latest version is edited by `sidebar.json`. - -```Plain . -├── docs -│ ├── admin-manua -│ ├── ...... -├── i18n -├── src -├── static -├── versioned_docs -├── versioned_sidebars -├── sidebars.json +├── docs/ # Current (dev) version docs (English) +├── versioned_docs/ +│ ├── version-4.x/ # 4.x version docs (English) +│ ├── version-3.x/ # 3.x version docs (English) +│ └── version-2.1/ # 2.1 version docs (English) +├── i18n/zh-CN/ +│ └── docusaurus-plugin-content-docs/ +│ ├── current/ # Current (dev) version docs (Chinese) +│ ├── version-4.x/ # 4.x version docs (Chinese) +│ ├── version-3.x/ # 3.x version docs (Chinese) +│ └── version-2.1/ # 2.1 version docs (Chinese) +├── blog/ # Blog posts +├── community/ # Community docs +├── src/ # React components and pages +├── static/ # Static assets (images, JS, CSS) +├── sidebars.ts # Sidebar for current (dev) docs +├── versioned_sidebars/ # Sidebar files per version +│ ├── version-4.x-sidebars.json +│ ├── version-3.x-sidebars.json +│ └── version-2.1-sidebars.json +├── sidebarsCommunity.json # Sidebar for community docs +├── versions.json # Active doc versions +├── docusaurus.config.js # Docusaurus configuration +└── local_dev.sh # Local development helper script ``` -Whether add new docs to existing directory or new directory, you need to update the relative path of the added docs in `sidebar.json`. - -```JSON -{ - "docs": [ - { - "type": "category", - "label": "Getting Started", - "items": [ - "get-starting/quick-start", - "get-starting/what-is-apache-doris" - ] - }, - { - "type": "category", - "label": "Install and Deploy", - "items": [ - "install/standard-deployment", - { - "type": "category", - "label": "Docker Deployment", - "items": [ - "install/construct-docker/build-docker-image", - "install/construct-docker/run-docker-cluster" - ] - } - ...... - } - ] - } -``` +## Contributing Documentation -**Updating Version 2.1/2.0/1.2** +For general contribution guidelines, see: -**1. Update content** +- [How to Contribute](https://doris.apache.org/community/how-to-contribute/contribute-to-doris) +- [How to Contribute Docs](https://doris.apache.org/community/how-to-contribute/contribute-doc) +- [Docs Format Specification](https://doris.apache.org/community/how-to-contribute/docs-format-specification) -- 2.1 version is modified in the `/versioned_docs/version-2.1` directory +### Editing Docs -- 2.0 version is modified in the `/versioned_docs / version-2.0`directory +When modifying docs, you typically need to update **both the English and Chinese versions** in the corresponding directories: -- 1.2 version is modified in the `/versioned_docs / version-1.2` directory +| Version | English | Chinese | Sidebar | +|---------|---------|---------|---------| +| Current (dev) | `docs/` | `i18n/zh-CN/.../current/` | `sidebars.ts` | +| 4.x | `versioned_docs/version-4.x/` | `i18n/zh-CN/.../version-4.x/` | `versioned_sidebars/version-4.x-sidebars.json` | +| 3.x | `versioned_docs/version-3.x/` | `i18n/zh-CN/.../version-3.x/` | `versioned_sidebars/version-3.x-sidebars.json` | +| 2.1 | `versioned_docs/version-2.1/` | `i18n/zh-CN/.../version-2.1/` | `versioned_sidebars/version-2.1-sidebars.json` | -```Plain -. -├── blog -├── community -├── docs -├── i18n -├── versioned_docs -│ ├── version-1.2 -│ ├── version-2.0 -│ ├── version-2.1 -``` +> **Note:** When adding a new page, you must also add its path to the corresponding sidebar file, otherwise it will not appear in the navigation. -**2. Update sidbar** +### Editing Blog Posts -The docs directory structure of the version docs is edited by `version-X.X-sidebar.json`. +Blog posts are located in the `blog/` directory. Submit a PR to add or modify blog content. -```Plain -. -├── blog -├── community -├── docs -├── i18n -├── versioned_docs -├── versioned_sidebars -│ ├── version-1.2-sidebars.json -│ └── version-2.0-sidebars.json -│ └── version-2.1-sidebars.json -``` +### Editing Community Docs -### 03 Community Docs Directory +Community docs are in `community/`, with navigation controlled by `sidebarsCommunity.json`. Chinese community content lives under `i18n/zh-CN/docusaurus-plugin-content-docs-community/`. -If you want to modify the community docs, please go to `community/` directory. +### Images -- For modifying the existing docs, please go to `community/` directory. +All images are stored in `static/images/`. Use hyphens to separate words in filenames (e.g., `query-profile-example.png`). -- For updating community docs directory, please modify the `sidebarsCommunity.json` to include appropriate relative path for the new document. - -```Markdown -. -├── blog -├── community -│ ├── design -│ │ ├── spark_load.md -│ │ ├── doris_storage_optimization.md -│ │ ├── grouping_sets_design.md -│ │ └── metadata-design.md -│ ├── ...... -│ ...... -├── sidebarsCommunity.json +```markdown +![Description of the image](/images/my-screenshot.png) ``` -### 04 Images Directory - -All images are located at `/static/images`. +## CI / Deployment -You can display images in simple syntax: ` ![Alt text for images description](co-locate file structure or link) ` +The site is deployed via GitHub Actions: -If the image file name consists of multiple English words, they should be separated by hyphens "-". +| Workflow | Trigger | Description | +|----------|---------|-------------| +| `cron-deploy-website.yml` | Daily at 01:00 AM | Syncs from Doris master branch and deploys | +| `manual-deploy-website.yml` | Manual | Deploy from a specified branch | +| `build-check.yml` | On PR | Validates the build passes (incrementally by detected version) | diff --git a/docusaurus.config.js b/docusaurus.config.js index b506729f29cd3..c65018518913e 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -4,6 +4,14 @@ const VERSIONS = require('./versions.json'); const { markdownBoldPlugin } = require('./config/markdown-bold-plugin'); const { DEFAULT_VERSION } = require('./src/constant/version'); +// Allow filtering doc versions via environment variable. +// Usage: DOCS_VERSIONS="current,4.x" yarn docusaurus build +// This uses Docusaurus's native onlyIncludeVersions option +// instead of modifying versions.json. +const ONLY_VERSIONS = process.env.DOCS_VERSIONS + ? process.env.DOCS_VERSIONS.split(',').map(v => v.trim()).filter(Boolean) + : null; + const lightCodeTheme = themes.dracula; const logoImg = '/images/logo-doris.svg'; @@ -121,6 +129,16 @@ const config = { sidebarPath: require.resolve('./sidebarsCommunity.json'), }), ], + [ + 'content-docs', + /** @type {import('@docusaurus/plugin-content-docs').Options} */ + ({ + id: 'releases', + path: 'releasenotes', + routeBasePath: '/releases', + sidebarPath: require.resolve('./sidebarsReleases.json'), + }), + ], async function tailwindcssPlugin(context, options) { return { name: 'docusaurus-tailwindcss', @@ -146,27 +164,36 @@ const config = { from: '/docs/dev/get-starting/', to: `/docs/${DEFAULT_VERSION}/gettingStarted/quick-start`, }, - { - from: '/docs/4.0/releasenotes/v4.0/release-4.0.0/', - to: '/docs/4.x/releasenotes/v4.0/release-4.0.0' - }, { from: '/slack', to: 'https://join.slack.com/t/apachedoriscommunity/shared_invite/zt-3b8tlr3le-Z~IrrVxkzqniFjhL17d1oQ' } ], createRedirects(existingPath) { + const redirects = []; + if (existingPath.includes('/gettingStarted/what-is-apache-doris') || existingPath.startsWith('/docs/3.x/')) { // Redirect from /gettingStarted/what-is-new to /gettingStarted/what-is-apache-doris - return [ + redirects.push( existingPath.replace( '/gettingStarted/what-is-apache-doris', '/gettingStarted/what-is-new', ), existingPath.replace('/docs/3.x/', '/docs/'), existingPath.replace('/docs/3.x/', '/docs/3.0/') - ]; + ); } - return undefined; // Return a falsy value: no redirect created + + // Redirect old versioned releasenotes URLs to new /releases/ paths + // e.g. /docs/4.x/releasenotes/v4.0/release-4.0.5 -> /releases/v4.0/release-4.0.5 + if (existingPath.startsWith('/releases/')) { + const releasePath = existingPath.replace('/releases/', ''); + const oldVersionPrefixes = ['4.x', '3.x', '2.1', '2.0', '1.2', '4.0', '3.1', '3.0', 'dev']; + for (const ver of oldVersionPrefixes) { + redirects.push(`/docs/${ver}/releasenotes/${releasePath}`); + } + } + + return redirects.length > 0 ? redirects : undefined; }, }, ], @@ -177,7 +204,12 @@ const config = { /** @type {import('@docusaurus/preset-classic').Options} */ ({ docs: { - lastVersion: getLatestVersion(), + ...(ONLY_VERSIONS && { onlyIncludeVersions: ONLY_VERSIONS }), + // When filtering versions, lastVersion must be in the + // included list. Fall back to the first included version. + lastVersion: ONLY_VERSIONS && !ONLY_VERSIONS.includes(getLatestVersion()) + ? ONLY_VERSIONS[0] + : getLatestVersion(), versions: getDocsVersions(), sidebarPath: require.resolve('./sidebars.ts'), // editUrl: ({ locale, versionDocsDirPath, docPath }) => { @@ -344,6 +376,11 @@ const config = { to: '/community/join-community', position: 'left', }, + { + label: 'Releases', + to: '/releases/all-release', + position: 'left', + }, { label: 'Vendors', to: '/vendors', @@ -495,6 +532,11 @@ const config = { to: '/community/join-community', position: 'left', }, + { + label: 'Releases', + to: '/releases/all-release', + position: 'left', + }, { label: 'Vendors', to: '/vendors', diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/all-release.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/all-release.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/all-release.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/all-release.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.1/release-1.1.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.1/release-1.1.0.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.1/release-1.1.0.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.1/release-1.1.0.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.1/release-1.1.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.1/release-1.1.1.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.1/release-1.1.1.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.1/release-1.1.1.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.1/release-1.1.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.1/release-1.1.2.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.1/release-1.1.2.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.1/release-1.1.2.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.1/release-1.1.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.1/release-1.1.3.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.1/release-1.1.3.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.1/release-1.1.3.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.1/release-1.1.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.1/release-1.1.4.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.1/release-1.1.4.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.1/release-1.1.4.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.1/release-1.1.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.1/release-1.1.5.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.1/release-1.1.5.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.1/release-1.1.5.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.0.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.0.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.0.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.1.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.1.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.1.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.2.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.2.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.2.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.3.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.3.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.3.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.4.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.4.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.4.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.5.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.5.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.5.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.6.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.6.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.6.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.7.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.7.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.7.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.8.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v1.2/release-1.2.8.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v1.2/release-1.2.8.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.0.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.0.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.0.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.1.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.1.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.1.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.10.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.10.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.10.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.10.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.11.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.11.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.11.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.11.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.12.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.12.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.12.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.12.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.13.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.13.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.13.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.13.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.14.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.14.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.14.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.14.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.15.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.15.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.15.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.15.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.2.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.2.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.2.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.3.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.3.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.3.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.4.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.4.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.4.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.5.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.5.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.5.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.6.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.6.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.6.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.7.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.7.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.7.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.8.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.8.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.8.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.9.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.9.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.0/release-2.0.9.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.0/release-2.0.9.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.0.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.0.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.0.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.1.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.1.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.1.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.10.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.10.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.10.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.10.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.11.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.11.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.11.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.11.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.2.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.2.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.2.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.3.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.3.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.3.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.4.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.4.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.4.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.5.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.5.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.5.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.6.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.6.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.6.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.7.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.7.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.7.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.8.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.8.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.8.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.9.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.9.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v2.1/release-2.1.9.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v2.1/release-2.1.9.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.0.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.0.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.0.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.1.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.1.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.1.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.2.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.2.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.2.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.3.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.3.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.3.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.4.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.4.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.4.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.5.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.5.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.5.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.6.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.6.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.6.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.7.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.7.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.7.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.8.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.0/release-3.0.8.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.0/release-3.0.8.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.1/release-3.1.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.1/release-3.1.0.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.1/release-3.1.0.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.1/release-3.1.0.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.1/release-3.1.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.1/release-3.1.1.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.1/release-3.1.1.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.1/release-3.1.1.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.1/release-3.1.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.1/release-3.1.2.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.1/release-3.1.2.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.1/release-3.1.2.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.1/release-3.1.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.1/release-3.1.3.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.1/release-3.1.3.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.1/release-3.1.3.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.1/release-3.1.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.1/release-3.1.4.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v3.1/release-3.1.4.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v3.1/release-3.1.4.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v4.0/release-4.0.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v4.0/release-4.0.0.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v4.0/release-4.0.0.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v4.0/release-4.0.0.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v4.0/release-4.0.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v4.0/release-4.0.1.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v4.0/release-4.0.1.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v4.0/release-4.0.1.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v4.0/release-4.0.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v4.0/release-4.0.2.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v4.0/release-4.0.2.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v4.0/release-4.0.2.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v4.0/release-4.0.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v4.0/release-4.0.3.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v4.0/release-4.0.3.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v4.0/release-4.0.3.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v4.0/release-4.0.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v4.0/release-4.0.4.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v4.0/release-4.0.4.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v4.0/release-4.0.4.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v4.0/release-4.0.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v4.0/release-4.0.5.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/releasenotes/v4.0/release-4.0.5.md rename to i18n/zh-CN/docusaurus-plugin-content-docs-releases/current/v4.0/release-4.0.5.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.0.md deleted file mode 100644 index 521e93bb966f8..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.0.md +++ /dev/null @@ -1,374 +0,0 @@ ---- -{ - "title": "Release 1.1.0", - "language": "zh-CN" -} ---- - -在 1.1 版本中,**我们实现了计算层和存储层的全面向量化、正式将向量化执行引擎作为稳定功能进行全面启用**,所有查询默认通过向量化执行引擎来执行,**性能较之前版本有 3-5 倍的巨大提升**;增加了直接访问 Apache Iceberg 外部表的能力,支持对 Doris 和 Iceberg 中的数据进行联邦查询,**扩展了 Apache Doris 在数据湖上的分析能力**;在原有的 LZ4 基础上增加了 ZSTD 压缩算法,进一步提升了数据压缩率;**修复了诸多之前版本存在的性能与稳定性问题**,使系统稳定性得到大幅提升。欢迎大家下载使用。 - -## 升级说明 - -### 向量化执行引擎默认开启 - -在 Apache Doris 1.0 版本中,我们引入了向量化执行引擎作为实验性功能。用户需要在执行 SQL 查询手工开启,通过 `set batch_size = 4096` 和 `set enable_vectorized_engine = true `配置 session 变量来开启向量化执行引擎。 - -在 1.1 版本中,我们正式将向量化执行引擎作为稳定功能进行了全面启用,session 变量`enable_vectorized_engine` 默认设置为 true,无需用户手工开启,所有查询默认通过向量化执行引擎来执行。 - -### BE 二进制文件更名 - -BE 二进制文件从原有的 palo_be 更名为 doris_be ,如果您以前依赖进程名称进行集群管理和其他操作,请注意修改相关脚本。 - -### Segment 存储格式升级 - -Apache Doris 早期版本的存储格式为 Segment V1,在 0.12 版本中我们实现了新的存储格式 Segment V2 ,引入了 Bitmap 索引、内存表、Page Cache、字典压缩以及延迟物化等诸多特性。从 0.13 版本开始,新建表的默认存储格式为 Segment V2,与此同时也保留了对 Segment V1 格式的兼容。 - -为了保证代码结构的可维护性、降低冗余历史代码带来的额外学习及开发成本,我们决定从下一个版本起不再支持 Segment v1 存储格式,预计在 Apache Doris 1.2 版本中将删除这部分代码。 - - -### 正常升级 - -正常升级操作请按照官网上的集群升级文档进行滚动升级即可。 - -[https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade](https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade) - -## 重要功能 - -### 支持数据随机分布 [实验性功能] [#8259](https://github.com/apache/doris/pull/8259) [#8041](https://github.com/apache/doris/pull/8041) - -在某些场景中(例如日志分析类场景),用户可能无法找到一个合适的分桶键来避免数据倾斜,因此需要由系统提供额外的分布方式来解决数据倾斜的问题。 - -因此通过在建表时可以不指定具体分桶键,选择使用随机分布对数据进行分桶`DISTRIBUTED BY random BUCKETS number`,数据导入时将会随机写入单个 Tablet ,以减少加载过程中的数据扇出,并减少资源开销、提升系统稳定性。 - -### 支持创建 Iceberg 外部表 [实验性功能] [#7391](https://github.com/apache/doris/pull/7391) [#7981](https://github.com/apache/doris/pull/7981) [#8179](https://github.com/apache/doris/pull/8179) - -Iceberg 外部表为 Apache Doris 提供了直接访问存储在 Iceberg 数据的能力。通过 Iceberg 外部表可以实现对本地存储和 Iceberg 存储的数据进行联邦查询,省去繁琐的数据加载工作、简化数据分析的系统架构,并进行更复杂的分析操作。 - -在 1.1 版本中,Apache Doris 支持了创建 Iceberg 外部表并查询数据,并支持通过 REFRESH 命令实现 Iceberg 数据库中所有表 Schema 的自动同步。 - -### 增加 ZSTD 压缩算法 [#8923](https://github.com/apache/doris/pull/8923) [#9747](https://github.com/apache/doris/pull/9747) - -目前 Apache Doris 中数据压缩方法是系统统一指定的,默认为 LZ4。针对部分对数据存储成本敏感的场景,例如日志类场景,原有的数据压缩率需求无法得到满足。 - -在 1.1 版本中,用户建表时可以在表属性中设置`"compression"="zstd"` 将压缩方法指定为 ZSTD。在 25GB 1.1 亿行的文本日志测试数据中,**最高获得了近 10 倍的压缩率、较原有压缩率提升了 53%,从磁盘读取数据并进行解压缩的速度提升了 30%** 。 - -## 功能优化 - -### **更全面的向量化支持** - -在 1.1 版本中,我们实现了计算层和存储层的全面向量化,包括: - -- 实现了所有内置函数的向量化 - -- 存储层实现向量化,并支持了低基数字符串列的字典优化 - -- 优化并解决了向量化引擎的大量性能和稳定性问题。 - -我们对 Apache Doris 1.1 版本与 0.15 版本分别在 SSB 和 TPC-H 标准测试数据集上进行了性能测试: - -- 在 SSB 测试数据集的全部 13 个 SQL 上,1.1 版本均优于 0.15 版本,整体性能约提升了 3 倍,解决了 1.0 版本中存在的部分场景性能劣化问题; - -- 在 TPC-H 测试数据集的全部 22 个 SQL 上,1.1 版本均优于 0.15 版本,整体性能约提升了 4.5 倍,部分场景性能达到了十余倍的提升; - -![release-note-1.1.0-SSB](/images/release-note-1.1.0-SSB.png) - -

SSB 测试数据集

- -![release-note-1.1.0-TPC-H](/images/release-note-1.1.0-TPC-H.png) - -

TPC-H 测试数据集

- -**性能测试报告:** - -[https://doris.apache.org/zh-CN/docs/benchmark/ssb](https://doris.apache.org/zh-CN/docs/benchmark/ssb) - -[https://doris.apache.org/zh-CN/docs/benchmark/tpch](https://doris.apache.org/zh-CN/docs/benchmark/tpch) - -### Compaction 逻辑优化与实时性保证 [#10153](https://github.com/apache/doris/pull/10153) - -在 Apache Doris 中每次 Commit 都会产生一个数据版本,在高并发写入场景下,容易出现因数据版本过多且 Compaction 不及时而导致的 -235 错误,同时查询性能也会随之下降。 - -在 1.1 版本中我们引入了 QuickCompaction,增加了主动触发式的 Compaction 检查,在数据版本增加的时候主动触发 Compaction,同时通过提升分片元信息扫描的能力,快速发现数据版本过多的分片并触发 Compaction。通过主动式触发加被动式扫描的方式,彻底解决数据合并的实时性问题。 - -同时,针对高频的小文件 Cumulative Compaction,实现了 Compaction 任务的调度隔离,防止重量级的 Base Compaction 对新增数据的合并造成影响。 - -最后,针对小文件合并,优化了小文件合并的策略,采用梯度合并的方式,每次参与合并的文件都属于同一个数据量级,防止大小差别很大的版本进行合并,逐渐有层次的合并,减少单个文件参与合并的次数,能够大幅地节省系统的 CPU 消耗。 - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a6d5c50f16a048f3ab27357bc97b7461~tplv-k3u1fbpfcp-zoom-1.image) - -在数据上游维持每秒 10w 的写入频率时(20 个并发写入任务、每个作业 5000 行、 Checkpoint 间隔 1s),1.1 版本表现如下: - -- 数据快速合并:Tablet 数据版本维持在 50 以下,Compaction Score 稳定。相较于之前版本高并发写入时频繁出现的 -235 问题,**Compaction 合并效率有 10 倍以上的提升**。 - - - -- CPU 资源消耗显著降低:针对小文件 Compaction 进行了策略优化,在上述高并发写入场景下,**CPU 资源消耗降低 25%** ; - - - -- 查询耗时稳定:提升了数据整体有序性,大幅降低查询耗时的波动性,**高并发写入时的查询耗时与仅查询时持平**,查询性能较之前版本**有 3-4 倍提升**。 - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1c79ee9efba0416d81cc7bed1a349fdf~tplv-k3u1fbpfcp-zoom-1.image) - -### Parquet 和 ORC 文件的读取效率优化 [#9472](https://github.com/apache/doris/pull/9472) - -通过调整 Arrow 参数,利用 Arrow 的多线程读取能力来加速 Arrow 对每个 row_group 的读取,并修改成 SPSC 模型,通过预取来降低等待网络的代价。优化前后对 Parquet 文件导入的性能有 4 ~ 5 倍的提升。 - -### 更安全的元数据 Checkpoint [#9180](https://github.com/apache/doris/pull/9180) [#9192](https://github.com/apache/doris/pull/9192) - -通过对元数据检查点后生成的 image 文件进行双重检查和保留历史 image 文件的功能,解决了 image 文件错误导致的元数据损坏问题。 - -## Bug 修复 - -### 修复由于缺少数据版本而无法查询数据的问题。(严重)[#9267](https://github.com/apache/doris/pull/9267) [#9266](https://github.com/apache/doris/pull/9266) - -问题描述:`failed to initialize storage reader. tablet=924991.xxxx, res=-214, backend=xxxx` - -该问题是在版本 1.0 中引入的,可能会导致多个副本的数据版本丢失。 - -### 解决了资源隔离对加载任务的资源使用限制无效的问题(中等)[#9492](https://github.com/apache/doris/pull/9492) - -在 1.1 版本中, Broker Load 和 Routine Load 将使用具有指定资源标记的 BE 节点进行加载。 - -### 修复使用 HTTP BRPC 超过 2GB 传输网络数据包导致数据传输错误的问题(中等)[#9770](https://github.com/apache/doris/pull/9770) - -在以前的版本中,当通过 BRPC 在后端之间传输的数据超过 2GB 时,可能会导致数据传输错误。 - -## 其他 - -### 禁用 Mini Load - -Mini Load 与 Stream Load 的导入实现方式完全一致,都是通过 HTTP 协议提交和传输数据,在导入功能支持上 Stream Load 更加完备。 - -在 1.1 版本中,默认情况下 Mini Load 接口 `/_load` 将处于禁用状态,请统一使用 Stream Load 来替换 Mini Load。您也可以通过关闭 FE 配置项 `disable_mini_load` 来重新启用 Mini Load 接口。在版本 1.2 中,将彻底删除 Mini Load 。 - -### 完全禁用 SegmentV1 存储格式 - -在 1.1 版本中将不再允许新创建 SegmentV1 存储格式的数据,现有数据仍可以继续正常访问。 - -您可以使用 ADMIN SHOW TABLET STORAGE FORMAT 语句检查集群中是否仍然存在 SegmentV1 格式的数据,如果存在请务必通过数据转换命令转换为 SegmentV2。 - -在 Apache Doris 1.2 版本中不再支持对 Segment V1 数据的访问,同时 Segment V1 代码将被彻底删除。 - -### 限制 String 类型的最大长度 [#8567](https://github.com/apache/doris/pull/8567) - -String 类型是 Apache Doris 在 0.15 版本中引入的新数据类型,在过去 String 类型的最大长度允许为 2GB。 - -在 1.1 版本中,我们将 String 类型的最大长度限制为 1 MB,超过此长度的字符串无法再写入,同时不再支持将 String 类型用作表的 Key 列、分区列以及分桶列。 - -已写入的字符串类型可以正常访问。 - -### 修复 fastjson 相关漏洞 [#9763](https://github.com/apache/doris/pull/9763) - -对 Canal 版本进行更新以修复 fastjson 安全漏洞 - -### 添加了 ADMIN DIAGNOSE TABLET 命令 [#8839](https://github.com/apache/doris/pull/8839) - -通过 ADMIN DIAGNOSE TABLET tablet_id 命令可以快速诊断指定 Tablet 的问题。 - -## 下载使用 - -### 下载链接 - -[https://doris.apache.org/zh-CN/download](https://doris.apache.org/zh-CN/download) - -### 升级说明 - -您可以从 Apache Doris 1.0 Release 版本和 1.0.x 发行版本升级到 1.1 Release 版本,升级过程请官网参考文档。如果您当前是 0.15 Release 版本或 0.15.x 发行版本,可跳过 1.0 版本直接升级至 1.1。 - -[https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade](https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade - -### 意见反馈 - -如果您遇到任何使用上的问题,欢迎随时通过 GitHub Discussion 论坛或者 Dev 邮件组与我们取得联系。 - -GitHub 论坛:[https://github.com/apache/incubator-doris/discussions](https://github.com/apache/incubator-doris/discussions) - -Dev 邮件组:[dev@doris.apache.org](dev@doris.apache.org) - -## 致谢 - -Apache Doris 1.1 Release 版本的发布离不开所有社区用户的支持,在此向所有参与版本设计、开发、测试、讨论的社区贡献者们表示感谢,他们分别是: - -``` - -@adonis0147 - -@airborne12 - -@amosbird - -@aopangzi - -@arthuryangcs - -@awakeljw - -@BePPPower - -@BiteTheDDDDt - -@bridgeDream - -@caiconghui - -@cambyzju - -@ccoffline - -@chenlinzhong - -@daikon12 - -@DarvenDuan - -@dataalive - -@dataroaring - -@deardeng - -@Doris-Extras - -@emerkfu - -@EmmyMiao87 - -@englefly - -@Gabriel39 - -@GoGoWen - -@gtchaos - -@HappenLee - -@hello-stephen - -@Henry2SS - -@hewei-nju - -@hf200012 - -@jacktengg - -@jackwener - -@Jibing-Li - -@JNSimba - -@kangshisen - -@Kikyou1997 - -@kylinmac - -@Lchangliang - -@leo65535 - -@liaoxin01 - -@liutang123 - -@lovingfeel - -@luozenglin - -@luwei16 - -@luzhijing - -@mklzl - -@morningman - -@morrySnow - -@nextdreamblue - -@Nivane - -@pengxiangyu - -@qidaye - -@qzsee - -@SaintBacchus - -@SleepyBear96 - -@smallhibiscus - -@spaces-X - -@stalary - -@starocean999 - -@steadyBoy - -@SWJTU-ZhangLei - -@Tanya-W - -@tarepanda1024 - -@tianhui5 - -@Userwhite - -@wangbo - -@wangyf0555 - -@weizuo93 - -@whutpencil - -@wsjz - -@wunan1210 - -@xiaokang - -@xinyiZzz - -@xlwh - -@xy720 - -@yangzhg - -@Yankee24 - -@yiguolei - -@yinzhijian - -@yixiutt - -@zbtzbtzbt - -@zenoyang - -@zhangstar333 - -@zhangyifan27 - -@zhannngchen - -@zhengshengjun - -@zhengshiJ - -@zingdle - -@zuochunwei - -@zy-kkk -``` \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.1.md deleted file mode 100644 index f8f3e5c361621..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.1.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -{ - "title": "Release 1.1.1", - "language": "zh-CN" -} ---- - -## 新增功能 - -### 向量化执行引擎支持 ODBC Sink。 - -在 1.1.0 版本的向量化执行引擎中 ODBC Sink 是不支持的,而这一功能在之前版本的行存引擎是支持的,因此在 1.1.1 版本中我们重新完善了这一功能。 - -### 增加简易版 MemTracker - -MemTracker 是一个用于分析内存使用情况的统计工具,在 1.1.0 版本的向量化执行引擎中,由于 BE 侧没有 MemTracker,可能出现因内存失控导致的 OOM 问题。在 1.1.1 版本中,BE 侧增加了一个简易版 MemTracker,可以帮助控制内存,并在内存超出时取消查询。 - -完整版 MemTracker 将在 1.1.2 版本中正式发布。 - - -## 改进 - -### 支持在 Page Cache 中缓存解压后数据。 - -在 Page Cache 中有些数据是用 bitshuffle 编码方式压缩的,在查询过程中需要花费大量的时间来解压。在 1.1.1 版本中,Doris 将缓存解压由 bitshuffle 编码的数据以加速查询,我们发现在 ssb-flat 的一些查询中,可以减少 30% 的延时。 - -## Bug 修复 - -### 修复无法从 1.0 版本进行滚动升级的问题。 - -这个问题是在 1.1.0 版本中出现的,当升级 BE 而不升级 FE 时,可能会导致 BE Core。 - -如果你遇到这个问题,你可以尝试用 [#10833](https://github.com/apache/doris/pull/10833) 来修复它。 - -### 修复某些查询不能回退到非向量化引擎的问题,并导致 BE Core。 - -目前,向量化执行引擎不能处理所有的 SQL 查询,一些查询(如 left outer join)将使用非向量化引擎来运行。但部分场景在 1.1.0 版本中未被覆盖到,这可能导致 BE 挂掉。 - -### 修复 Compaction 不能正常工作导致的 -235 错误。 - -在 Unique Key 模型中,当一个 Rowset 有多个 Segment 时,在做 Compaction 过程中由于没有正确的统计行数,会导致Compaction 失败并且产生 Tablet 版本过多而导致的 -235 错误。 - -### 修复查询过程中出现的部分 Segment fault。 - -[#10961](https://github.com/apache/doris/pull/10961) -[#10954](https://github.com/apache/doris/pull/10954) -[#10962](https://github.com/apache/doris/pull/10962) - -# 致谢 - -感谢所有参与贡献 1.1.1 版本的开发者: - -``` -@jacktengg -@mrhhsg -@xinyiZzz -@yixiutt -@starocean999 -@morrySnow -@morningman -@HappenLee -``` \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.2.md deleted file mode 100644 index 92ab76f2d0883..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.2.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -{ - "title": "Release 1.1.2", - "language": "zh-CN" -} ---- - -在 Apache Doris 1.1.2 版本中,我们引入了新的 Memtracker、极大程度上避免 OOM 类问题的发生,提升了向量化执行引擎在多数查询场景的性能表现,修复了诸多导致 BE 和 FE 发生异常的问题,优化了在湖仓联邦查询场景的部分体验问题并提升访问外部数据的性能。 - -相较于 1.1.1 版本,在 1.1.2 版本中有超过 170 个 Issue 和性能优化项被合入,系统稳定性和性能都得到进一步加强。与此同时,1.1.2 版本还将作为 Apache Doris 首个 LTS (Long-term Support)长周期支持版本,后续长期维护和支持,推荐所有用户下载和升级。 - -# 新增功能 - -### MemTracker - -MemTracker 是一个用于分析内存使用情况的统计工具,在 1.1.1 版本中我们引入了简易版 Memtracker 用以控制 BE 侧内存。在 1.1.2 版本中,我们引入了新的 MemTracker,在向量化执行引擎和非向量化执行引擎中都更为准确。 - -### 增加展示和取消正在执行 Query 的 API - -`GET /rest/v2/manager/query/current_queries` - -`GET /rest/v2/manager/query/kill/{query_id}` - -具体使用参考文档 [Query Profile Action](https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/manager/query-profile-action?_highlight=current&_highlight=query#request) - -### 支持读写 Emoji 表情通过 ODBC 外表 - - -# 优化改进 - -### 数据湖相关改进 - -- 扫描 HDFS ORC 文件时性能提升约 300%。[#11501](https://github.com/apache/doris/pull/11501) - -- 查询 Iceberg 表支持 HDFS 的 HA 模式。 - -- 支持查询由 [Apache Tez](https://tez.apache.org/) 创建的 Hive 数据 - -- 添加阿里云 OSS 作为 Hive 外部支持 - -### 在 Spark Load 中增加对 String 字符串类型和 Text 文本类型的支持 - - -### 在非向量化引擎支持复用 Block,在某些场景中有 50%性能提升。[#11392](https://github.com/apache/doris/pull/11392) - -### 提升 Like 和正则表达式的性能 - -### 禁用 TCMalloc 的 aggressive_memory_decommit。 - -在查询或导入时将会有 40% 性能提升,也可以在配置文件中通过 `tc_enable_aggressive_memory_decommit`来修改 - -# Bug Fix - -### 修复部分可能导致 FE 失败或者数据损坏的问题 - -- 在 HA 环境中,BDBJE 将保留尽可能多的文件,通过增加配置 `bdbje_reserved_disk_bytes `以避免产生太多的 BDBJE 文件,BDBJE 日志只有在接近磁盘限制时才会删除。 - -- 修复了 BDBJE 中的重要错误,该错误将导致 FE 副本无法正确启动或数据损坏。 - -### 修复 FE 在查询过程中会在 waitFor_rpc 上 Hang 住以及 BE 在高并发情况下会 Hang 住的问题。 - -[#12459](https://github.com/apache/doris/pull/12459) [#12458](https://github.com/apache/doris/pull/12458) [#12392](https://github.com/apache/doris/pull/12392) - -### 修复向量化执行引擎查询时得到错误结果的问题。 - -[#11754](https://github.com/apache/doris/pull/11754) [#11694](https://github.com/apache/doris/pull/11694) - -### 修复许多 Planner 导致 BE Core 或者处于不正常状态的问题。 - -[#12080](https://github.com/apache/doris/pull/12080) [#12075](https://github.com/apache/doris/pull/12075) [#12040](https://github.com/apache/doris/pull/12040) [#12003](https://github.com/apache/doris/pull/12003) [#12007](https://github.com/apache/doris/pull/12007) [#11971](https://github.com/apache/doris/pull/11971) [#11933](https://github.com/apache/doris/pull/11933) [#11861](https://github.com/apache/doris/pull/11861) [#11859](https://github.com/apache/doris/pull/11859) [#11855](https://github.com/apache/doris/pull/11855) [#11837](https://github.com/apache/doris/pull/11837) [#11834](https://github.com/apache/doris/pull/11834) [#11821](https://github.com/apache/doris/pull/11821) [#11782](https://github.com/apache/doris/pull/11782) [#11723](https://github.com/apache/doris/pull/11723) [#11569](https://github.com/apache/doris/pull/11569) - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.3.md deleted file mode 100644 index cf83c5d3d3cb5..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.3.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -{ - "title": "Release 1.1.3", - "language": "zh-CN" -} ---- - -作为 1.1.2 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.3 版本中,有超过 80 个 Issue 或性能优化项被合入,优化了在导入或查询过程中的内存控制,修复了许多导致 BE Core 以及产生错误查询结果的问题,系统稳定性和性能得以进一步加强,推荐所有用户下载和使用。 - -# 新增功能 - -- 在 ODBC 表中支持 SQLServer 和 PostgreSQL 的转义标识符。 - -- 支持使用 Parquet 作为导出文件格式。 - -# 优化改进 - -- 优化了 Flush 策略以及避免过多 Segment 小文件。 [#12706](https://github.com/apache/doris/pull/12706) [#12716](https://github.com/apache/doris/pull/12716) - -- 重构 Runtime Filter 以减少初始准备时间。 [#13127](https://github.com/apache/doris/pull/13127) - -- 修复了若干个在查询或导入过程中的内存控制问题。 [#12682](https://github.com/apache/doris/pull/12682) [#12688](https://github.com/apache/doris/pull/12688) [#12708](https://github.com/apache/doris/pull/12708) [#12776](https://github.com/apache/doris/pull/12776) [#12782](https://github.com/apache/doris/pull/12782) [#12791](https://github.com/apache/doris/pull/12791) [#12794](https://github.com/apache/doris/pull/12794) [#12820](https://github.com/apache/doris/pull/12820) [#12932](https://github.com/apache/doris/pull/12932) [#12954](https://github.com/apache/doris/pull/12954) [#12951](https://github.com/apache/doris/pull/12951) - -# Bug 修复 - -- 修复了 largeint 类型在 Compaction 过程中导致 Core 的问题。 [#10094](https://github.com/apache/doris/pull/10094) - -- 修复了 Grouping set 导致 BE Core 或者返回错误结果的问题。 [#12313](https://github.com/apache/doris/pull/12313) - -- 修复了使用 orthogonal_bitmap_union_count 函数时执行计划 PREAGGREGATION 显示错误的问题。 [#12581](https://github.com/apache/doris/pull/12581) - -- 修复了 Level1Iterator 未被释放导致的内存泄漏问题。 [#12592](https://github.com/apache/doris/pull/12592) - -- 修复了当 2 BE 且存在 Colocation 表时通过 Decommission 下线节点失败的问题。 [#12644](https://github.com/apache/doris/pull/12644) - -- 修复了 TBrokerOpenReaderResponse 过大时导致堆栈缓冲区溢出而导致的 BE Core 问题。 [#12658](https://github.com/apache/doris/pull/12658) - -- 修复了出现 -238错误时 BE 节点可能 OOM 的问题。 [#12666](https://github.com/apache/doris/pull/12666) - -- 修复了 LEAD() 函数错误子表达式的问题。 [#12587](https://github.com/apache/doris/pull/12587) - -- 修复了行存代码中相关查询失败的问题。 [#12712](https://github.com/apache/doris/pull/12712) - -- 修复了 curdate()/current_date() 函数产生错误结果的问题。 [#12720](https://github.com/apache/doris/pull/12720) - -- 修复了 lateral View explode_split 函数出现错误结果的问题。 [#13643](https://github.com/apache/doris/pull/13643) - -- 修复了两张相同表中 Bucket Shuffle Join 计划错误的问题。 [#12930](https://github.com/apache/doris/pull/12930) - -- 修复了更新或导入过程中 Tablet 版本可能错误的问题。 [#13070](https://github.com/apache/doris/pull/13070) - -- 修复了在加密函数下使用 Broker 导入数据时 BE 可能发生 Core 的问题。 [#13009](https://github.com/apache/doris/pull/13009) - -# 升级说明 - -默认情况下禁用 PageCache 和 ChunkAllocator 以减少内存使用,用户可以通过修改配置项 `disable_storage_page_cache` 和 `chunk_reserved_bytes_limit` 来重新启用。 - -Storage Page Cache 和 Chunk Allocator 分别缓存用户数据块和内存预分配。 - -这两个功能会占用一定比例的内存,并且不会释放。 这部分内存占用无法灵活调配,导致在某些场景下,因这部分内存占用而导致其他任务内存不足,影响系统稳定性和可用性。因此我们在 1.1.3 版本中默认关闭了这两个功能。 - -但在某些延迟敏感的报表场景下,关闭该功能可能会导致查询延迟增加。如用户担心升级后该功能对业务造成影响,可以通过在 be.conf 中增加以下参数以保持和之前版本行为一致。 - -``` -disable_storage_page_cache=false -chunk_reserved_bytes_limit=10% -``` - -* `disable_storage_page_cache`:是否关闭 Storage Page Cache。 1.1.2(含)之前的版本,默认是false,即打开。1.1.3 版本默认为 true,即关闭。 -* `chunk_reserved_bytes_limit`:Chunk allocator 预留内存大小。1.1.2(含)之前的版本,默认是整体内存的 10%。1.1.3 版本默认为 209715200(200MB)。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.4.md deleted file mode 100644 index 06975f6136223..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.4.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -{ - "title": "Release 1.1.4", - "language": "zh-CN" -} ---- - -作为 1.1 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.4 版本中,Doris 团队修复了自 1.1.3 版本以来的约 60 个 Issue 或性能优化项。改进了 Spark Load 的使用体验,优化了诸多内存以及 BE 异常宕机的问题,系统稳定性和性能得以进一步加强,推荐所有用户下载和使用。 - -# 新增功能 - -- Broker Load 支持 华为云 OBS 对象存储。[#13523](https://github.com/apache/doris/pull/13523) - -- Spark Load 支持 Parquet 和 Orc 文件。[#13438](https://github.com/apache/doris/pull/13438) - - -# 优化改进 - -- 禁用 Metric Hook 中的互斥量,其将影响数据导入过程中的查询性能。 [#10941](https://github.com/apache/doris/pull/10941) - - -# Bug 修复 - -- 修复了当 Spark Load 加载文件时 Where 条件不生效的问题。 [#13804](https://github.com/apache/doris/pull/13804) - -- 修复了 If 函数存在 Nullable 列时开启向量化返回错误结果的问题。 [#13779](https://github.com/apache/doris/pull/13779) - -- 修复了在使用 Anti Join 和其他 Join 谓词时产生错误结果的问题。 [#13743](https://github.com/apache/doris/pull/13743) - -- 修复了当调用函数 concat(ifnull)时 BE 宕机的问题。 [#13693](https://github.com/apache/doris/pull/13693) - -- 修复了 group by 语句中存在函数时 planner 错误的问题。 [#13613](https://github.com/apache/doris/pull/13613) - -- 修复了 lateral view 语句不能正确识别表名和列名的问题。 [#13600](https://github.com/apache/doris/pull/13600) - -- 修复了使用物化视图和表别名时出现未知列的问题。 [#13605](https://github.com/apache/doris/pull/13605) - -- 修复了 JSONReader 无法释放值和解析 allocator 内存的问题。 [#13513](https://github.com/apache/doris/pull/13513) - -- 修复了当 enable_vectorized_alter_table 为 true 时允许使用 to_bitmap() 对负值列创建物化视图的问题。 [#13448](https://github.com/apache/doris/pull/13448) - -- 修复了函数 from_date_format_str 中微秒数丢失的问题。 [#13446](https://github.com/apache/doris/pull/13446) - -- 修复了排序 exprs 的 nullability 属性在使用子 smap 信息进行替换后可能不正确的问题。 [#13328](https://github.com/apache/doris/pull/13328) - -- 修复了 case when 有 1000 个条件时出现 Core 的问题。 [#13315](https://github.com/apache/doris/pull/13315) - -- 修复了 Stream Load 导入数据时最后一行数据丢失的问题。 [#13066](https://github.com/apache/doris/pull/13066) - -- 恢复表或分区的副本数与备份前相同。 [#11942](https://github.com/apache/doris/pull/11942) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.5.md deleted file mode 100644 index b7448a38c7bab..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.1/release-1.1.5.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -{ - "title": "Release 1.1.5", - "language": "zh-CN" -} ---- - -在 1.1.5 版本中,Doris 团队已经修复了自 1.1.4 版本发布以来约 36 个问题或性能改进项。同时,1.1.5 版本也是作为 1.1 LTS 版本的错误修复版本,建议所有用户升级到这个版本。 - - -# Behavior Changes - - -当别名与原始列名相同时,例如 "select year(birthday) as birthday",在 group by、order by、having 子句中使用别名时将与 MySQL 中保持一致,Group by 和 having 将首先使用原始列,order by 将首先使用别名。这里可能会对用户带来疑惑,因此建议最好不要使用与原始列名相同的别名。 - -# Features - -支持 Hash 函数 murmur_hash3_64。[#14636](https://github.com/apache/doris/pull/14636) - -# Improvements - -为日期函数 convert_tz 添加时区缓存以提高性能。[#14616](https://github.com/apache/doris/pull/14616) - -当调用 show 子句时,按 tablename 对结果进行排序。 [#14492](https://github.com/apache/doris/pull/14492) - -# Bug Fix - -修复 if 语句中带有常量时导致 BE 可能 Coredump 的问题。[#14858](https://github.com/apache/doris/pull/14858) - -修复 ColumnVector::insert_date_column 可能崩溃的问题 [#14839](https://github.com/apache/doris/pull/14839) - -更新 high_priority_flush_thread_num_per_store 默认值为 6,将提高负载性能。 [#14775](https://github.com/apache/doris/pull/14775) - -优化 quick compaction core。 [#14731](https://github.com/apache/doris/pull/14731) - -修复分区列非 duplicate key 时 Spark Load 抛出 IndexOutOfBounds 错误的问题。 - [#14661](https://github.com/apache/doris/pull/14661) - -修正 VCollectorIterator 中的内存泄漏问题。 [#14549](https://github.com/apache/doris/pull/14549) - -修复了存在 Sequence 列时可能存在的建表问题。 [#14511](https://github.com/apache/doris/pull/14511) - -使用 avg rowset 来计算批量大小,而不是使用 total_bytes,因为它要花费大量的 Cpu。 [#14273](https://github.com/apache/doris/pull/14273) - -修复了 right outer join 可能导致 core 的问题。[#14821](https://github.com/apache/doris/pull/14821) - -优化了 TCMalloc gc 的策略。 [#14777](https://github.com/apache/doris/pull/14777) [#14738](https://github.com/apache/doris/pull/14738) [#14374](https://github.com/apache/doris/pull/14374) - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.0.md deleted file mode 100644 index 5fc9aa3366cfd..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.0.md +++ /dev/null @@ -1,602 +0,0 @@ ---- -{ - "title": "Release 1.2.0", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,再一次经历数月的等候后,我们很高兴地宣布,Apache Doris 于 2022 年 12 月 7 日迎来 1.2.0 Release 版本的正式发布!有近 118 位 Contributor 为 Apache Doris 提交了超 2400 项优化和修复,感谢每一位让 Apache Doris 更好的你! - -自从社区正式确立 LTS 版本管理机制后,在 1.1.x 系列版本中不再合入大的功能,仅提供问题修复和稳定性改进,力求满足更多社区用户在稳定性方面的高要求。而在综合考虑版本迭代节奏和用户需求后,我们决定将众多新特性在 1.2 版本中发布,这无疑承载了众多社区用户和开发者的深切期盼,同时这也是一场厚积而薄发后的全面进化! - -在 1.2 版本中,我们实现了全面的向量化、**实现多场景查询性能 3-11 倍的提升**,在 Unique Key 模型上实现了 Merge-on-Write 的数据更新模式、**数据高频更新时查询性能提升达 3-6 倍**,增加了 Multi-Catalog 多源数据目录、**提供了无缝接入 Hive、ES、Hudi、Iceberg 等外部数据源的能力**,引入了 Light Schema Change 轻量表结构变更、**实现毫秒级的 Schema Change 操作并可以借助 Flink CDC 自动同步上游数据库的 DML 和 DDL 操作**,以 JDBC 外部表替换了过去的 ODBC 外部表,支持了 Java UDF 和 Romote UDF 以及 Array 数组类型和 JSONB 类型,修复了诸多之前版本的性能和稳定性问题,推荐大家下载和使用! - -# 下载安装 -GitHub下载:[https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - -官网下载页:[https://doris.apache.org/download](https://doris.apache.org/download) - -源码地址:[https://github.com/apache/doris/releases/tag/1.2.0-rc04](https://github.com/apache/doris/releases/tag/1.2.0-rc04) - -### 下载说明: - -由于 Apache 服务器文件大小限制,官网下载页的 1.2.0 版本的二进制程序分为三个包: - -1. apache-doris-fe - -2. apache-doris-be - -3. apache-doris-java-udf-jar-with-dependencies - -其中新增的 `apache-doris-java-udf-jar-with-dependencies` 包用于支持 1.2.0 版本中的 JDBC 外表和 JAVA UDF 。下载后,需要将其中的 `java-udf-jar-with-dependencies.jar` 文件放到 `be/lib` 目录下,方可启动 BE,否则无法启动成功。 - -### 部署说明: - -从历史版本升级到 1.2.0 版本,需完整更新 fe、be 下的 bin 和 lib 目录。 - -其他升级注意事项,请完整阅读本发版通告最后一节“升级注意事项”以及安装部署文档 [https://doris.apache.org/zh-CN/docs/dev/install/install-deploy](https://doris.apache.org/zh-CN/docs/dev/install/install-deploy) 和集群升级文档 [https://doris.apache.org/zh-CN/docs/dev/admin-manual/cluster-management/upgrade](https://doris.apache.org/zh-CN/docs/dev/admin-manual/cluster-management/upgrade) - -# 重要更新 - -### 1. 全面向量化支持,性能大幅提升 - -在 Apache Doris 1.2.0 版本中,系统所有模块都实现了向量化,包括数据导入、Schema Change、Compaction、数据导出、UDF 等。新版向量化执行引擎具备了完整替换原有非向量化引擎的能力,后续我们也将考虑在未来版本中去除原有非向量化引擎的代码。 - -与此同时,在全面向量化的基础上,我们对数据扫描、谓词计算、Aggregation 算子、HashJoin 算子、算子之间 Shuffle 效率等进行了全链路的优化,使得查询性能有了大幅提升。 - -我们对 Apache Doris 1.2.0 新版本进行了多个标准测试集的测试,同时选择了 1.1.3 版本和 0.15.0 版本作为对比参照项。经测,1.2.0 **在 SSB-Flat 宽表场景上相对 1.1.3 版本整体性能提升了近 4 倍、相对于 0.15.0 版本性能提升了近 10 倍,在 TPC-H 多表关联场景上较 1.1.3 版本上有近 3 倍的提升、较 0.15.0 版本性能至少提升了 11 倍。** - -![ssb_flat](/images/ssb_flat.png) - -![tpch](/images/tpch.png) - -同时,我们将 1.2.0 版本的测试数据提交到了全球知名的数据库测试排行榜 ClickBench,在最新的排行榜中,Apache Doris 1.2.0 新版本取得了通用机型(c6a.4xlarge, 500gb gp2)下**查询性能 Cold Run 第二和 Hot Run 第三的醒目成绩,共有 8 个 SQL 刷新榜单最佳成绩、成为新的性能标杆**。导入性能方面,1.2.0 新版本数据写入效率在同机型所有产品中位列第一,压缩前 70G 数据写入仅耗时 415s、单节点写入速度超过 170 MB/s,在实现极致查询性能的同时也保证了高效的写入效率! - -![coldrun](/images/coldrun.png) - -![hotrun](/images/hotrun.png) - -### 2. 在 Unique Key 模型上实现了 Merge-on-Write 的数据更新模式 - -在过去版本中, Apache Doris 主要是通过 Unique Key 数据模型来实现数据实时更新的。但由于采用的是 Merge-on-Read 的实现方式,查询存在着效率瓶颈,有大量非必要的 CPU 计算资源消耗和 IO 开销,且可能将出现查询性能抖动等问题。 - -在 1.2.0 版本中,我们在原有的 Unique Key 数据模型上,增加了 Merge-on-Write 的数据更新模式。该模式在数据写入时即对需要删除或更新的数据进行标记,始终保证有效的主键只出现在一个文件中(即在写入的时候保证了主键的唯一性),不需要在读取的时候通过归并排序来对主键进行去重,这对于高频写入的场景来说,大大减少了查询执行时的额外消耗。此外还能够支持谓词下推,并能够很好利用 Doris 丰富的索引,在数据 IO 层面就能够进行充分的数据裁剪,大大减少数据的读取量和计算量,因此在很多场景的查询中都有非常明显的性能提升。 - -在比较有代表性的 SSB-Flat 数据集上,通过模拟多个持续导入场景,**新版本的大部分查询取得了 3-6 倍的性能提升**。 - -![mergeonwrite_ssb](/images/mergeonwrite_ssb.png) - -使用场景:所有对主键唯一性有需求,需要频繁进行实时 Upsert 更新的用户建议打开。 - -使用说明:作为新的 Feature 默认关闭,用户可以通过在建表时添加下面的 Property 来开启: - -``` -“enable_unique_key_merge_on_write” = “true” -``` - -另外新版本 Merge-on-Write 数据更新模式与旧版本 Merge-on-Read 实现方式存在差异,因此已经创建的 Unique Key 表无法直接通过 Alter Table 添加 Property 来支持,只能在新建表的时候指定。如果用户需要将旧表转换到新表,可以使用 `insert into new_table select * from old_table` 的方式来实现。 - -### 3. Multi Catalog 多源数据目录 - -Multi-Catalog 多源数据目录功能的目标在于能够帮助用户更方便对接外部数据目录,以增强 Apache Doris 的数据湖分析和联邦数据查询能力。 - -在过去版本中,当我们需要对接外部数据源时,只能在 Database 或 Table 层级对接。当外部数据目录 Schema 发生变化、或者外部数据目录的 Database 或 Table 非常多时,需要用户手工进行一一映射,维护量非常大。1.2.0 版本新增的多源数据目录功能为 Apache Doris 提供了快速接入外部数据源进行访问的能力,用户可以通过 `CREATE CATALOG` 命令连接到外部数据源,Doris 会自动映射外部数据源的库、表信息。之后,用户就可以像访问普通表一样,对这些外部数据源中的数据进行访问,避免了之前用户需要对每张表手动建立外表映射的复杂操作。 - -目前能支持以下数据源: - -1. Hive Metastore:可以访问包括 Hive、Iceberg、Hudi 在内的数据表,也可对接兼容 Hive Metastore 的数据源,如阿里云的 DataLake Formation,同时支持 HDFS 和对象存储上的数据访问。 - -2. Elasticsearch:访问 ES 数据源。 - -3. JDBC:支持通过 JDBC 访问 MySQL 数据源。 - -注:相应的权限层级也会自动变更,详见“升级注意事项”部分 - -文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog) - -### 4. 轻量表结构变更 Light Schema Change - -在过去版本中,Schema Change 是一项相对消耗比较大的工作,需要对数据文件进行修改,在集群规模和表数据量较大时执行效率会明显降低。同时由于是异步作业,当上游 Schema 发生变更时,需要停止数据同步任务并手动执行 Schema Change,增加开发和运维成本的同时还可能造成消费数据的积压。 - -在 1.2.0 新版本中,对数据表的加减列操作,不再需要同步更改数据文件,仅需在 FE 中更新元数据即可,从而实现毫秒级的 Schema Change 操作,且存在导入任务时效率的提升更为显著。与此同时,使得 Apache Doris 在面对上游数据表维度变化时,可以更加快速稳定实现表结构同步,保证系统的高效且平稳运转。如用户可以通过 Flink CDC,可实现上游数据库到 Doris 的 DML 和 DDL 同步,进一步提升了实时数仓数据处理和分析链路的时效性与便捷性。 - -![lightschemachange_compare.png](/images/lightschemachange_compare.png) - -使用说明:作为新的 Feature 默认关闭,用户可以通过在建表时添加下面的 Property 来开启: - -``` -"light_schema_change" = "true" -``` - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -### 5. JDBC 外部表 - -在过去版本中,Apache Doris 提供了 ODBC 外部表的方式来访问 MySQL、Oracle、SQL Server、PostgreSQL 等数据源,但由于 ODBC 驱动版本问题可能造成系统的不稳定。相对于 ODBC,JDBC 接口更为统一且支持数据库众多,因此在 1.2.0 版本中我们实现了 JDBC 外部表以替换原有的 ODBC 外部表。在新版本中,用户可以通过 JDBC 连接支持 JDBC 协议的外部数据源, - -当前已适配的数据源包括: - -- MySQL -- PostgreSQL -- Oracle -- SQLServer -- ClickHouse - -更多数据源的适配已经在规划之中,原则上任何支持 JDBC 协议访问的数据库均能通过 JDBC 外部表的方式来访问。而之前的 ODBC 外部表功能将会在后续的某个版本中移除,还请尽量切换到 JDBC 外表功能。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc) - -### 6. JAVA UDF - -在过去版本中,Apache Doris 提供了 C++ 语言的原生 UDF,便于用户通过自己编写自定义函数来满足特定场景的分析需求。但由于原生 UDF 与 Doris 代码耦合度高、当 UDF 出现错误时可能会影响集群稳定性,且只支持 C++ 语言,对于熟悉 Hive、Spark 等大数据技术栈的用户而言存在较高门槛,因此在 1.2.0 新版本我们增加了 Java 语言的自定义函数,支持通过 Java 编写 UDF/UDAF,方便用户在 Java 生态中使用。同时,通过堆外内存、Zero Copy 等技术,使得跨语言的数据访问效率大幅提升。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/ecosystem/udf/java-user-defined-function](https://doris.apache.org/zh-CN/docs/dev/ecosystem/udf/java-user-defined-function) - -示例:[https://github.com/apache/doris/tree/master/samples/doris-demo](https://github.com/apache/doris/tree/master/samples/doris-demo) - -### 7. Remote UDF - -远程 UDF 支持通过 RPC 的方式访问远程用户自定义函数服务,从而彻底消除用户编写 UDF 的语言限制,用户可以使用任意编程语言实现自定义函数,完成复杂的数据分析工作。 - -文档:[https://doris.apache.org/zh-CN/docs/ecosystem/udf/remote-user-defined-function](https://doris.apache.org/zh-CN/docs/ecosystem/udf/remote-user-defined-function) - -示例:[https://github.com/apache/doris/tree/master/samples/doris-demo](https://github.com/apache/doris/tree/master/samples/doris-demo) - -### 8. Array/JSONB 复合数据类型 - -- Array 类型 - -支持了数组类型,同时也支持多级嵌套的数组类型。在一些用户画像,标签等场景,可以利用 Array 类型更好的适配业务场景。同时在新版本中,我们也实现了大量数组相关的函数,以更好的支持该数据类型在实际场景中的应用。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/ARRAY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/ARRAY) - -相关函数:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/array-functions/array](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/array-functions/array) - -- JSONB 类型 - -支持二进制的 JSON 数据类型 JSONB。该类型提供更紧凑的 JSONB 编码格式,同时提供在编码格式上的数据访问,相比于使用字符串存储的 JSON 数据,有数倍的性能提升。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/JSONB](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/JSONB) - -相关函数:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/json-functions/jsonb_parse](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/json-functions/jsonb_parse) - -### 9. DateV2/DatatimeV2 新版日期/日期时间数据类型 - -支持 DateV2 日期类型和 DatetimeV2 日期时间类型,相较于原有的 Date 和 Datetime 效率更高且支持最多到微秒的时间精度,建议使用新版日期类型。 - -文档:[https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATETIMEV2](https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATETIMEV2) - - [https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATEV2](https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATEV2) - -影响范围: - 1. 用户需要在建表时指定 DateV2 和 DatetimeV2,原有表的 Date 以及 Datetime 不受影响。 - 2. Datev2 和 Datetimev2 在与原来的 Date 和 Datetime 做计算时(例如等值连接),原有类型会被cast 成新类型做计算 - 3. Example 参考文档中说明 - -### 10. 全新内存管理框架 - -在 Apache Doris 1.2.0 版本中我们增加了全新的内存跟踪器(Memory Tracker),用以记录 Doris BE 进程内存使用,包括查询、导入、Compaction、Schema Change 等任务生命周期中使用的内存以及各项缓存。通过 Memory Tracker 实现了更加精细的内存监控和控制,大大减少了因内存超限导致的 OOM 问题,使系统稳定性进一步得到提升。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/memory-management/memory-tracker](https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/memory-management/memory-tracker) - -### 11. Table Valued Function 表函数 - -增加了 Table Valued Function(TVF,表函数),TVF 可以视作一张普通的表,可以出现在 SQL 中所有“表”可以出现的位置,让用户像访问关系表格式数据一样,读取或访问来自 HDFS 或 S3 上的文件内容, - -例如使用 S3 TVF 实现对象存储上的数据导入: -``` -insert into tbl select * from s3("s3://bucket/file.*", "ak" = "xx", "sk" = "xxx") where c1 > 2; -``` - -或者直接查询 HDFS 上的数据文件: -``` -insert into tbl select * from hdfs("hdfs://bucket/file.*") where c1 > 2; -``` -TVF 可以帮助用户充分利用 SQL 丰富的表达能力,灵活处理各类数据。 - -文档: -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/s3](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/s3) - -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/hdfs](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/hdfs) - -# 更多功能 - -### 1. 更便捷的分区创建方式 - -支持通过 `FROM TO` 命令创建一个时间范围内的多个分区。 - -文档搜索“MULTI RANGE”: -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -示例: -``` -// 根据时间date 创建分区,支持多个批量逻辑和单独创建分区的混合使用 - -PARTITION BY RANGE(event_day)( - FROM ("2000-11-14") TO ("2021-11-14") INTERVAL 1 YEAR, - FROM ("2021-11-14") TO ("2022-11-14") INTERVAL 1 MONTH, - FROM ("2022-11-14") TO ("2023-01-03") INTERVAL 1 WEEK, - FROM ("2023-01-03") TO ("2023-01-14") INTERVAL 1 DAY, - PARTITION p_20230114 VALUES [('2023-01-14'), ('2023-01-15')) -) -``` -``` -// 根据时间datetime 创建分区 -PARTITION BY RANGE(event_time)( - FROM ("2023-01-03 12") TO ("2023-01-14 22") INTERVAL 1 HOUR -) -``` - -### 2. 列重命名 - -对于开启了 Light Schema Change 的表,支持对列进行重命名。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-RENAME ](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-RENAME ) - -### 3. 更丰富权限管理 - -- 支持行级权限 - -可以通过 `CREATE ROW POLICY` 命令创建行级权限。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-POLICY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-POLICY) - -- 支持指定密码强度、过期时间等。 - -- 支持在多次失败登录后锁定账户。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Account-Management-Statements/ALTER-USER](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Account-Management-Statements/ALTER-USER) - -### 4. 导入相关 - -- CSV 导入支持带 header 的 CSV 文件。 - -在文档中搜索 `csv_with_names`:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD/](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD/) - -- Stream Load 新增 `hidden_columns`,可以显式指定 delete flag 列和 sequence 列。 - -在文档中搜索 `hidden_columns`:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD) - -- Spark Load 支持 Parquet 和 ORC 文件导入。 -- 支持清理已完成的导入的 Label - 文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CLEAN-LABEL](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CLEAN-LABEL) - -- 支持通过状态批量取消导入作业 -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CANCEL-LOAD](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CANCEL-LOAD) - -- Broker Load 新增支持阿里云 OSS,腾讯 CHDFS 和华为云 OBS。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/advanced/broker](https://doris.apache.org/zh-CN/docs/dev/advanced/broker) - -- 支持通过 hive-site.xml 文件配置访问 HDFS。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/config/config-dir](https://doris.apache.org/zh-CN/docs/dev/admin-manual/config/config-dir) - -### 5. 支持通过 `SHOW CATALOG RECYCLE BIN` 功能查看回收站中的内容。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Show-Statements/SHOW-CATALOG-RECYCLE-BIN](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Show-Statements/SHOW-CATALOG-RECYCLE-BIN) - -### 6. 支持 `SELECT * EXCEPT` 语法。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/data-table/basic-usage](https://doris.apache.org/zh-CN/docs/dev/data-table/basic-usage) - -### 7. OUTFILE 支持 ORC 格式导出,并且支持多字节分隔符。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE) - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE) - -### 8. 支持通过配置修改可保存的 Query Profile 的数量。 - -文档搜索 FE 配置项:`max_query_profile_num` - -### 9. DELETE 语句支持 IN 谓词条件。并且支持分区裁剪。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/DELETE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/DELETE) - -### 10. 时间列的默认值支持使用 `CURRENT_TIMESTAMP` - -文档中搜索 "CURRENT_TIMESTAMP":[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -### 11. 添加两张系统表:backends、rowsets - -backends 是 Doris 中内置系统表,存放在 information_schema 数据库下,通过该系统表可以查看当前 Doris 集群中的 BE 节点信息。 - -rowsets 是 Doris 中内置系统表,存放在 information_schema 数据库下,通过该系统表可以查看 Doris 集群中各个 BE 节点当前 rowsets 情况。 - -文档: - -[https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/backends](https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/backends) - -[https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/rowsets](https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/rowsets) - -### 12. 备份恢复 - - - Restore作业支持 `reserve_replica` 参数,使得恢复后的表的副本数和备份时一致。 - - Restore 作业支持 `reserve_dynamic_partition_enable` 参数,使得恢复后的表保持动态分区开启状态。 - - 文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/RESTORE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/RESTORE) - - - 支持通过内置的 libhdfs 进行备份恢复操作,不再依赖 broker。 - - 文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/CREATE-REPOSITORY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/CREATE-REPOSITORY) - -### 13. 支持同机多磁盘之间的数据均衡 - -文档: - -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-REBALANCE-DISK](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-REBALANCE-DISK) - -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-CANCEL-REBALANCE-DISK](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-CANCEL-REBALANCE-DISK) - -### 14. Routine Load 支持订阅 Kerberos 认证的 Kafka 服务。 - -文档中搜索 kerberos:[https://doris.apache.org/zh-CN/docs/dev/data-operate/import/import-way/routine-load-manual](https://doris.apache.org/zh-CN/docs/dev/data-operate/import/import-way/routine-load-manual) - -### 15. New built-in-function 新增内置函数 - - 新增以下内置函数: - - - cbrt - - sequence_match/sequence_count - - mask/mask_first_n/mask_last_n - - elt - - any/any_value - - group_bitmap_xor - - ntile - - nvl - - uuid - - initcap - - regexp_replace_one/regexp_extract_all - - multi_search_all_positions/multi_match_any - - domain/domain_without_www/protocol - - running_difference - - bitmap_hash64 - - murmur_hash3_64 - - to_monday - - not_null_or_empty - - window_funnel - - outer combine - 以及所有 Array 函数 - -# 升级注意事项 - -### FE 元数据版本变更 【重要】 - -FE Meta Version 由 107 变更为 114,因此从 1.1.x 以及更早版本升级至 1.2.0 版本后,不可回滚到之前版本。 -升级过程中,建议通过灰度升级的方式,先升级部分节点并观察业务运行情况,以降低升级风险,若执行非法的回滚操作将可能导致数据丢失与损坏。 - -### 行为改变 - -- 权限层级变更。 - - 因为引入了 Catalog 层级,所以相应的用户权限层级也会自动变更。规则如下: - - - GlobalPrivs 和 ResourcePrivs 保持不变 - - 新增 CatalogPrivs 层级。 - - 原 DatabasePrivs 层级增加 internal 前缀(表示 internal catalog 中的 db) - - 原 TablePrivs 层级增加 internal 前缀(表示internal catalog中的 tbl) -- GroupBy 和 Having 子句中,优先使用列名而不是别名进行匹配。 -- 不再支持创建以 "mv_" 开头的列。"mv_" 是物化视图中的保留关键词 -- 移除了 order by 语句默认添加的 65535 行的 Limit 限制,并增加 Session 变量 `default_order_by_limit` 可以自定配置这个限制。 -- "Create Table As Select" 生成的表,所有字符串列统一使用 String类型,不再区分 varchar/char/string -- audit log 中,移除 db 和 user 名称前的 `default_cluster` 字样。 -- audit log 中增加 sql digest 字段 -- union 子句总 order by 逻辑变动。新版本中,order by 子句将在 union 执行完成后执行,除非通过括号进行显式的关联。 -- 进行 decommission 操作时,会忽略回收站中的 tablet,确保 decomission 能够完成。 -- Decimal 的返回结果将按照原始列中声明的精度进行显示 ,或者按照显式指定的 cast 函数中的精度进行展示。 -- 列名的长度限制由 64 变更为 256 -- FE 配置项变动 - - 默认开启 `enable_vectorized_load` 参数。 - - 增大了 `create_table_timeout` 值。建表操作的默认超时时间将增大。 - - 修改 `stream_load_default_timeout_second` 默认值为 3天。 - - 修改`alter_table_timeout_second` 的默认值为 一个月。 - - 增加参数 `max_replica_count_when_schema_change` 用于限制 alter 作业中涉及的 replica数量,默认为100000。 - - 添加 `disable_iceberg_hudi_table`。默认禁用了 iceberg 和 hudi 外表,推荐使用 multi catalog功能。 -- BE 配置项变动 - - 移除了 `disable_stream_load_2pc` 参数。2PC的stream load可直接使用。 - - 修改`tablet_rowset_stale_sweep_time_sec` ,从1800秒修改为 300 秒。 -- Session变量变动 - - 修改变量 `enable_insert_strict` 默认为 true。这会导致一些之前可以执行,但是插入了非法值的insert操作,不再能够执行。 - - 修改变量 `enable_local_exchange` 默认为 true - - 默认通过 lz4 压缩进行数据传输,通过变量 `fragment_transmission_compression_codec` 控制 - - 增加 `skip_storage_engine_merge` 变量,用于调试 unique 或 agg 模型的数据 - 文档:https://doris.apache.org/zh-CN/docs/dev/advanced/variables -- BE 启动脚本会通过 `/proc/sys/vm/max_map_count` 检查数值是否大于200W,否则启动失败。 -- 移除了 mini load 接口 - -### 升级过程中需注意 - -1. 升级准备 - - 需替换:lib, bin 目录(start/stop 脚本均有修改) - - BE 也需要配置 JAVA_HOME,已支持 JDBC Table 和 Java UDF。 - - fe.conf 中默认 JVM Xmx 参数修改为 8GB。 - -2. 升级过程中可能的错误 - - repeat 函数不可使用并报错:`vectorized repeat function cannot be executed`,可以在升级前先关闭向量化执行引擎。 - - schema change 失败并报错:`desc_tbl is not set. Maybe the FE version is not equal to the BE` - - 向量化 hash join 不可使用并报错。`vectorized hash join cannot be executed`。可以在升级前先关闭向量化执行引擎。 - -以上错误在完全升级后会恢复正常。 - -### 性能影响 - -- 默认使用 JeMalloc 作为新版本 BE 的内存分配器,替换 TcMalloc 。 - -JeMalloc 相比 TcMalloc 使用的内存更少、高并发场景性能更高,但在内存充足的性能测试时,TcMalloc 比 JeMalloc 性能高5%-10%,详细测试见: https://github.com/apache/doris/pull/12496 - -- tablet sink 中的 batch size 修改为至少 8K。 -- 默认关闭 Page Cache 和 减少 Chunk Allocator 预留内存大小 - -Page Cache 和 Chunk Allocator 分别缓存用户数据块和内存预分配,这两个功能会占用一定比例的内存并且不会释放。由于这部分内存占用无法灵活调配,导致在某些场景下可能因这部分内存占用而导致其他任务内存不足,影响系统稳定性和可用性,因此新版本中默认关闭了这两个功能。 - -但在某些延迟敏感的报表场景下,关闭该功能可能会导致查询延迟增加。如用户担心升级后该功能对业务造成影响,可以通过在 be.conf 中增加以下参数以保持和之前版本行为一致。 -``` -disable_storage_page_cache=false -chunk_reserved_bytes_limit=10% -``` - -### API 变化 - -- BE 的 http api 错误返回信息,由 `{"status": "Fail", "msg": "xxx"}` 变更为更具体的 ``{"status": "Not found", "msg": "Tablet not found. tablet_id=1202"}`` - -- `SHOW CREATE TABLE` 中, comment的内容由双引号包裹变为单引号包裹 - -- 支持普通用户通过 http 命令获取 query profile。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/manager/query-profile-action](https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/manager/query-profile-action) - -- 优化了 sequence 列的指定方式,可以直接指定列名。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/data-operate/update-delete/sequence-column-manual](https://doris.apache.org/zh-CN/docs/dev/data-operate/update-delete/sequence-column-manual) - -- `show backends` 和 `show tablets` 返回结果中,增加远端存储的空间使用情况 (#11450) -- 移除了 Num-Based Compaction 相关代码(#13409) -- 重构了BE的错误码机制,部分返回的错误信息会发生变化(#8855) - -# 其他 - -- 支持Docker 官方镜像。 -- 支持在 MacOS(x86/M1) 和 ubuntu-22.04 上编译 Doris -- 支持进行image 文件的校验。 - -文档搜索“--image”:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/metadata-operation](https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/metadata-operation) -- 脚本相关 - - FE、BE 的 stop 脚本支持通过 `--grace` 参数退出FE、BE(使用 kill -15 信号代替 kill -9) - - FE start 脚本支持通过 --version 查看当前FE 版本(#11563) -- 支持通过 `ADMIN COPY TABLET` 命令获取某个 tablet 的数据和相关建表语句,用于本地问题调试 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET) - -- 支持通过 http api,获取一个SQL语句相关的 建表语句,用于本地问题复现 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/query-schema-action](https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/query-schema-action) - -- 支持建表时关闭这个表的 compaction 功能,用于测试 - -文档中搜索 "disble_auto_compaction":[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -# 致谢 - -Apache Doris 1.2.0 版本的发布离不开所有社区用户的支持,在此向所有参与版本设计、开发、测试、讨论的社区贡献者们表示感谢,他们分别是(首字母排序): - -``` -@924060929 -@a19920714liou -@adonis0147 -@Aiden-Dong -@aiwenmo -@AshinGau -@b19mud -@BePPPower -@BiteTheDDDDt -@bridgeDream -@ByteYue -@caiconghui -@CalvinKirs -@cambyzju -@caoliang-web -@carlvinhust2012 -@catpineapple -@ccoffline -@chenlinzhong -@chovy-3012 -@coderjiang -@cxzl25 -@dataalive -@dataroaring -@dependabot -@dinggege1024 -@DongLiang-0 -@Doris-Extras -@eldenmoon -@EmmyMiao87 -@englefly -@FreeOnePlus -@Gabriel39 -@gaodayue -@geniusjoe -@gj-zhang -@gnehil -@GoGoWen -@HappenLee -@hello-stephen -@Henry2SS -@hf200012 -@huyuanfeng2018 -@jacktengg -@jackwener -@jeffreys-cat -@Jibing-Li -@JNSimba -@Kikyou1997 -@Lchangliang -@LemonLiTree -@lexoning -@liaoxin01 -@lide-reed -@link3280 -@liutang123 -@liuyaolin -@LOVEGISER -@lsy3993 -@luozenglin -@luzhijing -@madongz -@morningman -@morningman-cmy -@morrySnow -@mrhhsg -@Myasuka -@myfjdthink -@nextdreamblue -@pan3793 -@pangzhili -@pengxiangyu -@platoneko -@qidaye -@qzsee -@SaintBacchus -@SeekingYang -@smallhibiscus -@sohardforaname -@song7788q -@spaces-X -@ssusieee -@stalary -@starocean999 -@SWJTU-ZhangLei -@TaoZex -@timelxy -@Wahno -@wangbo -@wangshuo128 -@wangyf0555 -@weizhengte -@weizuo93 -@wsjz -@wunan1210 -@xhmz -@xiaokang -@xiaokangguo -@xinyiZzz -@xy720 -@yangzhg -@Yankee24 -@yeyudefeng -@yiguolei -@yinzhijian -@yixiutt -@yuanyuan8983 -@zbtzbtzbt -@zenoyang -@zhangboya1 -@zhangstar333 -@zhannngchen -@ZHbamboo -@zhengshiJ -@zhenhb -@zhqu1148980644 -@zuochunwei -@zy-kkk -``` diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.1.md deleted file mode 100644 index 8ccd2f0ab9491..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.1.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -{ - "title": "Release 1.2.1", - "language": "zh-CN" -} ---- - -在 1.2.1 版本中,Doris 团队已经修复了自 1.2.0 版本发布以来约 200 个问题或性能改进项。同时,1.2.1 版本也作为 1.2 的第一个迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - - -# 优化改进 - -### 支持高精度小数 DecimalV3 - -支持精度更高和性能更好的 DecimalV3,相较于过去版本具有以下优势: - -- 可表示范围更大,取值范围都进行了明显扩充,有效数字范围 [1,38]。 - -- 性能更高,根据不同精度,占用存储空间可自适应调整。 - -- 支持更完备的精度推演,对于不同的表达式,应用不同的精度推演规则对结果的精度进行推演。 - -[DecimalV3](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/DECIMALV3) - -### 支持 Iceberg V2 - -支持 Iceberg V2 (仅支持 Position Delete, Equality Delete 会在后续版本支持),可以通过 Multi-Catalog 功能访问 Iceberg V2 格式的表。 - - -### 支持 OR 条件转 IN - -支持将 where 条件表达式后的 or 条件转换成 in 条件,在部分场景中可以提升执行效率。 [#15437](https://github.com/apache/doris/pull/15437) [#12872](https://github.com/apache/doris/pull/12872) - - -### 优化 JSONB 类型的导入和查询性能 - -优化 JSONB 类型的导入和查询性能,在测试数据上约有 70% 的性能提升。 [#15219](https://github.com/apache/doris/pull/15219) [#15219](https://github.com/apache/doris/pull/15219) - -### Stream load 支持带引号的 CSV 数据 - -通过导入任务参数 `trim_double_quotes` 来控制,默认值为 false,为 true 时表示裁剪掉 CSV 文件每个字段最外层的双引号。 [#15241](https://github.com/apache/doris/pull/15241) - -### Broker 支持腾讯云 CHDFS 和 百度云 BOS 、AFS - -可以通过 Broker 访问存储在腾讯云 CHDFS 和 百度智能云 BOS、AFS 上的数据。 [#15297](https://github.com/apache/doris/pull/15297) [#15448](https://github.com/apache/doris/pull/15448) - -### 新增函数 - -新增函数 `substring_index`。 [#15373](https://github.com/apache/doris/pull/15373) - - - -# 问题修复 - -- 修复部分情况下,从 1.1.x 版本升级到 1.2.0 版本后,用户权限信息丢失的问题。 [#15144](https://github.com/apache/doris/pull/15144) - -- 修复使用 date/datetimev2 类型进行分区时,分区值错误的问题。 [#15094](https://github.com/apache/doris/pull/15094) - -- 修复部分已发布功能的 Bug,具体列表可参阅:[PR List](https://github.com/apache/doris/pulls?q=is%3Apr+label%3Adev%2F1.2.1-merged+is%3Aclosed) - - -# 升级注意事项 - -### 已知问题 - -- 请勿使用 JDK11 作为 BE 的运行时 JDK,会导致 BE Crash。 - -- 该版本对csv格式的读取性能有下降,会影响csv格式的导入和读取效率,我们会在下一个三位版本尽快修复 - -### 行为改变 - -- BE 配置项 `high_priority_flush_thread_num_per_store` 默认值由 1 改成 6 ,以提升 Routine Load 的写入效率。[#14775](https://github.com/apache/doris/pull/14775) - -- FE 配置项 `enable_new_load_scan_node` 默认值改为 true ,将使用新的 File Scan Node 执行导入任务,对用户无影响。 [#14808](https://github.com/apache/doris/pull/14808) - -- 删除 FE 配置项 `enable_multi_catalog`,默认开启 Multi-Catalog 功能。 - -- 默认强制开启向量化执行引擎。会话变量 `enable_vectorized_engine` 将不再生效,如需重新生效,需将 FE 配置项 `disable_enable_vectorized_engine` 设为 false,并重启 FE。 [#15213](https://github.com/apache/doris/pull/15213) - -# 致谢 - -有 45 位贡献者参与到 1.2.1 版本的开发与完善中,感谢他们的付出,他们分别是: - -@adonis0147 - -@AshinGau - -@BePPPower - -@BiteTheDDDDt - -@ByteYue - -@caiconghui - -@cambyzju - -@chenlinzhong - -@dataroaring - -@Doris-Extras - -@dutyu - -@eldenmoon - -@englefly - -@freemandealer - -@Gabriel39 - -@HappenLee - -@Henry2SS - -@hf200012 - -@jacktengg - -@Jibing-Li - -@Kikyou1997 - -@liaoxin01 - -@luozenglin - -@morningman - -@morrySnow - -@mrhhsg - -@nextdreamblue - -@qidaye - -@spaces-X - -@starocean999 - -@wangshuo128 - -@weizuo93 - -@wsjz - -@xiaokang - -@xinyiZzz - -@xutaoustc - -@yangzhg - -@yiguolei - -@yixiutt - -@Yulei-Yang - -@yuxuan-luo - -@zenoyang - -@zhangstar333 - -@zhannngchen - -@zhengshengjun - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.2.md deleted file mode 100644 index b17ef0d71afbe..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.2.md +++ /dev/null @@ -1,241 +0,0 @@ ---- -{ - "title": "Release 1.2.2", - "language": "zh-CN" -} ---- - -在 1.2.2 版本中,Doris 团队已经修复了自 1.2.1 版本发布以来超过 200 个问题或性能改进项。同时,1.2.2 版本也作为 1.2.1 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - - -# New Feature - -### 数据湖分析 - -- **支持自动同步 Hive Metastore 元数据信息。** 默认情况下外部数据源的元数据变更,如创建或删除表、加减列等操作不会同步给 Doris,用户需要使用 `REFRESH CATALOG` 命令手动刷新元数据。在 1.2.2 版本中支持自动刷新 Hive Metastore 元数据信息,通过让 FE 节点定时读取 HMS 的 notification event 来感知 Hive 表元数据的变更情况。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/) - -- **支持读取 Iceberg Snapshot 以及查询 Snapshot 历史。** 在执行 Iceberg 数据写入时,每一次写操作都会产生一个新的快照。默认情况下通过 Apache Doris 读取 Iceberg 表仅会读取最新版本的快照。在 1.2.2 版本中可以使用 `FOR TIME AS OF` 和 `FOR VERSION AS OF` 语句,根据快照 ID 或者快照产生的时间读取历史版本的数据,也可以使用 iceberg_meta 表函数查询指定表的快照信息。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg) - -- JDBC Catalog 支持 PostgreSQL、Clickhouse、Oracle、SQLServer。 - -- **JDBC Catalog 支持 insert into 操作。** 在 Doris 中建立 JDBC Catalog 后,可以通过 insert into 语句直接写入数据,也可以将 Doris 执行完查询之后的结果写入 JDBC Catalog,或者是从一个 JDBC 外表将数据导入另一个 JDBC 外表。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/) - - -### 自动分桶推算 - -支持通过 `DISTRIBUTED BY HASH(……) BUCKETS AUTO` 语句设置自动分桶,系统帮助用户设定以及伸缩不同分区的分桶数,使分桶数保持在一个相对合适的范围内。 - -参考文档:[https://mp.weixin.qq.com/s/DSyZGJtjQZUYUsvfK0IcCg](https://mp.weixin.qq.com/s/DSyZGJtjQZUYUsvfK0IcCg) - - -### 新增函数 - -增加归类分析函数 `width_bucket` 。 - -参考文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/width-bucket/#description](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/width-bucket/#description) - - -# Behavior Changes - -### 默认情况下禁用 BE 的 Page Cache - -关闭此配置以优化内存使用并降低内存 OOM 的风险,但有可能增加一些小查询的查询延迟。如果您对查询延迟敏感,或者具有高并发小查询场景,可以配置 `disable_storage_page_cache=false` 以再次启用 Page Cache。 - -### 增加新 Session 变量 `group_by_and_having_use_alias_first` - -用于控制 group by 和 having 语句是否优先使用列的别名,而非从 From 语句里寻找列的名字,默认为false。 - -# Improvement - -### Compaction 优化 - -- **支持 Vetical Compaction**。在过去版本中,宽列场景 Compaction 往往会带来大量的内存开销。在 1.2.2 版本中,Vertical Compaction 采用了按列组的方式进行数据合并,单次合并只需要加载部分列的数据,能够极大减少合并过程中的内存占用。在实际测试中,Vertical compaction 使用内存仅为原有 compaction 算法的 1/10,同时 Compaction 速率提升15%。 - -- 支持 **Segment Compaction**。在过去版本中,当用户大数据量高频导入时可能会遇到 -238 以及 -235 问题,Segment Compaction 允许在导入数据的同时进行数据的合并,以有效控制 Segment 文件的数量,提升高频导入的系统稳定性。 - -参考文档:[https://doris.apache.org/docs/dev/advanced/best-practice/compaction](https://doris.apache.org/docs/dev/advanced/best-practice/compaction) - - -### 数据湖分析 - -- Hive Catalog 支持访问 Hive 1/2/3 版本。 - -- Hive Catalog 可以使用 Broker 访问数据存储在 JuiceFS 的 Hive。 - -- Iceberg Catalog 支持 Hive Metastore 和 Rest 作为元数据服务。 - -- ES Catalog 支持 元数据字段 _id 列映射。 - -参考文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/hive](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/hive) - -- 优化 Iceberg V2 表有大量删除行诗时的读取性能。 - -- 支持读取 Schema Evolution 后 Iceberg 表。 - -- Parquet Reader 正确处理列名大小写。 - - -### 其他 - -- 支持访问 Hadoop KMS 加密的 HDFS 。 - -- 支持取消正在执行的导出任务。 - -参考文档:[https://doris.apache.org/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/CANCEL-EXPORT](https://doris.apache.org/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/CANCEL-EXPORT) - -- 将`explode_split` 函数执行效率优化 1 倍。 - -- 将 nullable 列的读取性能优化 3 倍。 - -- 优化 Memtracker 的部分问题,提高内存管理精度,优化内存应用。 - - -# BugFix - -- 修复了使用 Doris-Flink-Connector 导入数据时的内存泄漏问题;[#16430](https://github.com/apache/doris/pull/16430) - -- 修复了 BE 可能的线程调度问题,并减少了 BE 线程耗尽导致的 Fragment_sent_timeout。 - -- 修复了 datetimev2/decivalv3 的部分正确性和精度问题。 - -- 修复了 Light Schema Change 功能的各种已知问题。 - -- 修复了 bitmap 类型 Runtime Filter 的各种数据正确性问题。 - -- 修复了 1.2.1 版本中引入的 CSV 读取性能差的问题。 - -- 修复了 Spark Load 数据下载阶段导致的 BE OOM 问题。 - -- 修复了从 1.1.x 版升级到 1.2.x 版时可能出现的元数据兼容性问题。 - -- 修复了创建 JDBC Catalog 时的元数据问题。 - -- 修复了由于导入操作导致的 CPU 使用率高的问题。 - -- 修复了大量失败 Broker Load 作业导致的 FE OOM 问题。 - -- 修复了加载浮点类型时精度丢失的问题。 - -- 修复了 Stream Load 使用两阶段提交时出现的内存泄漏问题。 - -# 其他 - -添加指标以查看 BE 上的 Rowset 和 Segment 总数字 `doris_be_all_rowsets_num` 和 `doris_be_all_segments_num` - -# 致谢 - -有 53 位贡献者参与到 1.2.2 版本的开发与完善中,感谢他们的付出,他们分别是: - -@adonis0147 - -@AshinGau - -@BePPPower - -@BiteTheDDDDt - -@ByteYue - -@caiconghui - -@cambyzju - -@chenlinzhong - -@DarvenDuan - -@dataroaring - -@Doris-Extras - -@dutyu - -@englefly - -@freemandealer - -@Gabriel39 - -@HappenLee - -@Henry2SS - -@htyoung - -@isHuangXin - -@JackDrogon - -@jacktengg - -@Jibing-Li - -@kaka11chen - -@Kikyou1997 - -@Lchangliang - -@LemonLiTree - -@liaoxin01 - -@liqing-coder - -@luozenglin - -@morningman - -@morrySnow - -@mrhhsg - -@nextdreamblue - -@qidaye - -@qzsee - -@spaces-X - -@stalary - - -@starocean999 - -@weizuo93 - -@wsjz - -@xiaokang - -@xinyiZzz - -@xy720 - -@yangzhg - -@yiguolei - -@yixiutt - -@Yukang-Lian - -@Yulei-Yang - -@zclllyybb - -@zddr - -@zhangstar333 - -@zhannngchen - -@zy-kkk - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.3.md deleted file mode 100644 index c487ee61ae6f1..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.3.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -{ - "title": "Release 1.2.3", - "language": "zh-CN" -} ---- - -在 1.2.3 版本中,Doris 团队已经修复了自 1.2.2 版本发布以来超过 200 个问题或性能改进项。同时,1.2.3 版本也作为 1.2.2 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - - -# Improvement - -### JDBC Catalog - -- 支持通过 JDBC Catalog 连接到另一个 Doris 数据库。 - -目前 JDBC Catalog 连接 Doris 只支持用 5.x 版本的 JDBC jar 包。如果使用 8.x JDBC jar 包可能会出现列类型无法匹配问题。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/#doris](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/#doris) - -- 支持通过参数 `only_specified_database` 来同步指定的数据库。 - -- 支持通过 `lower_case_table_names` 参数控制是否以小写形式同步表名,解决表名区分大小写的问题。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc) - -- 优化 JDBC Catalog 的读取性能。 - -### Elasticsearch Catalog - -- 支持 Array 类型映射。 - -- 支持通过 `like_push_down` 属性下推 like 表达式来控制 ES 集群的 CPU 开销。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/es](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/es) - -### Hive Catalog - -- 支持 Hive 表默认分区 `__Hive_default_partition__`。 - -- Hive Metastore 元数据自动同步支持压缩格式的通知事件。 - -### 动态分区优化 - -- 支持通过 storage_medium 参数来控制创建动态分区的默认存储介质。 - -参考文档:[https://doris.apache.org/docs/dev/advanced/partition/dynamic-partition](https://doris.apache.org/docs/dev/advanced/partition/dynamic-partition) - - -### 优化 BE 的线程模型 - -- 优化 BE 的线程模型,以避免频繁创建和销毁线程所带来的稳定性问题。 - -# Bug 修复 - -- 修复了部分 Unique Key 模型 Merge-on-Write 表的问题; - -- 修复了部分 Compaction 相关问题; - -- 修复了部分 Delete 语句导致的数据问题; - -- 修复了部分 Query 执行问题; - -- 修复了在某些操作系统上使用 JDBC Catalog 导致 BE 宕机的问题; - -- 修复了部分 Multi-Catalog 的问题; - -- 修复了部分内存统计和优化问题; - -- 修复了部分 DecimalV3 和 date/datetimev2 的相关问题。 - -- 修复了部分导入过程中的稳定性问题; - -- 修复了部分 Light Schema Change 的问题; - -- 修复了使用 `datetime` 类型创建批处理分区的问题; - -- 修复了 Broker Load 大数据量导入失败而导致的 FE 内存使用过高的问题; - -- 修复了删除表后无法取消 Stream Load 的问题; - -- 修复了某些情况下查询 `information_schema` 超时的问题; - -- 修复了使用 `select outfile` 并发数据导出导致 BE 宕机的问题; - -- 修复了事务性插入操作导致内存泄漏的问题; - -- 修复了部分查询和导入 Profile 的问题,并支持通过 FE web ui 直接下载 Profile 文件; - -- 修复了 BE Tablet GC 线程导致 IO 负载过高的问题; - -- 修复了 Kafka Routine Load 中提交 Offset 不准确的问题。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.4.md deleted file mode 100644 index 80a5b9924d0ad..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.4.md +++ /dev/null @@ -1,158 +0,0 @@ ---- -{ - "title": "Release 1.2.4", - "language": "zh-CN" -} ---- - -在 1.2.4 版本中,Doris 团队已经修复了自 1.2.3 版本发布以来近 150 个问题或性能改进项。同时,1.2.4 版本也作为 1.2.3 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - -# Behavior Changed - -- 针对 Date/DatetimeV2 和 DecimalV3 类型,在 `DESCRIBLE` 和 `SHOW CREATE TABLE` 语句的结果中,将不再显示为 Date/DatetimeV2 或 DecimalV3,而直接显示为 Date/Datetime 或 Decimal。 - - 这个改动用于兼容部分 BI 系统。如果想查看列的实际类型,可以通过 `DESCRIBE ALL` 语句查看。 - -- 查询 `information_schema` 库中的表时,默认不再返回 External Catalog 中的元信息。 - - 这个改动避免了因 External Catalog 的连接问题导致的 information_schema 库不可查的问题,从而解决部分 BI 系统与 Doris 配合使用的问题。可以通过 FE 的配置项 `infodb_support_ext_catalog `控制,默认为 false,即不返回 External Catalog 中的元信息。 - -# Improvement - -### JDBC Catalog - -- 支持通过 JDBC Catalog 连接其他 Trino/Presto 集群 - -​ 参考文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#trino](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#trino) - -- JDBC Catalog 连接 Clickhouse 数据源支持 Array 类型映射 - -​ 参考文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#clickhouse](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#clickhouse) - -### Spark Load - -- Spark Load 支持 Resource Manager HA 相关配置 - -​ 参考 PR: [https://github.com/apache/doris/pull/15000](https://github.com/apache/doris/pull/15000) - -# Bug Fixes - -- 修复 Hive Catalog 的若干连通性问题。 - -- 修复 Hudi Catalog 的若干问题。 - -- 优化 JDBC Catalog 的连接池,避免过多的连接。 - -- 修复通过 JDBC Catalog 从另一个 Doris 集群导入数据是会发生 OOM 的问题。 - -- 修复若干查询和导入的规划问题。 - -- 修复 Unique Key Merge-On-Write 表的若干问题。 - -- 修复若干 BDBJE 问题,解决某些情况下 FE 元数据异常的问题。 - -- 修复 `CREATE VIEW` 语句不支持 Table Valued Function 的问题。 - -- 修复若干内存统计的问题。 - -- 修复读取 Parquet/ORC 表的若干问题。 - -- 修复 DecimalV3 的若干问题。 - -- 修复 `SHOW QUERY/LOAD PROFILE` 的若干问题。 - -# 致谢 - -有 47 位贡献者参与到 1.2.4 的完善和发布中,感谢他们的辛劳付出: - -@zy-kkk - -@zhannngchen - -@zhangstar333 - -@yixiutt - -@yiguolei - -@xinyiZzz - -@xiaokang - -@wsjz - -@wangbo - -@starocean999 - -@sohardforaname - -@siriume - -@pingchunzhang - -@nextdreamblue - -@mymeiyi - -@mrhhsg - -@morrySnow - -@morningman - -@luwei16 - -@luozenglin - -@liujinhui1994 - -@liaoxin01 - -@kaka11chen - -@jeffreys-cat - -@jacktengg - -@gavinchou - -@dutyu - -@dataroaring - -@chenlinzhong - -@caoliang-web - -@cambyzju - -@adonis0147 - -@Yulei-Yang - -@Yukang-Lian - -@SWJTU-ZhangLei - -@Kikyou1997 - -@Jibing-Li - -@JackDrogon - -@HappenLee - -@GoGoWen - -@Gabriel39 - -@Doris-Extras - -@CalvinKirs - -@Cai-Yao - -@ByteYue - -@BiteTheDDDDt - -@BePPPower diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.5.md deleted file mode 100644 index eebebdeeb5922..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.5.md +++ /dev/null @@ -1,181 +0,0 @@ ---- -{ - "title": "Release 1.2.5", - "language": "zh-CN" -} ---- - -在 1.2.5 版本中,Doris 团队已经修复了自 1.2.4 版本发布以来近 210 个问题或性能改进项。同时,1.2.5 版本也作为 1.2.4 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - -# Behavior Changed - -- BE 启动脚本会检查系统的最大文件句柄数需大于等于 65536,否则启动失败。 - -- BE 配置项 `enable_quick_compaction` 默认设为 true。即默认开启 Quick Compaction 功能。该功能用于优化大批量导入情况下的小文件问题。 - -- 修改表的动态分区属性后,将不再立即生效,而是统一等待下一次动态分区表的任务调度,以避免一些死锁问题。 - -# Improvement - -- 优化 bthread 和 pthread 的使用,减少查询过程中的 RPC 阻塞问题。 - -- FE 前端页面的 Profile 页面增加下载 Profile 的按钮。 - -- 新增 FE 配置 `recover_with_skip_missing_version`,用于在某些故障情况下,查询跳过有问题的数据副本。 - -- 行级权限功能支持 Catalog 外表。 - -- Hive Catalog 支持 BE 端自动刷新 kerberos 票据,无需手动刷新。 - -- JDBC Catalog 支持通过 MySQL/ClickHouse 系统库(`information_schema`)下的表。 - -# Bug Fixes - -- 修复低基数列优化导致的查询结果不正确的问题 - -- 修复若干访问 HDFS 的认证和兼容性问题。 - -- 修复若干浮点和 decimal 类型的问题。 - -- 修复若干 date/datetimev2 类型的问题。 - -- 修复若干查询执行和规划的问题。 - -- 修复 JDBC Catalog 的若干问题。 - -- 修复 Hive Catalog 的若干查询相关问题,以及 Hive Metastore 元数据同步的问题。 - -- 修复 `show load profile` 结果不正确的问题。 - -- 修复若干内存相关问题。 - -- 修复 `CREATE TABLE AS SELECT` 功能的若干问题。 - -- 修复 JSONB 类型在不支持 avx2 的机型上导致 BE 宕机的问题。 - -- 修复动态分区的若干问题。 - -- 修复 TopN 查询优化的若干问题。 - -- 修复 Unique Key Merge-on-Write 表模型的若干问题。 - - -# 致谢 - -有 58 贡献者参与到 1.2.5 的完善和发布中,感谢他们的辛劳付出: - -@adonis0147 - -@airborne12 - -@AshinGau - -@BePPPower - -@BiteTheDDDDt - -@caiconghui - -@CalvinKirs - -@cambyzju - -@caoliang-web - -@dataroaring - -@Doris-Extras - -@dujl - -@dutyu - -@fsilent - -@Gabriel39 - -@gitccl - -@gnehil - -@GoGoWen - -@gongzexin - -@HappenLee - -@herry2038 - -@jacktengg - -@Jibing-Li - -@kaka11chen - -@Kikyou1997 - -@LemonLiTree - -@liaoxin01 - -@LiBinfeng-01 - -@luwei16 - -@Moonm3n - -@morningman - -@mrhhsg - -@Mryange - -@nextdreamblue - -@nsnhuang - -@qidaye - -@Shoothzj - -@sohardforaname - -@stalary - -@starocean999 - -@SWJTU-ZhangLei - -@wsjz - -@xiaokang - -@xinyiZzz - -@yangzhg - -@yiguolei - -@yixiutt - -@yujun777 - -@Yulei-Yang - -@yuxuan-luo - -@zclllyybb - -@zddr - -@zenoyang - -@zhangstar333 - -@zhannngchen - -@zxealous - -@zy-kkk - -@zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.6.md deleted file mode 100644 index f2a53bf1bac4d..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.6.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -{ - "title": "Release 1.2.6", - "language": "zh-CN" -} ---- - -# Behavior Changed - -- 新增 BE 配置项 `allow_invalid_decimalv2_triteral` 以控制是否可以导入超过小数精度的 Decimal 类型数据,用于兼容之前的逻辑。 - -# Bug Fixes - -## 查询 - -- 修复了部分查询计划的问题; -- 支持会话变量 `sql_select_limit` 和 `have_query_cache` 用于与老版本的 MySQL 客户端兼容; -- 优化 Cold Run 查询性能; -- 修复 Expr Context 类内存泄漏的问题; -- 修复 `explode_split` 函数在某些情况下执行错误的问题。 - -## Multi Catalog - -- 修复了同步 Hive 元数据时 FE 回放元数据日志失败的问题; -- 修复了 `refresh catalog` 操作可能导致 FE OOM 的问题; -- 修复了 JDBC Catalog 无法正确处理 `0000-00-00` 日期格式的问题; -- 修复了 kerberos ticket 无法自动刷新的问题; -- 优化了 Hive Partition 裁剪性能; -- 修复 JDBC Catalog 中 Trino 和 Presto 不一致的行为; -- 修复了在某些环境中无法使用 HDFS 短路读取来提高查询效率的问题; -- 修复无法读取 CHDFS Iceberg 表的问题。 - -## 存储 - -- 修复 Merge-on-Write 表中删除 bitmap 逻辑计算错误的问题; -- 修复了若干 BE 内存问题; -- 修复了表数据 Snappy 压缩的问题; -- 修复 jemalloc 在某些情况下可能导致 BE 崩溃的问题。 - -## 其他 - -- 修复了部分 Java UDF 相关问题; -- 修复了 `recover table` 操作错误地触发动态分区创建的问题; -- 修复了通过 Broker Load 导入 orc 文件时的时区问题; -- 修复新添加的 `PERCENT` 关键字导致 Routine Load 作业的回放元数据失败的问题; -- 修复了 `truncate` 操作无法作用于非分区表的问题; -- 修复了由于 `show snapshot` 操作导致 MySQL 连接丢失的问题; -- 优化锁逻辑以降低创建表时发生锁超时错误的概率; -- 优化了导入发生错误时的报错信息。 - -# 致谢 - -感谢以下开发者在 Apache Doris 1.2.6 版本中所做的贡献; - -@amorynan - -@BiteTheDDDDt - -@caoliang-web - -@dataroaring - -@Doris-Extras - -@dutyu - -@Gabriel39 - -@HHoflittlefish777 - -@htyoung - -@jacktengg - -@jeffreys-cat - -@kaijchen - -@kaka11chen - -@Kikyou1997 - -@KnightLiJunLong - -@liaoxin01 - -@LiBinfeng-01 - -@morningman - -@mrhhsg - -@sohardforaname - -@starocean999 - -@vinlee19 - -@wangbo - -@wsjz - -@xiaokang - -@xinyiZzz - -@yiguolei - -@yujun777 - -@Yulei-Yang - -@zhangstar333 - -@zy-kkk diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.7.md deleted file mode 100644 index 9f56808d4ea12..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.7.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -{ - "title": "Release 1.2.7", - "language": "zh-CN" -} ---- - -# Bugfix - -- 修复了一些查询问题。 -- 修复了一些存储问题。 -- 修复一些小数精度问题。 -- 修复由无效的 sql_select_limit 会话变量值引起的查询错误。 -- 修复了无法使用 hdfs 短路读取的问题。 -- 修复了腾讯云 cosn 无法访问的问题。 -- 修复了一些 Hive Catalog kerberos 访问的问题。 -- 修复 Stream load Profile 无法使用的问题。 -- 修复 Promethus 监控参数格式问题。 -- 修复了创建大量 Tablet 时建表超时的问题。 - - -# 最新特性 - -- Unique Key 模型支持将数组类型作为 Key 列; --添加了 have_query_cache 变量以保证与 MySQL 生态系统兼容。 --添加 enable_strong _consistency_read 以支持会话之间的强一致性读取。 --FE 指标支持用户级的查询计数器。 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.8.md deleted file mode 100644 index 9e2482c6afc82..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v1.2/release-1.2.8.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -{ - "title": "Release 1.2.8", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 1.2.8](https://doris.apache.org/download/) 版本已于 2024 年 3 月 09 日正式与大家见面。该版本对多个功能进行了更新优化,旨在更好地满足用户的需求, 欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 改进和优化 -- 修复若干查询执行的问题 -- 修复若干 Spark Load 相关的问题 -- 修复若干 Parquet/ORC 文件读取的问题。 -- 修复 Broker 进行因为 "FileSystem closed" 错误导致运行失败的问题。 -- 修复若干 Broker Load 相关的问题。 -- 修复若干 CTAS 操作相关的问题。 -- 修复若干备份恢复功能相关的问题。 -- 修复若干导出(Export/Outfile)相关的问题。 -- 修复 `replayEraseTable` 方法导致 FE 无法启动的问题。 -- 优化 Iceberg Catalog 元数据缓存的性能。 -- Audit Log 中新增 Catalog 列。 - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.0.md deleted file mode 100644 index 375dcb9292a5f..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.0.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -{ - "title": "Release 2.0.0", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 Release 版本已于 2023 年 8 月 11 日正式发布,有超过 275 位贡献者为 Apache Doris 提交了超过 4100 个优化与修复。 - -在 2.0.0 版本中,Apache Doris 在标准 Benchmark 数据集上盲测查询性能得到超过 10 倍的提升、在日志分析和湖仓一体场景能力得到全面加强、数据更新效率和写入效率都更加高效稳定、支持了更加完善的多租户和资源隔离机制、在资源弹性与存算分离方向踏上了新的台阶、增加了一系列面向企业用户的易用性特性。在经过近半年的开发、测试与稳定性调优后,这一版本已经正式稳定可用,欢迎大家下载使用! - -> 下载链接:[https://doris.apache.org/download](https://doris.apache.org/download) -> -> GitHub 源码:[https://github.com/apache/doris/tree/2.0.0-rc04](https://github.com/apache/doris/tree/2.0.0-rc04) - - -## 盲测性能 10 倍以上提升! - -在 Apache Doris 2.0.0 版本中,我们引入了全新查询优化器和自适应的并行执行模型,结合存储层、执行层以及执行算子上的一系列性能优化手段,实现了盲测性能 10 倍以上的提升。以 SSB-Flat 和 TPC-H 标准测试数据集为例,在相同的集群和机器配置下,新版本宽表场景盲测较之前版本性能提升 10 倍、多表关联场景盲测提升了 13 倍,实现了巨大的性能飞跃。 - -### 更智能的全新查询优化器 - -全新查询优化器采取了更先进的 Cascades 框架、使用了更丰富的统计信息、实现了更智能化的自适应调优,在绝大多数场景无需任何调优和 SQL 改写即可实现极致的查询性能,同时对复杂 SQL 支持得更加完备、可完整支持 TPC-DS 全部 99 个 SQL。通过全新查询优化器,我们可以胜任更多真实业务场景的挑战,减少因人工调优带来的人力消耗,真正助力业务提效。 - -以 TPC-H 为例,全新优化器在未进行任何手工调优和 SQL 改写的情况下,绝大多数 SQL 仍领先于旧优化器手工调优后的性能表现!而在超过百家 2.0 版本提前体验用户的真实业务场景中,绝大多数原始 SQL 执行效率得以极大提升! - -参考文档:[更智能的全新查询优化器](../../query/nereids/nereids-new) - -如何开启:`SET enable_nereids_planner=true` 在 Apache Doris 2.0-beta 版本中全新查询优化器已经默认开启 - -### 倒排索引支持 - -在 2.0.0 版本中我们对现有的索引结构进行了丰富,引入了倒排索引来应对多维度快速检索的需求,在关键字模糊查询、等值查询和范围查询等场景中均取得了显著的查询性能和并发能力提升。 - -在此以某头部手机厂商的用户行为分析场景为例,在之前的版本中,随着并发量的上升、查询耗时逐步提升,性能下降趋势比较明显。而在 2.0.0 版本开启倒排索引后,随着并发量的提升查询性能始终保持在毫秒级。在同等查询并发量的情况下,2.0.0 版本在该用户行为分析场景中并发查询性能提升了 5-90 倍! - - -### 点查询并发能力提升 20 倍 - -在银行交易流水单号查询、保险代理人保单查询、电商历史订单查询、快递运单号查询等 Data Serving 场景,会面临大量一线业务人员及 C 端用户基于主键 ID 检索整行数据的需求,同时在用户画像、实时风控等场景中还会面对机器大规模的程序化查询,在过去此类需求往往需要引入 Apache HBase 等 KV 系统来应对点查询、Redis 作为缓存层来分担高并发带来的系统压力。 -对于基于列式存储引擎构建的 Apache Doris 而言,此类的点查询在数百列宽表上将会放大随机读取 IO,并且查询优化器和执行引擎对于此类简单 SQL 的解析、分发也将带来不必要的额外开销,负责 SQL 解析的 FE 模块往往会成为限制并发的瓶颈,因此需要更高效简洁的执行方式。 - -在 Apache Doris 2.0.0 版本,我们引入了全新的行列混合存储以及行级 Cache,使得单次读取整行数据时效率更高、大大减少磁盘访问次数,同时引入了点查询短路径优化、跳过执行引擎并直接使用快速高效的读路径来检索所需的数据,并引入了预处理语句复用执行 SQL 解析来减少 FE 开销。 - -通过以上一系列优化,Apache Doris 2.0.0 版本在并发能力上实现了数量级的提升,实现了单节点 30000 QPS 的并发表现,较过去版本点查询并发能力提升超 20 倍! - -基于以上能力,Apache Doris 可以更好应对高并发数据服务场景的需求,替代 HBase 在此类场景中的能力,减少复杂技术栈带来的维护成本以及数据的冗余存储。 - -### 自适应的并行执行模型 - -在实现极速分析体验的同时,为了保证多个混合分析负载的执行效率以及查询的稳定性,在 2.0.0 版本中我们引入了 Pipeline 执行模型作为查询执行引擎。在 Pipeline 执行引擎中,查询的执行是由数据来驱动控制流变化的,各个查询执行过程之中的阻塞算子被拆分成不同 Pipeline,各个 Pipeline 能否获取执行线程调度执行取决于前置数据是否就绪,实现了阻塞操作的异步化、可以更加灵活地管理系统资源,同时减少了线程频繁创建和销毁带来的开销,并提升了 Apache Doris 对于 CPU 的利用效率。因此 Apache Doris 在混合负载场景中的查询性能和稳定性都得到了全面提升。 - -参考文档:[查询执行引擎](../../query/pipeline-execution-engine) - -如何开启:` Set enable_pipeline_engine = true ` -- 该功能在 Apache Doris 2.0 版本中将默认开启,BE 在进行查询执行时默认将 SQL 的执行模型转变 Pipeline 的执行方式。 -- `parallel_pipeline_task_num`代表了 SQL 查询进行查询并发的 Pipeline Task 数目。Apache Doris 默认配置为`0`,此时 Apache Doris 会自动感知每个 BE 的 CPU 核数并把并发度设置为 CPU 核数的一半,用户也可以根据自己的实际情况进行调整。 -- 对于从老版本升级的用户,系统自动将该参数设置成老版本中`parallel_fragment_exec_instance_num`的值。 - -## 更统一多样的分析场景 - -作为最初诞生于报表分析场景的 OLAP 系统,Apache Doris 在这一擅长领域中做到了极致,凭借自身优异的分析性能和极简的使用体验收获到了众多用户的认可,在诸如实时看板(Dashboard)、实时大屏、业务报表、管理驾驶舱等实时报表场景以及自助 BI 平台、用户行为分析等即席查询场景获得了极为广泛的运用。 - -而随着用户规模的极速扩张,越来越多用户开始希望通过 Apache Doris 来简化现有的繁重大数据技术栈,减少多套系统带来的使用及运维成本。因此 Apache Doris 也在不断拓展应用场景的边界,从过去的实时报表和 Ad-hoc 等典型 OLAP 场景到湖仓一体、ELT/ETL、日志检索与分析、高并发 Data Serving 等更多业务场景,而日志检索分析、湖仓一体也是我们在 Apache Doris 最新版本中的重要突破。 - -### 10 倍以上性价比的日志检索分析平台 - -在 Apache Doris 2.0.0 版本中,我们提供了原生的半结构化数据支持,在已有的 JSON、Array 基础之上增加了复杂类型 Map,并基于 Light Schema Change 功能实现了 Schema Evolution。与此同时,2.0.0 版本新引入的倒排索引和高性能文本分析算法全面加强了 Apache Doris 在日志检索分析场景的能力,可以支持更高效的任意维度分析和全文检索。结合过去在大规模数据写入和低成本存储等方面的优势,相对于业内常见的日志分析解决方案,基于 Apache Doris 构建的新一代日志检索分析平台实现了 10 倍以上的性价比提升。 - -### 湖仓一体 - -在 Apache Doris 1.2 版本中,我们引入了 Multi-Catalog 功能,支持了多种异构数据源的元数据自动映射与同步,实现了便捷的元数据和数据打通。在 2.0.0 版本中,我们进一步对湖仓一体进行了加强,引入了更多数据源,并针对用户的实际生产环境做了诸多性能优化,在真实工作负载情况下查询性能得到大幅提升。 - -在数据源方面,Apache Doris 2.0.0 版本支持了 Hudi Copy-on-Write 表的 Snapshot Query 以及 Merge-on-Read 表的 Read Optimized Query,截止目前已经支持了 Hive、Hudi、Iceberg、Paimon、MaxCompute、Elasticsearch、Trino、ClickHouse 等数十种数据源,几乎支持了所有开放湖仓格式和 Metastore。同时还支持通过 Apache Range 对 Hive Catalog 进行鉴权,可以无缝对接用户现有的权限系统。同时还支持可扩展的鉴权插件,为任意 Catalog 实现自定义的鉴权方式。 - -在性能方面,利用 Apache Doris 自身高效的分布式执行框架、向量化执行引擎以及查询优化器,结合 2.0 版本中对于小文件和宽表的读取优化、本地文件 Cache、ORC/Parquet 文件读取效率优化、弹性计算节点以及外表的统计信息收集,Apaceh Doris 在 TPC-H 场景下查询 Hive 外部表相较于 Presto/Trino 性能提升 3-5 倍。 - -通过这一系列优化,Apache Doris 湖仓一体的能力得到极大拓展,在如下场景可以更好发挥其优异的分析能力: - -- 湖仓查询加速:为数据湖、Elasticsearch 以及各类关系型数据库提供优秀的查询加速能力,相比 Hive、Presto、Spark 等查询引擎实现数倍的性能提升。 - -- 数据导入与集成:基于可扩展的连接框架,增强 Apache Doris 在数据集成方面的能力,让数据更便捷的被消费和处理。用户可以通过 Apache Doris 对上游的多种数据源进行统一的增量、全量同步,并利用 Apache Doris 的数据处理能力对数据进行加工和展示,也可以将加工后的数据写回到数据源,或提供给下游系统进行消费。 - -- 统一数据分析网关:利用 Apache Doris 构建完善可扩展的数据源连接框架,支持用户将这些外部数据源统一到 Doris 的元数据映射结构上,当用户通过 Doris 查询这些外部数据源时,能够提供一致的查询体验。 - -## 高效的数据更新 - -在实时分析场景中,数据更新是非常普遍的需求。用户不仅希望能够实时查询最新数据,也希望能够对数据进行灵活的实时更新。典型场景如电商订单分析、物流运单分析、用户画像等,需要支持数据更新类型包括整行更新、部分列更新、按条件进行批量更新或删除以及整表或者整个分区的重写(inser overwrite)。 - -高效的数据更新一直是大数据分析领域的痛点,离线数据仓库 hive 通常只支持分区级别的数据更新,而 Hudi 和 Iceberg 等数据湖,虽然支持 Record 级别更新,但是通常采用 Merge-on-Read 或 Copy-on-Write 的方式,仅适合低频批量更新而不适合实时高频更新。 - -在 Apache Doris 1.2 版本,我们在 Unique Key 主键模型实现了 Merge-on-Write 的数据更新模式,数据在写入阶段就能完成所有的数据合并工作,因此查询性能得到 5-10 倍的提升。在 Apache Doris 2.0 版本我们进一步加强了数据更新能力,主要包括: - -- 对写入性能进行了大幅优化,高并发写入和混合负载写入场景的稳定性也显著提升。例如在单 Tablet 7GB 的重复导入测试中,数据导入的耗时从约 30 分钟缩短到了 90s,写入效率提升 20 倍;以某头部支付产品的场景压测为例,在 20 个并行写入任务下可以达到 30 万条每秒的写入吞吐,并且持续写入十几个小时后仍然表现非常稳定。 - -- 支持部分列更新功能。在 2.0.0 版本之前 Apache Doris 仅支持通过 Aggregate Key 聚合模型的 Replace_if_not_null 进行部分列更新,在 2.0.0 版本中我们增加了 Unique Key 主键模型的部分列更新,在多张上游源表同时写入一张宽表时,无需由 Flink 进行多流 Join 打宽,直接写入宽表即可,减少了计算资源的消耗并大幅降低了数据处理链路的复杂性。同时在面对画像场景的实时标签列更新、订单场景的状态更新时,直接更新指定的列即可,较过去更为便捷。 - -- 支持复杂条件更新和条件删除。在 2.0.0 版本之前 Unique Key 主键模型仅支持简单 Update 和 Delete 操作,在 2.0.0 版本中我们基于 Merge-on-Write 实现了复杂条件的数据更新和删除,并且执行效率更加高效。基于以上优化,Apache Doris 对于各类数据更新需求都有完备的能力支持! - -## 更加高效稳定的数据写入 - -### 导入性能进一步提升 - -聚焦于实时分析,我们在过去的几个版本中在不断增强实时分析能力,其中端到端的数据实时写入能力是优化的重要方向,在 Apache Doris 2.0 版本中,我们进一步强化了这一能力。通过 Memtable 不使用 Skiplist、并行下刷、单副本导入等优化,使得导入性能有了大幅提升: - -- 使用 Stream Load 对 TPC-H 144G lineitem 表原始数据进行三副本导入 48 buckets Duplicate 表,吞吐量提升 100%。 -- 使用 Stream Load 对 TPC-H 144G lineitem 表原始数据进行三副本导入 48 buckets Unique Key 表,吞吐量提升 200%。 -- 使用 insert into select 对 TPC-H 144G lineitem 表进行导入 48 buckets Duplicate 表,吞吐量提升 50%。 -- 使用 insert into select 对 TPC-H 144G lineitem 表进行导入 48 buckets Unique Key 表,吞吐提升 150%。 - - -### 数据高频写入更稳定 - -在高频数据写入过程中,小文件合并和写放大问题以及随之而来的磁盘 I/O 和 CPU 资源开销是制约系统稳定性的关键,因此在 2.0 版本中我们引入了 Vertical Compaction 以及 Segment Compaction,用以彻底解决 Compaction 内存问题以及写入过程中的 Segment 文件过多问题,资源消耗降低 90%,速度提升 50%,内存占用仅为原先的 10%。 - - -### 数据表结构自动同步 - -在过去版本中我们引入了毫秒级别的 Schema Change,而在最新版本 Flink-Doris-Connector 中,我们实现了从 MySQL 等关系型数据库到 Apache Doris 的一键整库同步。在实际测试中单个同步任务可以承载数千张表的实时并行写入,从此彻底告别过去繁琐复杂的同步流程,通过简单命令即可实现上游业务数据库的表结构及数据同步。同时当上游数据结构发生变更时,也可以自动捕获 Schema 变更并将 DDL 动态同步到 Doris 中,保证业务的无缝运行。 - -## 更加完善的多租户资源隔离 - -多租户与资源隔离的主要目的是为了保证高负载时避免相互发生资源抢占,Apache Doris 在过去版本中推出了资源组(Resource Group)的硬隔离方案,通过对同一个集群内部的 BE 打上标签,标签相同的 BE 会组成一个资源组。数据入库时会按照资源组配置将数据副本写入到不同的资源组中,查询时按照资源组的划分使用对应资源组上的计算资源进行计算,例如将读、写流量放在不同的副本上从而实现读写分离,或者将在线与离线业务划分在不同的资源组、避免在离线分析任务之间的资源抢占。 - -资源组这一硬隔离方案可以有效避免多业务间的资源抢占,但在实际业务场景中可能会存在某些资源组紧张而某些资源组空闲的情况发生,这时需要有更加灵活的方式进行空闲资源的共享,以降低资源空置率。因此在 2.0.0 版本中我们增加了 Workload Group 资源软限制的方案,通过对 Workload 进行分组管理,以保证内存和 CPU 资源的灵活调配和管控。 - -通过将 Query 与 Workload Group 相关联,可以限制单个 Query 在 BE 节点上的 CPU 和内存资源的百分比,并可以配置开启资源组的内存软限制。当集群资源紧张时,将自动 Kill 组内占用内存最大的若干个查询任务以减缓集群压力。当集群资源空闲时,一旦 Workload Group 使用资源超过预设值时,多个 Workload 将共享集群可用空闲资源并自动突破阈值,继续使用系统内存以保证查询任务的稳定执行。Workload Group 还支持设置优先级,通过预先设置的优先级进行资源分配管理,来确定哪些任务可正常获得资源,哪些任务只能获取少量或没有资源。 - -与此同时,在 Workload Group 中我们还引入了查询排队的功能,在创建 Workload Group 时可以设置最大查询数,超出最大并发的查询将会进行队列中等待执行,以此来缓解高负载下系统的压力。 - -## 极致弹性与存算分离 - -过去 Apache Doris 凭借在易用性方面的诸多设计帮助用户大幅节约了计算与存储资源成本,而面向未来的云原生架构,我们已经走出了坚实的一步。 - -从降本增效的趋势出发,用户对于计算和存储资源的需求可以概括为以下几方面: - -- 计算资源弹性:面对业务计算高峰时可以快速进行资源扩展提升效率,在计算低谷时可以快速缩容以降低成本; - -- 存储成本更低:面对海量数据可以引入更为廉价的存储介质以降低成本,同时存储与计算单独设置、相互不干预; - -- 业务负载隔离:不同的业务负载可以使用独立的计算资源,避免相互资源抢占; - -- 数据管控统一:统一 Catalog、统一管理数据,可以更加便捷地分析数据。 - -存算一体的架构在弹性需求不强的场景具有简单和易于维护的优势,但是在弹性需求较强的场景有一定的局限。而存算分离的架构本质是解决资源弹性的技术手段,在资源弹性方面有着更为明显的优势,但对于存储具有更高的稳定性要求,而存储的稳定性又会进一步影响到 OLAP 的稳定性以及业务的存续性,因此也引入了 Cache 管理、计算资源管理、垃圾数据回收等一系列机制。 - -而在与 Apache Doris 社区广大用户的交流中,我们发现用户对于存算分离的需求可以分为以下三类: - -- 目前选择简单易用的存算一体架构,暂时没有资源弹性的需求; - -- 欠缺稳定的大规模存储,要求在 Apache Doris 原有基础上提供弹性、负载隔离以及低成本; - -- 有稳定的大规模存储,要求极致弹性架构、解决资源快速伸缩的问题,因此也需要更为彻底的存算分离架构; - -为了满足前两类用户的需求,Apache Doris 2.0 版本中提供了可以兼容升级的存算分离方案: -第一种,计算节点。2.0 版本中我们引入了无状态的计算节点 Compute Node,专门用于数据湖分析。相对于原本存储计算一体的混合节点,Compute Node 不保存任何数据,在集群扩缩容时无需进行数据分片的负载均衡,因此在数据湖分析这种具有明显高峰的场景中可以灵活扩容、快速加入集群分摊计算压力。同时由于用户数据往往存储在 HDFS/S3 等远端存储中,执行查询时查询任务会优先调度到 Compute Node 执行,以避免内表与外表查询之间的计算资源抢占。 - -第二种,冷热数据分层。在存储方面,冷热数据往往面临不同频次的查询和响应速度要求,因此通常可以将冷数据存储在成本更低的存储介质中。在过去版本中 Apache Doris 支持对表分区进行生命周期管理,通过后台任务将热数据从 SSD 自动冷却到 HDD,但 HDD 上的数据是以多副本的方式存储的,并没有做到最大程度的成本节约,因此对于冷数据存储成本仍然有较大的优化空间。在 Apache Doris 2.0 版本中推出了冷热数据分层功能,冷热数据分层功能使 Apache Doris 可以将冷数据下沉到存储成本更加低廉的对象存储中,同时冷数据在对象存储上的保存方式也从多副本变为单副本,存储成本进一步降至原先的三分之一,同时也减少了因存储附加的计算资源成本和网络开销成本。通过实际测算,存储成本最高可以降低超过 70%! - -面对更加彻底的存储计算分离需求,飞轮科技(SelectDB)技术团队设计并实现了全新的云原生存算分离架构(SelectDB Cloud),近一年来经历了大量企业客户的大规模使用,在性能、功能成熟度、系统稳定性等方面经受了真实生产环境的考验。在 Apache Doris 2.0.0 版本发布之际,飞轮科技宣布将这一经过大规模打磨后的成熟架构贡献至 Apache Doris 社区。这一工作预计将于 2023 年 10 月前后完成,届时全部存算分离的代码都将会提交到 Apache Doris 社区主干分支中,预计在 9 月广大社区用户就可以提前体验到基于存算分离架构的预览版本。 - -## 易用性进一步提升 - -除了以上功能需求外,在 Apache Doris 还增加了许多面向企业级特性的体验改进: - -### 支持 Kubernetes 容器化部署 - -在过去 Apache Doris 是基于 IP 通信的,在 K8s 环境部署时由于宿主机故障发生 Pod IP 漂移将导致集群不可用,在 2.0 版本中我们支持了 FQDN,使得 Apache Doris 可以在无需人工干预的情况下实现节点自愈,因此可以更好应对 K8s 环境部署以及灵活扩缩容。 - -### 跨集群数据复制 - -在 Apache Doris 2.0.0 版本中,我们可以通过 CCR 的功能在库/表级别将源集群的数据变更同步到目标集群,可根据场景精细控制同步范围;用户也可以根据需求灵活选择全量或者增量同步,有效提升了数据同步的灵活性和效率;此外 Dors CCR 还支持 DDL 同步,源集群执行的 DDL 语句可以自动同步到目标集群,从而保证了数据的一致性。Doris CCR 配置和使用也非常简单,简单操作即可快速完成跨集群数据复制。基于 Doris CCR 优异的能力,可以更好实现读写负载分离以及多机房备份,并可以更好支持不同场景的跨集群复制需求。 - -## 其他升级注意事项 - -- 1.2-lts 需要停机升级到 2.0.0,2.0-alpha 需要停机升级到 2.0.0 -- 查询优化器开关默认开启 `enable_nereids_planner=true`; -- 系统中移除了非向量化代码,所以 `enable_vectorized_engine` 参数将不再生效; -- 新增参数 `enable_single_replica_compaction`; -- 默认使用 datev2, datetimev2, decimalv3 来创建表,不支持 datev1,datetimev1,decimalv2 创建表; -- 在 JDBC 和 Iceberg Catalog 中默认使用 decimalv3; -- date type 新增 AGG_STATE; -- backend 表去掉 cluster 列; -- 为了与 BI 工具更好兼容,在 show create table 时,将 datev2 和 datetimev2 显示为 date 和 datetime。 -- 在 BE 启动脚本中增加了 max_openfiles 和 swap 的检查,所以如果系统配置不合理,be 有可能会启动失败; -- 禁止在 localhost 访问 FE 时无密码登录; -- 当系统中存在 Multi-Catalog 时,查询 information schema 的数据默认只显示 internal catalog 的数据; -- 限制了表达式树的深度,默认为 200; -- array string 返回值 单引号变双引号; -- 对 Doris 的进程名重命名为 DorisFE 和 DorisBE; -- AES 和 SM4 加解密函数的两参数版本行为变化,详见[对应函数文档](../../sql-manual/sql-functions/encrypt-digest-functions/sm4-encrypt.md) - -## 正式踏上 2.0 之旅 - -在 Apache Doris 2.0.0 版本发布过程中,我们邀请了数百家企业参与新版本的打磨,力求为所有用户提供性能更佳、稳定性更高、易用性更好的数据分析体验。后续我们将会持续敏捷发版来响应所有用户对功能和稳定性的更高追求,预计 2.0 系列的第一个迭代版本 2.0.1 将于 8 月下旬发布,9 月会进一步发布 2.0.2 版本。在快速 Bugfix 的同时,也会不断将一些最新特性加入到新版本中。9 月份我们还将发布 2.1 版本的尝鲜版本,会增加一系列呼声已久的新能力,包括 Variant 可变数据类型以更好满足半结构化数据 Schema Free 的分析需求,多表物化视图,在导入性能方面持续优化、增加新的更加简洁的数据导入方式,通过自动攒批实现更加实时的数据写入,复合数据类型的嵌套能力等。 - -期待 Apache Doris 2.0 版本的正式发布为更多社区用户提供实时统一的分析体验,我们也相信 Apache Doris 2.0 版本会成为您在实时分析场景中的最理想选择。 - -## 致谢 - -再次向所有参与 Apache Doris 2.0.0 版本开发和测试的贡献者们表示最衷心的感谢,他们分别是: - -0xflotus、1330571、15767714253、924060929、ArmandoZ、AshinGau、BBB-source、BePPPower、Bears0haunt、BiteTheDDDDt、ByteYue、Cai-Yao、CalvinKirs、Centurybbx、ChaseHuangxu、CodeCooker17、DarvenDua、Dazhuwei、DongLiang-0、EvanTheBoy、FreeOnePlus、Gabriel39、GoGoWen、HHoflittlefish777、HackToday、HappenLee、Henry2SS、HonestManXin、JNSimba、JackDrogon、Jake-00、Jenson97Jibing-Li、Johnnyssc、JoverZhang、KassieZ、Kikyou1997、Larborator、Lchangliang、LemonLiTree、LiBinfeng-01、MRYOG、Mellorsssss、Moonm3n、Mryange、Myasuka、NetShrimp06、Reminiscent、SWJTU-ZhangLei、SaintBacchus、ShaoStaticTiger、Shoothzj、SilasKenneth、TangSiyang2001、Tanya-W、TeslaCN、TsukiokaKogane、UnicornLee、WinkerDu、WuWQ98、Xiaoccer、XieJiann、Yanko-7、Yukang-Lian、Yulei-Yang、ZI-MA、ZashJie、ZhangYu0123、Zhiyu-h、adonis0147、airborne12、alissa-tung、amorynan、beijita、bigben0204、bin41215、bingquanzhao、bobhan1、bowenliang123、brody715、caiconghui、cambyzju、caoliang-web、catpineapple、chenlinzhong、cjq9458、cnissnzg、colagy、csun5285、czzmmc、dataroaring、davidshtian、deadlinefen、deardeng、didiaode18、dong-shuai、dujl、dutyu、echo-hhj、eldenmoon、englefly、figurant、fornaix、fracly、freemandealer、fsilent、fuchanghai、gavinchou、git-hulk、gitccl、gnehil、guoxiaolongzte、gwxog、hailin0、hanyisong、haochengxia、haohuaijin、hechao-ustc、hello-stephen、herry2038、hey-hoho、hf200012、hqx871、httpshirley、htyoung、hubgeter、hufengkai、hust-hhb、isHuangXin、ixzc、jacktengg、jackwener、jeffreys-cat、jiugem、jixxiong、kaijchen、kaka11chen、levy5307、lexluo09、liangjiawei1110、liaoxin01、liugddx、liujinhui1994、liujiwen-up、liutang123、liuxinzero07、liwei9902、lljqy、lsy3993、luozenglin、luwei16、luzhijing、lvshaokang、maochongxin、meredith620、mklzl、mongo360、morningman、morrySnow、mrhhsg、myfjdthink、mymeiyi、nanfeng1999、neuyilan、nextdreamblue、niebayes、nikam14、pengxiangyu、pingchunzhang、platoneko、q763562998、qidaye、qzsee、reswqa、sepastian、shenxingwuying、shuke987、shysnow、siriume、sjyago、skyhitnow、smallhibiscus、sohardforaname、spaces-X、stalary、starocean999、superspeedone、taomengen、tarepanda1024、timyuer、ucasfl、vinlee19、wangbo、wanghuan2054、wangshuo128、wangtianyi2004、wangyf0555、wangyujia2023、web-flow、weizhengte、weizuo93、whutpencil、wsjz、wuwenchi、wzymumon、xiaojunjie、xiaokang、xiedeyantu、xinyiZzz、xuqinghuang、xutaoustc、xy720、xzj7019、ya-dao、yagagagaga、yangzhg、yiguolei、yimeng、yinzhijian、yixiutt、yongjinhou、youtNa、yuanyuan8983、yujian225、yujun777、yuxuan-luo、yz-jayhua、zbtzbtzbt、zclllyybb、zddr、zenoyang、zgxme、zhangguoqiang666、zhangstar333、zhangy5、zhannngchen、zhbinbin、zhengshengjun、zhengshiJ、zwuis、zxealous、zy-kkk、zzzxl1993、zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.1.md deleted file mode 100644 index 1f9fc7b1ad575..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.1.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -{ - "title": "Release 2.0.1", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.1 Release 版本已于 2023 年 9 月 4 日正式发布,有超过 71 位贡献者为 Apache Doris 提交了超过 380 个优化与修复。 - -# 行为变更 -- 将varchar默认长度1修改为65533 - -# 功能改进 - -### Array 和 Map 数据类型的功能优化及稳定性改进 - -- [https://github.com/apache/doris/pull/22793](https://github.com/apache/doris/pull/22793) -- [https://github.com/apache/doris/pull/22927](https://github.com/apache/doris/pull/22927) -- [https://github.com/apache/doris/pull/22738](https://github.com/apache/doris/pull/22738) -- [https://github.com/apache/doris/pull/22347](https://github.com/apache/doris/pull/22347) -- [https://github.com/apache/doris/pull/23250](https://github.com/apache/doris/pull/23250) -- [https://github.com/apache/doris/pull/22300](https://github.com/apache/doris/pull/22300) - -### 倒排索引的查询性能优化 - -- [https://github.com/apache/doris/pull/22836](https://github.com/apache/doris/pull/22836) -- [https://github.com/apache/doris/pull/23381](https://github.com/apache/doris/pull/23381) -- [https://github.com/apache/doris/pull/23389](https://github.com/apache/doris/pull/23389) -- [https://github.com/apache/doris/pull/22570](https://github.com/apache/doris/pull/22570) - -### bitmap、like、scan、agg 等执行性能优化 - -- [https://github.com/apache/doris/pull/23172](https://github.com/apache/doris/pull/23172) -- [https://github.com/apache/doris/pull/23495](https://github.com/apache/doris/pull/23495) -- [https://github.com/apache/doris/pull/23476](https://github.com/apache/doris/pull/23476) -- [https://github.com/apache/doris/pull/23396](https://github.com/apache/doris/pull/23396) -- [https://github.com/apache/doris/pull/23182](https://github.com/apache/doris/pull/23182) -- [https://github.com/apache/doris/pull/22216](https://github.com/apache/doris/pull/22216) - -### CCR 的功能优化与稳定性提升 - -- [https://github.com/apache/doris/pull/22447](https://github.com/apache/doris/pull/22447) -- [https://github.com/apache/doris/pull/22559](https://github.com/apache/doris/pull/22559) -- [https://github.com/apache/doris/pull/22173](https://github.com/apache/doris/pull/22173) -- [https://github.com/apache/doris/pull/22678](https://github.com/apache/doris/pull/22678) - -### Merge-on-Write 主键表的能力增强 - -- [https://github.com/apache/doris/pull/22282](https://github.com/apache/doris/pull/22282) -- [https://github.com/apache/doris/pull/22984](https://github.com/apache/doris/pull/22984) -- [https://github.com/apache/doris/pull/21933](https://github.com/apache/doris/pull/21933) -- [https://github.com/apache/doris/pull/22874](https://github.com/apache/doris/pull/22874) - - -### 表状态和统计信息的功能优化 - -- [https://github.com/apache/doris/pull/22658](https://github.com/apache/doris/pull/22658) -- [https://github.com/apache/doris/pull/22211](https://github.com/apache/doris/pull/22211) -- [https://github.com/apache/doris/pull/22775](https://github.com/apache/doris/pull/22775) -- [https://github.com/apache/doris/pull/22896](https://github.com/apache/doris/pull/22896) -- [https://github.com/apache/doris/pull/22788](https://github.com/apache/doris/pull/22788) -- [https://github.com/apache/doris/pull/22882](https://github.com/apache/doris/pull/22882) - - -### Multi-Catalog 的功能优化及稳定性改进 - -- [https://github.com/apache/doris/pull/22949](https://github.com/apache/doris/pull/22949) -- [https://github.com/apache/doris/pull/22923](https://github.com/apache/doris/pull/22923) -- [https://github.com/apache/doris/pull/22336](https://github.com/apache/doris/pull/22336) -- [https://github.com/apache/doris/pull/22915](https://github.com/apache/doris/pull/22915) -- [https://github.com/apache/doris/pull/23056](https://github.com/apache/doris/pull/23056) -- [https://github.com/apache/doris/pull/23297](https://github.com/apache/doris/pull/23297) -- [https://github.com/apache/doris/pull/23279](https://github.com/apache/doris/pull/23279) - - -# 问题修复 - -修复了若干个 2.0.0 版本中的问题,使系统稳定性得到进一步提升 - -- [https://github.com/apache/doris/pull/22673](https://github.com/apache/doris/pull/22673) -- [https://github.com/apache/doris/pull/22656](https://github.com/apache/doris/pull/22656) -- [https://github.com/apache/doris/pull/22892](https://github.com/apache/doris/pull/22892) -- [https://github.com/apache/doris/pull/22959](https://github.com/apache/doris/pull/22959) -- [https://github.com/apache/doris/pull/22902](https://github.com/apache/doris/pull/22902) -- [https://github.com/apache/doris/pull/22976](https://github.com/apache/doris/pull/22976) -- [https://github.com/apache/doris/pull/22734](https://github.com/apache/doris/pull/22734) -- [https://github.com/apache/doris/pull/22840](https://github.com/apache/doris/pull/22840) -- [https://github.com/apache/doris/pull/23008](https://github.com/apache/doris/pull/23008) -- [https://github.com/apache/doris/pull/23003](https://github.com/apache/doris/pull/23003) -- [https://github.com/apache/doris/pull/22966](https://github.com/apache/doris/pull/22966) -- [https://github.com/apache/doris/pull/22965](https://github.com/apache/doris/pull/22965) -- [https://github.com/apache/doris/pull/22784](https://github.com/apache/doris/pull/22784) -- [https://github.com/apache/doris/pull/23049](https://github.com/apache/doris/pull/23049) -- [https://github.com/apache/doris/pull/23084](https://github.com/apache/doris/pull/23084) -- [https://github.com/apache/doris/pull/22947](https://github.com/apache/doris/pull/22947) -- [https://github.com/apache/doris/pull/22919](https://github.com/apache/doris/pull/22919) -- [https://github.com/apache/doris/pull/22979](https://github.com/apache/doris/pull/22979) -- [https://github.com/apache/doris/pull/23096](https://github.com/apache/doris/pull/23096) -- [https://github.com/apache/doris/pull/23113](https://github.com/apache/doris/pull/23113) -- [https://github.com/apache/doris/pull/23062](https://github.com/apache/doris/pull/23062) -- [https://github.com/apache/doris/pull/22918](https://github.com/apache/doris/pull/22918) -- [https://github.com/apache/doris/pull/23026](https://github.com/apache/doris/pull/23026) -- [https://github.com/apache/doris/pull/23175](https://github.com/apache/doris/pull/23175) -- [https://github.com/apache/doris/pull/23167](https://github.com/apache/doris/pull/23167) -- [https://github.com/apache/doris/pull/23015](https://github.com/apache/doris/pull/23015) -- [https://github.com/apache/doris/pull/23165](https://github.com/apache/doris/pull/23165) -- [https://github.com/apache/doris/pull/23264](https://github.com/apache/doris/pull/23264) -- [https://github.com/apache/doris/pull/23246](https://github.com/apache/doris/pull/23246) -- [https://github.com/apache/doris/pull/23198](https://github.com/apache/doris/pull/23198) -- [https://github.com/apache/doris/pull/23221](https://github.com/apache/doris/pull/23221) -- [https://github.com/apache/doris/pull/23277](https://github.com/apache/doris/pull/23277) -- [https://github.com/apache/doris/pull/23249](https://github.com/apache/doris/pull/23249) -- [https://github.com/apache/doris/pull/23272](https://github.com/apache/doris/pull/23272) -- [https://github.com/apache/doris/pull/23383](https://github.com/apache/doris/pull/23383) -- [https://github.com/apache/doris/pull/23372](https://github.com/apache/doris/pull/23372) -- [https://github.com/apache/doris/pull/23399](https://github.com/apache/doris/pull/23399) -- [https://github.com/apache/doris/pull/23295](https://github.com/apache/doris/pull/23295) -- [https://github.com/apache/doris/pull/23446](https://github.com/apache/doris/pull/23446) -- [https://github.com/apache/doris/pull/23406](https://github.com/apache/doris/pull/23406) -- [https://github.com/apache/doris/pull/23387](https://github.com/apache/doris/pull/23387) -- [https://github.com/apache/doris/pull/23421](https://github.com/apache/doris/pull/23421) -- [https://github.com/apache/doris/pull/23456](https://github.com/apache/doris/pull/23456) -- [https://github.com/apache/doris/pull/23361](https://github.com/apache/doris/pull/23361) -- [https://github.com/apache/doris/pull/23402](https://github.com/apache/doris/pull/23402) -- [https://github.com/apache/doris/pull/23369](https://github.com/apache/doris/pull/23369) -- [https://github.com/apache/doris/pull/23245](https://github.com/apache/doris/pull/23245) -- [https://github.com/apache/doris/pull/23532](https://github.com/apache/doris/pull/23532) -- [https://github.com/apache/doris/pull/23529](https://github.com/apache/doris/pull/23529) -- [https://github.com/apache/doris/pull/23601](https://github.com/apache/doris/pull/23601) - -优化改进及修复问题的完整列表请在 GitHub 按照标签 dev/2.0.1-merged 进行筛选即可。 - - -# 致谢 - -向所有参与 Apache Doris 2.0.1 版本开发和测试的贡献者们表示最衷心的感谢,他们分别是: - -adonis0147、airborne12、amorynan、AshinGau、BePPPower、BiteTheDDDDt、bobhan1、ByteYue、caiconghui、CalvinKirs、csun5285、DarvenDuan、deadlinefen、DongLiang-0、Doris-Extras、dutyu、englefly、freemandealer、Gabriel39、GoGoWen、HappenLee、hello-stephen、HHoflittlefish777、hubgeter、hust-hhb、JackDrogon、jacktengg、jackwener、Jibing-Li、kaijchen、kaka11chen、Kikyou1997、Lchangliang、LemonLiTree、liaoxin01、LiBinfeng-01、lsy3993、luozenglin、morningman、morrySnow、mrhhsg、Mryange、mymeiyi、shuke987、sohardforaname、starocean999、TangSiyang2001、Tanya-W、ucasfl、vinlee19、wangbo -wsjz、wuwenchi、xiaokang、XieJiann、xinyiZzz、yujun777、Yukang-Lian、Yulei-Yang、zclllyybb、zddr、zenoyang、zgxme、zhangguoqiang666、zhangstar333、zhannngchen、zhiqiang-hhhh、zxealous、zy-kkk、zzzxl1993、zzzzzzzs \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.10.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.10.md deleted file mode 100644 index ab610bc5357b9..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.10.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -{ - "title": "Release 2.0.10", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,**[Apache Doris 2.0.10](https://doris.apache.org/download/) 版本已于 2024 年 5 月 16 日正式与大家见面**,该版本提交了 83 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 改进和优化 - -- 增加了`read_only`和`super_read_only`变量以保持和 MySQL 兼容 - -- 仅在 IO_ERROR 的错误才把数据目录加入 Broken List,防止 fd 超限等错误导致误加入 - -- 基于外表 CTAS 创建新表时,把 `VARCHAR` 类型转成 `STRING` 类型 - -- 支持把 Paimon 的 `ROW` 类型映射成 Doris 的 `STRUCT` 类型 - -- 在创建 Tablet 选择数据盘时,允许存在少量的倾斜 - -- 对 `set replica drop` 命令记录 Editlog,以防止在 Follower 节点执行命令后,其状态显示不正确 - -- Schema Change 内存自适应避免内存超限 - -- 倒排索引中 Unicode 分词器可以配置不使用停用词 - - -## 致谢 - -@airborne12, @BePPPower, @ByteYue, @CalvinKirs, @cambyzju, @csun5285, @dataroaring, @deardeng, @DongLiang-0, @eldenmoon, @felixwluo, @HappenLee, @hubgeter, @jackwener, @kaijchen, @kaka11chen, @Lchangliang, @liaoxin01, @LiBinfeng-01, @luennng, @morningman, @morrySnow, @Mryange, @nextdreamblue, @qidaye, @starocean999, @suxiaogang223, @SWJTU-ZhangLei, @w41ter, @xiaokang, @xy720, @yujun777, @Yukang-Lian, @zhangstar333, @zxealous, @zy-kkk, @zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.11.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.11.md deleted file mode 100644 index a94035c051756..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.11.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -{ - "title": "Release 2.0.11", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.11](https://doris.apache.org/download/) 版本已于 2024 年 6 月 5 日正式与大家见面,该版本提交了 123 个改进项以及问题修复,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - - -## 1 行为变更 - -由于倒排索引已经成熟稳定,可以替换老的 `BITMAP INDEX`,因此后续新建 `BITMAP INDEX` 会自动切换成 `INVERTED INDEX`,而已经创建的 `BITMAP INDEX` 保持不变。整个切换过程对用户无感知,写入和查询没有变化,此外用户可以修改 FE 配置 `enable_create_bitmap_index_as_inverted_index = false` 来关闭该自动切换。[#35528](https://github.com/apache/doris/pull/35528) - - - -## 2 改进和优化 - -- 为 JSON 和 TIME 添加 Trino JDBC Catalog 类型映射。 - -- 在无法转移到(非)主节点时,FE 退出以防止未知状态和过多日志。 - -- 在删除统计表时写入审计日志。 - -- 如果表只进行了部分分析,忽略最小/最大列统计以避免低效的查询计划。 - -- 支持集合操作减法,例如 `set1 - set2`。 - -- 使用 concat(col, pattern_str) 改进 LIKE 和 REGEXP 子句的性能,例如:`col1 LIKE concat('%', col2, '%')`。 - -- 添加查询选项以支持短路查询,保证升级兼容性。 - - - -## 3 致谢 - -@924060929、@airborne12、@AshinGau、@BePPPower、@BiteTheDDDDt、@ByteYue、@CalvinKirs、@cambyzju、@csun5285、@dataroaring、@eldenmoon、@englefly、@feiniaofeiafei、@Gabriel39、@GoGoWen、@HHoflittlefish777、@hubgeter、@jacktengg、@jackwener、@jeffreys-cat、@Jibing-Li、@kaka11chen、@kobe6th、@LiBinfeng-01、@mongo360、@morningman、@morrySnow、@mrhhsg、@Mryange、@nextdreamblue、@qidaye、@sjyango、@starocean999、@SWJTU-ZhangLei、@w41ter、@wangbo、@wsjz、@wuwenchi、@xiaokang、@XieJiann、@xy720、@yujun777、@Yukang-Lian、@Yulei-Yang、@zclllyybb、@zddr、@zhangstar333、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.12.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.12.md deleted file mode 100644 index 7171ea5f2c8ba..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.12.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -{ - "title": "Release 2.0.12", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.12](https://doris.apache.org/download/) 版本已于 2024 年 6 月 27 日正式与大家见面,该版本提交了 99 个改进项以及问题修复,欢迎大家下载体验。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 行为变更 - -- 不再将建表的默认注释设置为表的类型,而是改成默认为空,比如 COMMENT 'OLAP' 变成 COMMENT '',这样对于依赖注释的 BI 软件更加友好。 [#35855](https://github.com/apache/doris/pull/35855) - -- 将 `@@autocommit` 变量的类型从 `BOOLEAN` 改成 `BIGINT`,以免有些 MySQL 客户端(比如.NET MySQL.Data)报错。 [#33282](https://github.com/apache/doris/pull/33282) - - -## 改进优化 - -- 删除 `disable_nested_complex_type` 参数,默认允许创建嵌套的 `ARRAY` `MAP` `STRUCT` 类型。[#36255](https://github.com/apache/doris/pull/36255) - -- HMS Catalog 支持 `SHOW CREATE DATABASE` 命令。[ #28145](https://github.com/apache/doris/pull/28145) - -- 在 Query Profile 中增加更多倒排索引的指标。[#36545](https://github.com/apache/doris/pull/36545) - -- 跨集群数据复制(CCR)支持倒排索引 [#31743](https://github.com/apache/doris/pull/31743) - -## 致谢 - -@amorynan、@BiteTheDDDDt、@cambyzju、@caoliang-web、@dataroaring、@eldenmoon、@feiniaofeiafei、@felixwluo、@gavinchou、@HappenLee、@hello-stephen、@jacktengg、@Jibing-Li、@Johnnyssc、@liaoxin01、@LiBinfeng-01、@luwei16、@mongo360、@morningman、@morrySnow、@mrhhsg、@Mryange、@mymeiyi、@qidaye、@qzsee、@starocean999、@w41ter、@wangbo、@wsjz、@wuwenchi、@xiaokang、@XuPengfei-1020、@xy720、@yongjinhou、@yujun777、@Yukang-Lian、@Yulei-Yang、@zclllyybb、@zddr、@zhannngchen、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.13.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.13.md deleted file mode 100644 index d5cda35fecff8..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.13.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -{ - "title": "Release 2.0.13", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.13 版本已于 2024 年 7 月 16 日正式与大家见面,该版本提交了 112 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -[快速下载](https://doris.apache.org/download/) - -## 行为变更 - -仅在客户端启用了 `CLIENT_MULTI_STATEMENTS` 设置时,SQL 输入才会被视为多条语句,从而增强了与 MySQL 的兼容性。[#36759](https://github.com/apache/doris/pull/36759) - -## 新增功能 - -- 新增了 BE 配置 `allow_zero_date`,允许使用全零的日期。设置为 `false` 时,`0000-00-00` 会被解析为 `NULL`;设置为 `true` 时,会被解析为 `0000-01-01`。默认值为 `false`,以保持与之前行为的一致性。[#34961](https://github.com/apache/doris/pull/34961) - -- `LogicalWindow` 和 `LogicalPartitionTopN` 现在支持多字段谓词下推,以提升性能。[#36828](https://github.com/apache/doris/pull/36828) - -- ES Catalog 现在将 ES 的 `nested` 或 `object` 类型映射到 Doris 的 `JSON` 类型。[#37101](https://github.com/apache/doris/pull/37101) - -## 改进和优化 - -- `LIMIT` 查询现在会更早地停止读取数据,以减少资源消耗并提升性能。[#36535](https://github.com/apache/doris/pull/36535) - -- 现在支持具有空键的特殊 JSON 数据。[#36762](https://github.com/apache/doris/pull/36762) - -- 改进了 Routine Load 的稳定性和可用性,包括负载均衡、自动恢复、异常处理以及更友好的错误消息。[#36450](https://github.com/apache/doris/pull/36450) [#35376](https://github.com/apache/doris/pull/35376) [#35266](https://github.com/apache/doris/pull/35266) [#33372](https://github.com/apache/doris/pull/33372) [#32282](https://github.com/apache/doris/pull/32282) [#32046](https://github.com/apache/doris/pull/32046) [#32021](https://github.com/apache/doris/pull/32021) [#31846](https://github.com/apache/doris/pull/31846) [#31273](https://github.com/apache/doris/pull/31273) - -- 对 BE 的硬盘选择策略和速度进行了优化。[#36826](https://github.com/apache/doris/pull/36826) [#36795](https://github.com/apache/doris/pull/36795) [#36509](https://github.com/apache/doris/pull/36509) - -- 改进了 JDBC Catalog 的稳定性和可用性,包括加密、线程池连接数配置以及更友好的错误消息。[#36940](https://github.com/apache/doris/pull/36940) [#36720](https://github.com/apache/doris/pull/36720) [#30880](https://github.com/apache/doris/pull/30880) [#35692](https://github.com/apache/doris/pull/35692) - -## 致谢 - -@DarvenDuan、@Gabriel39、@Jibing-Li、@Johnnyssc、@Lchangliang、@LiBinfeng-01、@SWJTU-ZhangLei、@Thearas、@Yukang-Lian、@Yulei-Yang、@airborne12、@amorynan、@bobhan1、@cambyzju、@csun5285、@dataroaring、@deardeng、@eldenmoon、@englefly、@feiniaofeiafei、@hello-stephen、@jacktengg、@kaijchen、@liutang123、@luwei16、@morningman、@morrySnow、@mrhhsg、@mymeiyi、@platoneko、@qidaye、@sollhui、@starocean999、@w41ter、@xiaokang、@xy720、@yujun777、@zclllyybb \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.14.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.14.md deleted file mode 100644 index 8118e82035723..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.14.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -{ - "title": "Release 2.0.14", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.14 版本已于 2024 年 8 月 6 日正式与大家见面,该版本提交了 110 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - - -## 1 新功能 - -- 增加获取最近一个查询 Profile 的 REST 接口 `curl http://user:password@127.0.0.1:8030/api/profile/text` 。[#38268](https://github.com/apache/doris/pull/38268) - -## 2 改进和优化 - -- 优化 MOW 表带有 Sequence 列的主键点查性能。[#38287](https://github.com/apache/doris/pull/38287) - -- 优化倒排索引在查询条件很多时的性能。[#35346](https://github.com/apache/doris/pull/35346) - -- 创建带分词的倒排索引时,自动开启 `support_phrase` 选项加速 `match_phrase` 系列短语查询。[#37949](https://github.com/apache/doris/pull/37949) - -- 支持简化的 SQL Hint,例如 `SELECT /*+ query_timeout(3000) */ * FROM t;`。[#37720](https://github.com/apache/doris/pull/37720) - -- 读对象存储遇到 429 错误时自动重试提升稳定性。[#35396](https://github.com/apache/doris/pull/35396) - -- LEFT SEMI / ANTI JOIN 在匹配到符合的数据行时,终止后续的匹配执行提升性能。[#34703](https://github.com/apache/doris/pull/34703) - -- 避免非法数据返回 MySQL 结果时出发 coredump。[#28069](https://github.com/apache/doris/pull/28069) - -- 输出类型名字时统一使用小写,保持跟 MySQL 兼容对 BI 工具更加友好。[#38521](https://github.com/apache/doris/pull/38521) - - -## 致谢 - -@924060929、@BiteTheDDDDt、@ByteYue、@CalvinKirs、@GoGoWen、@HappenLee、@Jibing-Li、@Lchangliang、@LiBinfeng-01、@Mryange、@XieJiann、@Yukang-Lian、@Yulei-Yang、@airborne12、@amorynan、@biohazard4321、@cambyzju、@csun5285、@eldenmoon、@englefly、@freemandealer、@hello-stephen、@hubgeter、@kaijchen、@liaoxin01、@luwei16、@morningman、@morrySnow、@mymeiyi、@qidaye、@sollhui、@starocean999、@w41ter、@wuwenchi、@xiaokang、@xy720、@yujun777、@zclllyybb、@zddr、@zhangstar333、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.15.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.15.md deleted file mode 100644 index 4dec02572e9d0..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.15.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -{ - "title": "Release 2.0.15", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.15 版本已于 2024 年 9 月 30 日正式与大家见面,该版本提交了 157 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- 立即下载:https://doris.apache.org/download - -- GitHub 下载:https://github.com/apache/doris/releases/tag/2.0.15 - - -## 行为变更 - -无 - -## 新功能 - -- 恢复功能现在支持删除冗余的表块和分区选项。[#39028](https://github.com/apache/doris/pull/39028) - -- 支持 JSON 函数 `json_search`。[#40948](https://github.com/apache/doris/pull/40948) - -## 改进与优化 - -### 稳定性 - -- 添加了 FE 配置 `abort_txn_after_lost_heartbeat_time_second`,用于设置事务中止时间。[#28662](https://github.com/apache/doris/pull/28662) - -- BE 失去心跳信号超过 1 分钟后中止事务,而不是 5 秒,以避免事务中止过于敏感。[#22781](https://github.com/apache/doris/pull/22781) - -- 延迟调度例行加载的 EOF 任务,以避免过多的小事务。[#39975](https://github.com/apache/doris/pull/39975) - -- 优先从在线磁盘服务进行查询,以提高稳健性。[#39467](https://github.com/apache/doris/pull/39467) - -- 在非严格模式的部分更新中,如果行的删除标志已标记,则跳过检查新插入的行。[#40322](https://github.com/apache/doris/pull/40322) - -- 为防止 FE 内存不足,限制备份任务中的表块数量,默认值为 300,000。[#39987](https://github.com/apache/doris/pull/39987) - -- ARRAY MAP STRUCT 类型支持 `REPLACE_IF_NOT_NULL`。[#38304](https://github.com/apache/doris/pull/38304) - -- 对非 `DELETE_INVALID_XXX `失败的删除作业进行重试。[#37834](https://github.com/apache/doris/pull/37834) - -### 查询性能 - -- 优化由并发列更新和 compaction 引起的慢速列更新问题。[#38487](https://github.com/apache/doris/pull/38487) - -- 当过滤条件中存在 NullLiteral 时,可以将其折叠为 false 并进一步转换为 EmptySet,以减少不必要的数据扫描和计算。[#38135](https://github.com/apache/doris/pull/38135) - -- 提高 `ORDER BY` 全排序的性能。[#38985](https://github.com/apache/doris/pull/38985) - -- 提高倒排索引中字符串处理的性能。[#37395](https://github.com/apache/doris/pull/37395) - -### 查询优化器 - -- 增加了对以分号开头的语句的支持以兼容老优化器。[#39399](https://github.com/apache/doris/pull/39399) - -- 完善了一些聚合函数签名匹配。[#39352](https://github.com/apache/doris/pull/39352) - -- 在 Schema 变更后删除列统计信息并触发自动分析。[#39101](https://github.com/apache/doris/pull/39101) - -- 支持使用 `DROP CACHED STATS table_name` 删除缓存的统计信息。[#39367](https://github.com/apache/doris/pull/39367) - -### Multi Catalog - -- 优化 JDBC Catalog 刷新,减少客户端创建频率。[#40261](https://github.com/apache/doris/pull/40261) - -- 修复 JDBC Catalog 在某些条件下存在的线程泄漏问题。[#39423](https://github.com/apache/doris/pull/39423) - -**致谢** - -@924060929、@BePPPower、@BiteTheDDDDt、@CalvinKirs、@GoGoWen、@HappenLee、@Jibing-Li、@Johnnyssc、@LiBinfeng-01、@Mryange、@SWJTU-ZhangLei、@TangSiyang2001、@Toms1999、@Vallishp、@Yukang-Lian、@airborne12、@amorynan、@bobhan1、@cambyzju、@csun5285、@dataroaring、@eldenmoon、@englefly、@feiniaofeiafei、@hello-stephen、@htyoung、@hubgeter、@justfortaste、@liaoxin01、@liugddx、@liutang123、@luwei16、@mongo360、@morrySnow、@qidaye、@smallx、@sollhui、@starocean999、@w41ter、@xiaokang、@xzj7019、@yujun777、@zclllyybb、@zddr、@zhangstar333、@zhannngchen、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.2.md deleted file mode 100644 index e4deced5179e5..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.2.md +++ /dev/null @@ -1,191 +0,0 @@ ---- -{ - "title": "Release 2.0.2", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.2 版本已于 2023 年 10 月 6 日正式发布,该版本对多个功能进行了更新优化,旨在更好地满足用户的需求。有 92 位贡献者为 Apache Doris 2.0.2 版本提交了功能优化项以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**GitHub 下载**:https://github.com/apache/doris/releases/tag/2.0.2-rc05 - -**官网下载页**:https://doris.apache.org/download/ - -## Behavior Changes - -- https://github.com/apache/doris/pull/24679 - - 删除与 lambda 函数语法冲突的 json“->”运算符,可以使用函数 json_extract 代替。 - -- https://github.com/apache/doris/pull/24308 - -将 `metadata_failure_recovery` 从 fe.conf 移动到 start_fe.sh 参数,以避免异常操作。 - -- https://github.com/apache/doris/pull/24207 - -对于普通类型中的 null 值使用 `\n` 来表示,对于复杂类型或嵌套类型的 null 值,跟 JSON 类型保持一致、采取 null 来表示。 - -- https://github.com/apache/doris/pull/23795 -- https://github.com/apache/doris/pull/23784 - -优化 BE 节点 priority_network 配置项的绑定策略,如果用户配置了错误的 priority_network 则直接启动失败,以避免用户错误地认为配置是正确的。如果用户没有配置 priority_network,则仅从 IPv4 列表中选择第一个 IP,而不是从所有 IP 中选择,以避免用户的服务器不支持 IPv4。 - -- https://github.com/apache/doris/pull/17730 - -支持取消正在重试的导入任务,修复取消加载失败的问题。 - -## 功能优化 - -### 易用性提升 - -- https://github.com/apache/doris/pull/23887 - -某些场景下,用户需要向集群中添加一些自定义的库,如 lzo.jar、orai18n.jar 等。在过去的版本中,这些 lib 文件位于 fe/lib 或 be/lib 中,但在升级集群时,lib 库将被新的 lib 库替换,导致所有自定义的 lib 库都会丢失。 - -在新版本中,为 FE 和 BE 添加了新的自定义目录 custom_lib,用户可以在其中放置自定义 lib 文件。 - -- https://github.com/apache/doris/pull/23022 - -支持基于用户角色的权限访问控制,实现了行级细粒度的权限控制策略。 - -### 改进查询优化器 Nereids 统计信息收集 - -- https://github.com/apache/doris/pull/23663 - -在运行 Analysis 任务时禁用 File Cache,Analysis 任务是后台任务,不应影响用户本地 File Cache 数据。 - -- https://github.com/apache/doris/pull/23703 - -在过去版本中,查看列的统计信息时将忽略出现错误的列。 - -在新版本中,当 min 或 max 值未能反序列化时,查看列的统计信息时将使用 N/A 作为 min 或 max 的值并仍显示其余的统计信息,包括 count、null_count、ndv 等。 - -- https://github.com/apache/doris/pull/23965 - -支持 JDBC 外部表的统计信息收集。 - -- https://github.com/apache/doris/pull/24625 - -跳过 `__internal_schema` 和 `information_schema` 上未知列的统计信息检查。 - -### Multi-Catalog 功能优化 - -- https://github.com/apache/doris/pull/24168 - -支持 Hadoop viewfs; - -- https://github.com/apache/doris/pull/22369 - -优化 JDBC Catalog Checksum Replay 和 Range 相关问题; - -- https://github.com/apache/doris/pull/23868 - -优化了 JDBC Catalog 的 Property 检查和错误消息提示。 - -- https://github.com/apache/doris/pull/24242 - -修复了 MaxCompute Catalog Decimal 类型解析问题以及使用对象存储地址错误的问题。 - -- https://github.com/apache/doris/pull/23391 - -支持 Hive Metastore Catalog 的 SQL Cache。 - -- https://github.com/apache/doris/pull/22869 - -提高了 Hive Metastore Catalog 的元数据同步性能。 - -- https://github.com/apache/doris/pull/22702 - -添加 metadata_name_ids 以快速获取 Catalogs、DB、Table,在创建或删除 Catalog 和 Table 时无需 Refresh Catalog,并添加 Profiling 表从而与 MySQL 兼容。 - -### 倒排索引性能优化 - -- https://github.com/apache/doris/pull/23952 - -增加 bkd 索引的查询缓存,通过缓存可以加速在命中 bkd 索引时的查询性能,在高并发场景中效果更为明显; - -- https://github.com/apache/doris/pull/24678 - -提升倒排索引在 Count 算子上的查询性能; - -- https://github.com/apache/doris/pull/24751 - -提升了 Match 算子在未命中索引时的效率,在测试表现中性能最高提升 60 倍; - -- https://github.com/apache/doris/pull/23871 -- https://github.com/apache/doris/pull/24389 - -提升了 MATCH 和 MATCH_ALL 在倒排索引上的查询性能; - -### Array 函数优化 - -- https://github.com/apache/doris/pull/23630 - -优化了老版本查询优化器 Array 函数无法处理 Decimal 类型的问题; - -- https://github.com/apache/doris/pull/24327 - -优化了 `array_union` 数组函数对多个参数的支持; - -- https://github.com/apache/doris/pull/24455 - -支持通过 explode 函数来处理数组嵌套复杂类型; - -## Bug 修复 - - 修复了之前版本存在的部分 Bug,使系统整体稳定性表现得到大幅提升,完整 BugFix 列表请参考 GitHub Commits 记录; - -- https://github.com/apache/doris/pull/23601 -- https://github.com/apache/doris/pull/23630 -- https://github.com/apache/doris/pull/23555 -- https://github.com/apache/doris/pull/17644 -- https://github.com/apache/doris/pull/23779 -- https://github.com/apache/doris/pull/23940 -- https://github.com/apache/doris/pull/23860 -- https://github.com/apache/doris/pull/23973 -- https://github.com/apache/doris/pull/24020 -- https://github.com/apache/doris/pull/24039 -- https://github.com/apache/doris/pull/23958 -- https://github.com/apache/doris/pull/24104 -- https://github.com/apache/doris/pull/24097 -- https://github.com/apache/doris/pull/23852 -- https://github.com/apache/doris/pull/24139 -- https://github.com/apache/doris/pull/24165 -- https://github.com/apache/doris/pull/24164 -- https://github.com/apache/doris/pull/24369 -- https://github.com/apache/doris/pull/24372 -- https://github.com/apache/doris/pull/24381 -- https://github.com/apache/doris/pull/24385 -- https://github.com/apache/doris/pull/24290 -- https://github.com/apache/doris/pull/24207 -- https://github.com/apache/doris/pull/24521 -- https://github.com/apache/doris/pull/24460 -- https://github.com/apache/doris/pull/24568 -- https://github.com/apache/doris/pull/24610 -- https://github.com/apache/doris/pull/24595 -- https://github.com/apache/doris/pull/24616 -- https://github.com/apache/doris/pull/24635 -- https://github.com/apache/doris/pull/24625 -- https://github.com/apache/doris/pull/24572 -- https://github.com/apache/doris/pull/24578 -- https://github.com/apache/doris/pull/23943 -- https://github.com/apache/doris/pull/24697 -- https://github.com/apache/doris/pull/24681 -- https://github.com/apache/doris/pull/24617 -- https://github.com/apache/doris/pull/24692 -- https://github.com/apache/doris/pull/24700 -- https://github.com/apache/doris/pull/24389 -- https://github.com/apache/doris/pull/24698 -- https://github.com/apache/doris/pull/24778 -- https://github.com/apache/doris/pull/24782 -- https://github.com/apache/doris/pull/24800 -- https://github.com/apache/doris/pull/24808 -- https://github.com/apache/doris/pull/24636 -- https://github.com/apache/doris/pull/24981 -- https://github.com/apache/doris/pull/24949 - -## 致谢 - -感谢所有在 2.0.2 版本中参与功能开发与优化以及问题修复的所有贡献者,他们分别是: - -[@adonis0147](https://github.com/adonis0147) [@airborne12](https://github.com/airborne12) [@amorynan](https://github.com/amorynan) [@AshinGau](https://github.com/AshinGau) [@BePPPower](https://github.com/BePPPower) [@BiteTheDDDDt](https://github.com/BiteTheDDDDt) [@bobhan1](https://github.com/bobhan1) [@ByteYue](https://github.com/ByteYue) [@caiconghui](https://github.com/caiconghui) [@CalvinKirs](https://github.com/CalvinKirs) [@cambyzju](https://github.com/cambyzju) [@ChengDaqi2023](https://github.com/ChengDaqi2023) [@ChinaYiGuan](https://github.com/ChinaYiGuan) [@CodeCooker17](https://github.com/CodeCooker17) [@csun5285](https://github.com/csun5285) [@dataroaring](https://github.com/dataroaring) [@deadlinefen](https://github.com/deadlinefen) [@DongLiang-0](https://github.com/DongLiang-0) [@Doris-Extras](https://github.com/Doris-Extras) [@dutyu](https://github.com/dutyu) [@eldenmoon](https://github.com/eldenmoon) [@englefly](https://github.com/englefly) [@freemandealer](https://github.com/freemandealer) [@Gabriel39](https://github.com/Gabriel39) [@gnehil](https://github.com/gnehil) [@GoGoWen](https://github.com/GoGoWen) [@gohalo](https://github.com/gohalo) [@HappenLee](https://github.com/HappenLee) [@hello-stephen](https://github.com/hello-stephen) [@HHoflittlefish777](https://github.com/HHoflittlefish777) [@hubgeter](https://github.com/hubgeter) [@hust-hhb](https://github.com/hust-hhb) [@ixzc](https://github.com/ixzc) [@JackDrogon](https://github.com/JackDrogon) [@jacktengg](https://github.com/jacktengg) [@jackwener](https://github.com/jackwener) [@Jibing-Li](https://github.com/Jibing-Li) [@JNSimba](https://github.com/JNSimba) [@kaijchen](https://github.com/kaijchen) [@kaka11chen](https://github.com/kaka11chen) [@Kikyou1997](https://github.com/Kikyou1997) [@Lchangliang](https://github.com/Lchangliang) [@LemonLiTree](https://github.com/LemonLiTree) [@liaoxin01](https://github.com/liaoxin01) [@LiBinfeng-01](https://github.com/LiBinfeng-01) [@liugddx](https://github.com/liugddx) [@luwei16](https://github.com/luwei16) [@mongo360](https://github.com/mongo360) [@morningman](https://github.com/morningman) [@morrySnow](https://github.com/morrySnow) @mrhhsg @Mryange @mymeiyi @neuyilan @pingchunzhang @platoneko @qidaye @realize096 @RYH61 @shuke987 @sohardforaname @starocean999 @SWJTU-ZhangLei @TangSiyang2001 @Tech-Circle-48 @w41ter @wangbo @wsjz @wuwenchi @wyx123654 @xiaokang @XieJiann @xinyiZzz @XuJianxu @xutaoustc @xy720 @xyfsjq @xzj7019 @yiguolei @yujun777 @Yukang-Lian @Yulei-Yang @zclllyybb @zddr @zhangguoqiang666 @zhangstar333 @ZhangYu0123 @zhannngchen @zxealous @zy-kkk @zzzxl1993 @zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.3.md deleted file mode 100644 index 31952cee3ec82..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.3.md +++ /dev/null @@ -1,276 +0,0 @@ ---- -{ - "title": "Release 2.0.3", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.3 版本已于 2023 年 12 月 14 日正式发布,该版本对复杂数据类型、统计信息收集、倒排索引、数据湖分析、分布式副本管理等多个功能进行了优化,有 104 位贡献者为 Apache Doris 2.0.3 版本提交了超过 1000 个功能优化项以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**GitHub 下载**:https://github.com/apache/doris/releases - -**官网下载页**:https://doris.apache.org/download/ - - -## 新增特性 - -### 自动统计信息收集 - -统计信息是 CBO 优化器进行代价估算时的依赖,通过收集统计信息有助于优化器了解数据分布特性、估算每个执行计划的成本并选择更优的执行计划,以此大幅提升查询效率。从 2.0.3 版本开始,Apache Doris 开始支持自动统计信息收集,默认为开启状态。 - -在每次导入事务提交后,Apache Doris 将记录导入事务更新的表信息并估算表统计信息的健康度,对于健康度低于配置参数的表会认为统计信息已过时并自动触发表的统计信息收集作业。同时为了降低统计信息作业的资源开销,Apache Doris 会自动采取采样的方式收集统计信息,用户也可以调整参数来采样更多行以获得更准确的数据分布信息。 - -更多信息请参考:[Statistics](../query/nereids/statistics.md) - - -### 数据湖框架支持复杂数据类型 - -- Java UDF、JDBC catalog、Hudi MOR 表等功能支持复杂数据类型 - - https://github.com/apache/doris/pull/24810 - - https://github.com/apache/doris/pull/26236 - -- Paimon catalog 支持复杂数据类型 - - https://github.com/apache/doris/pull/25364 - -- Paimon catalog 支持 Paimon 0.5 版本 - - https://github.com/apache/doris/pull/24985 - - -### 增加更多内置函数 - -- 新优化器支持 BitmapAgg 函数 - - https://github.com/apache/doris/pull/25508 - -- 支持 SHA 系列摘要函数 - - https://github.com/apache/doris/pull/24342 - -- 聚合函数 min_by 和 max_by 支持 bitmap 数据类型 - - https://github.com/apache/doris/pull/25430 - -- 增加 milliseconds/microseconds_add/sub/diff 函数 - - https://github.com/apache/doris/pull/24114 - -- 增加 json_insert, json_replace, json_set JSON 函数 - - https://github.com/apache/doris/pull/24384 - - -## 改进优化 - -### 性能优化 - -- 在过滤率高的倒排索引 match where 条件和过滤率低的普通 where 条件组合时,大幅降低索引列的 IO -- 优化经过 where 条件过滤后随机读数据的效率 -- 优化在 JSON 数据类型上使用老的 get_json_xx 函数的性能,提升 2-4 倍 -- 支持配置降低读数据线程的优先级,保证写入的 CPU 资源和实时性 -- 增加返回 largeint 的 uuid-numeric 函数,性能比返回 string 的 uuid 函数快 20 倍 -- Case when 的性能提升 3 倍 -- 在存储引擎执行中裁剪不必要的谓词计算 -- 支持 count 算子下推到存储层 -- 优化支持 and or 表达式中包含 nullable 类型的计算性能 -- 支持更多场景下 limit 算子提前到 join 前执行的改写,以提升执行效率 -- 增加消除 inline view 中的无用的 order by 算子,以提升执行效率 -- 优化了部分情况下的基数估计和代价模型的准确性,以提升执行效率 -- 优化了 JDBC catalog 的谓词下推逻辑和大小写逻辑 -- 优化了 file cache 的第一次开启后的读取效率 -- 优化 Hive 表 SQL cache 策略,使用 HMS 中存储的分区更新时间作为 cache 是否失效的判断,提高 cache 命中率 -- 优化了 Merge-on-Write compaction 效率 -- 优化了外表查询的线程分配逻辑,降低内存使用 -- 优化 column reader 的内存使用 - - -### 分布式副本管理改进 - -优化跳过删除分区、colocate group、持续写时均衡失败、冷热分层表不能均衡等; - -### 安全性提升 - -- 审计日志插件的配置使用 token 代替明文密码以增强安全性 - - https://github.com/apache/doris/pull/26278 - -- log4j 配置安全性增强 - - https://github.com/apache/doris/pull/24861 - -- 日志中不显示用户敏感信息 - - https://github.com/apache/doris/pull/26912 - - -## Bugfix 和稳定性提升 - -### 复杂数据类型 - -- 修复了 map/struct 对定长 CHAR(n) 没有正确截断的问题 - - https://github.com/apache/doris/pull/25725 - -- 修复了 struct 嵌套 map/array 写入失败的问题 - - https://github.com/apache/doris/pull/26973 - -- 修复了 count distinct 不支持 array/map/struct 的问题 - - https://github.com/apache/doris/pull/25483 - -- 解决 query 中出现 delete 复杂类型之后,升级过程中出现 BE crash 的问题 - - https://github.com/apache/doris/pull/26006 - -- 修复了 jsonb 在 where 条件中 BE crash 问题 - - https://github.com/apache/doris/pull/27325 - -- 修复了 outer join 中有 array 类型时 BE crash 的问题 - - https://github.com/apache/doris/pull/25669 - -- 修复 orc 格式 decimal 类型读取错误的问题 - - https://github.com/apache/doris/pull/26548 - - https://github.com/apache/doris/pull/25977 - - https://github.com/apache/doris/pull/26633 - -### 倒排索引 - -- 修复了关闭倒排索引查询时 OR NOT 组合 where 条件结果错误的问题 - - https://github.com/apache/doris/pull/26327 - -- 修复了空数组的倒排索引写入时 BE crash 的问题 - - https://github.com/apache/doris/pull/25984 - -- 修复输出为空的情况下 index compaction BE crash 的问题 - - https://github.com/apache/doris/pull/25486 - -- 修复新增列没有写入数据时,增加倒排索引 BE crash 的问题 - - https://github.com/apache/doris/pull/27276 - -- 修复 1.2 版本误建倒排索引后升级 2.0 等情况下倒排索引硬链缺失和泄露的问题 - - https://github.com/apache/doris/pull/26903 - -### 物化视图 -- 修复 group by 语句中包括重复表达式导致 BE crash 的问题 - - https://github.com/apache/doris/pull/27523 - -- 禁止视图创建时 group by 子句中使用 float/doubld 类型 - - https://github.com/apache/doris/pull/25823 - -- 增强支持了 select 查询命中物化视图的功能 - - https://github.com/apache/doris/pull/24691 - -- 修复当使用了表的 alias 时物化视图不能命中的问题 - - https://github.com/apache/doris/pull/25321 - -- 修复了创建物化视图中使用 percentile_approx 的问题 - - https://github.com/apache/doris/pull/26528 - -### 采样查询 - -- 修复 table sample 功能在 partition table 上无法正常工作的问题 - - https://github.com/apache/doris/pull/25912 - -- 修复 table sample 指定 tablet 无法工作的问题 - - https://github.com/apache/doris/pull/25378 - - -### 主键表 - -- 修复基于主键条件更新的空指针异常 - - https://github.com/apache/doris/pull/26881 - -- 修复部分列更新字段名大小写问题 - - https://github.com/apache/doris/pull/27223 - -- 修复 schema change 时 mow 会出现重复 key 的问题 - - https://github.com/apache/doris/pull/25705 - - -### 导入和 Compaction - -- 修复 routine load 一流多表时 unkown slot descriptor 错误 - - https://github.com/apache/doris/pull/25762 - -- 修复内存统计并发访问导致 BE crash 问题 - - https://github.com/apache/doris/pull/27101 - -- 修复重复取消导入导致 BE crash 的问题 - - https://github.com/apache/doris/pull/27111 - -- 修复 broker load 时 broker 连接报错问题 - - https://github.com/apache/doris/pull/26050 - -- 修复 compaction 和 scan 并发下 delete 谓词可能导致查询结果不对的问题 - - https://github.com/apache/doris/pull/24638 - -- 修复 compaction task 存在时打印大量 stacktrace 日志的问题 - - https://github.com/apache/doris/pull/25597 - - -### 数据湖兼容性 - -- 解决 iceberg 表中包含特殊字符导致查询失败的问题 - - https://github.com/apache/doris/pull/27108 - -- 修复 Hive metastore 不同版本的兼容性问题 - - https://github.com/apache/doris/pull/27327 - -- 修复读取 MaxCompute 分区表错误的问题 - - https://github.com/apache/doris/pull/24911 - -- 修复备份到对象存储失败的问题 - - https://github.com/apache/doris/pull/25496 - - https://github.com/apache/doris/pull/25803 - - -### JDBC 外表兼容性 - -- 修复 JDBC catalog 处理 Oracle 日期类型格式错误的问题 - - https://github.com/apache/doris/pull/25487 - -- 修复 JDBC catalog 读取 MySQL 0000-00-00 日期异常的问题 - - https://github.com/apache/doris/pull/26569 - -- 修复从 MariaDB 读取数据时间类型默认值为 current_timestamp 时空指针异常问题 - - https://github.com/apache/doris/pull/25016 - -- 修复 JDBC catalog 处理 bitmap 类型时 BE crash 的问题 - - https://github.com/apache/doris/pull/25034 - - https://github.com/apache/doris/pull/26933 - - -### SQL 规划和优化 - -- 修复了部分场景下分区裁剪错误的问题 - - https://github.com/apache/doris/pull/27047 - - https://github.com/apache/doris/pull/26873 - - https://github.com/apache/doris/pull/25769 - - https://github.com/apache/doris/pull/27636 - -- 修复了部分场景下子查询处理不正确的问题 - - https://github.com/apache/doris/pull/26034 - - https://github.com/apache/doris/pull/25492 - - https://github.com/apache/doris/pull/25955 - - https://github.com/apache/doris/pull/27177 - -- 修复了部分语义解析的错误 - - https://github.com/apache/doris/pull/24928 - - https://github.com/apache/doris/pull/25627 - -- 修复 right outer/anti join 时,有可能丢失数据的问题 - - https://github.com/apache/doris/pull/26529 - -- 修复了谓词被错误的下推穿过聚合算子的问题 - - https://github.com/apache/doris/pull/25525 - -- 修正了部分情况下返回的结果 header 不正确的问题 - - https://github.com/apache/doris/pull/25372 - -- 包含有 nullsafeEquals 表达式 (<=>) 作为连接条件时,可以正确对规划出 hash join - - https://github.com/apache/doris/pull/27127 - -- 修复了 set operation 算子中无法正确列裁剪的问题 - - https://github.com/apache/doris/pull/26884 - - -## 行为变更 - -- 复杂数据类型 array/map/struct 的输出格式改成跟输入格式以及 JSON 规范保持一致,跟之前版本的主要变化是日期和字符串用双引号括起来,array/map 内部的空值显示为 null 而不是 NULL。 - - https://github.com/apache/doris/pull/25946 - -- 默认情况下,当用户属性 `resource_tags.location` 没有设置时,只能使用 default 资源组的节点,而之前版本中可以访问任意节点。 - - https://github.com/apache/doris/pull/25331 - -- 支持 SHOW_VIEW 权限,拥有 SELECT 或 LOAD 权限的用户将不再能够执行 `SHOW CREATE VIEW` 语句,必须单独授予 SHOW_VIEW 权限。 - - https://github.com/apache/doris/pull/25370 - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.4.md deleted file mode 100644 index 67e1822696f1f..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.4.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -{ - "title": "Release 2.0.4", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.4 版本已于 2024 年 1 月 26 日正式发布,该版本在新优化器、倒排索引、数据湖等功能上有了进一步的完善与更新,使 Apache Doris 能够适配更广泛的场景。此外,该版本进行了若干的改进与优化,以提供更加稳定高效的性能体验。新版本已经上线,欢迎大家下载使用! - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - -## 行为变更 -- 提供了更精确的 Precision 和 Scale 推导,可满足金融场景计算的高要求 - - [https://github.com/apache/doris/pull/28034](https://github.com/apache/doris/pull/28034) -- Drop Policy 支持了 User 和 Role - - [https://github.com/apache/doris/pull/29488](https://github.com/apache/doris/pull/29488) - -## 新功能 -- 新优化器支持了 datev1, datetimev1 及 decimalv2 数据类型 -- 新优化器支持了 ODBC 外表 -- 倒排索引支持了 `lower_case` 和 `ignore_above` 选项 -- 倒排索引支持了 `match_regexp` 和 `match_phrase_prefix` 查询加速 -- 数据湖支持了 Paimon Native Reader -- 数据湖支持读取 LZO 压缩的 Parquet 文件 -- 审计日志支持 `insert into` - -## 改进和优化 -- 对数据均衡、迁移等存储管控进行了改进 -- 对数据冷却策略进行了改进,以节省本地硬盘存储空间 -- 对 ASCII 字符串 substr 进行了优化 -- 针对使用 date 函数查询时的分区裁剪进行了优化 -- 针对优化器自动统计信息收集的可观测性和性能进行了优化 - - -## 致谢 - -感谢 73 位开发者为 Apache Doris 2.0.4 版本做出了重要贡献 ,正是由于他们的努力,Apache Doris 在性能和稳定性方面取得了显著的进步。 - -airborne12、amorynan、AshinGau、BePPPower、bingquanzhao、BiteTheDDDDt、bobhan1、ByteYue、caiconghui、CalvinKirs、cambyzju、caoliang-web、catpineapple、csun5285、dataroaring、deardeng、dutyu、eldenmoon、englefly、feifeifeimoon、fornaix、Gabriel39、gnehil、HappenLee、hello-stephen、HHoflittlefish777、hubgeter、hust-hhb、ixzc、jacktengg、jackwener、Jibing-Li、kaka11chen、KassieZ、LemonLiTree、liaoxin01、LiBinfeng-01、lihuigang、liugddx、luwei16、morningman、morrySnow、mrhhsg、Mryange、nextdreamblue、Nitin-Kashyap、platoneko、py023、qidaye、shuke987、starocean999、SWJTU-ZhangLei、w41ter、wangbo、wsjz、wuwenchi、Xiaoccer、xiaokang、XieJiann、xingyingone、xinyiZzz、xuwei0912、xy720、xzj7019、yujun777、zclllyybb、zddr、zhangguoqiang666、zhangstar333、zhannngchen、zhiqiang-hhhh、zy-kkk、zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.5.md deleted file mode 100644 index 1d1e703d7198c..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.5.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -{ - "title": "Release 2.0.5", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.5](https://doris.apache.org/download/) 版本已于 2024 年 2 月 27 日正式与大家见面。这次更新带来一系列行为变更和功能更新,并进行了若干的改进与优化,旨在为用户提供更为稳定高效的数据查询与分析体验。新版本已经上线,欢迎大家下载体验! - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 行为变更 -- `select char(0) = '\0'` 返回 true,跟 MySQL 的行为保持一致 - - https://github.com/apache/doris/pull/30034 -- Export 导出数据支持空表 - - https://github.com/apache/doris/pull/30703 - -## 新功能 -- 利用过滤条件中的 `is null` 谓词,将 OUTER JOIN 转换为 ANTI JOIN -- 增加 `SHOW TABLETS BELONG` 语法用于获取 tablet 属于哪个 table -- InferPredicates 支持 `IN`,例如:`a = b & a in [1, 2] -> b in [1, 2]` -- 支持对物化视图收集统计信息 -- `SHOW PROCESSLIST` 支持输出连接对应的 FE -- Export 导出 CSV 文件支持通过 `with_bom` 参数控制是否带有 Windows BOM - -## 改进和优化 -- 在无统计信息时优化 Query Plan -- 基于 Rollup 的统计信息优化 Query Plan -- 用户停止 Auto Analyze 后尽快停止统计信息收集任务 -- 缓存统计信息收集异常,避免大约太多异常栈 -- 支持在 SQL 中自定使用某个物化视图 -- JDBC Catalog 谓词下推列名字符转义 -- 修复 MySQL Catalog 中 `to_date` 函数下推的问题 -- 优化 JDBC 客户端连接关闭的逻辑,在异常时正常取消查询 -- 优化 JDBC 连接池的参数 -- 通过 HMS API 获取 Hudi 外表的分区信息 -- 优化 Routine Load 的内存占用和错误信息 -- 如果 `max_backup_restore_job_num_per_db` 参数为 0,跳过所有备份恢复任务 - - -## 致谢 -最后,衷心感谢 59 位开发者为 Apache Doris 2.0.5 版本做出了重要贡献: - -airborne12, alexxing662, amorynan, AshinGau, BePPPower, bingquanzhao, BiteTheDDDDt, ByteYue, caiconghui, cambyzju, catpineapple, dataroaring, eldenmoon, Emor-nj, englefly, felixwluo, GoGoWen, HappenLee, hello-stephen, HHoflittlefish777, HowardQin, JackDrogon, jacktengg, jackwener, Jibing-Li, KassieZ, LemonLiTree, liaoxin01, liugddx, LuGuangming, morningman, morrySnow, mrhhsg, Mryange, mymeiyi, nextdreamblue, qidaye, ryanzryu, seawinde,starocean999, TangSiyang2001, vinlee19, w41ter, wangbo, wsjz, wuwenchi, xiaokang, XieJiann, xingyingone, xy720,xzj7019, yujun777, zclllyybb, zhangstar333, zhannngchen, zhiqiang-hhhh, zxealous, zy-kkk, zzzxl1993 - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.6.md deleted file mode 100644 index 656c440cc80c2..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.6.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -{ - "title": "Release 2.0.6", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.6](https://doris.apache.org/download/) 版本已于 2024 年 3 月 12 日正式与大家见面。本次版本中,有 51 位贡献者提交了约 114 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 行为变更 -- 无 - -## 新功能 -- 自动选择物化视图时支持匹配带别名的函数 -- 增加安全下线一个 tablet 副本的命令 -- 外表统计信息增加行数统计缓存 -- 统计信息收集支持 Rollup - -## 改进和优化 -- 使用 protobuf 稳定序列化减少 Tablet Schema 缓存内存占用 -- 提升 `show column stats` 的性能 -- 统计信息收集和优化器支持 Iceberg 和 Paimon 的行数估计 -- JDBC Catalog支持读取 SQL Server 的 Timestamp 类型 - - -## 致谢 -最后,衷心感谢 51 位开发者为 Apache Doris 2.0.6 版本做出了重要贡献: - -924060929, AshinGau, BePPPower, BiteTheDDDDt, CalvinKirs, cambyzju, deardeng, DongLiang-0, eldenmoon, englefly, feelshana, feiniaofeiafei, felixwluo, HappenLee, hust-hhb, iwanttobepowerful, ixzc, JackDrogon, Jibing-Li, KassieZ, larshelge, liaoxin01, LiBinfeng-01, liutang123, luennng, morningman, morrySnow, mrhhsg, qidaye, starocean999, TangSiyang2001, wangbo, wsjz, wuwenchi, xiaokang, XieJiann, xuwei0912, xy720, xzj7019, yiguolei, yujun777, Yukang-Lian, Yulei-Yang, zclllyybb, zddr, zhangstar333, zhannngchen, zhiqiang-hhhh, zy-kkk, zzzxl1993 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.7.md deleted file mode 100644 index 75352d2d10cdb..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.7.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -{ - "title": "Release 2.0.7", - "language": "zh-CN" -} ---- - -## 1 行为变更 - -- `round` 函数行为跟 MySQL 保持一致,例如 `round(5/2)` 返回 3 而不是 2. - - - https://github.com/apache/doris/pull/31583 - - -- 时间精度转换行为跟 MySQL 保持一致,例如 '2023-10-12 14:31:49.666' 四舍五人到 '2023-10-12 14:31:50' . - - - https://github.com/apache/doris/pull/27965 - -## 2 新功能 - -- 在更多的情况下可以将 OUTER JOIN 转换成 ANTI JOIN 来加速查询 - - - https://github.com/apache/doris/pull/31854 - -- 支持通过 Nginx, HAProxy 等代理连接的 IP 透传 - - - https://github.com/apache/doris/pull/32338 - - -## 3 改进和优化 - -- 通过在 `information_schema` 中增加 DEFAULT_ENCRYPTION 列、增加 `processlist` 表,提升 BI 工具的兼容性 - -- 创建 JDBC Catalog 时默认自动检测连通性 - -- 增强自动恢复提升 Kafka Routine Load 的稳定性 - -- 倒排索引中文分词对英文默认做小写转换 - -- Repeat 函数的重复次数超过限制时报错 - -- 自动跳过 Hive 外表中的隐藏文件和目录 - -- 在某些极端情况下减少 File Meta Cache 避免 OOM - -- 减少 Broker Load 的 jvm 内存占用 - -- 加速带排序的 INSERT INTO SELECT 比如 `INSERT INTO t1 SELECT * FROM t2 ORDER BY k` - - -## 4 致谢 - -924060929,airborne12,amorynan,ByteYue,dataroaring,deardeng,feiniaofeiafei,felixwluo,freemandealer,gavinchou,hello-stephen,HHoflittlefish777,jacktengg,jackwener,jeffreys-cat,Jibing-Li,KassieZ,LiBinfeng-01,luwei16,morningman,mrhhsg,Mryange,nextdreamblue,platoneko,qidaye,rohitrs1983,seawinde,shuke987,starocean999,SWJTU-ZhangLei,w41ter,wsjz,wuwenchi,xiaokang,XieJiann,XuJianxu,yujun777,Yulei-Yang,zhangstar333,zhiqiang-hhhh,zy-kkk,zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.8.md deleted file mode 100644 index 84d8797e4e9a4..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.8.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -{ - "title": "Release 2.0.8", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.8](https://doris.apache.org/download/) 版本已于 2024 年 04 月 09 日正式与大家见面。本次版本中,有 35 位贡献者提交了约 65 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - -## 1 行为变更 - -由于 `ADMIN SHOW xx` 语句在 MySQL 8.x jdbc driver 不能执行,所以将名字改成 `SHOW xx` - -- https://github.com/apache/doris/pull/29492 - -```sql -ADMIN SHOW CONFIG -> SHOW CONFIG -ADMIN SHOW REPLICA -> SHOW REPLICA -ADMIN DIAGNOSE TABLET -> SHOW TABLET DIAGNOSIS -ADMIN SHOW TABLET -> SHOW TABLET -``` - - -## 2 新功能 - -N/A - - - -## 3 改进和优化 - -- 新优化器支持 TopN 优化中使用倒排索引 - -- 限制统计信息 STRING 长度为 1024 以控制 BE 内存消耗 - -- 修复未创建 JDBC Client 时意外关闭的情况 - -- 接受所有 Iceberg Database,不再做额外的名字检查 - -- 异步更新外表行数统计,避免同步更新带来的 Cache miss 和 Plan 不稳定 - -- 简化 Hive 外表的 isSplitable 方法,避免过多的 Hadoop metric - - - -## 4 致谢 - -924060929, AcKing-Sam, amorynan, AshinGau, BePPPower, BiteTheDDDDt, ByteYue, cambyzju, dongsilun, eldenmoon, feiniaofeiafei, gnehil, Jibing-Li, liaoxin01, luwei16, morningman, morrySnow, mrhhsg, Mryange, nextdreamblue, platoneko, starocean999, SWJTU-ZhangLei, wuwenchi, xiaokang, xinyiZzz, Yukang-Lian, Yulei-Yang, zclllyybb, zddr, zhangstar333, zhiqiang-hhhh, ziyanTOP, zy-kkk, zzzxl1993 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.9.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.9.md deleted file mode 100644 index 153b1c6d3218e..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.0/release-2.0.9.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -{ - "title": "Release 2.0.9", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.9](https://doris.apache.org/download/) 版本已正式发布。在本次版本中,有 34 位贡献者提交了约 68 个功能改进以及问题修复,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 1 行为变更 - -无 - -## 2 新功能 - -- 物化视图的 Key 和 Value 列都允许出现谓词 - -- 物化视图支持 `bitmap_union(bitmap_from_array())` - -- 增加一个 FE 配置强制集群中所有表的 Replicate Allocation - -- 新优化器支持日期字面量指定时区 - -- `MATCH_PHRASE` 全文检索支持 slop 参数指定搜索词之间的距离 - -## 3 改进和优化 - -- `first_value` / `last_value` 函数增加第二个参数指定忽略 NULL 值 - -- `LEAD`/ `LAG` 函数的 Offset 参数可以为 0 - -- 调整物化视图匹配的顺序优先利用索引和预聚合加速查询 - -- 优化 TopN 查询 `ORDER BY k LIMIT n` 的性能 - -- 优化 Meta Cache 的性能 - -- 为` delete_bitmap get_agg` 函数增加 Profile 便于性能分析 - -- 增加 FE 参数设置 Autobucket 的最大 Bucket 数 - -## 4 致谢 - -adonis0147, airborne12, amorynan, AshinGau, BePPPower, BiteTheDDDDt, CalvinKirs, cambyzju, csun5285, eldenmoon, englefly, feiniaofeiafei, HHoflittlefish777, htyoung, hust-hhb, jackwener, Jibing-Li, kaijchen, kylinmac, liaoxin01, luwei16, morningman, mrhhsg, qidaye, starocean999, SWJTU-ZhangLei, w41ter, xiaokang, xiedeyantu, xy720, zclllyybb, zhangstar333, zhannngchen, zy-kkk, zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.0.md deleted file mode 100644 index 3c82454c07bf6..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.0.md +++ /dev/null @@ -1,870 +0,0 @@ ---- -{ - "title": "Release 2.1.0", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 3 月 8 日我们引来了 Apache Doris 2.1.0 版本的正式发布,欢迎大家下载使用。 - -- 在查询性能方面,2.1 系列版本我们着重提升了开箱盲测性能,力争不做调优的情况下取得较好的性能表现,包含了对复杂 SQL 查询性能的进一步提升,在 TPC-DS 1TB 测试数据集上获得超过 100% 的性能提升,查询性能居于业界领先地位。 - -- 在数据湖分析场景,我们进行了大量性能方面的改进、相对于 Trino 和 Spark 分别有 4-6 倍的性能提升,并引入了多 SQL 方言兼容、便于用户可以从原有系统无缝切换至 Apache Doris。在面向数据科学以及其他形式的大规模数据读取场景,我们引入了基于 Arrow Flight 的高速读取接口,数据传输效率提升 100 倍。 - -- 在半结构化数据分析场景,我们引入了全新的 Variant 和 IP 数据类型,完善了一系列分析函数,面向复杂半结构化数据的存储和分析处理更加得心应手。 - -- 在 2.1.0 版本中我们也引入了基于多表的异步物化视图以提升查询性能,支持透明改写加速、自动刷新、外表到内表的物化视图以及物化视图直查,基于这一能力物化视图也可用于数据仓库分层建模、作业调度和数据加工。 - -- 在存储方面,我们引入了自增列、自动分区、MemTable 前移以及服务端攒批的能力,使得大规模数据实时写入的效率更高。 - -- 在负载管理方面,我们进一步完善了 Workload Group 资源组的隔离能力,并增加了运行时查看 SQL 资源用量的能力,进一步提升了多负载场景下的稳定性。 - -在 2.1.0 版本的研发过程中,**有 237 位贡献者为 Apache Doris 带来了接近 6000 个 Commits。** 同时 2.1.0 版本也同样经过了近百家社区用户的大规模打磨,在测试过程中向我们反馈了许多有价值的优化项,在此向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢。后续我们将会持续敏捷发版来响应所有用户对功能和稳定性的更高追求,欢迎大家在使用过程中给予我们更多反馈。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - -## 复杂查询性能提升 100%,TPC-DS 业界领先 - - 在 2.1 系列版本中,我们着重提升了开箱盲测性能,力争不做调优的情况下取得较好的性能表现,包含了对复杂 SQL 查询性能的进一步提升。在此我们以 TPC-DS 1TB 作为性能测试对比的基准,重点对比最新 2.1.0 版本与 2.0.5 版本的性能提升。集群规模均为 1FE、3BE,其中 BE 节点的服务器配置为 48C 192G。从以下测试结果中可以看到: - -- 2.1.0 版本的总查询耗时为 245.7 秒,相较于 2.0.5 版本的 489.6 秒,**性能提升达到 100 %;** - -- 在全部 99 个 SQL 中,有近三分之一的 SQL 查询性能提升达到 2 倍以上,超过 80 个 SQL 都获得显著性能提升; - -- 不论是基础的过滤、排序、聚合,或者复杂的多表关联查询、子查询以及窗口函数计算,2.1.0 版本都有更为明显的性能优势; - -- 2.0.5 版本或 2.1.0 版本,都可以完整执行 TPC-DS 的 99 个查询。 - -![复杂查询性能提升 100%,TPC-DS 业界领先](/images/2.1-Doris-TPC-DS-best-performance.png) - - -以上详细测试结果我们将在后续提交到 Apache Doris 官网文档中,也欢迎所有用户在完成最新版本的部署后进行测试复现。 - -与此同时,我们也对业内多个 OLAP 系统在同等硬件资源和多个测试数据规模下进行了性能测试,不论大宽表场景或多表关联场景,Apache Doris 都具备着极为明显的性能优势。毫无疑问,**Apache Doris 已在业界同类产品中性能居于最领先地位**! - - -### 优化器更智能 - -在 Apache Doris 2.0 版本中我们引入了全新查询优化器,在绝大多数场景无需任何调优即可实现极致的查询性能。而在最新发布的 Apache Doris 2.1 版本中,查询优化器在整体代际更新的基础上,进行了优化规则的扩展和枚举框架的完善,面向复杂分析场景更加得心应手: - -- **优化器基础设施完善**:在多种优化器基础设施方面进行了补充和增强,例如对统计信息推导和代价模型方面的持续改进,使之能够收集更多的特征信息为复杂优化提供基础; - -- **优化规则持续扩展**:得益于丰富的实际场景反馈,新版本中查询优化器增强了包括算子下压在内的许多经典规则,结合上述基础设施扩充而引入的新优化规则,使得新版本的查询优化器能覆盖更广泛的使用场景; - -- **枚举框架进一步优化**:在查询优化器 Cascades 和 DPhyper 两大融合框架的基础上,继续深耕框架能力、优化框架性能,确立了更为清晰的枚举策略,兼顾计划质量和枚举效率,为高性能引擎提供坚实基础。例如将 Cascades 默认枚举表上限从 5 提升到了 8、有效扩大了高质量计划的覆盖范围,同时进一步优化 DPhyper 枚举效率、使之能够枚举出更优计划。 - -### 无统计信息优化 - -针对海量数据规模以及数据湖分析场景下,针对统计信息收集难度高、收集时间久的问题,在 2.1 版本中查询优化器利用多种启发式技术,大大提升了**无统计信息场景下**的计划质量,使得在没有统计信息的场景下也可获得较好的查询计划。同时扩展了 Runtime Filter 的下压场景和自适应能力,在执行过程中能够自适应地动态调整部分表达式谓词,使得 Apache Doris 在不依赖统计信息的情况下也具有优异的性能表现。 - -### Parallel Adaptive Scan 并行自适应扫描 - -在复杂数据分析场景下,每次查询都需要扫描大量的数据进行计算,因此 IO 瓶颈很大程度上决定了查询性能的上限。为了提升 Scan IO 的性能,Apache Doris 采取了并行读取的技术,每个扫描线程读取 1 个或者多个 Tablet(即用户建表时指定的 Bucket),但如若用户建表时指定的 Bucket 数目不合理、那么磁盘扫描线程就无法并行工作,直接影响查询性能。为此,在 2.1 版本中我们引入了 Tablet 内的并行扫描技术,可以将多个 Tablet 进行池化,在磁盘扫描端可以根据行数来拆分多个线程并行扫描(最多支持 48 个线程),从而有效避免分桶数不合理导致的查询性能问题。 - -![Parallel Adaptive Scan 并行自适应扫描](/images/2.1-doris-parallel-adaptive-scan.png) - -因此在 2.1 版本以后,我们建议用户**在建表时设置的分桶数=整个集群磁盘的数量**,在 IO 层面能将整个集群所有的 IO 资源全部利用起来。 - -:::tip -当前 2.1.0 版本的 Parallel Adaptive Scan 只能针对 Unqiue Key 模型的 Merge-on-Write 表以及 Duplicate Key 模型生效,预计在 2.1.1 版本中会增加对 Unique Key 模型 Merge-on-Read 表和 Aggregate Key 模型的支持。 -::: - -### Local Shuffle - -在部分场景下,数据分布不均会导致多个 Instance 的查询执行出现长尾。而为了解决单个 BE 节点上多个 Instance 之间的数据倾斜问题,在 Apache Doris 2.1 版本中我们引入了 Local Shuffle 技术,尽可能将数据打散从而加速查询。例如在某一典型的聚合查询中,数据在经过聚合之前将会通过一个 Local Shuffle 节点被均匀分布在不同的 Pipeline Task 中,如下图所示: - -![Local Shuffle](/images/2.1-doris-local-shuffle.png) - -在具备了 Parallel Adaptive Scan 和 Local Shuffle 能力之后,Apache Doris 能够规避由于分桶数不合理、数据分布不均带来的性能问题。 - -在此我们分别使用 Clickbench(大宽表场景)和 TPC-H(多表 Join 的复杂分析场景)数据集模拟建表分桶不合理的情况,在 Clickbench 数据集中我们建表 Bucket 数量分别设为 1 和 16,在 TPC-H 100G 数据集下我们建表时每个 Partition 的 Bucket 数目分别设为 1 和 16。在开启 Parallel Adaptive Scan 和 Local Shuffle 之后,整体查询性能表现比较平稳,即使不合理的数据分布也能取得优异的性能表现。 - -![Local Shuffle Clickbench and TPCH-100](/images/2.1-doris-clickbench-tpch.png) - -:::note 备注 -参考文档:[Pipeline X 执行引擎](../../query-acceleration/pipeline-execution-engine) -::: - -## ARM 架构深度适配,性能提升 230% - -在 Apache Doris 2.1 版本中我们针对 ARM 架构进行了深度的适配和指令集优化,可以在 ARM 架构上充分发挥 Apache Doris 的性能优势。相较于 2.0 版本,2.1 版本在 ClickBench、SSB 100G、TPC-H 100G 以及 TPC-DS 1TB 等多个测试数据集中取得了超过 100% 的性能提升。在此我们以大宽表场景的 ClickBench 以及多表关联场景的 TPC-H 为例,集群配置均为 1FE 3BE、BE 节点的服务器配置为 16C 64G 的 ARM 服务器,测试结论如下: - -- 在大宽表场景中,ClickBench 测试数据集 43 个 SQL 的总查询耗时从 102.36 秒降低至 30.73 秒,性能提升超过 230%; - -- 在多表关联场景中,TPC-H 22 个 SQL 的总查询耗时从 174.8 秒降低至 90.4 秒,性能提升 93%; - -## 数据湖分析 - -### 性能提升 - -在 2.1 版本中,我们对数据湖分析方面做了大量改进,包括对 HDFS 和对象存储的 IO 优化、Parquet/ORC 文件格式的读取反序列优化、浮点类型解压优化、谓词下推执行优化、缓存策略以及扫描任务调度策略的优化,以及针对不同数据源的统计信息准确性的提升及更精准的优化器代价模型。基于以上优化,Apache Doris 在数据湖分析场景下的性能得到大幅度提升。 - -![Doris 数据湖分析 - 性能提升](/images/2.1-doris-TPC-DS.png) - -在此我们以 TPC-DS 1TB 场景下进行测试,Apache Doris 2.1 版本和 Trino 435 版本的性能测试结果如下: - -- 在无缓存情况下,Apache Doris 的总体运行耗时间为 717s、Trino 为 1296s,查询耗时降低了 45%,全部 99 条 SQL 中有 80% 比 Trino 更快; - -- 在开启文件缓存功能并命中的情况下,Apache Doris 的总体性能可以进一步提升 2.2 倍以上,**较 Trino 有 4 倍以上的性能提升,全部 99 条 SQL 性能均优于 Trino**。 - -与此同时也在 TPC-DS 10TB 场景下对 Apache Doris 2.1 版本与 Spark 3.5.0 以及 3.3.1 版本进行了性能测试,查询性能分别提升 4.2 倍和 6.1 倍。 - - -### 多 SQL 方言兼容 - -当用户从原有 OLAP 系统(如 Clickhouse、Trino、Presto、Hive 等)迁移至 Apache Doris 时,一方面因为 SQL 方言存在差异,需要同步修改大量的业务查询逻辑进行适配,无法进行平滑迁移。另一方面,当使用 Apache Doris 作为统一数据分析网关时,需要对接原先的 Hive、Spark 等系统、以满足不同数据源的查询需求。 - -因此在 Apache Doris 2.1 版本中我们引入了多 SQL 方言转换功能,用户可以直接使用原先系统的 SQL 方言在 Doris 中进行数据查询而无需修改业务逻辑。在部署好 SQL 转换服务后,用户只需通过会话变量 `sql_dialect`设置当前会话的 SQL 方言类型,即可使用对应的 SQL 方言进行查询。 - -该功能目前为实验性质功能,当前已经支持 ClickHouse、Presto、Trino、Hive、Spark。在此我们以 Trino 为例,部署完 SQL 转换服务后,在会话变量中设置 `set sql_dialect = trino` ,即可直接采取 Trino SQL 语法执行查询。在某些社区用户的实际线上业务 SQL 兼容性测试中,在全部 3w 多条查询语句中与 Trino SQL 兼容度高达 99% 以上。也欢迎所有用户在使用过程中向我们反馈不兼容的 Case,帮助 Apache Doris 更加完善。 - -:::note -- [演示 Demo](https://www.bilibili.com/video/BV1cS421A7kA/?spm_id_from=333.999.0.0) - -- 参考文档:[SQL 方言兼容](../../lakehouse/sql-dialect.md) - -::: - -### 高速数据读取,数据传输效率提升 100 倍 - -如今许多大数据系统都采取列式内存数据格式,以 MySQL/JDBC/ODBC 作为与数据库系统交互的主流协议与标准。在数据输出至外部系统的过程中,需要将数据从系统特定的列存格式序列化为 MySQL/JDBC/ODBC 协议的行存格式,再反序列化回客户端的列存格式,这会使数据传输速度大幅降低,在面向数据科学或其他形式的大规模数据读写时,数据传输的效率缺陷愈发明显。 - -作为用于大规模数据处理的列式内存格式,Apache Arrow 提供了高效的数据结构、允许不同系统间更快共享数据。如果源数据库和目标客户端都支持 Apache Arrow 作为列式内存格式,使用 Arrow Flight SQL 协议传输将无需序列化和反序列化数据,消除数据传输中的开销。同时 Arrow Flight 还可以利用多节点和多核架构,通过完全并行化优化吞吐能力。 - -![高速数据读取,数据传输效率提升 100 倍](/images/2.1-doris-arrow-flight.png) - -在过去如果需要采取 Python 读取 Apache Doris 中的数据,需要将 Apache Doris 中列存的 Block 序列化为 MySQL 协议的行存 Bytes,然后在 Python 客户端再反序列化到 Pandas 中,传输过程带来的性能损耗非常大。 - -在 Apache Doris 2.1 版本中,我们提供了基于 Arrow Flight 的 HTTP Data API 高吞吐数据读写接口。相比于过去的 MySQL 协议,使用 Arrow Flight SQL 后,我们在 Apache Doris 中先将列存的 Block 转为同样列存的 Arrow RecordBatch,这一步转换效率非常高、且传输过程中无需再次序列化和反序列化,而后在 Python 客户端再将 Arrow RecordBatch 转到同样列存的 Pandas DataFrame 中,这一步转换同样非常快。通过 Arrow Flight 提供的 Python 客户端 Pandas/Numpy 等数据科学工具,可以快速从 Apache Doris 中读取数据并在本地进行分析。 - -基于此,Apache Doris 可以与整个 AI 和数据科学生态进行良好的整合,这也是未来的重要发展方向。 - -```C++ -conn = flight_sql.connect(uri="grpc://{FE_HOST}:{fe.conf:arrow_flight_sql_port}", db_kwargs={ - adbc_driver_manager.DatabaseOptions.USERNAME.value: "user", - adbc_driver_manager.DatabaseOptions.PASSWORD.value: "pass", - }) -cursor = conn.cursor() -cursor.execute("select * from arrow_flight_sql_test order by k0;") -print(cursor.fetchallarrow().to_pandas()) -``` - -针对常见的数据类型,我们通过不同的 MySQL 客户端进行了对比测试,基于 Arrow Flight SQL 数据传输性能相较于 MySQL 协议提升了近百倍。 - - -![Arrow Flight SQL](/images/2.1-doris-arrow-flight-sql.png) - - -:::note -演示 Demo:https://www.bilibili.com/video/BV1mj421Z7b7/?spm_id_from=333.999.0.0 -::: - -### 其他 - -- Paimon Catalog:Paimon 版本升级至 0.6.0,优化了 Read Optimized 表的读取,在 Paimon 数据充分合并的场景下,可以有 10 倍的性能提升; - -- Iceberg Catalog:Iceberg 版本升级至 1.4.3,同时解决了 AWS S3 认证的若干兼容性问题; - -- Hudi Catalog:Hudi 版本升级至 0.14.1,同时解决了 Hudi Flink Catalog 的若干兼容性问题。 - - -## 多表物化视图 - -作为一种典型的“空间换时间”策略,物化视图通过预先计算和存储 SQL 查询结果,当执行相同查询时可以直接从物化视图表中获取结果,在大幅提升查询性能的同时、更是减少重复计算带来的系统资源消耗。 - -在过去版本中 Apache Doris 提供了强一致的单表物化视图、保证基表和物化视图表的原子性,并支持了查询语句在物化视图上的智能路由。 - -**在 Apache Doris 2.1 版本中,我们引入了全新的异步物化视图,可以基于多表来构建。** 异步物化视图可以全量或者分区增量构建,也可以手动或者周期性地构建刷新数据。在多表关联查询且表数据量较大的场景下,优化器会根据代价模型进行透明改写、并自动寻找最优物化视图来响应查询,**以大幅提升查询性能**。与此同时,也提供了从外表到内表的物化视图以及直查物化视图的能力,基于此特性,**异步物化视图也可用于数据仓库分层建模、作业调度和数据加工**。异步物化视图使用方式如下: - -**表定义:** - -```SQL -use tpch; - -CREATE TABLE IF NOT EXISTS orders ( - o_orderkey integer not null, - o_custkey integer not null, - o_orderstatus char(1) not null, - o_totalprice decimalv3(15,2) not null, - o_orderdate date not null, - o_orderpriority char(15) not null, - o_clerk char(15) not null, - o_shippriority integer not null, - o_comment varchar(79) not null - ) - DUPLICATE KEY(o_orderkey, o_custkey) - PARTITION BY RANGE(o_orderdate)( - FROM ('2023-10-17') TO ('2023-10-20') INTERVAL 1 DAY) - DISTRIBUTED BY HASH(o_orderkey) BUCKETS 3 - PROPERTIES ("replication_num" = "1"); - -insert into orders values - (1, 1, 'ok', 99.5, '2023-10-17', 'a', 'b', 1, 'yy'), - (2, 2, 'ok', 109.2, '2023-10-18', 'c','d',2, 'mm'), - (3, 3, 'ok', 99.5, '2023-10-19', 'a', 'b', 1, 'yy'); - -CREATE TABLE IF NOT EXISTS lineitem ( - l_orderkey integer not null, - l_partkey integer not null, - l_suppkey integer not null, - l_linenumber integer not null, - l_quantity decimalv3(15,2) not null, - l_extendedprice decimalv3(15,2) not null, - l_discount decimalv3(15,2) not null, - l_tax decimalv3(15,2) not null, - l_returnflag char(1) not null, - l_linestatus char(1) not null, - l_shipdate date not null, - l_commitdate date not null, - l_receiptdate date not null, - l_shipinstruct char(25) not null, - l_shipmode char(10) not null, - l_comment varchar(44) not null - ) - DUPLICATE KEY(l_orderkey, l_partkey, l_suppkey, l_linenumber) - PARTITION BY RANGE(l_shipdate) - (FROM ('2023-10-17') TO ('2023-10-20') INTERVAL 1 DAY) - DISTRIBUTED BY HASH(l_orderkey) BUCKETS 3 - PROPERTIES ("replication_num" = "1"); - -insert into lineitem values - (1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-17', '2023-10-17', '2023-10-17', 'a', 'b', 'yyyyyyyyy'), - (2, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-18', '2023-10-18', '2023-10-18', 'a', 'b', 'yyyyyyyyy'), - (3, 2, 3, 6, 7.5, 8.5, 9.5, 10.5, 'k', 'o', '2023-10-19', '2023-10-19', '2023-10-19', 'c', 'd', 'xxxxxxxxx'); - - - CREATE TABLE IF NOT EXISTS partsupp ( - ps_partkey INTEGER NOT NULL, - ps_suppkey INTEGER NOT NULL, - ps_availqty INTEGER NOT NULL, - ps_supplycost DECIMALV3(15,2) NOT NULL, - ps_comment VARCHAR(199) NOT NULL -) -DUPLICATE KEY(ps_partkey, ps_suppkey) -DISTRIBUTED BY HASH(ps_partkey) BUCKETS 3 -PROPERTIES ( - "replication_num" = "1" -) -``` - -**创建物化视图:** - -```SQL -CREATE MATERIALIZED VIEW mv1 - BUILD DEFERRED REFRESH AUTO ON MANUAL - partition by(l_shipdate) - DISTRIBUTED BY RANDOM BUCKETS 2 - PROPERTIES ('replication_num' = '1') - AS - select l_shipdate, o_orderdate, l_partkey, - l_suppkey, sum(o_totalprice) as sum_total - from lineitem - left join orders on lineitem.l_orderkey = orders.o_orderkey - and l_shipdate = o_orderdate - group by - l_shipdate, - o_orderdate, - l_partkey, - l_suppkey; -``` - -**目前异步物化视图已经具备以下功能:** - -- **透明改写加速:**支持常见算子的透明改写,如 Select、Where、Join、Group by、Aggregation 等,可以直接通过建立物化视图,对现有的查询进行加速。例如在 BI 报表场景,某些报表查询延时比较高,就可以通过建立合适的物化视图进行加速。 - -- **自动刷新:**物化视图支持不同刷新策略,如定时刷新和手动刷新,也支持不同的刷新粒度,如全量刷新、分区粒度的增量刷新等。 - -- **外表到内表的物化视图:**可以对存放在 Hive、Hudi、Iceberg 等数据湖系统上的数据建立物化视图,加速对数据湖的访问,也可以通过物化视图的方式将数据湖中的数据同步到 Apache Doris 内表中。 - -- **物化视图直查:**用户也可以将物化视图的构建看做 ETL 的过程,把物化视图看做是 ETL 加工后的结果数据,由于物化视图本身也是一个表,所以用户可以直接查询物化视图。 - -:::note -- 演示 Demo: https://www.bilibili.com/video/BV1s2421T71z/?spm_id_from=333.999.0.0 -- 参考文档:[异步物化视图](../../query-acceleration/materialized-view/async-materialized-view/overview) -::: - -## 存储能力增强 - -### 自增列 AUTO_INCREMENT - -自增列 AUTO_INCREMENT 是 OLTP 数据库中常见的一项功能,提供了一种方便高效的方式来为新插入的数据行自动分配唯一标识符。由于自增列的可用值分配涉及到全局事务,因此在分布式 OLAP 数据库中并不常见。在 Apache Doris 2.1 版本中,我们通过创新性的自增序列预分配策略,提供了高效的自增列实现。基于自增列的唯一性保证,用户可以利用自增列实现高效的字典编码和查询分页。 - -**字典编码:** 在进行 PV/UV 统计或人群圈选等需要精确去重的查询时,可以使用自增列对 UserID 或订单 ID 等字符串值创建字典表,将用户数据批量或者实时写入字典表即可生成字典,根据各种维度的条件对对应的 Bitmap 进行聚合运算; - -```SQL -CREATE TABLE `demo`.`dictionary_tbl` ( - `user_id` varchar(50) NOT NULL, - `aid` BIGINT NOT NULL AUTO_INCREMENT -) ENGINE=OLAP -UNIQUE KEY(`user_id`) -DISTRIBUTED BY HASH(`user_id`) BUCKETS 32 -PROPERTIES ( -"replication_allocation" = "tag.location.default: 3", -"enable_unique_key_merge_on_write" = "true" -); -``` - -**查询分页**:在页面展示数据时,往往需要做分页展示。传统的分页通常使用 SQL 中的 `limit`, `offset` + `order by` 进行查询。在进行深分页查询时,即使查询数据量较少、数据库仍需将全部数据读取至内存进行全量排序,查询效率比较低下。采取自增列可以为每一行生成唯一标识、查询时记住上一页最大唯一标识并用于下一页的查询条件,实现更高效的分页查询。 - -以下表为例,unique_value 是一个唯一值: - -```SQL -CREATE TABLE `demo`.`records_tbl2` ( - `key` int(11) NOT NULL COMMENT "", - `name` varchar(26) NOT NULL COMMENT "", - `address` varchar(41) NOT NULL COMMENT "", - `city` varchar(11) NOT NULL COMMENT "", - `nation` varchar(16) NOT NULL COMMENT "", - `region` varchar(13) NOT NULL COMMENT "", - `phone` varchar(16) NOT NULL COMMENT "", - `mktsegment` varchar(11) NOT NULL COMMENT "", - `unique_value` BIGINT NOT NULL AUTO_INCREMENT -) DUPLICATE KEY (`key`, `name`) -DISTRIBUTED BY HASH(`key`) BUCKETS 10 -PROPERTIES ( - "replication_num" = "3" -); -``` - -在分页展示中,每页展示 100 条数据,使用如下方式获取第一页的数据: - -```SQL -select * from records_tbl2 order by unique_value limit 100; -``` - -通过程序记录下返回结果中`unique_value`中的最大值,假设为 99,则可用如下方式查询第二页的数据: - -```SQL -select * from records_tbl2 where unique_value > 99 order by unique_value limit 100; -``` - -如果要直接查询一个靠后页面的内容,此时不方便直接获取之前页面数据中`unique_value`的最大值时,例如要直接获取第 101 页的内容,则可以使用如下方式进行查询 - -```SQL -select key, name, address, city, nation, region, phone, mktsegment -from records_tbl2, (select unique_value as max_value from records_tbl2 order by uniuqe_value limit 1 offset 9999) as previous_data -where records_tbl2.uniuqe_value > previous_data.max_value -order by unique_value limit 100; -``` - -:::note -演示 Demo:https://www.bilibili.com/video/BV1VC411h7Gr/?spm_id_from=333.999.0.0 -::: - -### 自动分区 Auto Partition - -在 Apache Doris 2.1 版本之前一直采取手动分区的形式,用户需要提前把分区建立好,否则在导入数据过程中会因为找不到对应分区而出错。而自动分区功能支持了在导入数据过程中自动检测分区列的数据对应的分区是否存在。如果不存在,则会自动创建分区并正常进行导入。 - -自动分区功能使用方式如下: - -```SQL -CREATE TABLE `DAILY_TRADE_VALUE` -( - `TRADE_DATE` datev2 NULL COMMENT '交易日期', - `TRADE_ID` varchar(40) NULL COMMENT '交易编号', - ...... -) -UNIQUE KEY(`TRADE_DATE`, `TRADE_ID`) -AUTO PARTITION BY RANGE date_trunc(`TRADE_DATE`, 'year') -( -) -DISTRIBUTED BY HASH(`TRADE_DATE`) BUCKETS 10 -PROPERTIES ( - "replication_num" = "1" -); -``` - -:::caution -注意事项 - -1. 当前自动分区功能仅支持一个分区列,并且分区列必须为 NOT NULL 列; - -2. 自动分区当前已支持 Range 分区和 List 分区,其中 Range 分区函数仅支持 `date_trunc`、分区列仅支持 `DATE` 或者 `DATETIME` 格式;List 分区不支持函数调用,分区列支持 `BOOLEAN、TINYINT、SMALLINT、INT、BIGINT、LARGEINT、DATE、DATETIME、CHAR、VARCHAR` 数据类型,分区值为枚举值; - -3. 使用 List 分区时,一旦分区列的值当前不存在,自动分区功能都会为其创建一个独立的新分区。 -::: - -:::note - -参考文档:[数据划分](./table-design/data-partitioning/data-distribution) -::: - -### INSERT INTO SELECT 导入性能提升 100% - -`INSERT INTO…SELECT` 语句是 ETL 中最高频使用的操作之一,可以快速完成数据在库表之间的迁移、转换以及清洗合并,提升 `INSERT INTO…SELECT` 性能可以更好满足用户对数据快速提取和分析的需求。在 Apache Doris 2.0 版本中,我们引入了单副本导入功能(Single Replica Load)来减少多副本的重复写入和 Compaction 工作,但是导入性能还存在优化的空间。 - -在 Apache Doris 2.1 版本中,为了进一步提升`INSERT INTO…SELECT` 性能,我们实现了 MemTable 前移以进一步减少导入过程中的开销,能在大多数场景中能在 2.0 版本的基础上取得 100% 的导入性能提升。 - -![INSERT INTO SELECT 导入性能提升 100%](/images/2.1-doris-INSERT-INTO-SELECT.png) - - -MemTable 前移和非前移的流程对比如上图所示,Sink 节点不再发送编码后的 Block,而是在本地处理完 MemTable 将生成的 Segment 数据发给下游节点,减少了数据多次编码的开销,同时使内存反压更准确和及时。此外,我们使用了 Streaming RPC 来替代了 Ping-pong RPC,减少了数据传输过程中的等待。 - -在此我们对 2.1 版本开启 MemTable 前移后的导入性能进行了测试,测试环境如下:1 FE+3 BE、每个节点 16C 64G、3 块高性能云盘(保证磁盘 I/O 不成为瓶颈) - -可以看到在单副本场景下,2.1 版本开启 MemTable 前移后、导入耗时降低至 2.0 版本的 36%,三副本场景下导入耗时降低至 2.0 版本的 54%,整体导入性能提升超过 100%。 - -| INSERT INTO 表 | Doris 2.0 非前移默认 | Doris 2.1MemTable 前移 | -| :------------------- | :------------------- | :--------------------- | -| linitem 1 副本 (38G) | 30.2 s | 11.1 s | -| linitem 3 副本 (38G) | 47.4 s | 25.4 s | - -![INSERT INTO SELECT 导入性能提升 100%](/images/2.1-insert-into-table.png) - -:::note -MemTable 前移在 2.1 版本中默认开启,用户无需修改原有的导入命令即可获得大幅性能提升。如果在使用过程中遇到问题、希望回退到原有的导入方式,可以在 MySQL 连接中设置环境变量 `enable_memtable_on_sink_node=false` 来关闭 MemTable 前移。 -::: - -### 高频实时导入/服务端攒批 Group Commit - -在数据导入过程中,不同批次导入的数据都会写入内存表中,随后在磁盘中上形成一个个 RowSet 文件,每个 Rowset 文件对应一次数据导入版本。后台 Compaction 进程会自动对多个版本的 RowSet 文件进行合并,将多个 RowSet 小文件合并成 RowSet 大文件以优化查询性能以及存储空间,而每一次的 Compaction 进程都会产生对 CPU、内存以及磁盘 IO 资源的消耗。在实际数据写入场景中,写入越实时高频、生成 RowSet 版本数越高、Compaction 所消耗的资源就越大。为了避免高频写入带来的过多资源消耗甚至 OOM,Apache Doris 引入了反压机制,即在版本过多的情况下会返回 -235,并对数据的版本数量进行控制。 - - -![高频实时导入/服务端攒批 Group Commit](/images/2.1-doris-group-commit.png) - -从 Apache Doris 2.1 版本开始,我们引入了服务端攒批 Group Commit,大幅强化了高并发、高频实时写入的能力。 - -顾名思义,Group Commit 会把用户侧的多次写入在 BE 端进行积攒后批量提交。对于用户而言,无需控制写入程序的频率,Doris 会自动把用户提交的多次写入在内部合并为一个版本,从而可以大幅提升用户侧的写入频次。 - -![高频实时导入/服务端攒批 Group Commit](/images/2.1-doris-group-commit-2.png) - -当前 Group Commit 已经支持同步模式 `sync_mode` 和异步模式 `async_mode`。同步模式下会将多个导入在一个事务提交,事务提交后导入返回,在导入完成后数据立即可见。异步模式下数据会先写入 WAL,Apache Doris 会根据负载和表的`group_commit_interval`属性异步提交数据,提交之后数据可见。为了防止 WAL 占用较大的磁盘空间,单次导入数据量较大时,会自动切换为`sync_mode`。 - -我们分别采取 JDBC 和 Stream Load 两种方式对高并发写入场景下 Group Commit(异步模式 `async_mode`)的写入性能进行了测试,测试报告如下: - -- **JDBC 写入**: - - - 集群配置为 1FE 1BE,数据集为 TPC-H SF10 Lineitem 表,总共约 22GB、1.8 亿行; - - - 经测试,在并发数 20、单次 Insert 数据行数 100 行下,导入效率达到 10.69w 行/秒、导入吞吐达 11.46 MB/秒,BE 节点的 CPU 使用率稳定保持在 10%-20%; - -- **Stream Load 写入**: - - - 集群配置为 1FE 3BE,数据集为 httplogs、总共 31GB、2.47 亿行。在未开启 Group Commit 和 开启 Group Commit 的异步模式时,通过设置不同的单并发数据量和并发数,对比数据的写入性能。 - - - 经测试,在并发数 10、单次导入数据量 1 MB 下,未开启 Group Commit 时会提示 -235 错误,开启后可稳定运行且导入效率达 81w 行/秒、导入吞吐达 104 MB/秒;在并发数 10、单次导入数据量 10MB 下,开启 Group Commit 后耗时降低至原先的 55%、导入吞吐提升 79%; - - -:::note -- 演示 Demo:https://www.bilibili.com/video/BV1um411o7Ha/?spm_id_from=333.999.0.0 - -- 参考文档和完整测试报告:[Group Commit](../../data-operate/import/import-way/group-commit-manual) - -::: - -## 半结构化数据分析 - -### Variant 数据类型 - -过去 Apache Doris 在应对复杂半结构化数据的存储和分析处理时,一般有两种方式: - -1. 一种方式是用户提前预定好表结构,加工成宽表,在数据进入前将数据解析好,这种方案的优点是写入性能好,查询也不需要解析,但是使用不够灵活、对表结构发起变更增加运维、研发的成本。 - -2. 使用 Doris 中的 JSON 类型、或是存成 JSON String,将原始 JSON 数据不经过加工直接入库,查询的时候,用解析函数处理。优点是不需要额外的数据加工、预定义表结构拍平嵌套结构,运维、研发方便,但存在解析性能以及数据读取效率低下的问题。 - -为了解决上述半结构化数据的挑战,在 Apache Doris 2.1 版本中我们引入全新的数据类型`VARIANT`,支持存储半结构化数据、允许存储包含不同数据类型(如整数、字符串、布尔值等)的复杂数据结构,无需在表结构中提前定义具体的列,其存储和查询与传统的 String、JSONB 等行存类型发生了本质的改变,期望其作为半结构化数据首选数据类型,给用户带来更加高效的数据处理机制。 - -Variant 类型特别适用于处理结构可能随时会发生变化的复杂嵌套结构。在写入过程中,Variant 类型可以自动根据列的结构和类型推断列信息,并将其合并到现有表的 Schema 中,将 JSON 键及其对应的值灵活存储为动态子列。同时,一个表可以同时包含灵活的 Variant 对象列和预先定义类型的更严格的静态列,从而在数据存储、查询上提供了更大的灵活性。除此之外,Variant 类型能够与 Doris 核心特性融合,利用列式存储、向量化引擎、优化器等技术,为用户带来极高性价比的查询性能及存储性能。 - -**使用方式如下:** - -```SQL --- 无索引 -CREATE TABLE IF NOT EXISTS ${table_name} ( - k BIGINT, - v VARIANT -) -table_properties; - --- 在v列创建索引,可选指定分词方式,默认不分词 -CREATE TABLE IF NOT EXISTS ${table_name} ( - k BIGINT, - v VARIANT, - INDEX idx_var(v) USING INVERTED [PROPERTIES("parser" = "english|unicode|chinese")] [COMMENT 'your comment'] -) -table_properties; - --- 查询,使用`[]`形式访问子列 -SELECT v["properties"]["title"] from ${table_name} -``` - -**相比 JSON 类型的优势** - -在 Apache Doris 中 JSON 类型是以二进制 JSONB 格式进行存储,整行 JSON 以行存的形式存储到 Segment 文件中。而 VARIANT 类型在写入的时候进行类型推断,将写入的 JSON 列存化,查询不需要进行解析。此外 Variant 类型针对稀疏场景的 JSON 进行优化,只提取频繁出现的列,稀疏的列会以单独的格式进行存储。 - -为了验证引入 Variant 数据类型后在存储以及查询上所带来的优势,我们基于 ClickBench 测试数据集进行了存储空间和查询性能的测试。 - -在存储空间方面,相同数据采取 Variant 类型,所占用的存储空间跟预定义的静态列的存储空间持平,相比于 JSON 类型则减少了约 65%。在一些低基数场景,由于列存的优势,存储资源的成本效应会更加明显。 - -![相比 JSON 类型的优势](/images/2.1-comparied-to-Json.png) - -在查询性能方面,如下表可知,Variant 类型与预定义静态列的查询性能差异在 10% 左右;**而对于 JSON 类型来说,Variant 类型的热查询速度相比于 JSON 类型提升了 8 倍以上,冷查询有着数量级的提升。**(由于 I/O 原因,JSONB 类型的冷查询大部分超时)。 - -![相比 JSON 类型的优势](/images/2.1-comparied-to-Json-2.png) - - -:::caution -注意事项: - -- 目前 Variant 暂不支持 Aggregate 模型,也不支持将 Variant 类型作为 Unique 或 Duplicate 模型的主键及排序键; - -- 推荐使用 RANDOM 模式或者开启 Group Commit 导入,写入性能更高效; - -- 日期、Decimal 等非标准 JSON 类型尽可能提取出来作为静态字段,性能更好; - -- 二维及其以上的数组以及数组嵌套对象,列存化会被存成 JSONB 编码,性能不如原生数组; - -- 查询过滤、聚合需要带 Cast,存储层会根据存储类型和 Cast 目标类型来提示(hint)存储引擎谓词下推,加速查询。 -::: - -:::note -- 演示 Demo: https://www.bilibili.com/video/BV13u4m1g7ra/?spm_id_from=333.999.0.0 - -- 参考文档:[VARIANT](../../sql-manual/sql-data-types/semi-structured/VARIANT.md) - -::: - -### IP 数据类型 - -在网络流量监控的场景中,IP 地址是一个常见的字段,大量的统计分析基于 IP 地址进行。在 Apache Doris 2.1 版本中,将原生支持 IPv4 和 IPv6 数据类型,用高效的二进制形式存储 IP 数据。相比于使用明文的 IP String,内存和存储空间可节省 60% 左右。 - -同时基于 IP 类型,我们增加了常用的 20 多个 IP 处理函数,如: - -- IPV4_NUM_TO_STRING:将类型为 Int16、Int32、Int64 且大端表示的 IPv4 的地址,返回相应 IPv4 的字符串表现形式; -- IPV4_CIDR_TO_RANGE:接收一个 IPv4 和一个包含 CIDR 的 Int16 值,返回一个结构体,其中包含两个 IPv4 字段分别表示子网的较低范围(min)和较高范围(max); -- INET_ATON:获取包含 IPv4 地址的字符串,格式为 A.B.C.D(点分隔的十进制数字) - -:::note -参考文档:[IPV6](../../sql-manual/sql-data-types/ip/IPV6) - -::: - -### 复杂数据类型分析函数完善 - -在 Apache Doris 2.1 版本中我们丰富了行转列和 IN 能支持的数据类型。如: - -- `explode_map`:支持 MAP 类型数据行转列(仅在新优化器中实现) - -支持 Map 类型 Explode 行转列,将 Map 字段的 N 个 Key Value 对展开成 N 行,每行的 Map 字段替换成 Key 和 Value 两个字段。`explode_map` 需要和 Lateral View 一起使用,可以接多个 Lateral View, 结果则是每个 `explode_map` 之后的行数以笛卡尔积的形式展示。 - -具体使用如下: - -```SQL --- 建表语句 - CREATE TABLE `sdu` ( - `id` INT NULL, - `name` TEXT NULL, - `score` MAP NULL -) ENGINE=OLAP -DUPLICATE KEY(`id`) -COMMENT 'OLAP' -DISTRIBUTED BY HASH(`id`) BUCKETS 1 -PROPERTIES ( -"replication_allocation" = "tag.location.default: 1" -); - --- insert 数据 -insert into sdu values (0, "zhangsan", {"Chinese":"80","Math":"60","English":"90"}); -insert into sdu values (1, "lisi", {"null":null}); -insert into sdu values (2, "wangwu", {"Chinese":"88","Math":"90","English":"96"}); -insert into sdu values (3, "lisi2", {null:null}); -insert into sdu values (4, "amory", NULL); - -mysql> select name, course_0, score_0 from sdu lateral view explode_map(score) tmp as course_0,score_0; -+----------+----------+---------+ -| name | course_0 | score_0 | -+----------+----------+---------+ -| zhangsan | Chinese | 80 | -| zhangsan | Math | 60 | -| zhangsan | English | 90 | -| lisi | null | NULL | -| wangwu | Chinese | 88 | -| wangwu | Math | 90 | -| wangwu | English | 96 | -| lisi2 | NULL | NULL | -+----------+----------+---------+ - -mysql> select name, course_0, score_0, course_1, score_1 from sdu lateral view explode_map(score) tmp as course_0,score_0 lateral view explode_map(score) tmp1 as course_1,score_1; -+----------+----------+---------+----------+---------+ -| name | course_0 | score_0 | course_1 | score_1 | -+----------+----------+---------+----------+---------+ -| zhangsan | Chinese | 80 | Chinese | 80 | -| zhangsan | Chinese | 80 | Math | 60 | -| zhangsan | Chinese | 80 | English | 90 | -| zhangsan | Math | 60 | Chinese | 80 | -| zhangsan | Math | 60 | Math | 60 | -| zhangsan | Math | 60 | English | 90 | -| zhangsan | English | 90 | Chinese | 80 | -| zhangsan | English | 90 | Math | 60 | -| zhangsan | English | 90 | English | 90 | -| lisi | null | NULL | null | NULL | -| wangwu | Chinese | 88 | Chinese | 88 | -| wangwu | Chinese | 88 | Math | 90 | -| wangwu | Chinese | 88 | English | 96 | -| wangwu | Math | 90 | Chinese | 88 | -| wangwu | Math | 90 | Math | 90 | -| wangwu | Math | 90 | English | 96 | -| wangwu | English | 96 | Chinese | 88 | -| wangwu | English | 96 | Math | 90 | -| wangwu | English | 96 | English | 96 | -| lisi2 | NULL | NULL | NULL | NULL | -+----------+----------+---------+----------+---------+ -``` - -`explode_map_outer` 和 `explode_outer` 的目的一致,可以将当前 MAP 类型的列中是 NULL 的数据行展示出来。 - -```SQL -mysql> select name, course_0, score_0 from sdu lateral view explode_map_outer(score) tmp as course_0,score_0; -+----------+----------+---------+ -| name | course_0 | score_0 | -+----------+----------+---------+ -| zhangsan | Chinese | 80 | -| zhangsan | Math | 60 | -| zhangsan | English | 90 | -| lisi | null | NULL | -| wangwu | Chinese | 88 | -| wangwu | Math | 90 | -| wangwu | English | 96 | -| lisi2 | NULL | NULL | -| amory | NULL | NULL | -+----------+----------+---------+ -``` - -- 增加 IN 谓词支持 Struct 类型数据的能力(仅在新优化器中实现) - -IN 谓词的左参数支持 `struct() function` 构建的 Struct 类型的数据,也支持 Select 某表中某一列是 Struct 类型的数据,右边的参数支持一个由 `struct() function` 构建的 Struct 类型的数据的数组。IN 谓词支持 Struct 类型可以有效替换 Where 条件中如果需要大量的 or 连词连接的表达式,如: `(a = 1 and b = '2') or (a = 1 and b = '3') or (...)` 可以通过 IN 实现为 `struct(a,b) in (struct(1, '2'), struct(1, '3'), ...)` - -```SQL -mysql> select struct(1,"2") in (struct(1,3), struct(1,"2"), struct(1,1), null); -+-------------------------------------------------------------------------------------------+ -| cast(struct(1, '2') as STRUCT) IN (NULL, cast(struct(1, '2') | -| as STRUCT), cast(struct(1, 1) as STRUCT), cast(struct(1, 3) as STRUCT)) | -+-------------------------------------------------------------------------------------------+ -| 1 | -+-------------------------------------------------------------------------------------------+ -mysql> select struct(1,"2") not in (struct(1,3), struct(1,"2"), struct(1,1), null); -+-------------------------------------------------------------------------------------------+ -| ( not cast(struct(1, '2') as STRUCT) IN (NULL, cast(struct(1, '2')| -| as STRUCT), cast(struct(1, 1) as STRUCT), | -| cast(struct(1, 3) as STRUCT))) | -+-------------------------------------------------------------------------------------------+ -| 0 | -+-------------------------------------------------------------------------------------------+ -``` - -- `MAP_AGG`:接收 expr1 作为键,expr2 作为对应的值,返回一个 MAP - -:::note -参考文档:[MAP_AGG](../../sql-manual/sql-functions/aggregate-functions/map-agg.md) -::: - - - -## 负载管理 - -### 资源硬隔离 - -在 Apache Doris 2.0 版本我们引入了 Workload Group,可以实现对 CPU 资源的软限制。Workload Group 软限的优点是可以提升资源的利用率,但同时也会带来查询延迟的不确定性,这对那些期望查询性能稳定性的用户来说是难以接受的。因此在 Apache Doris 2.1 版本中我们对 Workload Group 实现了 CPU 硬限,即无论当前物理机的整体 CPU 是否空闲,配置了硬限的 Group 最大 CPU 用量不能超过配置的值。 - -这意味着不管单机的资源是否充足,该 Workload Group 的最大可用 CPU 资源都是固定的,只要用户的查询负载不发生大的变化,那么查询性能就会相对稳定。由于影响一个查询性能稳定性的因素很多,除了 CPU 之外,内存、IO 以及软件层面的资源竞争也都会产生影响,因此当集群的负载在空闲和满载之间切换时,即使配置了 CPU 的硬限,查询性能的稳定性也会产生波动,但是预期的表现应该是优于软限制。 - -:::caution -注意事项 - -1. Doris 2.0 版本的 CPU 隔离是基于优先级队列实现的,而在 2.1 版本中 Apache Doris 是基于 CGroup 实现了 CPU 资源的隔离,因此从 2.0 版本升级到 2.1 版本时,需要在使用前完成 CGroup 的配置,详细注意事项参考官网文档。 - -2. 目前 Workload Group 支持的工作负载类型包括查询间的隔离以及导入与查询之间的隔离,需要注意的是如果期望对导入负载进行彻底的限制,那么需要开启 MemTable 前移。 - -3. 用户需要通过开关指定当前集群的 CPU 限制模式是软限还是硬限,暂不支持两种模式同时运行,两种模式的切换可以参考官网文档,后续我们也会根据用户的实际需求决定是否要同时支持这两种模式。 -::: - -:::note -- 演示 Demo:https://www.bilibili.com/video/BV1Fz421X7XE/?spm_id_from=333.999.0.0 -- 参考文档:[Workload Group](../../admin-manual/resource-admin/workload-group.md) - -::: - -### TopSQL - -当集群出现预期外的大查询导致集群整体负载上升、查询可用性下降时,用户难以快速找到这些大查询并进行相应的降级操作。因此在 Apache Doris 2.1 版本中我们支持了运行时查看 SQL 资源用量的功能,具体指标如下: - -```SQL -mysql [(none)]>desc function active_queries(); -+------------------------+--------+------+-------+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+------------------------+--------+------+-------+---------+-------+ -| BeHost | TEXT | No | false | NULL | NONE | -| BePort | BIGINT | No | false | NULL | NONE | -| QueryId | TEXT | No | false | NULL | NONE | -| StartTime | TEXT | No | false | NULL | NONE | -| QueryTimeMs | BIGINT | No | false | NULL | NONE | -| WorkloadGroupId | BIGINT | No | false | NULL | NONE | -| QueryCpuTimeMs | BIGINT | No | false | NULL | NONE | -| ScanRows | BIGINT | No | false | NULL | NONE | -| ScanBytes | BIGINT | No | false | NULL | NONE | -| BePeakMemoryBytes | BIGINT | No | false | NULL | NONE | -| CurrentUsedMemoryBytes | BIGINT | No | false | NULL | NONE | -| ShuffleSendBytes | BIGINT | No | false | NULL | NONE | -| ShuffleSendRows | BIGINT | No | false | NULL | NONE | -| Database | TEXT | No | false | NULL | NONE | -| FrontendInstance | TEXT | No | false | NULL | NONE | -| Sql | TEXT | No | false | NULL | NONE | -+------------------------+--------+------+-------+---------+-------+ -``` - -`active_queries()` 函数记录了查询在各个 BE 上运行时的审计信息,该函数可以当做普通的 Doris 表来看待,支持查询、谓词过滤、排序和 Join 等操作。常用的指标包括 SQL 的运行时间、CPU 时间、单 BE 的峰值内存、Scan 的数据量以及 Shuffle 的数据量,也可以从 BE 的粒度做上卷,查看 SQL 全局的资源用量。 - -需要注意的是这里只显示运行时的 SQL,查询结束的 SQL 不会在这里显示,而是写入审计日志中(目前主要是 fe.audit.log)。常用的 SQL 如下: - -```SQL -查看集群中目前运行时间最久的n个sql -select QueryId,max(QueryTimeMs) as query_time from active_queries() group by QueryId order by query_time desc limit 10; - -查看目前集群中CPU耗时最长的n个sql -select QueryId, sum(QueryCpuTimeMs) as cpu_time from active_queries() group by QueryId order by cpu_time desc limit 10 - -查看目前集群中scan行数最多的n个sql以及他们的运行时间 -select t1.QueryId,t1.scan_rows, t2.query_time from - (select QueryId, sum(ScanRows) as scan_rows from active_queries() group by QueryId order by scan_rows desc limit 10) t1 - left join (select QueryId,max(QueryTimeMs) as query_time from active_queries() group by QueryId) t2 on t1.QueryId = t2.QueryId - -查看目前各个BE的负载情况,按照CPU时间/scan行数/shuffle字节数降序排列 -select BeHost,sum(QueryCpuTimeMs) as query_cpu_time, sum(ScanRows) as scan_rows,sum(ShuffleSendBytes) as shuffle_bytes from active_queries() group by BeHost order by query_cpu_time desc,scan_rows desc ,shuffle_bytes desc limit 10 - -查看单BE峰值内存最高的N个sql -select QueryId,max(BePeakMemoryBytes) as be_peak_mem from active_queries() group by QueryId order by be_peak_mem desc limit 10; -``` - -目前主要展示的负载类型包括 Select 和`Insert Into……Select`,预计在 2.1 版本之上的三位迭代版本中会支持 Stream Load 和 Broker Load 的资源用量展示。 - -:::note -参考文档:[ACTIVE_QUERIES](../../sql-manual/sql-functions/table-functions/active_queries.md) -::: - - -## 其他 - -### Decimal256 - -为了更好的满足金融类或者财务类客户以及一些高端制造业客户对于数字类型进行精确计算的需求,2.1 新版本中提供了更高精度的 Decimal 数据类型,最高支持 76 位有效数字(该类型处于 Experimental 状态,需要手工开启配置项 set enable_decimal256=true 才能使用)。 - -示例: - -```SQL -CREATE TABLE `test_arithmetic_expressions_256` ( - k1 decimal(76, 30), - k2 decimal(76, 30) - ) - DISTRIBUTED BY HASH(k1) - PROPERTIES ( - "replication_num" = "1" - ); - -insert into test_arithmetic_expressions_256 values - (1.000000000000000000000000000001, 9999999999999999999999999999999999999999999998.999999999999999999999999999998), - (2.100000000000000000000000000001, 4999999999999999999999999999999999999999999999.899999999999999999999999999998), - (3.666666666666666666666666666666, 3333333333333333333333333333333333333333333333.333333333333333333333333333333); -``` - -查询语句及结果: - -```SQL -select k1, k2, k1 + k2 a from test_arithmetic_expressions_256 order by 1, 2; -| k1 | k2 | a | -| --------------|-------------------------|--------------------| -| 1.000000000000000000000000000001 | 9999999999999999999999999999999999999999999998.999999999999999999999999999998 | 9999999999999999999999999999999999999999999999.999999999999999999999999999999 | -| 2.100000000000000000000000000001 | 4999999999999999999999999999999999999999999999.899999999999999999999999999998 | 5000000000000000000000000000000000000000000001.999999999999999999999999999999 | -| 3.666666666666666666666666666666 | 3333333333333333333333333333333333333333333333.333333333333333333333333333333 | 3333333333333333333333333333333333333333333336.999999999999999999999999999999 | -3 rows in set (0.09 sec) -``` - -:::caution -注意事项 -- Decimal256 类型对于计算 CPU 的消耗更高,因此在性能上会有一些损耗。 -::: - - -### 任务调度 Job Scheduler - -同社区用户多次交流中,我们发现许多场景下用户使用 Apache Doris 时都存在定时调度的需求,例如: - -- 周期性的 Backup; - -- 过期数据定时清理; - -- 周期性的导入任务,如定时通过 Catalog 的方式去进行增量或全量数据同步; - -- 定期 ETL,如部分用户定期从宽表中 Load 数据至指定表、从明细表中定时拉取数据存至聚合表、ODS 层表定时打宽并写入原有宽表更新; - -尽管诸如 Airflow、DolphinScheduler 等可供选择的外部调度系统非常多,但仍面临一致性的问题——在极端情况下,外部调度系统触发 Doris 导入任务并执行成功,因意外情况忽然宕机时,外部调度系统无法正确获取执行结果,会认为此次调度失败,导致触发调度系统的容错机制,通常是重试或者直接失败。而无论采用哪种策略,最终都会导致以下几个情况发生: - -- **资源浪费**:由于调度系统误认为任务失败,可能会重新调度执行已经成功的任务,导致不必要的资源消耗。 - -- **数据重复或丢失**:如果调度系统选择重试导入任务,可能导致数据重复导入,造成数据冗余和不一致。另一方面,如果调度系统直接标记任务为失败,可能导致实际已成功导入的数据被忽略或丢失。 - -- **时间延误**:由于调度系统的容错机制被触发,可能需要进行额外的任务调度和重试,导致整体数据处理时间延长,影响业务效率和响应速度。 - -- **系统稳定性下降**:频繁的重试或直接失败可能导致调度系统和 Doris 的负载增加,进而影响系统的稳定性和性能。 - -因此我们在 Apache Doris 2.1 版本中引入了 Job Scheduler 功能并具备了自行任务调度的能力。Doris Job Scheduler 是根据既定计划运行的任务,用于在特定时间或指定时间间隔触发预定义的操作,从而帮助我们自动执行一些任务。从功能上来讲,它类似于操作系统上的定时任务(如:Linux 中的 cron、Windows 中的计划任务),但 Doris 的 Job 调度可以精确到秒级。对于导入场景,我们能够做到完全的一致性保障。除此之外,Doris 内置的 Jon Scheduler 还具有以下特点: - -1. **高效调度**:Job Scheduler 可以在指定的时间间隔内安排任务和事件,确保数据处理的高效性。采用时间轮算法保证事件能够精准做到秒级触发。 - -2. **灵活调度**:Job Scheduler 提供了多种调度选项,如按 分、小时、天或周的间隔进行调度,同时支持一次性调度以及循环(周期)事件调度,并且周期调度也可以指定开始时间、结束时间。 - -3. **事件池和高性能处理队列**:Job Scheduler 采用 Disruptor 实现高性能的生产消费者模型,最大可能的避免任务执行过载。 - -4. **调度记录可追溯**:Job Scheduler 会存储最新的 Task 执行记录(可配置),通过简单的命令即可查看任务执行记录,确保过程可追溯。 - -5. **高可用**:依托于 Doris 自身的高可用机制,Job 可以很轻松的做到自恢复,高可用。 - -在此我们创建一个定时调度任务作为示例: - -```SQL -// 从 2023-11-17 起每天定时执行 insert语句直到 2038 年结束 -CREATE -JOB e_daily - ON SCHEDULE - EVERY 1 DAY - STARTS '2023-11-17 23:59:00' - ENDS '2038-01-19 03:14:07' - COMMENT 'Saves total number of sessions' - DO - INSERT INTO site_activity.totals (time, total) - SELECT CURRENT_TIMESTAMP, COUNT(*) - FROM site_activity.sessions where create_time >= days_add(now(),-1) ; -``` - -:::caution 注意事项 - -当前 Job Scheduler 仅支持 Insert 内表,参考文档:[CREATE-JOB](../../sql-manual/sql-statements/Data-Definition-Statements/Create/CREATE-JOB.md) - -::: - -## Behavior Changed - -- Unique Key 模型默认开启 Merge On Write 写时合并,新创建的 Unique Key 模型的表将自动设置 `enable_unique_key_merge_on_write=true`。 - -- 倒排索引 Invert Index 经过一年多时间的打磨,已实现了对原本的位图索引 Bitmap Index 功能和场景的全覆盖,且功能上和性能上都大幅优于原本的位图索引 Bitmap Index,因此从 Apache Doris 2.1 版本起,我们将默认停止对位图索引 Bitmap Index 的支持,已经创建的位图索引保持不变将继续生效,不允许创建新的位图索引,在未来我们将会移除位图索引的相关代码。 - -- `cpu_resource_limit`不再支持,其本身是限制 BE 上 Scanner 线程数目的功能,而 Workload Group 也能支持设置 BE Scanner 线程数目,所以已设置的 `cpu_resource_limit `将失效。 - -- Segment Compaction 主要应对单批次大数据量的导入,可以在同一批次数据中进行多个 Segment 的 Compaction 操作,在 2.1 版本开始 Segment Compaction 将默认开启,`enable_segcompaction` 默认值设置为 True。 - -- Audit Log 插件 - - - 从 2.1 版本开始,Apache Doris 开始内置 Audit Log 审计日志插件,用户只需通过设置全局变量 `enable_audit_plugin` 开启或关闭审计日志功能。 - - - 对于之前已经安装过审计日志插件的用户,升级后可以继续使用原有插件,也可以通过 uninstall 命令卸载原有插件后,使用新的插件。但注意,切换插件后,审计日志表也将切换到新的表中。 - - - 具体可参阅:[审计日志插件](../../admin-manual/audit-plugin.md) - - - - -## 致谢 - -467887319, 924060929, acnot, airborne12, AKIRA, alan_rodriguez, AlexYue, allenhooo, amory, amory, AshinGau, beat4ocean, BePPPower, bigben0204, bingquanzhao, BirdAmosBird, BiteTheDDDDt, bobhan1, caiconghui, camby, camby, CanGuan, caoliang-web, catpineapple, Centurybbx, chen, ChengDaqi2023, ChenyangSunChenyang, Chester, ChinaYiGuan, ChouGavinChou, chunping, colagy, CSTGluigi, czzmmc, daidai, dalong, dataroaring, DeadlineFen, DeadlineFen, deadlinefen, deardeng, didiaode18, DongLiang-0, dong-shuai, Doris-Extras, Dragonliu2018, DrogonJackDrogon, DuanXujianDuan, DuRipeng, dutyu, echo-dundun, ElvinWei, englefly, Euporia, feelshana, feifeifeimoon, feiniaofeiafei, felixwluo, figurant, flynn, fornaix, FreeOnePlus, Gabriel39, gitccl, gnehil, GoGoWen, gohalo, guardcrystal, hammer, HappenLee, HB, hechao, HelgeLarsHelge, herry2038, HeZhangJianHe, HHoflittlefish777, HonestManXin, hongkun-Shao, HowardQin, hqx871, httpshirley, htyoung, huanghaibin, HuJerryHu, HuZhiyuHu, Hyman-zhao, i78086, irenesrl, ixzc, jacktengg, jacktengg, jackwener, jayhua, Jeffrey, jiafeng.zhang, Jibing-Li, JingDas, julic20s, kaijchen, kaka11chen, KassieZ, kindred77, KirsCalvinKirs, KirsCalvinKirs, kkop, koarz, LemonLiTree, LHG41278, liaoxin01, LiBinfeng-01, LiChuangLi, LiDongyangLi, Lightman, lihangyu, lihuigang, LingAdonisLing, liugddx, LiuGuangdongLiu, LiuHongLiu, liuJiwenliu, LiuLijiaLiu, lsy3993, LuGuangmingLu, LuoMetaLuo, luozenglin, Luwei, Luzhijing, lxliyou001, Ma1oneZhang, mch_ucchi, Miaohongkai, morningman, morrySnow, Mryange, mymeiyi, nanfeng, nanfeng, Nitin-Kashyap, PaiVallishPai, Petrichor, plat1ko, py023, q763562998, qidaye, QiHouliangQi, ranxiang327, realize096, rohitrs1983, sdhzwc, seawinde, seuhezhiqiang, seuhezhiqiang, shee, shuke987, shysnow, songguangfan, Stalary, starocean999, SunChenyangSun, sunny, SWJTU-ZhangLei, TangSiyang2001, Tanya-W, taoxutao, Uniqueyou, vhwzIs, walter, walter, wangbo, Wanghuan, wangqt, wangtao, wangtianyi2004, wenluowen, whuxingying, wsjz, wudi, wudongliang, wuwenchihdu, wyx123654, xiangran0327, Xiaocc, XiaoChangmingXiao, xiaokang, XieJiann, Xinxing, xiongjx, xuefengze, xueweizhang, XueYuhai, XuJianxu, xuke-hat, xy, xy720, xyfsjq, xzj7019, yagagagaga, yangshijie, YangYAN, yiguolei, yiguolei, yimeng, YinShaowenYin, Yoko, yongjinhou, ytwp, yuanyuan8983, yujian, yujun777, Yukang-Lian, Yulei-Yang, yuxuan-luo, zclllyybb, ZenoYang, zfr95, zgxme, zhangdong, zhangguoqiang, zhangstar333, zhangstar333, zhangy5, ZhangYu0123, zhannngchen, ZhaoLongZhao, zhaoshuo, zhengyu, zhiqqqq, ZhongJinHacker, ZhuArmandoZhu, zlw5307, ZouXinyiZou, zxealous, zy-kkk, zzwwhh, zzzxl1993, zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.1.md deleted file mode 100644 index 1d68596f0435a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.1.md +++ /dev/null @@ -1,223 +0,0 @@ ---- -{ - "title": "Release 2.1.1", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.1.1 版本已于 2024 年 4 月 3 日正式发布。该版本针对 2.1.0 版本出现的问题进行较为全面的优化,提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- **立即下载:** https://doris.apache.org/download/ - -- **GitHub Release:** https://github.com/apache/doris/releases - - -## 1 行为变更 - -1. 改变了 Float 类型字段返回值序列化的方式,可以提升大数据量下 Float 返回的性能。 - -- https://github.com/apache/doris/pull/32049 - -2. 将部分 Table Valued Function 变更为系统表 `active_queries()`, `workload_groups()`。 - -- https://github.com/apache/doris/pull/32314 - -3. 由于 `show query``/l``oad profile stmt` 语句在实际用户场景中使用较少,该语句将不再支持与维护。同时该功能在 Pipeline 与 PipelineX 引擎中不支持。 - -- https://github.com/apache/doris/pull/32467 - -4. 升级 Arrow Flight 版本至 15.0.2,同时用户需要使用 ADBC 15.0.2 版本访问 Doris。 - -- https://github.com/apache/doris/pull/32827. - -## 2 升级问题 - -1. 修复了从 2.0.x 滚动升级至 2.1.x 的过程中,部分 BE 节点升级出现 Core 的问题。 - -- https://github.com/apache/doris/pull/32672 - -- https://github.com/apache/doris/pull/32444 - -- https://github.com/apache/doris/pull/32162 - -2. 修复了在 2.0.x 滚动升级至 2.1.x 过程中,使用 JDBC Catalog 会出现 Query 报错的问题。 - -- https://github.com/apache/doris/pull/32618 - -## 3 新功能 - -1. 默认开启列级权限。 - -- https://github.com/apache/doris/pull/32659 - -2. Pipeline 和 PipelineX 引擎能够在 K8S 下准确获取 CPU 核数。 - -- https://github.com/apache/doris/pull/32370 - -3. 支持读取 Parquet INT96 类型 - -- https://github.com/apache/doris/pull/32394 - -4. 支持 IP 透传的协议,以方便在 FE 之前启用代理的同时还能获取客户端准确的 IP 地址,实现白名单权限控制。 - -- https://github.com/apache/doris/pull/32338/files - -5. 增加对 Workload Queue 检测指标。 - -- https://github.com/apache/doris/pull/32259 - -6. 增加系统表 `backend_active_tasks `,以实时监测每个 BE 上活跃任务以及消耗的资源信息。 - -- https://github.com/apache/doris/pull/31945 - -7. 在 Spark Doris Connector 中增加 IPV4 和 IPV6 的支持。 - -- https://github.com/apache/doris/pull/32240 - -8. CCR 支持倒排索引。 - -- https://github.com/apache/doris/pull/32101 - -9. 支持查询 Experimental 的 Session Variable。 - -- https://github.com/apache/doris/pull/31837 - -10. 支持建立 `bitmap_union(bitmap_from_array())` 函数的物化视图。 - --https://github.com/apache/doris/pull/31962 - -11. 支持对 Hive 中 `HIVE_DEFAULT_PARTITION` 分区进行列裁剪。 - -- https://github.com/apache/doris/pull/31736 - -12. 支持 `set variable` 语句中使用函数。 - -- https://github.com/apache/doris/pull/32492 - -13. Arrow 序列化方式增加对 Variant 类型的支持。 - -- https://github.com/apache/doris/pull/32809 - -## 4 改进与优化 - -1. 当系统自动重启或者滚动升级之后,自动启动 Routine Load 导入任务。 - -- https://github.com/apache/doris/pull/32239 - -2. 优化了 Routine Load 任务在各个 BE 上的分布方式,让各个 BE 负载更加均衡。 - -- https://github.com/apache/doris/pull/32021 - -3. 升级 Spark 的版本,解决部分 Spark Load 的安全问题。 - -- https://github.com/apache/doris/pull/30368 - -4. 在冷热分离过程中,自动跳过被删除的 Tablet. - -- https://github.com/apache/doris/pull/32079 - -5. Workload Group 支持对 Routine Load 的资源进行限制。 - -- https://github.com/apache/doris/pull/31671 - -6. 大幅度优化多表物化视图查询改写性能。 - -- https://github.com/apache/doris/pull/31886 - -7. 优化 Broker Load 任务对 FE 的内存使用 - -- https://github.com/apache/doris/pull/31985 - -8. 优化 Partition 的裁剪逻辑。 - -- https://github.com/apache/doris/pull/31970 - -9. 优化 Tablet Schema Cache 对 BE 内存使用。 - -- https://github.com/apache/doris/pull/31141 - -10. 多表物化视图增加更多对 JOIN 类型的支持,包括 INNER JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOIN、LEFT SEMI JOIN、RIGHT SEMI JOIN、LEFT ANTI JOIN、RIGHT ANTI JOIN - -- https://github.com/apache/doris/pull/32909 - -## 5 Bugs 修复 - -1. 修复 TopN 下推导致的问题。 - -- https://github.com/apache/doris/pull/326332. - -2. 修复 JAVA UDF 带来的内存泄露问题。 - -- https://github.com/apache/doris/pull/32630 - -3. 修复 ODBC 表备份恢复问题。 - -- https://github.com/apache/doris/pull/31989 - -4. 修复对 Variant 类型进行运算时常量折叠会导致 BE 出错的问题 - -- https://github.com/apache/doris/pull/32265 - -5. 修复了部分导入任务失败时 Routine Load 卡住的问题。 - -- https://github.com/apache/doris/pull/32638 - -6. 修复 SEMI JOIN 结果不正确的问题。 - -- https://github.com/apache/doris/pull/32477 - -7. 当列的数据为空时,修复建立倒排索引会出错的问题。 - -- https://github.com/apache/doris/pull/32669 - -8. 修复`<=> join` 操作会出现 Core 的问题。 - -- https://github.com/apache/doris/pull/32623 - -9. 修复部分列更新在有 Sequence 列结果准确性的问题。 - -- https://github.com/apache/doris/pull/32574 - -10. 修复 Select Outfile 导出到 Parquet 或者 ORC 格式的列类型映射问题。 - -- https://github.com/apache/doris/pull/32281 - -11. 修复在 Restore 过程中 BE 有时候会 Core 的问题。 - -- https://github.com/apache/doris/pull/32489 - -12. 修复 `array_agg `函数结果不对的问题。 - -- https://github.com/apache/doris/pull/32387 - -13. 使 Variant 类型应当一直是 nullable. - -- https://github.com/apache/doris/pull/32248 - -14. 修复 Schema Change 没有正确处理空 Block 的问题。 - -- https://github.com/apache/doris/pull/32396 - -15. 修复使用 `json_length()` 函数时部分场景会出错的问题。 - -- https://github.com/apache/doris/pull/32145 - -16. 修复 Iceberg 表没有正确处理 Date Cast 转换的问题。 - -- https://github.com/apache/doris/pull/32194 - -17. 修复 Variant 类型建立 Index 时出现的部分 Bug。 - -- https://github.com/apache/doris/pull/31992 - -18. 修复当多个 `map_agg` 函数同时使用时结果不正确的问题。 - -- https://github.com/apache/doris/pull/31928 - -19. 修复 `money_format` 函数的返回结果不正确的问题。 - -- https://github.com/apache/doris/pull/31883 - -20. 修复在高并发的建立链接时部分请求会卡住的问题。 - -- https://github.com/apache/doris/pull/31594 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.2.md deleted file mode 100644 index 6876790ca0ef9..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.2.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -{ - "title": "Release 2.1.2", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.2 版本已于 2024 年 4 月 12 日正式发布**。该版本提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 1 行为变更 - -1. 将 EXPORT 命令中 `data_consistence` 属性的默认值调整为 Partition,这可以使得并发导入的同时做 EXPORT 操作更容易成功。 - -- https://github.com/apache/doris/pull/32830 - -2. 兼容部分 MySQL Connector(如 MySQL.Data for .NET)将 SELECT `@``@autocommit` 的返回值类型变更为 BIGINT。 - -- https://github.com/apache/doris/pull/33282 - -3. Auto Partition 语法变化,详见[文档](../../table-design/data-partitioning/auto-partitioning.md) - -- https://github.com/apache/doris/pull/32737 - -4. Auto Partition 禁止和 Dynamic Partition 同时作用在一张表上 - -- https://github.com/apache/doris/pull/33736 - -## 2 升级问题 - -1. 修复正常 Workload Group 从 2.0 或者更早版本升级到 2.1 时没有默认创建的问题。 - -- https://github.com/apache/doris/pull/33197 - -## 3 新功能 - -1. 增加 processlist 系统表功能,用户可以通过查询系统表获得活跃的链接信息。 - -- https://github.com/apache/doris/pull/32511 - -2. 增加新的表函数 `LOCAL` 以访问部分共享存储上的文件。 - -- https://github.com/apache/doris-website/pull/494 - -## 4 改进与优化 - -1. 跳过部分不必要检查,加速在 K8s 环境下优雅退出的速度。 - -- https://github.com/apache/doris/pull/33212 - -2. 在 Profile 中增加已命中的物化视图信息,能够方便地定位物化视图是否命中。 - -- https://github.com/apache/doris/pull/33137 - -3. 针对 DB2 Catalog,增加测试链接是否通畅的功能,能够在建立 Catalog 时做部分链接检查。 - -- https://github.com/apache/doris/pull/33335 - -4. 增加 DNS Cache,解决 K8s 环境下域名解析较慢,从而影响查询的问题。 - -- https://github.com/apache/doris/pull/32869 - -5. 增加异步刷新 Catalog 中表的行数信息,避免查询抖动。 - -- https://github.com/apache/doris/pull/32997 - -## 5 Bug 修复 - -1. 修复 Iceberg Catalog 中,不支持 Iceberg 自定义属性的问题,例如 "io.manifest.cache-enabled"。 - -- https://github.com/apache/doris/pull/33113 - -2. `LEAD`/`LAG` 函数的 Offset 起始位置可以设置为 0。 - -- https://github.com/apache/doris/pull/33174 - -3. 修复部分导入过程中可能出现的 Timeout 的问题。 - -- https://github.com/apache/doris/pull/33077 - -- https://github.com/apache/doris/pull/33260 - -4. 修复部分 `ARRAY` / `MAP` / `STRUCT` 类型在 Compaction 中引起 Core 的问题。 - -- https://github.com/apache/doris/pull/33130 https://github.com/apache/doris/pull/33295 - -5. 修复查询过程中 Runtime Filter 部分等待超时的问题。 - -- https://github.com/apache/doris/pull/33369 - -6. 修复 `unix_timestamp` 函数在 Auto Partition 中可能导致 Core 的问题。 - -- https://github.com/apache/doris/pull/32871 - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.3.md deleted file mode 100644 index 33454120eb686..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.3.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -{ - "title": "Release 2.1.3", - "language": "zh-CN" -} ---- - -**Apache Doris 2.1.3 版本已于 2024 年 5 月 21 日正式发布**。该版本更新带来了若干改进项,包括支持向 Hive 回写数据、物化视图、新函数等功能,同时改善权限管理并修复若干问题,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - - -## 功能特性 - -**1. 支持通过 Hive Catalog 向 Hive 表中回写数据** - -从 2.1.3 版本开始,Apache Doris 支持对 Hive 的 DDL 和 DML 操作。用户可以直接通过 Apache Doris 在 Hive 中创建库表,通过执行`INSERT INTO`语句来向 Hive 表中写入数据。通过该功能,用户可以通过 Apache Doris 对 Hive 进行完整的数据查询和写入操作,进一步帮助用户简化湖仓一体架构。 - -参考[文档](../../lakehouse/datalake-building/hive-build) - - -**2. 支持在异步物化视图之上构建新的异步物化视图** - - -用户可以在异步物化视图之上来创建新的异步物化视图,直接复用计算好的中间结果进行数据加工处理,简化复杂的聚合和计算操作带来的资源消耗和维护成本,进一步加速查询性能、提升数据可用性。 - -**3. 支持通过物化视图嵌套物化视图进行重写** - -物化视图(Materialized View,MV)是用于存储查询结果的数据库对象。现在,Apache Doris 支持通过 MV 嵌套物化视图进行重写,这有助于优化查询性能。 - - -**4. 新增 SHOW VIEWS 语句** - -可以使用`SHOW VIEWS`语句来查询数据库中的视图,有助于更好地管理和理解数据库中的视图对象。 - -**5. Workload Group 支持绑定到特定的 BE 节点** - -Workload Group 可以绑定到特定的 BE 节点,实现查询执行的更精细化控制,以优化资源使用和提高性能。 - -**6. Broker Load 支持压缩的 JSON 格式** - -Broker Load 支持导入压缩的 JSON 格式数据,可以显著减少数据传输的带宽需求、加速数据导入性能。 - -**7. TRUNCATE 函数可以使用列作为 scale 参数** - -TRUNCATE 函数现在可以接受列作为 scale 参数,这使得在处理数值数据时可以更加灵活。 - -**8. 添加新的函数 `uuid_to_int` 和 `int_to_uuid`** - -这两个函数允许用户在 UUID 和整数之间进行转换,对于需要处理 UUID 数据的场景有明显帮助。 - -**9. 添加 `bypass_workload_group` Session Variable 以绕过查询队列** - -会话变量 `bypass_workload_group` 允许某些查询绕过 Workload Group 队列直接执行,这可以用于处理需要快速响应的关键查询。 - -**10. 添加 strcmp 函数** - -strcmp 函数用于比较两个字符串并返回它们的比较结果,帮助文本数据的处理更加简易。 - -**11. 支持 HLL 函数 `hll_from_base64` 和 `hll_to_base64`** - -HLL(HyperLogLog)是一种用于基数估计的算法,以上两个函数允许用户将 HLL 数据从 Base64 编码的字符串中解码,或将 HLL 数据编码为 Base64 字符串,这对于存储和传输 HLL 数据非常有用。 - -## 优化改进 - -**1. 替换 SipHash 为 XXHash 以改善 Shuffle 性能** - -SipHash 和 XXHash 都是哈希函数,但 XXHash 在某些场景下可能提供更快的哈希速度和更好的性能,此优化旨在通过采用 XXHash 来提高数据 Shuffle 过程中的性能。 - -**2. 异步物化视图支持 OLAP 表分区列为可以为 NULL:** - -允许异步物化视图支持 OLAP 表的分区列可以为 NULL,从而增强了数据处理的灵活性。 - -**3. 收集列统计信息时限制最大字符串长度为 1024 以控制 BE 内存使用** - -在收集列统计信息时,限制字符串的长度可以防止过大的数据消耗过多的 BE 内存,有助于保持系统的稳定性和性能。 - -**4. 支持动态删除 Bitmap Cache 以提高性能** - -通过支持动态删除不再需要的 Bitmap Cache,可以释放内存并改善系统性能。 - -**5. 在 ALTER 操作中减少内存使用** - -减少 ALTER 操作中的内存使用,以提高系统资源的利用效率。 - -**6. 支持复杂类型的常量折叠** - -支持 Array/Map/Struct 复杂类型的常量折叠; - -**7. 在 Aggregate Key 聚合模型中增加对 Variant 类型的支持** - -Variant 数据类型能够存储多种数据类型,在此优化中允许对 Variant 类型的数据进行聚合操作,从而增强了半结构化数据分析的灵活性。 - -**8. 在 CCR 中支持新的倒排索引格式** - -**9. 优化嵌套物化视图的重写性能** - -**10. 支持 decimal256 类型的行存格式** - -在行存格式中支持 decimal 256 类型,以以扩展系统对高精度数值数据的处理能力。 - -## 行为变更 - -**1. 授权(Authorization)** - -- **Grant_priv 权限更改**:`Grant_priv`不能再被任意授予。执行 `GRANT` 操作时,用户不仅需要具有`Grant_priv`,还需要具有要授予的权限。例如,如果想要授予对`table1`的 `SELECT` 权限,那么该用户不仅需要具有 `GRANT` 权限,还需要具有对`table1`的 `SELECT` 权限,这增加了权限管理的安全性和一致性。 - -- **Workload Group 和 Resource 的 Usage_priv**:`Usage_priv` 对 Workload Group 和 Resource 的权限不再是全局级别的,而是仅限于 Resource 和 Workload Group 内,权限的授予和使用将更加具体。 - -- **操作的授权**:之前未被授权的操作现在都有了相应的授权,以实现更加细致和全面地操作权限控制。 - -**2. LOG 目录配置** - -FE 和 BE 的日志目录配置现在统一使用`LOG_DIR`环境变量,所有其他不同类型的日志都将以`LOG_DIR`作为根目录进行存储。同时为了保持版本间的兼容性,以前的配置项`sys_log_dir`仍然可以使用。 - -**3. S3 表函数(TVF)** - -由于之前的解析方式在某些情况下可能无法正确识别或处理 S3 的 URL,因此将对象存储路径的解析逻辑进行重构。对于 S3 表函数中的文件路径,需要传递`force_parsing_by_standard_uri`参数来确保被正确解析。 - -## 升级问题 - -由于许多用户将某些关键字用作列名或属性值,因此将如下关键字设置为非保留关键字,允许用户将其用作标识符使用。 - -## 问题修复 - -**1. 修复在腾讯云 COSN 上读取 Hive 表时的无数据错误** - -解决了在腾讯云 COSN 存储上读取 Hive 表时可能遇到的无数据错误,增强了与腾讯云存储服务的兼容性。 - -**2. 修复 milliseconds_diff 函数返回错误结果** - -修复`milliseconds_diff`函数在某些情况下返回错误结果的问题,确保了时间差计算的准确性。 - -**3. 用户定义变量应转发到 Master 节点** - -确保用户定义的变量能够正确地传递到 Master 节点,以便在整个系统中保持一致性和正确的执行逻辑。 - -**4. 修复添加复杂类型列时遇到的 Schema Change 问题** - -在添加复杂类型列时,可能会遇到 Schema Change 问题,此修复确保了 Schema Change 的正确性。 - -5. **修复 FE master 节点更改时 Routine Load 的数据丢失问题** - -`Routine Load`常用于订阅 Kafka 消息队列中的数据,此修复解决了在 FE Master 节点更改时可能导致的数据丢失问题。 - -**6. 修复当找不到 Workload Group 时 Routine Load 失败的问题** - -修复了当`Routine Load`找不到指定 Workload Group 时导致的失败问题。 - -**7. 支持 column string64,以避免在 string size 溢出 unit32 时 Join 失败的问题** - -在某些情况下,字符串的大小可能会超过 unit32 的限制,支持`string64`类型可以确保字符串 JOIN 操作的正确执行。 - -**8. 允许 Hadoop 用户创建 Paimon Catalog** - -允许具有权限的对应 Hadoop 用户来创建 Paimon Catalog。 - -**9. 修复 function_ipxx_cidr 函数与常量参数的问题** - -修复了`function_ipxx_cidr`函数在处理常量参数时可能出现的问题,保证函数执行的正确性。 - -**10. 修复使用 HDFS 进行还原时的文件下载错误** - -解决了在使用 HDFS 进行数据还原时遇到的“failed to download”错误,确保了数据恢复的正确性和可靠性。 - -**11. 修复隐藏列相关的列权限问题** - -在某些情况下,隐藏列的权限设置可能不正确,此修复确保了列权限设置的正确性和安全性。 - -**12. 修复在 K8s 部署中 Arrow Flight 无法获取正确 IP 的问题** - -此修复解决了在 Kubernetes 部署环境中 Arrow Flight 无法正确获取 IP 地址的问题。 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.4.md deleted file mode 100644 index d6cb0c22bb3dc..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.4.md +++ /dev/null @@ -1,271 +0,0 @@ ---- -{ - "title": "Release 2.1.4", - "language": "zh-CN" -} ---- - -**Apache Doris 2.1.4 版本已于 2024 年 6 月 26 日正式发布。** 在 2.1.4 版本中,我们对数据湖分析场景进行了多项功能体验优化,重点修复了旧版本中异常内存占用的问题,同时提交了若干改进项以及问题修复,进一步提升了系统的性能、稳定性及易用性,欢迎大家下载使用。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 行为变更 - -- **通过 Catalog 查询外部表(如 Hive 数据表)时,系统将忽略不存在的文件:** 当从元数据缓存中获取文件列表时,由于缓存更新并非实时,因此可能存在实际的文件列表已删除、而元数据缓存中仍存在该文件的情况。为了避免由于尝试访问不存在的文件而导致的查询错误,系统会忽略这些不存在的文件。 [#35319](https://github.com/apache/doris/pull/35319) - -- 默认情况下,创建 Bitmap Index 不再默认变更为 Inverted Index。该行为由 FE 配置项 `enable_create_bitmap_index_as_inverted_index` 控制,默认为 FALSE。[#35521](https://github.com/apache/doris/pull/35521) - -- 当使用 `--console` 启动 FE、BE 进程时,所有日志将输出到标准输出,并通过前缀区分不同类型的日志。[#35679](https://github.com/apache/doris/pull/35679) - - 关于更多信息,请参考文档: - - - [BE 日志管理](../../admin-manual/log-management/be-log.md) - - - [FE 日志管理](../../admin-manual/log-management/fe-log.md) - -- 如果建表时没有填写表注释,默认注释为空,不再使用表类型作为默认表注释。 [#36025](https://github.com/apache/doris/pull/36025) - -- DECIMALV3 的默认精度从 (9, 0) 调整为 (38,9) ,以和最初发布此功能的版本保持兼容。 [#36316](https://github.com/apache/doris/pull/36316) - -## 新增功能 - -### 查询优化器 - -- **支持 FE 火焰图工具**:在 FE 部署目录 `${DORIS_FE_HOME}/bin` 中会增加`profile_fe.sh` 脚本,可以利用 async-profiler 工具生成 FE 的火焰图,用以发现性能瓶颈点。 - - 关于更多信息,请参考文档:[使用 FE Profiler 生成火焰图](https://doris.apache.org/zh-CN/community/developer-guide/fe-profiler) - -- **支持 SELECT DISTINCT 与聚合函数同时使用**:支持 `SELECT DISTINCT` 与聚合函数同时使用,在一个查询中同时去重和进行聚合操作,如 SUM、MIN/MAX 等。 - -- **支持无 GROUP BY 的单表查询重写**:无 `GROUP BY` 的单表查询重写功能允许数据库优化器在不需要分组的情况下,根据查询的复杂性和数据表的结构,自动选择最佳的执行计划来执行查询,这可以提高查询的性能,减少不必要的资源消耗,并简化查询逻辑。 [#35242](https://github.com/apache/doris/pull/35242). - -- **查询优化器全面支持高并发点查询功能**:在 2.1.4 版本之后,查询优化器全面支持高并发点查询功能,所有符合点查询条件的 SQL 语句会自动走短路径查询,无需用户在客户端额外设置 `set experimental_enable_nereids_planner = false`。 [#36205](https://github.com/apache/doris/pull/36205). - -### 湖仓一体 - -- **支持 Paimon 的原生读取器来处理 Deletion Vector:** Deletion Vector 主要用于标记或追踪哪些数据已被删除或标记为删除,通常应用在需要保留历史数据的场景,基于本优化可以提升大量数据更新或删除时的处理效率。 [#35241](https://github.com/apache/doris/pull/35241) - - 关于更多信息,请参考文档:[数据湖分析 - Paimon](../../lakehouse/datalake-analytics/paimon.md) - -- **支持在表值函数(TVF)中使用 Resource**:TVF 功能为 Apache Doris 提供了直接将对象存储或 HDFS 上的文件作为 Table 进行查询分析的能力。通过在 TVF 中引用 Resource,可以避免重复填写连接信息,提升使用体验。 [#35139](https://github.com/apache/doris/pull/35139) - - 关于更多信息,请参考文档:[表函数 - HDFS](../../sql-manual/sql-functions/table-functions/hdfs.md) - -- **支持通过 Ranger 插件实现数据脱敏**:开启 Ranger 鉴权功能后,支持使用 Ranger 中的 Data Mask 功能进行数据脱敏。 - - 关于更多信息,请参考文档:[基于 Apache Ranger 的鉴权管理](../../admin-manual/auth/ranger#资源和权限) - -### 异步物化视图 - -- 构建支持内表触发式更新,如果物化视图使用的是内表,如果内表数据发生变化,可以触发物化视图刷新,需要在创建物化视图时指定 REFRESH ON COMMIT。 - -- 支持单表透明改写。 - - 关于更多信息,请参考文档:[查询异步物化视图](../../query-acceleration/materialized-view/async-materialized-view/functions-and-demands.md) - -- 透明改写支持 agg_state, agg_union 类型的聚合上卷,物化视图可以定义为 agg_state 或者 agg_union,查询使用具体的聚合函数,或者使用 agg_merge - - 关于更多信息,请参考文档:[AGG_STATE](../../sql-manual/sql-data-types/aggregate/AGG-STATE.md) - -### 其他 - -- **新增 `replace_empty` 函数**:将字符串中的子字符串进行替换,当旧字符串为空时,会将新字符串插入到原有字符串的每个字符前以及最后。 - - 关于更多信息,请参考文档:[字符串函数 - REPLACE_EMPTY](../../sql-manual/sql-functions/string-functions/replace_empty.md) - -- 支持 `show storage policy using` 语句:支持查看所有或指定存储策略关联的表和分区。 - - 关于更多信息,请参考文档:[SQL 语句 - SHOW](../../sql-manual/sql-statements/Show-Statements/SHOW-STORAGE-POLICY-USING.md) - -- **支持 BE 侧的 JVM 指标:** 通过在 `be.conf` 配置文件中设置`enable_jvm_monitor=true`,可以启用对 BE 节点 JVM 的监控和指标收集,有助于了解 BE JVM 的资源使用情况,以便进行故障排除和性能优化。 - -## 改进优化 - -- 支持为中文列名创建倒排索引。[#36321](https://github.com/apache/doris/pull/36321) - -- 优化 Segment Cache 所消耗内存的估算准确度,以便能够更快地释放未使用的内存。[#35751](https://github.com/apache/doris/pull/35751) - -- 在使用 Export 功能导出数据时,提前过滤空分区以提升导出效率。[#35542](https://github.com/apache/doris/pull/35542) - -- 优化 Routine Load 任务分配算法以平衡 BE 节点之间的负载压力。[#34778](https://github.com/apache/doris/pull/34778) - -- 在设置错误的会话变量名时,自动识别近似变量值并给出更详细的错误提示。[#35775](https://github.com/apache/doris/pull/35775) - -- 支持将 Java UDF Jar 文件放到 FE 的 `custom_lib` 目录中并默认加载。[#35984](https://github.com/apache/doris/pull/35984) - -- 为审计日志导入作业添加超时的全局变量`audit_plugin_load_timeout` ,以控制在加载审计插件或处理审计日志时允许的最大执行时间。 - -- 优化了异步物化视图透明改写规划的性能。 - -- 当 `INSERT` 源数据为空时,BE 将不会执行任何操作。[#34418](https://github.com/apache/doris/pull/34418) - -- 支持分批获取 Hudi 和 Hive 文件列表,当存在大量数据文件时可以提升数据扫描性能。 [#35107](https://github.com/apache/doris/pull/35107) - - - 120 万文件场景中,获取文件列表的时间由 390 秒缩减到 46 秒。 - -- 创建异步物化视图时,禁止使用动态分区。 - -- 支持检测 Hive 外表分区数据是否和异步物化视图同步。 - -- 允许异步物化视图创建索引。 - -## 缺陷修复 - -### 查询优化器 - -- 修复 SQL Cache 在 `truncate paritition` 后依然返回旧结果的问题。[#34698](https://github.com/apache/doris/pull/34698) - -- 修复从 JSON Cast 到其他类型 Nullable 属性不对的问题。[#34707](https://github.com/apache/doris/pull/34707) - -- 修复偶现的 DATETIMEV2 Literal 化简错误。 [#35153](https://github.com/apache/doris/pull/35153) - -- 修复窗口函数中不能使用 `COUNT(*)` 的问题。[#35220](https://github.com/apache/doris/pull/35220) - -- 修复 `UNION ALL` 下全部是无 `FROM 的 `SELECT` 时,Nullable 属性可能错误的问题。 -[#35074](https://github.com/apache/doris/pull/35074) - -- 修复 `bitmap in join` 和子查询解嵌套无法同时使用的问题。[#35435](https://github.com/apache/doris/pull/35435) - -- 修复在特定情况下过滤条件不能下推到 CTE Producer 导致的性能问题。[#35463](https://github.com/apache/doris/pull/35463) - -- 修复聚合 Combinator 为大写时,无法找到函数的问题。[#35540](https://github.com/apache/doris/pull/35540) - -- 修复窗口函数没有被列裁剪正确裁剪导致的性能问题。[#35504](https://github.com/apache/doris/pull/35504) - -- 修复多个同名不同库的表同时出现在查询中时,可能解析错误导致结果错误的问题。[#35571](https://github.com/apache/doris/pull/35571) - -- 修复对于 Schema 表扫描时,由于生成了 Runtime Filter 导致查询报错的问题。[#35655](https://github.com/apache/doris/pull/35655) - -- 修复关联子查询解嵌套,关联条件被折叠为 Null Literal 导致无法执行的问题。[#35811](https://github.com/apache/doris/pull/35811) - -- 修复规划时,偶现的 Decimal Literal 被错误设置精度的问题。 [#36055](https://github.com/apache/doris/pull/36055) - - -- 修复偶现的多层聚合被合并后规划错误的问题。[#36145](https://github.com/apache/doris/pull/36145) - -- 修复偶现的聚合扩展规划报错输入输出不匹配的问题。[#36207](https://github.com/apache/doris/pull/36207) - -- 修复偶现的 `<=>` 被错误转换为 `=` 的问题。[#36521](https://github.com/apache/doris/pull/36521) - -### 查询执行 - -- 修复 Pipeline 引擎上达到限定的行数且内存没有释放时查询被挂起的问题。 [#35746](https://github.com/apache/doris/pull/35746) - -- 修复当设置 `enable_decimal256 =true` 且查询优化器回退到旧版本时 BE 发生 Core 的问题。[#35731](https://github.com/apache/doris/pull/35731) - -### 物化视图 - -- 修复构建异步物化视图指定 store_row_column 属性,be core 的问题。 - -- 修复构建异步物化视图指定 storage_medium 不生效的问题。 - -- 修复基表删除后,异步物化视图 show partitions 报错的问题。 - -- 修复异步物化视图引起备份恢复异常的问题。 - -- 修复分区改写可能导致错误结果的问题。 - -### 半结构化数据分析 - -- 修复带有空 Key 的 VARIANT 类型发生 Core 的问题。[#35671](https://github.com/apache/doris/pull/35671) - -- Bitmap 索引和 BloomFilter 索引不应支持轻量级索引变更。[#35225](https://github.com/apache/doris/pull/35225) - -### 主键模型 - -- 修复在有部分列更新导入的情况下发生异常重启,可能会产生重复 Key 的问题。[#35678](https://github.com/apache/doris/pull/35678) - -- 修复在内存紧张时发生 Clone 时 BE 可能会发生 Core 的问题。[#34702](https://github.com/apache/doris/pull/34702) - -### 湖仓一体 - -- 修复创建 Hive 表时无法使用完全限定名(如 `ctl.db.tbl`)的问题。 [#34984](https://github.com/apache/doris/pull/34984) - -- 修复 Refresh 操作时 Hive Metastore 连接未关闭的问题。[#35426](https://github.com/apache/doris/pull/35426) - -- 修复从 2.0.x 升级到 2.1.x 时可能的元数据回放问题。 [#35532](https://github.com/apache/doris/pull/35532) - -- 修复 TVF 表函数无法读取空 Snappy 压缩文件的问题。[#34926](https://github.com/apache/doris/pull/34926) - -- 修复无法读取具有无效最小/最大列统计信息的 Parquet 文件的问题。[#35041](https://github.com/apache/doris/pull/35041) - -- 修复 Parquet/ORC Reader 中无法处理带有 null-aware 函数下推谓词的问题。[#35335](https://github.com/apache/doris/pull/35335) - -- 修复创建 Hive 表时分区列顺序的问题。 [#35347](https://github.com/apache/doris/pull/35347) - -- 修复当分区值包含空格时无法将 Hive 表写入 S3 的问题。 [#35645](https://github.com/apache/doris/pull/35645) - -- 修复 Doris 写入 Parquet 格式 Hive 表无法被 Hive 读取的问题。 [#34981](https://github.com/apache/doris/pull/34981) - -- 修复 Hive 表 Schema 变更后无法读取 ORC 文件的问题。[#35583](https://github.com/apache/doris/pull/35583) - -- 修复了部分情况下,启用 Hive Metastore Listener 后 FE 无法启动的问题。[#36533](https://github.com/apache/doris/pull/36533) - -- 修复由 Hadoop FS 缓存引起的 FE OOM 问题。[#36403](https://github.com/apache/doris/pull/36403) - -- 修复写出 Parquet 格式文件写出 Row Group 过小的问题。[#36042](https://github.com/apache/doris/pull/36042) [#36143](https://github.com/apache/doris/pull/36143) - -- 修复 Paimon 表 Schema 变更后无法通过 JNI 读取 Paimon 表的问题。[#35309](https://github.com/apache/doris/pull/35309) - -- 修复 Paimon 表 Schema 变更后由于表字段长度判断错误导致无法读取的问题。 [#36049](https://github.com/apache/doris/pull/36049) - -- 修复了读取 Iceberg 中的时间戳列类型时的时区问题。 [#36435](https://github.com/apache/doris/pull/36435) - -- 修复了 Iceberg 表上的日期时间转换错误和数据路径错误的问题。[#35708](https://github.com/apache/doris/pull/35708) - -- 修复阿里云 OSS Endpoint 不正确的问题。[#34907](https://github.com/apache/doris/pull/34907) - -- 修复了大量文件导致的查询性能下降问题。[#36431](https://github.com/apache/doris/pull/36431) - -- 允许用户定义的属性通过表函数传递给 S3 SDK。[#35515](https://github.com/apache/doris/pull/35515) - -### 数据导入 - -- 修复 `CANCEL LOAD` 命令不生效的问题。[#35352](https://github.com/apache/doris/pull/35352) - -- 修复导入事务 Publish 阶段空指针错误导致导入事务无法完成的问题。[#35977](https://github.com/apache/doris/pull/35977) - -- 修复 bRPC 通过 HTTP 发送大数据文件序列化的问题。 [#36169](https://github.com/apache/doris/pull/36169) - -### 数据管控 - -- 修复了在将 DDL 或 DML 转发到主 FE 后,ConnectionContext 中的资源标签未设置的问题。 [#35618](https://github.com/apache/doris/pull/35618) - -- 修复了在启用 `lower_case_table_names` 时,Restore 表名不正确的问题。 [#35508](https://github.com/apache/doris/pull/35508) - -- 修复了清理无用数据或文件的管理命令不生效的问题。 [#35271](https://github.com/apache/doris/pull/35271) - -- 修复了无法从分区中删除存储策略的问题。[#35874](https://github.com/apache/doris/pull/35874) - -- 修复了向多副本自动分区表导入数据时的数据丢失问题。[#36586](https://github.com/apache/doris/pull/36586) - -- 修复了使用旧优化器查询或插入自动分区表时,表的分区列发生变化的问题。 [#36514](https://github.com/apache/doris/pull/36514) - -### 内存管理 - -- 修复日志中频繁报错 Cgroup meminfo 获取失败的问题。 [#35425](https://github.com/apache/doris/pull/35425) - -- 修复使用 BloomFilter 时 Segment 缓存大小不受控制导致进程内存异常增长的问题。[#34871](https://github.com/apache/doris/pull/34871) - -### 权限 - -- 修复开启表名大小写不敏感后,权限设置无效的问题。[#36557](https://github.com/apache/doris/pull/36557) - -- 修复通过非 Master FE 节点设置 LDAP 密码不生效的问题。[#36598](https://github.com/apache/doris/pull/36598) - -- 修复了无法检查 `SELECT COUNT(*)` 语句授权的问题。[#35465](https://github.com/apache/doris/pull/35465) - -### 其他 - -- 修复 MySQL 连接损坏情况下,客户端 JDBC 程序无法关闭连接的问题。 [#36616](https://github.com/apache/doris/pull/36616) - -- 修改 `SHOW PROCEDURE STATUS` 语句返回值与 MySQL 协议不兼容的问题。[#35350](https://github.com/apache/doris/pull/35350) - -- `libevent` 库强制开启 Keepalive 以解决部分情况下连接泄露的问题。 [#36088](https://github.com/apache/doris/pull/36088) - - -## 致谢 - -@133tosakarin、@924060929、@airborne12、@amorynan、@AshinGau、@BePPPower、@BiteTheDDDDt、@ByteYue、@caiconghui、@CalvinKirs、@cambyzju、@catpineapple、@cjj2010、@csun5285、@DarvenDuan、@dataroaring、@deardeng、@Doris-Extras、@eldenmoon、@englefly、@feiniaofeiafei、@felixwluo、@freemandealer、@Gabriel39、@gavinchou、@GoGoWen、@HappenLee、@hello-stephen、@hubgeter、@hust-hhb、@jacktengg、@jackwener、@jeffreys-cat、@Jibing-Li、@kaijchen、@kaka11chen、@Lchangliang、@liaoxin01、@LiBinfeng-01、@lide-reed、@luennng、@luwei16、@mongo360、@morningman、@morrySnow、@mrhhsg、@Mryange、@mymeiyi、@nextdreamblue、@platoneko、@qidaye、@qzsee、@seawinde、@shuke987、@sollhui、@starocean999、@suxiaogang223、@TangSiyang2001、@Thearas、@Vallishp、@w41ter、@wangbo、@whutpencil、@wsjz、@wuwenchi、@xiaokang、@xiedeyantu、@XieJiann、@xinyiZzz、@XuPengfei-1020、@xy720、@xzj7019、@yiguolei、@yongjinhou、@yujun777、@Yukang-Lian、@Yulei-Yang、@zclllyybb、@zddr、@zfr9527、@zgxme、@zhangbutao、@zhangstar333、@zhannngchen、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.5.md deleted file mode 100644 index 5a3751c819a01..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.5.md +++ /dev/null @@ -1,394 +0,0 @@ ---- -{ - "title": "Release 2.1.5", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.1.5 版本已于 2024 年 7 月 24 日正式发布。2.1.5 版本在湖仓一体、多表物化视图、半结构化数据分析等方面进行了全面更新及改进,同时在倒排索引、查询优化器、查询引擎、存储管理等 10 余方向上完成了若干问题修复,欢迎大家下载使用。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 行为变更 - -- JDBC Catalog 的默认连接池大小从 10 调整为 30。[#37023](https://github.com/apache/doris/pull/37023) - -- 创建 JDBC Catalog 时,参数 `connection_pool_max_size` 的默认值改为 30,以避免高并发场景下连接池耗尽的问题。 - -- 将系统的保留内存的最小值,即 `low water mark` 调整为 `min (6.4G, MemTotal * 5%)`,以更好地防止 BE 出现 OOM 问题。 - -- 修改了单请求多个语句的处理逻辑,当客户端未设置 `CLIENT_MULTI_STATEMENTS` 标志位时,将仅返回最后一个语句的结果,而非所有语句结果。 - -- 不再允许直接更改异步物化视图的数据。[#37129](https://github.com/apache/doris/pull/37129) - -- 增加会话变量 `use_max_length_of_varchar_in_ctas`,用于控制 CTAS 时 VARCHAR 和 CHAR 类型长度的生成行为。默认值是 true。当设置为 false 时,使用推导出的 VARCHAR 长度,而不是使用最大长度。[#37284](https://github.com/apache/doris/pull/37284) - -- 统计信息收集,默认开启了通过文件大小预估 Hive 表行数的功能。[#37694](https://github.com/apache/doris/pull/37694) - -- 默认开启异步物化视图透明改写机制。[#35897](https://github.com/apache/doris/pull/35897) - -- 透明改写利用分区物化视图,如果分物物化视图部分分区失效,默认行为是将所有基础表与物化视图联合,以保证查询数据的正确性。 [#35897](https://github.com/apache/doris/pull/35897) - -## 新功能 - -### 湖仓一体 - -- 会话变量 `read_csv_empty_line_as_null` 用于控制在读取 CSV 格式文件时,是否忽略空行。默认情况下忽略空行,当设置为 true 时,空行将被读取为所有列均为 Null 的行。[#37153](https://github.com/apache/doris/pull/37153) - - - 更多信息,请参考[文档](https://doris.apache.org/docs/lakehouse/datalake-analytics/hive?_highlight=compress_type)。 - -- 新增兼容 Presto 的复杂类型输出格式。通过设置 `set serde_dialect="presto"`,可以控制复杂类型的输出格式 与 Presto 一致,用于平滑迁移 Presto 业务。[#37253](https://github.com/apache/doris/pull/37253) - -​ - -### 多表物化视图 -- 支持在构建物化视图中使用非确定性函数。[#37651](https://github.com/apache/doris/pull/37651) - -- 支持原子替换异步物化视图定义。[#37147](https://github.com/apache/doris/pull/37147) - -- 支持通过 `show create materialized view` 查看异步物化视图创建语句。 [#37125](https://github.com/apache/doris/pull/37125) - -- 支持对多维聚合查询的透明改写。[#37436](https://github.com/apache/doris/pull/37436) - -- 支持对非聚合物化视图的聚合查询进行透明改写。 [#37497](https://github.com/apache/doris/pull/37497) - -- 支持使用 Key 列,对查询中的 DISTINCT 聚合做透明改写。[#37651](https://github.com/apache/doris/pull/37651) - -- 支持对物化视图进行分区,通过使用 `date_trunc` 对分区进行汇总。[#31812](https://github.com/apache/doris/pull/31812) [#35562](https://github.com/apache/doris/pull/35562) - -- 支持分区表值函数(TVF) [#36479](https://github.com/apache/doris/pull/36479) - -### 半结构化数据分析 - -- 使用 VARIANT 类型的表支持部分列更新。 [#34925](https://github.com/apache/doris/pull/34925) - -- 支持默认开启 PreparedStatement。 [#36581](https://github.com/apache/doris/pull/36581) - -- VARIANT 类型支持导出为 CSV 格式。[#37857](https://github.com/apache/doris/pull/37857) - -- 支持 `explode_json_object` 函数,用于将 JSON Object 行转列。 [#36887](https://github.com/apache/doris/pull/36887) - -- ES Catalog 将 ES 的 NESTED 或者 OBJECT 类型映射成 Doris JSON 类型。[#37101](https://github.com/apache/doris/pull/37101) - -- 默认情况下,对于具有指定分词器的倒排索引,默认开启 `support_phrase` 以提升 `match_phrase` 系列查询性能。[#37949](https://github.com/apache/doris/pull/37949) - -### 查询优化器 - -- 支持 `explain DELETE FROM` 语句。[#37100](https://github.com/apache/doris/pull/37100) - -- 支持常量表达式参数的 Hint 形式。[#37988](https://github.com/apache/doris/pull/37988) - -### 内存管理 - -- 增加了 HTTP API 以清除缓存。 [#36599](https://github.com/apache/doris/pull/36599) - -### 权限管理 - -- 支持对表值函数(TVF)中的资源进行鉴权。 [#37132](https://github.com/apache/doris/pull/37132) - -## 改进提升 - -### 湖仓一体 - -- 将 Paimon 升级至 0.8.1 版本。 - -- 修复在部分情况下,查询 Paimon 表时导致 `org.apache.commons.lang.StringUtils` 的问题。[#37512](https://github.com/apache/doris/pull/37512) - -- 支持腾讯云 LakeFS。 [#36891](https://github.com/apache/doris/pull/36891) - -- 优化了外部表查询时获取文件列表的超时时间。 [#36842](https://github.com/apache/doris/pull/36842) - -- 可通过会话变量 `fetch_splits_max_wait_time_ms` 进行设置 - -- 改进了 SQLServer JDBC Catalog 的默认连接逻辑。 [#36971](https://github.com/apache/doris/pull/36971) - - - 默认情况下,不干预连接加密设置。仅当 `force_sqlserver_jdbc_encrypt_false` 设置为 true 时,才会强制在 JDBC URL 中添加 `encrypt=false` 以减少认证错误,从而提供更灵活的控制加密行为的能力。 - -- Hive 表的 `show create table` 语句增加序列化/反序列化。[#37096](https://github.com/apache/doris/pull/37096) - -- FE 端 Hive 表列表默认缓存时间由 1 天改为 4 小时 - -- 数据导出(Export/Outfile)支持指定 Parquet 和 ORC 的压缩格式。 - - - 更多信息,请参考[文档](../../sql-manual/sql-statements/data-modification/load-and-export/EXPORT.md)。 - -- 当使用 CTAS+TVF 创建表时,TVF 中的分区列将被自动映射为 Varchar(65533)而非 String,以便该分区列能够作为内表的分区列使用。 [#37161](https://github.com/apache/doris/pull/37161) - -- 优化 Hive 写入操作元数据的访问次数。[#37127](https://github.com/apache/doris/pull/37127) - -- ES Catalog 支持将 NESTED/OBJECT 类型映射到 Doris 的 JSON 类型。[#37182](https://github.com/apache/doris/pull/37182) - -- 优化使用低版本 OBJECT 驱动连接 Oracle 时的报错信息。[#37634](https://github.com/apache/doris/pull/37634) - -- 当 Hudi 表 Incremental Read 返回空集时,Doris 同样返回空集而非报错。[#37636](https://github.com/apache/doris/pull/37634) - -- 修复部分情况下内外表关联查询可能导致 FE 超时的问题。[#37757](https://github.com/apache/doris/pull/37757) - -- 修复了在从旧版本升级到新版本时,如果开启了 Hive Metastore Even Listener 情况下,可能出现 FE 元数据回放错误的问题。 [#37757](https://github.com/apache/doris/pull/37757) - - - -### 多表物化视图 - -- 创建异步物化视图时,支持自动选择 Key 列。 [#36601](https://github.com/apache/doris/pull/36601) - -- 异步物化视图分区刷新支持定义中使用 `date_trunc` 函数。[#35562](https://github.com/apache/doris/pull/35562) - -- 嵌套物化视图中,当下层命中聚合上卷改写后,上层现在依然可以继续进行透明改写。 [#37651](https://github.com/apache/doris/pull/37651) - -- 当 Schema Change 不影响异步物化视图数据正确性时,异步物化视图保持可用状态。 [#37122](https://github.com/apache/doris/pull/37122) - -- 提升了透明改写的规划速度。[#37935](https://github.com/apache/doris/pull/37935) - -- 计算异步物化视图可用性时,不再考虑当前的刷新状态。[#36617](https://github.com/apache/doris/pull/36617) - -### 半结构化数据管理 - -- 通过采样优化 DESC 查看 VARIANT 子列的性能。 [#37217](https://github.com/apache/doris/pull/37217) - -- 行存 `page_size` 默认从 4K 调到 16K 压缩率提升 30%,而且支持表级别可配置。 - -- JSON 类型支持 Key 为空的特殊 JSON 数据。 [#36762](https://github.com/apache/doris/pull/36762) - -### 倒排索引 - -- 减少倒排索引 Exists 调用避免对象存储访问延迟。[#36945](https://github.com/apache/doris/pull/36945) - -- 优化倒排索引查询流程额外开销。[#35357](https://github.com/apache/doris/pull/35357) - -- 在物化视图中不创建倒排索引。 [#36869](https://github.com/apache/doris/pull/36869) - -### 查询优化器 - -- 当比较表达式两侧都是 Literal 时,String Literal 会尝试向另一侧的类型转换。 [#36921](https://github.com/apache/doris/pull/36921) - -- 重构了 VARIANT 类型的子路径下推功能,现在可以更好地支持复杂的下推场景。 [#36923](https://github.com/apache/doris/pull/36923) - -- 优化了物化视图代价计算的逻辑,能够更准确的选择代价更低的物化视图。 [#37098](https://github.com/apache/doris/pull/37098) - -- 提升了 SQL 中使用用户变量时的 SQL 缓存规划速度。 [#37119](https://github.com/apache/doris/pull/37119) - -- 优化了 NOT NULL 表达式的估行逻辑,当查询中存在 NOT NULL 时可以获得更好的性能。 [#37498](https://github.com/apache/doris/pull/37498) - -- 优化了 LIKE 表达式的 NULL 拒绝推导逻辑。[#37864](https://github.com/apache/doris/pull/37864) - -- 优化查询指定分区失败时的报错信息,可以更清楚看到是哪个表导致的问题。 [#37280](https://github.com/apache/doris/pull/37280) - -### 查询引擎 - -- 将某些场景下 BITMAP_UNION 算子的性能提升了 3 倍。 - -- 提升 Arrow Flight 在 ARM 环境下的读取性能。 - -- 优化了 `explode`、`explode_map`、`explode_json` 函数的执行性能。 - -### 数据导入 - -- 支持为 `INSERT INTO ... FROM TABLE VALUE FUNCTION` 语句设置 `max_filter_ratio` 参数。 - - - 更多信息,请参考[文档](../../data-operate/import/import-way/insert-into-manual) - -## Bug 修复 - -### 湖仓一体 - -- 修复部分情况下查询 Parquet 格式导致 BE 宕机的问题。[#37086](https://github.com/apache/doris/pull/37086) - -- 修复查询 Parquet 格式,BE 端打印大量日志的问题。[#37012](https://github.com/apache/doris/pull/37012) - -- 修复部分情况下 FE 端重复创建大量 FileSystem 对象的问题。[#37142](https://github.com/apache/doris/pull/37142) - -- 修复部分情况下,写入 Hive 后的事务信息未清理的问题。[#37172](https://github.com/apache/doris/pull/37172) - -- 修复部分情况下,Hive 表写入操作导致线程泄露的问题。[#37247](https://github.com/apache/doris/pull/37247) - -- 修复部分情况下,无法正确获取 Hive Text 格式行列分隔符的问题。[#37188](https://github.com/apache/doris/pull/37188) - -- 修复部分情况下,读取 lz4 压缩块时的并发问题。[#37187](https://github.com/apache/doris/pull/37187) - -- 修复部分情况下,Iceberg 表 `count(*)` 返回错误的问题。[#37810](https://github.com/apache/doris/pull/37810)。 - -- 修复部分情况下,创建基于 MinIO 的 Paimon Catalog 导致 FE 元数据回放错误的问题。[#37249](https://github.com/apache/doris/pull/37249) - -- 修复部分情况下使用 Ranger 创建 Catalog 客户端卡死的问题。 [#37551](https://github.com/apache/doris/pull/37551) - -### 多表物化视图 - -- 修复当基表增加新的分区时,可能导致的分区聚合上卷改写后结果错误的问题。 [#37651](https://github.com/apache/doris/pull/37651) - -- 修复关联的基表分区删除后,物化视图分区状态没有被置为不同步的问题。 [#36602](https://github.com/apache/doris/pull/36602) - -- 修复异步物化视图构建偶现的死锁问题。 [#37133](https://github.com/apache/doris/pull/37133) - -- 修复异步物化视图单次刷新大量分区时偶现的,报错 `nereids cost too much time` 问题。[#37589](https://github.com/apache/doris/pull/37589) - -- 修复创建异步物化视图时,如果最终的 Select List 中存在 Null Literal,则无法创建的问题。[#37281](https://github.com/apache/doris/pull/37281) - -- 修复单表物化视图,如果构建了聚合的物化视图,虽然改写成功,但是 CBO 没有选择的问题。 [#35721](https://github.com/apache/doris/pull/35721) [#36058](https://github.com/apache/doris/pull/36058) - -- 修复 Join 输入都是聚合的情况下,构建分区物化视图,分区推导失败的问题。[#34781](https://github.com/apache/doris/pull/34781) - -### 半结构化数据管理 - -- 修复 VARIANT 在并发/异常数据等特殊情况下的问题。[#37976](https://github.com/apache/doris/pull/37976) [#37839](https://github.com/apache/doris/pull/37839) [#37794](https://github.com/apache/doris/pull/37794) [#37674](https://github.com/apache/doris/pull/37674) [#36997](https://github.com/apache/doris/pull/36997) - -- 修复 VARIANT 用在不支持的 SQL 中 Coredump 的问题。 [#37640](https://github.com/apache/doris/pull/37640) - -- 修复 1.x 版本升级到 2.x 或者更高版本时因为 MAP 数据类型 Coredump 的问题。 [#36937](https://github.com/apache/doris/pull/36937) - -- 修复 ES Catalog 对 Array 的支持。 [#36936](https://github.com/apache/doris/pull/36936) - -### 倒排索引 - -- 修复倒排索引 v2 DROP INDEX 元数据没有删除的问题。 [#37646](https://github.com/apache/doris/pull/37646) - -- 修复字符串长度超过“ignore above”时查询准确性问题。 [#37679](https://github.com/apache/doris/pull/37679) - -- 修复索引大小统计的问题。 [#37232](https://github.com/apache/doris/pull/37232) [#37564](https://github.com/apache/doris/pull/37564) - -### 查询优化器 - -- 修复部分因为保留关键字而导致导入无法执行的问题。[#35938](https://github.com/apache/doris/pull/35938) - -- 修复了在创建表时 CHAR(255) 类型错误的记录为 CHAR(1) 的问题。 [#37671](https://github.com/apache/doris/pull/37671) - -- 修复了在相关子查询中的连接表达式为复杂表达式时返回错误结果的问题。[#37683](https://github.com/apache/doris/pull/37683) - -- 修复了 DECIMAL 类型分桶裁剪有可能错误的问题。[#38013](https://github.com/apache/doris/pull/38013) - -- 修复了部分场景下开启 Pipeline Local Shuffle 后,聚合算子计算结果错误的问题。[#38061](https://github.com/apache/doris/pull/38016) - -- 修复当聚合算子中存在相等的表达式时,可能出现的规划报错问题。[#36622](https://github.com/apache/doris/pull/36622) - -- 修复当聚合算子中存在 Lambda 表达式时,可能出现的规划报错问题。[#37285](https://github.com/apache/doris/pull/37285) - -- 修复了由窗口函数生成的字面量在优化为字面量时类型错误导致无法执行的问题。 [#37283](https://github.com/apache/doris/pull/37283) - -- 修复了聚合函数 `foreach combinator` 错误输出 Null 属性问题。[#37980](https://github.com/apache/doris/pull/37980) - - -- 修复了 acos 函数在参数为超越范围值的字面量时不能规划的问题。[#37996](https://github.com/apache/doris/pull/37996) - -- 修复当查询指定的同步物化视图时,显示指定查询分区导致规划报错的问题。[#36982](https://github.com/apache/doris/pull/36982) - -- 修复了在规划过程中偶尔出现 NPE 的问题。[#38024](https://github.com/apache/doris/pull/38024) - -### 查询引擎 - -- 修复 DELETE WHERE 语句中,在 DECIMAL 数据类型作为条件报错的问题。[#37801](https://github.com/apache/doris/pull/37801) - -- 修复查询执行结束,但是 BE 内存不释放的问题。[#37792](https://github.com/apache/doris/pull/37792) [#37297](https://github.com/apache/doris/pull/37297) - -- 修复在千级别 QPS 场景下,Audit Log 占用 FE 内存太多的问题。https://github.com/apache/doris/pull/37786 - -- 修复 sleep 函数在输入非法值时 BE Core 的问题。[#37681](https://github.com/apache/doris/pull/37681) - -- 修复执行过程中 `sync filter size meet error` 的问题。 [#37103](https://github.com/apache/doris/pull/37103) - -- 修复执行过程中,使用时区时结果不对的问题。[#37062](https://github.com/apache/doris/pull/37062) - -- 修复 `cast string` 到 `int` 时结果不对的问题。 [#36788](https://github.com/apache/doris/pull/36788) - -- 修复 Arrow Flight 协议在开启 Pipelinex 时查询报错的问题。 [#35804](https://github.com/apache/doris/pull/35804) - -- 修复 `cast string to date/datetime` 报错的问题。 [#35637](https://github.com/apache/doris/pull/35637) - -- 修复使用 `<=>` 做大表关联查询时 BE Core 的问题。 [#36263](https://github.com/apache/doris/pull/36263) - -### 存储管理 - -- 修复列更新写入时遇到 DELETE SIGN 数据不可见问题。[#36755](https://github.com/apache/doris/pull/36755) - -- 优化 Schema Change 期间 FE 的内存占用。[#36756](https://github.com/apache/doris/pull/36756) - -- 修复 BE 重启时事务没有 Abort 导致的 BE 下线卡住问题。[#36437](https://github.com/apache/doris/pull/36437) - -- 修复 NOT-NULL 到 NULL 类型变更的偶发报错问题。 [#36389](https://github.com/apache/doris/pull/36389) - -- 优化 BE 宕机时的副本修复调度。 [#36897](https://github.com/apache/doris/pull/36897) - -- 单个 BE 创建 Tablet 时支持 round-robin 选择磁盘。 [#36900](https://github.com/apache/doris/pull/36900) - -- 修复 Publish 慢导致的查询 -230 错误。 [#36222](https://github.com/apache/doris/pull/36222) - -- 优化 Partition Balance 的速度。 [#36976](https://github.com/apache/doris/pull/36976) - -- 使用 FD 数目和内存控制 Segment Cache 避免 FD 不足。 [#37035](https://github.com/apache/doris/pull/37035) - -- 修复 Clone 和 Alter 并发可能导致的副本丢失问题。 [#36858](https://github.com/apache/doris/pull/36858) - -- 修复不能调整列顺序问题。[#37226](https://github.com/apache/doris/pull/37226) - -- 禁止自增列的部分 Schema Change 操作。 [#37331](https://github.com/apache/doris/pull/37331) - -- 修复 Delete 操作报错不准确。 [#37374](https://github.com/apache/doris/pull/37374) - -- BE 侧 Trash 过期时间调整为一天。 [#37409](https://github.com/apache/doris/pull/37409) - -- 优化 Compaction 内存占用和调度。 [#37491](https://github.com/apache/doris/pull/37491) - -- 检查潜在的过大 Backup 导致 FE 重启的问题。[#37466](https://github.com/apache/doris/pull/37466) - -- 恢复动态分区删除策略以及交叉分区的行为到 2.1.3。[#37570](https://github.com/apache/doris/pull/37570) [#37506](https://github.com/apache/doris/pull/37506) - -- 修复 DELETE 谓词重部分 DECIMAL 报错问题。 [#37710](https://github.com/apache/doris/pull/37710) - -### 数据导入 - -- 修复导入时错误处理竞争导致的数据不可见问题。[#36744](https://github.com/apache/doris/pull/36744) - -- Stream Load 导入支持 `hhl_from_base64`。 [#36819](https://github.com/apache/doris/pull/36819) - -- 修复潜在的单表非常多 Tablet 导入失败时可能导致 FE OOM 的问题。 [#36944](https://github.com/apache/doris/pull/36944) - -- 修复 FE 主从切换时自增列可能重复的问题。[#36961](https://github.com/apache/doris/pull/36961) - -- 修复 INSERT INTO SELECT 自增列报错问题。 [#37029](https://github.com/apache/doris/pull/37029) - -- 降低数据下刷线程数,优化内存占用。 [#37092](https://github.com/apache/doris/pull/37092) - -- 优化 Routine Load 任务自动恢复和错误信息。 [#37371](https://github.com/apache/doris/pull/37371) - -- 增加 Routine Load 默认攒批大小。 [#37388](https://github.com/apache/doris/pull/37388) - -- 修复 Routine Load 在 Kafka EOF 过期的任务停止问题。[#37983](https://github.com/apache/doris/pull/37983) - -- 修复一流多表 Coredump。 [#37370](https://github.com/apache/doris/pull/37370) - -- 修复 Group Commit 内存估计不准导致的提前反压问题。[#37379](https://github.com/apache/doris/pull/37379) - -- 优化 Group Commit BE 侧线程占用。 [#37380](https://github.com/apache/doris/pull/37380) - -- 修复数据没有分区时没有错误 URL 的问题。 [#37401](https://github.com/apache/doris/pull/37401) - -- 修复导入时潜在的内存误操作问题。 [#38021](https://github.com/apache/doris/pull/38021) - -### 主键模型 - -- 降低主键表 Compaction 的内存占用。 [#36968](https://github.com/apache/doris/pull/36968) - -- 修复主键副本 Clone 失败时可能的重复数据问题。 [#37229](https://github.com/apache/doris/pull/37229) - -### 内存管理 - -- 修复 Jemalloc Cache 统计不准的问题。[#37464](https://github.com/apache/doris/pull/37464) - -- 修复在 K8s / CGroup 中不能正确获取内存大小的问题。 [#36966](https://github.com/apache/doris/pull/36966) - -### 权限管理 - -- 修复 Table Valued Function 引用 Resource 时没有鉴权的问题。 [#37132](https://github.com/apache/doris/pull/37132) - -- 修复 Show Role 语句中没有 Workload Group 权限的问题。 [#36032](https://github.com/apache/doris/pull/36032) - -- 修复创建 Row Policy 时,同时执行两条语句,导致 FE 重启失败的问题。[#37342](https://github.com/apache/doris/pull/37342) - -- 修复部分情况下,老版本升级后,因为 Row Policy 导致 FE 元数据回放失败的问题。[#37342](https://github.com/apache/doris/pull/37342) - -### 其他 - -- 修复计算节点参与内部表创建的问题。[#37961](https://github.com/apache/doris/pull/37961) - -- 修复 `enable_strong_read_consistency = true` 时从延迟问题。 [#37641](https://github.com/apache/doris/pull/37641) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.6.md deleted file mode 100644 index f3944b87220be..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.6.md +++ /dev/null @@ -1,515 +0,0 @@ ---- -{ - "title": "Release 2.1.6", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.6 版本已于 2024 年 9 月 10 日正式发布。**2.1.6 版本在湖仓一体、异步物化视图、半结构化数据管理持续升级改进,同时在查询优化器、执行引擎、存储管理、数据导入与导出以及权限管理等方面完成了若干修复。欢迎大家下载使用。 - -- 官网下载:https://doris.apache.org/download - -- GitHub 下载:https://github.com/apache/doris/releases/tag/2.1.6-rc04 - -## 行为变更 - -- 移除 `create repository` 命令中的 `delete_if_exists` 选项。[#38192](https://github.com/apache/doris/pull/38192) - -- 新增会话变量 `enable_prepared_stmt_audit_log`,用于控制 JDBC 预编译语句是否记录审计日志,默认不记录。[#38624](https://github.com/apache/doris/pull/38624) [#39009](https://github.com/apache/doris/pull/39009) - -- 采用文件描述符限制和内存限制来管理 Segment Cache。[#39689](https://github.com/apache/doris/pull/39689) - -- 当 `sys_log_mode` 配置项设置为 `BRIEF` 时,在日志中增加文件位置信息,以提供更详细的上下文。[#39571](https://github.com/apache/doris/pull/39571) - -- 将会话变量 `max_allowed_packet` 的默认值调整为 16MB,提高数据传输限制。[#38697](https://github.com/apache/doris/pull/38697) - -- 在单次请求中,若包含多个 SQL 语句,各语句间必须使用分号进行分隔,以增强语句的清晰度和执行效率。[#38670](https://github.com/apache/doris/pull/38670) - -- 现在支持 SQL 语句以分号开始,提供更灵活的语句书写方式。[#39399](https://github.com/apache/doris/pull/39399) - -- 在执行如 `show create table` 等语句时,类型格式与 MySQL 保持一致,提升与 MySQL 的兼容性。[#38012](https://github.com/apache/doris/pull/38012) - -- 当新优化器规划查询超时后,不再回退到旧优化器,以避免潜在的性能下降问题。[#39499](https://github.com/apache/doris/pull/39499) - -## 新功能 - -### Lakehouse - -- 实现 Iceberg 表的写回功能。 - - - 更多信息,请查看文档数据湖构建-[Iceberg](../../lakehouse/datalake-building/iceberg-build) - -- 增强 SQL 拦截规则,支持对外表的拦截处理。 - - - 更多信息,请查看文档查询管理-[SQL 拦截](../../admin-manual/query-admin/sql-interception) - -- 新增系统表`file_cache_statistics`,用于查看 BE 节点的数据缓存性能指标。 - - - 更多信息,请查看文档系统表-[file_cache_statistics](../../admin-manual/system-tables/information_schema/file_cache_statistics) - -### 异步物化视图 - -- 支持在 Insert 中进行透明改写。[#38115](https://github.com/apache/doris/pull/38115) - -- 支持对查询中存在 VARIANT 类型时的透明改写。[#37929](https://github.com/apache/doris/pull/37929) - -### 半结构化数据管理 - -- 支持 ARRAY MAP 类型到 JSON 类型的 CAST 转换功能。[#36548](https://github.com/apache/doris/pull/36548) - -- 引入`json_keys`函数,用于提取 JSON 中的键名。[#36411](https://github.com/apache/doris/pull/36411) - -- 支持在导入 JSON 时指定`json path`$``[#38213](https://github.com/apache/doris/pull/38213) - -- ARRAY / MAP / STRUCT 类型支持`replace_if_not_null`[#38304](https://github.com/apache/doris/pull/38304) - -- 允许调整 ARRAY / MAP / STRUCT 类型的列顺序。[#39210](https://github.com/apache/doris/pull/39210) - -- 新增`multi_match`函数,支持在多个字段中匹配关键词,并利用倒排索引加速查询。[#37722](https://github.com/apache/doris/pull/37722) - -### 查询优化器 - -- 完善 MySQL 协议返回列的信息,包括原始数据库名、表名、列名和别名。[#38126](https://github.com/apache/doris/pull/38126) - -- 增强聚合函数`group_concat`,支持同时使用`order by`和`distinct`进行复杂数据聚合。[#38080](https://github.com/apache/doris/pull/38080) - -- 改进了 SQL 缓存机制,支持通过注释区分不同的查询以复用缓存结果。[#40049](https://github.com/apache/doris/pull/40049) - -- 增强分区裁剪功能,支持在过滤条件中使用`date_trunc`和`date`函数。[#38025](https://github.com/apache/doris/pull/38025) [#38743](https://github.com/apache/doris/pull/38743) - -- 允许在表别名前使用数据库名作为限定名前缀。[#38640](https://github.com/apache/doris/pull/38640) - -- 支持 Hint 格式注释。[#39113](https://github.com/apache/doris/pull/39113) - -### 执行引擎 - -- `Group concat`函数现支持`distinct`和`order by`选项。[#38744](https://github.com/apache/doris/pull/38744) - -### Others - -- 新增系统表`table_properties`,便于用户查看和管理表的各项属性。 - - - 更多信息,请查看文档 [table_properties](../../admin-manual/system-tables/information_schema/table_properties/) -- 新增 FE 中死锁和慢锁检测功能。 - - - 更多信息,请查看文档 [FE 锁管理](../../admin-manual/trouble-shooting/frontend-lock-manager) - -## 改进提升 - -### 湖仓一体 - -- 革新外表元数据缓存机制。 - - - 更多信息,请查看文档 [元数据缓存](../../lakehouse/metacache)。 - -- 新增会话变量`keep_carriage_return`,默认关闭。读取 Hive Text 格式表时,默认将`\r\n`与`\n`均视为换行符。[#38099](https://github.com/apache/doris/pull/38099) - -- 优化 Parquet / ORC 文件读写内存统计。[#37257](https://github.com/apache/doris/pull/37257) - -- Paimon 表支持 IN/ NOT IN 谓词下推。[#38390](https://github.com/apache/doris/pull/38390) - -- 升级优化器,支持 Hudi 表的 Time Travel 语法。[#38591](https://github.com/apache/doris/pull/38591) - -- Kerberos 认证流程优化,提升安全认证效率与稳定性。[#37301](https://github.com/apache/doris/pull/37301) - -- 支持 Rename column 操作后读取 Hive 表。[#38809](https://github.com/apache/doris/pull/38809) - -- 提升外表分区列读取性能。[#38810](https://github.com/apache/doris/pull/38810) - -- 优化外表查询规划,优化数据分片合并策略,有效避免小分片对查询性能的影响。[#38964](https://github.com/apache/doris/pull/38964) - -- SHOW CREATE DATABASE / TABLE 新增 Location 等属性展示。[#39644](https://github.com/apache/doris/pull/39644) - -- MaxCompute Catalog 扩展支持复杂类型。[#39822](https://github.com/apache/doris/pull/39822) - -- 优化文件缓存加载策略,通过异步加载方式避免 BE 启动时间过长的问题。[#39036](https://github.com/apache/doris/pull/39036) - -- 升级文件缓存淘汰策略,有效管理长时间占用锁的资源。[#39721](https://github.com/apache/doris/pull/39721) - -### 异步物化视图 - -- 支持小时、周及季度级别的分区上卷构建。[#37678](https://github.com/apache/doris/pull/37678) - -- 基于 Hive 外表的物化视图,在刷新前自动更新元数据缓存,以保证每次刷新可以获取最新数据。[#38212](https://github.com/apache/doris/pull/38212) - -- 通过批量获取元数据,优化存算分离模式下的透明改写规划性能。[#39301 ](https://github.com/apache/doris/pull/39301) - -- 通过禁止重复枚举,进一步提升透明改写的规划性能。[#39541 ](https://github.com/apache/doris/pull/39541) - -- 优化基于 Hive 外表分区刷新物化视图的透明改写性能。[#38525](https://github.com/apache/doris/pull/38525) - -### 半结构化数据管理 - -- 优化 TOPN 查询内存分配,显著提升查询性能。[#37429](https://github.com/apache/doris/pull/37429) - -- 优化倒排索引字符串处理性能。[#37395](https://github.com/apache/doris/pull/37395) - -- 优化倒排索引在 MOW 表中的性能。[#37428](https://github.com/apache/doris/pull/37428) - -- 建表时支持指定行存 `page_size`,以控制压缩效果。[#37145](https://github.com/apache/doris/pull/37145) - -### 查询优化器 - -- 调整 Mark Join 行数估计算法,提高基数估算准确性。[#38270](https://github.com/apache/doris/pull/38270) - -- 优化 Semi / Anti Join 代价估计算法,能够正确选择最佳 Join 顺序。[#37951](https://github.com/apache/doris/pull/37951) - -- 调整部分列无统计信息情况下的过滤估计算法,使估算更精准。[#39592](https://github.com/apache/doris/pull/39592) - -- 改进 Set Operation 算子 Instance 计算逻辑,防止在极端情况下并行度不足的问题。[#39999](https://github.com/apache/doris/pull/39999) - -- 优化 Bucket Shuffle 使用策略,数据打散不充分时也能获得更好的性能。[#36784](https://github.com/apache/doris/pull/36784) - -- 窗口函数数据提前过滤,支持单投影中存在多窗口函数的情况。[#38393](https://github.com/apache/doris/pull/38393) - -- 过滤条件含 `NullLiteral` 时,智能折叠为 False,转换为 `EmptySet`,减少不必要的数据扫描量。[#38135](https://github.com/apache/doris/pull/38135) - -- 扩大谓词推导适用范围,在特定模式的查询下能够大幅减少数据扫描量。[#37314](https://github.com/apache/doris/pull/37314) - -- 在分区裁剪中支持部分短路计算逻辑,以提升分区裁剪性能。在特定场景下,性能提升超过 100%。[#38191](https://github.com/apache/doris/pull/38191) - -- 在用户变量中,支持计算任意的标量函数。[#39144 ](https://github.com/apache/doris/pull/39144) - -- 当查询中存在别名冲突时,报错信息能够保持与 MySQL 一致。[#38104 ](https://github.com/apache/doris/pull/38104) - -### 执行引擎 - -- 实现 AggState 从 2.1 到 3.x 版本的兼容,并解决了 coredump 问题。[#37104](https://github.com/apache/doris/pull/37104) - -- 重构无 Join 操作时的 Local Shuffle 策略选择机制。[#37282](https://github.com/apache/doris/pull/37282) - -- 将内部表查询的 scanner 调整为异步模式,以防止查询内部表时出现卡顿。[#38403](https://github.com/apache/doris/pull/38403) - -- 优化 Join 算子在构建 Hash 表时的 Block Merge 流程。[#37471](https://github.com/apache/doris/pull/37471) - -- 缩短 MultiCast 持有锁的时间。[#37462](https://github.com/apache/doris/pull/37462) - -- 优化 gRPC 的 keepAliveTime 设置并增加了链接监测机制,降低了因 RPC 错误导致的查询失败率。[#37304](https://github.com/apache/doris/pull/37304) - -- 当内存超出限制时,将清理 `jemalloc` 中的所有 Dirty Pages。[#37164](https://github.com/apache/doris/pull/37164) - -- 提升 `aes_encrypt`/`decrypt` 函数对常量类型的处理效率。[#37194](https://github.com/apache/doris/pull/37194) - -- 加快 `json_extract` 函数对常量数据的处理速度。[#36927](https://github.com/apache/doris/pull/36927) - -- 提高 `ParseUrl` 函数处理常量数据的性能。[#36882](https://github.com/apache/doris/pull/36882) - -### 存储管理 - -**备份恢复 / 跨集群同步** - -- Restore 功能现已支持删除多余的 Tablet 和分区选项。[#39363](https://github.com/apache/doris/pull/39363) - -- 在创建 Repository 时,支持检查存储连通性。[#39538](https://github.com/apache/doris/pull/39538) - -- Binlog 支持 Drop 表操作,使 CCR 能够支持 Drop 表的增量同步。[#38541](https://github.com/apache/doris/pull/38541) - -**Compaction** - -- 改进高优 Compaction 任务不受并发控制限制的问题。[#38189](https://github.com/apache/doris/pull/38189) - -- 根据数据特性自动调整 Compaction 的内存消耗。[#37486](https://github.com/apache/doris/pull/37486) - -- 修复顺序数据优化策略可能引发的聚合表或 MOR UNIQUE 表数据准确性问题。[#38299](https://github.com/apache/doris/pull/38299) - -- 优化补副本期间 Compaction 选择 rowset 的策略,以避免触发 -235 错误。[#39262](https://github.com/apache/doris/pull/39262) - -**Merge-on-Write** - -- 解决了列更新和 Compaction 并发时列更新慢的问题。[#38682](https://github.com/apache/doris/pull/38682) - -- 修复一次导入大量数据时,Segcompaction 可能导致 MOW 数据不正确的问题。[#38992](https://github.com/apache/doris/pull/38992) [#39707](https://github.com/apache/doris/pull/39707) - -- 解决 BE 重启后,可能导致列更新数据丢失的问题。[#39035](https://github.com/apache/doris/pull/39035) - -**其他** - -- 增加了 FE 配置,用于控制冷热分层下查询是否优先访问本地数据的副本。[#38322](https://github.com/apache/doris/pull/38322) - -- 解决了过期的 BE 汇报消息未包含新创建 Tablet 的问题。[#38839 ](https://github.com/apache/doris/pull/38839)[#39605](https://github.com/apache/doris/pull/39605) - -- 优化副本调度优先级策略,优先调度缺少数据的副本。[#38884](https://github.com/apache/doris/pull/38884) - -- 对于有未完成 ALTER JOB 的 Tablet,不进行均衡调度。[#39202](https://github.com/apache/doris/pull/39202) - -- List 分区方式的表现支持修改分桶数。[#39688](https://github.com/apache/doris/pull/39688) - -- 优先选择在线的磁盘服务进行查询。[#39654](https://github.com/apache/doris/pull/39654) - -- 改进了同步物化视图的 Base 表不支持删除时的提示信息。[#39857](https://github.com/apache/doris/pull/39857) - -- 改进了单列超过 4G 时的报错信息。[#39897](https://github.com/apache/doris/pull/39897) - -- 修复了 Insert 语句遇到 Plan 错误时未正确中止事务的问题。[#38260](https://github.com/apache/doris/pull/38260) - -- 修复了 SSL 链接关闭时的异常问题。[#38677](https://github.com/apache/doris/pull/38677) - -- 修复了使用 Label 中止事务时未持有表锁的问题。[#38842](https://github.com/apache/doris/pull/38842) - -- 修复了 Gson Pretty 导致 Image 过大的问题。[#39135](https://github.com/apache/doris/pull/39135) - -- 修复了 CREAT TABLE 语句在新优化器下未检查 Bucket 为 0 的问题。[#38999](https://github.com/apache/doris/pull/38999) - -- 修复了 DELETE 条件谓词中包含中文列时报错的问题。[#39500](https://github.com/apache/doris/pull/39500) - -- 修复了分区均衡模式下频繁均衡 Tablet 的问题。[#39606](https://github.com/apache/doris/pull/39606) - -- 修复了分区丢失 Storage Policy 属性的问题。[#39677](https://github.com/apache/doris/pull/39677) - -- 修复了事务内导入多个表时统计信息不正确的问题。[#39548](https://github.com/apache/doris/pull/39548) - -- 修复了 Random 分桶表删除时报错的问题。[#39830](https://github.com/apache/doris/pull/39830) - -- 修复了 UDF 不存在导致 FE 无法启动的问题。[#39868](https://github.com/apache/doris/pull/39868) - -- 修复了 FE 主从 Last Failed Version 不一致的问题。[#39947](https://github.com/apache/doris/pull/39947) - -- 修复了 Schema Change Job 被取消时,相关 Tablet 可能仍处于 Schema Change 状态的问题。[#39327](https://github.com/apache/doris/pull/39327) - -- 修复了单个语句修改类型和列顺序 SC 时出现的报错问题。[#39107](https://github.com/apache/doris/pull/39107) - -### 数据导入 - -- 改进了导入发生 -238 错误时的错误信息提示。[#39182](https://github.com/apache/doris/pull/39182) - -- 实现在 Restore 分区时,其他分区可以同时进行导入。[#39915](https://github.com/apache/doris/pull/39915) - -- 优化了 Group Commit FE 选择 BE 的策略。[#37830](https://github.com/apache/doris/pull/37830) [#39010](https://github.com/apache/doris/pull/39010) - -- 对于一些常见的 Stream Load 错误信息,避免了程序栈的打印,简化了错误处理。[#38418](https://github.com/apache/doris/pull/38418) - -- 改进下线的 BE 可能影响导入出错的问题。[#38256](https://github.com/apache/doris/pull/38256) - -### 权限管理 - -- 优化了开启 Ranger 鉴权插件后的访问性能。[#38575](https://github.com/apache/doris/pull/38575) - -- 优化了 Refresh Catalog / Database / Table 操作的权限策略,用户仅需 SHOW 权限即可执行此操作。[#39008](https://github.com/apache/doris/pull/39008) - -## Bug 修复 - -### 湖仓一体 - -- 修复切换 Catalog 时可能出现的数据库找不到问题。[#38114](https://github.com/apache/doris/pull/38114) - -- 解决了读取 S3 上不存在的数据时出现的异常报错。[#38253](https://github.com/apache/doris/pull/38253) - -- 修正导出操作时,指定异常路径可能导致导出位置异常的问题。[#38602](https://github.com/apache/doris/pull/38602) - -- 修复 Paimon 表时间列时区问题。[#37716](https://github.com/apache/doris/pull/37716) - -- 临时关闭 Parquet PageIndex 功能以避免部分错误行为。 - -- 修复外表查询时,错误选取黑名单中 Backend 节点的问题。[#38984](https://github.com/apache/doris/pull/38984) - -- 解决读取 Parquet Struct 列类型中缺失子列导致查询错误的问题。[#39192](https://github.com/apache/doris/pull/39192) - -- 修复 JDBC Catalog 的谓词下推问题。[#39082](https://github.com/apache/doris/pull/39082) - -- 修正 Parquet 格式读取时,历史格式导致查询结果错误的问题。[#39375](https://github.com/apache/doris/pull/39375) - -- 增强了 Oracle JDBC Catalog 对 OJDBC6 驱动的兼容性。[#39408](https://github.com/apache/doris/pull/39408) - -- 解决了 Refresh Catalog/Database/Table 操作可能导致的 FE 内存泄漏问题。[#39186](https://github.com/apache/doris/pull/39186) [#39871](https://github.com/apache/doris/pull/39871) - -- 修复了 JDBC Catalog 在某些情况下的线程泄漏问题。 [#39666 ](https://github.com/apache/doris/pull/39666)[#39582](https://github.com/apache/doris/pull/39582) - -- 修复开启 Hive Metastore 事件订阅后,可能出现事件处理失败的问题。[#39239](https://github.com/apache/doris/pull/39239) - -- 禁止读取自定义 Escape CHAR 和 NULL Format 的 Hive Text 格式表,防止数据错误。[#39869](https://github.com/apache/doris/pull/39869) - -- 修复某些情况下,无法访问通过 Iceberg API 创建的 Iceberg 表的问题。[#39203](https://github.com/apache/doris/pull/39203) - -- 修复无法读取存储在开启高可用的 HDFS 集群上的 Paimon 表的问题。[#39876](https://github.com/apache/doris/pull/39876) - -- 修复开启文件缓存后,读取 Paimon 表 Deletion Vector 可能导致错误的问题。[#39875](https://github.com/apache/doris/pull/39875) - -- 修复某些情况下读取 Parquet 可能导致死锁的问题 [#39945](https://github.com/apache/doris/pull/39945) - -### 异步物化视图 - -- 修复无法在 Follower FE 上使用 `show create materialized view` 命令的问题。[#38794](https://github.com/apache/doris/pull/38794) - -- 统一异步物化视图在元数据中的对象类型,使其在数据工具中正常显示。[#38797](https://github.com/apache/doris/pull/38797) - -- 修复嵌套异步物化视图总是进行全量刷新的问题。[#38698](https://github.com/apache/doris/pull/38698) - -- 修正 Cancel 任务在重启 FE 后状态可能显示为 running 的问题。 [#39424](https://github.com/apache/doris/pull/39424) - -- 修复错误使用上下文,导致刷新物化视图任务可能非预期失败的问题。[#39690](https://github.com/apache/doris/pull/39690) - -- 修复基于外表创建异步物化视图时,VARCHAR 类型因长度不合理导致写入失败的问题。[#37668](https://github.com/apache/doris/pull/37668) - -- 修复 FE 重启或 Catalog 重建后,基于外表的异步物化视图可能失效的问题。[#39355](https://github.com/apache/doris/pull/39355) - -- 禁止 List 分区的物化视图使用分区上卷,以防止生成错误数据。[#38124](https://github.com/apache/doris/pull/38124) - -- 修复在聚合上卷透明改写时,SELECT List 中存在字面量导致的结果错误问题。[#38958](https://github.com/apache/doris/pull/38958) - -- 修复当查询中存在形如`a = a`的过滤条件时,透明改写可能出错的问题。[#39629](https://github.com/apache/doris/pull/39629) - -- 修复透明改写直查外表无法成功的问题。[#39041](https://github.com/apache/doris/pull/39041) - -### 半结构化数据管理 - -- 删除老优化器上 `PreparedStatement` 的支持。[#39465](https://github.com/apache/doris/pull/39465) - -- 修复 JSON 转义字符处理的问题。[#37251 ](https://github.com/apache/doris/pull/37251) - -- 修复 JSON 字段重复处理的问题。 [#38490](https://github.com/apache/doris/pull/38490) - -- 修复部分 ARRAY MAP 函数的问题。[#39307](https://github.com/apache/doris/pull/39307) [ #39699 ](https://github.com/apache/doris/pull/39699) [#39757](https://github.com/apache/doris/pull/39757) - -- 修复倒排索引查询和 LIKE 查询复杂组合的问题。[#36687](https://github.com/apache/doris/pull/36687) - -### 查询优化器 - -- 修复分区过滤条件中存在 `or` 时,可能导致分区裁剪错误的问题。[#38897 ](https://github.com/apache/doris/pull/38897) - -- 修复存在复杂表达式时,可能导致的分区裁剪错误的问题。[#39298](https://github.com/apache/doris/pull/39298) - -- 修复 AGG_STATE 类型中的子类型,Nullable 可能规划不正确导致执行报错的问题。[#37489](https://github.com/apache/doris/pull/37489) - -- 修复 Set Operation 算子 Nullable 可能规划不正确,导致执行报错的问题。[#39109](https://github.com/apache/doris/pull/39109) - -- 修复 Intersect 算子执行优先级不正确的问题。 [#39095](https://github.com/apache/doris/pull/39095) - -- 修复当查询中存在最大合法日期字面量时,可能出现 NPE 的问题。[#39482](https://github.com/apache/doris/pull/39482) - -- 修复偶现的规划报错,导致的执行时报错 Slot 不合法的问题。[#39640](https://github.com/apache/doris/pull/39640) - -- 修复重复引用 CTE 中的列,可能导致结果缺少部分列数据的问题。[#39850](https://github.com/apache/doris/pull/39850) - -- 修复在查询中存在 CASE WHEN 时,偶现的规划报错问题。[#38491](https://github.com/apache/doris/pull/38491) - -- 修复不能将 IP 类型隐式转换为 STRING 类型的问题。[#39318](https://github.com/apache/doris/pull/39318) - -- 修复在使用多维聚合时,当 SELECT List 中存在相同列和其别名时,可能出现的规划报错问题。[#38166](https://github.com/apache/doris/pull/38166) - -- 修复使用 BE 常量折叠时,处理 BOOLEAN 类型可能不正确的问题。[#39019](https://github.com/apache/doris/pull/39019) - -- 修复在表达式中存在 `default_cluster:` 作为 Database 名称前缀导致的规划报错问题。[#39114](https://github.com/apache/doris/pull/39114) - -- 修复 Insert Into 可能导致的死锁问题。[#38660](https://github.com/apache/doris/pull/38660) - -- 修复没有在规划全过程持有表锁导致可能出现规划报错的问题。 [#38950](https://github.com/apache/doris/pull/38950) - -- 修复创建表时不能正确处理 CHAR(0), VARCHAR(0) 的问题。[#38427](https://github.com/apache/doris/pull/38427) - -- 修复 SHOW CREAT TABLE 可能错误的显示出隐藏列的问题。[#38796](https://github.com/apache/doris/pull/38796) - -- 修复创建表时没有禁止使用和隐藏列同名列的问题。 [#38796](https://github.com/apache/doris/pull/38796) - -- 修复在执行 INSERT INTO AS SELECT 时,如果存在 CTE,偶现的规划报错问题。[#38526](https://github.com/apache/doris/pull/38526) - -- 修复 INSERT INTO VALUES 无法自动填充 NULL 默认值的问题。[#39122](https://github.com/apache/doris/pull/39122) - -- 修复在 DELETE 中使用 CTE,但是没有使用 USING 时,导致的 NPE 问题。[#39379](https://github.com/apache/doris/pull/39379) - -- 修复对随机分布的聚合模型表执行删除操作会失败的问题。[#37985](https://github.com/apache/doris/pull/37985) - -### 执行引擎 - -- 修复多个场景下,Pipeline 执行引擎被卡顿,导致查询不结束的问题。[#38657](https://github.com/apache/doris/pull/38657) [#38206](https://github.com/apache/doris/pull/38206) [#38885](https://github.com/apache/doris/pull/38885) - -- 修复了 NULL 和非 NULL 列在差集计算时导致的 Coredump 问题。[#38737](https://github.com/apache/doris/pull/38737) - -- 修复了 `width_bucket` 函数结果错误的问题。[#37892](https://github.com/apache/doris/pull/37892) - -- 修复了当单行数据很大且返回结果集也很大时(超过 2GB)查询报错的问题。[#37990](https://github.com/apache/doris/pull/37990) - -- 修复了 `stddev` 在 `DecimalV2` 类型下结果错误的问题。[#38731](https://github.com/apache/doris/pull/38731) - -- 修复了 `MULTI_MATCH_ANY` 函数导致的 Coredump 问题。[#37959](https://github.com/apache/doris/pull/37959) - -- 修复了 INSERT OVERWRITE AUTO PARTITION 导致事务回滚的问题。[#38103](https://github.com/apache/doris/pull/38103) - -- 修复了 `convert_tz` 函数结果错误的问题。[#37358](https://github.com/apache/doris/pull/37358) [#38764](https://github.com/apache/doris/pull/38764) - -- 修复了 `collect_set` 函数结合窗口函数使用时 Coredump 的问题。[#38234](https://github.com/apache/doris/pull/38234) - -- 修复了 `mod` 函数在异常输入时导致的 Coredump 问题。[#37999](https://github.com/apache/doris/pull/37999) - -- 修复了多线程下执行相同表达式可能导致 Java UDF 结果错误的问题。[#38612](https://github.com/apache/doris/pull/38612) - -- 修复了 `conv` 函数返回类型错误导致的溢出问题。[#38001](https://github.com/apache/doris/pull/38001) - -- 修复了 `histogram` 函数结果不稳定的问题。[#38608](https://github.com/apache/doris/pull/38608) - -### 存储管理 - -- 修复备份恢复后,写入数据时可能出现不可读的问题。[#38343](https://github.com/apache/doris/pull/38343) - -- 修复跨版本 Restore Version 使用问题。[#38396](https://github.com/apache/doris/pull/38396) - -- 修复 Backup 失败时 Job 没有取消的问题。[#38993](https://github.com/apache/doris/pull/38993) - -- 修复 2.1.4 升级到 2.1.5 CCR 报 NPE,导致 FE 不能启动的问题。[#39910](https://github.com/apache/doris/pull/39910) - -- 修复 Restore 之后视图和物化视图不能使用的问题。[#38072](https://github.com/apache/doris/pull/38072) [#39848](https://github.com/apache/doris/pull/39848) - -### 数据导入 - -**Routine Load** - -- 修复 Routine Load 一流多表可能得内存泄露的问题。 [#38824](https://github.com/apache/doris/pull/38824) - -- 修复 Routine Load 包围符和转义符不生效的问题。[#38825](https://github.com/apache/doris/pull/38825) - -- 修复 Routine Load 任务名包含大写字母时 `show routineload` 结果不正确的问题。[#38826](https://github.com/apache/doris/pull/38826) - -- 修复改变 Routine Load Topic 时没有重置 Offset Cache 的问题。[#38474](https://github.com/apache/doris/pull/38474) - -- 修复并发情况下 `show routineload` 可能触发异常的问题。[#39525](https://github.com/apache/doris/pull/39525) - -- 修复 Routine Load 可能重复导入数据的问题。[#39526](https://github.com/apache/doris/pull/39526) - -**Group Commit** - -- 修复 JDBC 方式下打开 Group Commit 时 setNull 导致的数据报错问题 [#38276](https://github.com/apache/doris/pull/38276) - -- 修复打开 `group commit insert` 发往非 Master FE 时可能导致 NPE 问题 [#38345](https://github.com/apache/doris/pull/38345) - -- 修复 Group Commit 内部写数据错误处理不正确的问题。[#38997](https://github.com/apache/doris/pull/38997) - -- 修复 Group Commit 执行规划失败时可能触发的 Coredump。[#39396](https://github.com/apache/doris/pull/39396) - -**其它** - -- 修复并发导入 Auto Partition 表可能报 Tablet 不存在的问题。[#38793](https://github.com/apache/doris/pull/38793) - -- 修复可能的 Load Stream 泄露问题。[#39039](https://github.com/apache/doris/pull/39039) - -- 修复 INSERT INTO SELECT 没有数据时开启事务的问题。[#39108](https://github.com/apache/doris/pull/39108) - -- 使用 Memtable 前移时忽略单副本导入的配置。[#39154](https://github.com/apache/doris/pull/39154) - -- 修复后台导入 `stream load record` 遇见 Database 删除时异常中止的问题。 [#39527](https://github.com/apache/doris/pull/39527) - -- 修复 Strict Mode 模式下,出现数据错误时错误信息提示不准确的问题。[#39587](https://github.com/apache/doris/pull/39587) - -- 修复 Stream Load 遇见错误数据不返回 Error URL 的问题。[#38417](https://github.com/apache/doris/pull/38417) - -- 修复 Insert Overwrite 和 Auto Partition 配合使用的问题。[#38442](https://github.com/apache/doris/pull/38442) - -- 修复 CSV 遇到行分隔符被包围符包围数据时解析错误的问题。[#38445](https://github.com/apache/doris/pull/38445) - -### 数据导出 - -- 修复导出操作中指定 `delete_existing_files` 属性后,可能会重复删除导出数据的问题。[#39304](https://github.com/apache/doris/pull/39304) - -### 权限管理 - -- 修复创建物化视图时,错误地要求拥有 ALTER TABLE 的权限的问题。[#38011](https://github.com/apache/doris/pull/38011) - -- 修复 `show routine load` 时,Database 显式为空的问题。[#38365](https://github.com/apache/doris/pull/38365) - -- 修复 `create table like` 错误的要求拥有对原表的创建权限的问题。[#37879](https://github.com/apache/doris/pull/37879) - -- 修复赋权操作没有检查对象是否存在的问题。[#39597](https://github.com/apache/doris/pull/39597) - -## 版本升级说明 - -Doris 升级请遵守不要跨两个二位版本升级的原则,依次往后升级。 - -比如从 0.15.x 升级到 2.0.x 版本,则建议先升级至 1.1 最新版本,然后升级到最新的 1.2 版本,最后升级到最新的 2.0 版本,以此类推。 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.7.md deleted file mode 100644 index 277aee937c639..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.2/releasenotes/v2.1/release-2.1.7.md +++ /dev/null @@ -1,163 +0,0 @@ ---- -{ - "title": "Release 2.1.7", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.7 版本已于 2024 年 11 月 10 日正式发布。**2.1.7 版本持续升级改进,同时在湖仓一体、异步物化视图、半结构化数据管理、查询优化器、执行引擎、存储管理、以及权限管理等方面完成了若干修复。欢迎大家下载使用。 - -- [立即下载](https://doris.apache.org/download) -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.7-rc03) - -## 行为变更 - -- 以下全局变量会被强制设置到下列默认值 - - enable_nereids_dml: true - - enable_nereids_dml_with_pipeline: true - - enable_nereids_planner: true - - enable_fallback_to_original_planner: true - - enable_pipeline_x_engine: true -- 审计日志增加了新的列 [#42262](https://github.com/apache/doris/pull/42262) - - 更多信息,请参考[管理指南](../../admin-manual/audit-plugin) - -## 新功能 - -### 异步物化视图 - -- 异步物化视图增加了一个属性 use_for_rewrite 用于控制是否参与透明改写 [#40332](https://github.com/apache/doris/pull/40332) - -### 查询执行引擎 - -- 在 Profile 中输出变更的 session variable 列表。[#41016 ](https://github.com/apache/doris/pull/41016) -- 增加了`trim_in`、`ltrim_in` 和 `rtrim_in` 函数的支持。[#42641](https://github.com/apache/doris/pull/42641) -- 增加了一些 URL 函数,包括对 `to``p_level_domain`、`first_significant_subdomain` 、`cut_to_first_significant_subdomain` 支持。[#42916](https://github.com/apache/doris/pull/42916) -- 增加了 `bit_set` 函数。[#42099](https://github.com/apache/doris/pull/42099) -- 增加了`count_substrings` 函数。[#42055](https://github.com/apache/doris/pull/42055) -- 增加 `translate` 和 `url_encode` 函数。[#41051](https://github.com/apache/doris/pull/41051) -- 增加 `normal_cdf`, `to_iso8601`, `from_iso8601_date` 函数。[ #40695](https://github.com/apache/doris/pull/40695) - - -### 存储管理 - -- 增加了 `information_schema.table_options` 和 `information_schema.``table_properties` 系统表,支持查询建表时设置的一些属性。[#34384](https://github.com/apache/doris/pull/34384) - - 更多信息,请参考系统表: - - [table_options](../../admin-manual/system-tables/information_schema/table_options) - - [table_properties](../../admin-manual/system-tables/information_schema/table_properties) -- 支持 `bitmap_empty` 作为默认值。[#40364](https://github.com/apache/doris/pull/40364) -- 增加了一个新的 Session 变量`require_sequence_in_insert` 来控制向 Unique Key 表进行`insert into select` 写入时,是否必须提供 Sequence 列。[#41655](https://github.com/apache/doris/pull/41655) - -### 其他 - -允许在 BE WebUI 页面生成火焰图。[#41044](https://github.com/apache/doris/pull/41044) - -## 改进提升 - -### 湖仓一体 - -- 支持写入数据到 Hive Text 格式表。[#40537](https://github.com/apache/doris/pull/40537) - - 更多信息,请参考[使用 Hive 构建数据湖](../../lakehouse/datalake-building/hive-build/)文档 -- 使用 MaxCompute Open Storage API 访问 MaxCompute 数据。[#41610](https://github.com/apache/doris/pull/41610) - - 更多信息,请参考 [MaxCompute](../../lakehouse/database/max-compute/) 文档 -- 支持 Paimon DLF Catalog。[#41694](https://github.com/apache/doris/pull/41694) - - 更多信息,请参考 [Paimon Catalog](../../lakehouse/datalake-analytics/paimon/) 文档 -- 新增语法 `table$partitions` 语法支持直接查询 Hive 分区信息 [#41230](https://github.com/apache/doris/pull/41230) - - 更多信息,请参考[通过 Hive 分析数据湖](../../lakehouse/datalake-analytics/hive/)文档 -- 支持 brotli 压缩格式的 Parquet 文件读取。[#42162](https://github.com/apache/doris/pull/42162) -- 支持读取 Parquet 文件中的 DECIMAL 256 类型。[#42241](https://github.com/apache/doris/pull/42241) -- 支持读取 OpenCsvSerde 格式的 Hive 表。[#42939](https://github.com/apache/doris/pull/42939) - -### 异步物化视图 - -- 细化了异步物化视图中构建时锁持有的粒度。[#40402](https://github.com/apache/doris/pull/40402) [#41010](https://github.com/apache/doris/pull/41010) - -### 查询优化器 - -- 优化了极端情况下统计信息收集和使用的准确性,以提升规划稳定性。[#40457](https://github.com/apache/doris/pull/40457) -- 现在可以在更多情况下生成 Runtime Filter,以提升查询性能。 [#40815](https://github.com/apache/doris/pull/40815) -- 提升数值,日期和字符串函数的常量折叠能力,以提升查询性能。[#40820 ](https://github.com/apache/doris/pull/40820) -- 优化了列裁剪的算法,以提升查询性能。[#41548](https://github.com/apache/doris/pull/41548) - -### 查询执行引擎 - -- 支持并行的 Prepare 降低短查询的耗时。[#40270](https://github.com/apache/doris/pull/40270) -- 修正了 Profile 中一些 Counter 的名字,保持跟审计日志一致。[#41993](https://github.com/apache/doris/pull/41993) -- 增加了新的 Local Shuffle 规则,使得部分查询更快。[#40637](https://github.com/apache/doris/pull/40637) - -### 存储管理 - -- Show Partitions 命令支持显示 Commit Version。 [#28274](https://github.com/apache/doris/pull/28274) -- 建表时检查不合理的 Partition EXPR。[#40158](https://github.com/apache/doris/pull/40158) -- 优化 Routine Load EOF 时的调度逻辑。[#40509](https://github.com/apache/doris/pull/40509) -- Routine Load 感知 Schema 变化。[#40508](https://github.com/apache/doris/pull/40508) -- 优化 Routine Load Task 超时逻辑。[#41135](https://github.com/apache/doris/pull/41135) - -### 其他 - -- 支持通过 BE 配置关闭 BRPC 的内置服务端口。[#41047](https://github.com/apache/doris/pull/41047) -- 修复审计日志缺失字段以及重复记录的问题。[#41047](https://github.com/apache/doris/pull/43015) - -## Bug 修复 - -### 湖仓一体 - -- 修复了 INSERT OVERWRITE 的行为跟 Hive 不一致的问题。[#39840](https://github.com/apache/doris/pull/39840) -- 清理临时创建的文件夹,解决 HDFS 上空文件夹太多的问题。[#40424](https://github.com/apache/doris/pull/40424) -- 修复某些情况下,使用 JDBC Catalog 导致 FE 内存泄露的问题。[#40923](https://github.com/apache/doris/pull/40923) -- 修复某些情况下,使用 JDBC Catalog 导致 BE 内存泄露的问题。[#41266](https://github.com/apache/doris/pull/41266) -- 修复某些情况下,读取 Snappy 压缩格式错误的问题。[#40862](https://github.com/apache/doris/pull/40862) -- 修复某些情况下,FE 端 FileSystem 可能泄露的问题。[#41108](https://github.com/apache/doris/pull/41108) -- 修复某些情况下,通过 EXPLAIN VERBOSE 查看外表执行计划可能导致空指针的问题。[#41231](https://github.com/apache/doris/pull/41231) -- 修复无法读取 Paimon parquet 格式表的问题。[#41487](https://github.com/apache/doris/pull/41487) -- 修复 JDBC Oracle Catalog 兼容性改动引入的性能问题。[#41407](https://github.com/apache/doris/pull/41407) -- 禁止下推隐式转换后的谓词条件已解决 JDBC Catalog 某些情况下查询结果不正确的问题。[#42242](https://github.com/apache/doris/pull/42242) -- 修复 External Catalog 中表名大小写访问异常的一些问题。[#42261](https://github.com/apache/doris/pull/42261) - -### 异步物化视图 - -- 修复用户指定的 Start Time 不生效的问题。[#39573](https://github.com/apache/doris/pull/39573) -- 修复嵌套物化视图不刷新的问题。[#40433](https://github.com/apache/doris/pull/40433) -- 修复删除重建基表后,物化视图可能不刷新的问题。[#41762](https://github.com/apache/doris/pull/41762) -- 修复分区补偿改写可能导致结果错误的问题。[#40803](https://github.com/apache/doris/pull/40803) -- 当 `sql_select_limit` 设置时,改写结果可能错误的问题。[#40106](https://github.com/apache/doris/pull/40106) - -### 半结构化管理 - -- 修复了索引文件句柄泄露的问题。[#41915](https://github.com/apache/doris/pull/41915) -- 修复了特殊情况下倒排索引 `count()` 不准确的问题。[#41127](https://github.com/apache/doris/pull/41127) -- 修复了未开启 Light Schema Change 时 Variant 异常的问题。[#40908](https://github.com/apache/doris/pull/40908) -- 修复了 Variant 返回数组时内存泄漏的问题。[#41339](https://github.com/apache/doris/pull/41339) - -### 查询优化器 - -- 修正了外表查询时,可能存在过滤条件 nullable 计算错误,导致执行异常的问题。[#41014](https://github.com/apache/doris/pull/41014) -- 修复范围比较表达式优化可能发生错误的问题。[#41356](https://github.com/apache/doris/pull/41356) - -### 查询执行引擎 - -- `match_regexp` 函数不能正确处理空字符串的问题。[#39503](https://github.com/apache/doris/pull/39503) -- 解决在高并发场景下,Scanner 线程池卡死的问题。[#40495](https://github.com/apache/doris/pull/40495) -- 修复了 `data_floor` 函数结果错误的问题。[#41948](https://github.com/apache/doris/pull/41948) -- 修复了部分场景下,Cancel 消息不正确的问题。[#41798](https://github.com/apache/doris/pull/41798) -- 修复 Arrow Flight 打印太多的 Warn 日志的问题。[#41770] (https://github.com/apache/doris/pull/41770) -- 解决部分场景下 Runtime Filter 发送失败的问题。[#41698](https://github.com/apache/doris/pull/41698) -- 修复了一些系统表查询的时候不能正常结束或者卡住的问题。[#41592](https://github.com/apache/doris/pull/41592) -- 修复了窗口函数结果不正确的问题。[#40761](https://github.com/apache/doris/pull/40761) -- 修复 ENCRYPT 和 DECRYPT 函数导致 BE Core 的问题。[#40726](https://github.com/apache/doris/pull/40726) -- 修复 CONV 函数结果错误的问题。[#40530](https://github.com/apache/doris/pull/40530) - -### 存储管理 - -- Memtable 前移在多副本情况下,有机器宕机时导入失败的问题。[#38003](https://github.com/apache/doris/pull/38003) -- 导入过程中,Memtable 在 Flush 阶段时,统计的内存不准确。[#39536](https://github.com/apache/doris/pull/39536) -- 修复 Memtable 前移多副本容错的问题。[#40477](https://github.com/apache/doris/pull/40477) -- 修复 Memtable 前移 bvar 统计不准的问题。[#40985](https://github.com/apache/doris/pull/40985) -- 修复 s3 Load 进度汇报不准的问题。[#40987](https://github.com/apache/doris/pull/40987) - -### 权限管理 - -- 修复了 SHOW COLUMNS, SHOW SYNC, SHOW DATA FROM DB.TABLE 相关的权限问题。 [#39726](https://github.com/apache/doris/pull/39726) - -### Others - -- 修复 2.0 版本的审计日志插件在 2.1 版本无法使用的问题[#41400](https://github.com/apache/doris/pull/41400) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/all-release.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/all-release.md deleted file mode 100644 index 180c71ecd7786..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/all-release.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -{ - "title": "最新发布", - "language": "zh-CN" -} ---- - -本文列出了近一年内所有已发布的 Apache Doris 版本,按发布时间倒序呈现。 - - - -:::tip 最新发布 - -🎉 3.0.7 版本已于 2025 年 08 月 25 日正式发布,详情可查看[版本发布](https://doris.apache.org/docs/3.0/releasenotes/v3.0/release-3.0.7)。从 3.X 版本开始,Apache Doris 除了支持计算存储一体模式外,还支持计算存储分离模式进行集群部署。借助将计算和存储层解耦的云原生架构,用户可以在多个计算集群之间实现查询负载的物理隔离,以及读写负载的隔离。 - -
- -🎉 2.1.11 版本现已于 2025 年 08 月 15 日正式发布,详情可查看[版本发布](../releasenotes/v2.1/release-2.1.11)。子查询性能方面 2.1 版本开箱即用查询的性能提高了 100%;在数据湖分析场景方面,相对于 Trino 和 Spark 分别有 4-6 倍性能提升;在半结构化数据分析场景中提供了强有力的支持,包括新的 Variant 类型和一系列分析函数。此外,2.1 版本起支持异步物化视图以加速查询,优化了大规模实时写入,并通过稳定性和运行时 SQL 资源跟踪改进了工作负载管理。 - -::: - -
- -- [2025-08-25, Apache Doris 3.0.7 版本发布](https://doris.apache.org/docs/3.0/releasenotes/v3.0/release-3.0.7) - -- [2025-08-15, Apache Doris 2.1.11 版本发布](../releasenotes/v2.1/release-2.1.11.md) - -- [2025-06-16, Apache Doris 3.0.6 版本发布](https://doris.apache.org/docs/3.0/releasenotes/v3.0/release-3.0.6) - -- [2025-05-17, Apache Doris 2.1.10 版本发布](../releasenotes/v2.1/release-2.1.10.md) - -- [2025-04-28, Apache Doris 3.0.5 版本发布](https://doris.apache.org/docs/3.0/releasenotes/v3.0/release-3.0.5) - -- [2025-04-02, Apache Doris 2.1.9 版本发布](../releasenotes/v2.1/release-2.1.9.md) - -- [2025-02-28, Apache Doris 3.0.4 版本发布](https://doris.apache.org/docs/3.0/releasenotes/v3.0/release-3.0.4) - -- [2025-01-24, Apache Doris 2.1.8 版本发布](../releasenotes/v2.1/release-2.1.8.md) - -- [2024-12-02, Apache Doris 3.0.3 版本发布](https://doris.apache.org/docs/3.0/releasenotes/v3.0/release-3.0.3) - -- [2024-11-10, Apache Doris 2.1.7 版本发布](../releasenotes/v2.1/release-2.1.7.md) - -- [2024-10-15, Apache Doris 3.0.2 版本发布](https://doris.apache.org/docs/3.0/releasenotes/v3.0/release-3.0.2) - -- [2024-09-30, Apache Doris 2.0.15 版本发布](../releasenotes/v2.0/release-2.0.15.md) - -- [2024-09-10, Apache Doris 2.1.6 版本发布](../releasenotes/v2.1/release-2.1.6.md) - -- [2024-08-23, Apache Doris 3.0.1 版本发布](https://doris.apache.org/docs/3.0/releasenotes/v3.0/release-3.0.1) - -- [2024-07-24, Apache Doris 2.1.5 版本发布](../releasenotes/v2.1/release-2.1.5.md) - -- [2024-07-17, Apache Doris 2.0.13 版本发布](../releasenotes/v2.0/release-2.0.13.md) - -- [2024-06-27, Apache Doris 2.0.12 版本发布](../releasenotes/v2.0/release-2.0.12.md) - -- [2024-06-26, Apache Doris 2.1.4 版本发布](../releasenotes/v2.1/release-2.1.4.md) - -- [2024-06-05, Apache Doris 2.0.11 版本发布](../releasenotes/v2.0/release-2.0.11.md) - -- [2024-05-21, Apache Doris 2.1.3 版本发布](../releasenotes/v2.1/release-2.1.3.md) - -- [2024-05-16, Apache Doris 2.0.10 版本发布](../releasenotes/v2.0/release-2.0.10.md) - -- [2024-04-23, Apache Doris 2.0.9 版本发布](../releasenotes/v2.0/release-2.0.9.md) - -- [2024-04-12, Apache Doris 2.1.2 版本发布](../releasenotes/v2.1/release-2.1.2.md) - -- [2024-04-09, Apache Doris 2.0.8 版本发布](../releasenotes/v2.0/release-2.0.8.md) - -- [2024-04-03, Apache Doris 2.1.1 版本发布](../releasenotes/v2.1/release-2.1.1.md) - -- [2024-03-26, Apache Doris 2.0.7 版本发布](../releasenotes/v2.0/release-2.0.7.md) - -- [2024-03-12, Apache Doris 2.1.0 版本发布](../releasenotes/v2.1/release-2.1.0.md) - -- [2024-03-11, Apache Doris 2.0.6 版本发布](../releasenotes/v2.0/release-2.0.6.md) - -- [2024-02-28, Apache Doris 2.0.5 版本发布](../releasenotes/v2.0/release-2.0.5.md) - -- [2024-01-26, Apache Doris 2.0.4 版本发布](../releasenotes/v2.0/release-2.0.4.md) - - - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.0.md deleted file mode 100644 index 6d63445cfa2a0..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.0.md +++ /dev/null @@ -1,374 +0,0 @@ ---- -{ - "title": "Release 1.1.0", - "language": "zh-CN" -} ---- - -在 1.1 版本中,**我们实现了计算层和存储层的全面向量化、正式将向量化执行引擎作为稳定功能进行全面启用**,所有查询默认通过向量化执行引擎来执行,**性能较之前版本有 3-5 倍的巨大提升**;增加了直接访问 Apache Iceberg 外部表的能力,支持对 Doris 和 Iceberg 中的数据进行联邦查询,**扩展了 Apache Doris 在数据湖上的分析能力**;在原有的 LZ4 基础上增加了 ZSTD 压缩算法,进一步提升了数据压缩率;**修复了诸多之前版本存在的性能与稳定性问题**,使系统稳定性得到大幅提升。欢迎大家下载使用。 - -## 升级说明 - -### 向量化执行引擎默认开启 - -在 Apache Doris 1.0 版本中,我们引入了向量化执行引擎作为实验性功能。用户需要在执行 SQL 查询手工开启,通过 `set batch_size = 4096` 和 `set enable_vectorized_engine = true `配置 session 变量来开启向量化执行引擎。 - -在 1.1 版本中,我们正式将向量化执行引擎作为稳定功能进行了全面启用,session 变量`enable_vectorized_engine` 默认设置为 true,无需用户手工开启,所有查询默认通过向量化执行引擎来执行。 - -### BE 二进制文件更名 - -BE 二进制文件从原有的 palo_be 更名为 doris_be,如果您以前依赖进程名称进行集群管理和其他操作,请注意修改相关脚本。 - -### Segment 存储格式升级 - -Apache Doris 早期版本的存储格式为 Segment V1,在 0.12 版本中我们实现了新的存储格式 Segment V2,引入了 Bitmap 索引、内存表、Page Cache、字典压缩以及延迟物化等诸多特性。从 0.13 版本开始,新建表的默认存储格式为 Segment V2,与此同时也保留了对 Segment V1 格式的兼容。 - -为了保证代码结构的可维护性、降低冗余历史代码带来的额外学习及开发成本,我们决定从下一个版本起不再支持 Segment v1 存储格式,预计在 Apache Doris 1.2 版本中将删除这部分代码。 - - -### 正常升级 - -正常升级操作请按照官网上的集群升级文档进行滚动升级即可。 - -[https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade](https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade) - -## 重要功能 - -### 支持数据随机分布 [实验性功能] [#8259](https://github.com/apache/doris/pull/8259) [#8041](https://github.com/apache/doris/pull/8041) - -在某些场景中(例如日志分析类场景),用户可能无法找到一个合适的分桶键来避免数据倾斜,因此需要由系统提供额外的分布方式来解决数据倾斜的问题。 - -因此通过在建表时可以不指定具体分桶键,选择使用随机分布对数据进行分桶`DISTRIBUTED BY random BUCKETS number`,数据导入时将会随机写入单个 Tablet,以减少加载过程中的数据扇出,并减少资源开销、提升系统稳定性。 - -### 支持创建 Iceberg 外部表 [实验性功能] [#7391](https://github.com/apache/doris/pull/7391) [#7981](https://github.com/apache/doris/pull/7981) [#8179](https://github.com/apache/doris/pull/8179) - -Iceberg 外部表为 Apache Doris 提供了直接访问存储在 Iceberg 数据的能力。通过 Iceberg 外部表可以实现对本地存储和 Iceberg 存储的数据进行联邦查询,省去繁琐的数据加载工作、简化数据分析的系统架构,并进行更复杂的分析操作。 - -在 1.1 版本中,Apache Doris 支持了创建 Iceberg 外部表并查询数据,并支持通过 REFRESH 命令实现 Iceberg 数据库中所有表 Schema 的自动同步。 - -### 增加 ZSTD 压缩算法 [#8923](https://github.com/apache/doris/pull/8923) [#9747](https://github.com/apache/doris/pull/9747) - -目前 Apache Doris 中数据压缩方法是系统统一指定的,默认为 LZ4。针对部分对数据存储成本敏感的场景,例如日志类场景,原有的数据压缩率需求无法得到满足。 - -在 1.1 版本中,用户建表时可以在表属性中设置`"compression"="zstd"` 将压缩方法指定为 ZSTD。在 25GB 1.1 亿行的文本日志测试数据中,**最高获得了近 10 倍的压缩率、较原有压缩率提升了 53%,从磁盘读取数据并进行解压缩的速度提升了 30%** 。 - -## 功能优化 - -### **更全面的向量化支持** - -在 1.1 版本中,我们实现了计算层和存储层的全面向量化,包括: - -- 实现了所有内置函数的向量化 - -- 存储层实现向量化,并支持了低基数字符串列的字典优化 - -- 优化并解决了向量化引擎的大量性能和稳定性问题。 - -我们对 Apache Doris 1.1 版本与 0.15 版本分别在 SSB 和 TPC-H 标准测试数据集上进行了性能测试: - -- 在 SSB 测试数据集的全部 13 个 SQL 上,1.1 版本均优于 0.15 版本,整体性能约提升了 3 倍,解决了 1.0 版本中存在的部分场景性能劣化问题; - -- 在 TPC-H 测试数据集的全部 22 个 SQL 上,1.1 版本均优于 0.15 版本,整体性能约提升了 4.5 倍,部分场景性能达到了十余倍的提升; - -![release-note-1.1.0-SSB](/images/release-note-1.1.0-SSB.png) - -

SSB 测试数据集

- -![release-note-1.1.0-TPC-H](/images/release-note-1.1.0-TPC-H.png) - -

TPC-H 测试数据集

- -**性能测试报告:** - -[https://doris.apache.org/zh-CN/docs/benchmark/ssb](https://doris.apache.org/zh-CN/docs/benchmark/ssb) - -[https://doris.apache.org/zh-CN/docs/benchmark/tpch](https://doris.apache.org/zh-CN/docs/benchmark/tpch) - -### Compaction 逻辑优化与实时性保证 [#10153](https://github.com/apache/doris/pull/10153) - -在 Apache Doris 中每次 Commit 都会产生一个数据版本,在高并发写入场景下,容易出现因数据版本过多且 Compaction 不及时而导致的 -235 错误,同时查询性能也会随之下降。 - -在 1.1 版本中我们引入了 QuickCompaction,增加了主动触发式的 Compaction 检查,在数据版本增加的时候主动触发 Compaction,同时通过提升分片元信息扫描的能力,快速发现数据版本过多的分片并触发 Compaction。通过主动式触发加被动式扫描的方式,彻底解决数据合并的实时性问题。 - -同时,针对高频的小文件 Cumulative Compaction,实现了 Compaction 任务的调度隔离,防止重量级的 Base Compaction 对新增数据的合并造成影响。 - -最后,针对小文件合并,优化了小文件合并的策略,采用梯度合并的方式,每次参与合并的文件都属于同一个数据量级,防止大小差别很大的版本进行合并,逐渐有层次的合并,减少单个文件参与合并的次数,能够大幅地节省系统的 CPU 消耗。 - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a6d5c50f16a048f3ab27357bc97b7461~tplv-k3u1fbpfcp-zoom-1.image) - -在数据上游维持每秒 10w 的写入频率时(20 个并发写入任务、每个作业 5000 行、Checkpoint 间隔 1s),1.1 版本表现如下: - -- 数据快速合并:Tablet 数据版本维持在 50 以下,Compaction Score 稳定。相较于之前版本高并发写入时频繁出现的 -235 问题,**Compaction 合并效率有 10 倍以上的提升**。 - - - -- CPU 资源消耗显著降低:针对小文件 Compaction 进行了策略优化,在上述高并发写入场景下,**CPU 资源消耗降低 25%** ; - - - -- 查询耗时稳定:提升了数据整体有序性,大幅降低查询耗时的波动性,**高并发写入时的查询耗时与仅查询时持平**,查询性能较之前版本**有 3-4 倍提升**。 - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1c79ee9efba0416d81cc7bed1a349fdf~tplv-k3u1fbpfcp-zoom-1.image) - -### Parquet 和 ORC 文件的读取效率优化 [#9472](https://github.com/apache/doris/pull/9472) - -通过调整 Arrow 参数,利用 Arrow 的多线程读取能力来加速 Arrow 对每个 row_group 的读取,并修改成 SPSC 模型,通过预取来降低等待网络的代价。优化前后对 Parquet 文件导入的性能有 4 ~ 5 倍的提升。 - -### 更安全的元数据 Checkpoint [#9180](https://github.com/apache/doris/pull/9180) [#9192](https://github.com/apache/doris/pull/9192) - -通过对元数据检查点后生成的 image 文件进行双重检查和保留历史 image 文件的功能,解决了 image 文件错误导致的元数据损坏问题。 - -## Bug 修复 - -### 修复由于缺少数据版本而无法查询数据的问题。(严重)[#9267](https://github.com/apache/doris/pull/9267) [#9266](https://github.com/apache/doris/pull/9266) - -问题描述:`failed to initialize storage reader. tablet=924991.xxxx, res=-214, backend=xxxx` - -该问题是在版本 1.0 中引入的,可能会导致多个副本的数据版本丢失。 - -### 解决了资源隔离对加载任务的资源使用限制无效的问题(中等)[#9492](https://github.com/apache/doris/pull/9492) - -在 1.1 版本中,Broker Load 和 Routine Load 将使用具有指定资源标记的 BE 节点进行加载。 - -### 修复使用 HTTP BRPC 超过 2GB 传输网络数据包导致数据传输错误的问题(中等)[#9770](https://github.com/apache/doris/pull/9770) - -在以前的版本中,当通过 BRPC 在后端之间传输的数据超过 2GB 时,可能会导致数据传输错误。 - -## 其他 - -### 禁用 Mini Load - -Mini Load 与 Stream Load 的导入实现方式完全一致,都是通过 HTTP 协议提交和传输数据,在导入功能支持上 Stream Load 更加完备。 - -在 1.1 版本中,默认情况下 Mini Load 接口 `/_load` 将处于禁用状态,请统一使用 Stream Load 来替换 Mini Load。您也可以通过关闭 FE 配置项 `disable_mini_load` 来重新启用 Mini Load 接口。在版本 1.2 中,将彻底删除 Mini Load。 - -### 完全禁用 SegmentV1 存储格式 - -在 1.1 版本中将不再允许新创建 SegmentV1 存储格式的数据,现有数据仍可以继续正常访问。 - -您可以使用 ADMIN SHOW TABLET STORAGE FORMAT 语句检查集群中是否仍然存在 SegmentV1 格式的数据,如果存在请务必通过数据转换命令转换为 SegmentV2。 - -在 Apache Doris 1.2 版本中不再支持对 Segment V1 数据的访问,同时 Segment V1 代码将被彻底删除。 - -### 限制 String 类型的最大长度 [#8567](https://github.com/apache/doris/pull/8567) - -String 类型是 Apache Doris 在 0.15 版本中引入的新数据类型,在过去 String 类型的最大长度允许为 2GB。 - -在 1.1 版本中,我们将 String 类型的最大长度限制为 1 MB,超过此长度的字符串无法再写入,同时不再支持将 String 类型用作表的 Key 列、分区列以及分桶列。 - -已写入的字符串类型可以正常访问。 - -### 修复 fastjson 相关漏洞 [#9763](https://github.com/apache/doris/pull/9763) - -对 Canal 版本进行更新以修复 fastjson 安全漏洞 - -### 添加了 ADMIN DIAGNOSE TABLET 命令 [#8839](https://github.com/apache/doris/pull/8839) - -通过 ADMIN DIAGNOSE TABLET tablet_id 命令可以快速诊断指定 Tablet 的问题。 - -## 下载使用 - -### 下载链接 - -[https://doris.apache.org/zh-CN/download](https://doris.apache.org/zh-CN/download) - -### 升级说明 - -您可以从 Apache Doris 1.0 Release 版本和 1.0.x 发行版本升级到 1.1 Release 版本,升级过程请官网参考文档。如果您当前是 0.15 Release 版本或 0.15.x 发行版本,可跳过 1.0 版本直接升级至 1.1。 - -[https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade](https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade - -### 意见反馈 - -如果您遇到任何使用上的问题,欢迎随时通过 GitHub Discussion 论坛或者 Dev 邮件组与我们取得联系。 - -GitHub 论坛:[https://github.com/apache/incubator-doris/discussions](https://github.com/apache/incubator-doris/discussions) - -Dev 邮件组:[dev@doris.apache.org](dev@doris.apache.org) - -## 致谢 - -Apache Doris 1.1 Release 版本的发布离不开所有社区用户的支持,在此向所有参与版本设计、开发、测试、讨论的社区贡献者们表示感谢,他们分别是: - -``` - -@adonis0147 - -@airborne12 - -@amosbird - -@aopangzi - -@arthuryangcs - -@awakeljw - -@BePPPower - -@BiteTheDDDDt - -@bridgeDream - -@caiconghui - -@cambyzju - -@ccoffline - -@chenlinzhong - -@daikon12 - -@DarvenDuan - -@dataalive - -@dataroaring - -@deardeng - -@Doris-Extras - -@emerkfu - -@EmmyMiao87 - -@englefly - -@Gabriel39 - -@GoGoWen - -@gtchaos - -@HappenLee - -@hello-stephen - -@Henry2SS - -@hewei-nju - -@hf200012 - -@jacktengg - -@jackwener - -@Jibing-Li - -@JNSimba - -@kangshisen - -@Kikyou1997 - -@kylinmac - -@Lchangliang - -@leo65535 - -@liaoxin01 - -@liutang123 - -@lovingfeel - -@luozenglin - -@luwei16 - -@luzhijing - -@mklzl - -@morningman - -@morrySnow - -@nextdreamblue - -@Nivane - -@pengxiangyu - -@qidaye - -@qzsee - -@SaintBacchus - -@SleepyBear96 - -@smallhibiscus - -@spaces-X - -@stalary - -@starocean999 - -@steadyBoy - -@SWJTU-ZhangLei - -@Tanya-W - -@tarepanda1024 - -@tianhui5 - -@Userwhite - -@wangbo - -@wangyf0555 - -@weizuo93 - -@whutpencil - -@wsjz - -@wunan1210 - -@xiaokang - -@xinyiZzz - -@xlwh - -@xy720 - -@yangzhg - -@Yankee24 - -@yiguolei - -@yinzhijian - -@yixiutt - -@zbtzbtzbt - -@zenoyang - -@zhangstar333 - -@zhangyifan27 - -@zhannngchen - -@zhengshengjun - -@zhengshiJ - -@zingdle - -@zuochunwei - -@zy-kkk -``` \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.1.md deleted file mode 100644 index 224c9c69a4369..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.1.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -{ - "title": "Release 1.1.1", - "language": "zh-CN" -} ---- - -## 新增功能 - -### 向量化执行引擎支持 ODBC Sink。 - -在 1.1.0 版本的向量化执行引擎中 ODBC Sink 是不支持的,而这一功能在之前版本的行存引擎是支持的,因此在 1.1.1 版本中我们重新完善了这一功能。 - -### 增加简易版 MemTracker - -MemTracker 是一个用于分析内存使用情况的统计工具,在 1.1.0 版本的向量化执行引擎中,由于 BE 侧没有 MemTracker,可能出现因内存失控导致的 OOM 问题。在 1.1.1 版本中,BE 侧增加了一个简易版 MemTracker,可以帮助控制内存,并在内存超出时取消查询。 - -完整版 MemTracker 将在 1.1.2 版本中正式发布。 - - -## 改进 - -### 支持在 Page Cache 中缓存解压后数据。 - -在 Page Cache 中有些数据是用 bitshuffle 编码方式压缩的,在查询过程中需要花费大量的时间来解压。在 1.1.1 版本中,Doris 将缓存解压由 bitshuffle 编码的数据以加速查询,我们发现在 ssb-flat 的一些查询中,可以减少 30% 的延时。 - -## Bug 修复 - -### 修复无法从 1.0 版本进行滚动升级的问题。 - -这个问题是在 1.1.0 版本中出现的,当升级 BE 而不升级 FE 时,可能会导致 BE Core。 - -如果你遇到这个问题,你可以尝试用 [#10833](https://github.com/apache/doris/pull/10833) 来修复它。 - -### 修复某些查询不能回退到非向量化引擎的问题,并导致 BE Core。 - -目前,向量化执行引擎不能处理所有的 SQL 查询,一些查询(如 left outer join)将使用非向量化引擎来运行。但部分场景在 1.1.0 版本中未被覆盖到,这可能导致 BE 挂掉。 - -### 修复 Compaction 不能正常工作导致的 -235 错误。 - -在 Unique Key 模型中,当一个 Rowset 有多个 Segment 时,在做 Compaction 过程中由于没有正确的统计行数,会导致 Compaction 失败并且产生 Tablet 版本过多而导致的 -235 错误。 - -### 修复查询过程中出现的部分 Segment fault。 - -[#10961](https://github.com/apache/doris/pull/10961) -[#10954](https://github.com/apache/doris/pull/10954) -[#10962](https://github.com/apache/doris/pull/10962) - -# 致谢 - -感谢所有参与贡献 1.1.1 版本的开发者: - -``` -@jacktengg -@mrhhsg -@xinyiZzz -@yixiutt -@starocean999 -@morrySnow -@morningman -@HappenLee -``` \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.2.md deleted file mode 100644 index 43d4bd20c8550..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.2.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -{ - "title": "Release 1.1.2", - "language": "zh-CN" -} ---- - -在 Apache Doris 1.1.2 版本中,我们引入了新的 Memtracker、极大程度上避免 OOM 类问题的发生,提升了向量化执行引擎在多数查询场景的性能表现,修复了诸多导致 BE 和 FE 发生异常的问题,优化了在湖仓联邦查询场景的部分体验问题并提升访问外部数据的性能。 - -相较于 1.1.1 版本,在 1.1.2 版本中有超过 170 个 Issue 和性能优化项被合入,系统稳定性和性能都得到进一步加强。与此同时,1.1.2 版本还将作为 Apache Doris 首个 LTS(Long-term Support)长周期支持版本,后续长期维护和支持,推荐所有用户下载和升级。 - -# 新增功能 - -### MemTracker - -MemTracker 是一个用于分析内存使用情况的统计工具,在 1.1.1 版本中我们引入了简易版 Memtracker 用以控制 BE 侧内存。在 1.1.2 版本中,我们引入了新的 MemTracker,在向量化执行引擎和非向量化执行引擎中都更为准确。 - -### 增加展示和取消正在执行 Query 的 API - -`GET /rest/v2/manager/query/current_queries` - -`GET /rest/v2/manager/query/kill/{query_id}` - -具体使用参考文档 [Query Profile Action](https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/manager/query-profile-action?_highlight=current&_highlight=query#request) - -### 支持读写 Emoji 表情通过 ODBC 外表 - - -# 优化改进 - -### 数据湖相关改进 - -- 扫描 HDFS ORC 文件时性能提升约 300%。[#11501](https://github.com/apache/doris/pull/11501) - -- 查询 Iceberg 表支持 HDFS 的 HA 模式。 - -- 支持查询由 [Apache Tez](https://tez.apache.org/) 创建的 Hive 数据 - -- 添加阿里云 OSS 作为 Hive 外部支持 - -### 在 Spark Load 中增加对 String 字符串类型和 Text 文本类型的支持 - - -### 在非向量化引擎支持复用 Block,在某些场景中有 50% 性能提升。[#11392](https://github.com/apache/doris/pull/11392) - -### 提升 Like 和正则表达式的性能 - -### 禁用 TCMalloc 的 aggressive_memory_decommit。 - -在查询或导入时将会有 40% 性能提升,也可以在配置文件中通过 `tc_enable_aggressive_memory_decommit`来修改 - -# Bug Fix - -### 修复部分可能导致 FE 失败或者数据损坏的问题 - -- 在 HA 环境中,BDBJE 将保留尽可能多的文件,通过增加配置 `bdbje_reserved_disk_bytes `以避免产生太多的 BDBJE 文件,BDBJE 日志只有在接近磁盘限制时才会删除。 - -- 修复了 BDBJE 中的重要错误,该错误将导致 FE 副本无法正确启动或数据损坏。 - -### 修复 FE 在查询过程中会在 waitFor_rpc 上 Hang 住以及 BE 在高并发情况下会 Hang 住的问题。 - -[#12459](https://github.com/apache/doris/pull/12459) [#12458](https://github.com/apache/doris/pull/12458) [#12392](https://github.com/apache/doris/pull/12392) - -### 修复向量化执行引擎查询时得到错误结果的问题。 - -[#11754](https://github.com/apache/doris/pull/11754) [#11694](https://github.com/apache/doris/pull/11694) - -### 修复许多 Planner 导致 BE Core 或者处于不正常状态的问题。 - -[#12080](https://github.com/apache/doris/pull/12080) [#12075](https://github.com/apache/doris/pull/12075) [#12040](https://github.com/apache/doris/pull/12040) [#12003](https://github.com/apache/doris/pull/12003) [#12007](https://github.com/apache/doris/pull/12007) [#11971](https://github.com/apache/doris/pull/11971) [#11933](https://github.com/apache/doris/pull/11933) [#11861](https://github.com/apache/doris/pull/11861) [#11859](https://github.com/apache/doris/pull/11859) [#11855](https://github.com/apache/doris/pull/11855) [#11837](https://github.com/apache/doris/pull/11837) [#11834](https://github.com/apache/doris/pull/11834) [#11821](https://github.com/apache/doris/pull/11821) [#11782](https://github.com/apache/doris/pull/11782) [#11723](https://github.com/apache/doris/pull/11723) [#11569](https://github.com/apache/doris/pull/11569) - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.3.md deleted file mode 100644 index 05c4cb9eed249..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.3.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -{ - "title": "Release 1.1.3", - "language": "zh-CN" -} ---- - -作为 1.1.2 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.3 版本中,有超过 80 个 Issue 或性能优化项被合入,优化了在导入或查询过程中的内存控制,修复了许多导致 BE Core 以及产生错误查询结果的问题,系统稳定性和性能得以进一步加强,推荐所有用户下载和使用。 - -# 新增功能 - -- 在 ODBC 表中支持 SQLServer 和 PostgreSQL 的转义标识符。 - -- 支持使用 Parquet 作为导出文件格式。 - -# 优化改进 - -- 优化了 Flush 策略以及避免过多 Segment 小文件。 [#12706](https://github.com/apache/doris/pull/12706) [#12716](https://github.com/apache/doris/pull/12716) - -- 重构 Runtime Filter 以减少初始准备时间。 [#13127](https://github.com/apache/doris/pull/13127) - -- 修复了若干个在查询或导入过程中的内存控制问题。 [#12682](https://github.com/apache/doris/pull/12682) [#12688](https://github.com/apache/doris/pull/12688) [#12708](https://github.com/apache/doris/pull/12708) [#12776](https://github.com/apache/doris/pull/12776) [#12782](https://github.com/apache/doris/pull/12782) [#12791](https://github.com/apache/doris/pull/12791) [#12794](https://github.com/apache/doris/pull/12794) [#12820](https://github.com/apache/doris/pull/12820) [#12932](https://github.com/apache/doris/pull/12932) [#12954](https://github.com/apache/doris/pull/12954) [#12951](https://github.com/apache/doris/pull/12951) - -# Bug 修复 - -- 修复了 largeint 类型在 Compaction 过程中导致 Core 的问题。 [#10094](https://github.com/apache/doris/pull/10094) - -- 修复了 Grouping set 导致 BE Core 或者返回错误结果的问题。 [#12313](https://github.com/apache/doris/pull/12313) - -- 修复了使用 orthogonal_bitmap_union_count 函数时执行计划 PREAGGREGATION 显示错误的问题。 [#12581](https://github.com/apache/doris/pull/12581) - -- 修复了 Level1Iterator 未被释放导致的内存泄漏问题。 [#12592](https://github.com/apache/doris/pull/12592) - -- 修复了当 2 BE 且存在 Colocation 表时通过 Decommission 下线节点失败的问题。 [#12644](https://github.com/apache/doris/pull/12644) - -- 修复了 TBrokerOpenReaderResponse 过大时导致堆栈缓冲区溢出而导致的 BE Core 问题。 [#12658](https://github.com/apache/doris/pull/12658) - -- 修复了出现 -238 错误时 BE 节点可能 OOM 的问题。 [#12666](https://github.com/apache/doris/pull/12666) - -- 修复了 LEAD() 函数错误子表达式的问题。 [#12587](https://github.com/apache/doris/pull/12587) - -- 修复了行存代码中相关查询失败的问题。 [#12712](https://github.com/apache/doris/pull/12712) - -- 修复了 curdate()/current_date() 函数产生错误结果的问题。 [#12720](https://github.com/apache/doris/pull/12720) - -- 修复了 lateral View explode_split 函数出现错误结果的问题。 [#13643](https://github.com/apache/doris/pull/13643) - -- 修复了两张相同表中 Bucket Shuffle Join 计划错误的问题。 [#12930](https://github.com/apache/doris/pull/12930) - -- 修复了更新或导入过程中 Tablet 版本可能错误的问题。 [#13070](https://github.com/apache/doris/pull/13070) - -- 修复了在加密函数下使用 Broker 导入数据时 BE 可能发生 Core 的问题。 [#13009](https://github.com/apache/doris/pull/13009) - -# 升级说明 - -默认情况下禁用 PageCache 和 ChunkAllocator 以减少内存使用,用户可以通过修改配置项 `disable_storage_page_cache` 和 `chunk_reserved_bytes_limit` 来重新启用。 - -Storage Page Cache 和 Chunk Allocator 分别缓存用户数据块和内存预分配。 - -这两个功能会占用一定比例的内存,并且不会释放。这部分内存占用无法灵活调配,导致在某些场景下,因这部分内存占用而导致其他任务内存不足,影响系统稳定性和可用性。因此我们在 1.1.3 版本中默认关闭了这两个功能。 - -但在某些延迟敏感的报表场景下,关闭该功能可能会导致查询延迟增加。如用户担心升级后该功能对业务造成影响,可以通过在 be.conf 中增加以下参数以保持和之前版本行为一致。 - -``` -disable_storage_page_cache=false -chunk_reserved_bytes_limit=10% -``` - -* `disable_storage_page_cache`:是否关闭 Storage Page Cache。1.1.2(含)之前的版本,默认是 false,即打开。1.1.3 版本默认为 true,即关闭。 -* `chunk_reserved_bytes_limit`:Chunk allocator 预留内存大小。1.1.2(含)之前的版本,默认是整体内存的 10%。1.1.3 版本默认为 209715200(200MB)。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.4.md deleted file mode 100644 index ff2e96dc38629..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.4.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -{ - "title": "Release 1.1.4", - "language": "zh-CN" -} ---- - -作为 1.1 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.4 版本中,Doris 团队修复了自 1.1.3 版本以来的约 60 个 Issue 或性能优化项。改进了 Spark Load 的使用体验,优化了诸多内存以及 BE 异常宕机的问题,系统稳定性和性能得以进一步加强,推荐所有用户下载和使用。 - -# 新增功能 - -- Broker Load 支持 华为云 OBS 对象存储。[#13523](https://github.com/apache/doris/pull/13523) - -- Spark Load 支持 Parquet 和 Orc 文件。[#13438](https://github.com/apache/doris/pull/13438) - - -# 优化改进 - -- 禁用 Metric Hook 中的互斥量,其将影响数据导入过程中的查询性能。 [#10941](https://github.com/apache/doris/pull/10941) - - -# Bug 修复 - -- 修复了当 Spark Load 加载文件时 Where 条件不生效的问题。 [#13804](https://github.com/apache/doris/pull/13804) - -- 修复了 If 函数存在 Nullable 列时开启向量化返回错误结果的问题。 [#13779](https://github.com/apache/doris/pull/13779) - -- 修复了在使用 Anti Join 和其他 Join 谓词时产生错误结果的问题。 [#13743](https://github.com/apache/doris/pull/13743) - -- 修复了当调用函数 concat(ifnull) 时 BE 宕机的问题。 [#13693](https://github.com/apache/doris/pull/13693) - -- 修复了 group by 语句中存在函数时 planner 错误的问题。 [#13613](https://github.com/apache/doris/pull/13613) - -- 修复了 lateral view 语句不能正确识别表名和列名的问题。 [#13600](https://github.com/apache/doris/pull/13600) - -- 修复了使用物化视图和表别名时出现未知列的问题。 [#13605](https://github.com/apache/doris/pull/13605) - -- 修复了 JSONReader 无法释放值和解析 allocator 内存的问题。 [#13513](https://github.com/apache/doris/pull/13513) - -- 修复了当 enable_vectorized_alter_table 为 true 时允许使用 to_bitmap() 对负值列创建物化视图的问题。 [#13448](https://github.com/apache/doris/pull/13448) - -- 修复了函数 from_date_format_str 中微秒数丢失的问题。 [#13446](https://github.com/apache/doris/pull/13446) - -- 修复了排序 exprs 的 nullability 属性在使用子 smap 信息进行替换后可能不正确的问题。 [#13328](https://github.com/apache/doris/pull/13328) - -- 修复了 case when 有 1000 个条件时出现 Core 的问题。 [#13315](https://github.com/apache/doris/pull/13315) - -- 修复了 Stream Load 导入数据时最后一行数据丢失的问题。 [#13066](https://github.com/apache/doris/pull/13066) - -- 恢复表或分区的副本数与备份前相同。 [#11942](https://github.com/apache/doris/pull/11942) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.5.md deleted file mode 100644 index b7448a38c7bab..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.1/release-1.1.5.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -{ - "title": "Release 1.1.5", - "language": "zh-CN" -} ---- - -在 1.1.5 版本中,Doris 团队已经修复了自 1.1.4 版本发布以来约 36 个问题或性能改进项。同时,1.1.5 版本也是作为 1.1 LTS 版本的错误修复版本,建议所有用户升级到这个版本。 - - -# Behavior Changes - - -当别名与原始列名相同时,例如 "select year(birthday) as birthday",在 group by、order by、having 子句中使用别名时将与 MySQL 中保持一致,Group by 和 having 将首先使用原始列,order by 将首先使用别名。这里可能会对用户带来疑惑,因此建议最好不要使用与原始列名相同的别名。 - -# Features - -支持 Hash 函数 murmur_hash3_64。[#14636](https://github.com/apache/doris/pull/14636) - -# Improvements - -为日期函数 convert_tz 添加时区缓存以提高性能。[#14616](https://github.com/apache/doris/pull/14616) - -当调用 show 子句时,按 tablename 对结果进行排序。 [#14492](https://github.com/apache/doris/pull/14492) - -# Bug Fix - -修复 if 语句中带有常量时导致 BE 可能 Coredump 的问题。[#14858](https://github.com/apache/doris/pull/14858) - -修复 ColumnVector::insert_date_column 可能崩溃的问题 [#14839](https://github.com/apache/doris/pull/14839) - -更新 high_priority_flush_thread_num_per_store 默认值为 6,将提高负载性能。 [#14775](https://github.com/apache/doris/pull/14775) - -优化 quick compaction core。 [#14731](https://github.com/apache/doris/pull/14731) - -修复分区列非 duplicate key 时 Spark Load 抛出 IndexOutOfBounds 错误的问题。 - [#14661](https://github.com/apache/doris/pull/14661) - -修正 VCollectorIterator 中的内存泄漏问题。 [#14549](https://github.com/apache/doris/pull/14549) - -修复了存在 Sequence 列时可能存在的建表问题。 [#14511](https://github.com/apache/doris/pull/14511) - -使用 avg rowset 来计算批量大小,而不是使用 total_bytes,因为它要花费大量的 Cpu。 [#14273](https://github.com/apache/doris/pull/14273) - -修复了 right outer join 可能导致 core 的问题。[#14821](https://github.com/apache/doris/pull/14821) - -优化了 TCMalloc gc 的策略。 [#14777](https://github.com/apache/doris/pull/14777) [#14738](https://github.com/apache/doris/pull/14738) [#14374](https://github.com/apache/doris/pull/14374) - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.0.md deleted file mode 100644 index 3c70ff32ed043..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.0.md +++ /dev/null @@ -1,602 +0,0 @@ ---- -{ - "title": "Release 1.2.0", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,再一次经历数月的等候后,我们很高兴地宣布,Apache Doris 于 2022 年 12 月 7 日迎来 1.2.0 Release 版本的正式发布!有近 118 位 Contributor 为 Apache Doris 提交了超 2400 项优化和修复,感谢每一位让 Apache Doris 更好的你! - -自从社区正式确立 LTS 版本管理机制后,在 1.1.x 系列版本中不再合入大的功能,仅提供问题修复和稳定性改进,力求满足更多社区用户在稳定性方面的高要求。而在综合考虑版本迭代节奏和用户需求后,我们决定将众多新特性在 1.2 版本中发布,这无疑承载了众多社区用户和开发者的深切期盼,同时这也是一场厚积而薄发后的全面进化! - -在 1.2 版本中,我们实现了全面的向量化、**实现多场景查询性能 3-11 倍的提升**,在 Unique Key 模型上实现了 Merge-on-Write 的数据更新模式、**数据高频更新时查询性能提升达 3-6 倍**,增加了 Multi-Catalog 多源数据目录、**提供了无缝接入 Hive、ES、Hudi、Iceberg 等外部数据源的能力**,引入了 Light Schema Change 轻量表结构变更、**实现毫秒级的 Schema Change 操作并可以借助 Flink CDC 自动同步上游数据库的 DML 和 DDL 操作**,以 JDBC 外部表替换了过去的 ODBC 外部表,支持了 Java UDF 和 Romote UDF 以及 Array 数组类型和 JSONB 类型,修复了诸多之前版本的性能和稳定性问题,推荐大家下载和使用! - -# 下载安装 -GitHub 下载:[https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - -官网下载页:[https://doris.apache.org/download](https://doris.apache.org/download) - -源码地址:[https://github.com/apache/doris/releases/tag/1.2.0-rc04](https://github.com/apache/doris/releases/tag/1.2.0-rc04) - -### 下载说明: - -由于 Apache 服务器文件大小限制,官网下载页的 1.2.0 版本的二进制程序分为三个包: - -1. apache-doris-fe - -2. apache-doris-be - -3. apache-doris-java-udf-jar-with-dependencies - -其中新增的 `apache-doris-java-udf-jar-with-dependencies` 包用于支持 1.2.0 版本中的 JDBC 外表和 JAVA UDF。下载后,需要将其中的 `java-udf-jar-with-dependencies.jar` 文件放到 `be/lib` 目录下,方可启动 BE,否则无法启动成功。 - -### 部署说明: - -从历史版本升级到 1.2.0 版本,需完整更新 fe、be 下的 bin 和 lib 目录。 - -其他升级注意事项,请完整阅读本发版通告最后一节“升级注意事项”以及安装部署文档 [https://doris.apache.org/zh-CN/docs/dev/install/install-deploy](https://doris.apache.org/zh-CN/docs/dev/install/install-deploy) 和集群升级文档 [https://doris.apache.org/zh-CN/docs/dev/admin-manual/cluster-management/upgrade](https://doris.apache.org/zh-CN/docs/dev/admin-manual/cluster-management/upgrade) - -# 重要更新 - -### 1. 全面向量化支持,性能大幅提升 - -在 Apache Doris 1.2.0 版本中,系统所有模块都实现了向量化,包括数据导入、Schema Change、Compaction、数据导出、UDF 等。新版向量化执行引擎具备了完整替换原有非向量化引擎的能力,后续我们也将考虑在未来版本中去除原有非向量化引擎的代码。 - -与此同时,在全面向量化的基础上,我们对数据扫描、谓词计算、Aggregation 算子、HashJoin 算子、算子之间 Shuffle 效率等进行了全链路的优化,使得查询性能有了大幅提升。 - -我们对 Apache Doris 1.2.0 新版本进行了多个标准测试集的测试,同时选择了 1.1.3 版本和 0.15.0 版本作为对比参照项。经测,1.2.0 **在 SSB-Flat 宽表场景上相对 1.1.3 版本整体性能提升了近 4 倍、相对于 0.15.0 版本性能提升了近 10 倍,在 TPC-H 多表关联场景上较 1.1.3 版本上有近 3 倍的提升、较 0.15.0 版本性能至少提升了 11 倍。** - -![ssb_flat](/images/ssb_flat.png) - -![tpch](/images/tpch.png) - -同时,我们将 1.2.0 版本的测试数据提交到了全球知名的数据库测试排行榜 ClickBench,在最新的排行榜中,Apache Doris 1.2.0 新版本取得了通用机型(c6a.4xlarge, 500gb gp2)下**查询性能 Cold Run 第二和 Hot Run 第三的醒目成绩,共有 8 个 SQL 刷新榜单最佳成绩、成为新的性能标杆**。导入性能方面,1.2.0 新版本数据写入效率在同机型所有产品中位列第一,压缩前 70G 数据写入仅耗时 415s、单节点写入速度超过 170 MB/s,在实现极致查询性能的同时也保证了高效的写入效率! - -![coldrun](/images/coldrun.png) - -![hotrun](/images/hotrun.png) - -### 2. 在 Unique Key 模型上实现了 Merge-on-Write 的数据更新模式 - -在过去版本中,Apache Doris 主要是通过 Unique Key 数据模型来实现数据实时更新的。但由于采用的是 Merge-on-Read 的实现方式,查询存在着效率瓶颈,有大量非必要的 CPU 计算资源消耗和 IO 开销,且可能将出现查询性能抖动等问题。 - -在 1.2.0 版本中,我们在原有的 Unique Key 数据模型上,增加了 Merge-on-Write 的数据更新模式。该模式在数据写入时即对需要删除或更新的数据进行标记,始终保证有效的主键只出现在一个文件中(即在写入的时候保证了主键的唯一性),不需要在读取的时候通过归并排序来对主键进行去重,这对于高频写入的场景来说,大大减少了查询执行时的额外消耗。此外还能够支持谓词下推,并能够很好利用 Doris 丰富的索引,在数据 IO 层面就能够进行充分的数据裁剪,大大减少数据的读取量和计算量,因此在很多场景的查询中都有非常明显的性能提升。 - -在比较有代表性的 SSB-Flat 数据集上,通过模拟多个持续导入场景,**新版本的大部分查询取得了 3-6 倍的性能提升**。 - -![mergeonwrite_ssb](/images/mergeonwrite_ssb.png) - -使用场景:所有对主键唯一性有需求,需要频繁进行实时 Upsert 更新的用户建议打开。 - -使用说明:作为新的 Feature 默认关闭,用户可以通过在建表时添加下面的 Property 来开启: - -``` -“enable_unique_key_merge_on_write” = “true” -``` - -另外新版本 Merge-on-Write 数据更新模式与旧版本 Merge-on-Read 实现方式存在差异,因此已经创建的 Unique Key 表无法直接通过 Alter Table 添加 Property 来支持,只能在新建表的时候指定。如果用户需要将旧表转换到新表,可以使用 `insert into new_table select * from old_table` 的方式来实现。 - -### 3. Multi Catalog 多源数据目录 - -Multi-Catalog 多源数据目录功能的目标在于能够帮助用户更方便对接外部数据目录,以增强 Apache Doris 的数据湖分析和联邦数据查询能力。 - -在过去版本中,当我们需要对接外部数据源时,只能在 Database 或 Table 层级对接。当外部数据目录 Schema 发生变化、或者外部数据目录的 Database 或 Table 非常多时,需要用户手工进行一一映射,维护量非常大。1.2.0 版本新增的多源数据目录功能为 Apache Doris 提供了快速接入外部数据源进行访问的能力,用户可以通过 `CREATE CATALOG` 命令连接到外部数据源,Doris 会自动映射外部数据源的库、表信息。之后,用户就可以像访问普通表一样,对这些外部数据源中的数据进行访问,避免了之前用户需要对每张表手动建立外表映射的复杂操作。 - -目前能支持以下数据源: - -1. Hive Metastore:可以访问包括 Hive、Iceberg、Hudi 在内的数据表,也可对接兼容 Hive Metastore 的数据源,如阿里云的 DataLake Formation,同时支持 HDFS 和对象存储上的数据访问。 - -2. Elasticsearch:访问 ES 数据源。 - -3. JDBC:支持通过 JDBC 访问 MySQL 数据源。 - -注:相应的权限层级也会自动变更,详见“升级注意事项”部分 - -文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog) - -### 4. 轻量表结构变更 Light Schema Change - -在过去版本中,Schema Change 是一项相对消耗比较大的工作,需要对数据文件进行修改,在集群规模和表数据量较大时执行效率会明显降低。同时由于是异步作业,当上游 Schema 发生变更时,需要停止数据同步任务并手动执行 Schema Change,增加开发和运维成本的同时还可能造成消费数据的积压。 - -在 1.2.0 新版本中,对数据表的加减列操作,不再需要同步更改数据文件,仅需在 FE 中更新元数据即可,从而实现毫秒级的 Schema Change 操作,且存在导入任务时效率的提升更为显著。与此同时,使得 Apache Doris 在面对上游数据表维度变化时,可以更加快速稳定实现表结构同步,保证系统的高效且平稳运转。如用户可以通过 Flink CDC,可实现上游数据库到 Doris 的 DML 和 DDL 同步,进一步提升了实时数仓数据处理和分析链路的时效性与便捷性。 - -![lightschemachange_compare.png](/images/lightschemachange_compare.png) - -使用说明:作为新的 Feature 默认关闭,用户可以通过在建表时添加下面的 Property 来开启: - -``` -"light_schema_change" = "true" -``` - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -### 5. JDBC 外部表 - -在过去版本中,Apache Doris 提供了 ODBC 外部表的方式来访问 MySQL、Oracle、SQL Server、PostgreSQL 等数据源,但由于 ODBC 驱动版本问题可能造成系统的不稳定。相对于 ODBC,JDBC 接口更为统一且支持数据库众多,因此在 1.2.0 版本中我们实现了 JDBC 外部表以替换原有的 ODBC 外部表。在新版本中,用户可以通过 JDBC 连接支持 JDBC 协议的外部数据源, - -当前已适配的数据源包括: - -- MySQL -- PostgreSQL -- Oracle -- SQLServer -- ClickHouse - -更多数据源的适配已经在规划之中,原则上任何支持 JDBC 协议访问的数据库均能通过 JDBC 外部表的方式来访问。而之前的 ODBC 外部表功能将会在后续的某个版本中移除,还请尽量切换到 JDBC 外表功能。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc) - -### 6. JAVA UDF - -在过去版本中,Apache Doris 提供了 C++ 语言的原生 UDF,便于用户通过自己编写自定义函数来满足特定场景的分析需求。但由于原生 UDF 与 Doris 代码耦合度高、当 UDF 出现错误时可能会影响集群稳定性,且只支持 C++ 语言,对于熟悉 Hive、Spark 等大数据技术栈的用户而言存在较高门槛,因此在 1.2.0 新版本我们增加了 Java 语言的自定义函数,支持通过 Java 编写 UDF/UDAF,方便用户在 Java 生态中使用。同时,通过堆外内存、Zero Copy 等技术,使得跨语言的数据访问效率大幅提升。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/ecosystem/udf/java-user-defined-function](https://doris.apache.org/zh-CN/docs/dev/ecosystem/udf/java-user-defined-function) - -示例:[https://github.com/apache/doris/tree/master/samples/doris-demo](https://github.com/apache/doris/tree/master/samples/doris-demo) - -### 7. Remote UDF - -远程 UDF 支持通过 RPC 的方式访问远程用户自定义函数服务,从而彻底消除用户编写 UDF 的语言限制,用户可以使用任意编程语言实现自定义函数,完成复杂的数据分析工作。 - -文档:[https://doris.apache.org/zh-CN/docs/ecosystem/udf/remote-user-defined-function](https://doris.apache.org/zh-CN/docs/ecosystem/udf/remote-user-defined-function) - -示例:[https://github.com/apache/doris/tree/master/samples/doris-demo](https://github.com/apache/doris/tree/master/samples/doris-demo) - -### 8. Array/JSONB 复合数据类型 - -- Array 类型 - -支持了数组类型,同时也支持多级嵌套的数组类型。在一些用户画像,标签等场景,可以利用 Array 类型更好的适配业务场景。同时在新版本中,我们也实现了大量数组相关的函数,以更好的支持该数据类型在实际场景中的应用。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/ARRAY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/ARRAY) - -相关函数:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/array-functions/array](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/array-functions/array) - -- JSONB 类型 - -支持二进制的 JSON 数据类型 JSONB。该类型提供更紧凑的 JSONB 编码格式,同时提供在编码格式上的数据访问,相比于使用字符串存储的 JSON 数据,有数倍的性能提升。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/JSONB](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/JSONB) - -相关函数:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/json-functions/jsonb_parse](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/json-functions/jsonb_parse) - -### 9. DateV2/DatatimeV2 新版日期/日期时间数据类型 - -支持 DateV2 日期类型和 DatetimeV2 日期时间类型,相较于原有的 Date 和 Datetime 效率更高且支持最多到微秒的时间精度,建议使用新版日期类型。 - -文档:[https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATETIMEV2](https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATETIMEV2) - - [https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATEV2](https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATEV2) - -影响范围: - 1. 用户需要在建表时指定 DateV2 和 DatetimeV2,原有表的 Date 以及 Datetime 不受影响。 - 2. Datev2 和 Datetimev2 在与原来的 Date 和 Datetime 做计算时(例如等值连接),原有类型会被 cast 成新类型做计算 - 3. Example 参考文档中说明 - -### 10. 全新内存管理框架 - -在 Apache Doris 1.2.0 版本中我们增加了全新的内存跟踪器(Memory Tracker),用以记录 Doris BE 进程内存使用,包括查询、导入、Compaction、Schema Change 等任务生命周期中使用的内存以及各项缓存。通过 Memory Tracker 实现了更加精细的内存监控和控制,大大减少了因内存超限导致的 OOM 问题,使系统稳定性进一步得到提升。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/memory-management/memory-tracker](https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/memory-management/memory-tracker) - -### 11. Table Valued Function 表函数 - -增加了 Table Valued Function(TVF,表函数),TVF 可以视作一张普通的表,可以出现在 SQL 中所有“表”可以出现的位置,让用户像访问关系表格式数据一样,读取或访问来自 HDFS 或 S3 上的文件内容, - -例如使用 S3 TVF 实现对象存储上的数据导入: -``` -insert into tbl select * from s3("s3://bucket/file.*", "ak" = "xx", "sk" = "xxx") where c1 > 2; -``` - -或者直接查询 HDFS 上的数据文件: -``` -insert into tbl select * from hdfs("hdfs://bucket/file.*") where c1 > 2; -``` -TVF 可以帮助用户充分利用 SQL 丰富的表达能力,灵活处理各类数据。 - -文档: -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/s3](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/s3) - -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/hdfs](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/hdfs) - -# 更多功能 - -### 1. 更便捷的分区创建方式 - -支持通过 `FROM TO` 命令创建一个时间范围内的多个分区。 - -文档搜索“MULTI RANGE”: -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -示例: -``` -// 根据时间date 创建分区,支持多个批量逻辑和单独创建分区的混合使用 - -PARTITION BY RANGE(event_day)( - FROM ("2000-11-14") TO ("2021-11-14") INTERVAL 1 YEAR, - FROM ("2021-11-14") TO ("2022-11-14") INTERVAL 1 MONTH, - FROM ("2022-11-14") TO ("2023-01-03") INTERVAL 1 WEEK, - FROM ("2023-01-03") TO ("2023-01-14") INTERVAL 1 DAY, - PARTITION p_20230114 VALUES [('2023-01-14'), ('2023-01-15')) -) -``` -``` -// 根据时间datetime 创建分区 -PARTITION BY RANGE(event_time)( - FROM ("2023-01-03 12") TO ("2023-01-14 22") INTERVAL 1 HOUR -) -``` - -### 2. 列重命名 - -对于开启了 Light Schema Change 的表,支持对列进行重命名。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-RENAME ](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-RENAME ) - -### 3. 更丰富权限管理 - -- 支持行级权限 - -可以通过 `CREATE ROW POLICY` 命令创建行级权限。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-POLICY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-POLICY) - -- 支持指定密码强度、过期时间等。 - -- 支持在多次失败登录后锁定账户。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Account-Management-Statements/ALTER-USER](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Account-Management-Statements/ALTER-USER) - -### 4. 导入相关 - -- CSV 导入支持带 header 的 CSV 文件。 - -在文档中搜索 `csv_with_names`:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD/](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD/) - -- Stream Load 新增 `hidden_columns`,可以显式指定 delete flag 列和 sequence 列。 - -在文档中搜索 `hidden_columns`:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD) - -- Spark Load 支持 Parquet 和 ORC 文件导入。 -- 支持清理已完成的导入的 Label - 文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CLEAN-LABEL](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CLEAN-LABEL) - -- 支持通过状态批量取消导入作业 -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CANCEL-LOAD](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CANCEL-LOAD) - -- Broker Load 新增支持阿里云 OSS,腾讯 CHDFS 和华为云 OBS。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/advanced/broker](https://doris.apache.org/zh-CN/docs/dev/advanced/broker) - -- 支持通过 hive-site.xml 文件配置访问 HDFS。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/config/config-dir](https://doris.apache.org/zh-CN/docs/dev/admin-manual/config/config-dir) - -### 5. 支持通过 `SHOW CATALOG RECYCLE BIN` 功能查看回收站中的内容。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Show-Statements/SHOW-CATALOG-RECYCLE-BIN](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Show-Statements/SHOW-CATALOG-RECYCLE-BIN) - -### 6. 支持 `SELECT * EXCEPT` 语法。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/data-table/basic-usage](https://doris.apache.org/zh-CN/docs/dev/data-table/basic-usage) - -### 7. OUTFILE 支持 ORC 格式导出,并且支持多字节分隔符。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE) - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE) - -### 8. 支持通过配置修改可保存的 Query Profile 的数量。 - -文档搜索 FE 配置项:`max_query_profile_num` - -### 9. DELETE 语句支持 IN 谓词条件。并且支持分区裁剪。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/DELETE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/DELETE) - -### 10. 时间列的默认值支持使用 `CURRENT_TIMESTAMP` - -文档中搜索 "CURRENT_TIMESTAMP":[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -### 11. 添加两张系统表:backends、rowsets - -backends 是 Doris 中内置系统表,存放在 information_schema 数据库下,通过该系统表可以查看当前 Doris 集群中的 BE 节点信息。 - -rowsets 是 Doris 中内置系统表,存放在 information_schema 数据库下,通过该系统表可以查看 Doris 集群中各个 BE 节点当前 rowsets 情况。 - -文档: - -[https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/backends](https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/backends) - -[https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/rowsets](https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/rowsets) - -### 12. 备份恢复 - - - Restore 作业支持 `reserve_replica` 参数,使得恢复后的表的副本数和备份时一致。 - - Restore 作业支持 `reserve_dynamic_partition_enable` 参数,使得恢复后的表保持动态分区开启状态。 - - 文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/RESTORE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/RESTORE) - - - 支持通过内置的 libhdfs 进行备份恢复操作,不再依赖 broker。 - - 文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/CREATE-REPOSITORY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/CREATE-REPOSITORY) - -### 13. 支持同机多磁盘之间的数据均衡 - -文档: - -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-REBALANCE-DISK](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-REBALANCE-DISK) - -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-CANCEL-REBALANCE-DISK](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-CANCEL-REBALANCE-DISK) - -### 14. Routine Load 支持订阅 Kerberos 认证的 Kafka 服务。 - -文档中搜索 kerberos:[https://doris.apache.org/zh-CN/docs/dev/data-operate/import/import-way/routine-load-manual](https://doris.apache.org/zh-CN/docs/dev/data-operate/import/import-way/routine-load-manual) - -### 15. New built-in-function 新增内置函数 - - 新增以下内置函数: - - - cbrt - - sequence_match/sequence_count - - mask/mask_first_n/mask_last_n - - elt - - any/any_value - - group_bitmap_xor - - ntile - - nvl - - uuid - - initcap - - regexp_replace_one/regexp_extract_all - - multi_search_all_positions/multi_match_any - - domain/domain_without_www/protocol - - running_difference - - bitmap_hash64 - - murmur_hash3_64 - - to_monday - - not_null_or_empty - - window_funnel - - outer combine - 以及所有 Array 函数 - -# 升级注意事项 - -### FE 元数据版本变更【重要】 - -FE Meta Version 由 107 变更为 114,因此从 1.1.x 以及更早版本升级至 1.2.0 版本后,不可回滚到之前版本。 -升级过程中,建议通过灰度升级的方式,先升级部分节点并观察业务运行情况,以降低升级风险,若执行非法的回滚操作将可能导致数据丢失与损坏。 - -### 行为改变 - -- 权限层级变更。 - - 因为引入了 Catalog 层级,所以相应的用户权限层级也会自动变更。规则如下: - - - GlobalPrivs 和 ResourcePrivs 保持不变 - - 新增 CatalogPrivs 层级。 - - 原 DatabasePrivs 层级增加 internal 前缀(表示 internal catalog 中的 db) - - 原 TablePrivs 层级增加 internal 前缀(表示 internal catalog 中的 tbl) -- GroupBy 和 Having 子句中,优先使用列名而不是别名进行匹配。 -- 不再支持创建以 "mv_" 开头的列。"mv_" 是物化视图中的保留关键词 -- 移除了 order by 语句默认添加的 65535 行的 Limit 限制,并增加 Session 变量 `default_order_by_limit` 可以自定配置这个限制。 -- "Create Table As Select" 生成的表,所有字符串列统一使用 String 类型,不再区分 varchar/char/string -- audit log 中,移除 db 和 user 名称前的 `default_cluster` 字样。 -- audit log 中增加 sql digest 字段 -- union 子句总 order by 逻辑变动。新版本中,order by 子句将在 union 执行完成后执行,除非通过括号进行显式的关联。 -- 进行 decommission 操作时,会忽略回收站中的 tablet,确保 decomission 能够完成。 -- Decimal 的返回结果将按照原始列中声明的精度进行显示,或者按照显式指定的 cast 函数中的精度进行展示。 -- 列名的长度限制由 64 变更为 256 -- FE 配置项变动 - - 默认开启 `enable_vectorized_load` 参数。 - - 增大了 `create_table_timeout` 值。建表操作的默认超时时间将增大。 - - 修改 `stream_load_default_timeout_second` 默认值为 3 天。 - - 修改`alter_table_timeout_second` 的默认值为 一个月。 - - 增加参数 `max_replica_count_when_schema_change` 用于限制 alter 作业中涉及的 replica 数量,默认为 100000。 - - 添加 `disable_iceberg_hudi_table`。默认禁用了 iceberg 和 hudi 外表,推荐使用 multi catalog 功能。 -- BE 配置项变动 - - 移除了 `disable_stream_load_2pc` 参数。2PC 的 stream load 可直接使用。 - - 修改`tablet_rowset_stale_sweep_time_sec` ,从 1800 秒修改为 300 秒。 -- Session 变量变动 - - 修改变量 `enable_insert_strict` 默认为 true。这会导致一些之前可以执行,但是插入了非法值的 insert 操作,不再能够执行。 - - 修改变量 `enable_local_exchange` 默认为 true - - 默认通过 lz4 压缩进行数据传输,通过变量 `fragment_transmission_compression_codec` 控制 - - 增加 `skip_storage_engine_merge` 变量,用于调试 unique 或 agg 模型的数据 - 文档:https://doris.apache.org/zh-CN/docs/dev/advanced/variables -- BE 启动脚本会通过 `/proc/sys/vm/max_map_count` 检查数值是否大于 200W,否则启动失败。 -- 移除了 mini load 接口 - -### 升级过程中需注意 - -1. 升级准备 - - 需替换:lib, bin 目录(start/stop 脚本均有修改) - - BE 也需要配置 JAVA_HOME,已支持 JDBC Table 和 Java UDF。 - - fe.conf 中默认 JVM Xmx 参数修改为 8GB。 - -2. 升级过程中可能的错误 - - repeat 函数不可使用并报错:`vectorized repeat function cannot be executed`,可以在升级前先关闭向量化执行引擎。 - - schema change 失败并报错:`desc_tbl is not set. Maybe the FE version is not equal to the BE` - - 向量化 hash join 不可使用并报错。`vectorized hash join cannot be executed`。可以在升级前先关闭向量化执行引擎。 - -以上错误在完全升级后会恢复正常。 - -### 性能影响 - -- 默认使用 JeMalloc 作为新版本 BE 的内存分配器,替换 TcMalloc。 - -JeMalloc 相比 TcMalloc 使用的内存更少、高并发场景性能更高,但在内存充足的性能测试时,TcMalloc 比 JeMalloc 性能高 5%-10%,详细测试见:https://github.com/apache/doris/pull/12496 - -- tablet sink 中的 batch size 修改为至少 8K。 -- 默认关闭 Page Cache 和 减少 Chunk Allocator 预留内存大小 - -Page Cache 和 Chunk Allocator 分别缓存用户数据块和内存预分配,这两个功能会占用一定比例的内存并且不会释放。由于这部分内存占用无法灵活调配,导致在某些场景下可能因这部分内存占用而导致其他任务内存不足,影响系统稳定性和可用性,因此新版本中默认关闭了这两个功能。 - -但在某些延迟敏感的报表场景下,关闭该功能可能会导致查询延迟增加。如用户担心升级后该功能对业务造成影响,可以通过在 be.conf 中增加以下参数以保持和之前版本行为一致。 -``` -disable_storage_page_cache=false -chunk_reserved_bytes_limit=10% -``` - -### API 变化 - -- BE 的 http api 错误返回信息,由 `{"status": "Fail", "msg": "xxx"}` 变更为更具体的 ``{"status": "Not found", "msg": "Tablet not found. tablet_id=1202"}`` - -- `SHOW CREATE TABLE` 中,comment 的内容由双引号包裹变为单引号包裹 - -- 支持普通用户通过 http 命令获取 query profile。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/manager/query-profile-action](https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/manager/query-profile-action) - -- 优化了 sequence 列的指定方式,可以直接指定列名。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/data-operate/update-delete/sequence-column-manual](https://doris.apache.org/zh-CN/docs/dev/data-operate/update-delete/sequence-column-manual) - -- `show backends` 和 `show tablets` 返回结果中,增加远端存储的空间使用情况 (#11450) -- 移除了 Num-Based Compaction 相关代码 (#13409) -- 重构了 BE 的错误码机制,部分返回的错误信息会发生变化 (#8855) - -# 其他 - -- 支持 Docker 官方镜像。 -- 支持在 MacOS(x86/M1) 和 ubuntu-22.04 上编译 Doris -- 支持进行 image 文件的校验。 - -文档搜索“--image”:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/metadata-operation](https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/metadata-operation) -- 脚本相关 - - FE、BE 的 stop 脚本支持通过 `--grace` 参数退出 FE、BE(使用 kill -15 信号代替 kill -9) - - FE start 脚本支持通过 --version 查看当前 FE 版本 (#11563) -- 支持通过 `ADMIN COPY TABLET` 命令获取某个 tablet 的数据和相关建表语句,用于本地问题调试 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET) - -- 支持通过 http api,获取一个 SQL 语句相关的 建表语句,用于本地问题复现 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/query-schema-action](https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/query-schema-action) - -- 支持建表时关闭这个表的 compaction 功能,用于测试 - -文档中搜索 "disble_auto_compaction":[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -# 致谢 - -Apache Doris 1.2.0 版本的发布离不开所有社区用户的支持,在此向所有参与版本设计、开发、测试、讨论的社区贡献者们表示感谢,他们分别是(首字母排序): - -``` -@924060929 -@a19920714liou -@adonis0147 -@Aiden-Dong -@aiwenmo -@AshinGau -@b19mud -@BePPPower -@BiteTheDDDDt -@bridgeDream -@ByteYue -@caiconghui -@CalvinKirs -@cambyzju -@caoliang-web -@carlvinhust2012 -@catpineapple -@ccoffline -@chenlinzhong -@chovy-3012 -@coderjiang -@cxzl25 -@dataalive -@dataroaring -@dependabot -@dinggege1024 -@DongLiang-0 -@Doris-Extras -@eldenmoon -@EmmyMiao87 -@englefly -@FreeOnePlus -@Gabriel39 -@gaodayue -@geniusjoe -@gj-zhang -@gnehil -@GoGoWen -@HappenLee -@hello-stephen -@Henry2SS -@hf200012 -@huyuanfeng2018 -@jacktengg -@jackwener -@jeffreys-cat -@Jibing-Li -@JNSimba -@Kikyou1997 -@Lchangliang -@LemonLiTree -@lexoning -@liaoxin01 -@lide-reed -@link3280 -@liutang123 -@liuyaolin -@LOVEGISER -@lsy3993 -@luozenglin -@luzhijing -@madongz -@morningman -@morningman-cmy -@morrySnow -@mrhhsg -@Myasuka -@myfjdthink -@nextdreamblue -@pan3793 -@pangzhili -@pengxiangyu -@platoneko -@qidaye -@qzsee -@SaintBacchus -@SeekingYang -@smallhibiscus -@sohardforaname -@song7788q -@spaces-X -@ssusieee -@stalary -@starocean999 -@SWJTU-ZhangLei -@TaoZex -@timelxy -@Wahno -@wangbo -@wangshuo128 -@wangyf0555 -@weizhengte -@weizuo93 -@wsjz -@wunan1210 -@xhmz -@xiaokang -@xiaokangguo -@xinyiZzz -@xy720 -@yangzhg -@Yankee24 -@yeyudefeng -@yiguolei -@yinzhijian -@yixiutt -@yuanyuan8983 -@zbtzbtzbt -@zenoyang -@zhangboya1 -@zhangstar333 -@zhannngchen -@ZHbamboo -@zhengshiJ -@zhenhb -@zhqu1148980644 -@zuochunwei -@zy-kkk -``` diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.1.md deleted file mode 100644 index b8d016dc5f52e..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.1.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -{ - "title": "Release 1.2.1", - "language": "zh-CN" -} ---- - -在 1.2.1 版本中,Doris 团队已经修复了自 1.2.0 版本发布以来约 200 个问题或性能改进项。同时,1.2.1 版本也作为 1.2 的第一个迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - - -# 优化改进 - -### 支持高精度小数 DecimalV3 - -支持精度更高和性能更好的 DecimalV3,相较于过去版本具有以下优势: - -- 可表示范围更大,取值范围都进行了明显扩充,有效数字范围 [1,38]。 - -- 性能更高,根据不同精度,占用存储空间可自适应调整。 - -- 支持更完备的精度推演,对于不同的表达式,应用不同的精度推演规则对结果的精度进行推演。 - -[DecimalV3](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/DECIMALV3) - -### 支持 Iceberg V2 - -支持 Iceberg V2 (仅支持 Position Delete,Equality Delete 会在后续版本支持),可以通过 Multi-Catalog 功能访问 Iceberg V2 格式的表。 - - -### 支持 OR 条件转 IN - -支持将 where 条件表达式后的 or 条件转换成 in 条件,在部分场景中可以提升执行效率。 [#15437](https://github.com/apache/doris/pull/15437) [#12872](https://github.com/apache/doris/pull/12872) - - -### 优化 JSONB 类型的导入和查询性能 - -优化 JSONB 类型的导入和查询性能,在测试数据上约有 70% 的性能提升。 [#15219](https://github.com/apache/doris/pull/15219) [#15219](https://github.com/apache/doris/pull/15219) - -### Stream load 支持带引号的 CSV 数据 - -通过导入任务参数 `trim_double_quotes` 来控制,默认值为 false,为 true 时表示裁剪掉 CSV 文件每个字段最外层的双引号。 [#15241](https://github.com/apache/doris/pull/15241) - -### Broker 支持腾讯云 CHDFS 和 百度云 BOS、AFS - -可以通过 Broker 访问存储在腾讯云 CHDFS 和 百度智能云 BOS、AFS 上的数据。 [#15297](https://github.com/apache/doris/pull/15297) [#15448](https://github.com/apache/doris/pull/15448) - -### 新增函数 - -新增函数 `substring_index`。 [#15373](https://github.com/apache/doris/pull/15373) - - - -# 问题修复 - -- 修复部分情况下,从 1.1.x 版本升级到 1.2.0 版本后,用户权限信息丢失的问题。 [#15144](https://github.com/apache/doris/pull/15144) - -- 修复使用 date/datetimev2 类型进行分区时,分区值错误的问题。 [#15094](https://github.com/apache/doris/pull/15094) - -- 修复部分已发布功能的 Bug,具体列表可参阅:[PR List](https://github.com/apache/doris/pulls?q=is%3Apr+label%3Adev%2F1.2.1-merged+is%3Aclosed) - - -# 升级注意事项 - -### 已知问题 - -- 请勿使用 JDK11 作为 BE 的运行时 JDK,会导致 BE Crash。 - -- 该版本对 csv 格式的读取性能有下降,会影响 csv 格式的导入和读取效率,我们会在下一个三位版本尽快修复 - -### 行为改变 - -- BE 配置项 `high_priority_flush_thread_num_per_store` 默认值由 1 改成 6,以提升 Routine Load 的写入效率。[#14775](https://github.com/apache/doris/pull/14775) - -- FE 配置项 `enable_new_load_scan_node` 默认值改为 true,将使用新的 File Scan Node 执行导入任务,对用户无影响。 [#14808](https://github.com/apache/doris/pull/14808) - -- 删除 FE 配置项 `enable_multi_catalog`,默认开启 Multi-Catalog 功能。 - -- 默认强制开启向量化执行引擎。会话变量 `enable_vectorized_engine` 将不再生效,如需重新生效,需将 FE 配置项 `disable_enable_vectorized_engine` 设为 false,并重启 FE。 [#15213](https://github.com/apache/doris/pull/15213) - -# 致谢 - -有 45 位贡献者参与到 1.2.1 版本的开发与完善中,感谢他们的付出,他们分别是: - -@adonis0147 - -@AshinGau - -@BePPPower - -@BiteTheDDDDt - -@ByteYue - -@caiconghui - -@cambyzju - -@chenlinzhong - -@dataroaring - -@Doris-Extras - -@dutyu - -@eldenmoon - -@englefly - -@freemandealer - -@Gabriel39 - -@HappenLee - -@Henry2SS - -@hf200012 - -@jacktengg - -@Jibing-Li - -@Kikyou1997 - -@liaoxin01 - -@luozenglin - -@morningman - -@morrySnow - -@mrhhsg - -@nextdreamblue - -@qidaye - -@spaces-X - -@starocean999 - -@wangshuo128 - -@weizuo93 - -@wsjz - -@xiaokang - -@xinyiZzz - -@xutaoustc - -@yangzhg - -@yiguolei - -@yixiutt - -@Yulei-Yang - -@yuxuan-luo - -@zenoyang - -@zhangstar333 - -@zhannngchen - -@zhengshengjun - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.2.md deleted file mode 100644 index bc3561787e70f..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.2.md +++ /dev/null @@ -1,241 +0,0 @@ ---- -{ - "title": "Release 1.2.2", - "language": "zh-CN" -} ---- - -在 1.2.2 版本中,Doris 团队已经修复了自 1.2.1 版本发布以来超过 200 个问题或性能改进项。同时,1.2.2 版本也作为 1.2.1 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - - -# New Feature - -### 数据湖分析 - -- **支持自动同步 Hive Metastore 元数据信息。** 默认情况下外部数据源的元数据变更,如创建或删除表、加减列等操作不会同步给 Doris,用户需要使用 `REFRESH CATALOG` 命令手动刷新元数据。在 1.2.2 版本中支持自动刷新 Hive Metastore 元数据信息,通过让 FE 节点定时读取 HMS 的 notification event 来感知 Hive 表元数据的变更情况。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/) - -- **支持读取 Iceberg Snapshot 以及查询 Snapshot 历史。** 在执行 Iceberg 数据写入时,每一次写操作都会产生一个新的快照。默认情况下通过 Apache Doris 读取 Iceberg 表仅会读取最新版本的快照。在 1.2.2 版本中可以使用 `FOR TIME AS OF` 和 `FOR VERSION AS OF` 语句,根据快照 ID 或者快照产生的时间读取历史版本的数据,也可以使用 iceberg_meta 表函数查询指定表的快照信息。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg) - -- JDBC Catalog 支持 PostgreSQL、Clickhouse、Oracle、SQLServer。 - -- **JDBC Catalog 支持 insert into 操作。** 在 Doris 中建立 JDBC Catalog 后,可以通过 insert into 语句直接写入数据,也可以将 Doris 执行完查询之后的结果写入 JDBC Catalog,或者是从一个 JDBC 外表将数据导入另一个 JDBC 外表。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/) - - -### 自动分桶推算 - -支持通过 `DISTRIBUTED BY HASH(……) BUCKETS AUTO` 语句设置自动分桶,系统帮助用户设定以及伸缩不同分区的分桶数,使分桶数保持在一个相对合适的范围内。 - -参考文档:[https://mp.weixin.qq.com/s/DSyZGJtjQZUYUsvfK0IcCg](https://mp.weixin.qq.com/s/DSyZGJtjQZUYUsvfK0IcCg) - - -### 新增函数 - -增加归类分析函数 `width_bucket` 。 - -参考文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/width-bucket/#description](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/width-bucket/#description) - - -# Behavior Changes - -### 默认情况下禁用 BE 的 Page Cache - -关闭此配置以优化内存使用并降低内存 OOM 的风险,但有可能增加一些小查询的查询延迟。如果您对查询延迟敏感,或者具有高并发小查询场景,可以配置 `disable_storage_page_cache=false` 以再次启用 Page Cache。 - -### 增加新 Session 变量 `group_by_and_having_use_alias_first` - -用于控制 group by 和 having 语句是否优先使用列的别名,而非从 From 语句里寻找列的名字,默认为 false。 - -# Improvement - -### Compaction 优化 - -- **支持 Vetical Compaction**。在过去版本中,宽列场景 Compaction 往往会带来大量的内存开销。在 1.2.2 版本中,Vertical Compaction 采用了按列组的方式进行数据合并,单次合并只需要加载部分列的数据,能够极大减少合并过程中的内存占用。在实际测试中,Vertical compaction 使用内存仅为原有 compaction 算法的 1/10,同时 Compaction 速率提升 15%。 - -- 支持 **Segment Compaction**。在过去版本中,当用户大数据量高频导入时可能会遇到 -238 以及 -235 问题,Segment Compaction 允许在导入数据的同时进行数据的合并,以有效控制 Segment 文件的数量,提升高频导入的系统稳定性。 - -参考文档:[https://doris.apache.org/docs/dev/advanced/best-practice/compaction](https://doris.apache.org/docs/dev/advanced/best-practice/compaction) - - -### 数据湖分析 - -- Hive Catalog 支持访问 Hive 1/2/3 版本。 - -- Hive Catalog 可以使用 Broker 访问数据存储在 JuiceFS 的 Hive。 - -- Iceberg Catalog 支持 Hive Metastore 和 Rest 作为元数据服务。 - -- ES Catalog 支持 元数据字段 _id 列映射。 - -参考文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/hive](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/hive) - -- 优化 Iceberg V2 表有大量删除行诗时的读取性能。 - -- 支持读取 Schema Evolution 后 Iceberg 表。 - -- Parquet Reader 正确处理列名大小写。 - - -### 其他 - -- 支持访问 Hadoop KMS 加密的 HDFS。 - -- 支持取消正在执行的导出任务。 - -参考文档:[https://doris.apache.org/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/CANCEL-EXPORT](https://doris.apache.org/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/CANCEL-EXPORT) - -- 将`explode_split` 函数执行效率优化 1 倍。 - -- 将 nullable 列的读取性能优化 3 倍。 - -- 优化 Memtracker 的部分问题,提高内存管理精度,优化内存应用。 - - -# BugFix - -- 修复了使用 Doris-Flink-Connector 导入数据时的内存泄漏问题;[#16430](https://github.com/apache/doris/pull/16430) - -- 修复了 BE 可能的线程调度问题,并减少了 BE 线程耗尽导致的 Fragment_sent_timeout。 - -- 修复了 datetimev2/decivalv3 的部分正确性和精度问题。 - -- 修复了 Light Schema Change 功能的各种已知问题。 - -- 修复了 bitmap 类型 Runtime Filter 的各种数据正确性问题。 - -- 修复了 1.2.1 版本中引入的 CSV 读取性能差的问题。 - -- 修复了 Spark Load 数据下载阶段导致的 BE OOM 问题。 - -- 修复了从 1.1.x 版升级到 1.2.x 版时可能出现的元数据兼容性问题。 - -- 修复了创建 JDBC Catalog 时的元数据问题。 - -- 修复了由于导入操作导致的 CPU 使用率高的问题。 - -- 修复了大量失败 Broker Load 作业导致的 FE OOM 问题。 - -- 修复了加载浮点类型时精度丢失的问题。 - -- 修复了 Stream Load 使用两阶段提交时出现的内存泄漏问题。 - -# 其他 - -添加指标以查看 BE 上的 Rowset 和 Segment 总数字 `doris_be_all_rowsets_num` 和 `doris_be_all_segments_num` - -# 致谢 - -有 53 位贡献者参与到 1.2.2 版本的开发与完善中,感谢他们的付出,他们分别是: - -@adonis0147 - -@AshinGau - -@BePPPower - -@BiteTheDDDDt - -@ByteYue - -@caiconghui - -@cambyzju - -@chenlinzhong - -@DarvenDuan - -@dataroaring - -@Doris-Extras - -@dutyu - -@englefly - -@freemandealer - -@Gabriel39 - -@HappenLee - -@Henry2SS - -@htyoung - -@isHuangXin - -@JackDrogon - -@jacktengg - -@Jibing-Li - -@kaka11chen - -@Kikyou1997 - -@Lchangliang - -@LemonLiTree - -@liaoxin01 - -@liqing-coder - -@luozenglin - -@morningman - -@morrySnow - -@mrhhsg - -@nextdreamblue - -@qidaye - -@qzsee - -@spaces-X - -@stalary - - -@starocean999 - -@weizuo93 - -@wsjz - -@xiaokang - -@xinyiZzz - -@xy720 - -@yangzhg - -@yiguolei - -@yixiutt - -@Yukang-Lian - -@Yulei-Yang - -@zclllyybb - -@zddr - -@zhangstar333 - -@zhannngchen - -@zy-kkk - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.3.md deleted file mode 100644 index c487ee61ae6f1..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.3.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -{ - "title": "Release 1.2.3", - "language": "zh-CN" -} ---- - -在 1.2.3 版本中,Doris 团队已经修复了自 1.2.2 版本发布以来超过 200 个问题或性能改进项。同时,1.2.3 版本也作为 1.2.2 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - - -# Improvement - -### JDBC Catalog - -- 支持通过 JDBC Catalog 连接到另一个 Doris 数据库。 - -目前 JDBC Catalog 连接 Doris 只支持用 5.x 版本的 JDBC jar 包。如果使用 8.x JDBC jar 包可能会出现列类型无法匹配问题。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/#doris](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/#doris) - -- 支持通过参数 `only_specified_database` 来同步指定的数据库。 - -- 支持通过 `lower_case_table_names` 参数控制是否以小写形式同步表名,解决表名区分大小写的问题。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc) - -- 优化 JDBC Catalog 的读取性能。 - -### Elasticsearch Catalog - -- 支持 Array 类型映射。 - -- 支持通过 `like_push_down` 属性下推 like 表达式来控制 ES 集群的 CPU 开销。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/es](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/es) - -### Hive Catalog - -- 支持 Hive 表默认分区 `__Hive_default_partition__`。 - -- Hive Metastore 元数据自动同步支持压缩格式的通知事件。 - -### 动态分区优化 - -- 支持通过 storage_medium 参数来控制创建动态分区的默认存储介质。 - -参考文档:[https://doris.apache.org/docs/dev/advanced/partition/dynamic-partition](https://doris.apache.org/docs/dev/advanced/partition/dynamic-partition) - - -### 优化 BE 的线程模型 - -- 优化 BE 的线程模型,以避免频繁创建和销毁线程所带来的稳定性问题。 - -# Bug 修复 - -- 修复了部分 Unique Key 模型 Merge-on-Write 表的问题; - -- 修复了部分 Compaction 相关问题; - -- 修复了部分 Delete 语句导致的数据问题; - -- 修复了部分 Query 执行问题; - -- 修复了在某些操作系统上使用 JDBC Catalog 导致 BE 宕机的问题; - -- 修复了部分 Multi-Catalog 的问题; - -- 修复了部分内存统计和优化问题; - -- 修复了部分 DecimalV3 和 date/datetimev2 的相关问题。 - -- 修复了部分导入过程中的稳定性问题; - -- 修复了部分 Light Schema Change 的问题; - -- 修复了使用 `datetime` 类型创建批处理分区的问题; - -- 修复了 Broker Load 大数据量导入失败而导致的 FE 内存使用过高的问题; - -- 修复了删除表后无法取消 Stream Load 的问题; - -- 修复了某些情况下查询 `information_schema` 超时的问题; - -- 修复了使用 `select outfile` 并发数据导出导致 BE 宕机的问题; - -- 修复了事务性插入操作导致内存泄漏的问题; - -- 修复了部分查询和导入 Profile 的问题,并支持通过 FE web ui 直接下载 Profile 文件; - -- 修复了 BE Tablet GC 线程导致 IO 负载过高的问题; - -- 修复了 Kafka Routine Load 中提交 Offset 不准确的问题。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.4.md deleted file mode 100644 index 80a5b9924d0ad..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.4.md +++ /dev/null @@ -1,158 +0,0 @@ ---- -{ - "title": "Release 1.2.4", - "language": "zh-CN" -} ---- - -在 1.2.4 版本中,Doris 团队已经修复了自 1.2.3 版本发布以来近 150 个问题或性能改进项。同时,1.2.4 版本也作为 1.2.3 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - -# Behavior Changed - -- 针对 Date/DatetimeV2 和 DecimalV3 类型,在 `DESCRIBLE` 和 `SHOW CREATE TABLE` 语句的结果中,将不再显示为 Date/DatetimeV2 或 DecimalV3,而直接显示为 Date/Datetime 或 Decimal。 - - 这个改动用于兼容部分 BI 系统。如果想查看列的实际类型,可以通过 `DESCRIBE ALL` 语句查看。 - -- 查询 `information_schema` 库中的表时,默认不再返回 External Catalog 中的元信息。 - - 这个改动避免了因 External Catalog 的连接问题导致的 information_schema 库不可查的问题,从而解决部分 BI 系统与 Doris 配合使用的问题。可以通过 FE 的配置项 `infodb_support_ext_catalog `控制,默认为 false,即不返回 External Catalog 中的元信息。 - -# Improvement - -### JDBC Catalog - -- 支持通过 JDBC Catalog 连接其他 Trino/Presto 集群 - -​ 参考文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#trino](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#trino) - -- JDBC Catalog 连接 Clickhouse 数据源支持 Array 类型映射 - -​ 参考文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#clickhouse](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#clickhouse) - -### Spark Load - -- Spark Load 支持 Resource Manager HA 相关配置 - -​ 参考 PR: [https://github.com/apache/doris/pull/15000](https://github.com/apache/doris/pull/15000) - -# Bug Fixes - -- 修复 Hive Catalog 的若干连通性问题。 - -- 修复 Hudi Catalog 的若干问题。 - -- 优化 JDBC Catalog 的连接池,避免过多的连接。 - -- 修复通过 JDBC Catalog 从另一个 Doris 集群导入数据是会发生 OOM 的问题。 - -- 修复若干查询和导入的规划问题。 - -- 修复 Unique Key Merge-On-Write 表的若干问题。 - -- 修复若干 BDBJE 问题,解决某些情况下 FE 元数据异常的问题。 - -- 修复 `CREATE VIEW` 语句不支持 Table Valued Function 的问题。 - -- 修复若干内存统计的问题。 - -- 修复读取 Parquet/ORC 表的若干问题。 - -- 修复 DecimalV3 的若干问题。 - -- 修复 `SHOW QUERY/LOAD PROFILE` 的若干问题。 - -# 致谢 - -有 47 位贡献者参与到 1.2.4 的完善和发布中,感谢他们的辛劳付出: - -@zy-kkk - -@zhannngchen - -@zhangstar333 - -@yixiutt - -@yiguolei - -@xinyiZzz - -@xiaokang - -@wsjz - -@wangbo - -@starocean999 - -@sohardforaname - -@siriume - -@pingchunzhang - -@nextdreamblue - -@mymeiyi - -@mrhhsg - -@morrySnow - -@morningman - -@luwei16 - -@luozenglin - -@liujinhui1994 - -@liaoxin01 - -@kaka11chen - -@jeffreys-cat - -@jacktengg - -@gavinchou - -@dutyu - -@dataroaring - -@chenlinzhong - -@caoliang-web - -@cambyzju - -@adonis0147 - -@Yulei-Yang - -@Yukang-Lian - -@SWJTU-ZhangLei - -@Kikyou1997 - -@Jibing-Li - -@JackDrogon - -@HappenLee - -@GoGoWen - -@Gabriel39 - -@Doris-Extras - -@CalvinKirs - -@Cai-Yao - -@ByteYue - -@BiteTheDDDDt - -@BePPPower diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.5.md deleted file mode 100644 index eebebdeeb5922..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.5.md +++ /dev/null @@ -1,181 +0,0 @@ ---- -{ - "title": "Release 1.2.5", - "language": "zh-CN" -} ---- - -在 1.2.5 版本中,Doris 团队已经修复了自 1.2.4 版本发布以来近 210 个问题或性能改进项。同时,1.2.5 版本也作为 1.2.4 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - -# Behavior Changed - -- BE 启动脚本会检查系统的最大文件句柄数需大于等于 65536,否则启动失败。 - -- BE 配置项 `enable_quick_compaction` 默认设为 true。即默认开启 Quick Compaction 功能。该功能用于优化大批量导入情况下的小文件问题。 - -- 修改表的动态分区属性后,将不再立即生效,而是统一等待下一次动态分区表的任务调度,以避免一些死锁问题。 - -# Improvement - -- 优化 bthread 和 pthread 的使用,减少查询过程中的 RPC 阻塞问题。 - -- FE 前端页面的 Profile 页面增加下载 Profile 的按钮。 - -- 新增 FE 配置 `recover_with_skip_missing_version`,用于在某些故障情况下,查询跳过有问题的数据副本。 - -- 行级权限功能支持 Catalog 外表。 - -- Hive Catalog 支持 BE 端自动刷新 kerberos 票据,无需手动刷新。 - -- JDBC Catalog 支持通过 MySQL/ClickHouse 系统库(`information_schema`)下的表。 - -# Bug Fixes - -- 修复低基数列优化导致的查询结果不正确的问题 - -- 修复若干访问 HDFS 的认证和兼容性问题。 - -- 修复若干浮点和 decimal 类型的问题。 - -- 修复若干 date/datetimev2 类型的问题。 - -- 修复若干查询执行和规划的问题。 - -- 修复 JDBC Catalog 的若干问题。 - -- 修复 Hive Catalog 的若干查询相关问题,以及 Hive Metastore 元数据同步的问题。 - -- 修复 `show load profile` 结果不正确的问题。 - -- 修复若干内存相关问题。 - -- 修复 `CREATE TABLE AS SELECT` 功能的若干问题。 - -- 修复 JSONB 类型在不支持 avx2 的机型上导致 BE 宕机的问题。 - -- 修复动态分区的若干问题。 - -- 修复 TopN 查询优化的若干问题。 - -- 修复 Unique Key Merge-on-Write 表模型的若干问题。 - - -# 致谢 - -有 58 贡献者参与到 1.2.5 的完善和发布中,感谢他们的辛劳付出: - -@adonis0147 - -@airborne12 - -@AshinGau - -@BePPPower - -@BiteTheDDDDt - -@caiconghui - -@CalvinKirs - -@cambyzju - -@caoliang-web - -@dataroaring - -@Doris-Extras - -@dujl - -@dutyu - -@fsilent - -@Gabriel39 - -@gitccl - -@gnehil - -@GoGoWen - -@gongzexin - -@HappenLee - -@herry2038 - -@jacktengg - -@Jibing-Li - -@kaka11chen - -@Kikyou1997 - -@LemonLiTree - -@liaoxin01 - -@LiBinfeng-01 - -@luwei16 - -@Moonm3n - -@morningman - -@mrhhsg - -@Mryange - -@nextdreamblue - -@nsnhuang - -@qidaye - -@Shoothzj - -@sohardforaname - -@stalary - -@starocean999 - -@SWJTU-ZhangLei - -@wsjz - -@xiaokang - -@xinyiZzz - -@yangzhg - -@yiguolei - -@yixiutt - -@yujun777 - -@Yulei-Yang - -@yuxuan-luo - -@zclllyybb - -@zddr - -@zenoyang - -@zhangstar333 - -@zhannngchen - -@zxealous - -@zy-kkk - -@zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.6.md deleted file mode 100644 index f2a53bf1bac4d..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.6.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -{ - "title": "Release 1.2.6", - "language": "zh-CN" -} ---- - -# Behavior Changed - -- 新增 BE 配置项 `allow_invalid_decimalv2_triteral` 以控制是否可以导入超过小数精度的 Decimal 类型数据,用于兼容之前的逻辑。 - -# Bug Fixes - -## 查询 - -- 修复了部分查询计划的问题; -- 支持会话变量 `sql_select_limit` 和 `have_query_cache` 用于与老版本的 MySQL 客户端兼容; -- 优化 Cold Run 查询性能; -- 修复 Expr Context 类内存泄漏的问题; -- 修复 `explode_split` 函数在某些情况下执行错误的问题。 - -## Multi Catalog - -- 修复了同步 Hive 元数据时 FE 回放元数据日志失败的问题; -- 修复了 `refresh catalog` 操作可能导致 FE OOM 的问题; -- 修复了 JDBC Catalog 无法正确处理 `0000-00-00` 日期格式的问题; -- 修复了 kerberos ticket 无法自动刷新的问题; -- 优化了 Hive Partition 裁剪性能; -- 修复 JDBC Catalog 中 Trino 和 Presto 不一致的行为; -- 修复了在某些环境中无法使用 HDFS 短路读取来提高查询效率的问题; -- 修复无法读取 CHDFS Iceberg 表的问题。 - -## 存储 - -- 修复 Merge-on-Write 表中删除 bitmap 逻辑计算错误的问题; -- 修复了若干 BE 内存问题; -- 修复了表数据 Snappy 压缩的问题; -- 修复 jemalloc 在某些情况下可能导致 BE 崩溃的问题。 - -## 其他 - -- 修复了部分 Java UDF 相关问题; -- 修复了 `recover table` 操作错误地触发动态分区创建的问题; -- 修复了通过 Broker Load 导入 orc 文件时的时区问题; -- 修复新添加的 `PERCENT` 关键字导致 Routine Load 作业的回放元数据失败的问题; -- 修复了 `truncate` 操作无法作用于非分区表的问题; -- 修复了由于 `show snapshot` 操作导致 MySQL 连接丢失的问题; -- 优化锁逻辑以降低创建表时发生锁超时错误的概率; -- 优化了导入发生错误时的报错信息。 - -# 致谢 - -感谢以下开发者在 Apache Doris 1.2.6 版本中所做的贡献; - -@amorynan - -@BiteTheDDDDt - -@caoliang-web - -@dataroaring - -@Doris-Extras - -@dutyu - -@Gabriel39 - -@HHoflittlefish777 - -@htyoung - -@jacktengg - -@jeffreys-cat - -@kaijchen - -@kaka11chen - -@Kikyou1997 - -@KnightLiJunLong - -@liaoxin01 - -@LiBinfeng-01 - -@morningman - -@mrhhsg - -@sohardforaname - -@starocean999 - -@vinlee19 - -@wangbo - -@wsjz - -@xiaokang - -@xinyiZzz - -@yiguolei - -@yujun777 - -@Yulei-Yang - -@zhangstar333 - -@zy-kkk diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.7.md deleted file mode 100644 index 9f56808d4ea12..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.7.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -{ - "title": "Release 1.2.7", - "language": "zh-CN" -} ---- - -# Bugfix - -- 修复了一些查询问题。 -- 修复了一些存储问题。 -- 修复一些小数精度问题。 -- 修复由无效的 sql_select_limit 会话变量值引起的查询错误。 -- 修复了无法使用 hdfs 短路读取的问题。 -- 修复了腾讯云 cosn 无法访问的问题。 -- 修复了一些 Hive Catalog kerberos 访问的问题。 -- 修复 Stream load Profile 无法使用的问题。 -- 修复 Promethus 监控参数格式问题。 -- 修复了创建大量 Tablet 时建表超时的问题。 - - -# 最新特性 - -- Unique Key 模型支持将数组类型作为 Key 列; --添加了 have_query_cache 变量以保证与 MySQL 生态系统兼容。 --添加 enable_strong _consistency_read 以支持会话之间的强一致性读取。 --FE 指标支持用户级的查询计数器。 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.8.md deleted file mode 100644 index 768f2ef349758..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v1.2/release-1.2.8.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -{ - "title": "Release 1.2.8", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 1.2.8](https://doris.apache.org/download/) 版本已于 2024 年 3 月 09 日正式与大家见面。该版本对多个功能进行了更新优化,旨在更好地满足用户的需求,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 改进和优化 -- 修复若干查询执行的问题 -- 修复若干 Spark Load 相关的问题 -- 修复若干 Parquet/ORC 文件读取的问题。 -- 修复 Broker 进行因为 "FileSystem closed" 错误导致运行失败的问题。 -- 修复若干 Broker Load 相关的问题。 -- 修复若干 CTAS 操作相关的问题。 -- 修复若干备份恢复功能相关的问题。 -- 修复若干导出(Export/Outfile)相关的问题。 -- 修复 `replayEraseTable` 方法导致 FE 无法启动的问题。 -- 优化 Iceberg Catalog 元数据缓存的性能。 -- Audit Log 中新增 Catalog 列。 - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.0.md deleted file mode 100644 index f303d57b4a260..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.0.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -{ - "title": "Release 2.0.0", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 Release 版本已于 2023 年 8 月 11 日正式发布,有超过 275 位贡献者为 Apache Doris 提交了超过 4100 个优化与修复。 - -在 2.0.0 版本中,Apache Doris 在标准 Benchmark 数据集上盲测查询性能得到超过 10 倍的提升、在日志分析和湖仓一体场景能力得到全面加强、数据更新效率和写入效率都更加高效稳定、支持了更加完善的多租户和资源隔离机制、在资源弹性与存算分离方向踏上了新的台阶、增加了一系列面向企业用户的易用性特性。在经过近半年的开发、测试与稳定性调优后,这一版本已经正式稳定可用,欢迎大家下载使用! - -> 下载链接:[https://doris.apache.org/download](https://doris.apache.org/download) -> -> GitHub 源码:[https://github.com/apache/doris/tree/2.0.0-rc04](https://github.com/apache/doris/tree/2.0.0-rc04) - - -## 盲测性能 10 倍以上提升! - -在 Apache Doris 2.0.0 版本中,我们引入了全新查询优化器和自适应的并行执行模型,结合存储层、执行层以及执行算子上的一系列性能优化手段,实现了盲测性能 10 倍以上的提升。以 SSB-Flat 和 TPC-H 标准测试数据集为例,在相同的集群和机器配置下,新版本宽表场景盲测较之前版本性能提升 10 倍、多表关联场景盲测提升了 13 倍,实现了巨大的性能飞跃。 - -### 更智能的全新查询优化器 - -全新查询优化器采取了更先进的 Cascades 框架、使用了更丰富的统计信息、实现了更智能化的自适应调优,在绝大多数场景无需任何调优和 SQL 改写即可实现极致的查询性能,同时对复杂 SQL 支持得更加完备、可完整支持 TPC-DS 全部 99 个 SQL。通过全新查询优化器,我们可以胜任更多真实业务场景的挑战,减少因人工调优带来的人力消耗,真正助力业务提效。 - -以 TPC-H 为例,全新优化器在未进行任何手工调优和 SQL 改写的情况下,绝大多数 SQL 仍领先于旧优化器手工调优后的性能表现!而在超过百家 2.0 版本提前体验用户的真实业务场景中,绝大多数原始 SQL 执行效率得以极大提升! - -参考文档:[更智能的全新查询优化器](../../query/nereids/nereids-new) - -如何开启:`SET enable_nereids_planner=true` 在 Apache Doris 2.0-beta 版本中全新查询优化器已经默认开启 - -### 倒排索引支持 - -在 2.0.0 版本中我们对现有的索引结构进行了丰富,引入了倒排索引来应对多维度快速检索的需求,在关键字模糊查询、等值查询和范围查询等场景中均取得了显著的查询性能和并发能力提升。 - -在此以某头部手机厂商的用户行为分析场景为例,在之前的版本中,随着并发量的上升、查询耗时逐步提升,性能下降趋势比较明显。而在 2.0.0 版本开启倒排索引后,随着并发量的提升查询性能始终保持在毫秒级。在同等查询并发量的情况下,2.0.0 版本在该用户行为分析场景中并发查询性能提升了 5-90 倍! - - -### 点查询并发能力提升 20 倍 - -在银行交易流水单号查询、保险代理人保单查询、电商历史订单查询、快递运单号查询等 Data Serving 场景,会面临大量一线业务人员及 C 端用户基于主键 ID 检索整行数据的需求,同时在用户画像、实时风控等场景中还会面对机器大规模的程序化查询,在过去此类需求往往需要引入 Apache HBase 等 KV 系统来应对点查询、Redis 作为缓存层来分担高并发带来的系统压力。 -对于基于列式存储引擎构建的 Apache Doris 而言,此类的点查询在数百列宽表上将会放大随机读取 IO,并且查询优化器和执行引擎对于此类简单 SQL 的解析、分发也将带来不必要的额外开销,负责 SQL 解析的 FE 模块往往会成为限制并发的瓶颈,因此需要更高效简洁的执行方式。 - -在 Apache Doris 2.0.0 版本,我们引入了全新的行列混合存储以及行级 Cache,使得单次读取整行数据时效率更高、大大减少磁盘访问次数,同时引入了点查询短路径优化、跳过执行引擎并直接使用快速高效的读路径来检索所需的数据,并引入了预处理语句复用执行 SQL 解析来减少 FE 开销。 - -通过以上一系列优化,Apache Doris 2.0.0 版本在并发能力上实现了数量级的提升,实现了单节点 30000 QPS 的并发表现,较过去版本点查询并发能力提升超 20 倍! - -基于以上能力,Apache Doris 可以更好应对高并发数据服务场景的需求,替代 HBase 在此类场景中的能力,减少复杂技术栈带来的维护成本以及数据的冗余存储。 - -### 自适应的并行执行模型 - -在实现极速分析体验的同时,为了保证多个混合分析负载的执行效率以及查询的稳定性,在 2.0.0 版本中我们引入了 Pipeline 执行模型作为查询执行引擎。在 Pipeline 执行引擎中,查询的执行是由数据来驱动控制流变化的,各个查询执行过程之中的阻塞算子被拆分成不同 Pipeline,各个 Pipeline 能否获取执行线程调度执行取决于前置数据是否就绪,实现了阻塞操作的异步化、可以更加灵活地管理系统资源,同时减少了线程频繁创建和销毁带来的开销,并提升了 Apache Doris 对于 CPU 的利用效率。因此 Apache Doris 在混合负载场景中的查询性能和稳定性都得到了全面提升。 - -参考文档:[查询执行引擎](../../query-acceleration/optimization-technology-principle/pipeline-execution-engine) - -如何开启:` Set enable_pipeline_engine = true ` -- 该功能在 Apache Doris 2.0 版本中将默认开启,BE 在进行查询执行时默认将 SQL 的执行模型转变 Pipeline 的执行方式。 -- `parallel_pipeline_task_num`代表了 SQL 查询进行查询并发的 Pipeline Task 数目。Apache Doris 默认配置为`0`,此时 Apache Doris 会自动感知每个 BE 的 CPU 核数并把并发度设置为 CPU 核数的一半,用户也可以根据自己的实际情况进行调整。 -- 对于从老版本升级的用户,系统自动将该参数设置成老版本中`parallel_fragment_exec_instance_num`的值。 - -## 更统一多样的分析场景 - -作为最初诞生于报表分析场景的 OLAP 系统,Apache Doris 在这一擅长领域中做到了极致,凭借自身优异的分析性能和极简的使用体验收获到了众多用户的认可,在诸如实时看板(Dashboard)、实时大屏、业务报表、管理驾驶舱等实时报表场景以及自助 BI 平台、用户行为分析等即席查询场景获得了极为广泛的运用。 - -而随着用户规模的极速扩张,越来越多用户开始希望通过 Apache Doris 来简化现有的繁重大数据技术栈,减少多套系统带来的使用及运维成本。因此 Apache Doris 也在不断拓展应用场景的边界,从过去的实时报表和 Ad-hoc 等典型 OLAP 场景到湖仓一体、ELT/ETL、日志检索与分析、高并发 Data Serving 等更多业务场景,而日志检索分析、湖仓一体也是我们在 Apache Doris 最新版本中的重要突破。 - -### 10 倍以上性价比的日志检索分析平台 - -在 Apache Doris 2.0.0 版本中,我们提供了原生的半结构化数据支持,在已有的 JSON、Array 基础之上增加了复杂类型 Map,并基于 Light Schema Change 功能实现了 Schema Evolution。与此同时,2.0.0 版本新引入的倒排索引和高性能文本分析算法全面加强了 Apache Doris 在日志检索分析场景的能力,可以支持更高效的任意维度分析和全文检索。结合过去在大规模数据写入和低成本存储等方面的优势,相对于业内常见的日志分析解决方案,基于 Apache Doris 构建的新一代日志检索分析平台实现了 10 倍以上的性价比提升。 - -### 湖仓一体 - -在 Apache Doris 1.2 版本中,我们引入了 Multi-Catalog 功能,支持了多种异构数据源的元数据自动映射与同步,实现了便捷的元数据和数据打通。在 2.0.0 版本中,我们进一步对湖仓一体进行了加强,引入了更多数据源,并针对用户的实际生产环境做了诸多性能优化,在真实工作负载情况下查询性能得到大幅提升。 - -在数据源方面,Apache Doris 2.0.0 版本支持了 Hudi Copy-on-Write 表的 Snapshot Query 以及 Merge-on-Read 表的 Read Optimized Query,截止目前已经支持了 Hive、Hudi、Iceberg、Paimon、MaxCompute、Elasticsearch、Trino、ClickHouse 等数十种数据源,几乎支持了所有开放湖仓格式和 Metastore。同时还支持通过 Apache Range 对 Hive Catalog 进行鉴权,可以无缝对接用户现有的权限系统。同时还支持可扩展的鉴权插件,为任意 Catalog 实现自定义的鉴权方式。 - -在性能方面,利用 Apache Doris 自身高效的分布式执行框架、向量化执行引擎以及查询优化器,结合 2.0 版本中对于小文件和宽表的读取优化、本地文件 Cache、ORC/Parquet 文件读取效率优化、弹性计算节点以及外表的统计信息收集,Apaceh Doris 在 TPC-H 场景下查询 Hive 外部表相较于 Presto/Trino 性能提升 3-5 倍。 - -通过这一系列优化,Apache Doris 湖仓一体的能力得到极大拓展,在如下场景可以更好发挥其优异的分析能力: - -- 湖仓查询加速:为数据湖、Elasticsearch 以及各类关系型数据库提供优秀的查询加速能力,相比 Hive、Presto、Spark 等查询引擎实现数倍的性能提升。 - -- 数据导入与集成:基于可扩展的连接框架,增强 Apache Doris 在数据集成方面的能力,让数据更便捷的被消费和处理。用户可以通过 Apache Doris 对上游的多种数据源进行统一的增量、全量同步,并利用 Apache Doris 的数据处理能力对数据进行加工和展示,也可以将加工后的数据写回到数据源,或提供给下游系统进行消费。 - -- 统一数据分析网关:利用 Apache Doris 构建完善可扩展的数据源连接框架,支持用户将这些外部数据源统一到 Doris 的元数据映射结构上,当用户通过 Doris 查询这些外部数据源时,能够提供一致的查询体验。 - -## 高效的数据更新 - -在实时分析场景中,数据更新是非常普遍的需求。用户不仅希望能够实时查询最新数据,也希望能够对数据进行灵活的实时更新。典型场景如电商订单分析、物流运单分析、用户画像等,需要支持数据更新类型包括整行更新、部分列更新、按条件进行批量更新或删除以及整表或者整个分区的重写(inser overwrite)。 - -高效的数据更新一直是大数据分析领域的痛点,离线数据仓库 hive 通常只支持分区级别的数据更新,而 Hudi 和 Iceberg 等数据湖,虽然支持 Record 级别更新,但是通常采用 Merge-on-Read 或 Copy-on-Write 的方式,仅适合低频批量更新而不适合实时高频更新。 - -在 Apache Doris 1.2 版本,我们在 Unique Key 主键模型实现了 Merge-on-Write 的数据更新模式,数据在写入阶段就能完成所有的数据合并工作,因此查询性能得到 5-10 倍的提升。在 Apache Doris 2.0 版本我们进一步加强了数据更新能力,主要包括: - -- 对写入性能进行了大幅优化,高并发写入和混合负载写入场景的稳定性也显著提升。例如在单 Tablet 7GB 的重复导入测试中,数据导入的耗时从约 30 分钟缩短到了 90s,写入效率提升 20 倍;以某头部支付产品的场景压测为例,在 20 个并行写入任务下可以达到 30 万条每秒的写入吞吐,并且持续写入十几个小时后仍然表现非常稳定。 - -- 支持部分列更新功能。在 2.0.0 版本之前 Apache Doris 仅支持通过 Aggregate Key 聚合模型的 Replace_if_not_null 进行部分列更新,在 2.0.0 版本中我们增加了 Unique Key 主键模型的部分列更新,在多张上游源表同时写入一张宽表时,无需由 Flink 进行多流 Join 打宽,直接写入宽表即可,减少了计算资源的消耗并大幅降低了数据处理链路的复杂性。同时在面对画像场景的实时标签列更新、订单场景的状态更新时,直接更新指定的列即可,较过去更为便捷。 - -- 支持复杂条件更新和条件删除。在 2.0.0 版本之前 Unique Key 主键模型仅支持简单 Update 和 Delete 操作,在 2.0.0 版本中我们基于 Merge-on-Write 实现了复杂条件的数据更新和删除,并且执行效率更加高效。基于以上优化,Apache Doris 对于各类数据更新需求都有完备的能力支持! - -## 更加高效稳定的数据写入 - -### 导入性能进一步提升 - -聚焦于实时分析,我们在过去的几个版本中在不断增强实时分析能力,其中端到端的数据实时写入能力是优化的重要方向,在 Apache Doris 2.0 版本中,我们进一步强化了这一能力。通过 Memtable 不使用 Skiplist、并行下刷、单副本导入等优化,使得导入性能有了大幅提升: - -- 使用 Stream Load 对 TPC-H 144G lineitem 表原始数据进行三副本导入 48 buckets Duplicate 表,吞吐量提升 100%。 -- 使用 Stream Load 对 TPC-H 144G lineitem 表原始数据进行三副本导入 48 buckets Unique Key 表,吞吐量提升 200%。 -- 使用 insert into select 对 TPC-H 144G lineitem 表进行导入 48 buckets Duplicate 表,吞吐量提升 50%。 -- 使用 insert into select 对 TPC-H 144G lineitem 表进行导入 48 buckets Unique Key 表,吞吐提升 150%。 - - -### 数据高频写入更稳定 - -在高频数据写入过程中,小文件合并和写放大问题以及随之而来的磁盘 I/O 和 CPU 资源开销是制约系统稳定性的关键,因此在 2.0 版本中我们引入了 Vertical Compaction 以及 Segment Compaction,用以彻底解决 Compaction 内存问题以及写入过程中的 Segment 文件过多问题,资源消耗降低 90%,速度提升 50%,内存占用仅为原先的 10%。 - - -### 数据表结构自动同步 - -在过去版本中我们引入了毫秒级别的 Schema Change,而在最新版本 Flink-Doris-Connector 中,我们实现了从 MySQL 等关系型数据库到 Apache Doris 的一键整库同步。在实际测试中单个同步任务可以承载数千张表的实时并行写入,从此彻底告别过去繁琐复杂的同步流程,通过简单命令即可实现上游业务数据库的表结构及数据同步。同时当上游数据结构发生变更时,也可以自动捕获 Schema 变更并将 DDL 动态同步到 Doris 中,保证业务的无缝运行。 - -## 更加完善的多租户资源隔离 - -多租户与资源隔离的主要目的是为了保证高负载时避免相互发生资源抢占,Apache Doris 在过去版本中推出了资源组(Resource Group)的硬隔离方案,通过对同一个集群内部的 BE 打上标签,标签相同的 BE 会组成一个资源组。数据入库时会按照资源组配置将数据副本写入到不同的资源组中,查询时按照资源组的划分使用对应资源组上的计算资源进行计算,例如将读、写流量放在不同的副本上从而实现读写分离,或者将在线与离线业务划分在不同的资源组、避免在离线分析任务之间的资源抢占。 - -资源组这一硬隔离方案可以有效避免多业务间的资源抢占,但在实际业务场景中可能会存在某些资源组紧张而某些资源组空闲的情况发生,这时需要有更加灵活的方式进行空闲资源的共享,以降低资源空置率。因此在 2.0.0 版本中我们增加了 Workload Group 资源软限制的方案,通过对 Workload 进行分组管理,以保证内存和 CPU 资源的灵活调配和管控。 - -通过将 Query 与 Workload Group 相关联,可以限制单个 Query 在 BE 节点上的 CPU 和内存资源的百分比,并可以配置开启资源组的内存软限制。当集群资源紧张时,将自动 Kill 组内占用内存最大的若干个查询任务以减缓集群压力。当集群资源空闲时,一旦 Workload Group 使用资源超过预设值时,多个 Workload 将共享集群可用空闲资源并自动突破阈值,继续使用系统内存以保证查询任务的稳定执行。Workload Group 还支持设置优先级,通过预先设置的优先级进行资源分配管理,来确定哪些任务可正常获得资源,哪些任务只能获取少量或没有资源。 - -与此同时,在 Workload Group 中我们还引入了查询排队的功能,在创建 Workload Group 时可以设置最大查询数,超出最大并发的查询将会进行队列中等待执行,以此来缓解高负载下系统的压力。 - -## 极致弹性与存算分离 - -过去 Apache Doris 凭借在易用性方面的诸多设计帮助用户大幅节约了计算与存储资源成本,而面向未来的云原生架构,我们已经走出了坚实的一步。 - -从降本增效的趋势出发,用户对于计算和存储资源的需求可以概括为以下几方面: - -- 计算资源弹性:面对业务计算高峰时可以快速进行资源扩展提升效率,在计算低谷时可以快速缩容以降低成本; - -- 存储成本更低:面对海量数据可以引入更为廉价的存储介质以降低成本,同时存储与计算单独设置、相互不干预; - -- 业务负载隔离:不同的业务负载可以使用独立的计算资源,避免相互资源抢占; - -- 数据管控统一:统一 Catalog、统一管理数据,可以更加便捷地分析数据。 - -存算一体的架构在弹性需求不强的场景具有简单和易于维护的优势,但是在弹性需求较强的场景有一定的局限。而存算分离的架构本质是解决资源弹性的技术手段,在资源弹性方面有着更为明显的优势,但对于存储具有更高的稳定性要求,而存储的稳定性又会进一步影响到 OLAP 的稳定性以及业务的存续性,因此也引入了 Cache 管理、计算资源管理、垃圾数据回收等一系列机制。 - -而在与 Apache Doris 社区广大用户的交流中,我们发现用户对于存算分离的需求可以分为以下三类: - -- 目前选择简单易用的存算一体架构,暂时没有资源弹性的需求; - -- 欠缺稳定的大规模存储,要求在 Apache Doris 原有基础上提供弹性、负载隔离以及低成本; - -- 有稳定的大规模存储,要求极致弹性架构、解决资源快速伸缩的问题,因此也需要更为彻底的存算分离架构; - -为了满足前两类用户的需求,Apache Doris 2.0 版本中提供了可以兼容升级的存算分离方案: -第一种,计算节点。2.0 版本中我们引入了无状态的计算节点 Compute Node,专门用于数据湖分析。相对于原本存储计算一体的混合节点,Compute Node 不保存任何数据,在集群扩缩容时无需进行数据分片的负载均衡,因此在数据湖分析这种具有明显高峰的场景中可以灵活扩容、快速加入集群分摊计算压力。同时由于用户数据往往存储在 HDFS/S3 等远端存储中,执行查询时查询任务会优先调度到 Compute Node 执行,以避免内表与外表查询之间的计算资源抢占。 - -第二种,冷热数据分层。在存储方面,冷热数据往往面临不同频次的查询和响应速度要求,因此通常可以将冷数据存储在成本更低的存储介质中。在过去版本中 Apache Doris 支持对表分区进行生命周期管理,通过后台任务将热数据从 SSD 自动冷却到 HDD,但 HDD 上的数据是以多副本的方式存储的,并没有做到最大程度的成本节约,因此对于冷数据存储成本仍然有较大的优化空间。在 Apache Doris 2.0 版本中推出了冷热数据分层功能,冷热数据分层功能使 Apache Doris 可以将冷数据下沉到存储成本更加低廉的对象存储中,同时冷数据在对象存储上的保存方式也从多副本变为单副本,存储成本进一步降至原先的三分之一,同时也减少了因存储附加的计算资源成本和网络开销成本。通过实际测算,存储成本最高可以降低超过 70%! - -面对更加彻底的存储计算分离需求,飞轮科技(SelectDB)技术团队设计并实现了全新的云原生存算分离架构(SelectDB Cloud),近一年来经历了大量企业客户的大规模使用,在性能、功能成熟度、系统稳定性等方面经受了真实生产环境的考验。在 Apache Doris 2.0.0 版本发布之际,飞轮科技宣布将这一经过大规模打磨后的成熟架构贡献至 Apache Doris 社区。这一工作预计将于 2023 年 10 月前后完成,届时全部存算分离的代码都将会提交到 Apache Doris 社区主干分支中,预计在 9 月广大社区用户就可以提前体验到基于存算分离架构的预览版本。 - -## 易用性进一步提升 - -除了以上功能需求外,在 Apache Doris 还增加了许多面向企业级特性的体验改进: - -### 支持 Kubernetes 容器化部署 - -在过去 Apache Doris 是基于 IP 通信的,在 K8s 环境部署时由于宿主机故障发生 Pod IP 漂移将导致集群不可用,在 2.0 版本中我们支持了 FQDN,使得 Apache Doris 可以在无需人工干预的情况下实现节点自愈,因此可以更好应对 K8s 环境部署以及灵活扩缩容。 - -### 跨集群数据复制 - -在 Apache Doris 2.0.0 版本中,我们可以通过 CCR 的功能在库/表级别将源集群的数据变更同步到目标集群,可根据场景精细控制同步范围;用户也可以根据需求灵活选择全量或者增量同步,有效提升了数据同步的灵活性和效率;此外 Dors CCR 还支持 DDL 同步,源集群执行的 DDL 语句可以自动同步到目标集群,从而保证了数据的一致性。Doris CCR 配置和使用也非常简单,简单操作即可快速完成跨集群数据复制。基于 Doris CCR 优异的能力,可以更好实现读写负载分离以及多机房备份,并可以更好支持不同场景的跨集群复制需求。 - -## 其他升级注意事项 - -- 1.2-lts 需要停机升级到 2.0.0,2.0-alpha 需要停机升级到 2.0.0 -- 查询优化器开关默认开启 `enable_nereids_planner=true`; -- 系统中移除了非向量化代码,所以 `enable_vectorized_engine` 参数将不再生效; -- 新增参数 `enable_single_replica_compaction`; -- 默认使用 datev2, datetimev2, decimalv3 来创建表,不支持 datev1,datetimev1,decimalv2 创建表; -- 在 JDBC 和 Iceberg Catalog 中默认使用 decimalv3; -- date type 新增 AGG_STATE; -- backend 表去掉 cluster 列; -- 为了与 BI 工具更好兼容,在 show create table 时,将 datev2 和 datetimev2 显示为 date 和 datetime。 -- 在 BE 启动脚本中增加了 max_openfiles 和 swap 的检查,所以如果系统配置不合理,be 有可能会启动失败; -- 禁止在 localhost 访问 FE 时无密码登录; -- 当系统中存在 Multi-Catalog 时,查询 information schema 的数据默认只显示 internal catalog 的数据; -- 限制了表达式树的深度,默认为 200; -- array string 返回值 单引号变双引号; -- 对 Doris 的进程名重命名为 DorisFE 和 DorisBE; -- AES 和 SM4 加解密函数的两参数版本行为变化,详见[对应函数文档](../../sql-manual/sql-functions/scalar-functions/encrypt-digest-functions/sm4-encrypt.md) - -## 正式踏上 2.0 之旅 - -在 Apache Doris 2.0.0 版本发布过程中,我们邀请了数百家企业参与新版本的打磨,力求为所有用户提供性能更佳、稳定性更高、易用性更好的数据分析体验。后续我们将会持续敏捷发版来响应所有用户对功能和稳定性的更高追求,预计 2.0 系列的第一个迭代版本 2.0.1 将于 8 月下旬发布,9 月会进一步发布 2.0.2 版本。在快速 Bugfix 的同时,也会不断将一些最新特性加入到新版本中。9 月份我们还将发布 2.1 版本的尝鲜版本,会增加一系列呼声已久的新能力,包括 Variant 可变数据类型以更好满足半结构化数据 Schema Free 的分析需求,多表物化视图,在导入性能方面持续优化、增加新的更加简洁的数据导入方式,通过自动攒批实现更加实时的数据写入,复合数据类型的嵌套能力等。 - -期待 Apache Doris 2.0 版本的正式发布为更多社区用户提供实时统一的分析体验,我们也相信 Apache Doris 2.0 版本会成为您在实时分析场景中的最理想选择。 - -## 致谢 - -再次向所有参与 Apache Doris 2.0.0 版本开发和测试的贡献者们表示最衷心的感谢,他们分别是: - -0xflotus、1330571、15767714253、924060929、ArmandoZ、AshinGau、BBB-source、BePPPower、Bears0haunt、BiteTheDDDDt、ByteYue、Cai-Yao、CalvinKirs、Centurybbx、ChaseHuangxu、CodeCooker17、DarvenDua、Dazhuwei、DongLiang-0、EvanTheBoy、FreeOnePlus、Gabriel39、GoGoWen、HHoflittlefish777、HackToday、HappenLee、Henry2SS、HonestManXin、JNSimba、JackDrogon、Jake-00、Jenson97Jibing-Li、Johnnyssc、JoverZhang、KassieZ、Kikyou1997、Larborator、Lchangliang、LemonLiTree、LiBinfeng-01、MRYOG、Mellorsssss、Moonm3n、Mryange、Myasuka、NetShrimp06、Reminiscent、SWJTU-ZhangLei、SaintBacchus、ShaoStaticTiger、Shoothzj、SilasKenneth、TangSiyang2001、Tanya-W、TeslaCN、TsukiokaKogane、UnicornLee、WinkerDu、WuWQ98、Xiaoccer、XieJiann、Yanko-7、Yukang-Lian、Yulei-Yang、ZI-MA、ZashJie、ZhangYu0123、Zhiyu-h、adonis0147、airborne12、alissa-tung、amorynan、beijita、bigben0204、bin41215、bingquanzhao、bobhan1、bowenliang123、brody715、caiconghui、cambyzju、caoliang-web、catpineapple、chenlinzhong、cjq9458、cnissnzg、colagy、csun5285、czzmmc、dataroaring、davidshtian、deadlinefen、deardeng、didiaode18、dong-shuai、dujl、dutyu、echo-hhj、eldenmoon、englefly、figurant、fornaix、fracly、freemandealer、fsilent、fuchanghai、gavinchou、git-hulk、gitccl、gnehil、guoxiaolongzte、gwxog、hailin0、hanyisong、haochengxia、haohuaijin、hechao-ustc、hello-stephen、herry2038、hey-hoho、hf200012、hqx871、httpshirley、htyoung、hubgeter、hufengkai、hust-hhb、isHuangXin、ixzc、jacktengg、jackwener、jeffreys-cat、jiugem、jixxiong、kaijchen、kaka11chen、levy5307、lexluo09、liangjiawei1110、liaoxin01、liugddx、liujinhui1994、liujiwen-up、liutang123、liuxinzero07、liwei9902、lljqy、lsy3993、luozenglin、luwei16、luzhijing、lvshaokang、maochongxin、meredith620、mklzl、mongo360、morningman、morrySnow、mrhhsg、myfjdthink、mymeiyi、nanfeng1999、neuyilan、nextdreamblue、niebayes、nikam14、pengxiangyu、pingchunzhang、platoneko、q763562998、qidaye、qzsee、reswqa、sepastian、shenxingwuying、shuke987、shysnow、siriume、sjyago、skyhitnow、smallhibiscus、sohardforaname、spaces-X、stalary、starocean999、superspeedone、taomengen、tarepanda1024、timyuer、ucasfl、vinlee19、wangbo、wanghuan2054、wangshuo128、wangtianyi2004、wangyf0555、wangyujia2023、web-flow、weizhengte、weizuo93、whutpencil、wsjz、wuwenchi、wzymumon、xiaojunjie、xiaokang、xiedeyantu、xinyiZzz、xuqinghuang、xutaoustc、xy720、xzj7019、ya-dao、yagagagaga、yangzhg、yiguolei、yimeng、yinzhijian、yixiutt、yongjinhou、youtNa、yuanyuan8983、yujian225、yujun777、yuxuan-luo、yz-jayhua、zbtzbtzbt、zclllyybb、zddr、zenoyang、zgxme、zhangguoqiang666、zhangstar333、zhangy5、zhannngchen、zhbinbin、zhengshengjun、zhengshiJ、zwuis、zxealous、zy-kkk、zzzxl1993、zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.1.md deleted file mode 100644 index b413fa70de2c7..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.1.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -{ - "title": "Release 2.0.1", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.1 Release 版本已于 2023 年 9 月 4 日正式发布,有超过 71 位贡献者为 Apache Doris 提交了超过 380 个优化与修复。 - -# 行为变更 -- 将 varchar 默认长度 1 修改为 65533 - -# 功能改进 - -### Array 和 Map 数据类型的功能优化及稳定性改进 - -- [https://github.com/apache/doris/pull/22793](https://github.com/apache/doris/pull/22793) -- [https://github.com/apache/doris/pull/22927](https://github.com/apache/doris/pull/22927) -- [https://github.com/apache/doris/pull/22738](https://github.com/apache/doris/pull/22738) -- [https://github.com/apache/doris/pull/22347](https://github.com/apache/doris/pull/22347) -- [https://github.com/apache/doris/pull/23250](https://github.com/apache/doris/pull/23250) -- [https://github.com/apache/doris/pull/22300](https://github.com/apache/doris/pull/22300) - -### 倒排索引的查询性能优化 - -- [https://github.com/apache/doris/pull/22836](https://github.com/apache/doris/pull/22836) -- [https://github.com/apache/doris/pull/23381](https://github.com/apache/doris/pull/23381) -- [https://github.com/apache/doris/pull/23389](https://github.com/apache/doris/pull/23389) -- [https://github.com/apache/doris/pull/22570](https://github.com/apache/doris/pull/22570) - -### bitmap、like、scan、agg 等执行性能优化 - -- [https://github.com/apache/doris/pull/23172](https://github.com/apache/doris/pull/23172) -- [https://github.com/apache/doris/pull/23495](https://github.com/apache/doris/pull/23495) -- [https://github.com/apache/doris/pull/23476](https://github.com/apache/doris/pull/23476) -- [https://github.com/apache/doris/pull/23396](https://github.com/apache/doris/pull/23396) -- [https://github.com/apache/doris/pull/23182](https://github.com/apache/doris/pull/23182) -- [https://github.com/apache/doris/pull/22216](https://github.com/apache/doris/pull/22216) - -### CCR 的功能优化与稳定性提升 - -- [https://github.com/apache/doris/pull/22447](https://github.com/apache/doris/pull/22447) -- [https://github.com/apache/doris/pull/22559](https://github.com/apache/doris/pull/22559) -- [https://github.com/apache/doris/pull/22173](https://github.com/apache/doris/pull/22173) -- [https://github.com/apache/doris/pull/22678](https://github.com/apache/doris/pull/22678) - -### Merge-on-Write 主键表的能力增强 - -- [https://github.com/apache/doris/pull/22282](https://github.com/apache/doris/pull/22282) -- [https://github.com/apache/doris/pull/22984](https://github.com/apache/doris/pull/22984) -- [https://github.com/apache/doris/pull/21933](https://github.com/apache/doris/pull/21933) -- [https://github.com/apache/doris/pull/22874](https://github.com/apache/doris/pull/22874) - - -### 表状态和统计信息的功能优化 - -- [https://github.com/apache/doris/pull/22658](https://github.com/apache/doris/pull/22658) -- [https://github.com/apache/doris/pull/22211](https://github.com/apache/doris/pull/22211) -- [https://github.com/apache/doris/pull/22775](https://github.com/apache/doris/pull/22775) -- [https://github.com/apache/doris/pull/22896](https://github.com/apache/doris/pull/22896) -- [https://github.com/apache/doris/pull/22788](https://github.com/apache/doris/pull/22788) -- [https://github.com/apache/doris/pull/22882](https://github.com/apache/doris/pull/22882) - - -### Multi-Catalog 的功能优化及稳定性改进 - -- [https://github.com/apache/doris/pull/22949](https://github.com/apache/doris/pull/22949) -- [https://github.com/apache/doris/pull/22923](https://github.com/apache/doris/pull/22923) -- [https://github.com/apache/doris/pull/22336](https://github.com/apache/doris/pull/22336) -- [https://github.com/apache/doris/pull/22915](https://github.com/apache/doris/pull/22915) -- [https://github.com/apache/doris/pull/23056](https://github.com/apache/doris/pull/23056) -- [https://github.com/apache/doris/pull/23297](https://github.com/apache/doris/pull/23297) -- [https://github.com/apache/doris/pull/23279](https://github.com/apache/doris/pull/23279) - - -# 问题修复 - -修复了若干个 2.0.0 版本中的问题,使系统稳定性得到进一步提升 - -- [https://github.com/apache/doris/pull/22673](https://github.com/apache/doris/pull/22673) -- [https://github.com/apache/doris/pull/22656](https://github.com/apache/doris/pull/22656) -- [https://github.com/apache/doris/pull/22892](https://github.com/apache/doris/pull/22892) -- [https://github.com/apache/doris/pull/22959](https://github.com/apache/doris/pull/22959) -- [https://github.com/apache/doris/pull/22902](https://github.com/apache/doris/pull/22902) -- [https://github.com/apache/doris/pull/22976](https://github.com/apache/doris/pull/22976) -- [https://github.com/apache/doris/pull/22734](https://github.com/apache/doris/pull/22734) -- [https://github.com/apache/doris/pull/22840](https://github.com/apache/doris/pull/22840) -- [https://github.com/apache/doris/pull/23008](https://github.com/apache/doris/pull/23008) -- [https://github.com/apache/doris/pull/23003](https://github.com/apache/doris/pull/23003) -- [https://github.com/apache/doris/pull/22966](https://github.com/apache/doris/pull/22966) -- [https://github.com/apache/doris/pull/22965](https://github.com/apache/doris/pull/22965) -- [https://github.com/apache/doris/pull/22784](https://github.com/apache/doris/pull/22784) -- [https://github.com/apache/doris/pull/23049](https://github.com/apache/doris/pull/23049) -- [https://github.com/apache/doris/pull/23084](https://github.com/apache/doris/pull/23084) -- [https://github.com/apache/doris/pull/22947](https://github.com/apache/doris/pull/22947) -- [https://github.com/apache/doris/pull/22919](https://github.com/apache/doris/pull/22919) -- [https://github.com/apache/doris/pull/22979](https://github.com/apache/doris/pull/22979) -- [https://github.com/apache/doris/pull/23096](https://github.com/apache/doris/pull/23096) -- [https://github.com/apache/doris/pull/23113](https://github.com/apache/doris/pull/23113) -- [https://github.com/apache/doris/pull/23062](https://github.com/apache/doris/pull/23062) -- [https://github.com/apache/doris/pull/22918](https://github.com/apache/doris/pull/22918) -- [https://github.com/apache/doris/pull/23026](https://github.com/apache/doris/pull/23026) -- [https://github.com/apache/doris/pull/23175](https://github.com/apache/doris/pull/23175) -- [https://github.com/apache/doris/pull/23167](https://github.com/apache/doris/pull/23167) -- [https://github.com/apache/doris/pull/23015](https://github.com/apache/doris/pull/23015) -- [https://github.com/apache/doris/pull/23165](https://github.com/apache/doris/pull/23165) -- [https://github.com/apache/doris/pull/23264](https://github.com/apache/doris/pull/23264) -- [https://github.com/apache/doris/pull/23246](https://github.com/apache/doris/pull/23246) -- [https://github.com/apache/doris/pull/23198](https://github.com/apache/doris/pull/23198) -- [https://github.com/apache/doris/pull/23221](https://github.com/apache/doris/pull/23221) -- [https://github.com/apache/doris/pull/23277](https://github.com/apache/doris/pull/23277) -- [https://github.com/apache/doris/pull/23249](https://github.com/apache/doris/pull/23249) -- [https://github.com/apache/doris/pull/23272](https://github.com/apache/doris/pull/23272) -- [https://github.com/apache/doris/pull/23383](https://github.com/apache/doris/pull/23383) -- [https://github.com/apache/doris/pull/23372](https://github.com/apache/doris/pull/23372) -- [https://github.com/apache/doris/pull/23399](https://github.com/apache/doris/pull/23399) -- [https://github.com/apache/doris/pull/23295](https://github.com/apache/doris/pull/23295) -- [https://github.com/apache/doris/pull/23446](https://github.com/apache/doris/pull/23446) -- [https://github.com/apache/doris/pull/23406](https://github.com/apache/doris/pull/23406) -- [https://github.com/apache/doris/pull/23387](https://github.com/apache/doris/pull/23387) -- [https://github.com/apache/doris/pull/23421](https://github.com/apache/doris/pull/23421) -- [https://github.com/apache/doris/pull/23456](https://github.com/apache/doris/pull/23456) -- [https://github.com/apache/doris/pull/23361](https://github.com/apache/doris/pull/23361) -- [https://github.com/apache/doris/pull/23402](https://github.com/apache/doris/pull/23402) -- [https://github.com/apache/doris/pull/23369](https://github.com/apache/doris/pull/23369) -- [https://github.com/apache/doris/pull/23245](https://github.com/apache/doris/pull/23245) -- [https://github.com/apache/doris/pull/23532](https://github.com/apache/doris/pull/23532) -- [https://github.com/apache/doris/pull/23529](https://github.com/apache/doris/pull/23529) -- [https://github.com/apache/doris/pull/23601](https://github.com/apache/doris/pull/23601) - -优化改进及修复问题的完整列表请在 GitHub 按照标签 dev/2.0.1-merged 进行筛选即可。 - - -# 致谢 - -向所有参与 Apache Doris 2.0.1 版本开发和测试的贡献者们表示最衷心的感谢,他们分别是: - -adonis0147、airborne12、amorynan、AshinGau、BePPPower、BiteTheDDDDt、bobhan1、ByteYue、caiconghui、CalvinKirs、csun5285、DarvenDuan、deadlinefen、DongLiang-0、Doris-Extras、dutyu、englefly、freemandealer、Gabriel39、GoGoWen、HappenLee、hello-stephen、HHoflittlefish777、hubgeter、hust-hhb、JackDrogon、jacktengg、jackwener、Jibing-Li、kaijchen、kaka11chen、Kikyou1997、Lchangliang、LemonLiTree、liaoxin01、LiBinfeng-01、lsy3993、luozenglin、morningman、morrySnow、mrhhsg、Mryange、mymeiyi、shuke987、sohardforaname、starocean999、TangSiyang2001、Tanya-W、ucasfl、vinlee19、wangbo -wsjz、wuwenchi、xiaokang、XieJiann、xinyiZzz、yujun777、Yukang-Lian、Yulei-Yang、zclllyybb、zddr、zenoyang、zgxme、zhangguoqiang666、zhangstar333、zhannngchen、zhiqiang-hhhh、zxealous、zy-kkk、zzzxl1993、zzzzzzzs \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.10.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.10.md deleted file mode 100644 index ab610bc5357b9..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.10.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -{ - "title": "Release 2.0.10", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,**[Apache Doris 2.0.10](https://doris.apache.org/download/) 版本已于 2024 年 5 月 16 日正式与大家见面**,该版本提交了 83 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 改进和优化 - -- 增加了`read_only`和`super_read_only`变量以保持和 MySQL 兼容 - -- 仅在 IO_ERROR 的错误才把数据目录加入 Broken List,防止 fd 超限等错误导致误加入 - -- 基于外表 CTAS 创建新表时,把 `VARCHAR` 类型转成 `STRING` 类型 - -- 支持把 Paimon 的 `ROW` 类型映射成 Doris 的 `STRUCT` 类型 - -- 在创建 Tablet 选择数据盘时,允许存在少量的倾斜 - -- 对 `set replica drop` 命令记录 Editlog,以防止在 Follower 节点执行命令后,其状态显示不正确 - -- Schema Change 内存自适应避免内存超限 - -- 倒排索引中 Unicode 分词器可以配置不使用停用词 - - -## 致谢 - -@airborne12, @BePPPower, @ByteYue, @CalvinKirs, @cambyzju, @csun5285, @dataroaring, @deardeng, @DongLiang-0, @eldenmoon, @felixwluo, @HappenLee, @hubgeter, @jackwener, @kaijchen, @kaka11chen, @Lchangliang, @liaoxin01, @LiBinfeng-01, @luennng, @morningman, @morrySnow, @Mryange, @nextdreamblue, @qidaye, @starocean999, @suxiaogang223, @SWJTU-ZhangLei, @w41ter, @xiaokang, @xy720, @yujun777, @Yukang-Lian, @zhangstar333, @zxealous, @zy-kkk, @zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.11.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.11.md deleted file mode 100644 index a94035c051756..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.11.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -{ - "title": "Release 2.0.11", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.11](https://doris.apache.org/download/) 版本已于 2024 年 6 月 5 日正式与大家见面,该版本提交了 123 个改进项以及问题修复,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - - -## 1 行为变更 - -由于倒排索引已经成熟稳定,可以替换老的 `BITMAP INDEX`,因此后续新建 `BITMAP INDEX` 会自动切换成 `INVERTED INDEX`,而已经创建的 `BITMAP INDEX` 保持不变。整个切换过程对用户无感知,写入和查询没有变化,此外用户可以修改 FE 配置 `enable_create_bitmap_index_as_inverted_index = false` 来关闭该自动切换。[#35528](https://github.com/apache/doris/pull/35528) - - - -## 2 改进和优化 - -- 为 JSON 和 TIME 添加 Trino JDBC Catalog 类型映射。 - -- 在无法转移到(非)主节点时,FE 退出以防止未知状态和过多日志。 - -- 在删除统计表时写入审计日志。 - -- 如果表只进行了部分分析,忽略最小/最大列统计以避免低效的查询计划。 - -- 支持集合操作减法,例如 `set1 - set2`。 - -- 使用 concat(col, pattern_str) 改进 LIKE 和 REGEXP 子句的性能,例如:`col1 LIKE concat('%', col2, '%')`。 - -- 添加查询选项以支持短路查询,保证升级兼容性。 - - - -## 3 致谢 - -@924060929、@airborne12、@AshinGau、@BePPPower、@BiteTheDDDDt、@ByteYue、@CalvinKirs、@cambyzju、@csun5285、@dataroaring、@eldenmoon、@englefly、@feiniaofeiafei、@Gabriel39、@GoGoWen、@HHoflittlefish777、@hubgeter、@jacktengg、@jackwener、@jeffreys-cat、@Jibing-Li、@kaka11chen、@kobe6th、@LiBinfeng-01、@mongo360、@morningman、@morrySnow、@mrhhsg、@Mryange、@nextdreamblue、@qidaye、@sjyango、@starocean999、@SWJTU-ZhangLei、@w41ter、@wangbo、@wsjz、@wuwenchi、@xiaokang、@XieJiann、@xy720、@yujun777、@Yukang-Lian、@Yulei-Yang、@zclllyybb、@zddr、@zhangstar333、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.12.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.12.md deleted file mode 100644 index 7171ea5f2c8ba..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.12.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -{ - "title": "Release 2.0.12", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.12](https://doris.apache.org/download/) 版本已于 2024 年 6 月 27 日正式与大家见面,该版本提交了 99 个改进项以及问题修复,欢迎大家下载体验。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 行为变更 - -- 不再将建表的默认注释设置为表的类型,而是改成默认为空,比如 COMMENT 'OLAP' 变成 COMMENT '',这样对于依赖注释的 BI 软件更加友好。 [#35855](https://github.com/apache/doris/pull/35855) - -- 将 `@@autocommit` 变量的类型从 `BOOLEAN` 改成 `BIGINT`,以免有些 MySQL 客户端(比如.NET MySQL.Data)报错。 [#33282](https://github.com/apache/doris/pull/33282) - - -## 改进优化 - -- 删除 `disable_nested_complex_type` 参数,默认允许创建嵌套的 `ARRAY` `MAP` `STRUCT` 类型。[#36255](https://github.com/apache/doris/pull/36255) - -- HMS Catalog 支持 `SHOW CREATE DATABASE` 命令。[ #28145](https://github.com/apache/doris/pull/28145) - -- 在 Query Profile 中增加更多倒排索引的指标。[#36545](https://github.com/apache/doris/pull/36545) - -- 跨集群数据复制(CCR)支持倒排索引 [#31743](https://github.com/apache/doris/pull/31743) - -## 致谢 - -@amorynan、@BiteTheDDDDt、@cambyzju、@caoliang-web、@dataroaring、@eldenmoon、@feiniaofeiafei、@felixwluo、@gavinchou、@HappenLee、@hello-stephen、@jacktengg、@Jibing-Li、@Johnnyssc、@liaoxin01、@LiBinfeng-01、@luwei16、@mongo360、@morningman、@morrySnow、@mrhhsg、@Mryange、@mymeiyi、@qidaye、@qzsee、@starocean999、@w41ter、@wangbo、@wsjz、@wuwenchi、@xiaokang、@XuPengfei-1020、@xy720、@yongjinhou、@yujun777、@Yukang-Lian、@Yulei-Yang、@zclllyybb、@zddr、@zhannngchen、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.13.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.13.md deleted file mode 100644 index d5cda35fecff8..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.13.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -{ - "title": "Release 2.0.13", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.13 版本已于 2024 年 7 月 16 日正式与大家见面,该版本提交了 112 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -[快速下载](https://doris.apache.org/download/) - -## 行为变更 - -仅在客户端启用了 `CLIENT_MULTI_STATEMENTS` 设置时,SQL 输入才会被视为多条语句,从而增强了与 MySQL 的兼容性。[#36759](https://github.com/apache/doris/pull/36759) - -## 新增功能 - -- 新增了 BE 配置 `allow_zero_date`,允许使用全零的日期。设置为 `false` 时,`0000-00-00` 会被解析为 `NULL`;设置为 `true` 时,会被解析为 `0000-01-01`。默认值为 `false`,以保持与之前行为的一致性。[#34961](https://github.com/apache/doris/pull/34961) - -- `LogicalWindow` 和 `LogicalPartitionTopN` 现在支持多字段谓词下推,以提升性能。[#36828](https://github.com/apache/doris/pull/36828) - -- ES Catalog 现在将 ES 的 `nested` 或 `object` 类型映射到 Doris 的 `JSON` 类型。[#37101](https://github.com/apache/doris/pull/37101) - -## 改进和优化 - -- `LIMIT` 查询现在会更早地停止读取数据,以减少资源消耗并提升性能。[#36535](https://github.com/apache/doris/pull/36535) - -- 现在支持具有空键的特殊 JSON 数据。[#36762](https://github.com/apache/doris/pull/36762) - -- 改进了 Routine Load 的稳定性和可用性,包括负载均衡、自动恢复、异常处理以及更友好的错误消息。[#36450](https://github.com/apache/doris/pull/36450) [#35376](https://github.com/apache/doris/pull/35376) [#35266](https://github.com/apache/doris/pull/35266) [#33372](https://github.com/apache/doris/pull/33372) [#32282](https://github.com/apache/doris/pull/32282) [#32046](https://github.com/apache/doris/pull/32046) [#32021](https://github.com/apache/doris/pull/32021) [#31846](https://github.com/apache/doris/pull/31846) [#31273](https://github.com/apache/doris/pull/31273) - -- 对 BE 的硬盘选择策略和速度进行了优化。[#36826](https://github.com/apache/doris/pull/36826) [#36795](https://github.com/apache/doris/pull/36795) [#36509](https://github.com/apache/doris/pull/36509) - -- 改进了 JDBC Catalog 的稳定性和可用性,包括加密、线程池连接数配置以及更友好的错误消息。[#36940](https://github.com/apache/doris/pull/36940) [#36720](https://github.com/apache/doris/pull/36720) [#30880](https://github.com/apache/doris/pull/30880) [#35692](https://github.com/apache/doris/pull/35692) - -## 致谢 - -@DarvenDuan、@Gabriel39、@Jibing-Li、@Johnnyssc、@Lchangliang、@LiBinfeng-01、@SWJTU-ZhangLei、@Thearas、@Yukang-Lian、@Yulei-Yang、@airborne12、@amorynan、@bobhan1、@cambyzju、@csun5285、@dataroaring、@deardeng、@eldenmoon、@englefly、@feiniaofeiafei、@hello-stephen、@jacktengg、@kaijchen、@liutang123、@luwei16、@morningman、@morrySnow、@mrhhsg、@mymeiyi、@platoneko、@qidaye、@sollhui、@starocean999、@w41ter、@xiaokang、@xy720、@yujun777、@zclllyybb \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.14.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.14.md deleted file mode 100644 index 8118e82035723..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.14.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -{ - "title": "Release 2.0.14", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.14 版本已于 2024 年 8 月 6 日正式与大家见面,该版本提交了 110 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - - -## 1 新功能 - -- 增加获取最近一个查询 Profile 的 REST 接口 `curl http://user:password@127.0.0.1:8030/api/profile/text` 。[#38268](https://github.com/apache/doris/pull/38268) - -## 2 改进和优化 - -- 优化 MOW 表带有 Sequence 列的主键点查性能。[#38287](https://github.com/apache/doris/pull/38287) - -- 优化倒排索引在查询条件很多时的性能。[#35346](https://github.com/apache/doris/pull/35346) - -- 创建带分词的倒排索引时,自动开启 `support_phrase` 选项加速 `match_phrase` 系列短语查询。[#37949](https://github.com/apache/doris/pull/37949) - -- 支持简化的 SQL Hint,例如 `SELECT /*+ query_timeout(3000) */ * FROM t;`。[#37720](https://github.com/apache/doris/pull/37720) - -- 读对象存储遇到 429 错误时自动重试提升稳定性。[#35396](https://github.com/apache/doris/pull/35396) - -- LEFT SEMI / ANTI JOIN 在匹配到符合的数据行时,终止后续的匹配执行提升性能。[#34703](https://github.com/apache/doris/pull/34703) - -- 避免非法数据返回 MySQL 结果时出发 coredump。[#28069](https://github.com/apache/doris/pull/28069) - -- 输出类型名字时统一使用小写,保持跟 MySQL 兼容对 BI 工具更加友好。[#38521](https://github.com/apache/doris/pull/38521) - - -## 致谢 - -@924060929、@BiteTheDDDDt、@ByteYue、@CalvinKirs、@GoGoWen、@HappenLee、@Jibing-Li、@Lchangliang、@LiBinfeng-01、@Mryange、@XieJiann、@Yukang-Lian、@Yulei-Yang、@airborne12、@amorynan、@biohazard4321、@cambyzju、@csun5285、@eldenmoon、@englefly、@freemandealer、@hello-stephen、@hubgeter、@kaijchen、@liaoxin01、@luwei16、@morningman、@morrySnow、@mymeiyi、@qidaye、@sollhui、@starocean999、@w41ter、@wuwenchi、@xiaokang、@xy720、@yujun777、@zclllyybb、@zddr、@zhangstar333、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.15.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.15.md deleted file mode 100644 index 4dec02572e9d0..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.15.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -{ - "title": "Release 2.0.15", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.15 版本已于 2024 年 9 月 30 日正式与大家见面,该版本提交了 157 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- 立即下载:https://doris.apache.org/download - -- GitHub 下载:https://github.com/apache/doris/releases/tag/2.0.15 - - -## 行为变更 - -无 - -## 新功能 - -- 恢复功能现在支持删除冗余的表块和分区选项。[#39028](https://github.com/apache/doris/pull/39028) - -- 支持 JSON 函数 `json_search`。[#40948](https://github.com/apache/doris/pull/40948) - -## 改进与优化 - -### 稳定性 - -- 添加了 FE 配置 `abort_txn_after_lost_heartbeat_time_second`,用于设置事务中止时间。[#28662](https://github.com/apache/doris/pull/28662) - -- BE 失去心跳信号超过 1 分钟后中止事务,而不是 5 秒,以避免事务中止过于敏感。[#22781](https://github.com/apache/doris/pull/22781) - -- 延迟调度例行加载的 EOF 任务,以避免过多的小事务。[#39975](https://github.com/apache/doris/pull/39975) - -- 优先从在线磁盘服务进行查询,以提高稳健性。[#39467](https://github.com/apache/doris/pull/39467) - -- 在非严格模式的部分更新中,如果行的删除标志已标记,则跳过检查新插入的行。[#40322](https://github.com/apache/doris/pull/40322) - -- 为防止 FE 内存不足,限制备份任务中的表块数量,默认值为 300,000。[#39987](https://github.com/apache/doris/pull/39987) - -- ARRAY MAP STRUCT 类型支持 `REPLACE_IF_NOT_NULL`。[#38304](https://github.com/apache/doris/pull/38304) - -- 对非 `DELETE_INVALID_XXX `失败的删除作业进行重试。[#37834](https://github.com/apache/doris/pull/37834) - -### 查询性能 - -- 优化由并发列更新和 compaction 引起的慢速列更新问题。[#38487](https://github.com/apache/doris/pull/38487) - -- 当过滤条件中存在 NullLiteral 时,可以将其折叠为 false 并进一步转换为 EmptySet,以减少不必要的数据扫描和计算。[#38135](https://github.com/apache/doris/pull/38135) - -- 提高 `ORDER BY` 全排序的性能。[#38985](https://github.com/apache/doris/pull/38985) - -- 提高倒排索引中字符串处理的性能。[#37395](https://github.com/apache/doris/pull/37395) - -### 查询优化器 - -- 增加了对以分号开头的语句的支持以兼容老优化器。[#39399](https://github.com/apache/doris/pull/39399) - -- 完善了一些聚合函数签名匹配。[#39352](https://github.com/apache/doris/pull/39352) - -- 在 Schema 变更后删除列统计信息并触发自动分析。[#39101](https://github.com/apache/doris/pull/39101) - -- 支持使用 `DROP CACHED STATS table_name` 删除缓存的统计信息。[#39367](https://github.com/apache/doris/pull/39367) - -### Multi Catalog - -- 优化 JDBC Catalog 刷新,减少客户端创建频率。[#40261](https://github.com/apache/doris/pull/40261) - -- 修复 JDBC Catalog 在某些条件下存在的线程泄漏问题。[#39423](https://github.com/apache/doris/pull/39423) - -**致谢** - -@924060929、@BePPPower、@BiteTheDDDDt、@CalvinKirs、@GoGoWen、@HappenLee、@Jibing-Li、@Johnnyssc、@LiBinfeng-01、@Mryange、@SWJTU-ZhangLei、@TangSiyang2001、@Toms1999、@Vallishp、@Yukang-Lian、@airborne12、@amorynan、@bobhan1、@cambyzju、@csun5285、@dataroaring、@eldenmoon、@englefly、@feiniaofeiafei、@hello-stephen、@htyoung、@hubgeter、@justfortaste、@liaoxin01、@liugddx、@liutang123、@luwei16、@mongo360、@morrySnow、@qidaye、@smallx、@sollhui、@starocean999、@w41ter、@xiaokang、@xzj7019、@yujun777、@zclllyybb、@zddr、@zhangstar333、@zhannngchen、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.2.md deleted file mode 100644 index e4deced5179e5..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.2.md +++ /dev/null @@ -1,191 +0,0 @@ ---- -{ - "title": "Release 2.0.2", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.2 版本已于 2023 年 10 月 6 日正式发布,该版本对多个功能进行了更新优化,旨在更好地满足用户的需求。有 92 位贡献者为 Apache Doris 2.0.2 版本提交了功能优化项以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**GitHub 下载**:https://github.com/apache/doris/releases/tag/2.0.2-rc05 - -**官网下载页**:https://doris.apache.org/download/ - -## Behavior Changes - -- https://github.com/apache/doris/pull/24679 - - 删除与 lambda 函数语法冲突的 json“->”运算符,可以使用函数 json_extract 代替。 - -- https://github.com/apache/doris/pull/24308 - -将 `metadata_failure_recovery` 从 fe.conf 移动到 start_fe.sh 参数,以避免异常操作。 - -- https://github.com/apache/doris/pull/24207 - -对于普通类型中的 null 值使用 `\n` 来表示,对于复杂类型或嵌套类型的 null 值,跟 JSON 类型保持一致、采取 null 来表示。 - -- https://github.com/apache/doris/pull/23795 -- https://github.com/apache/doris/pull/23784 - -优化 BE 节点 priority_network 配置项的绑定策略,如果用户配置了错误的 priority_network 则直接启动失败,以避免用户错误地认为配置是正确的。如果用户没有配置 priority_network,则仅从 IPv4 列表中选择第一个 IP,而不是从所有 IP 中选择,以避免用户的服务器不支持 IPv4。 - -- https://github.com/apache/doris/pull/17730 - -支持取消正在重试的导入任务,修复取消加载失败的问题。 - -## 功能优化 - -### 易用性提升 - -- https://github.com/apache/doris/pull/23887 - -某些场景下,用户需要向集群中添加一些自定义的库,如 lzo.jar、orai18n.jar 等。在过去的版本中,这些 lib 文件位于 fe/lib 或 be/lib 中,但在升级集群时,lib 库将被新的 lib 库替换,导致所有自定义的 lib 库都会丢失。 - -在新版本中,为 FE 和 BE 添加了新的自定义目录 custom_lib,用户可以在其中放置自定义 lib 文件。 - -- https://github.com/apache/doris/pull/23022 - -支持基于用户角色的权限访问控制,实现了行级细粒度的权限控制策略。 - -### 改进查询优化器 Nereids 统计信息收集 - -- https://github.com/apache/doris/pull/23663 - -在运行 Analysis 任务时禁用 File Cache,Analysis 任务是后台任务,不应影响用户本地 File Cache 数据。 - -- https://github.com/apache/doris/pull/23703 - -在过去版本中,查看列的统计信息时将忽略出现错误的列。 - -在新版本中,当 min 或 max 值未能反序列化时,查看列的统计信息时将使用 N/A 作为 min 或 max 的值并仍显示其余的统计信息,包括 count、null_count、ndv 等。 - -- https://github.com/apache/doris/pull/23965 - -支持 JDBC 外部表的统计信息收集。 - -- https://github.com/apache/doris/pull/24625 - -跳过 `__internal_schema` 和 `information_schema` 上未知列的统计信息检查。 - -### Multi-Catalog 功能优化 - -- https://github.com/apache/doris/pull/24168 - -支持 Hadoop viewfs; - -- https://github.com/apache/doris/pull/22369 - -优化 JDBC Catalog Checksum Replay 和 Range 相关问题; - -- https://github.com/apache/doris/pull/23868 - -优化了 JDBC Catalog 的 Property 检查和错误消息提示。 - -- https://github.com/apache/doris/pull/24242 - -修复了 MaxCompute Catalog Decimal 类型解析问题以及使用对象存储地址错误的问题。 - -- https://github.com/apache/doris/pull/23391 - -支持 Hive Metastore Catalog 的 SQL Cache。 - -- https://github.com/apache/doris/pull/22869 - -提高了 Hive Metastore Catalog 的元数据同步性能。 - -- https://github.com/apache/doris/pull/22702 - -添加 metadata_name_ids 以快速获取 Catalogs、DB、Table,在创建或删除 Catalog 和 Table 时无需 Refresh Catalog,并添加 Profiling 表从而与 MySQL 兼容。 - -### 倒排索引性能优化 - -- https://github.com/apache/doris/pull/23952 - -增加 bkd 索引的查询缓存,通过缓存可以加速在命中 bkd 索引时的查询性能,在高并发场景中效果更为明显; - -- https://github.com/apache/doris/pull/24678 - -提升倒排索引在 Count 算子上的查询性能; - -- https://github.com/apache/doris/pull/24751 - -提升了 Match 算子在未命中索引时的效率,在测试表现中性能最高提升 60 倍; - -- https://github.com/apache/doris/pull/23871 -- https://github.com/apache/doris/pull/24389 - -提升了 MATCH 和 MATCH_ALL 在倒排索引上的查询性能; - -### Array 函数优化 - -- https://github.com/apache/doris/pull/23630 - -优化了老版本查询优化器 Array 函数无法处理 Decimal 类型的问题; - -- https://github.com/apache/doris/pull/24327 - -优化了 `array_union` 数组函数对多个参数的支持; - -- https://github.com/apache/doris/pull/24455 - -支持通过 explode 函数来处理数组嵌套复杂类型; - -## Bug 修复 - - 修复了之前版本存在的部分 Bug,使系统整体稳定性表现得到大幅提升,完整 BugFix 列表请参考 GitHub Commits 记录; - -- https://github.com/apache/doris/pull/23601 -- https://github.com/apache/doris/pull/23630 -- https://github.com/apache/doris/pull/23555 -- https://github.com/apache/doris/pull/17644 -- https://github.com/apache/doris/pull/23779 -- https://github.com/apache/doris/pull/23940 -- https://github.com/apache/doris/pull/23860 -- https://github.com/apache/doris/pull/23973 -- https://github.com/apache/doris/pull/24020 -- https://github.com/apache/doris/pull/24039 -- https://github.com/apache/doris/pull/23958 -- https://github.com/apache/doris/pull/24104 -- https://github.com/apache/doris/pull/24097 -- https://github.com/apache/doris/pull/23852 -- https://github.com/apache/doris/pull/24139 -- https://github.com/apache/doris/pull/24165 -- https://github.com/apache/doris/pull/24164 -- https://github.com/apache/doris/pull/24369 -- https://github.com/apache/doris/pull/24372 -- https://github.com/apache/doris/pull/24381 -- https://github.com/apache/doris/pull/24385 -- https://github.com/apache/doris/pull/24290 -- https://github.com/apache/doris/pull/24207 -- https://github.com/apache/doris/pull/24521 -- https://github.com/apache/doris/pull/24460 -- https://github.com/apache/doris/pull/24568 -- https://github.com/apache/doris/pull/24610 -- https://github.com/apache/doris/pull/24595 -- https://github.com/apache/doris/pull/24616 -- https://github.com/apache/doris/pull/24635 -- https://github.com/apache/doris/pull/24625 -- https://github.com/apache/doris/pull/24572 -- https://github.com/apache/doris/pull/24578 -- https://github.com/apache/doris/pull/23943 -- https://github.com/apache/doris/pull/24697 -- https://github.com/apache/doris/pull/24681 -- https://github.com/apache/doris/pull/24617 -- https://github.com/apache/doris/pull/24692 -- https://github.com/apache/doris/pull/24700 -- https://github.com/apache/doris/pull/24389 -- https://github.com/apache/doris/pull/24698 -- https://github.com/apache/doris/pull/24778 -- https://github.com/apache/doris/pull/24782 -- https://github.com/apache/doris/pull/24800 -- https://github.com/apache/doris/pull/24808 -- https://github.com/apache/doris/pull/24636 -- https://github.com/apache/doris/pull/24981 -- https://github.com/apache/doris/pull/24949 - -## 致谢 - -感谢所有在 2.0.2 版本中参与功能开发与优化以及问题修复的所有贡献者,他们分别是: - -[@adonis0147](https://github.com/adonis0147) [@airborne12](https://github.com/airborne12) [@amorynan](https://github.com/amorynan) [@AshinGau](https://github.com/AshinGau) [@BePPPower](https://github.com/BePPPower) [@BiteTheDDDDt](https://github.com/BiteTheDDDDt) [@bobhan1](https://github.com/bobhan1) [@ByteYue](https://github.com/ByteYue) [@caiconghui](https://github.com/caiconghui) [@CalvinKirs](https://github.com/CalvinKirs) [@cambyzju](https://github.com/cambyzju) [@ChengDaqi2023](https://github.com/ChengDaqi2023) [@ChinaYiGuan](https://github.com/ChinaYiGuan) [@CodeCooker17](https://github.com/CodeCooker17) [@csun5285](https://github.com/csun5285) [@dataroaring](https://github.com/dataroaring) [@deadlinefen](https://github.com/deadlinefen) [@DongLiang-0](https://github.com/DongLiang-0) [@Doris-Extras](https://github.com/Doris-Extras) [@dutyu](https://github.com/dutyu) [@eldenmoon](https://github.com/eldenmoon) [@englefly](https://github.com/englefly) [@freemandealer](https://github.com/freemandealer) [@Gabriel39](https://github.com/Gabriel39) [@gnehil](https://github.com/gnehil) [@GoGoWen](https://github.com/GoGoWen) [@gohalo](https://github.com/gohalo) [@HappenLee](https://github.com/HappenLee) [@hello-stephen](https://github.com/hello-stephen) [@HHoflittlefish777](https://github.com/HHoflittlefish777) [@hubgeter](https://github.com/hubgeter) [@hust-hhb](https://github.com/hust-hhb) [@ixzc](https://github.com/ixzc) [@JackDrogon](https://github.com/JackDrogon) [@jacktengg](https://github.com/jacktengg) [@jackwener](https://github.com/jackwener) [@Jibing-Li](https://github.com/Jibing-Li) [@JNSimba](https://github.com/JNSimba) [@kaijchen](https://github.com/kaijchen) [@kaka11chen](https://github.com/kaka11chen) [@Kikyou1997](https://github.com/Kikyou1997) [@Lchangliang](https://github.com/Lchangliang) [@LemonLiTree](https://github.com/LemonLiTree) [@liaoxin01](https://github.com/liaoxin01) [@LiBinfeng-01](https://github.com/LiBinfeng-01) [@liugddx](https://github.com/liugddx) [@luwei16](https://github.com/luwei16) [@mongo360](https://github.com/mongo360) [@morningman](https://github.com/morningman) [@morrySnow](https://github.com/morrySnow) @mrhhsg @Mryange @mymeiyi @neuyilan @pingchunzhang @platoneko @qidaye @realize096 @RYH61 @shuke987 @sohardforaname @starocean999 @SWJTU-ZhangLei @TangSiyang2001 @Tech-Circle-48 @w41ter @wangbo @wsjz @wuwenchi @wyx123654 @xiaokang @XieJiann @xinyiZzz @XuJianxu @xutaoustc @xy720 @xyfsjq @xzj7019 @yiguolei @yujun777 @Yukang-Lian @Yulei-Yang @zclllyybb @zddr @zhangguoqiang666 @zhangstar333 @ZhangYu0123 @zhannngchen @zxealous @zy-kkk @zzzxl1993 @zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.3.md deleted file mode 100644 index 78c99bcb124c8..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.3.md +++ /dev/null @@ -1,275 +0,0 @@ ---- -{ - "title": "Release 2.0.3", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.3 版本已于 2023 年 12 月 14 日正式发布,该版本对复杂数据类型、统计信息收集、倒排索引、数据湖分析、分布式副本管理等多个功能进行了优化,有 104 位贡献者为 Apache Doris 2.0.3 版本提交了超过 1000 个功能优化项以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**GitHub 下载**:https://github.com/apache/doris/releases - -**官网下载页**:https://doris.apache.org/download/ - - -## 新增特性 - -### 自动统计信息收集 - -统计信息是 CBO 优化器进行代价估算时的依赖,通过收集统计信息有助于优化器了解数据分布特性、估算每个执行计划的成本并选择更优的执行计划,以此大幅提升查询效率。从 2.0.3 版本开始,Apache Doris 开始支持自动统计信息收集,默认为开启状态。 - -在每次导入事务提交后,Apache Doris 将记录导入事务更新的表信息并估算表统计信息的健康度,对于健康度低于配置参数的表会认为统计信息已过时并自动触发表的统计信息收集作业。同时为了降低统计信息作业的资源开销,Apache Doris 会自动采取采样的方式收集统计信息,用户也可以调整参数来采样更多行以获得更准确的数据分布信息。 - -更多信息请参考:[Statistics](../../query/nereids/statistics.md) - -### 数据湖框架支持复杂数据类型 - -- Java UDF、JDBC catalog、Hudi MOR 表等功能支持复杂数据类型 - - https://github.com/apache/doris/pull/24810 - - https://github.com/apache/doris/pull/26236 - -- Paimon catalog 支持复杂数据类型 - - https://github.com/apache/doris/pull/25364 - -- Paimon catalog 支持 Paimon 0.5 版本 - - https://github.com/apache/doris/pull/24985 - - -### 增加更多内置函数 - -- 新优化器支持 BitmapAgg 函数 - - https://github.com/apache/doris/pull/25508 - -- 支持 SHA 系列摘要函数 - - https://github.com/apache/doris/pull/24342 - -- 聚合函数 min_by 和 max_by 支持 bitmap 数据类型 - - https://github.com/apache/doris/pull/25430 - -- 增加 milliseconds/microseconds_add/sub/diff 函数 - - https://github.com/apache/doris/pull/24114 - -- 增加 json_insert, json_replace, json_set JSON 函数 - - https://github.com/apache/doris/pull/24384 - - -## 改进优化 - -### 性能优化 - -- 在过滤率高的倒排索引 match where 条件和过滤率低的普通 where 条件组合时,大幅降低索引列的 IO -- 优化经过 where 条件过滤后随机读数据的效率 -- 优化在 JSON 数据类型上使用老的 get_json_xx 函数的性能,提升 2-4 倍 -- 支持配置降低读数据线程的优先级,保证写入的 CPU 资源和实时性 -- 增加返回 largeint 的 uuid-numeric 函数,性能比返回 string 的 uuid 函数快 20 倍 -- Case when 的性能提升 3 倍 -- 在存储引擎执行中裁剪不必要的谓词计算 -- 支持 count 算子下推到存储层 -- 优化支持 and or 表达式中包含 nullable 类型的计算性能 -- 支持更多场景下 limit 算子提前到 join 前执行的改写,以提升执行效率 -- 增加消除 inline view 中的无用的 order by 算子,以提升执行效率 -- 优化了部分情况下的基数估计和代价模型的准确性,以提升执行效率 -- 优化了 JDBC catalog 的谓词下推逻辑和大小写逻辑 -- 优化了 file cache 的第一次开启后的读取效率 -- 优化 Hive 表 SQL cache 策略,使用 HMS 中存储的分区更新时间作为 cache 是否失效的判断,提高 cache 命中率 -- 优化了 Merge-on-Write compaction 效率 -- 优化了外表查询的线程分配逻辑,降低内存使用 -- 优化 column reader 的内存使用 - - -### 分布式副本管理改进 - -优化跳过删除分区、colocate group、持续写时均衡失败、冷热分层表不能均衡等; - -### 安全性提升 - -- 审计日志插件的配置使用 token 代替明文密码以增强安全性 - - https://github.com/apache/doris/pull/26278 - -- log4j 配置安全性增强 - - https://github.com/apache/doris/pull/24861 - -- 日志中不显示用户敏感信息 - - https://github.com/apache/doris/pull/26912 - - -## Bugfix 和稳定性提升 - -### 复杂数据类型 - -- 修复了 map/struct 对定长 CHAR(n) 没有正确截断的问题 - - https://github.com/apache/doris/pull/25725 - -- 修复了 struct 嵌套 map/array 写入失败的问题 - - https://github.com/apache/doris/pull/26973 - -- 修复了 count distinct 不支持 array/map/struct 的问题 - - https://github.com/apache/doris/pull/25483 - -- 解决 query 中出现 delete 复杂类型之后,升级过程中出现 BE crash 的问题 - - https://github.com/apache/doris/pull/26006 - -- 修复了 jsonb 在 where 条件中 BE crash 问题 - - https://github.com/apache/doris/pull/27325 - -- 修复了 outer join 中有 array 类型时 BE crash 的问题 - - https://github.com/apache/doris/pull/25669 - -- 修复 orc 格式 decimal 类型读取错误的问题 - - https://github.com/apache/doris/pull/26548 - - https://github.com/apache/doris/pull/25977 - - https://github.com/apache/doris/pull/26633 - -### 倒排索引 - -- 修复了关闭倒排索引查询时 OR NOT 组合 where 条件结果错误的问题 - - https://github.com/apache/doris/pull/26327 - -- 修复了空数组的倒排索引写入时 BE crash 的问题 - - https://github.com/apache/doris/pull/25984 - -- 修复输出为空的情况下 index compaction BE crash 的问题 - - https://github.com/apache/doris/pull/25486 - -- 修复新增列没有写入数据时,增加倒排索引 BE crash 的问题 - - https://github.com/apache/doris/pull/27276 - -- 修复 1.2 版本误建倒排索引后升级 2.0 等情况下倒排索引硬链缺失和泄露的问题 - - https://github.com/apache/doris/pull/26903 - -### 物化视图 -- 修复 group by 语句中包括重复表达式导致 BE crash 的问题 - - https://github.com/apache/doris/pull/27523 - -- 禁止视图创建时 group by 子句中使用 float/doubld 类型 - - https://github.com/apache/doris/pull/25823 - -- 增强支持了 select 查询命中物化视图的功能 - - https://github.com/apache/doris/pull/24691 - -- 修复当使用了表的 alias 时物化视图不能命中的问题 - - https://github.com/apache/doris/pull/25321 - -- 修复了创建物化视图中使用 percentile_approx 的问题 - - https://github.com/apache/doris/pull/26528 - -### 采样查询 - -- 修复 table sample 功能在 partition table 上无法正常工作的问题 - - https://github.com/apache/doris/pull/25912 - -- 修复 table sample 指定 tablet 无法工作的问题 - - https://github.com/apache/doris/pull/25378 - - -### 主键表 - -- 修复基于主键条件更新的空指针异常 - - https://github.com/apache/doris/pull/26881 - -- 修复部分列更新字段名大小写问题 - - https://github.com/apache/doris/pull/27223 - -- 修复 schema change 时 mow 会出现重复 key 的问题 - - https://github.com/apache/doris/pull/25705 - - -### 导入和 Compaction - -- 修复 routine load 一流多表时 unknown slot descriptor 错误 - - https://github.com/apache/doris/pull/25762 - -- 修复内存统计并发访问导致 BE crash 问题 - - https://github.com/apache/doris/pull/27101 - -- 修复重复取消导入导致 BE crash 的问题 - - https://github.com/apache/doris/pull/27111 - -- 修复 broker load 时 broker 连接报错问题 - - https://github.com/apache/doris/pull/26050 - -- 修复 compaction 和 scan 并发下 delete 谓词可能导致查询结果不对的问题 - - https://github.com/apache/doris/pull/24638 - -- 修复 compaction task 存在时打印大量 stacktrace 日志的问题 - - https://github.com/apache/doris/pull/25597 - - -### 数据湖兼容性 - -- 解决 iceberg 表中包含特殊字符导致查询失败的问题 - - https://github.com/apache/doris/pull/27108 - -- 修复 Hive metastore 不同版本的兼容性问题 - - https://github.com/apache/doris/pull/27327 - -- 修复读取 MaxCompute 分区表错误的问题 - - https://github.com/apache/doris/pull/24911 - -- 修复备份到对象存储失败的问题 - - https://github.com/apache/doris/pull/25496 - - https://github.com/apache/doris/pull/25803 - - -### JDBC 外表兼容性 - -- 修复 JDBC catalog 处理 Oracle 日期类型格式错误的问题 - - https://github.com/apache/doris/pull/25487 - -- 修复 JDBC catalog 读取 MySQL 0000-00-00 日期异常的问题 - - https://github.com/apache/doris/pull/26569 - -- 修复从 MariaDB 读取数据时间类型默认值为 current_timestamp 时空指针异常问题 - - https://github.com/apache/doris/pull/25016 - -- 修复 JDBC catalog 处理 bitmap 类型时 BE crash 的问题 - - https://github.com/apache/doris/pull/25034 - - https://github.com/apache/doris/pull/26933 - - -### SQL 规划和优化 - -- 修复了部分场景下分区裁剪错误的问题 - - https://github.com/apache/doris/pull/27047 - - https://github.com/apache/doris/pull/26873 - - https://github.com/apache/doris/pull/25769 - - https://github.com/apache/doris/pull/27636 - -- 修复了部分场景下子查询处理不正确的问题 - - https://github.com/apache/doris/pull/26034 - - https://github.com/apache/doris/pull/25492 - - https://github.com/apache/doris/pull/25955 - - https://github.com/apache/doris/pull/27177 - -- 修复了部分语义解析的错误 - - https://github.com/apache/doris/pull/24928 - - https://github.com/apache/doris/pull/25627 - -- 修复 right outer/anti join 时,有可能丢失数据的问题 - - https://github.com/apache/doris/pull/26529 - -- 修复了谓词被错误的下推穿过聚合算子的问题 - - https://github.com/apache/doris/pull/25525 - -- 修正了部分情况下返回的结果 header 不正确的问题 - - https://github.com/apache/doris/pull/25372 - -- 包含有 nullsafeEquals 表达式 (<=>) 作为连接条件时,可以正确对规划出 hash join - - https://github.com/apache/doris/pull/27127 - -- 修复了 set operation 算子中无法正确列裁剪的问题 - - https://github.com/apache/doris/pull/26884 - - -## 行为变更 - -- 复杂数据类型 array/map/struct 的输出格式改成跟输入格式以及 JSON 规范保持一致,跟之前版本的主要变化是日期和字符串用双引号括起来,array/map 内部的空值显示为 null 而不是 NULL。 - - https://github.com/apache/doris/pull/25946 - -- 默认情况下,当用户属性 `resource_tags.location` 没有设置时,只能使用 default 资源组的节点,而之前版本中可以访问任意节点。 - - https://github.com/apache/doris/pull/25331 - -- 支持 SHOW_VIEW 权限,拥有 SELECT 或 LOAD 权限的用户将不再能够执行 `SHOW CREATE VIEW` 语句,必须单独授予 SHOW_VIEW 权限。 - - https://github.com/apache/doris/pull/25370 - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.4.md deleted file mode 100644 index e7f7c9e8cc8b8..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.4.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -{ - "title": "Release 2.0.4", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.4 版本已于 2024 年 1 月 26 日正式发布,该版本在新优化器、倒排索引、数据湖等功能上有了进一步的完善与更新,使 Apache Doris 能够适配更广泛的场景。此外,该版本进行了若干的改进与优化,以提供更加稳定高效的性能体验。新版本已经上线,欢迎大家下载使用! - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - -## 行为变更 -- 提供了更精确的 Precision 和 Scale 推导,可满足金融场景计算的高要求 - - [https://github.com/apache/doris/pull/28034](https://github.com/apache/doris/pull/28034) -- Drop Policy 支持了 User 和 Role - - [https://github.com/apache/doris/pull/29488](https://github.com/apache/doris/pull/29488) - -## 新功能 -- 新优化器支持了 datev1,datetimev1 及 decimalv2 数据类型 -- 新优化器支持了 ODBC 外表 -- 倒排索引支持了 `lower_case` 和 `ignore_above` 选项 -- 倒排索引支持了 `match_regexp` 和 `match_phrase_prefix` 查询加速 -- 数据湖支持了 Paimon Native Reader -- 数据湖支持读取 LZO 压缩的 Parquet 文件 -- 审计日志支持 `insert into` - -## 改进和优化 -- 对数据均衡、迁移等存储管控进行了改进 -- 对数据冷却策略进行了改进,以节省本地硬盘存储空间 -- 对 ASCII 字符串 substr 进行了优化 -- 针对使用 date 函数查询时的分区裁剪进行了优化 -- 针对优化器自动统计信息收集的可观测性和性能进行了优化 - - -## 致谢 - -感谢 73 位开发者为 Apache Doris 2.0.4 版本做出了重要贡献,正是由于他们的努力,Apache Doris 在性能和稳定性方面取得了显著的进步。 - -airborne12、amorynan、AshinGau、BePPPower、bingquanzhao、BiteTheDDDDt、bobhan1、ByteYue、caiconghui、CalvinKirs、cambyzju、caoliang-web、catpineapple、csun5285、dataroaring、deardeng、dutyu、eldenmoon、englefly、feifeifeimoon、fornaix、Gabriel39、gnehil、HappenLee、hello-stephen、HHoflittlefish777、hubgeter、hust-hhb、ixzc、jacktengg、jackwener、Jibing-Li、kaka11chen、KassieZ、LemonLiTree、liaoxin01、LiBinfeng-01、lihuigang、liugddx、luwei16、morningman、morrySnow、mrhhsg、Mryange、nextdreamblue、Nitin-Kashyap、platoneko、py023、qidaye、shuke987、starocean999、SWJTU-ZhangLei、w41ter、wangbo、wsjz、wuwenchi、Xiaoccer、xiaokang、XieJiann、xingyingone、xinyiZzz、xuwei0912、xy720、xzj7019、yujun777、zclllyybb、zddr、zhangguoqiang666、zhangstar333、zhannngchen、zhiqiang-hhhh、zy-kkk、zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.5.md deleted file mode 100644 index f06d03285cdbc..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.5.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -{ - "title": "Release 2.0.5", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.5](https://doris.apache.org/download/) 版本已于 2024 年 2 月 27 日正式与大家见面。这次更新带来一系列行为变更和功能更新,并进行了若干的改进与优化,旨在为用户提供更为稳定高效的数据查询与分析体验。新版本已经上线,欢迎大家下载体验! - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 行为变更 -- `select char(0) = '\0'` 返回 true,跟 MySQL 的行为保持一致 - - https://github.com/apache/doris/pull/30034 -- Export 导出数据支持空表 - - https://github.com/apache/doris/pull/30703 - -## 新功能 -- 利用过滤条件中的 `is null` 谓词,将 OUTER JOIN 转换为 ANTI JOIN -- 增加 `SHOW TABLETS BELONG` 语法用于获取 tablet 属于哪个 table -- InferPredicates 支持 `IN`,例如:`a = b & a in [1, 2] -> b in [1, 2]` -- 支持对物化视图收集统计信息 -- `SHOW PROCESSLIST` 支持输出连接对应的 FE -- Export 导出 CSV 文件支持通过 `with_bom` 参数控制是否带有 Windows BOM - -## 改进和优化 -- 在无统计信息时优化 Query Plan -- 基于 Rollup 的统计信息优化 Query Plan -- 用户停止 Auto Analyze 后尽快停止统计信息收集任务 -- 缓存统计信息收集异常,避免大约太多异常栈 -- 支持在 SQL 中自定使用某个物化视图 -- JDBC Catalog 谓词下推列名字符转义 -- 修复 MySQL Catalog 中 `to_date` 函数下推的问题 -- 优化 JDBC 客户端连接关闭的逻辑,在异常时正常取消查询 -- 优化 JDBC 连接池的参数 -- 通过 HMS API 获取 Hudi 外表的分区信息 -- 优化 Routine Load 的内存占用和错误信息 -- 如果 `max_backup_restore_job_num_per_db` 参数为 0,跳过所有备份恢复任务 - - -## 致谢 -最后,衷心感谢 59 位开发者为 Apache Doris 2.0.5 版本做出了重要贡献: - -airborne12, alexxing662, amorynan, AshinGau, BePPPower, bingquanzhao, BiteTheDDDDt, ByteYue, caiconghui, cambyzju, catpineapple, dataroaring, eldenmoon, Emor-nj, englefly, felixwluo, GoGoWen, HappenLee, hello-stephen, HHoflittlefish777, HowardQin, JackDrogon, jacktengg, jackwener, Jibing-Li, KassieZ, LemonLiTree, liaoxin01, liugddx, LuGuangming, morningman, morrySnow, mrhhsg, Mryange, mymeiyi, nextdreamblue, qidaye, ryanzryu, seawinde,starocean999, TangSiyang2001, vinlee19, w41ter, wangbo, wsjz, wuwenchi, xiaokang, XieJiann, xingyingone, xy720,xzj7019, yujun777, zclllyybb, zhangstar333, zhannngchen, zhiqiang-hhhh, zxealous, zy-kkk, zzzxl1993 - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.6.md deleted file mode 100644 index a2eb0786d77b6..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.6.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -{ - "title": "Release 2.0.6", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.6](https://doris.apache.org/download/) 版本已于 2024 年 3 月 12 日正式与大家见面。本次版本中,有 51 位贡献者提交了约 114 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 行为变更 -- 无 - -## 新功能 -- 自动选择物化视图时支持匹配带别名的函数 -- 增加安全下线一个 tablet 副本的命令 -- 外表统计信息增加行数统计缓存 -- 统计信息收集支持 Rollup - -## 改进和优化 -- 使用 protobuf 稳定序列化减少 Tablet Schema 缓存内存占用 -- 提升 `show column stats` 的性能 -- 统计信息收集和优化器支持 Iceberg 和 Paimon 的行数估计 -- JDBC Catalog 支持读取 SQL Server 的 Timestamp 类型 - - -## 致谢 -最后,衷心感谢 51 位开发者为 Apache Doris 2.0.6 版本做出了重要贡献: - -924060929, AshinGau, BePPPower, BiteTheDDDDt, CalvinKirs, cambyzju, deardeng, DongLiang-0, eldenmoon, englefly, feelshana, feiniaofeiafei, felixwluo, HappenLee, hust-hhb, iwanttobepowerful, ixzc, JackDrogon, Jibing-Li, KassieZ, larshelge, liaoxin01, LiBinfeng-01, liutang123, luennng, morningman, morrySnow, mrhhsg, qidaye, starocean999, TangSiyang2001, wangbo, wsjz, wuwenchi, xiaokang, XieJiann, xuwei0912, xy720, xzj7019, yiguolei, yujun777, Yukang-Lian, Yulei-Yang, zclllyybb, zddr, zhangstar333, zhannngchen, zhiqiang-hhhh, zy-kkk, zzzxl1993 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.7.md deleted file mode 100644 index 75352d2d10cdb..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.7.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -{ - "title": "Release 2.0.7", - "language": "zh-CN" -} ---- - -## 1 行为变更 - -- `round` 函数行为跟 MySQL 保持一致,例如 `round(5/2)` 返回 3 而不是 2. - - - https://github.com/apache/doris/pull/31583 - - -- 时间精度转换行为跟 MySQL 保持一致,例如 '2023-10-12 14:31:49.666' 四舍五人到 '2023-10-12 14:31:50' . - - - https://github.com/apache/doris/pull/27965 - -## 2 新功能 - -- 在更多的情况下可以将 OUTER JOIN 转换成 ANTI JOIN 来加速查询 - - - https://github.com/apache/doris/pull/31854 - -- 支持通过 Nginx, HAProxy 等代理连接的 IP 透传 - - - https://github.com/apache/doris/pull/32338 - - -## 3 改进和优化 - -- 通过在 `information_schema` 中增加 DEFAULT_ENCRYPTION 列、增加 `processlist` 表,提升 BI 工具的兼容性 - -- 创建 JDBC Catalog 时默认自动检测连通性 - -- 增强自动恢复提升 Kafka Routine Load 的稳定性 - -- 倒排索引中文分词对英文默认做小写转换 - -- Repeat 函数的重复次数超过限制时报错 - -- 自动跳过 Hive 外表中的隐藏文件和目录 - -- 在某些极端情况下减少 File Meta Cache 避免 OOM - -- 减少 Broker Load 的 jvm 内存占用 - -- 加速带排序的 INSERT INTO SELECT 比如 `INSERT INTO t1 SELECT * FROM t2 ORDER BY k` - - -## 4 致谢 - -924060929,airborne12,amorynan,ByteYue,dataroaring,deardeng,feiniaofeiafei,felixwluo,freemandealer,gavinchou,hello-stephen,HHoflittlefish777,jacktengg,jackwener,jeffreys-cat,Jibing-Li,KassieZ,LiBinfeng-01,luwei16,morningman,mrhhsg,Mryange,nextdreamblue,platoneko,qidaye,rohitrs1983,seawinde,shuke987,starocean999,SWJTU-ZhangLei,w41ter,wsjz,wuwenchi,xiaokang,XieJiann,XuJianxu,yujun777,Yulei-Yang,zhangstar333,zhiqiang-hhhh,zy-kkk,zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.8.md deleted file mode 100644 index 84d8797e4e9a4..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.8.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -{ - "title": "Release 2.0.8", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.8](https://doris.apache.org/download/) 版本已于 2024 年 04 月 09 日正式与大家见面。本次版本中,有 35 位贡献者提交了约 65 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - -## 1 行为变更 - -由于 `ADMIN SHOW xx` 语句在 MySQL 8.x jdbc driver 不能执行,所以将名字改成 `SHOW xx` - -- https://github.com/apache/doris/pull/29492 - -```sql -ADMIN SHOW CONFIG -> SHOW CONFIG -ADMIN SHOW REPLICA -> SHOW REPLICA -ADMIN DIAGNOSE TABLET -> SHOW TABLET DIAGNOSIS -ADMIN SHOW TABLET -> SHOW TABLET -``` - - -## 2 新功能 - -N/A - - - -## 3 改进和优化 - -- 新优化器支持 TopN 优化中使用倒排索引 - -- 限制统计信息 STRING 长度为 1024 以控制 BE 内存消耗 - -- 修复未创建 JDBC Client 时意外关闭的情况 - -- 接受所有 Iceberg Database,不再做额外的名字检查 - -- 异步更新外表行数统计,避免同步更新带来的 Cache miss 和 Plan 不稳定 - -- 简化 Hive 外表的 isSplitable 方法,避免过多的 Hadoop metric - - - -## 4 致谢 - -924060929, AcKing-Sam, amorynan, AshinGau, BePPPower, BiteTheDDDDt, ByteYue, cambyzju, dongsilun, eldenmoon, feiniaofeiafei, gnehil, Jibing-Li, liaoxin01, luwei16, morningman, morrySnow, mrhhsg, Mryange, nextdreamblue, platoneko, starocean999, SWJTU-ZhangLei, wuwenchi, xiaokang, xinyiZzz, Yukang-Lian, Yulei-Yang, zclllyybb, zddr, zhangstar333, zhiqiang-hhhh, ziyanTOP, zy-kkk, zzzxl1993 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.9.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.9.md deleted file mode 100644 index 153b1c6d3218e..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.0/release-2.0.9.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -{ - "title": "Release 2.0.9", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.9](https://doris.apache.org/download/) 版本已正式发布。在本次版本中,有 34 位贡献者提交了约 68 个功能改进以及问题修复,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 1 行为变更 - -无 - -## 2 新功能 - -- 物化视图的 Key 和 Value 列都允许出现谓词 - -- 物化视图支持 `bitmap_union(bitmap_from_array())` - -- 增加一个 FE 配置强制集群中所有表的 Replicate Allocation - -- 新优化器支持日期字面量指定时区 - -- `MATCH_PHRASE` 全文检索支持 slop 参数指定搜索词之间的距离 - -## 3 改进和优化 - -- `first_value` / `last_value` 函数增加第二个参数指定忽略 NULL 值 - -- `LEAD`/ `LAG` 函数的 Offset 参数可以为 0 - -- 调整物化视图匹配的顺序优先利用索引和预聚合加速查询 - -- 优化 TopN 查询 `ORDER BY k LIMIT n` 的性能 - -- 优化 Meta Cache 的性能 - -- 为` delete_bitmap get_agg` 函数增加 Profile 便于性能分析 - -- 增加 FE 参数设置 Autobucket 的最大 Bucket 数 - -## 4 致谢 - -adonis0147, airborne12, amorynan, AshinGau, BePPPower, BiteTheDDDDt, CalvinKirs, cambyzju, csun5285, eldenmoon, englefly, feiniaofeiafei, HHoflittlefish777, htyoung, hust-hhb, jackwener, Jibing-Li, kaijchen, kylinmac, liaoxin01, luwei16, morningman, mrhhsg, qidaye, starocean999, SWJTU-ZhangLei, w41ter, xiaokang, xiedeyantu, xy720, zclllyybb, zhangstar333, zhannngchen, zy-kkk, zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.0.md deleted file mode 100644 index 8f655cc41ee51..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.0.md +++ /dev/null @@ -1,855 +0,0 @@ ---- -{ - "title": "Release 2.1.0", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 3 月 8 日我们引来了 Apache Doris 2.1.0 版本的正式发布,欢迎大家下载使用。 - -- 在查询性能方面,2.1 系列版本我们着重提升了开箱盲测性能,力争不做调优的情况下取得较好的性能表现,包含了对复杂 SQL 查询性能的进一步提升,在 TPC-DS 1TB 测试数据集上获得超过 100% 的性能提升,查询性能居于业界领先地位。 - -- 在数据湖分析场景,我们进行了大量性能方面的改进、相对于 Trino 和 Spark 分别有 4-6 倍的性能提升,并引入了多 SQL 方言兼容、便于用户可以从原有系统无缝切换至 Apache Doris。在面向数据科学以及其他形式的大规模数据读取场景,我们引入了基于 Arrow Flight 的高速读取接口,数据传输效率提升 100 倍。 - -- 在半结构化数据分析场景,我们引入了全新的 Variant 和 IP 数据类型,完善了一系列分析函数,面向复杂半结构化数据的存储和分析处理更加得心应手。 - -- 在 2.1.0 版本中我们也引入了基于多表的异步物化视图以提升查询性能,支持透明改写加速、自动刷新、外表到内表的物化视图以及物化视图直查,基于这一能力物化视图也可用于数据仓库分层建模、作业调度和数据加工。 - -- 在存储方面,我们引入了自增列、自动分区、MemTable 前移以及服务端攒批的能力,使得大规模数据实时写入的效率更高。 - -- 在负载管理方面,我们进一步完善了 Workload Group 资源组的隔离能力,并增加了运行时查看 SQL 资源用量的能力,进一步提升了多负载场景下的稳定性。 - -在 2.1.0 版本的研发过程中,**有 237 位贡献者为 Apache Doris 带来了接近 6000 个 Commits。** 同时 2.1.0 版本也同样经过了近百家社区用户的大规模打磨,在测试过程中向我们反馈了许多有价值的优化项,在此向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢。后续我们将会持续敏捷发版来响应所有用户对功能和稳定性的更高追求,欢迎大家在使用过程中给予我们更多反馈。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - -## 复杂查询性能提升 100%,TPC-DS 业界领先 - - 在 2.1 系列版本中,我们着重提升了开箱盲测性能,力争不做调优的情况下取得较好的性能表现,包含了对复杂 SQL 查询性能的进一步提升。在此我们以 TPC-DS 1TB 作为性能测试对比的基准,重点对比最新 2.1.0 版本与 2.0.5 版本的性能提升。集群规模均为 1FE、3BE,其中 BE 节点的服务器配置为 48C 192G。从以下测试结果中可以看到: - -- 2.1.0 版本的总查询耗时为 245.7 秒,相较于 2.0.5 版本的 489.6 秒,**性能提升达到 100 %;** - -- 在全部 99 个 SQL 中,有近三分之一的 SQL 查询性能提升达到 2 倍以上,超过 80 个 SQL 都获得显著性能提升; - -- 不论是基础的过滤、排序、聚合,或者复杂的多表关联查询、子查询以及窗口函数计算,2.1.0 版本都有更为明显的性能优势; - -- 2.0.5 版本或 2.1.0 版本,都可以完整执行 TPC-DS 的 99 个查询。 - -![复杂查询性能提升 100%,TPC-DS 业界领先](/images/2.1-Doris-TPC-DS-best-performance.png) - - -以上详细测试结果我们将在后续提交到 Apache Doris 官网文档中,也欢迎所有用户在完成最新版本的部署后进行测试复现。 - -与此同时,我们也对业内多个 OLAP 系统在同等硬件资源和多个测试数据规模下进行了性能测试,不论大宽表场景或多表关联场景,Apache Doris 都具备着极为明显的性能优势。毫无疑问,**Apache Doris 已在业界同类产品中性能居于最领先地位**! - - -### 优化器更智能 - -在 Apache Doris 2.0 版本中我们引入了全新查询优化器,在绝大多数场景无需任何调优即可实现极致的查询性能。而在最新发布的 Apache Doris 2.1 版本中,查询优化器在整体代际更新的基础上,进行了优化规则的扩展和枚举框架的完善,面向复杂分析场景更加得心应手: - -- **优化器基础设施完善**:在多种优化器基础设施方面进行了补充和增强,例如对统计信息推导和代价模型方面的持续改进,使之能够收集更多的特征信息为复杂优化提供基础; - -- **优化规则持续扩展**:得益于丰富的实际场景反馈,新版本中查询优化器增强了包括算子下压在内的许多经典规则,结合上述基础设施扩充而引入的新优化规则,使得新版本的查询优化器能覆盖更广泛的使用场景; - -- **枚举框架进一步优化**:在查询优化器 Cascades 和 DPhyper 两大融合框架的基础上,继续深耕框架能力、优化框架性能,确立了更为清晰的枚举策略,兼顾计划质量和枚举效率,为高性能引擎提供坚实基础。例如将 Cascades 默认枚举表上限从 5 提升到了 8、有效扩大了高质量计划的覆盖范围,同时进一步优化 DPhyper 枚举效率、使之能够枚举出更优计划。 - -### 无统计信息优化 - -针对海量数据规模以及数据湖分析场景下,针对统计信息收集难度高、收集时间久的问题,在 2.1 版本中查询优化器利用多种启发式技术,大大提升了**无统计信息场景下**的计划质量,使得在没有统计信息的场景下也可获得较好的查询计划。同时扩展了 Runtime Filter 的下压场景和自适应能力,在执行过程中能够自适应地动态调整部分表达式谓词,使得 Apache Doris 在不依赖统计信息的情况下也具有优异的性能表现。 - -### Parallel Adaptive Scan 并行自适应扫描 - -在复杂数据分析场景下,每次查询都需要扫描大量的数据进行计算,因此 IO 瓶颈很大程度上决定了查询性能的上限。为了提升 Scan IO 的性能,Apache Doris 采取了并行读取的技术,每个扫描线程读取 1 个或者多个 Tablet(即用户建表时指定的 Bucket),但如若用户建表时指定的 Bucket 数目不合理、那么磁盘扫描线程就无法并行工作,直接影响查询性能。为此,在 2.1 版本中我们引入了 Tablet 内的并行扫描技术,可以将多个 Tablet 进行池化,在磁盘扫描端可以根据行数来拆分多个线程并行扫描(最多支持 48 个线程),从而有效避免分桶数不合理导致的查询性能问题。 - -![Parallel Adaptive Scan 并行自适应扫描](/images/2.1-doris-parallel-adaptive-scan.png) - -因此在 2.1 版本以后,我们建议用户**在建表时设置的分桶数=整个集群磁盘的数量**,在 IO 层面能将整个集群所有的 IO 资源全部利用起来。 - -:::tip -当前 2.1.0 版本的 Parallel Adaptive Scan 只能针对 Unqiue Key 模型的 Merge-on-Write 表以及 Duplicate Key 模型生效,预计在 2.1.1 版本中会增加对 Unique Key 模型 Merge-on-Read 表和 Aggregate Key 模型的支持。 -::: - -### Local Shuffle - -在部分场景下,数据分布不均会导致多个 Instance 的查询执行出现长尾。而为了解决单个 BE 节点上多个 Instance 之间的数据倾斜问题,在 Apache Doris 2.1 版本中我们引入了 Local Shuffle 技术,尽可能将数据打散从而加速查询。例如在某一典型的聚合查询中,数据在经过聚合之前将会通过一个 Local Shuffle 节点被均匀分布在不同的 Pipeline Task 中,如下图所示: - -![Local Shuffle](/images/2.1-doris-local-shuffle.png) - -在具备了 Parallel Adaptive Scan 和 Local Shuffle 能力之后,Apache Doris 能够规避由于分桶数不合理、数据分布不均带来的性能问题。 - -在此我们分别使用 Clickbench(大宽表场景)和 TPC-H(多表 Join 的复杂分析场景)数据集模拟建表分桶不合理的情况,在 Clickbench 数据集中我们建表 Bucket 数量分别设为 1 和 16,在 TPC-H 100G 数据集下我们建表时每个 Partition 的 Bucket 数目分别设为 1 和 16。在开启 Parallel Adaptive Scan 和 Local Shuffle 之后,整体查询性能表现比较平稳,即使不合理的数据分布也能取得优异的性能表现。 - -![Local Shuffle Clickbench and TPCH-100](/images/2.1-doris-clickbench-tpch.png) - -:::note 备注 -参考文档:[Pipeline X 执行引擎](../../query/pipeline-execution-engine.md) -::: - -## ARM 架构深度适配,性能提升 230% - -在 Apache Doris 2.1 版本中我们针对 ARM 架构进行了深度的适配和指令集优化,可以在 ARM 架构上充分发挥 Apache Doris 的性能优势。相较于 2.0 版本,2.1 版本在 ClickBench、SSB 100G、TPC-H 100G 以及 TPC-DS 1TB 等多个测试数据集中取得了超过 100% 的性能提升。在此我们以大宽表场景的 ClickBench 以及多表关联场景的 TPC-H 为例,集群配置均为 1FE 3BE、BE 节点的服务器配置为 16C 64G 的 ARM 服务器,测试结论如下: - -- 在大宽表场景中,ClickBench 测试数据集 43 个 SQL 的总查询耗时从 102.36 秒降低至 30.73 秒,性能提升超过 230%; - -- 在多表关联场景中,TPC-H 22 个 SQL 的总查询耗时从 174.8 秒降低至 90.4 秒,性能提升 93%; - -## 数据湖分析 - -### 性能提升 - -在 2.1 版本中,我们对数据湖分析方面做了大量改进,包括对 HDFS 和对象存储的 IO 优化、Parquet/ORC 文件格式的读取反序列优化、浮点类型解压优化、谓词下推执行优化、缓存策略以及扫描任务调度策略的优化,以及针对不同数据源的统计信息准确性的提升及更精准的优化器代价模型。基于以上优化,Apache Doris 在数据湖分析场景下的性能得到大幅度提升。 - -![Doris 数据湖分析 - 性能提升](/images/2.1-doris-TPC-DS.png) - -在此我们以 TPC-DS 1TB 场景下进行测试,Apache Doris 2.1 版本和 Trino 435 版本的性能测试结果如下: - -- 在无缓存情况下,Apache Doris 的总体运行耗时间为 717s、Trino 为 1296s,查询耗时降低了 45%,全部 99 条 SQL 中有 80% 比 Trino 更快; - -- 在开启文件缓存功能并命中的情况下,Apache Doris 的总体性能可以进一步提升 2.2 倍以上,**较 Trino 有 4 倍以上的性能提升,全部 99 条 SQL 性能均优于 Trino**。 - -与此同时也在 TPC-DS 10TB 场景下对 Apache Doris 2.1 版本与 Spark 3.5.0 以及 3.3.1 版本进行了性能测试,查询性能分别提升 4.2 倍和 6.1 倍。 - - - -### 高速数据读取,数据传输效率提升 100 倍 - -如今许多大数据系统都采取列式内存数据格式,以 MySQL/JDBC/ODBC 作为与数据库系统交互的主流协议与标准。在数据输出至外部系统的过程中,需要将数据从系统特定的列存格式序列化为 MySQL/JDBC/ODBC 协议的行存格式,再反序列化回客户端的列存格式,这会使数据传输速度大幅降低,在面向数据科学或其他形式的大规模数据读写时,数据传输的效率缺陷愈发明显。 - -作为用于大规模数据处理的列式内存格式,Apache Arrow 提供了高效的数据结构、允许不同系统间更快共享数据。如果源数据库和目标客户端都支持 Apache Arrow 作为列式内存格式,使用 Arrow Flight SQL 协议传输将无需序列化和反序列化数据,消除数据传输中的开销。同时 Arrow Flight 还可以利用多节点和多核架构,通过完全并行化优化吞吐能力。 - -![高速数据读取,数据传输效率提升 100 倍](/images/2.1-doris-arrow-flight.png) - -在过去如果需要采取 Python 读取 Apache Doris 中的数据,需要将 Apache Doris 中列存的 Block 序列化为 MySQL 协议的行存 Bytes,然后在 Python 客户端再反序列化到 Pandas 中,传输过程带来的性能损耗非常大。 - -在 Apache Doris 2.1 版本中,我们提供了基于 Arrow Flight 的 HTTP Data API 高吞吐数据读写接口。相比于过去的 MySQL 协议,使用 Arrow Flight SQL 后,我们在 Apache Doris 中先将列存的 Block 转为同样列存的 Arrow RecordBatch,这一步转换效率非常高、且传输过程中无需再次序列化和反序列化,而后在 Python 客户端再将 Arrow RecordBatch 转到同样列存的 Pandas DataFrame 中,这一步转换同样非常快。通过 Arrow Flight 提供的 Python 客户端 Pandas/Numpy 等数据科学工具,可以快速从 Apache Doris 中读取数据并在本地进行分析。 - -基于此,Apache Doris 可以与整个 AI 和数据科学生态进行良好的整合,这也是未来的重要发展方向。 - -```C++ -conn = flight_sql.connect(uri="grpc://{FE_HOST}:{fe.conf:arrow_flight_sql_port}", db_kwargs={ - adbc_driver_manager.DatabaseOptions.USERNAME.value: "user", - adbc_driver_manager.DatabaseOptions.PASSWORD.value: "pass", - }) -cursor = conn.cursor() -cursor.execute("select * from arrow_flight_sql_test order by k0;") -print(cursor.fetchallarrow().to_pandas()) -``` - -针对常见的数据类型,我们通过不同的 MySQL 客户端进行了对比测试,基于 Arrow Flight SQL 数据传输性能相较于 MySQL 协议提升了近百倍。 - - -![Arrow Flight SQL](/images/2.1-doris-arrow-flight-sql.png) - - -:::note -演示 Demo:https://www.bilibili.com/video/BV1mj421Z7b7/?spm_id_from=333.999.0.0 -::: - -### 其他 - -- Paimon Catalog:Paimon 版本升级至 0.6.0,优化了 Read Optimized 表的读取,在 Paimon 数据充分合并的场景下,可以有 10 倍的性能提升; - -- Iceberg Catalog:Iceberg 版本升级至 1.4.3,同时解决了 AWS S3 认证的若干兼容性问题; - -- Hudi Catalog:Hudi 版本升级至 0.14.1,同时解决了 Hudi Flink Catalog 的若干兼容性问题。 - - -## 多表物化视图 - -作为一种典型的“空间换时间”策略,物化视图通过预先计算和存储 SQL 查询结果,当执行相同查询时可以直接从物化视图表中获取结果,在大幅提升查询性能的同时、更是减少重复计算带来的系统资源消耗。 - -在过去版本中 Apache Doris 提供了强一致的单表物化视图、保证基表和物化视图表的原子性,并支持了查询语句在物化视图上的智能路由。 - -**在 Apache Doris 2.1 版本中,我们引入了全新的异步物化视图,可以基于多表来构建。** 异步物化视图可以全量或者分区增量构建,也可以手动或者周期性地构建刷新数据。在多表关联查询且表数据量较大的场景下,优化器会根据代价模型进行透明改写、并自动寻找最优物化视图来响应查询,**以大幅提升查询性能**。与此同时,也提供了从外表到内表的物化视图以及直查物化视图的能力,基于此特性,**异步物化视图也可用于数据仓库分层建模、作业调度和数据加工**。异步物化视图使用方式如下: - -**表定义:** - -```SQL -use tpch; - -CREATE TABLE IF NOT EXISTS orders ( - o_orderkey integer not null, - o_custkey integer not null, - o_orderstatus char(1) not null, - o_totalprice decimalv3(15,2) not null, - o_orderdate date not null, - o_orderpriority char(15) not null, - o_clerk char(15) not null, - o_shippriority integer not null, - o_comment varchar(79) not null - ) - DUPLICATE KEY(o_orderkey, o_custkey) - PARTITION BY RANGE(o_orderdate)( - FROM ('2023-10-17') TO ('2023-10-20') INTERVAL 1 DAY) - DISTRIBUTED BY HASH(o_orderkey) BUCKETS 3 - PROPERTIES ("replication_num" = "1"); - -insert into orders values - (1, 1, 'ok', 99.5, '2023-10-17', 'a', 'b', 1, 'yy'), - (2, 2, 'ok', 109.2, '2023-10-18', 'c','d',2, 'mm'), - (3, 3, 'ok', 99.5, '2023-10-19', 'a', 'b', 1, 'yy'); - -CREATE TABLE IF NOT EXISTS lineitem ( - l_orderkey integer not null, - l_partkey integer not null, - l_suppkey integer not null, - l_linenumber integer not null, - l_quantity decimalv3(15,2) not null, - l_extendedprice decimalv3(15,2) not null, - l_discount decimalv3(15,2) not null, - l_tax decimalv3(15,2) not null, - l_returnflag char(1) not null, - l_linestatus char(1) not null, - l_shipdate date not null, - l_commitdate date not null, - l_receiptdate date not null, - l_shipinstruct char(25) not null, - l_shipmode char(10) not null, - l_comment varchar(44) not null - ) - DUPLICATE KEY(l_orderkey, l_partkey, l_suppkey, l_linenumber) - PARTITION BY RANGE(l_shipdate) - (FROM ('2023-10-17') TO ('2023-10-20') INTERVAL 1 DAY) - DISTRIBUTED BY HASH(l_orderkey) BUCKETS 3 - PROPERTIES ("replication_num" = "1"); - -insert into lineitem values - (1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-17', '2023-10-17', '2023-10-17', 'a', 'b', 'yyyyyyyyy'), - (2, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-18', '2023-10-18', '2023-10-18', 'a', 'b', 'yyyyyyyyy'), - (3, 2, 3, 6, 7.5, 8.5, 9.5, 10.5, 'k', 'o', '2023-10-19', '2023-10-19', '2023-10-19', 'c', 'd', 'xxxxxxxxx'); - - - CREATE TABLE IF NOT EXISTS partsupp ( - ps_partkey INTEGER NOT NULL, - ps_suppkey INTEGER NOT NULL, - ps_availqty INTEGER NOT NULL, - ps_supplycost DECIMALV3(15,2) NOT NULL, - ps_comment VARCHAR(199) NOT NULL -) -DUPLICATE KEY(ps_partkey, ps_suppkey) -DISTRIBUTED BY HASH(ps_partkey) BUCKETS 3 -PROPERTIES ( - "replication_num" = "1" -) -``` - -**创建物化视图:** - -```SQL -CREATE MATERIALIZED VIEW mv1 - BUILD DEFERRED REFRESH AUTO ON MANUAL - partition by(l_shipdate) - DISTRIBUTED BY RANDOM BUCKETS 2 - PROPERTIES ('replication_num' = '1') - AS - select l_shipdate, o_orderdate, l_partkey, - l_suppkey, sum(o_totalprice) as sum_total - from lineitem - left join orders on lineitem.l_orderkey = orders.o_orderkey - and l_shipdate = o_orderdate - group by - l_shipdate, - o_orderdate, - l_partkey, - l_suppkey; -``` - -**目前异步物化视图已经具备以下功能:** - -- **透明改写加速:**支持常见算子的透明改写,如 Select、Where、Join、Group by、Aggregation 等,可以直接通过建立物化视图,对现有的查询进行加速。例如在 BI 报表场景,某些报表查询延时比较高,就可以通过建立合适的物化视图进行加速。 - -- **自动刷新:**物化视图支持不同刷新策略,如定时刷新和手动刷新,也支持不同的刷新粒度,如全量刷新、分区粒度的增量刷新等。 - -- **外表到内表的物化视图:**可以对存放在 Hive、Hudi、Iceberg 等数据湖系统上的数据建立物化视图,加速对数据湖的访问,也可以通过物化视图的方式将数据湖中的数据同步到 Apache Doris 内表中。 - -- **物化视图直查:**用户也可以将物化视图的构建看做 ETL 的过程,把物化视图看做是 ETL 加工后的结果数据,由于物化视图本身也是一个表,所以用户可以直接查询物化视图。 - -:::note -- 演示 Demo: https://www.bilibili.com/video/BV1s2421T71z/?spm_id_from=333.999.0.0 -- 参考文档:[异步物化视图](../../query/view-materialized-view/materialized-view.md) -::: - -## 存储能力增强 - -### 自增列 AUTO_INCREMENT - -自增列 AUTO_INCREMENT 是 OLTP 数据库中常见的一项功能,提供了一种方便高效的方式来为新插入的数据行自动分配唯一标识符。由于自增列的可用值分配涉及到全局事务,因此在分布式 OLAP 数据库中并不常见。在 Apache Doris 2.1 版本中,我们通过创新性的自增序列预分配策略,提供了高效的自增列实现。基于自增列的唯一性保证,用户可以利用自增列实现高效的字典编码和查询分页。 - -**字典编码:** 在进行 PV/UV 统计或人群圈选等需要精确去重的查询时,可以使用自增列对 UserID 或订单 ID 等字符串值创建字典表,将用户数据批量或者实时写入字典表即可生成字典,根据各种维度的条件对对应的 Bitmap 进行聚合运算; - -```SQL -CREATE TABLE `demo`.`dictionary_tbl` ( - `user_id` varchar(50) NOT NULL, - `aid` BIGINT NOT NULL AUTO_INCREMENT -) ENGINE=OLAP -UNIQUE KEY(`user_id`) -DISTRIBUTED BY HASH(`user_id`) BUCKETS 32 -PROPERTIES ( -"replication_allocation" = "tag.location.default: 3", -"enable_unique_key_merge_on_write" = "true" -); -``` - -**查询分页**:在页面展示数据时,往往需要做分页展示。传统的分页通常使用 SQL 中的 `limit`, `offset` + `order by` 进行查询。在进行深分页查询时,即使查询数据量较少、数据库仍需将全部数据读取至内存进行全量排序,查询效率比较低下。采取自增列可以为每一行生成唯一标识、查询时记住上一页最大唯一标识并用于下一页的查询条件,实现更高效的分页查询。 - -以下表为例,unique_value 是一个唯一值: - -```SQL -CREATE TABLE `demo`.`records_tbl2` ( - `key` int(11) NOT NULL COMMENT "", - `name` varchar(26) NOT NULL COMMENT "", - `address` varchar(41) NOT NULL COMMENT "", - `city` varchar(11) NOT NULL COMMENT "", - `nation` varchar(16) NOT NULL COMMENT "", - `region` varchar(13) NOT NULL COMMENT "", - `phone` varchar(16) NOT NULL COMMENT "", - `mktsegment` varchar(11) NOT NULL COMMENT "", - `unique_value` BIGINT NOT NULL AUTO_INCREMENT -) DUPLICATE KEY (`key`, `name`) -DISTRIBUTED BY HASH(`key`) BUCKETS 10 -PROPERTIES ( - "replication_num" = "3" -); -``` - -在分页展示中,每页展示 100 条数据,使用如下方式获取第一页的数据: - -```SQL -select * from records_tbl2 order by unique_value limit 100; -``` - -通过程序记录下返回结果中`unique_value`中的最大值,假设为 99,则可用如下方式查询第二页的数据: - -```SQL -select * from records_tbl2 where unique_value > 99 order by unique_value limit 100; -``` - -如果要直接查询一个靠后页面的内容,此时不方便直接获取之前页面数据中`unique_value`的最大值时,例如要直接获取第 101 页的内容,则可以使用如下方式进行查询 - -```SQL -select key, name, address, city, nation, region, phone, mktsegment -from records_tbl2, (select unique_value as max_value from records_tbl2 order by uniuqe_value limit 1 offset 9999) as previous_data -where records_tbl2.uniuqe_value > previous_data.max_value -order by unique_value limit 100; -``` - -:::note -演示 Demo:https://www.bilibili.com/video/BV1VC411h7Gr/?spm_id_from=333.999.0.0 -::: - -### 自动分区 Auto Partition - -在 Apache Doris 2.1 版本之前一直采取手动分区的形式,用户需要提前把分区建立好,否则在导入数据过程中会因为找不到对应分区而出错。而自动分区功能支持了在导入数据过程中自动检测分区列的数据对应的分区是否存在。如果不存在,则会自动创建分区并正常进行导入。 - -自动分区功能使用方式如下: - -```SQL -CREATE TABLE `DAILY_TRADE_VALUE` -( - `TRADE_DATE` datev2 NULL COMMENT '交易日期', - `TRADE_ID` varchar(40) NULL COMMENT '交易编号', - ...... -) -UNIQUE KEY(`TRADE_DATE`, `TRADE_ID`) -AUTO PARTITION BY RANGE date_trunc(`TRADE_DATE`, 'year') -( -) -DISTRIBUTED BY HASH(`TRADE_DATE`) BUCKETS 10 -PROPERTIES ( - "replication_num" = "1" -); -``` - -:::caution -注意事项 - -1. 当前自动分区功能仅支持一个分区列,并且分区列必须为 NOT NULL 列; - -2. 自动分区当前已支持 Range 分区和 List 分区,其中 Range 分区函数仅支持 `date_trunc`、分区列仅支持 `DATE` 或者 `DATETIME` 格式;List 分区不支持函数调用,分区列支持 `BOOLEAN、TINYINT、SMALLINT、INT、BIGINT、LARGEINT、DATE、DATETIME、CHAR、VARCHAR` 数据类型,分区值为枚举值; - -3. 使用 List 分区时,一旦分区列的值当前不存在,自动分区功能都会为其创建一个独立的新分区。 -::: - -:::note - -参考文档:[数据划分](../../table-design/data-partitioning/manual-partitioning.md) -::: - -### INSERT INTO SELECT 导入性能提升 100% - -`INSERT INTO…SELECT` 语句是 ETL 中最高频使用的操作之一,可以快速完成数据在库表之间的迁移、转换以及清洗合并,提升 `INSERT INTO…SELECT` 性能可以更好满足用户对数据快速提取和分析的需求。在 Apache Doris 2.0 版本中,我们引入了单副本导入功能(Single Replica Load)来减少多副本的重复写入和 Compaction 工作,但是导入性能还存在优化的空间。 - -在 Apache Doris 2.1 版本中,为了进一步提升`INSERT INTO…SELECT` 性能,我们实现了 MemTable 前移以进一步减少导入过程中的开销,能在大多数场景中能在 2.0 版本的基础上取得 100% 的导入性能提升。 - -![INSERT INTO SELECT 导入性能提升 100%](/images/2.1-doris-INSERT-INTO-SELECT.png) - - -MemTable 前移和非前移的流程对比如上图所示,Sink 节点不再发送编码后的 Block,而是在本地处理完 MemTable 将生成的 Segment 数据发给下游节点,减少了数据多次编码的开销,同时使内存反压更准确和及时。此外,我们使用了 Streaming RPC 来替代了 Ping-pong RPC,减少了数据传输过程中的等待。 - -在此我们对 2.1 版本开启 MemTable 前移后的导入性能进行了测试,测试环境如下:1 FE+3 BE、每个节点 16C 64G、3 块高性能云盘(保证磁盘 I/O 不成为瓶颈) - -可以看到在单副本场景下,2.1 版本开启 MemTable 前移后、导入耗时降低至 2.0 版本的 36%,三副本场景下导入耗时降低至 2.0 版本的 54%,整体导入性能提升超过 100%。 - -| INSERT INTO 表 | Doris 2.0 非前移默认 | Doris 2.1MemTable 前移 | -| :------------------- | :------------------- | :--------------------- | -| linitem 1 副本 (38G) | 30.2 s | 11.1 s | -| linitem 3 副本 (38G) | 47.4 s | 25.4 s | - -![INSERT INTO SELECT 导入性能提升 100%](/images/2.1-insert-into-table.png) - -:::note -MemTable 前移在 2.1 版本中默认开启,用户无需修改原有的导入命令即可获得大幅性能提升。如果在使用过程中遇到问题、希望回退到原有的导入方式,可以在 MySQL 连接中设置环境变量 `enable_memtable_on_sink_node=false` 来关闭 MemTable 前移。 -::: - -### 高频实时导入/服务端攒批 Group Commit - -在数据导入过程中,不同批次导入的数据都会写入内存表中,随后在磁盘中上形成一个个 RowSet 文件,每个 Rowset 文件对应一次数据导入版本。后台 Compaction 进程会自动对多个版本的 RowSet 文件进行合并,将多个 RowSet 小文件合并成 RowSet 大文件以优化查询性能以及存储空间,而每一次的 Compaction 进程都会产生对 CPU、内存以及磁盘 IO 资源的消耗。在实际数据写入场景中,写入越实时高频、生成 RowSet 版本数越高、Compaction 所消耗的资源就越大。为了避免高频写入带来的过多资源消耗甚至 OOM,Apache Doris 引入了反压机制,即在版本过多的情况下会返回 -235,并对数据的版本数量进行控制。 - - -![高频实时导入/服务端攒批 Group Commit](/images/2.1-doris-group-commit.png) - -从 Apache Doris 2.1 版本开始,我们引入了服务端攒批 Group Commit,大幅强化了高并发、高频实时写入的能力。 - -顾名思义,Group Commit 会把用户侧的多次写入在 BE 端进行积攒后批量提交。对于用户而言,无需控制写入程序的频率,Doris 会自动把用户提交的多次写入在内部合并为一个版本,从而可以大幅提升用户侧的写入频次。 - -![高频实时导入/服务端攒批 Group Commit](/images/2.1-doris-group-commit-2.png) - -当前 Group Commit 已经支持同步模式 `sync_mode` 和异步模式 `async_mode`。同步模式下会将多个导入在一个事务提交,事务提交后导入返回,在导入完成后数据立即可见。异步模式下数据会先写入 WAL,Apache Doris 会根据负载和表的`group_commit_interval`属性异步提交数据,提交之后数据可见。为了防止 WAL 占用较大的磁盘空间,单次导入数据量较大时,会自动切换为`sync_mode`。 - -我们分别采取 JDBC 和 Stream Load 两种方式对高并发写入场景下 Group Commit(异步模式 `async_mode`)的写入性能进行了测试,测试报告如下: - -- **JDBC 写入**: - - - 集群配置为 1FE 1BE,数据集为 TPC-H SF10 Lineitem 表,总共约 22GB、1.8 亿行; - - - 经测试,在并发数 20、单次 Insert 数据行数 100 行下,导入效率达到 10.69w 行/秒、导入吞吐达 11.46 MB/秒,BE 节点的 CPU 使用率稳定保持在 10%-20%; - -- **Stream Load 写入**: - - - 集群配置为 1FE 3BE,数据集为 httplogs、总共 31GB、2.47 亿行。在未开启 Group Commit 和 开启 Group Commit 的异步模式时,通过设置不同的单并发数据量和并发数,对比数据的写入性能。 - - - 经测试,在并发数 10、单次导入数据量 1 MB 下,未开启 Group Commit 时会提示 -235 错误,开启后可稳定运行且导入效率达 81w 行/秒、导入吞吐达 104 MB/秒;在并发数 10、单次导入数据量 10MB 下,开启 Group Commit 后耗时降低至原先的 55%、导入吞吐提升 79%; - - -:::note -- 演示 Demo:https://www.bilibili.com/video/BV1um411o7Ha/?spm_id_from=333.999.0.0 - -- 参考文档和完整测试报告:[Group Commit](https://doris.apache.org/docs/2.1/data-operate/import/group-commit-manual) - -::: - -## 半结构化数据分析 - -### Variant 数据类型 - -过去 Apache Doris 在应对复杂半结构化数据的存储和分析处理时,一般有两种方式: - -1. 一种方式是用户提前预定好表结构,加工成宽表,在数据进入前将数据解析好,这种方案的优点是写入性能好,查询也不需要解析,但是使用不够灵活、对表结构发起变更增加运维、研发的成本。 - -2. 使用 Doris 中的 JSON 类型、或是存成 JSON String,将原始 JSON 数据不经过加工直接入库,查询的时候,用解析函数处理。优点是不需要额外的数据加工、预定义表结构拍平嵌套结构,运维、研发方便,但存在解析性能以及数据读取效率低下的问题。 - -为了解决上述半结构化数据的挑战,在 Apache Doris 2.1 版本中我们引入全新的数据类型`VARIANT`,支持存储半结构化数据、允许存储包含不同数据类型(如整数、字符串、布尔值等)的复杂数据结构,无需在表结构中提前定义具体的列,其存储和查询与传统的 String、JSONB 等行存类型发生了本质的改变,期望其作为半结构化数据首选数据类型,给用户带来更加高效的数据处理机制。 - -Variant 类型特别适用于处理结构可能随时会发生变化的复杂嵌套结构。在写入过程中,Variant 类型可以自动根据列的结构和类型推断列信息,并将其合并到现有表的 Schema 中,将 JSON 键及其对应的值灵活存储为动态子列。同时,一个表可以同时包含灵活的 Variant 对象列和预先定义类型的更严格的静态列,从而在数据存储、查询上提供了更大的灵活性。除此之外,Variant 类型能够与 Doris 核心特性融合,利用列式存储、向量化引擎、优化器等技术,为用户带来极高性价比的查询性能及存储性能。 - -**使用方式如下:** - -```SQL --- 无索引 -CREATE TABLE IF NOT EXISTS ${table_name} ( - k BIGINT, - v VARIANT -) -table_properties; - --- 在v列创建索引,可选指定分词方式,默认不分词 -CREATE TABLE IF NOT EXISTS ${table_name} ( - k BIGINT, - v VARIANT, - INDEX idx_var(v) USING INVERTED [PROPERTIES("parser" = "english|unicode|chinese")] [COMMENT 'your comment'] -) -table_properties; - --- 查询,使用`[]`形式访问子列 -SELECT v["properties"]["title"] from ${table_name} -``` - -**相比 JSON 类型的优势** - -在 Apache Doris 中 JSON 类型是以二进制 JSONB 格式进行存储,整行 JSON 以行存的形式存储到 Segment 文件中。而 VARIANT 类型在写入的时候进行类型推断,将写入的 JSON 列存化,查询不需要进行解析。此外 Variant 类型针对稀疏场景的 JSON 进行优化,只提取频繁出现的列,稀疏的列会以单独的格式进行存储。 - -为了验证引入 Variant 数据类型后在存储以及查询上所带来的优势,我们基于 ClickBench 测试数据集进行了存储空间和查询性能的测试。 - -在存储空间方面,相同数据采取 Variant 类型,所占用的存储空间跟预定义的静态列的存储空间持平,相比于 JSON 类型则减少了约 65%。在一些低基数场景,由于列存的优势,存储资源的成本效应会更加明显。 - -![相比 JSON 类型的优势](/images/2.1-comparied-to-Json.png) - -在查询性能方面,如下表可知,Variant 类型与预定义静态列的查询性能差异在 10% 左右;**而对于 JSON 类型来说,Variant 类型的热查询速度相比于 JSON 类型提升了 8 倍以上,冷查询有着数量级的提升。**(由于 I/O 原因,JSONB 类型的冷查询大部分超时)。 - -![相比 JSON 类型的优势](/images/2.1-comparied-to-Json-2.png) - - -:::caution -注意事项: - -- 目前 Variant 暂不支持 Aggregate 模型,也不支持将 Variant 类型作为 Unique 或 Duplicate 模型的主键及排序键; - -- 推荐使用 RANDOM 模式或者开启 Group Commit 导入,写入性能更高效; - -- 日期、Decimal 等非标准 JSON 类型尽可能提取出来作为静态字段,性能更好; - -- 二维及其以上的数组以及数组嵌套对象,列存化会被存成 JSONB 编码,性能不如原生数组; - -- 查询过滤、聚合需要带 Cast,存储层会根据存储类型和 Cast 目标类型来提示(hint)存储引擎谓词下推,加速查询。 -::: - -:::note -- 演示 Demo: https://www.bilibili.com/video/BV13u4m1g7ra/?spm_id_from=333.999.0.0 - -- 参考文档:[VARIANT](https://doris.apache.org/docs/2.1/sql-manual/basic-element/sql-data-types/semi-structured/VARIANT) - -::: - -### IP 数据类型 - -在网络流量监控的场景中,IP 地址是一个常见的字段,大量的统计分析基于 IP 地址进行。在 Apache Doris 2.1 版本中,将原生支持 IPv4 和 IPv6 数据类型,用高效的二进制形式存储 IP 数据。相比于使用明文的 IP String,内存和存储空间可节省 60% 左右。 - -同时基于 IP 类型,我们增加了常用的 20 多个 IP 处理函数,如: - -- IPV4_NUM_TO_STRING:将类型为 Int16、Int32、Int64 且大端表示的 IPv4 的地址,返回相应 IPv4 的字符串表现形式; -- IPV4_CIDR_TO_RANGE:接收一个 IPv4 和一个包含 CIDR 的 Int16 值,返回一个结构体,其中包含两个 IPv4 字段分别表示子网的较低范围(min)和较高范围(max); -- INET_ATON:获取包含 IPv4 地址的字符串,格式为 A.B.C.D(点分隔的十进制数字) - - - -### 复杂数据类型分析函数完善 - -在 Apache Doris 2.1 版本中我们丰富了行转列和 IN 能支持的数据类型。如: - -- `explode_map`:支持 MAP 类型数据行转列(仅在新优化器中实现) - -支持 Map 类型 Explode 行转列,将 Map 字段的 N 个 Key Value 对展开成 N 行,每行的 Map 字段替换成 Key 和 Value 两个字段。`explode_map` 需要和 Lateral View 一起使用,可以接多个 Lateral View, 结果则是每个 `explode_map` 之后的行数以笛卡尔积的形式展示。 - -具体使用如下: - -```SQL --- 建表语句 - CREATE TABLE `sdu` ( - `id` INT NULL, - `name` TEXT NULL, - `score` MAP NULL -) ENGINE=OLAP -DUPLICATE KEY(`id`) -COMMENT 'OLAP' -DISTRIBUTED BY HASH(`id`) BUCKETS 1 -PROPERTIES ( -"replication_allocation" = "tag.location.default: 1" -); - --- insert 数据 -insert into sdu values (0, "zhangsan", {"Chinese":"80","Math":"60","English":"90"}); -insert into sdu values (1, "lisi", {"null":null}); -insert into sdu values (2, "wangwu", {"Chinese":"88","Math":"90","English":"96"}); -insert into sdu values (3, "lisi2", {null:null}); -insert into sdu values (4, "amory", NULL); - -mysql> select name, course_0, score_0 from sdu lateral view explode_map(score) tmp as course_0,score_0; -+----------+----------+---------+ -| name | course_0 | score_0 | -+----------+----------+---------+ -| zhangsan | Chinese | 80 | -| zhangsan | Math | 60 | -| zhangsan | English | 90 | -| lisi | null | NULL | -| wangwu | Chinese | 88 | -| wangwu | Math | 90 | -| wangwu | English | 96 | -| lisi2 | NULL | NULL | -+----------+----------+---------+ - -mysql> select name, course_0, score_0, course_1, score_1 from sdu lateral view explode_map(score) tmp as course_0,score_0 lateral view explode_map(score) tmp1 as course_1,score_1; -+----------+----------+---------+----------+---------+ -| name | course_0 | score_0 | course_1 | score_1 | -+----------+----------+---------+----------+---------+ -| zhangsan | Chinese | 80 | Chinese | 80 | -| zhangsan | Chinese | 80 | Math | 60 | -| zhangsan | Chinese | 80 | English | 90 | -| zhangsan | Math | 60 | Chinese | 80 | -| zhangsan | Math | 60 | Math | 60 | -| zhangsan | Math | 60 | English | 90 | -| zhangsan | English | 90 | Chinese | 80 | -| zhangsan | English | 90 | Math | 60 | -| zhangsan | English | 90 | English | 90 | -| lisi | null | NULL | null | NULL | -| wangwu | Chinese | 88 | Chinese | 88 | -| wangwu | Chinese | 88 | Math | 90 | -| wangwu | Chinese | 88 | English | 96 | -| wangwu | Math | 90 | Chinese | 88 | -| wangwu | Math | 90 | Math | 90 | -| wangwu | Math | 90 | English | 96 | -| wangwu | English | 96 | Chinese | 88 | -| wangwu | English | 96 | Math | 90 | -| wangwu | English | 96 | English | 96 | -| lisi2 | NULL | NULL | NULL | NULL | -+----------+----------+---------+----------+---------+ -``` - -`explode_map_outer` 和 `explode_outer` 的目的一致,可以将当前 MAP 类型的列中是 NULL 的数据行展示出来。 - -```SQL -mysql> select name, course_0, score_0 from sdu lateral view explode_map_outer(score) tmp as course_0,score_0; -+----------+----------+---------+ -| name | course_0 | score_0 | -+----------+----------+---------+ -| zhangsan | Chinese | 80 | -| zhangsan | Math | 60 | -| zhangsan | English | 90 | -| lisi | null | NULL | -| wangwu | Chinese | 88 | -| wangwu | Math | 90 | -| wangwu | English | 96 | -| lisi2 | NULL | NULL | -| amory | NULL | NULL | -+----------+----------+---------+ -``` - -- 增加 IN 谓词支持 Struct 类型数据的能力(仅在新优化器中实现) - -IN 谓词的左参数支持 `struct() function` 构建的 Struct 类型的数据,也支持 Select 某表中某一列是 Struct 类型的数据,右边的参数支持一个由 `struct() function` 构建的 Struct 类型的数据的数组。IN 谓词支持 Struct 类型可以有效替换 Where 条件中如果需要大量的 or 连词连接的表达式,如: `(a = 1 and b = '2') or (a = 1 and b = '3') or (...)` 可以通过 IN 实现为 `struct(a,b) in (struct(1, '2'), struct(1, '3'), ...)` - -```SQL -mysql> select struct(1,"2") in (struct(1,3), struct(1,"2"), struct(1,1), null); -+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| cast(struct(1, '2') as STRUCT) IN (NULL, cast(struct(1, '2') as STRUCT), cast(struct(1, 1) as STRUCT), cast(struct(1, 3) as STRUCT)) | -+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| 1 | -+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -mysql> select struct(1,"2") not in (struct(1,3), struct(1,"2"), struct(1,1), null); -+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| ( not cast(struct(1, '2') as STRUCT) IN (NULL, cast(struct(1, '2') as STRUCT), cast(struct(1, 1) as STRUCT), cast(struct(1, 3) as STRUCT))) | -+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| 0 | -+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -``` - -- `MAP_AGG`:接收 expr1 作为键,expr2 作为对应的值,返回一个 MAP - -:::note -参考文档:[MAP_AGG](../../sql-manual/sql-functions/aggregate-functions/map-agg.md) -::: - - - -## 负载管理 - -### 资源硬隔离 - -在 Apache Doris 2.0 版本我们引入了 Workload Group,可以实现对 CPU 资源的软限制。Workload Group 软限的优点是可以提升资源的利用率,但同时也会带来查询延迟的不确定性,这对那些期望查询性能稳定性的用户来说是难以接受的。因此在 Apache Doris 2.1 版本中我们对 Workload Group 实现了 CPU 硬限,即无论当前物理机的整体 CPU 是否空闲,配置了硬限的 Group 最大 CPU 用量不能超过配置的值。 - -这意味着不管单机的资源是否充足,该 Workload Group 的最大可用 CPU 资源都是固定的,只要用户的查询负载不发生大的变化,那么查询性能就会相对稳定。由于影响一个查询性能稳定性的因素很多,除了 CPU 之外,内存、IO 以及软件层面的资源竞争也都会产生影响,因此当集群的负载在空闲和满载之间切换时,即使配置了 CPU 的硬限,查询性能的稳定性也会产生波动,但是预期的表现应该是优于软限制。 - -:::caution -注意事项 - -1. Doris 2.0 版本的 CPU 隔离是基于优先级队列实现的,而在 2.1 版本中 Apache Doris 是基于 CGroup 实现了 CPU 资源的隔离,因此从 2.0 版本升级到 2.1 版本时,需要在使用前完成 CGroup 的配置,详细注意事项参考官网文档。 - -2. 目前 Workload Group 支持的工作负载类型包括查询间的隔离以及导入与查询之间的隔离,需要注意的是如果期望对导入负载进行彻底的限制,那么需要开启 MemTable 前移。 - -3. 用户需要通过开关指定当前集群的 CPU 限制模式是软限还是硬限,暂不支持两种模式同时运行,两种模式的切换可以参考官网文档,后续我们也会根据用户的实际需求决定是否要同时支持这两种模式。 -::: - -:::note -- 演示 Demo:https://www.bilibili.com/video/BV1Fz421X7XE/?spm_id_from=333.999.0.0 -- 参考文档:[Workload Group](../../admin-manual/resource-admin/workload-group.md) - -::: - -### TopSQL - -:::tip -自 2.1.1 版本之后,active_queries() 已经废弃,TopSQl 主要通过 Doris 内置的系统表实现,参考文档 [工作负载诊断与分析](https://doris.apache.org/docs/2.1/admin-manual/workload-management/analysis-diagnosis) -::: - -当集群出现预期外的大查询导致集群整体负载上升、查询可用性下降时,用户难以快速找到这些大查询并进行相应的降级操作。因此在 Apache Doris 2.1 版本中我们支持了运行时查看 SQL 资源用量的功能,具体指标如下: - -```SQL -mysql [(none)]>desc function active_queries(); -+------------------------+--------+------+-------+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+------------------------+--------+------+-------+---------+-------+ -| BeHost | TEXT | No | false | NULL | NONE | -| BePort | BIGINT | No | false | NULL | NONE | -| QueryId | TEXT | No | false | NULL | NONE | -| StartTime | TEXT | No | false | NULL | NONE | -| QueryTimeMs | BIGINT | No | false | NULL | NONE | -| WorkloadGroupId | BIGINT | No | false | NULL | NONE | -| QueryCpuTimeMs | BIGINT | No | false | NULL | NONE | -| ScanRows | BIGINT | No | false | NULL | NONE | -| ScanBytes | BIGINT | No | false | NULL | NONE | -| BePeakMemoryBytes | BIGINT | No | false | NULL | NONE | -| CurrentUsedMemoryBytes | BIGINT | No | false | NULL | NONE | -| ShuffleSendBytes | BIGINT | No | false | NULL | NONE | -| ShuffleSendRows | BIGINT | No | false | NULL | NONE | -| Database | TEXT | No | false | NULL | NONE | -| FrontendInstance | TEXT | No | false | NULL | NONE | -| Sql | TEXT | No | false | NULL | NONE | -+------------------------+--------+------+-------+---------+-------+ -``` - -`active_queries()` 函数记录了查询在各个 BE 上运行时的审计信息,该函数可以当做普通的 Doris 表来看待,支持查询、谓词过滤、排序和 Join 等操作。常用的指标包括 SQL 的运行时间、CPU 时间、单 BE 的峰值内存、Scan 的数据量以及 Shuffle 的数据量,也可以从 BE 的粒度做上卷,查看 SQL 全局的资源用量。 - -需要注意的是这里只显示运行时的 SQL,查询结束的 SQL 不会在这里显示,而是写入审计日志中(目前主要是 fe.audit.log)。常用的 SQL 如下: - -```SQL -查看集群中目前运行时间最久的n个sql -select QueryId,max(QueryTimeMs) as query_time from active_queries() group by QueryId order by query_time desc limit 10; - -查看目前集群中CPU耗时最长的n个sql -select QueryId, sum(QueryCpuTimeMs) as cpu_time from active_queries() group by QueryId order by cpu_time desc limit 10 - -查看目前集群中scan行数最多的n个sql以及他们的运行时间 -select t1.QueryId,t1.scan_rows, t2.query_time from - (select QueryId, sum(ScanRows) as scan_rows from active_queries() group by QueryId order by scan_rows desc limit 10) t1 - left join (select QueryId,max(QueryTimeMs) as query_time from active_queries() group by QueryId) t2 on t1.QueryId = t2.QueryId - -查看目前各个BE的负载情况,按照CPU时间/scan行数/shuffle字节数降序排列 -select BeHost,sum(QueryCpuTimeMs) as query_cpu_time, sum(ScanRows) as scan_rows,sum(ShuffleSendBytes) as shuffle_bytes from active_queries() group by BeHost order by query_cpu_time desc,scan_rows desc ,shuffle_bytes desc limit 10 - -查看单BE峰值内存最高的N个sql -select QueryId,max(BePeakMemoryBytes) as be_peak_mem from active_queries() group by QueryId order by be_peak_mem desc limit 10; -``` - -目前主要展示的负载类型包括 Select 和`Insert Into……Select`,预计在 2.1 版本之上的三位迭代版本中会支持 Stream Load 和 Broker Load 的资源用量展示。 - -:::note -参考文档:[ACTIVE_QUERIES](https://doris.apache.org/docs/2.1/admin-manual/system-tables/information_schema/active_queries) -::: - - -## 其他 - -### Decimal256 - -为了更好的满足金融类或者财务类客户以及一些高端制造业客户对于数字类型进行精确计算的需求,2.1 新版本中提供了更高精度的 Decimal 数据类型,最高支持 76 位有效数字(该类型处于 Experimental 状态,需要手工开启配置项 set enable_decimal256=true 才能使用)。 - -示例: - -```SQL -CREATE TABLE `test_arithmetic_expressions_256` ( - k1 decimal(76, 30), - k2 decimal(76, 30) - ) - DISTRIBUTED BY HASH(k1) - PROPERTIES ( - "replication_num" = "1" - ); - -insert into test_arithmetic_expressions_256 values - (1.000000000000000000000000000001, 9999999999999999999999999999999999999999999998.999999999999999999999999999998), - (2.100000000000000000000000000001, 4999999999999999999999999999999999999999999999.899999999999999999999999999998), - (3.666666666666666666666666666666, 3333333333333333333333333333333333333333333333.333333333333333333333333333333); -``` - -查询语句及结果: - -```SQL -select k1, k2, k1 + k2 a from test_arithmetic_expressions_256 order by 1, 2; -+----------------------------------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| k1 | k2 | a | -+----------------------------------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| 1.000000000000000000000000000001 | 9999999999999999999999999999999999999999999998.999999999999999999999999999998 | 9999999999999999999999999999999999999999999999.999999999999999999999999999999 | -| 2.100000000000000000000000000001 | 4999999999999999999999999999999999999999999999.899999999999999999999999999998 | 5000000000000000000000000000000000000000000001.999999999999999999999999999999 | -| 3.666666666666666666666666666666 | 3333333333333333333333333333333333333333333333.333333333333333333333333333333 | 3333333333333333333333333333333333333333333336.999999999999999999999999999999 | -+----------------------------------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -3 rows in set (0.09 sec) -``` - -:::caution -注意事项 -- Decimal256 类型对于计算 CPU 的消耗更高,因此在性能上会有一些损耗。 -::: - - -### 任务调度 Job Scheduler - -同社区用户多次交流中,我们发现许多场景下用户使用 Apache Doris 时都存在定时调度的需求,例如: - -- 周期性的 Backup; - -- 过期数据定时清理; - -- 周期性的导入任务,如定时通过 Catalog 的方式去进行增量或全量数据同步; - -- 定期 ETL,如部分用户定期从宽表中 Load 数据至指定表、从明细表中定时拉取数据存至聚合表、ODS 层表定时打宽并写入原有宽表更新; - -尽管诸如 Airflow、DolphinScheduler 等可供选择的外部调度系统非常多,但仍面临一致性的问题——在极端情况下,外部调度系统触发 Doris 导入任务并执行成功,因意外情况忽然宕机时,外部调度系统无法正确获取执行结果,会认为此次调度失败,导致触发调度系统的容错机制,通常是重试或者直接失败。而无论采用哪种策略,最终都会导致以下几个情况发生: - -- **资源浪费**:由于调度系统误认为任务失败,可能会重新调度执行已经成功的任务,导致不必要的资源消耗。 - -- **数据重复或丢失**:如果调度系统选择重试导入任务,可能导致数据重复导入,造成数据冗余和不一致。另一方面,如果调度系统直接标记任务为失败,可能导致实际已成功导入的数据被忽略或丢失。 - -- **时间延误**:由于调度系统的容错机制被触发,可能需要进行额外的任务调度和重试,导致整体数据处理时间延长,影响业务效率和响应速度。 - -- **系统稳定性下降**:频繁的重试或直接失败可能导致调度系统和 Doris 的负载增加,进而影响系统的稳定性和性能。 - -因此我们在 Apache Doris 2.1 版本中引入了 Job Scheduler 功能并具备了自行任务调度的能力。Doris Job Scheduler 是根据既定计划运行的任务,用于在特定时间或指定时间间隔触发预定义的操作,从而帮助我们自动执行一些任务。从功能上来讲,它类似于操作系统上的定时任务(如:Linux 中的 cron、Windows 中的计划任务),但 Doris 的 Job 调度可以精确到秒级。对于导入场景,我们能够做到完全的一致性保障。除此之外,Doris 内置的 Jon Scheduler 还具有以下特点: - -1. **高效调度**:Job Scheduler 可以在指定的时间间隔内安排任务和事件,确保数据处理的高效性。采用时间轮算法保证事件能够精准做到秒级触发。 - -2. **灵活调度**:Job Scheduler 提供了多种调度选项,如按 分、小时、天或周的间隔进行调度,同时支持一次性调度以及循环(周期)事件调度,并且周期调度也可以指定开始时间、结束时间。 - -3. **事件池和高性能处理队列**:Job Scheduler 采用 Disruptor 实现高性能的生产消费者模型,最大可能的避免任务执行过载。 - -4. **调度记录可追溯**:Job Scheduler 会存储最新的 Task 执行记录(可配置),通过简单的命令即可查看任务执行记录,确保过程可追溯。 - -5. **高可用**:依托于 Doris 自身的高可用机制,Job 可以很轻松的做到自恢复,高可用。 - -在此我们创建一个定时调度任务作为示例: - -```SQL -// 从 2023-11-17 起每天定时执行 insert语句直到 2038 年结束 -CREATE -JOB e_daily - ON SCHEDULE - EVERY 1 DAY - STARTS '2023-11-17 23:59:00' - ENDS '2038-01-19 03:14:07' - COMMENT 'Saves total number of sessions' - DO - INSERT INTO site_activity.totals (time, total) - SELECT CURRENT_TIMESTAMP, COUNT(*) - FROM site_activity.sessions where create_time >= days_add(now(),-1) ; -``` - -:::caution 注意事项 - -当前 Job Scheduler 仅支持 Insert 内表,参考文档:[CREATE-JOB](https://doris.apache.org/docs/2.1/sql-manual/sql-statements/job/CREATE-JOB) - -::: - -## Behavior Changed - -- Unique Key 模型默认开启 Merge On Write 写时合并,新创建的 Unique Key 模型的表将自动设置 `enable_unique_key_merge_on_write=true`。 - -- 倒排索引 Invert Index 经过一年多时间的打磨,已实现了对原本的位图索引 Bitmap Index 功能和场景的全覆盖,且功能上和性能上都大幅优于原本的位图索引 Bitmap Index,因此从 Apache Doris 2.1 版本起,我们将默认停止对位图索引 Bitmap Index 的支持,已经创建的位图索引保持不变将继续生效,不允许创建新的位图索引,在未来我们将会移除位图索引的相关代码。 - -- `cpu_resource_limit`不再支持,其本身是限制 BE 上 Scanner 线程数目的功能,而 Workload Group 也能支持设置 BE Scanner 线程数目,所以已设置的 `cpu_resource_limit `将失效。 - -- Segment Compaction 主要应对单批次大数据量的导入,可以在同一批次数据中进行多个 Segment 的 Compaction 操作,在 2.1 版本开始 Segment Compaction 将默认开启,`enable_segcompaction` 默认值设置为 True。 - -- Audit Log 插件 - - - 从 2.1 版本开始,Apache Doris 开始内置 Audit Log 审计日志插件,用户只需通过设置全局变量 `enable_audit_plugin` 开启或关闭审计日志功能。 - - - 对于之前已经安装过审计日志插件的用户,升级后可以继续使用原有插件,也可以通过 uninstall 命令卸载原有插件后,使用新的插件。但注意,切换插件后,审计日志表也将切换到新的表中。 - - - 具体可参阅:[审计日志插件](../../admin-manual/audit-plugin.md) - - - - -## 致谢 - -467887319, 924060929, acnot, airborne12, AKIRA, alan_rodriguez, AlexYue, allenhooo, amory, amory, AshinGau, beat4ocean, BePPPower, bigben0204, bingquanzhao, BirdAmosBird, BiteTheDDDDt, bobhan1, caiconghui, camby, camby, CanGuan, caoliang-web, catpineapple, Centurybbx, chen, ChengDaqi2023, ChenyangSunChenyang, Chester, ChinaYiGuan, ChouGavinChou, chunping, colagy, CSTGluigi, czzmmc, daidai, dalong, dataroaring, DeadlineFen, DeadlineFen, deadlinefen, deardeng, didiaode18, DongLiang-0, dong-shuai, Doris-Extras, Dragonliu2018, DrogonJackDrogon, DuanXujianDuan, DuRipeng, dutyu, echo-dundun, ElvinWei, englefly, Euporia, feelshana, feifeifeimoon, feiniaofeiafei, felixwluo, figurant, flynn, fornaix, FreeOnePlus, Gabriel39, gitccl, gnehil, GoGoWen, gohalo, guardcrystal, hammer, HappenLee, HB, hechao, HelgeLarsHelge, herry2038, HeZhangJianHe, HHoflittlefish777, HonestManXin, hongkun-Shao, HowardQin, hqx871, httpshirley, htyoung, huanghaibin, HuJerryHu, HuZhiyuHu, Hyman-zhao, i78086, irenesrl, ixzc, jacktengg, jacktengg, jackwener, jayhua, Jeffrey, jiafeng.zhang, Jibing-Li, JingDas, julic20s, kaijchen, kaka11chen, KassieZ, kindred77, KirsCalvinKirs, KirsCalvinKirs, kkop, koarz, LemonLiTree, LHG41278, liaoxin01, LiBinfeng-01, LiChuangLi, LiDongyangLi, Lightman, lihangyu, lihuigang, LingAdonisLing, liugddx, LiuGuangdongLiu, LiuHongLiu, liuJiwenliu, LiuLijiaLiu, lsy3993, LuGuangmingLu, LuoMetaLuo, luozenglin, Luwei, Luzhijing, lxliyou001, Ma1oneZhang, mch_ucchi, Miaohongkai, morningman, morrySnow, Mryange, mymeiyi, nanfeng, nanfeng, Nitin-Kashyap, PaiVallishPai, Petrichor, plat1ko, py023, q763562998, qidaye, QiHouliangQi, ranxiang327, realize096, rohitrs1983, sdhzwc, seawinde, seuhezhiqiang, seuhezhiqiang, shee, shuke987, shysnow, songguangfan, Stalary, starocean999, SunChenyangSun, sunny, SWJTU-ZhangLei, TangSiyang2001, Tanya-W, taoxutao, Uniqueyou, vhwzIs, walter, walter, wangbo, Wanghuan, wangqt, wangtao, wangtianyi2004, wenluowen, whuxingying, wsjz, wudi, wudongliang, wuwenchihdu, wyx123654, xiangran0327, Xiaocc, XiaoChangmingXiao, xiaokang, XieJiann, Xinxing, xiongjx, xuefengze, xueweizhang, XueYuhai, XuJianxu, xuke-hat, xy, xy720, xyfsjq, xzj7019, yagagagaga, yangshijie, YangYAN, yiguolei, yiguolei, yimeng, YinShaowenYin, Yoko, yongjinhou, ytwp, yuanyuan8983, yujian, yujun777, Yukang-Lian, Yulei-Yang, yuxuan-luo, zclllyybb, ZenoYang, zfr95, zgxme, zhangdong, zhangguoqiang, zhangstar333, zhangstar333, zhangy5, ZhangYu0123, zhannngchen, ZhaoLongZhao, zhaoshuo, zhengyu, zhiqqqq, ZhongJinHacker, ZhuArmandoZhu, zlw5307, ZouXinyiZou, zxealous, zy-kkk, zzwwhh, zzzxl1993, zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.1.md deleted file mode 100644 index 1d68596f0435a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.1.md +++ /dev/null @@ -1,223 +0,0 @@ ---- -{ - "title": "Release 2.1.1", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.1.1 版本已于 2024 年 4 月 3 日正式发布。该版本针对 2.1.0 版本出现的问题进行较为全面的优化,提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- **立即下载:** https://doris.apache.org/download/ - -- **GitHub Release:** https://github.com/apache/doris/releases - - -## 1 行为变更 - -1. 改变了 Float 类型字段返回值序列化的方式,可以提升大数据量下 Float 返回的性能。 - -- https://github.com/apache/doris/pull/32049 - -2. 将部分 Table Valued Function 变更为系统表 `active_queries()`, `workload_groups()`。 - -- https://github.com/apache/doris/pull/32314 - -3. 由于 `show query``/l``oad profile stmt` 语句在实际用户场景中使用较少,该语句将不再支持与维护。同时该功能在 Pipeline 与 PipelineX 引擎中不支持。 - -- https://github.com/apache/doris/pull/32467 - -4. 升级 Arrow Flight 版本至 15.0.2,同时用户需要使用 ADBC 15.0.2 版本访问 Doris。 - -- https://github.com/apache/doris/pull/32827. - -## 2 升级问题 - -1. 修复了从 2.0.x 滚动升级至 2.1.x 的过程中,部分 BE 节点升级出现 Core 的问题。 - -- https://github.com/apache/doris/pull/32672 - -- https://github.com/apache/doris/pull/32444 - -- https://github.com/apache/doris/pull/32162 - -2. 修复了在 2.0.x 滚动升级至 2.1.x 过程中,使用 JDBC Catalog 会出现 Query 报错的问题。 - -- https://github.com/apache/doris/pull/32618 - -## 3 新功能 - -1. 默认开启列级权限。 - -- https://github.com/apache/doris/pull/32659 - -2. Pipeline 和 PipelineX 引擎能够在 K8S 下准确获取 CPU 核数。 - -- https://github.com/apache/doris/pull/32370 - -3. 支持读取 Parquet INT96 类型 - -- https://github.com/apache/doris/pull/32394 - -4. 支持 IP 透传的协议,以方便在 FE 之前启用代理的同时还能获取客户端准确的 IP 地址,实现白名单权限控制。 - -- https://github.com/apache/doris/pull/32338/files - -5. 增加对 Workload Queue 检测指标。 - -- https://github.com/apache/doris/pull/32259 - -6. 增加系统表 `backend_active_tasks `,以实时监测每个 BE 上活跃任务以及消耗的资源信息。 - -- https://github.com/apache/doris/pull/31945 - -7. 在 Spark Doris Connector 中增加 IPV4 和 IPV6 的支持。 - -- https://github.com/apache/doris/pull/32240 - -8. CCR 支持倒排索引。 - -- https://github.com/apache/doris/pull/32101 - -9. 支持查询 Experimental 的 Session Variable。 - -- https://github.com/apache/doris/pull/31837 - -10. 支持建立 `bitmap_union(bitmap_from_array())` 函数的物化视图。 - --https://github.com/apache/doris/pull/31962 - -11. 支持对 Hive 中 `HIVE_DEFAULT_PARTITION` 分区进行列裁剪。 - -- https://github.com/apache/doris/pull/31736 - -12. 支持 `set variable` 语句中使用函数。 - -- https://github.com/apache/doris/pull/32492 - -13. Arrow 序列化方式增加对 Variant 类型的支持。 - -- https://github.com/apache/doris/pull/32809 - -## 4 改进与优化 - -1. 当系统自动重启或者滚动升级之后,自动启动 Routine Load 导入任务。 - -- https://github.com/apache/doris/pull/32239 - -2. 优化了 Routine Load 任务在各个 BE 上的分布方式,让各个 BE 负载更加均衡。 - -- https://github.com/apache/doris/pull/32021 - -3. 升级 Spark 的版本,解决部分 Spark Load 的安全问题。 - -- https://github.com/apache/doris/pull/30368 - -4. 在冷热分离过程中,自动跳过被删除的 Tablet. - -- https://github.com/apache/doris/pull/32079 - -5. Workload Group 支持对 Routine Load 的资源进行限制。 - -- https://github.com/apache/doris/pull/31671 - -6. 大幅度优化多表物化视图查询改写性能。 - -- https://github.com/apache/doris/pull/31886 - -7. 优化 Broker Load 任务对 FE 的内存使用 - -- https://github.com/apache/doris/pull/31985 - -8. 优化 Partition 的裁剪逻辑。 - -- https://github.com/apache/doris/pull/31970 - -9. 优化 Tablet Schema Cache 对 BE 内存使用。 - -- https://github.com/apache/doris/pull/31141 - -10. 多表物化视图增加更多对 JOIN 类型的支持,包括 INNER JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOIN、LEFT SEMI JOIN、RIGHT SEMI JOIN、LEFT ANTI JOIN、RIGHT ANTI JOIN - -- https://github.com/apache/doris/pull/32909 - -## 5 Bugs 修复 - -1. 修复 TopN 下推导致的问题。 - -- https://github.com/apache/doris/pull/326332. - -2. 修复 JAVA UDF 带来的内存泄露问题。 - -- https://github.com/apache/doris/pull/32630 - -3. 修复 ODBC 表备份恢复问题。 - -- https://github.com/apache/doris/pull/31989 - -4. 修复对 Variant 类型进行运算时常量折叠会导致 BE 出错的问题 - -- https://github.com/apache/doris/pull/32265 - -5. 修复了部分导入任务失败时 Routine Load 卡住的问题。 - -- https://github.com/apache/doris/pull/32638 - -6. 修复 SEMI JOIN 结果不正确的问题。 - -- https://github.com/apache/doris/pull/32477 - -7. 当列的数据为空时,修复建立倒排索引会出错的问题。 - -- https://github.com/apache/doris/pull/32669 - -8. 修复`<=> join` 操作会出现 Core 的问题。 - -- https://github.com/apache/doris/pull/32623 - -9. 修复部分列更新在有 Sequence 列结果准确性的问题。 - -- https://github.com/apache/doris/pull/32574 - -10. 修复 Select Outfile 导出到 Parquet 或者 ORC 格式的列类型映射问题。 - -- https://github.com/apache/doris/pull/32281 - -11. 修复在 Restore 过程中 BE 有时候会 Core 的问题。 - -- https://github.com/apache/doris/pull/32489 - -12. 修复 `array_agg `函数结果不对的问题。 - -- https://github.com/apache/doris/pull/32387 - -13. 使 Variant 类型应当一直是 nullable. - -- https://github.com/apache/doris/pull/32248 - -14. 修复 Schema Change 没有正确处理空 Block 的问题。 - -- https://github.com/apache/doris/pull/32396 - -15. 修复使用 `json_length()` 函数时部分场景会出错的问题。 - -- https://github.com/apache/doris/pull/32145 - -16. 修复 Iceberg 表没有正确处理 Date Cast 转换的问题。 - -- https://github.com/apache/doris/pull/32194 - -17. 修复 Variant 类型建立 Index 时出现的部分 Bug。 - -- https://github.com/apache/doris/pull/31992 - -18. 修复当多个 `map_agg` 函数同时使用时结果不正确的问题。 - -- https://github.com/apache/doris/pull/31928 - -19. 修复 `money_format` 函数的返回结果不正确的问题。 - -- https://github.com/apache/doris/pull/31883 - -20. 修复在高并发的建立链接时部分请求会卡住的问题。 - -- https://github.com/apache/doris/pull/31594 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.10.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.10.md deleted file mode 100644 index 23a10577dcb6d..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.10.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -{ - "title": "Release 2.1.10", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.10 版本已于 2025 年 05 月 17 日正式发布。** 该版本持续在查询执行引擎、湖仓一体等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。 - -- [立即下载](https://doris.apache.org/download) - -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.10-rc01) - -## 行为变更 - -- DELETE 不再错误的需要目标表的 SELECT_PRIV 权限 [#49794](https://github.com/apache/doris/pull/49794) -- Insert Overwrite 不再限制对同一个表并发只能为 1 [#48673](https://github.com/apache/doris/pull/48673) -- Merge on write unique 表禁止使用时序 compaction [#49905](https://github.com/apache/doris/pull/49905) -- 禁止在 VARIANT 类型上 build index。[#49159](https://github.com/apache/doris/pull/49159) - -## 新功能 - -### 查询执行引擎 - -- 支持了更多的 GEO 类型的计算函数`ST_CONTAINS ` , `ST_INTERSECTS`, `ST_TOUCHES`,`GeometryFromText`,`ST_Intersects`, `ST_Disjoint`, `ST_Touches`。[#49665](https://github.com/apache/doris/pull/49665) [#48695](https://github.com/apache/doris/pull/48695) -- 支持 `years_of_week` 函数。[#48870](https://github.com/apache/doris/pull/48870) - -## 湖仓一体 - -- Hive Catalog 支持 Catalog 级别的分区缓存开关控制 [#50724](https://github.com/apache/doris/pull/50724) - - 更多详情,可参考[文档](https://doris.apache.org/zh-CN/docs/dev/lakehouse/meta-cache#关闭-hive-catalog-元数据缓存) - -## 改进提升 - -### 湖仓一体 - -- Paimon 依赖版本升级到 1.0.1 -- Iceberg 依赖版本升级到 1.6.1 -- 将 Parquet Footer 的内存开销纳入 Memory Tracker 管控,以避免可能的 OOM 问题。[#49037](https://github.com/apache/doris/pull/49037) -- 优化 JDBC Catalog 的谓词下推逻辑,支持 AND/OR 等连接谓词的下推[#50542](https://github.com/apache/doris/pull/50542) -- 预编译版本默认携带 Jindofs 扩展包以支持阿里云 OSS-HDFS 访问。 - -### 半结构化管理 - -- ANY 函数支持 JSON 类型 [#50311](https://github.com/apache/doris/pull/50311) -- JSON_REPLACE,JSON_INSERT,JSON_SET,JSON_ARRAY 函数支持 JSON 数据类型和复杂数据类型[#50308](https://github.com/apache/doris/pull/50308) - -### 查询优化器 - -- 当 in 表达式的 options 多于 `Config.max_distribution_pruner_recursion_depth` 时,不执行分桶裁剪,以提升规划速度 [#49387](https://github.com/apache/doris/pull/49387) - -### 存储管理 - -- 减少日志和改进部分日志。[#47647](https://github.com/apache/doris/pull/47647) [#48523](https://github.com/apache/doris/pull/48523) - -### 其他 - -- 避免 thrift rpc END_OF_FILE 异常 [#49649](https://github.com/apache/doris/pull/49649) - -## Bug 修复 - -### 湖仓一体 - -- 修复某些情况下,在 Hive 侧新建表,Doris 侧无法立即查看到的问题 [#50188](https://github.com/apache/doris/pull/50188) -- 修复某些 Text 格式 Hive 表访问报错 "Storage schema reading not supported" 的 问题 [#50038](https://github.com/apache/doris/pull/50038) - - 查看[文档 get_schema_from_table 详情](https://doris.apache.org/zh-CN/docs/dev/lakehouse/catalogs/hive-catalog?_highlight=get_schema_from_table#语法) -- 修复某些情况下,写入 Hive/Iceberg 表时,元数据提交并发问题 [#49842](https://github.com/apache/doris/pull/49842) -- 修复某些情况下,写入存储在 oss-hdfs 上的 Hive 表失败的问题 [#49754](https://github.com/apache/doris/pull/49754) -- 修复当 Hive 分区键值有逗号的情况下,访问失败的问题 [#49382](https://github.com/apache/doris/pull/49382) -- 修复某些情况下,Paimon 表 Split 分配不均匀的问题 [#50083](https://github.com/apache/doris/pull/50083) -- 修复读取存储在 OSS 上的 Paimon 表时,无法正确处理 Delete 文件的问题 [#49645](https://github.com/apache/doris/pull/49645) -- 修复 MaxCompute Catalog 中,读取高精度 Timestamp 列时无法访问的问题 [#49600](https://github.com/apache/doris/pull/49600) -- 修复某些情况下,删除 Catalog 可能导致部分资源泄露的问题 [#49621](https://github.com/apache/doris/pull/49621) -- 修复某些情况下,读取 LZO 压缩格式的数据失败的问题 [#49538](https://github.com/apache/doris/pull/49538) -- 修复某些情况下,ORC 延迟物化功能导致复杂类型读取错误的问题 [#50136](https://github.com/apache/doris/pull/50136) -- 修复某些情况下,读取 pyorc-0.3 版本产生的 ORC 文件报错的问题 [#50358](https://github.com/apache/doris/pull/50358) -- 修复某些情况下,EXPORT 操作导致元数据死锁的问题 [#50088](https://github.com/apache/doris/pull/50088) - -### 索引 - -- 修复多次添加、删除和重命名列操作后构建倒排索引的错误 [#50056](https://github.com/apache/doris/pull/50056) -- 在 index compaction 中索引对应的列唯一 ID 的校验,避免潜在的数据异常和系统错误 [#47562](https://github.com/apache/doris/pull/47562) - -### 半结构化数据类型 - -- 修复某些情况下,VARIANT 类型转 JSON 类型返回 NULL 错误的结果 [#50180](https://github.com/apache/doris/pull/50180) -- 修复某些情况下,JSONB CAST 导致 crash [#49810](https://github.com/apache/doris/pull/49810) -- 禁止在 VARIANT 类型上 build index [#49159](https://github.com/apache/doris/pull/49159) -- 修复 named_struct 函数 decimal 类型精度正确性 [#48964](https://github.com/apache/doris/pull/48964) - -### 查询优化器 - -- 修复常量折叠中的一些问题 [#49413](https://github.com/apache/doris/pull/49413) [#50425](https://github.com/apache/doris/pull/50425) [#49686](https://github.com/apache/doris/pull/49686) [#49575](https://github.com/apache/doris/pull/49575) [#50142](https://github.com/apache/doris/pull/50142) -- 公共表达式提取在 lambda 表达式上可能工作异常 [#49166](https://github.com/apache/doris/pull/49166) -- 修复消除 group by key 中的常量可能不能正常工作的问题 [#49589](https://github.com/apache/doris/pull/49589) -- 修复在极端场景下,由于统计信息的推导错误,规划无法正常执行的问题 [#49415](https://github.com/apache/doris/pull/49415) -- 修复部分依赖 BE 中元数据的 information_schema 表,不能获取完整数据的问题 [#50721](https://github.com/apache/doris/pull/50721) - -### 查询执行引擎 - -- 修复了找不到 explode_json_array_json_outer 函数的问题。[#50164](https://github.com/apache/doris/pull/50164) -- 修复了 substring_index 不支持动态参数的问题。[#50149](https://github.com/apache/doris/pull/50149) -- 修复了很多 st_contains 函数计算结果不对的问题。[#50115](https://github.com/apache/doris/pull/50115) -- 修复了 array_range 函数可能导致的 core 的问题。[#49993](https://github.com/apache/doris/pull/49993) -- 修复了 date_diff 函数计算结果错误的问题。[#49429](https://github.com/apache/doris/pull/49429) -- 修复了一系列字符串函数在非 ASCII 编码下的乱码或者结果错误的问题。[#49231](https://github.com/apache/doris/pull/49231) [#49846](https://github.com/apache/doris/pull/49846) [#49127](https://github.com/apache/doris/pull/49127) [#40710](https://github.com/apache/doris/pull/40710) - -### 存储管理 - -- 修复某些情况下,动态分区表(Dynamic Partition Table)回放元数据失败的问题[#49569](https://github.com/apache/doris/pull/49569) -- 修复 ARM 下 streamload 可能因为操作序列丢数据的问题 [#48948](https://github.com/apache/doris/pull/48948) -- 修复 full compaction 报错以及可能导致 mow 数据重复的问题 [#49825](https://github.com/apache/doris/pull/49825) [#48958](https://github.com/apache/doris/pull/48958) -- 修复没有持久化分区 Storage Policy 的问题。 [#49721](https://github.com/apache/doris/pull/49721) -- 修复导入之后文件极小概率不存在的问题。[ #50343](https://github.com/apache/doris/pull/50343) -- 修复 CCR 和磁盘均衡并发可能导致的文件找不见问题。[#50663 ](https://github.com/apache/doris/pull/50663) -- 修复备份恢复大快照时可能出现的 connection reset 问题。[#49649](https://github.com/apache/doris/pull/49649) -- 修复 FE Follower 丢失本地备份快照的问题。[#49550](https://github.com/apache/doris/pull/49550) - -### Others - -- 修复某些场景下,审计日志可能丢失的问题 [#50357](https://github.com/apache/doris/pull/50357) -- 修复审计日志中 isQuery 标记可能不正确的问题 [#49959](https://github.com/apache/doris/pull/49959) -- 修复审计日志中部分查询 sqlHash 不正确的问题 [#49984](https://github.com/apache/doris/pull/49984) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.11.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.11.md deleted file mode 100644 index 6bd004b0697d4..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.11.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -{ - "title": "Release 2.1.11", - "language": "zh-CN" -} ---- - - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 8 月 15 日我们引来了 Apache Doris 2.1.11 版本的正式发布,欢迎大家下载使用。 - - -## 行为变更 - -- time_series_max_tablet_version_num 控制时序 compaction 策略表的最大版本数目。[#51371](https://github.com/apache/doris/pull/51371) -- 修复冷热分层时 hdfs root_path 没有生效的问题。[#48441](https://github.com/apache/doris/pull/48441) -- 在 新优化器(Nereids)中,当查询时的表达式的深度或宽度超过阈值限制时,无论是否开始查询回退到老优化器,都不会回退。[#52431](https://github.com/apache/doris/pull/52431) -- 统一了开始 unicode 名字与否的名字检查规则,现在非 unicode 名字规则是 unicode 名字规则的严格子集。[#53264](https://github.com/apache/doris/pull/53264) - -## 新功能 - -### 查询执行引擎 - -- 引入系统表 routine_load_job 查看routine load job 信息。[#48963](https://github.com/apache/doris/pull/48963) - -### 查询优化器 - -- 支持了 MySQL 的 GROUP BY 上卷语法 GROUP BY ... WITH ROLLUP。[#51978](https://github.com/apache/doris/pull/51978) - -## 改进提升 - -### 查询优化器 - -- 优化了在聚合模型表和主键模型 mor 表上收集统计信息的性能。[#51675](https://github.com/apache/doris/pull/51675) - -### 异步物化视图 - -- 优化了透明改写的规划性能 [#51309](https://github.com/apache/doris/pull/51309) -- 优化了刷新的性能 [#51493](https://github.com/apache/doris/pull/51493) - -## Bug 修复 - -### 导入 - -- 修复 routineload alter 属性之后 show 展示结果不符合预期的问题 [#53038](https://github.com/apache/doris/pull/53038) - -### 湖仓一体 - -- 修复某些情况读取 iceberg equality delete 数据错误的问题 [#51253](https://github.com/apache/doris/pull/51253) -- 修复iceberg hadoop catalog 在 kerberos 环境下报错的问题 [#50623](https://github.com/apache/doris/pull/50623) [#52149](https://github.com/apache/doris/pull/52149) -- 修复 Kerberos 环境下 Iceberg 表写入事务提交失败的问题 [#51508](https://github.com/apache/doris/pull/51508) -- 修复 Iceberg 表写入事务提交错误的问题 [#52716](https://github.com/apache/doris/pull/52716) -- 修复某些情况下访问 kerberos 环境的 Hudi 表数据报错的问题 [#51713 ](https://github.com/apache/doris/pull/51713) -- SQL Server Catalog 支持识别 IDENTITY 列信息 [#51285](https://github.com/apache/doris/pull/51285) -- 修复某些情况下 Jdbc Catalog 表无法获取行数信息的问题 [#50901](https://github.com/apache/doris/pull/50901) -- 优化 orc zlib 在 x86 环境下的解压性能并修复潜在问题 [#51775](https://github.com/apache/doris/pull/51775) -- 在 Profile 中增加 Parquet/ORC 条件过滤和延迟物化相关的指标 [#51248](https://github.com/apache/doris/pull/51248) -- 优化 ORC Footer 的读取性能 [#51117](https://github.com/apache/doris/pull/51117) -- 修复 Table Valued Function 无法读压缩格式的 json 文件的问题 [#51983](https://github.com/apache/doris/pull/51983) -- 修复某些情况下并发刷新 Catalog 导致元数据不一致的问题 [#51787](https://github.com/apache/doris/pull/51787) - -### 索引 - -- 修复了倒排索引在处理包含 CAST 操作的 IN 谓词时出现的查询错误,避免返回错误的查询结果。[#50860](https://github.com/apache/doris/pull/50860) -- 修复了倒排索引在执行异常情况下的内存泄漏问题。[#52747](https://github.com/apache/doris/pull/52747) - -### 半结构化数据类型 - -- 修复了一些json 函数在null 值情况下结果错误的问题。 -- 修复了一些json 函数相关的bug。[#52543](https://github.com/apache/doris/pull/52543) [#51516](https://github.com/apache/doris/pull/51516) - -### 查询优化器 - -- 修复解析字符串为日期失败时,查询无法继续执行的问题 [#50900](https://github.com/apache/doris/pull/50900) -- 修复了个别场景下常量折叠结果错误的问题 [#51738](https://github.com/apache/doris/pull/51738) -- 修复个别数组函数在遇到 null literal 作为输入时,无法正常规划的问题 [#50899](https://github.com/apache/doris/pull/50899) -- 修复在极端场景下,开启 local shuffle 可能导致结果错误的问题 [#51313](https://github.com/apache/doris/pull/51313) [#52871 ](https://github.com/apache/doris/pull/52871) -- 修复了 replace view 可能导致 desc view 时看不到列信息的问题 [#52043](https://github.com/apache/doris/pull/52043) -- 修复了 prepare command 在非 master FE 节点上有可能无法正确执行的问题 [#52265](https://github.com/apache/doris/pull/52265) - -### 异步物化视图 - -- 修复当基表列的类型变更,可能导致透明改写后查询失败的问题 [#50730](https://github.com/apache/doris/pull/50730) -- 修复了个别场景下,透明改写分区补偿错误的问题 [#51899](https://github.com/apache/doris/pull/51899) [#52218](https://github.com/apache/doris/pull/52218) - -### 查询执行引擎 - -- 修复TopN计算时如果遇到variant 列类型,可能会core的问题。[#52573](https://github.com/apache/doris/pull/52573) -- 修复函数bitmap_from_base64在输入错误数据时会Core的问题。[#53018](https://github.com/apache/doris/pull/53018) -- 修复了bitmap_union 函数在超大数据量时,一些结果错误的问题。[#52033](https://github.com/apache/doris/pull/52033) -- 修复了multi_distinct_group_concat在窗口函数中使用时计算错误的问题。[#51875](https://github.com/apache/doris/pull/51875) -- 修复了array_map 函数,在极端值时可能core的问题。[#51618](https://github.com/apache/doris/pull/51618) [#50913](https://github.com/apache/doris/pull/50913) -- 修复了错误的时区处理的问题。[#51454](https://github.com/apache/doris/pull/51454) - -### Others - -- 修复多语句在主 FE 和非主 FE 行为不一致的问题。[#52632](https://github.com/apache/doris/pull/52632) -- 修复 prepared statment 在非主 FE 报错的问题。[#48689](https://github.com/apache/doris/pull/48689) -- 修复 roolup 操作时可能导致 CCR 中断的问题。[#50830](https://github.com/apache/doris/pull/50830) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.2.md deleted file mode 100644 index 6876790ca0ef9..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.2.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -{ - "title": "Release 2.1.2", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.2 版本已于 2024 年 4 月 12 日正式发布**。该版本提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 1 行为变更 - -1. 将 EXPORT 命令中 `data_consistence` 属性的默认值调整为 Partition,这可以使得并发导入的同时做 EXPORT 操作更容易成功。 - -- https://github.com/apache/doris/pull/32830 - -2. 兼容部分 MySQL Connector(如 MySQL.Data for .NET)将 SELECT `@``@autocommit` 的返回值类型变更为 BIGINT。 - -- https://github.com/apache/doris/pull/33282 - -3. Auto Partition 语法变化,详见[文档](../../table-design/data-partitioning/auto-partitioning.md) - -- https://github.com/apache/doris/pull/32737 - -4. Auto Partition 禁止和 Dynamic Partition 同时作用在一张表上 - -- https://github.com/apache/doris/pull/33736 - -## 2 升级问题 - -1. 修复正常 Workload Group 从 2.0 或者更早版本升级到 2.1 时没有默认创建的问题。 - -- https://github.com/apache/doris/pull/33197 - -## 3 新功能 - -1. 增加 processlist 系统表功能,用户可以通过查询系统表获得活跃的链接信息。 - -- https://github.com/apache/doris/pull/32511 - -2. 增加新的表函数 `LOCAL` 以访问部分共享存储上的文件。 - -- https://github.com/apache/doris-website/pull/494 - -## 4 改进与优化 - -1. 跳过部分不必要检查,加速在 K8s 环境下优雅退出的速度。 - -- https://github.com/apache/doris/pull/33212 - -2. 在 Profile 中增加已命中的物化视图信息,能够方便地定位物化视图是否命中。 - -- https://github.com/apache/doris/pull/33137 - -3. 针对 DB2 Catalog,增加测试链接是否通畅的功能,能够在建立 Catalog 时做部分链接检查。 - -- https://github.com/apache/doris/pull/33335 - -4. 增加 DNS Cache,解决 K8s 环境下域名解析较慢,从而影响查询的问题。 - -- https://github.com/apache/doris/pull/32869 - -5. 增加异步刷新 Catalog 中表的行数信息,避免查询抖动。 - -- https://github.com/apache/doris/pull/32997 - -## 5 Bug 修复 - -1. 修复 Iceberg Catalog 中,不支持 Iceberg 自定义属性的问题,例如 "io.manifest.cache-enabled"。 - -- https://github.com/apache/doris/pull/33113 - -2. `LEAD`/`LAG` 函数的 Offset 起始位置可以设置为 0。 - -- https://github.com/apache/doris/pull/33174 - -3. 修复部分导入过程中可能出现的 Timeout 的问题。 - -- https://github.com/apache/doris/pull/33077 - -- https://github.com/apache/doris/pull/33260 - -4. 修复部分 `ARRAY` / `MAP` / `STRUCT` 类型在 Compaction 中引起 Core 的问题。 - -- https://github.com/apache/doris/pull/33130 https://github.com/apache/doris/pull/33295 - -5. 修复查询过程中 Runtime Filter 部分等待超时的问题。 - -- https://github.com/apache/doris/pull/33369 - -6. 修复 `unix_timestamp` 函数在 Auto Partition 中可能导致 Core 的问题。 - -- https://github.com/apache/doris/pull/32871 - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.3.md deleted file mode 100644 index 33454120eb686..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.3.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -{ - "title": "Release 2.1.3", - "language": "zh-CN" -} ---- - -**Apache Doris 2.1.3 版本已于 2024 年 5 月 21 日正式发布**。该版本更新带来了若干改进项,包括支持向 Hive 回写数据、物化视图、新函数等功能,同时改善权限管理并修复若干问题,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - - -## 功能特性 - -**1. 支持通过 Hive Catalog 向 Hive 表中回写数据** - -从 2.1.3 版本开始,Apache Doris 支持对 Hive 的 DDL 和 DML 操作。用户可以直接通过 Apache Doris 在 Hive 中创建库表,通过执行`INSERT INTO`语句来向 Hive 表中写入数据。通过该功能,用户可以通过 Apache Doris 对 Hive 进行完整的数据查询和写入操作,进一步帮助用户简化湖仓一体架构。 - -参考[文档](../../lakehouse/datalake-building/hive-build) - - -**2. 支持在异步物化视图之上构建新的异步物化视图** - - -用户可以在异步物化视图之上来创建新的异步物化视图,直接复用计算好的中间结果进行数据加工处理,简化复杂的聚合和计算操作带来的资源消耗和维护成本,进一步加速查询性能、提升数据可用性。 - -**3. 支持通过物化视图嵌套物化视图进行重写** - -物化视图(Materialized View,MV)是用于存储查询结果的数据库对象。现在,Apache Doris 支持通过 MV 嵌套物化视图进行重写,这有助于优化查询性能。 - - -**4. 新增 SHOW VIEWS 语句** - -可以使用`SHOW VIEWS`语句来查询数据库中的视图,有助于更好地管理和理解数据库中的视图对象。 - -**5. Workload Group 支持绑定到特定的 BE 节点** - -Workload Group 可以绑定到特定的 BE 节点,实现查询执行的更精细化控制,以优化资源使用和提高性能。 - -**6. Broker Load 支持压缩的 JSON 格式** - -Broker Load 支持导入压缩的 JSON 格式数据,可以显著减少数据传输的带宽需求、加速数据导入性能。 - -**7. TRUNCATE 函数可以使用列作为 scale 参数** - -TRUNCATE 函数现在可以接受列作为 scale 参数,这使得在处理数值数据时可以更加灵活。 - -**8. 添加新的函数 `uuid_to_int` 和 `int_to_uuid`** - -这两个函数允许用户在 UUID 和整数之间进行转换,对于需要处理 UUID 数据的场景有明显帮助。 - -**9. 添加 `bypass_workload_group` Session Variable 以绕过查询队列** - -会话变量 `bypass_workload_group` 允许某些查询绕过 Workload Group 队列直接执行,这可以用于处理需要快速响应的关键查询。 - -**10. 添加 strcmp 函数** - -strcmp 函数用于比较两个字符串并返回它们的比较结果,帮助文本数据的处理更加简易。 - -**11. 支持 HLL 函数 `hll_from_base64` 和 `hll_to_base64`** - -HLL(HyperLogLog)是一种用于基数估计的算法,以上两个函数允许用户将 HLL 数据从 Base64 编码的字符串中解码,或将 HLL 数据编码为 Base64 字符串,这对于存储和传输 HLL 数据非常有用。 - -## 优化改进 - -**1. 替换 SipHash 为 XXHash 以改善 Shuffle 性能** - -SipHash 和 XXHash 都是哈希函数,但 XXHash 在某些场景下可能提供更快的哈希速度和更好的性能,此优化旨在通过采用 XXHash 来提高数据 Shuffle 过程中的性能。 - -**2. 异步物化视图支持 OLAP 表分区列为可以为 NULL:** - -允许异步物化视图支持 OLAP 表的分区列可以为 NULL,从而增强了数据处理的灵活性。 - -**3. 收集列统计信息时限制最大字符串长度为 1024 以控制 BE 内存使用** - -在收集列统计信息时,限制字符串的长度可以防止过大的数据消耗过多的 BE 内存,有助于保持系统的稳定性和性能。 - -**4. 支持动态删除 Bitmap Cache 以提高性能** - -通过支持动态删除不再需要的 Bitmap Cache,可以释放内存并改善系统性能。 - -**5. 在 ALTER 操作中减少内存使用** - -减少 ALTER 操作中的内存使用,以提高系统资源的利用效率。 - -**6. 支持复杂类型的常量折叠** - -支持 Array/Map/Struct 复杂类型的常量折叠; - -**7. 在 Aggregate Key 聚合模型中增加对 Variant 类型的支持** - -Variant 数据类型能够存储多种数据类型,在此优化中允许对 Variant 类型的数据进行聚合操作,从而增强了半结构化数据分析的灵活性。 - -**8. 在 CCR 中支持新的倒排索引格式** - -**9. 优化嵌套物化视图的重写性能** - -**10. 支持 decimal256 类型的行存格式** - -在行存格式中支持 decimal 256 类型,以以扩展系统对高精度数值数据的处理能力。 - -## 行为变更 - -**1. 授权(Authorization)** - -- **Grant_priv 权限更改**:`Grant_priv`不能再被任意授予。执行 `GRANT` 操作时,用户不仅需要具有`Grant_priv`,还需要具有要授予的权限。例如,如果想要授予对`table1`的 `SELECT` 权限,那么该用户不仅需要具有 `GRANT` 权限,还需要具有对`table1`的 `SELECT` 权限,这增加了权限管理的安全性和一致性。 - -- **Workload Group 和 Resource 的 Usage_priv**:`Usage_priv` 对 Workload Group 和 Resource 的权限不再是全局级别的,而是仅限于 Resource 和 Workload Group 内,权限的授予和使用将更加具体。 - -- **操作的授权**:之前未被授权的操作现在都有了相应的授权,以实现更加细致和全面地操作权限控制。 - -**2. LOG 目录配置** - -FE 和 BE 的日志目录配置现在统一使用`LOG_DIR`环境变量,所有其他不同类型的日志都将以`LOG_DIR`作为根目录进行存储。同时为了保持版本间的兼容性,以前的配置项`sys_log_dir`仍然可以使用。 - -**3. S3 表函数(TVF)** - -由于之前的解析方式在某些情况下可能无法正确识别或处理 S3 的 URL,因此将对象存储路径的解析逻辑进行重构。对于 S3 表函数中的文件路径,需要传递`force_parsing_by_standard_uri`参数来确保被正确解析。 - -## 升级问题 - -由于许多用户将某些关键字用作列名或属性值,因此将如下关键字设置为非保留关键字,允许用户将其用作标识符使用。 - -## 问题修复 - -**1. 修复在腾讯云 COSN 上读取 Hive 表时的无数据错误** - -解决了在腾讯云 COSN 存储上读取 Hive 表时可能遇到的无数据错误,增强了与腾讯云存储服务的兼容性。 - -**2. 修复 milliseconds_diff 函数返回错误结果** - -修复`milliseconds_diff`函数在某些情况下返回错误结果的问题,确保了时间差计算的准确性。 - -**3. 用户定义变量应转发到 Master 节点** - -确保用户定义的变量能够正确地传递到 Master 节点,以便在整个系统中保持一致性和正确的执行逻辑。 - -**4. 修复添加复杂类型列时遇到的 Schema Change 问题** - -在添加复杂类型列时,可能会遇到 Schema Change 问题,此修复确保了 Schema Change 的正确性。 - -5. **修复 FE master 节点更改时 Routine Load 的数据丢失问题** - -`Routine Load`常用于订阅 Kafka 消息队列中的数据,此修复解决了在 FE Master 节点更改时可能导致的数据丢失问题。 - -**6. 修复当找不到 Workload Group 时 Routine Load 失败的问题** - -修复了当`Routine Load`找不到指定 Workload Group 时导致的失败问题。 - -**7. 支持 column string64,以避免在 string size 溢出 unit32 时 Join 失败的问题** - -在某些情况下,字符串的大小可能会超过 unit32 的限制,支持`string64`类型可以确保字符串 JOIN 操作的正确执行。 - -**8. 允许 Hadoop 用户创建 Paimon Catalog** - -允许具有权限的对应 Hadoop 用户来创建 Paimon Catalog。 - -**9. 修复 function_ipxx_cidr 函数与常量参数的问题** - -修复了`function_ipxx_cidr`函数在处理常量参数时可能出现的问题,保证函数执行的正确性。 - -**10. 修复使用 HDFS 进行还原时的文件下载错误** - -解决了在使用 HDFS 进行数据还原时遇到的“failed to download”错误,确保了数据恢复的正确性和可靠性。 - -**11. 修复隐藏列相关的列权限问题** - -在某些情况下,隐藏列的权限设置可能不正确,此修复确保了列权限设置的正确性和安全性。 - -**12. 修复在 K8s 部署中 Arrow Flight 无法获取正确 IP 的问题** - -此修复解决了在 Kubernetes 部署环境中 Arrow Flight 无法正确获取 IP 地址的问题。 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.4.md deleted file mode 100644 index ea84e7f59399b..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.4.md +++ /dev/null @@ -1,271 +0,0 @@ ---- -{ - "title": "Release 2.1.4", - "language": "zh-CN" -} ---- - -**Apache Doris 2.1.4 版本已于 2024 年 6 月 26 日正式发布。** 在 2.1.4 版本中,我们对数据湖分析场景进行了多项功能体验优化,重点修复了旧版本中异常内存占用的问题,同时提交了若干改进项以及问题修复,进一步提升了系统的性能、稳定性及易用性,欢迎大家下载使用。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 行为变更 - -- **通过 Catalog 查询外部表(如 Hive 数据表)时,系统将忽略不存在的文件:** 当从元数据缓存中获取文件列表时,由于缓存更新并非实时,因此可能存在实际的文件列表已删除、而元数据缓存中仍存在该文件的情况。为了避免由于尝试访问不存在的文件而导致的查询错误,系统会忽略这些不存在的文件。 [#35319](https://github.com/apache/doris/pull/35319) - -- 默认情况下,创建 Bitmap Index 不再默认变更为 Inverted Index。该行为由 FE 配置项 `enable_create_bitmap_index_as_inverted_index` 控制,默认为 FALSE。[#35521](https://github.com/apache/doris/pull/35521) - -- 当使用 `--console` 启动 FE、BE 进程时,所有日志将输出到标准输出,并通过前缀区分不同类型的日志。[#35679](https://github.com/apache/doris/pull/35679) - - 关于更多信息,请参考文档: - - - [BE 日志管理](../../admin-manual/log-management/be-log.md) - - - [FE 日志管理](../../admin-manual/log-management/fe-log.md) - -- 如果建表时没有填写表注释,默认注释为空,不再使用表类型作为默认表注释。 [#36025](https://github.com/apache/doris/pull/36025) - -- DECIMALV3 的默认精度从 (9, 0) 调整为 (38,9) ,以和最初发布此功能的版本保持兼容。 [#36316](https://github.com/apache/doris/pull/36316) - -## 新增功能 - -### 查询优化器 - -- **支持 FE 火焰图工具**:在 FE 部署目录 `${DORIS_FE_HOME}/bin` 中会增加`profile_fe.sh` 脚本,可以利用 async-profiler 工具生成 FE 的火焰图,用以发现性能瓶颈点。 - - 关于更多信息,请参考文档:[使用 FE Profiler 生成火焰图](https://doris.apache.org/zh-CN/community/developer-guide/fe-profiler) - -- **支持 SELECT DISTINCT 与聚合函数同时使用**:支持 `SELECT DISTINCT` 与聚合函数同时使用,在一个查询中同时去重和进行聚合操作,如 SUM、MIN/MAX 等。 - -- **支持无 GROUP BY 的单表查询重写**:无 `GROUP BY` 的单表查询重写功能允许数据库优化器在不需要分组的情况下,根据查询的复杂性和数据表的结构,自动选择最佳的执行计划来执行查询,这可以提高查询的性能,减少不必要的资源消耗,并简化查询逻辑。 [#35242](https://github.com/apache/doris/pull/35242). - -- **查询优化器全面支持高并发点查询功能**:在 2.1.4 版本之后,查询优化器全面支持高并发点查询功能,所有符合点查询条件的 SQL 语句会自动走短路径查询,无需用户在客户端额外设置 `set experimental_enable_nereids_planner = false`。 [#36205](https://github.com/apache/doris/pull/36205). - -### 湖仓一体 - -- **支持 Paimon 的原生读取器来处理 Deletion Vector:** Deletion Vector 主要用于标记或追踪哪些数据已被删除或标记为删除,通常应用在需要保留历史数据的场景,基于本优化可以提升大量数据更新或删除时的处理效率。 [#35241](https://github.com/apache/doris/pull/35241) - - 关于更多信息,请参考文档:[数据湖分析 - Paimon](../../lakehouse/datalake-analytics/paimon.md) - -- **支持在表值函数(TVF)中使用 Resource**:TVF 功能为 Apache Doris 提供了直接将对象存储或 HDFS 上的文件作为 Table 进行查询分析的能力。通过在 TVF 中引用 Resource,可以避免重复填写连接信息,提升使用体验。 [#35139](https://github.com/apache/doris/pull/35139) - - 关于更多信息,请参考文档:[表函数 - HDFS](../../sql-manual/sql-functions/table-functions/hdfs.md) - -- **支持通过 Ranger 插件实现数据脱敏**:开启 Ranger 鉴权功能后,支持使用 Ranger 中的 Data Mask 功能进行数据脱敏。 - - 关于更多信息,请参考文档:[基于 Apache Ranger 的鉴权管理](../../admin-manual/auth/ranger#资源和权限) - -### 异步物化视图 - -- 构建支持内表触发式更新,如果物化视图使用的是内表,如果内表数据发生变化,可以触发物化视图刷新,需要在创建物化视图时指定 REFRESH ON COMMIT。 - -- 支持单表透明改写。 - - 关于更多信息,请参考文档:[查询异步物化视图](../../query-acceleration/materialized-view/async-materialized-view/functions-and-demands.md) - -- 透明改写支持 agg_state, agg_union 类型的聚合上卷,物化视图可以定义为 agg_state 或者 agg_union,查询使用具体的聚合函数,或者使用 agg_merge - - 关于更多信息,请参考文档:[AGG_STATE](../../sql-manual/sql-data-types/aggregate/AGG-STATE.md) - -### 其他 - -- **新增 `replace_empty` 函数**:将字符串中的子字符串进行替换,当旧字符串为空时,会将新字符串插入到原有字符串的每个字符前以及最后。 - - 关于更多信息,请参考文档:[字符串函数 - REPLACE_EMPTY](../../sql-manual/sql-functions/scalar-functions/string-functions/replace-empty) - -- 支持 `show storage policy using` 语句:支持查看所有或指定存储策略关联的表和分区。 - - 关于更多信息,请参考文档:[SQL 语句 - SHOW](../../sql-manual/sql-statements/cluster-management/storage-management/SHOW-STORAGE-POLICY-USING) - -- **支持 BE 侧的 JVM 指标:** 通过在 `be.conf` 配置文件中设置`enable_jvm_monitor=true`,可以启用对 BE 节点 JVM 的监控和指标收集,有助于了解 BE JVM 的资源使用情况,以便进行故障排除和性能优化。 - -## 改进优化 - -- 支持为中文列名创建倒排索引。[#36321](https://github.com/apache/doris/pull/36321) - -- 优化 Segment Cache 所消耗内存的估算准确度,以便能够更快地释放未使用的内存。[#35751](https://github.com/apache/doris/pull/35751) - -- 在使用 Export 功能导出数据时,提前过滤空分区以提升导出效率。[#35542](https://github.com/apache/doris/pull/35542) - -- 优化 Routine Load 任务分配算法以平衡 BE 节点之间的负载压力。[#34778](https://github.com/apache/doris/pull/34778) - -- 在设置错误的会话变量名时,自动识别近似变量值并给出更详细的错误提示。[#35775](https://github.com/apache/doris/pull/35775) - -- 支持将 Java UDF Jar 文件放到 FE 的 `custom_lib` 目录中并默认加载。[#35984](https://github.com/apache/doris/pull/35984) - -- 为审计日志导入作业添加超时的全局变量`audit_plugin_load_timeout` ,以控制在加载审计插件或处理审计日志时允许的最大执行时间。 - -- 优化了异步物化视图透明改写规划的性能。 - -- 当 `INSERT` 源数据为空时,BE 将不会执行任何操作。[#34418](https://github.com/apache/doris/pull/34418) - -- 支持分批获取 Hudi 和 Hive 文件列表,当存在大量数据文件时可以提升数据扫描性能。 [#35107](https://github.com/apache/doris/pull/35107) - - - 120 万文件场景中,获取文件列表的时间由 390 秒缩减到 46 秒。 - -- 创建异步物化视图时,禁止使用动态分区。 - -- 支持检测 Hive 外表分区数据是否和异步物化视图同步。 - -- 允许异步物化视图创建索引。 - -## 缺陷修复 - -### 查询优化器 - -- 修复 SQL Cache 在 `truncate paritition` 后依然返回旧结果的问题。[#34698](https://github.com/apache/doris/pull/34698) - -- 修复从 JSON Cast 到其他类型 Nullable 属性不对的问题。[#34707](https://github.com/apache/doris/pull/34707) - -- 修复偶现的 DATETIMEV2 Literal 化简错误。 [#35153](https://github.com/apache/doris/pull/35153) - -- 修复窗口函数中不能使用 `COUNT(*)` 的问题。[#35220](https://github.com/apache/doris/pull/35220) - -- 修复 `UNION ALL` 下全部是无 `FROM 的 `SELECT` 时,Nullable 属性可能错误的问题。 -[#35074](https://github.com/apache/doris/pull/35074) - -- 修复 `bitmap in join` 和子查询解嵌套无法同时使用的问题。[#35435](https://github.com/apache/doris/pull/35435) - -- 修复在特定情况下过滤条件不能下推到 CTE Producer 导致的性能问题。[#35463](https://github.com/apache/doris/pull/35463) - -- 修复聚合 Combinator 为大写时,无法找到函数的问题。[#35540](https://github.com/apache/doris/pull/35540) - -- 修复窗口函数没有被列裁剪正确裁剪导致的性能问题。[#35504](https://github.com/apache/doris/pull/35504) - -- 修复多个同名不同库的表同时出现在查询中时,可能解析错误导致结果错误的问题。[#35571](https://github.com/apache/doris/pull/35571) - -- 修复对于 Schema 表扫描时,由于生成了 Runtime Filter 导致查询报错的问题。[#35655](https://github.com/apache/doris/pull/35655) - -- 修复关联子查询解嵌套,关联条件被折叠为 Null Literal 导致无法执行的问题。[#35811](https://github.com/apache/doris/pull/35811) - -- 修复规划时,偶现的 Decimal Literal 被错误设置精度的问题。 [#36055](https://github.com/apache/doris/pull/36055) - - -- 修复偶现的多层聚合被合并后规划错误的问题。[#36145](https://github.com/apache/doris/pull/36145) - -- 修复偶现的聚合扩展规划报错输入输出不匹配的问题。[#36207](https://github.com/apache/doris/pull/36207) - -- 修复偶现的 `<=>` 被错误转换为 `=` 的问题。[#36521](https://github.com/apache/doris/pull/36521) - -### 查询执行 - -- 修复 Pipeline 引擎上达到限定的行数且内存没有释放时查询被挂起的问题。 [#35746](https://github.com/apache/doris/pull/35746) - -- 修复当设置 `enable_decimal256 =true` 且查询优化器回退到旧版本时 BE 发生 Core 的问题。[#35731](https://github.com/apache/doris/pull/35731) - -### 物化视图 - -- 修复构建异步物化视图指定 store_row_column 属性,be core 的问题。 - -- 修复构建异步物化视图指定 storage_medium 不生效的问题。 - -- 修复基表删除后,异步物化视图 show partitions 报错的问题。 - -- 修复异步物化视图引起备份恢复异常的问题。 - -- 修复分区改写可能导致错误结果的问题。 - -### 半结构化数据分析 - -- 修复带有空 Key 的 VARIANT 类型发生 Core 的问题。[#35671](https://github.com/apache/doris/pull/35671) - -- Bitmap 索引和 BloomFilter 索引不应支持轻量级索引变更。[#35225](https://github.com/apache/doris/pull/35225) - -### 主键模型 - -- 修复在有部分列更新导入的情况下发生异常重启,可能会产生重复 Key 的问题。[#35678](https://github.com/apache/doris/pull/35678) - -- 修复在内存紧张时发生 Clone 时 BE 可能会发生 Core 的问题。[#34702](https://github.com/apache/doris/pull/34702) - -### 湖仓一体 - -- 修复创建 Hive 表时无法使用完全限定名(如 `ctl.db.tbl`)的问题。 [#34984](https://github.com/apache/doris/pull/34984) - -- 修复 Refresh 操作时 Hive Metastore 连接未关闭的问题。[#35426](https://github.com/apache/doris/pull/35426) - -- 修复从 2.0.x 升级到 2.1.x 时可能的元数据回放问题。 [#35532](https://github.com/apache/doris/pull/35532) - -- 修复 TVF 表函数无法读取空 Snappy 压缩文件的问题。[#34926](https://github.com/apache/doris/pull/34926) - -- 修复无法读取具有无效最小/最大列统计信息的 Parquet 文件的问题。[#35041](https://github.com/apache/doris/pull/35041) - -- 修复 Parquet/ORC Reader 中无法处理带有 null-aware 函数下推谓词的问题。[#35335](https://github.com/apache/doris/pull/35335) - -- 修复创建 Hive 表时分区列顺序的问题。 [#35347](https://github.com/apache/doris/pull/35347) - -- 修复当分区值包含空格时无法将 Hive 表写入 S3 的问题。 [#35645](https://github.com/apache/doris/pull/35645) - -- 修复 Doris 写入 Parquet 格式 Hive 表无法被 Hive 读取的问题。 [#34981](https://github.com/apache/doris/pull/34981) - -- 修复 Hive 表 Schema 变更后无法读取 ORC 文件的问题。[#35583](https://github.com/apache/doris/pull/35583) - -- 修复了部分情况下,启用 Hive Metastore Listener 后 FE 无法启动的问题。[#36533](https://github.com/apache/doris/pull/36533) - -- 修复由 Hadoop FS 缓存引起的 FE OOM 问题。[#36403](https://github.com/apache/doris/pull/36403) - -- 修复写出 Parquet 格式文件写出 Row Group 过小的问题。[#36042](https://github.com/apache/doris/pull/36042) [#36143](https://github.com/apache/doris/pull/36143) - -- 修复 Paimon 表 Schema 变更后无法通过 JNI 读取 Paimon 表的问题。[#35309](https://github.com/apache/doris/pull/35309) - -- 修复 Paimon 表 Schema 变更后由于表字段长度判断错误导致无法读取的问题。 [#36049](https://github.com/apache/doris/pull/36049) - -- 修复了读取 Iceberg 中的时间戳列类型时的时区问题。 [#36435](https://github.com/apache/doris/pull/36435) - -- 修复了 Iceberg 表上的日期时间转换错误和数据路径错误的问题。[#35708](https://github.com/apache/doris/pull/35708) - -- 修复阿里云 OSS Endpoint 不正确的问题。[#34907](https://github.com/apache/doris/pull/34907) - -- 修复了大量文件导致的查询性能下降问题。[#36431](https://github.com/apache/doris/pull/36431) - -- 允许用户定义的属性通过表函数传递给 S3 SDK。[#35515](https://github.com/apache/doris/pull/35515) - -### 数据导入 - -- 修复 `CANCEL LOAD` 命令不生效的问题。[#35352](https://github.com/apache/doris/pull/35352) - -- 修复导入事务 Publish 阶段空指针错误导致导入事务无法完成的问题。[#35977](https://github.com/apache/doris/pull/35977) - -- 修复 bRPC 通过 HTTP 发送大数据文件序列化的问题。 [#36169](https://github.com/apache/doris/pull/36169) - -### 数据管控 - -- 修复了在将 DDL 或 DML 转发到主 FE 后,ConnectionContext 中的资源标签未设置的问题。 [#35618](https://github.com/apache/doris/pull/35618) - -- 修复了在启用 `lower_case_table_names` 时,Restore 表名不正确的问题。 [#35508](https://github.com/apache/doris/pull/35508) - -- 修复了清理无用数据或文件的管理命令不生效的问题。 [#35271](https://github.com/apache/doris/pull/35271) - -- 修复了无法从分区中删除存储策略的问题。[#35874](https://github.com/apache/doris/pull/35874) - -- 修复了向多副本自动分区表导入数据时的数据丢失问题。[#36586](https://github.com/apache/doris/pull/36586) - -- 修复了使用旧优化器查询或插入自动分区表时,表的分区列发生变化的问题。 [#36514](https://github.com/apache/doris/pull/36514) - -### 内存管理 - -- 修复日志中频繁报错 Cgroup meminfo 获取失败的问题。 [#35425](https://github.com/apache/doris/pull/35425) - -- 修复使用 BloomFilter 时 Segment 缓存大小不受控制导致进程内存异常增长的问题。[#34871](https://github.com/apache/doris/pull/34871) - -### 权限 - -- 修复开启表名大小写不敏感后,权限设置无效的问题。[#36557](https://github.com/apache/doris/pull/36557) - -- 修复通过非 Master FE 节点设置 LDAP 密码不生效的问题。[#36598](https://github.com/apache/doris/pull/36598) - -- 修复了无法检查 `SELECT COUNT(*)` 语句授权的问题。[#35465](https://github.com/apache/doris/pull/35465) - -### 其他 - -- 修复 MySQL 连接损坏情况下,客户端 JDBC 程序无法关闭连接的问题。 [#36616](https://github.com/apache/doris/pull/36616) - -- 修改 `SHOW PROCEDURE STATUS` 语句返回值与 MySQL 协议不兼容的问题。[#35350](https://github.com/apache/doris/pull/35350) - -- `libevent` 库强制开启 Keepalive 以解决部分情况下连接泄露的问题。 [#36088](https://github.com/apache/doris/pull/36088) - - -## 致谢 - -@133tosakarin、@924060929、@airborne12、@amorynan、@AshinGau、@BePPPower、@BiteTheDDDDt、@ByteYue、@caiconghui、@CalvinKirs、@cambyzju、@catpineapple、@cjj2010、@csun5285、@DarvenDuan、@dataroaring、@deardeng、@Doris-Extras、@eldenmoon、@englefly、@feiniaofeiafei、@felixwluo、@freemandealer、@Gabriel39、@gavinchou、@GoGoWen、@HappenLee、@hello-stephen、@hubgeter、@hust-hhb、@jacktengg、@jackwener、@jeffreys-cat、@Jibing-Li、@kaijchen、@kaka11chen、@Lchangliang、@liaoxin01、@LiBinfeng-01、@lide-reed、@luennng、@luwei16、@mongo360、@morningman、@morrySnow、@mrhhsg、@Mryange、@mymeiyi、@nextdreamblue、@platoneko、@qidaye、@qzsee、@seawinde、@shuke987、@sollhui、@starocean999、@suxiaogang223、@TangSiyang2001、@Thearas、@Vallishp、@w41ter、@wangbo、@whutpencil、@wsjz、@wuwenchi、@xiaokang、@xiedeyantu、@XieJiann、@xinyiZzz、@XuPengfei-1020、@xy720、@xzj7019、@yiguolei、@yongjinhou、@yujun777、@Yukang-Lian、@Yulei-Yang、@zclllyybb、@zddr、@zfr9527、@zgxme、@zhangbutao、@zhangstar333、@zhannngchen、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.5.md deleted file mode 100644 index 5a3751c819a01..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.5.md +++ /dev/null @@ -1,394 +0,0 @@ ---- -{ - "title": "Release 2.1.5", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.1.5 版本已于 2024 年 7 月 24 日正式发布。2.1.5 版本在湖仓一体、多表物化视图、半结构化数据分析等方面进行了全面更新及改进,同时在倒排索引、查询优化器、查询引擎、存储管理等 10 余方向上完成了若干问题修复,欢迎大家下载使用。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 行为变更 - -- JDBC Catalog 的默认连接池大小从 10 调整为 30。[#37023](https://github.com/apache/doris/pull/37023) - -- 创建 JDBC Catalog 时,参数 `connection_pool_max_size` 的默认值改为 30,以避免高并发场景下连接池耗尽的问题。 - -- 将系统的保留内存的最小值,即 `low water mark` 调整为 `min (6.4G, MemTotal * 5%)`,以更好地防止 BE 出现 OOM 问题。 - -- 修改了单请求多个语句的处理逻辑,当客户端未设置 `CLIENT_MULTI_STATEMENTS` 标志位时,将仅返回最后一个语句的结果,而非所有语句结果。 - -- 不再允许直接更改异步物化视图的数据。[#37129](https://github.com/apache/doris/pull/37129) - -- 增加会话变量 `use_max_length_of_varchar_in_ctas`,用于控制 CTAS 时 VARCHAR 和 CHAR 类型长度的生成行为。默认值是 true。当设置为 false 时,使用推导出的 VARCHAR 长度,而不是使用最大长度。[#37284](https://github.com/apache/doris/pull/37284) - -- 统计信息收集,默认开启了通过文件大小预估 Hive 表行数的功能。[#37694](https://github.com/apache/doris/pull/37694) - -- 默认开启异步物化视图透明改写机制。[#35897](https://github.com/apache/doris/pull/35897) - -- 透明改写利用分区物化视图,如果分物物化视图部分分区失效,默认行为是将所有基础表与物化视图联合,以保证查询数据的正确性。 [#35897](https://github.com/apache/doris/pull/35897) - -## 新功能 - -### 湖仓一体 - -- 会话变量 `read_csv_empty_line_as_null` 用于控制在读取 CSV 格式文件时,是否忽略空行。默认情况下忽略空行,当设置为 true 时,空行将被读取为所有列均为 Null 的行。[#37153](https://github.com/apache/doris/pull/37153) - - - 更多信息,请参考[文档](https://doris.apache.org/docs/lakehouse/datalake-analytics/hive?_highlight=compress_type)。 - -- 新增兼容 Presto 的复杂类型输出格式。通过设置 `set serde_dialect="presto"`,可以控制复杂类型的输出格式 与 Presto 一致,用于平滑迁移 Presto 业务。[#37253](https://github.com/apache/doris/pull/37253) - -​ - -### 多表物化视图 -- 支持在构建物化视图中使用非确定性函数。[#37651](https://github.com/apache/doris/pull/37651) - -- 支持原子替换异步物化视图定义。[#37147](https://github.com/apache/doris/pull/37147) - -- 支持通过 `show create materialized view` 查看异步物化视图创建语句。 [#37125](https://github.com/apache/doris/pull/37125) - -- 支持对多维聚合查询的透明改写。[#37436](https://github.com/apache/doris/pull/37436) - -- 支持对非聚合物化视图的聚合查询进行透明改写。 [#37497](https://github.com/apache/doris/pull/37497) - -- 支持使用 Key 列,对查询中的 DISTINCT 聚合做透明改写。[#37651](https://github.com/apache/doris/pull/37651) - -- 支持对物化视图进行分区,通过使用 `date_trunc` 对分区进行汇总。[#31812](https://github.com/apache/doris/pull/31812) [#35562](https://github.com/apache/doris/pull/35562) - -- 支持分区表值函数(TVF) [#36479](https://github.com/apache/doris/pull/36479) - -### 半结构化数据分析 - -- 使用 VARIANT 类型的表支持部分列更新。 [#34925](https://github.com/apache/doris/pull/34925) - -- 支持默认开启 PreparedStatement。 [#36581](https://github.com/apache/doris/pull/36581) - -- VARIANT 类型支持导出为 CSV 格式。[#37857](https://github.com/apache/doris/pull/37857) - -- 支持 `explode_json_object` 函数,用于将 JSON Object 行转列。 [#36887](https://github.com/apache/doris/pull/36887) - -- ES Catalog 将 ES 的 NESTED 或者 OBJECT 类型映射成 Doris JSON 类型。[#37101](https://github.com/apache/doris/pull/37101) - -- 默认情况下,对于具有指定分词器的倒排索引,默认开启 `support_phrase` 以提升 `match_phrase` 系列查询性能。[#37949](https://github.com/apache/doris/pull/37949) - -### 查询优化器 - -- 支持 `explain DELETE FROM` 语句。[#37100](https://github.com/apache/doris/pull/37100) - -- 支持常量表达式参数的 Hint 形式。[#37988](https://github.com/apache/doris/pull/37988) - -### 内存管理 - -- 增加了 HTTP API 以清除缓存。 [#36599](https://github.com/apache/doris/pull/36599) - -### 权限管理 - -- 支持对表值函数(TVF)中的资源进行鉴权。 [#37132](https://github.com/apache/doris/pull/37132) - -## 改进提升 - -### 湖仓一体 - -- 将 Paimon 升级至 0.8.1 版本。 - -- 修复在部分情况下,查询 Paimon 表时导致 `org.apache.commons.lang.StringUtils` 的问题。[#37512](https://github.com/apache/doris/pull/37512) - -- 支持腾讯云 LakeFS。 [#36891](https://github.com/apache/doris/pull/36891) - -- 优化了外部表查询时获取文件列表的超时时间。 [#36842](https://github.com/apache/doris/pull/36842) - -- 可通过会话变量 `fetch_splits_max_wait_time_ms` 进行设置 - -- 改进了 SQLServer JDBC Catalog 的默认连接逻辑。 [#36971](https://github.com/apache/doris/pull/36971) - - - 默认情况下,不干预连接加密设置。仅当 `force_sqlserver_jdbc_encrypt_false` 设置为 true 时,才会强制在 JDBC URL 中添加 `encrypt=false` 以减少认证错误,从而提供更灵活的控制加密行为的能力。 - -- Hive 表的 `show create table` 语句增加序列化/反序列化。[#37096](https://github.com/apache/doris/pull/37096) - -- FE 端 Hive 表列表默认缓存时间由 1 天改为 4 小时 - -- 数据导出(Export/Outfile)支持指定 Parquet 和 ORC 的压缩格式。 - - - 更多信息,请参考[文档](../../sql-manual/sql-statements/data-modification/load-and-export/EXPORT.md)。 - -- 当使用 CTAS+TVF 创建表时,TVF 中的分区列将被自动映射为 Varchar(65533)而非 String,以便该分区列能够作为内表的分区列使用。 [#37161](https://github.com/apache/doris/pull/37161) - -- 优化 Hive 写入操作元数据的访问次数。[#37127](https://github.com/apache/doris/pull/37127) - -- ES Catalog 支持将 NESTED/OBJECT 类型映射到 Doris 的 JSON 类型。[#37182](https://github.com/apache/doris/pull/37182) - -- 优化使用低版本 OBJECT 驱动连接 Oracle 时的报错信息。[#37634](https://github.com/apache/doris/pull/37634) - -- 当 Hudi 表 Incremental Read 返回空集时,Doris 同样返回空集而非报错。[#37636](https://github.com/apache/doris/pull/37634) - -- 修复部分情况下内外表关联查询可能导致 FE 超时的问题。[#37757](https://github.com/apache/doris/pull/37757) - -- 修复了在从旧版本升级到新版本时,如果开启了 Hive Metastore Even Listener 情况下,可能出现 FE 元数据回放错误的问题。 [#37757](https://github.com/apache/doris/pull/37757) - - - -### 多表物化视图 - -- 创建异步物化视图时,支持自动选择 Key 列。 [#36601](https://github.com/apache/doris/pull/36601) - -- 异步物化视图分区刷新支持定义中使用 `date_trunc` 函数。[#35562](https://github.com/apache/doris/pull/35562) - -- 嵌套物化视图中,当下层命中聚合上卷改写后,上层现在依然可以继续进行透明改写。 [#37651](https://github.com/apache/doris/pull/37651) - -- 当 Schema Change 不影响异步物化视图数据正确性时,异步物化视图保持可用状态。 [#37122](https://github.com/apache/doris/pull/37122) - -- 提升了透明改写的规划速度。[#37935](https://github.com/apache/doris/pull/37935) - -- 计算异步物化视图可用性时,不再考虑当前的刷新状态。[#36617](https://github.com/apache/doris/pull/36617) - -### 半结构化数据管理 - -- 通过采样优化 DESC 查看 VARIANT 子列的性能。 [#37217](https://github.com/apache/doris/pull/37217) - -- 行存 `page_size` 默认从 4K 调到 16K 压缩率提升 30%,而且支持表级别可配置。 - -- JSON 类型支持 Key 为空的特殊 JSON 数据。 [#36762](https://github.com/apache/doris/pull/36762) - -### 倒排索引 - -- 减少倒排索引 Exists 调用避免对象存储访问延迟。[#36945](https://github.com/apache/doris/pull/36945) - -- 优化倒排索引查询流程额外开销。[#35357](https://github.com/apache/doris/pull/35357) - -- 在物化视图中不创建倒排索引。 [#36869](https://github.com/apache/doris/pull/36869) - -### 查询优化器 - -- 当比较表达式两侧都是 Literal 时,String Literal 会尝试向另一侧的类型转换。 [#36921](https://github.com/apache/doris/pull/36921) - -- 重构了 VARIANT 类型的子路径下推功能,现在可以更好地支持复杂的下推场景。 [#36923](https://github.com/apache/doris/pull/36923) - -- 优化了物化视图代价计算的逻辑,能够更准确的选择代价更低的物化视图。 [#37098](https://github.com/apache/doris/pull/37098) - -- 提升了 SQL 中使用用户变量时的 SQL 缓存规划速度。 [#37119](https://github.com/apache/doris/pull/37119) - -- 优化了 NOT NULL 表达式的估行逻辑,当查询中存在 NOT NULL 时可以获得更好的性能。 [#37498](https://github.com/apache/doris/pull/37498) - -- 优化了 LIKE 表达式的 NULL 拒绝推导逻辑。[#37864](https://github.com/apache/doris/pull/37864) - -- 优化查询指定分区失败时的报错信息,可以更清楚看到是哪个表导致的问题。 [#37280](https://github.com/apache/doris/pull/37280) - -### 查询引擎 - -- 将某些场景下 BITMAP_UNION 算子的性能提升了 3 倍。 - -- 提升 Arrow Flight 在 ARM 环境下的读取性能。 - -- 优化了 `explode`、`explode_map`、`explode_json` 函数的执行性能。 - -### 数据导入 - -- 支持为 `INSERT INTO ... FROM TABLE VALUE FUNCTION` 语句设置 `max_filter_ratio` 参数。 - - - 更多信息,请参考[文档](../../data-operate/import/import-way/insert-into-manual) - -## Bug 修复 - -### 湖仓一体 - -- 修复部分情况下查询 Parquet 格式导致 BE 宕机的问题。[#37086](https://github.com/apache/doris/pull/37086) - -- 修复查询 Parquet 格式,BE 端打印大量日志的问题。[#37012](https://github.com/apache/doris/pull/37012) - -- 修复部分情况下 FE 端重复创建大量 FileSystem 对象的问题。[#37142](https://github.com/apache/doris/pull/37142) - -- 修复部分情况下,写入 Hive 后的事务信息未清理的问题。[#37172](https://github.com/apache/doris/pull/37172) - -- 修复部分情况下,Hive 表写入操作导致线程泄露的问题。[#37247](https://github.com/apache/doris/pull/37247) - -- 修复部分情况下,无法正确获取 Hive Text 格式行列分隔符的问题。[#37188](https://github.com/apache/doris/pull/37188) - -- 修复部分情况下,读取 lz4 压缩块时的并发问题。[#37187](https://github.com/apache/doris/pull/37187) - -- 修复部分情况下,Iceberg 表 `count(*)` 返回错误的问题。[#37810](https://github.com/apache/doris/pull/37810)。 - -- 修复部分情况下,创建基于 MinIO 的 Paimon Catalog 导致 FE 元数据回放错误的问题。[#37249](https://github.com/apache/doris/pull/37249) - -- 修复部分情况下使用 Ranger 创建 Catalog 客户端卡死的问题。 [#37551](https://github.com/apache/doris/pull/37551) - -### 多表物化视图 - -- 修复当基表增加新的分区时,可能导致的分区聚合上卷改写后结果错误的问题。 [#37651](https://github.com/apache/doris/pull/37651) - -- 修复关联的基表分区删除后,物化视图分区状态没有被置为不同步的问题。 [#36602](https://github.com/apache/doris/pull/36602) - -- 修复异步物化视图构建偶现的死锁问题。 [#37133](https://github.com/apache/doris/pull/37133) - -- 修复异步物化视图单次刷新大量分区时偶现的,报错 `nereids cost too much time` 问题。[#37589](https://github.com/apache/doris/pull/37589) - -- 修复创建异步物化视图时,如果最终的 Select List 中存在 Null Literal,则无法创建的问题。[#37281](https://github.com/apache/doris/pull/37281) - -- 修复单表物化视图,如果构建了聚合的物化视图,虽然改写成功,但是 CBO 没有选择的问题。 [#35721](https://github.com/apache/doris/pull/35721) [#36058](https://github.com/apache/doris/pull/36058) - -- 修复 Join 输入都是聚合的情况下,构建分区物化视图,分区推导失败的问题。[#34781](https://github.com/apache/doris/pull/34781) - -### 半结构化数据管理 - -- 修复 VARIANT 在并发/异常数据等特殊情况下的问题。[#37976](https://github.com/apache/doris/pull/37976) [#37839](https://github.com/apache/doris/pull/37839) [#37794](https://github.com/apache/doris/pull/37794) [#37674](https://github.com/apache/doris/pull/37674) [#36997](https://github.com/apache/doris/pull/36997) - -- 修复 VARIANT 用在不支持的 SQL 中 Coredump 的问题。 [#37640](https://github.com/apache/doris/pull/37640) - -- 修复 1.x 版本升级到 2.x 或者更高版本时因为 MAP 数据类型 Coredump 的问题。 [#36937](https://github.com/apache/doris/pull/36937) - -- 修复 ES Catalog 对 Array 的支持。 [#36936](https://github.com/apache/doris/pull/36936) - -### 倒排索引 - -- 修复倒排索引 v2 DROP INDEX 元数据没有删除的问题。 [#37646](https://github.com/apache/doris/pull/37646) - -- 修复字符串长度超过“ignore above”时查询准确性问题。 [#37679](https://github.com/apache/doris/pull/37679) - -- 修复索引大小统计的问题。 [#37232](https://github.com/apache/doris/pull/37232) [#37564](https://github.com/apache/doris/pull/37564) - -### 查询优化器 - -- 修复部分因为保留关键字而导致导入无法执行的问题。[#35938](https://github.com/apache/doris/pull/35938) - -- 修复了在创建表时 CHAR(255) 类型错误的记录为 CHAR(1) 的问题。 [#37671](https://github.com/apache/doris/pull/37671) - -- 修复了在相关子查询中的连接表达式为复杂表达式时返回错误结果的问题。[#37683](https://github.com/apache/doris/pull/37683) - -- 修复了 DECIMAL 类型分桶裁剪有可能错误的问题。[#38013](https://github.com/apache/doris/pull/38013) - -- 修复了部分场景下开启 Pipeline Local Shuffle 后,聚合算子计算结果错误的问题。[#38061](https://github.com/apache/doris/pull/38016) - -- 修复当聚合算子中存在相等的表达式时,可能出现的规划报错问题。[#36622](https://github.com/apache/doris/pull/36622) - -- 修复当聚合算子中存在 Lambda 表达式时,可能出现的规划报错问题。[#37285](https://github.com/apache/doris/pull/37285) - -- 修复了由窗口函数生成的字面量在优化为字面量时类型错误导致无法执行的问题。 [#37283](https://github.com/apache/doris/pull/37283) - -- 修复了聚合函数 `foreach combinator` 错误输出 Null 属性问题。[#37980](https://github.com/apache/doris/pull/37980) - - -- 修复了 acos 函数在参数为超越范围值的字面量时不能规划的问题。[#37996](https://github.com/apache/doris/pull/37996) - -- 修复当查询指定的同步物化视图时,显示指定查询分区导致规划报错的问题。[#36982](https://github.com/apache/doris/pull/36982) - -- 修复了在规划过程中偶尔出现 NPE 的问题。[#38024](https://github.com/apache/doris/pull/38024) - -### 查询引擎 - -- 修复 DELETE WHERE 语句中,在 DECIMAL 数据类型作为条件报错的问题。[#37801](https://github.com/apache/doris/pull/37801) - -- 修复查询执行结束,但是 BE 内存不释放的问题。[#37792](https://github.com/apache/doris/pull/37792) [#37297](https://github.com/apache/doris/pull/37297) - -- 修复在千级别 QPS 场景下,Audit Log 占用 FE 内存太多的问题。https://github.com/apache/doris/pull/37786 - -- 修复 sleep 函数在输入非法值时 BE Core 的问题。[#37681](https://github.com/apache/doris/pull/37681) - -- 修复执行过程中 `sync filter size meet error` 的问题。 [#37103](https://github.com/apache/doris/pull/37103) - -- 修复执行过程中,使用时区时结果不对的问题。[#37062](https://github.com/apache/doris/pull/37062) - -- 修复 `cast string` 到 `int` 时结果不对的问题。 [#36788](https://github.com/apache/doris/pull/36788) - -- 修复 Arrow Flight 协议在开启 Pipelinex 时查询报错的问题。 [#35804](https://github.com/apache/doris/pull/35804) - -- 修复 `cast string to date/datetime` 报错的问题。 [#35637](https://github.com/apache/doris/pull/35637) - -- 修复使用 `<=>` 做大表关联查询时 BE Core 的问题。 [#36263](https://github.com/apache/doris/pull/36263) - -### 存储管理 - -- 修复列更新写入时遇到 DELETE SIGN 数据不可见问题。[#36755](https://github.com/apache/doris/pull/36755) - -- 优化 Schema Change 期间 FE 的内存占用。[#36756](https://github.com/apache/doris/pull/36756) - -- 修复 BE 重启时事务没有 Abort 导致的 BE 下线卡住问题。[#36437](https://github.com/apache/doris/pull/36437) - -- 修复 NOT-NULL 到 NULL 类型变更的偶发报错问题。 [#36389](https://github.com/apache/doris/pull/36389) - -- 优化 BE 宕机时的副本修复调度。 [#36897](https://github.com/apache/doris/pull/36897) - -- 单个 BE 创建 Tablet 时支持 round-robin 选择磁盘。 [#36900](https://github.com/apache/doris/pull/36900) - -- 修复 Publish 慢导致的查询 -230 错误。 [#36222](https://github.com/apache/doris/pull/36222) - -- 优化 Partition Balance 的速度。 [#36976](https://github.com/apache/doris/pull/36976) - -- 使用 FD 数目和内存控制 Segment Cache 避免 FD 不足。 [#37035](https://github.com/apache/doris/pull/37035) - -- 修复 Clone 和 Alter 并发可能导致的副本丢失问题。 [#36858](https://github.com/apache/doris/pull/36858) - -- 修复不能调整列顺序问题。[#37226](https://github.com/apache/doris/pull/37226) - -- 禁止自增列的部分 Schema Change 操作。 [#37331](https://github.com/apache/doris/pull/37331) - -- 修复 Delete 操作报错不准确。 [#37374](https://github.com/apache/doris/pull/37374) - -- BE 侧 Trash 过期时间调整为一天。 [#37409](https://github.com/apache/doris/pull/37409) - -- 优化 Compaction 内存占用和调度。 [#37491](https://github.com/apache/doris/pull/37491) - -- 检查潜在的过大 Backup 导致 FE 重启的问题。[#37466](https://github.com/apache/doris/pull/37466) - -- 恢复动态分区删除策略以及交叉分区的行为到 2.1.3。[#37570](https://github.com/apache/doris/pull/37570) [#37506](https://github.com/apache/doris/pull/37506) - -- 修复 DELETE 谓词重部分 DECIMAL 报错问题。 [#37710](https://github.com/apache/doris/pull/37710) - -### 数据导入 - -- 修复导入时错误处理竞争导致的数据不可见问题。[#36744](https://github.com/apache/doris/pull/36744) - -- Stream Load 导入支持 `hhl_from_base64`。 [#36819](https://github.com/apache/doris/pull/36819) - -- 修复潜在的单表非常多 Tablet 导入失败时可能导致 FE OOM 的问题。 [#36944](https://github.com/apache/doris/pull/36944) - -- 修复 FE 主从切换时自增列可能重复的问题。[#36961](https://github.com/apache/doris/pull/36961) - -- 修复 INSERT INTO SELECT 自增列报错问题。 [#37029](https://github.com/apache/doris/pull/37029) - -- 降低数据下刷线程数,优化内存占用。 [#37092](https://github.com/apache/doris/pull/37092) - -- 优化 Routine Load 任务自动恢复和错误信息。 [#37371](https://github.com/apache/doris/pull/37371) - -- 增加 Routine Load 默认攒批大小。 [#37388](https://github.com/apache/doris/pull/37388) - -- 修复 Routine Load 在 Kafka EOF 过期的任务停止问题。[#37983](https://github.com/apache/doris/pull/37983) - -- 修复一流多表 Coredump。 [#37370](https://github.com/apache/doris/pull/37370) - -- 修复 Group Commit 内存估计不准导致的提前反压问题。[#37379](https://github.com/apache/doris/pull/37379) - -- 优化 Group Commit BE 侧线程占用。 [#37380](https://github.com/apache/doris/pull/37380) - -- 修复数据没有分区时没有错误 URL 的问题。 [#37401](https://github.com/apache/doris/pull/37401) - -- 修复导入时潜在的内存误操作问题。 [#38021](https://github.com/apache/doris/pull/38021) - -### 主键模型 - -- 降低主键表 Compaction 的内存占用。 [#36968](https://github.com/apache/doris/pull/36968) - -- 修复主键副本 Clone 失败时可能的重复数据问题。 [#37229](https://github.com/apache/doris/pull/37229) - -### 内存管理 - -- 修复 Jemalloc Cache 统计不准的问题。[#37464](https://github.com/apache/doris/pull/37464) - -- 修复在 K8s / CGroup 中不能正确获取内存大小的问题。 [#36966](https://github.com/apache/doris/pull/36966) - -### 权限管理 - -- 修复 Table Valued Function 引用 Resource 时没有鉴权的问题。 [#37132](https://github.com/apache/doris/pull/37132) - -- 修复 Show Role 语句中没有 Workload Group 权限的问题。 [#36032](https://github.com/apache/doris/pull/36032) - -- 修复创建 Row Policy 时,同时执行两条语句,导致 FE 重启失败的问题。[#37342](https://github.com/apache/doris/pull/37342) - -- 修复部分情况下,老版本升级后,因为 Row Policy 导致 FE 元数据回放失败的问题。[#37342](https://github.com/apache/doris/pull/37342) - -### 其他 - -- 修复计算节点参与内部表创建的问题。[#37961](https://github.com/apache/doris/pull/37961) - -- 修复 `enable_strong_read_consistency = true` 时从延迟问题。 [#37641](https://github.com/apache/doris/pull/37641) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.6.md deleted file mode 100644 index f3944b87220be..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.6.md +++ /dev/null @@ -1,515 +0,0 @@ ---- -{ - "title": "Release 2.1.6", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.6 版本已于 2024 年 9 月 10 日正式发布。**2.1.6 版本在湖仓一体、异步物化视图、半结构化数据管理持续升级改进,同时在查询优化器、执行引擎、存储管理、数据导入与导出以及权限管理等方面完成了若干修复。欢迎大家下载使用。 - -- 官网下载:https://doris.apache.org/download - -- GitHub 下载:https://github.com/apache/doris/releases/tag/2.1.6-rc04 - -## 行为变更 - -- 移除 `create repository` 命令中的 `delete_if_exists` 选项。[#38192](https://github.com/apache/doris/pull/38192) - -- 新增会话变量 `enable_prepared_stmt_audit_log`,用于控制 JDBC 预编译语句是否记录审计日志,默认不记录。[#38624](https://github.com/apache/doris/pull/38624) [#39009](https://github.com/apache/doris/pull/39009) - -- 采用文件描述符限制和内存限制来管理 Segment Cache。[#39689](https://github.com/apache/doris/pull/39689) - -- 当 `sys_log_mode` 配置项设置为 `BRIEF` 时,在日志中增加文件位置信息,以提供更详细的上下文。[#39571](https://github.com/apache/doris/pull/39571) - -- 将会话变量 `max_allowed_packet` 的默认值调整为 16MB,提高数据传输限制。[#38697](https://github.com/apache/doris/pull/38697) - -- 在单次请求中,若包含多个 SQL 语句,各语句间必须使用分号进行分隔,以增强语句的清晰度和执行效率。[#38670](https://github.com/apache/doris/pull/38670) - -- 现在支持 SQL 语句以分号开始,提供更灵活的语句书写方式。[#39399](https://github.com/apache/doris/pull/39399) - -- 在执行如 `show create table` 等语句时,类型格式与 MySQL 保持一致,提升与 MySQL 的兼容性。[#38012](https://github.com/apache/doris/pull/38012) - -- 当新优化器规划查询超时后,不再回退到旧优化器,以避免潜在的性能下降问题。[#39499](https://github.com/apache/doris/pull/39499) - -## 新功能 - -### Lakehouse - -- 实现 Iceberg 表的写回功能。 - - - 更多信息,请查看文档数据湖构建-[Iceberg](../../lakehouse/datalake-building/iceberg-build) - -- 增强 SQL 拦截规则,支持对外表的拦截处理。 - - - 更多信息,请查看文档查询管理-[SQL 拦截](../../admin-manual/query-admin/sql-interception) - -- 新增系统表`file_cache_statistics`,用于查看 BE 节点的数据缓存性能指标。 - - - 更多信息,请查看文档系统表-[file_cache_statistics](../../admin-manual/system-tables/information_schema/file_cache_statistics) - -### 异步物化视图 - -- 支持在 Insert 中进行透明改写。[#38115](https://github.com/apache/doris/pull/38115) - -- 支持对查询中存在 VARIANT 类型时的透明改写。[#37929](https://github.com/apache/doris/pull/37929) - -### 半结构化数据管理 - -- 支持 ARRAY MAP 类型到 JSON 类型的 CAST 转换功能。[#36548](https://github.com/apache/doris/pull/36548) - -- 引入`json_keys`函数,用于提取 JSON 中的键名。[#36411](https://github.com/apache/doris/pull/36411) - -- 支持在导入 JSON 时指定`json path`$``[#38213](https://github.com/apache/doris/pull/38213) - -- ARRAY / MAP / STRUCT 类型支持`replace_if_not_null`[#38304](https://github.com/apache/doris/pull/38304) - -- 允许调整 ARRAY / MAP / STRUCT 类型的列顺序。[#39210](https://github.com/apache/doris/pull/39210) - -- 新增`multi_match`函数,支持在多个字段中匹配关键词,并利用倒排索引加速查询。[#37722](https://github.com/apache/doris/pull/37722) - -### 查询优化器 - -- 完善 MySQL 协议返回列的信息,包括原始数据库名、表名、列名和别名。[#38126](https://github.com/apache/doris/pull/38126) - -- 增强聚合函数`group_concat`,支持同时使用`order by`和`distinct`进行复杂数据聚合。[#38080](https://github.com/apache/doris/pull/38080) - -- 改进了 SQL 缓存机制,支持通过注释区分不同的查询以复用缓存结果。[#40049](https://github.com/apache/doris/pull/40049) - -- 增强分区裁剪功能,支持在过滤条件中使用`date_trunc`和`date`函数。[#38025](https://github.com/apache/doris/pull/38025) [#38743](https://github.com/apache/doris/pull/38743) - -- 允许在表别名前使用数据库名作为限定名前缀。[#38640](https://github.com/apache/doris/pull/38640) - -- 支持 Hint 格式注释。[#39113](https://github.com/apache/doris/pull/39113) - -### 执行引擎 - -- `Group concat`函数现支持`distinct`和`order by`选项。[#38744](https://github.com/apache/doris/pull/38744) - -### Others - -- 新增系统表`table_properties`,便于用户查看和管理表的各项属性。 - - - 更多信息,请查看文档 [table_properties](../../admin-manual/system-tables/information_schema/table_properties/) -- 新增 FE 中死锁和慢锁检测功能。 - - - 更多信息,请查看文档 [FE 锁管理](../../admin-manual/trouble-shooting/frontend-lock-manager) - -## 改进提升 - -### 湖仓一体 - -- 革新外表元数据缓存机制。 - - - 更多信息,请查看文档 [元数据缓存](../../lakehouse/metacache)。 - -- 新增会话变量`keep_carriage_return`,默认关闭。读取 Hive Text 格式表时,默认将`\r\n`与`\n`均视为换行符。[#38099](https://github.com/apache/doris/pull/38099) - -- 优化 Parquet / ORC 文件读写内存统计。[#37257](https://github.com/apache/doris/pull/37257) - -- Paimon 表支持 IN/ NOT IN 谓词下推。[#38390](https://github.com/apache/doris/pull/38390) - -- 升级优化器,支持 Hudi 表的 Time Travel 语法。[#38591](https://github.com/apache/doris/pull/38591) - -- Kerberos 认证流程优化,提升安全认证效率与稳定性。[#37301](https://github.com/apache/doris/pull/37301) - -- 支持 Rename column 操作后读取 Hive 表。[#38809](https://github.com/apache/doris/pull/38809) - -- 提升外表分区列读取性能。[#38810](https://github.com/apache/doris/pull/38810) - -- 优化外表查询规划,优化数据分片合并策略,有效避免小分片对查询性能的影响。[#38964](https://github.com/apache/doris/pull/38964) - -- SHOW CREATE DATABASE / TABLE 新增 Location 等属性展示。[#39644](https://github.com/apache/doris/pull/39644) - -- MaxCompute Catalog 扩展支持复杂类型。[#39822](https://github.com/apache/doris/pull/39822) - -- 优化文件缓存加载策略,通过异步加载方式避免 BE 启动时间过长的问题。[#39036](https://github.com/apache/doris/pull/39036) - -- 升级文件缓存淘汰策略,有效管理长时间占用锁的资源。[#39721](https://github.com/apache/doris/pull/39721) - -### 异步物化视图 - -- 支持小时、周及季度级别的分区上卷构建。[#37678](https://github.com/apache/doris/pull/37678) - -- 基于 Hive 外表的物化视图,在刷新前自动更新元数据缓存,以保证每次刷新可以获取最新数据。[#38212](https://github.com/apache/doris/pull/38212) - -- 通过批量获取元数据,优化存算分离模式下的透明改写规划性能。[#39301 ](https://github.com/apache/doris/pull/39301) - -- 通过禁止重复枚举,进一步提升透明改写的规划性能。[#39541 ](https://github.com/apache/doris/pull/39541) - -- 优化基于 Hive 外表分区刷新物化视图的透明改写性能。[#38525](https://github.com/apache/doris/pull/38525) - -### 半结构化数据管理 - -- 优化 TOPN 查询内存分配,显著提升查询性能。[#37429](https://github.com/apache/doris/pull/37429) - -- 优化倒排索引字符串处理性能。[#37395](https://github.com/apache/doris/pull/37395) - -- 优化倒排索引在 MOW 表中的性能。[#37428](https://github.com/apache/doris/pull/37428) - -- 建表时支持指定行存 `page_size`,以控制压缩效果。[#37145](https://github.com/apache/doris/pull/37145) - -### 查询优化器 - -- 调整 Mark Join 行数估计算法,提高基数估算准确性。[#38270](https://github.com/apache/doris/pull/38270) - -- 优化 Semi / Anti Join 代价估计算法,能够正确选择最佳 Join 顺序。[#37951](https://github.com/apache/doris/pull/37951) - -- 调整部分列无统计信息情况下的过滤估计算法,使估算更精准。[#39592](https://github.com/apache/doris/pull/39592) - -- 改进 Set Operation 算子 Instance 计算逻辑,防止在极端情况下并行度不足的问题。[#39999](https://github.com/apache/doris/pull/39999) - -- 优化 Bucket Shuffle 使用策略,数据打散不充分时也能获得更好的性能。[#36784](https://github.com/apache/doris/pull/36784) - -- 窗口函数数据提前过滤,支持单投影中存在多窗口函数的情况。[#38393](https://github.com/apache/doris/pull/38393) - -- 过滤条件含 `NullLiteral` 时,智能折叠为 False,转换为 `EmptySet`,减少不必要的数据扫描量。[#38135](https://github.com/apache/doris/pull/38135) - -- 扩大谓词推导适用范围,在特定模式的查询下能够大幅减少数据扫描量。[#37314](https://github.com/apache/doris/pull/37314) - -- 在分区裁剪中支持部分短路计算逻辑,以提升分区裁剪性能。在特定场景下,性能提升超过 100%。[#38191](https://github.com/apache/doris/pull/38191) - -- 在用户变量中,支持计算任意的标量函数。[#39144 ](https://github.com/apache/doris/pull/39144) - -- 当查询中存在别名冲突时,报错信息能够保持与 MySQL 一致。[#38104 ](https://github.com/apache/doris/pull/38104) - -### 执行引擎 - -- 实现 AggState 从 2.1 到 3.x 版本的兼容,并解决了 coredump 问题。[#37104](https://github.com/apache/doris/pull/37104) - -- 重构无 Join 操作时的 Local Shuffle 策略选择机制。[#37282](https://github.com/apache/doris/pull/37282) - -- 将内部表查询的 scanner 调整为异步模式,以防止查询内部表时出现卡顿。[#38403](https://github.com/apache/doris/pull/38403) - -- 优化 Join 算子在构建 Hash 表时的 Block Merge 流程。[#37471](https://github.com/apache/doris/pull/37471) - -- 缩短 MultiCast 持有锁的时间。[#37462](https://github.com/apache/doris/pull/37462) - -- 优化 gRPC 的 keepAliveTime 设置并增加了链接监测机制,降低了因 RPC 错误导致的查询失败率。[#37304](https://github.com/apache/doris/pull/37304) - -- 当内存超出限制时,将清理 `jemalloc` 中的所有 Dirty Pages。[#37164](https://github.com/apache/doris/pull/37164) - -- 提升 `aes_encrypt`/`decrypt` 函数对常量类型的处理效率。[#37194](https://github.com/apache/doris/pull/37194) - -- 加快 `json_extract` 函数对常量数据的处理速度。[#36927](https://github.com/apache/doris/pull/36927) - -- 提高 `ParseUrl` 函数处理常量数据的性能。[#36882](https://github.com/apache/doris/pull/36882) - -### 存储管理 - -**备份恢复 / 跨集群同步** - -- Restore 功能现已支持删除多余的 Tablet 和分区选项。[#39363](https://github.com/apache/doris/pull/39363) - -- 在创建 Repository 时,支持检查存储连通性。[#39538](https://github.com/apache/doris/pull/39538) - -- Binlog 支持 Drop 表操作,使 CCR 能够支持 Drop 表的增量同步。[#38541](https://github.com/apache/doris/pull/38541) - -**Compaction** - -- 改进高优 Compaction 任务不受并发控制限制的问题。[#38189](https://github.com/apache/doris/pull/38189) - -- 根据数据特性自动调整 Compaction 的内存消耗。[#37486](https://github.com/apache/doris/pull/37486) - -- 修复顺序数据优化策略可能引发的聚合表或 MOR UNIQUE 表数据准确性问题。[#38299](https://github.com/apache/doris/pull/38299) - -- 优化补副本期间 Compaction 选择 rowset 的策略,以避免触发 -235 错误。[#39262](https://github.com/apache/doris/pull/39262) - -**Merge-on-Write** - -- 解决了列更新和 Compaction 并发时列更新慢的问题。[#38682](https://github.com/apache/doris/pull/38682) - -- 修复一次导入大量数据时,Segcompaction 可能导致 MOW 数据不正确的问题。[#38992](https://github.com/apache/doris/pull/38992) [#39707](https://github.com/apache/doris/pull/39707) - -- 解决 BE 重启后,可能导致列更新数据丢失的问题。[#39035](https://github.com/apache/doris/pull/39035) - -**其他** - -- 增加了 FE 配置,用于控制冷热分层下查询是否优先访问本地数据的副本。[#38322](https://github.com/apache/doris/pull/38322) - -- 解决了过期的 BE 汇报消息未包含新创建 Tablet 的问题。[#38839 ](https://github.com/apache/doris/pull/38839)[#39605](https://github.com/apache/doris/pull/39605) - -- 优化副本调度优先级策略,优先调度缺少数据的副本。[#38884](https://github.com/apache/doris/pull/38884) - -- 对于有未完成 ALTER JOB 的 Tablet,不进行均衡调度。[#39202](https://github.com/apache/doris/pull/39202) - -- List 分区方式的表现支持修改分桶数。[#39688](https://github.com/apache/doris/pull/39688) - -- 优先选择在线的磁盘服务进行查询。[#39654](https://github.com/apache/doris/pull/39654) - -- 改进了同步物化视图的 Base 表不支持删除时的提示信息。[#39857](https://github.com/apache/doris/pull/39857) - -- 改进了单列超过 4G 时的报错信息。[#39897](https://github.com/apache/doris/pull/39897) - -- 修复了 Insert 语句遇到 Plan 错误时未正确中止事务的问题。[#38260](https://github.com/apache/doris/pull/38260) - -- 修复了 SSL 链接关闭时的异常问题。[#38677](https://github.com/apache/doris/pull/38677) - -- 修复了使用 Label 中止事务时未持有表锁的问题。[#38842](https://github.com/apache/doris/pull/38842) - -- 修复了 Gson Pretty 导致 Image 过大的问题。[#39135](https://github.com/apache/doris/pull/39135) - -- 修复了 CREAT TABLE 语句在新优化器下未检查 Bucket 为 0 的问题。[#38999](https://github.com/apache/doris/pull/38999) - -- 修复了 DELETE 条件谓词中包含中文列时报错的问题。[#39500](https://github.com/apache/doris/pull/39500) - -- 修复了分区均衡模式下频繁均衡 Tablet 的问题。[#39606](https://github.com/apache/doris/pull/39606) - -- 修复了分区丢失 Storage Policy 属性的问题。[#39677](https://github.com/apache/doris/pull/39677) - -- 修复了事务内导入多个表时统计信息不正确的问题。[#39548](https://github.com/apache/doris/pull/39548) - -- 修复了 Random 分桶表删除时报错的问题。[#39830](https://github.com/apache/doris/pull/39830) - -- 修复了 UDF 不存在导致 FE 无法启动的问题。[#39868](https://github.com/apache/doris/pull/39868) - -- 修复了 FE 主从 Last Failed Version 不一致的问题。[#39947](https://github.com/apache/doris/pull/39947) - -- 修复了 Schema Change Job 被取消时,相关 Tablet 可能仍处于 Schema Change 状态的问题。[#39327](https://github.com/apache/doris/pull/39327) - -- 修复了单个语句修改类型和列顺序 SC 时出现的报错问题。[#39107](https://github.com/apache/doris/pull/39107) - -### 数据导入 - -- 改进了导入发生 -238 错误时的错误信息提示。[#39182](https://github.com/apache/doris/pull/39182) - -- 实现在 Restore 分区时,其他分区可以同时进行导入。[#39915](https://github.com/apache/doris/pull/39915) - -- 优化了 Group Commit FE 选择 BE 的策略。[#37830](https://github.com/apache/doris/pull/37830) [#39010](https://github.com/apache/doris/pull/39010) - -- 对于一些常见的 Stream Load 错误信息,避免了程序栈的打印,简化了错误处理。[#38418](https://github.com/apache/doris/pull/38418) - -- 改进下线的 BE 可能影响导入出错的问题。[#38256](https://github.com/apache/doris/pull/38256) - -### 权限管理 - -- 优化了开启 Ranger 鉴权插件后的访问性能。[#38575](https://github.com/apache/doris/pull/38575) - -- 优化了 Refresh Catalog / Database / Table 操作的权限策略,用户仅需 SHOW 权限即可执行此操作。[#39008](https://github.com/apache/doris/pull/39008) - -## Bug 修复 - -### 湖仓一体 - -- 修复切换 Catalog 时可能出现的数据库找不到问题。[#38114](https://github.com/apache/doris/pull/38114) - -- 解决了读取 S3 上不存在的数据时出现的异常报错。[#38253](https://github.com/apache/doris/pull/38253) - -- 修正导出操作时,指定异常路径可能导致导出位置异常的问题。[#38602](https://github.com/apache/doris/pull/38602) - -- 修复 Paimon 表时间列时区问题。[#37716](https://github.com/apache/doris/pull/37716) - -- 临时关闭 Parquet PageIndex 功能以避免部分错误行为。 - -- 修复外表查询时,错误选取黑名单中 Backend 节点的问题。[#38984](https://github.com/apache/doris/pull/38984) - -- 解决读取 Parquet Struct 列类型中缺失子列导致查询错误的问题。[#39192](https://github.com/apache/doris/pull/39192) - -- 修复 JDBC Catalog 的谓词下推问题。[#39082](https://github.com/apache/doris/pull/39082) - -- 修正 Parquet 格式读取时,历史格式导致查询结果错误的问题。[#39375](https://github.com/apache/doris/pull/39375) - -- 增强了 Oracle JDBC Catalog 对 OJDBC6 驱动的兼容性。[#39408](https://github.com/apache/doris/pull/39408) - -- 解决了 Refresh Catalog/Database/Table 操作可能导致的 FE 内存泄漏问题。[#39186](https://github.com/apache/doris/pull/39186) [#39871](https://github.com/apache/doris/pull/39871) - -- 修复了 JDBC Catalog 在某些情况下的线程泄漏问题。 [#39666 ](https://github.com/apache/doris/pull/39666)[#39582](https://github.com/apache/doris/pull/39582) - -- 修复开启 Hive Metastore 事件订阅后,可能出现事件处理失败的问题。[#39239](https://github.com/apache/doris/pull/39239) - -- 禁止读取自定义 Escape CHAR 和 NULL Format 的 Hive Text 格式表,防止数据错误。[#39869](https://github.com/apache/doris/pull/39869) - -- 修复某些情况下,无法访问通过 Iceberg API 创建的 Iceberg 表的问题。[#39203](https://github.com/apache/doris/pull/39203) - -- 修复无法读取存储在开启高可用的 HDFS 集群上的 Paimon 表的问题。[#39876](https://github.com/apache/doris/pull/39876) - -- 修复开启文件缓存后,读取 Paimon 表 Deletion Vector 可能导致错误的问题。[#39875](https://github.com/apache/doris/pull/39875) - -- 修复某些情况下读取 Parquet 可能导致死锁的问题 [#39945](https://github.com/apache/doris/pull/39945) - -### 异步物化视图 - -- 修复无法在 Follower FE 上使用 `show create materialized view` 命令的问题。[#38794](https://github.com/apache/doris/pull/38794) - -- 统一异步物化视图在元数据中的对象类型,使其在数据工具中正常显示。[#38797](https://github.com/apache/doris/pull/38797) - -- 修复嵌套异步物化视图总是进行全量刷新的问题。[#38698](https://github.com/apache/doris/pull/38698) - -- 修正 Cancel 任务在重启 FE 后状态可能显示为 running 的问题。 [#39424](https://github.com/apache/doris/pull/39424) - -- 修复错误使用上下文,导致刷新物化视图任务可能非预期失败的问题。[#39690](https://github.com/apache/doris/pull/39690) - -- 修复基于外表创建异步物化视图时,VARCHAR 类型因长度不合理导致写入失败的问题。[#37668](https://github.com/apache/doris/pull/37668) - -- 修复 FE 重启或 Catalog 重建后,基于外表的异步物化视图可能失效的问题。[#39355](https://github.com/apache/doris/pull/39355) - -- 禁止 List 分区的物化视图使用分区上卷,以防止生成错误数据。[#38124](https://github.com/apache/doris/pull/38124) - -- 修复在聚合上卷透明改写时,SELECT List 中存在字面量导致的结果错误问题。[#38958](https://github.com/apache/doris/pull/38958) - -- 修复当查询中存在形如`a = a`的过滤条件时,透明改写可能出错的问题。[#39629](https://github.com/apache/doris/pull/39629) - -- 修复透明改写直查外表无法成功的问题。[#39041](https://github.com/apache/doris/pull/39041) - -### 半结构化数据管理 - -- 删除老优化器上 `PreparedStatement` 的支持。[#39465](https://github.com/apache/doris/pull/39465) - -- 修复 JSON 转义字符处理的问题。[#37251 ](https://github.com/apache/doris/pull/37251) - -- 修复 JSON 字段重复处理的问题。 [#38490](https://github.com/apache/doris/pull/38490) - -- 修复部分 ARRAY MAP 函数的问题。[#39307](https://github.com/apache/doris/pull/39307) [ #39699 ](https://github.com/apache/doris/pull/39699) [#39757](https://github.com/apache/doris/pull/39757) - -- 修复倒排索引查询和 LIKE 查询复杂组合的问题。[#36687](https://github.com/apache/doris/pull/36687) - -### 查询优化器 - -- 修复分区过滤条件中存在 `or` 时,可能导致分区裁剪错误的问题。[#38897 ](https://github.com/apache/doris/pull/38897) - -- 修复存在复杂表达式时,可能导致的分区裁剪错误的问题。[#39298](https://github.com/apache/doris/pull/39298) - -- 修复 AGG_STATE 类型中的子类型,Nullable 可能规划不正确导致执行报错的问题。[#37489](https://github.com/apache/doris/pull/37489) - -- 修复 Set Operation 算子 Nullable 可能规划不正确,导致执行报错的问题。[#39109](https://github.com/apache/doris/pull/39109) - -- 修复 Intersect 算子执行优先级不正确的问题。 [#39095](https://github.com/apache/doris/pull/39095) - -- 修复当查询中存在最大合法日期字面量时,可能出现 NPE 的问题。[#39482](https://github.com/apache/doris/pull/39482) - -- 修复偶现的规划报错,导致的执行时报错 Slot 不合法的问题。[#39640](https://github.com/apache/doris/pull/39640) - -- 修复重复引用 CTE 中的列,可能导致结果缺少部分列数据的问题。[#39850](https://github.com/apache/doris/pull/39850) - -- 修复在查询中存在 CASE WHEN 时,偶现的规划报错问题。[#38491](https://github.com/apache/doris/pull/38491) - -- 修复不能将 IP 类型隐式转换为 STRING 类型的问题。[#39318](https://github.com/apache/doris/pull/39318) - -- 修复在使用多维聚合时,当 SELECT List 中存在相同列和其别名时,可能出现的规划报错问题。[#38166](https://github.com/apache/doris/pull/38166) - -- 修复使用 BE 常量折叠时,处理 BOOLEAN 类型可能不正确的问题。[#39019](https://github.com/apache/doris/pull/39019) - -- 修复在表达式中存在 `default_cluster:` 作为 Database 名称前缀导致的规划报错问题。[#39114](https://github.com/apache/doris/pull/39114) - -- 修复 Insert Into 可能导致的死锁问题。[#38660](https://github.com/apache/doris/pull/38660) - -- 修复没有在规划全过程持有表锁导致可能出现规划报错的问题。 [#38950](https://github.com/apache/doris/pull/38950) - -- 修复创建表时不能正确处理 CHAR(0), VARCHAR(0) 的问题。[#38427](https://github.com/apache/doris/pull/38427) - -- 修复 SHOW CREAT TABLE 可能错误的显示出隐藏列的问题。[#38796](https://github.com/apache/doris/pull/38796) - -- 修复创建表时没有禁止使用和隐藏列同名列的问题。 [#38796](https://github.com/apache/doris/pull/38796) - -- 修复在执行 INSERT INTO AS SELECT 时,如果存在 CTE,偶现的规划报错问题。[#38526](https://github.com/apache/doris/pull/38526) - -- 修复 INSERT INTO VALUES 无法自动填充 NULL 默认值的问题。[#39122](https://github.com/apache/doris/pull/39122) - -- 修复在 DELETE 中使用 CTE,但是没有使用 USING 时,导致的 NPE 问题。[#39379](https://github.com/apache/doris/pull/39379) - -- 修复对随机分布的聚合模型表执行删除操作会失败的问题。[#37985](https://github.com/apache/doris/pull/37985) - -### 执行引擎 - -- 修复多个场景下,Pipeline 执行引擎被卡顿,导致查询不结束的问题。[#38657](https://github.com/apache/doris/pull/38657) [#38206](https://github.com/apache/doris/pull/38206) [#38885](https://github.com/apache/doris/pull/38885) - -- 修复了 NULL 和非 NULL 列在差集计算时导致的 Coredump 问题。[#38737](https://github.com/apache/doris/pull/38737) - -- 修复了 `width_bucket` 函数结果错误的问题。[#37892](https://github.com/apache/doris/pull/37892) - -- 修复了当单行数据很大且返回结果集也很大时(超过 2GB)查询报错的问题。[#37990](https://github.com/apache/doris/pull/37990) - -- 修复了 `stddev` 在 `DecimalV2` 类型下结果错误的问题。[#38731](https://github.com/apache/doris/pull/38731) - -- 修复了 `MULTI_MATCH_ANY` 函数导致的 Coredump 问题。[#37959](https://github.com/apache/doris/pull/37959) - -- 修复了 INSERT OVERWRITE AUTO PARTITION 导致事务回滚的问题。[#38103](https://github.com/apache/doris/pull/38103) - -- 修复了 `convert_tz` 函数结果错误的问题。[#37358](https://github.com/apache/doris/pull/37358) [#38764](https://github.com/apache/doris/pull/38764) - -- 修复了 `collect_set` 函数结合窗口函数使用时 Coredump 的问题。[#38234](https://github.com/apache/doris/pull/38234) - -- 修复了 `mod` 函数在异常输入时导致的 Coredump 问题。[#37999](https://github.com/apache/doris/pull/37999) - -- 修复了多线程下执行相同表达式可能导致 Java UDF 结果错误的问题。[#38612](https://github.com/apache/doris/pull/38612) - -- 修复了 `conv` 函数返回类型错误导致的溢出问题。[#38001](https://github.com/apache/doris/pull/38001) - -- 修复了 `histogram` 函数结果不稳定的问题。[#38608](https://github.com/apache/doris/pull/38608) - -### 存储管理 - -- 修复备份恢复后,写入数据时可能出现不可读的问题。[#38343](https://github.com/apache/doris/pull/38343) - -- 修复跨版本 Restore Version 使用问题。[#38396](https://github.com/apache/doris/pull/38396) - -- 修复 Backup 失败时 Job 没有取消的问题。[#38993](https://github.com/apache/doris/pull/38993) - -- 修复 2.1.4 升级到 2.1.5 CCR 报 NPE,导致 FE 不能启动的问题。[#39910](https://github.com/apache/doris/pull/39910) - -- 修复 Restore 之后视图和物化视图不能使用的问题。[#38072](https://github.com/apache/doris/pull/38072) [#39848](https://github.com/apache/doris/pull/39848) - -### 数据导入 - -**Routine Load** - -- 修复 Routine Load 一流多表可能得内存泄露的问题。 [#38824](https://github.com/apache/doris/pull/38824) - -- 修复 Routine Load 包围符和转义符不生效的问题。[#38825](https://github.com/apache/doris/pull/38825) - -- 修复 Routine Load 任务名包含大写字母时 `show routineload` 结果不正确的问题。[#38826](https://github.com/apache/doris/pull/38826) - -- 修复改变 Routine Load Topic 时没有重置 Offset Cache 的问题。[#38474](https://github.com/apache/doris/pull/38474) - -- 修复并发情况下 `show routineload` 可能触发异常的问题。[#39525](https://github.com/apache/doris/pull/39525) - -- 修复 Routine Load 可能重复导入数据的问题。[#39526](https://github.com/apache/doris/pull/39526) - -**Group Commit** - -- 修复 JDBC 方式下打开 Group Commit 时 setNull 导致的数据报错问题 [#38276](https://github.com/apache/doris/pull/38276) - -- 修复打开 `group commit insert` 发往非 Master FE 时可能导致 NPE 问题 [#38345](https://github.com/apache/doris/pull/38345) - -- 修复 Group Commit 内部写数据错误处理不正确的问题。[#38997](https://github.com/apache/doris/pull/38997) - -- 修复 Group Commit 执行规划失败时可能触发的 Coredump。[#39396](https://github.com/apache/doris/pull/39396) - -**其它** - -- 修复并发导入 Auto Partition 表可能报 Tablet 不存在的问题。[#38793](https://github.com/apache/doris/pull/38793) - -- 修复可能的 Load Stream 泄露问题。[#39039](https://github.com/apache/doris/pull/39039) - -- 修复 INSERT INTO SELECT 没有数据时开启事务的问题。[#39108](https://github.com/apache/doris/pull/39108) - -- 使用 Memtable 前移时忽略单副本导入的配置。[#39154](https://github.com/apache/doris/pull/39154) - -- 修复后台导入 `stream load record` 遇见 Database 删除时异常中止的问题。 [#39527](https://github.com/apache/doris/pull/39527) - -- 修复 Strict Mode 模式下,出现数据错误时错误信息提示不准确的问题。[#39587](https://github.com/apache/doris/pull/39587) - -- 修复 Stream Load 遇见错误数据不返回 Error URL 的问题。[#38417](https://github.com/apache/doris/pull/38417) - -- 修复 Insert Overwrite 和 Auto Partition 配合使用的问题。[#38442](https://github.com/apache/doris/pull/38442) - -- 修复 CSV 遇到行分隔符被包围符包围数据时解析错误的问题。[#38445](https://github.com/apache/doris/pull/38445) - -### 数据导出 - -- 修复导出操作中指定 `delete_existing_files` 属性后,可能会重复删除导出数据的问题。[#39304](https://github.com/apache/doris/pull/39304) - -### 权限管理 - -- 修复创建物化视图时,错误地要求拥有 ALTER TABLE 的权限的问题。[#38011](https://github.com/apache/doris/pull/38011) - -- 修复 `show routine load` 时,Database 显式为空的问题。[#38365](https://github.com/apache/doris/pull/38365) - -- 修复 `create table like` 错误的要求拥有对原表的创建权限的问题。[#37879](https://github.com/apache/doris/pull/37879) - -- 修复赋权操作没有检查对象是否存在的问题。[#39597](https://github.com/apache/doris/pull/39597) - -## 版本升级说明 - -Doris 升级请遵守不要跨两个二位版本升级的原则,依次往后升级。 - -比如从 0.15.x 升级到 2.0.x 版本,则建议先升级至 1.1 最新版本,然后升级到最新的 1.2 版本,最后升级到最新的 2.0 版本,以此类推。 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.7.md deleted file mode 100644 index 277aee937c639..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.7.md +++ /dev/null @@ -1,163 +0,0 @@ ---- -{ - "title": "Release 2.1.7", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.7 版本已于 2024 年 11 月 10 日正式发布。**2.1.7 版本持续升级改进,同时在湖仓一体、异步物化视图、半结构化数据管理、查询优化器、执行引擎、存储管理、以及权限管理等方面完成了若干修复。欢迎大家下载使用。 - -- [立即下载](https://doris.apache.org/download) -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.7-rc03) - -## 行为变更 - -- 以下全局变量会被强制设置到下列默认值 - - enable_nereids_dml: true - - enable_nereids_dml_with_pipeline: true - - enable_nereids_planner: true - - enable_fallback_to_original_planner: true - - enable_pipeline_x_engine: true -- 审计日志增加了新的列 [#42262](https://github.com/apache/doris/pull/42262) - - 更多信息,请参考[管理指南](../../admin-manual/audit-plugin) - -## 新功能 - -### 异步物化视图 - -- 异步物化视图增加了一个属性 use_for_rewrite 用于控制是否参与透明改写 [#40332](https://github.com/apache/doris/pull/40332) - -### 查询执行引擎 - -- 在 Profile 中输出变更的 session variable 列表。[#41016 ](https://github.com/apache/doris/pull/41016) -- 增加了`trim_in`、`ltrim_in` 和 `rtrim_in` 函数的支持。[#42641](https://github.com/apache/doris/pull/42641) -- 增加了一些 URL 函数,包括对 `to``p_level_domain`、`first_significant_subdomain` 、`cut_to_first_significant_subdomain` 支持。[#42916](https://github.com/apache/doris/pull/42916) -- 增加了 `bit_set` 函数。[#42099](https://github.com/apache/doris/pull/42099) -- 增加了`count_substrings` 函数。[#42055](https://github.com/apache/doris/pull/42055) -- 增加 `translate` 和 `url_encode` 函数。[#41051](https://github.com/apache/doris/pull/41051) -- 增加 `normal_cdf`, `to_iso8601`, `from_iso8601_date` 函数。[ #40695](https://github.com/apache/doris/pull/40695) - - -### 存储管理 - -- 增加了 `information_schema.table_options` 和 `information_schema.``table_properties` 系统表,支持查询建表时设置的一些属性。[#34384](https://github.com/apache/doris/pull/34384) - - 更多信息,请参考系统表: - - [table_options](../../admin-manual/system-tables/information_schema/table_options) - - [table_properties](../../admin-manual/system-tables/information_schema/table_properties) -- 支持 `bitmap_empty` 作为默认值。[#40364](https://github.com/apache/doris/pull/40364) -- 增加了一个新的 Session 变量`require_sequence_in_insert` 来控制向 Unique Key 表进行`insert into select` 写入时,是否必须提供 Sequence 列。[#41655](https://github.com/apache/doris/pull/41655) - -### 其他 - -允许在 BE WebUI 页面生成火焰图。[#41044](https://github.com/apache/doris/pull/41044) - -## 改进提升 - -### 湖仓一体 - -- 支持写入数据到 Hive Text 格式表。[#40537](https://github.com/apache/doris/pull/40537) - - 更多信息,请参考[使用 Hive 构建数据湖](../../lakehouse/datalake-building/hive-build/)文档 -- 使用 MaxCompute Open Storage API 访问 MaxCompute 数据。[#41610](https://github.com/apache/doris/pull/41610) - - 更多信息,请参考 [MaxCompute](../../lakehouse/database/max-compute/) 文档 -- 支持 Paimon DLF Catalog。[#41694](https://github.com/apache/doris/pull/41694) - - 更多信息,请参考 [Paimon Catalog](../../lakehouse/datalake-analytics/paimon/) 文档 -- 新增语法 `table$partitions` 语法支持直接查询 Hive 分区信息 [#41230](https://github.com/apache/doris/pull/41230) - - 更多信息,请参考[通过 Hive 分析数据湖](../../lakehouse/datalake-analytics/hive/)文档 -- 支持 brotli 压缩格式的 Parquet 文件读取。[#42162](https://github.com/apache/doris/pull/42162) -- 支持读取 Parquet 文件中的 DECIMAL 256 类型。[#42241](https://github.com/apache/doris/pull/42241) -- 支持读取 OpenCsvSerde 格式的 Hive 表。[#42939](https://github.com/apache/doris/pull/42939) - -### 异步物化视图 - -- 细化了异步物化视图中构建时锁持有的粒度。[#40402](https://github.com/apache/doris/pull/40402) [#41010](https://github.com/apache/doris/pull/41010) - -### 查询优化器 - -- 优化了极端情况下统计信息收集和使用的准确性,以提升规划稳定性。[#40457](https://github.com/apache/doris/pull/40457) -- 现在可以在更多情况下生成 Runtime Filter,以提升查询性能。 [#40815](https://github.com/apache/doris/pull/40815) -- 提升数值,日期和字符串函数的常量折叠能力,以提升查询性能。[#40820 ](https://github.com/apache/doris/pull/40820) -- 优化了列裁剪的算法,以提升查询性能。[#41548](https://github.com/apache/doris/pull/41548) - -### 查询执行引擎 - -- 支持并行的 Prepare 降低短查询的耗时。[#40270](https://github.com/apache/doris/pull/40270) -- 修正了 Profile 中一些 Counter 的名字,保持跟审计日志一致。[#41993](https://github.com/apache/doris/pull/41993) -- 增加了新的 Local Shuffle 规则,使得部分查询更快。[#40637](https://github.com/apache/doris/pull/40637) - -### 存储管理 - -- Show Partitions 命令支持显示 Commit Version。 [#28274](https://github.com/apache/doris/pull/28274) -- 建表时检查不合理的 Partition EXPR。[#40158](https://github.com/apache/doris/pull/40158) -- 优化 Routine Load EOF 时的调度逻辑。[#40509](https://github.com/apache/doris/pull/40509) -- Routine Load 感知 Schema 变化。[#40508](https://github.com/apache/doris/pull/40508) -- 优化 Routine Load Task 超时逻辑。[#41135](https://github.com/apache/doris/pull/41135) - -### 其他 - -- 支持通过 BE 配置关闭 BRPC 的内置服务端口。[#41047](https://github.com/apache/doris/pull/41047) -- 修复审计日志缺失字段以及重复记录的问题。[#41047](https://github.com/apache/doris/pull/43015) - -## Bug 修复 - -### 湖仓一体 - -- 修复了 INSERT OVERWRITE 的行为跟 Hive 不一致的问题。[#39840](https://github.com/apache/doris/pull/39840) -- 清理临时创建的文件夹,解决 HDFS 上空文件夹太多的问题。[#40424](https://github.com/apache/doris/pull/40424) -- 修复某些情况下,使用 JDBC Catalog 导致 FE 内存泄露的问题。[#40923](https://github.com/apache/doris/pull/40923) -- 修复某些情况下,使用 JDBC Catalog 导致 BE 内存泄露的问题。[#41266](https://github.com/apache/doris/pull/41266) -- 修复某些情况下,读取 Snappy 压缩格式错误的问题。[#40862](https://github.com/apache/doris/pull/40862) -- 修复某些情况下,FE 端 FileSystem 可能泄露的问题。[#41108](https://github.com/apache/doris/pull/41108) -- 修复某些情况下,通过 EXPLAIN VERBOSE 查看外表执行计划可能导致空指针的问题。[#41231](https://github.com/apache/doris/pull/41231) -- 修复无法读取 Paimon parquet 格式表的问题。[#41487](https://github.com/apache/doris/pull/41487) -- 修复 JDBC Oracle Catalog 兼容性改动引入的性能问题。[#41407](https://github.com/apache/doris/pull/41407) -- 禁止下推隐式转换后的谓词条件已解决 JDBC Catalog 某些情况下查询结果不正确的问题。[#42242](https://github.com/apache/doris/pull/42242) -- 修复 External Catalog 中表名大小写访问异常的一些问题。[#42261](https://github.com/apache/doris/pull/42261) - -### 异步物化视图 - -- 修复用户指定的 Start Time 不生效的问题。[#39573](https://github.com/apache/doris/pull/39573) -- 修复嵌套物化视图不刷新的问题。[#40433](https://github.com/apache/doris/pull/40433) -- 修复删除重建基表后,物化视图可能不刷新的问题。[#41762](https://github.com/apache/doris/pull/41762) -- 修复分区补偿改写可能导致结果错误的问题。[#40803](https://github.com/apache/doris/pull/40803) -- 当 `sql_select_limit` 设置时,改写结果可能错误的问题。[#40106](https://github.com/apache/doris/pull/40106) - -### 半结构化管理 - -- 修复了索引文件句柄泄露的问题。[#41915](https://github.com/apache/doris/pull/41915) -- 修复了特殊情况下倒排索引 `count()` 不准确的问题。[#41127](https://github.com/apache/doris/pull/41127) -- 修复了未开启 Light Schema Change 时 Variant 异常的问题。[#40908](https://github.com/apache/doris/pull/40908) -- 修复了 Variant 返回数组时内存泄漏的问题。[#41339](https://github.com/apache/doris/pull/41339) - -### 查询优化器 - -- 修正了外表查询时,可能存在过滤条件 nullable 计算错误,导致执行异常的问题。[#41014](https://github.com/apache/doris/pull/41014) -- 修复范围比较表达式优化可能发生错误的问题。[#41356](https://github.com/apache/doris/pull/41356) - -### 查询执行引擎 - -- `match_regexp` 函数不能正确处理空字符串的问题。[#39503](https://github.com/apache/doris/pull/39503) -- 解决在高并发场景下,Scanner 线程池卡死的问题。[#40495](https://github.com/apache/doris/pull/40495) -- 修复了 `data_floor` 函数结果错误的问题。[#41948](https://github.com/apache/doris/pull/41948) -- 修复了部分场景下,Cancel 消息不正确的问题。[#41798](https://github.com/apache/doris/pull/41798) -- 修复 Arrow Flight 打印太多的 Warn 日志的问题。[#41770] (https://github.com/apache/doris/pull/41770) -- 解决部分场景下 Runtime Filter 发送失败的问题。[#41698](https://github.com/apache/doris/pull/41698) -- 修复了一些系统表查询的时候不能正常结束或者卡住的问题。[#41592](https://github.com/apache/doris/pull/41592) -- 修复了窗口函数结果不正确的问题。[#40761](https://github.com/apache/doris/pull/40761) -- 修复 ENCRYPT 和 DECRYPT 函数导致 BE Core 的问题。[#40726](https://github.com/apache/doris/pull/40726) -- 修复 CONV 函数结果错误的问题。[#40530](https://github.com/apache/doris/pull/40530) - -### 存储管理 - -- Memtable 前移在多副本情况下,有机器宕机时导入失败的问题。[#38003](https://github.com/apache/doris/pull/38003) -- 导入过程中,Memtable 在 Flush 阶段时,统计的内存不准确。[#39536](https://github.com/apache/doris/pull/39536) -- 修复 Memtable 前移多副本容错的问题。[#40477](https://github.com/apache/doris/pull/40477) -- 修复 Memtable 前移 bvar 统计不准的问题。[#40985](https://github.com/apache/doris/pull/40985) -- 修复 s3 Load 进度汇报不准的问题。[#40987](https://github.com/apache/doris/pull/40987) - -### 权限管理 - -- 修复了 SHOW COLUMNS, SHOW SYNC, SHOW DATA FROM DB.TABLE 相关的权限问题。 [#39726](https://github.com/apache/doris/pull/39726) - -### Others - -- 修复 2.0 版本的审计日志插件在 2.1 版本无法使用的问题[#41400](https://github.com/apache/doris/pull/41400) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.8.md deleted file mode 100644 index 92455cee67c60..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.8.md +++ /dev/null @@ -1,179 +0,0 @@ ---- -{ - "title": "Release 2.1.8", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.8 版本已于 2025 年 01 月 24 日正式发布。** 该版本持续在湖仓一体、异步物化视图、查询优化器与执行引擎、存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。 - -- [立即下载](https://doris.apache.org/download) - -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.8-rc01) - - -## 行为变更 - -- 添加环境变量 `SKIP_CHECK_ULIMIT` 以跳过 BE 进程内关于 ulimit 值校验检查,仅适用于 Docker 快速启动场景中应用。[#45267](https://github.com/apache/doris/pull/45267) -- 添加 `enable_cooldown_replica_affinity session` 变量控制冷热分层下查询选用副本亲和性 -- FE 添加配置` restore_job_compressed_serialization` 和 `backup_job_compressed_serialization` 用于解决 db tablet 数量非常大情况下备份和恢复操作时 FE OOM 的问题,默认关闭,打开之后无法降级 - -## 新功能 - -- **查询执行引擎:**Arrowflight 协议支持通过负载均衡设备访问 BE。 [#43281](https://github.com/apache/doris/pull/43281) -- **其他:**当前 Lambda 表达式支持捕获外部的列。 [#45186](https://github.com/apache/doris/pull/45186) - -## 改进提升 - -### 湖仓一体 - -- Hudi 版本更新至 0.15,并且优化了 Hudi 表的查询规划性能。 -- 优化了 MaxCompute 分区表的读取性能。 [#45148](https://github.com/apache/doris/pull/45148) -- 支持会话变量 enable_text_validate_utf8,可以忽略 CSV 格式中的 UTF8 编码检测。[#45537](https://github.com/apache/doris/pull/45537) -- 优化在高过滤率情况下,Parquet 文件延迟物化的性能。[#46183](https://github.com/apache/doris/pull/46183) - -### 异步物化视图 - -- 现在支持手动刷新异步物化视图中不存在的分区。[#45290](https://github.com/apache/doris/pull/45290) -- 优化了透明改写规划的性能。[#44786](https://github.com/apache/doris/pull/44786) - -### 查询优化器 - -- 提升了 Runtime Filter 的自适应能力。[#42640](https://github.com/apache/doris/pull/42640) -- 增加了在 MAX / MIN 聚合函数列上的过滤条件生成原始列过滤条件的能力。[#39252](https://github.com/apache/doris/pull/39252) -- 增加了在连接谓词上抽取单测过滤条件的能力。[#38479](https://github.com/apache/doris/pull/38479) -- 优化了谓词推导在集合算子上的能力,可以更好的生成过滤谓词。[#39450](https://github.com/apache/doris/pull/39450) -- 优化了统计信息收集和使用的异常处理能力,避免在收集异常时产生非预期的执行计划。[#43009](https://github.com/apache/doris/pull/43009) [#43776](https://github.com/apache/doris/pull/43776) [#43865](https://github.com/apache/doris/pull/43865) [#42104](https://github.com/apache/doris/pull/42104) [#42399](https://github.com/apache/doris/pull/42399) [#41729](https://github.com/apache/doris/pull/41729) - -### 查询执行引擎 - -- Resource group 支持在当前 group 不可用的时候,降级到别的 Group. [#44255](https://github.com/apache/doris/pull/44255) -- 优化带 limit 的查询执行使其能够更快的结束,避免多余的数据扫描。[#45222](https://github.com/apache/doris/pull/45222) - -### 存储管理 - -- CCR 支持了更加全面的操作,比如 Rename Table,Rename Column,Modify Comment,Drop View,Drop Rollup 等。 -- 提升了 Broker Load 导入进度的准确性和多个压缩文件导入时的性能。 -- 改进了 Routine Load 超时策略、线程池使用以防止 Routine Load 超时失败和影响查询。 - -### 其他 - -- Docker 快速启动镜像支持不设置环境参数直接启动,添加环境变量 `SKIP_CHECK_ULIMIT` 以跳过 `start_be.sh` 脚本以及 BE 进程内关于 `swap`、`max_map_count`、`ulimit` 相关校验检查,仅适用于 Docker 快速启动场景中应用。[#45269](https://github.com/apache/doris/pull/45269) -- 新增 LDAP 配置型 `ldap_group_filter` 用于自定义 Group 过滤。[#43292](https://github.com/apache/doris/pull/43292) -- 优化了使用 Ranger 时的性能。[#41207](https://github.com/apache/doris/pull/41207) -- 修复审计日志中,`scan bytes` 统计不准的问题。[#45167](https://github.com/apache/doris/pull/45167) -- 在 COLUMNS 系统表中能够正确显示列的默认值。[#44849](https://github.com/apache/doris/pull/44849) -- 在 VIEWS 系统表中能够正确显示视图的定义。[#45857](https://github.com/apache/doris/pull/45857) -- 当前,admin 用户不能被删除。[#44751](https://github.com/apache/doris/pull/44751) - -## Bug 修复 - -### 湖仓一体 - -- Hive - - - 修复无法查询 Spark 创建的 Hive 视图的问题。[#43553](https://github.com/apache/doris/pull/43553) - - - 修复无法正确读取某些 Hive Transaction 表的问题。[#45753](https://github.com/apache/doris/pull/45753) - - - 修复 Hive 表分区存在特殊字符时,无法进行正确分区裁剪的问题。[#42906](https://github.com/apache/doris/pull/42906) - -- Iceberg - - - 修复在 Kerberos 认证环境下,无法创建 Iceberg 表的问题。[#43445](https://github.com/apache/doris/pull/43445) - - - 修复某些情况下,Iceberg 表存在 dangling delete 情况下,`count(*)` 查询不准确的问题。[#44039](https://github.com/apache/doris/pull/44039) - - - 修复某些情况下,Iceberg 表列名不匹配导致查询错误的问题[#44470](https://github.com/apache/doris/pull/44470) - - - 修复某些情况下,当 Iceberg 表分区被修改后,无法读取的问题[#45367](https://github.com/apache/doris/pull/45367) - -- Paimon - - - 修复 Paimon Catalog 无法访问阿里云 OSS-HDFS 的问题。[#42585](https://github.com/apache/doris/pull/42585) - -- Hudi - - - 修复某些情况下,Hudi 表分区裁剪失效的问题。[#44669](https://github.com/apache/doris/pull/44669) - -- JDBC - - - 修复某些情况下,开始表名大小写不敏感功能后,使用 JDBC Catalog 无法获取表的问题。 - -- MaxCompute - - - 修复某些情况下,MaxCompute 表分区裁剪失效的问题。[#44508](https://github.com/apache/doris/pull/44508) - -- 其他 - - - 修复某些情况下,Export 任务导致 FE 内存泄露的问题。[#44019](https://github.com/apache/doris/pull/44019) - - - 修复某些情况下,无法使用 HTTPS 协议访问 S3 对象存储的问题。[#44242](https://github.com/apache/doris/pull/44242) - - - 修复某些情况下,Kerberos 认证票据无法自动刷新的问题。[#44916](https://github.com/apache/doris/pull/44916) - - - 修复某些情况下,读取 Hadoop Block 压缩格式文件出错的问题。[#45289](https://github.com/apache/doris/pull/45289) - - - 查询 ORC 格式的数据时,不再下推 CHAR 类型的谓词,以避免可能的结果错误。[#45484](https://github.com/apache/doris/pull/45484) - -### 异步物化视图 - -- 修复了当物化视图定义中存在 CTE 时,无法刷新的问题。[#44857](https://github.com/apache/doris/pull/44857) -- 修复了当基表增加列后,异步物化视图不能命中透明改写的问题。[#44867](https://github.com/apache/doris/pull/44867) -- 修复了当查询中在不同位置包含相同的过滤谓词时,透明改写失败的问题。[#44575](https://github.com/apache/doris/pull/44575) -- 修复了当过滤谓词或连接谓词中使用列的别名时,无法透明改写的问题。[#44779](https://github.com/apache/doris/pull/44779) - -### 索引 - -- 修复倒排索引 Compaction 异常处理的问题 [#45773](https://github.com/apache/doris/pull/45773) -- 修复倒排索引构建因为等锁超时失败的问题 [#43589](https://github.com/apache/doris/pull/43589) -- 修复异常情况下倒排索引写入 Crash 的问题。[#46075](https://github.com/apache/doris/pull/46075) -- 修复 Match 函数特殊参数时空指针的问题 [#45774](https://github.com/apache/doris/pull/45774) -- 修复 VARIANT 倒排索引相关的问题,禁用 VARIANT 使用索引 v1 格式。[#43971](https://github.com/apache/doris/pull/43971) [#45179](https://github.com/apache/doris/pull/45179/) - -- 修复 NGram Bloomfilter Index 设置 `gram_size = 65535` 时 Crash 的问题。[#43654](https://github.com/apache/doris/pull/43654) -- 修复 Bloomfilter Index 计算 DATE 和 DATETIME 不对的问题。[#43622](https://github.com/apache/doris/pull/43622) -- 修复 Drop Coloumn 没有自动 Drop Bloomfilter Index 的问题。[#44478](https://github.com/apache/doris/pull/44478) -- 减少 Bloomfilter Index 写入时的内存占用。[#46047](https://github.com/apache/doris/pull/46047) - -### 半结构化数据类型 - -- 优化内存占用,降低 VARIANT 数据类型的内存消耗。[#43349](https://github.com/apache/doris/pull/43349) [#44585](https://github.com/apache/doris/pull/44585) [#45734](https://github.com/apache/doris/pull/45734) -- 优化 VARIANT Schema Copy 性能。[#45731](https://github.com/apache/doris/pull/45731) -- 自动推断 Tablet Key 时不将 VARIANT 作为 Key。[#44736](https://github.com/apache/doris/pull/44736) -- 修复 VARIANT 从 NOT NULL 改成 NULL 的问题。[#45734](https://github.com/apache/doris/pull/45734) -- 修复 Lambda 函数类型推断错误的问题。[#45798](https://github.com/apache/doris/pull/45798) -- 修复 `ipv6_cidr_to_range` 函数边界条件 Coredump。[#46252](https://github.com/apache/doris/pull/46252) - -### 查询优化器 - -- 修复了潜在的表读锁互斥导致的死锁问题,并优化了锁的使用逻辑[#45045](https://github.com/apache/doris/pull/45045) [#43376](https://github.com/apache/doris/pull/43376) [#44164](https://github.com/apache/doris/pull/44164) [#44967](https://github.com/apache/doris/pull/44967) [#45995](https://github.com/apache/doris/pull/45995) -- 修复了 SQL Cache 功能错误的使用常量折叠导致在使用包含时间格式的函数时结果不正确的问题。[#44631](https://github.com/apache/doris/pull/44631) -- 修复了比较表达式优化,在边缘情况下可能优化错误,导致结果不正确的问题。[#44054](https://github.com/apache/doris/pull/44054) [#44725](https://github.com/apache/doris/pull/44725) [#44922](https://github.com/apache/doris/pull/44922) [#45735](https://github.com/apache/doris/pull/45735) [#45868](https://github.com/apache/doris/pull/45868) -- 修复高并发点查审计日志不正确的问题。[ #43345 ](https://github.com/apache/doris/pull/43345)[#44588](https://github.com/apache/doris/pull/44588) -- 修复高并发点查遇到异常后持续报错的问题。[#44582](https://github.com/apache/doris/pull/44582) -- 修复部分字段 Prepared Statement 不正确的问题。[#45732 ](https://github.com/apache/doris/pull/45732) - -### 查询执行引擎 - -- 修复了正则表达式和 LIKE 函数在特殊字符时结果不对的问题。[#44547](https://github.com/apache/doris/pull/44547) -- 修复 SQL Cache 在切换 DB 的时候结果可能不对的问题。[#44782](https://github.com/apache/doris/pull/44782) -- 修复`cut_ipv6` 函数结果不对的问题。[#43921](https://github.com/apache/doris/pull/43921) -- 修复数值类型到 bool 类型 cast 的问题。[#46275](https://github.com/apache/doris/pull/46275) -- 修复了一系列 Arrow Flight 相关的问题。[#45661](https://github.com/apache/doris/pull/45661) [#45023](https://github.com/apache/doris/pull/45023) [#43960](https://github.com/apache/doris/pull/43960) [#43929](https://github.com/apache/doris/pull/43929) -- 修复了当 hashjoin 的 hash 表超过 4G 时,部分情况结果错误的问题。[#46461](https://github.com/apache/doris/pull/46461/files) -- 修复了 convert_to 函数在中文字符时溢出的问题。[#46505](https://github.com/apache/doris/pull/46405) - -### 存储管理 - -- 修复高并发 DDL 可能导致 FE 启动失败的问题。 -- 修复自增列可能出现重复值的问题。 -- 修复扩容时 Routine Load 不能使用新扩容 BE 的问题。 - -### 权限管理 - -- 修复使用 Ranger 作为鉴权插件时,频繁访问 Ranger 服务的问题[#45645](https://github.com/apache/doris/pull/45645) - -### Others - -- 修复 BE 端开启 `enable_jvm_monitor=true` 后可能导致的内存泄露问题。[#44311](https://github.com/apache/doris/pull/44311) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.9.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.9.md deleted file mode 100644 index 8c3c1e7267997..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.0/releasenotes/v2.1/release-2.1.9.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -{ - "title": "Release 2.1.9", - "language": "zh-CN" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.9 版本已于 2025 年 04 月 02 日正式发布。** 该版本持续在倒排索引、查询优化器与存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。 - -- [立即下载](https://doris.apache.org/download) - -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.9-rc02) - - -## 行为变更 - -- Audit Log 中的 SQLHash 现在通过当前执行的 SQL 精确计算,解决了同一请求中所有 SQL 使用相同 SQLHash 的问题。[#48242](https://github.com/apache/doris/pull/48242) -- 查询返回的 ColumnLabelName 与 SQL 中的输入完全一致。[#47093 ](https://github.com/apache/doris/pull/47093) -- 所有在用户属性中设置的变量,优先级均高于 session 级别设置的变量。 [#47185](https://github.com/apache/doris/pull/47185) - -## 新功能 - -### 存储管理 - -- 禁止 rename 分区列。[#47596](https://github.com/apache/doris/pull/47596) - -### 其他 - -- FE 监控指标新增 Catalog、Database、Table 数量指标。[#47891](https://github.com/apache/doris/pull/47891) - -## 改进提升 - -### 倒排索引 - -- VARIANT 类型中的 ARRAY 支持倒排索引。[#47688 ](https://github.com/apache/doris/pull/47688) -- Profile 中展示每个过滤条件的倒排索引性能指标。[#47504](https://github.com/apache/doris/pull/47504) - -### 查询优化器 - -- 支持在聚合查询中使用 `SELECT`` *`,如果下层 relation 仅输出聚合 key 列。[#48006](https://github.com/apache/doris/pull/48006) - -### 存储管理 - -- CCR 优化回收 binlog 效率、小文件传输效率,并增强了混沌环境下的健壮性。[#47547](https://github.com/apache/doris/pull/47547) [#47313 ](https://github.com/apache/doris/pull/47313)[#45061](https://github.com/apache/doris/pull/45061) -- 改进了导入的错误提示,使错误提示更加具体。[#47918](https://github.com/apache/doris/pull/47918) [#47470](https://github.com/apache/doris/pull/47470) - -## Bug 修复 - -### 湖仓一体 - -- 修复 BE 端无法正确配置 krb5.conf 路径的问题。[#47679](https://github.com/apache/doris/pull/47679) -- 禁止 `SELECT ``OUTFILE` 语句重试以避免重复导出数据。[#48095](https://github.com/apache/doris/pull/48095) -- 修复无法通过 JAVA API 访问 Paimon 表的问题。[#47192](https://github.com/apache/doris/pull/47192) -- 修复无法写入存储位置为 `s3a://` 的 Hive 表的问题。[#47162](https://github.com/apache/doris/pull/47162) -- 修复 Catalog 的 Comment 字段没有被持久化的问题。[#46946](https://github.com/apache/doris/pull/46946) -- 修复某些情况下,JDBC BE 端类加载泄漏的问题。[#46912](https://github.com/apache/doris/pull/46912) -- 修复 JDBC Catalog 无法使用高版本 ClickHouse JDBC Driver 的问题。 [#46026](https://github.com/apache/doris/pull/46026) -- 修复某些情况下,读取 Iceberg Position Delete 导致 BE 宕机的问题。[#47977](https://github.com/apache/doris/pull/47977) -- 修复多分区列情况下读取 MaxCompute 表数据错误的问题。[#48325](https://github.com/apache/doris/pull/48325) -- 修复某些情况下读取 Parquet 复杂列类型错误的问题。[#47734](https://github.com/apache/doris/pull/47734) - -### 倒排索引 - -- 修复 ARRAY 类型倒排索引空值处理错误的问题。[#48231](https://github.com/apache/doris/pull/48231) -- 修复对刚刚添加的列执行 `BUILD INDEX` 异常的问题。[#48389](https://github.com/apache/doris/pull/48389) -- 修复特殊字符 UTF8 编码索引被截断导致结果错误的问题。[#48657](https://github.com/apache/doris/pull/48657) - -### 半结构化数据类型 - -- 修复 `array_agg` 函数在特殊情况下 crash 的问题。[#46927](https://github.com/apache/doris/pull/46927) -- 修复 Stream Load 导入 JSON 类型时,chunk 参数设置错误导致 crash 的问题。 [#48196](https://github.com/apache/doris/pull/48196) - -### 查询优化器 - -- 修复时间函数内嵌套 `current_date` 等关键字函数无法的进行常量折叠的问题。[#47288](https://github.com/apache/doris/pull/47288) -- 修复非确定性函数相关的结果错误问题。[#48321](https://github.com/apache/doris/pull/48321) -- 修复当原表有 on update 列属性时,CREATE TABLE LIKE 无法执行的问题。[#48007](https://github.com/apache/doris/pull/48007) -- 修复直查聚合模型表的物化视图可能产生非预期规划报错的问题。[#47658](https://github.com/apache/doris/pull/47658) -- 修复 PrepareStatement 因为内部 ID 溢出导致异常的问题。[#47950](https://github.com/apache/doris/pull/47950) - -### 查询执行引擎 - -- 修复了查询系统表时,可能的查询卡住或者空指针的问题。[#48370](https://github.com/apache/doris/pull/48370) -- LEAD/LAG 函数支持了 DOUBLE 类型。[#47940](https://github.com/apache/doris/pull/47940) -- 修复了 `case when` 条件超过 256 个时,查询报错的问题。[#47179](https://github.com/apache/doris/pull/47179) -- 修复了 `str_to_date` 函数在空格的时候,结果错误的问题。[#48920](https://github.com/apache/doris/pull/48920) -- 修复了`split_part` 函数在常量折叠时遇到 || ,结果错误的问题。[#48910](https://github.com/apache/doris/pull/48910) -- 修复了 `log` 函数结果错误的问题。[#47228](https://github.com/apache/doris/pull/47228) -- 修复了 `array` / `map` 函数在 lambda 表达式中使用时导致的 core 的问题。[#49140](https://github.com/apache/doris/pull/49140) - -### 存储管理 - -- 修复了导入聚合表时,可能的内存写脏问题。[#47523](https://github.com/apache/doris/pull/47523) -- 修复内存紧张时 MoW 导入偶发 coredump 问题。[#47715](https://github.com/apache/doris/pull/47715) -- 修复 MoW 在 BE 重启和 Schema Change 时可能出现重复 key 的问题。[#48056](https://github.com/apache/doris/pull/48056) [#48775](https://github.com/apache/doris/pull/48775) -- 修复 Group Commit 和全局打开列更新以及 memtable 前移时的问题。[#48120](https://github.com/apache/doris/pull/48120) [#47968](https://github.com/apache/doris/pull/47968) - -### 权限管理 - -- 使用 LDAP 时不再会抛出 PartialResultException 异常。[#47858](https://github.com/apache/doris/pull/47858) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/all-release.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/all-release.md deleted file mode 100644 index 81683d7de9931..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/all-release.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -{ - "title": "最新发布", - "language": "zh-CN", - "description": "本文列出了近一年内所有已发布的 Apache Doris 版本,按发布时间倒序呈现。" -} ---- - -本文列出了近一年内所有已发布的 Apache Doris 版本,按发布时间倒序呈现。 - - - -:::tip 最新发布 -🎉 3.0.8 版本已于 2025 年 09 月 17 日正式发布,详情可查看[版本发布](../releasenotes/v3.0/release-3.0.8)。从 3.X 版本开始,Apache Doris 除了支持计算存储一体模式外,还支持计算存储分离模式进行集群部署。借助将计算和存储层解耦的云原生架构,用户可以在多个计算集群之间实现查询负载的物理隔离,以及读写负载的隔离。 - -
- -🎉 2.1.11 版本现已于 2025 年 08 月 15 日正式发布,详情可查看[版本发布](../releasenotes/v2.1/release-2.1.11)。子查询性能方面 2.1 版本开箱即用查询的性能提高了 100%;在数据湖分析场景方面,相对于 Trino 和 Spark 分别有 4-6 倍性能提升;在半结构化数据分析场景中提供了强有力的支持,包括新的 Variant 类型和一系列分析函数。此外,2.1 版本起支持异步物化视图以加速查询,优化了大规模实时写入,并通过稳定性和运行时 SQL 资源跟踪改进了工作负载管理。 - -::: - -
- -- [2025-09-19, Apache Doris 3.0.8 版本发布](../releasenotes/v3.0/release-3.0.8.md) - -- [2025-08-25, Apache Doris 3.0.7 版本发布](../releasenotes/v3.0/release-3.0.7.md) - -- [2025-08-15, Apache Doris 2.1.11 版本发布](../releasenotes/v2.1/release-2.1.11.md) - -- [2025-06-16, Apache Doris 3.0.6 版本发布](../releasenotes/v3.0/release-3.0.6.md) - -- [2025-05-17, Apache Doris 2.1.10 版本发布](../releasenotes/v2.1/release-2.1.10.md) - -- [2025-04-28, Apache Doris 3.0.5 版本发布](../releasenotes/v3.0/release-3.0.5.md) - -- [2025-04-02, Apache Doris 2.1.9 版本发布](../releasenotes/v2.1/release-2.1.9.md) - -- [2025-02-28, Apache Doris 3.0.4 版本发布](../releasenotes/v3.0/release-3.0.4.md) - -- [2025-01-24, Apache Doris 2.1.8 版本发布](../releasenotes/v2.1/release-2.1.8.md) - -- [2024-12-02, Apache Doris 3.0.3 版本发布](../releasenotes/v3.0/release-3.0.3.md) - -- [2024-11-10, Apache Doris 2.1.7 版本发布](../releasenotes/v2.1/release-2.1.7.md) - -- [2024-10-15, Apache Doris 3.0.2 版本发布](../releasenotes/v3.0/release-3.0.2.md) - -- [2024-09-30, Apache Doris 2.0.15 版本发布](../releasenotes/v2.0/release-2.0.15.md) - -- [2024-09-10, Apache Doris 2.1.6 版本发布](../releasenotes/v2.1/release-2.1.6.md) - -- [2024-08-23, Apache Doris 3.0.1 版本发布](../releasenotes/v3.0/release-3.0.1.md) - -- [2024-07-24, Apache Doris 2.1.5 版本发布](../releasenotes/v2.1/release-2.1.5.md) - -- [2024-07-17, Apache Doris 2.0.13 版本发布](../releasenotes/v2.0/release-2.0.13.md) - -- [2024-06-27, Apache Doris 2.0.12 版本发布](../releasenotes/v2.0/release-2.0.12.md) - -- [2024-06-26, Apache Doris 2.1.4 版本发布](../releasenotes/v2.1/release-2.1.4.md) - -- [2024-06-05, Apache Doris 2.0.11 版本发布](../releasenotes/v2.0/release-2.0.11.md) - -- [2024-05-21, Apache Doris 2.1.3 版本发布](../releasenotes/v2.1/release-2.1.3.md) - -- [2024-05-16, Apache Doris 2.0.10 版本发布](../releasenotes/v2.0/release-2.0.10.md) - -- [2024-04-23, Apache Doris 2.0.9 版本发布](../releasenotes/v2.0/release-2.0.9.md) - -- [2024-04-12, Apache Doris 2.1.2 版本发布](../releasenotes/v2.1/release-2.1.2.md) - -- [2024-04-09, Apache Doris 2.0.8 版本发布](../releasenotes/v2.0/release-2.0.8.md) - -- [2024-04-03, Apache Doris 2.1.1 版本发布](../releasenotes/v2.1/release-2.1.1.md) - -- [2024-03-26, Apache Doris 2.0.7 版本发布](../releasenotes/v2.0/release-2.0.7.md) - -- [2024-03-12, Apache Doris 2.1.0 版本发布](../releasenotes/v2.1/release-2.1.0.md) - -- [2024-03-11, Apache Doris 2.0.6 版本发布](../releasenotes/v2.0/release-2.0.6.md) - -- [2024-02-28, Apache Doris 2.0.5 版本发布](../releasenotes/v2.0/release-2.0.5.md) - -- [2024-01-26, Apache Doris 2.0.4 版本发布](../releasenotes/v2.0/release-2.0.4.md) - - - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.0.md deleted file mode 100644 index dd5b2989761ad..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.0.md +++ /dev/null @@ -1,375 +0,0 @@ ---- -{ - "title": "Release 1.1.0", - "language": "zh-CN", - "description": "在 1.1 版本中,我们实现了计算层和存储层的全面向量化、正式将向量化执行引擎作为稳定功能进行全面启用,所有查询默认通过向量化执行引擎来执行,性能较之前版本有 3-5 倍的巨大提升;增加了直接访问 Apache Iceberg 外部表的能力," -} ---- - -在 1.1 版本中,**我们实现了计算层和存储层的全面向量化、正式将向量化执行引擎作为稳定功能进行全面启用**,所有查询默认通过向量化执行引擎来执行,**性能较之前版本有 3-5 倍的巨大提升**;增加了直接访问 Apache Iceberg 外部表的能力,支持对 Doris 和 Iceberg 中的数据进行联邦查询,**扩展了 Apache Doris 在数据湖上的分析能力**;在原有的 LZ4 基础上增加了 ZSTD 压缩算法,进一步提升了数据压缩率;**修复了诸多之前版本存在的性能与稳定性问题**,使系统稳定性得到大幅提升。欢迎大家下载使用。 - -## 升级说明 - -### 向量化执行引擎默认开启 - -在 Apache Doris 1.0 版本中,我们引入了向量化执行引擎作为实验性功能。用户需要在执行 SQL 查询手工开启,通过 `set batch_size = 4096` 和 `set enable_vectorized_engine = true `配置 session 变量来开启向量化执行引擎。 - -在 1.1 版本中,我们正式将向量化执行引擎作为稳定功能进行了全面启用,session 变量`enable_vectorized_engine` 默认设置为 true,无需用户手工开启,所有查询默认通过向量化执行引擎来执行。 - -### BE 二进制文件更名 - -BE 二进制文件从原有的 palo_be 更名为 doris_be,如果您以前依赖进程名称进行集群管理和其他操作,请注意修改相关脚本。 - -### Segment 存储格式升级 - -Apache Doris 早期版本的存储格式为 Segment V1,在 0.12 版本中我们实现了新的存储格式 Segment V2,引入了 Bitmap 索引、内存表、Page Cache、字典压缩以及延迟物化等诸多特性。从 0.13 版本开始,新建表的默认存储格式为 Segment V2,与此同时也保留了对 Segment V1 格式的兼容。 - -为了保证代码结构的可维护性、降低冗余历史代码带来的额外学习及开发成本,我们决定从下一个版本起不再支持 Segment v1 存储格式,预计在 Apache Doris 1.2 版本中将删除这部分代码。 - - -### 正常升级 - -正常升级操作请按照官网上的集群升级文档进行滚动升级即可。 - -[https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade](https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade) - -## 重要功能 - -### 支持数据随机分布 [实验性功能] [#8259](https://github.com/apache/doris/pull/8259) [#8041](https://github.com/apache/doris/pull/8041) - -在某些场景中(例如日志分析类场景),用户可能无法找到一个合适的分桶键来避免数据倾斜,因此需要由系统提供额外的分布方式来解决数据倾斜的问题。 - -因此通过在建表时可以不指定具体分桶键,选择使用随机分布对数据进行分桶`DISTRIBUTED BY random BUCKETS number`,数据导入时将会随机写入单个 Tablet,以减少加载过程中的数据扇出,并减少资源开销、提升系统稳定性。 - -### 支持创建 Iceberg 外部表 [实验性功能] [#7391](https://github.com/apache/doris/pull/7391) [#7981](https://github.com/apache/doris/pull/7981) [#8179](https://github.com/apache/doris/pull/8179) - -Iceberg 外部表为 Apache Doris 提供了直接访问存储在 Iceberg 数据的能力。通过 Iceberg 外部表可以实现对本地存储和 Iceberg 存储的数据进行联邦查询,省去繁琐的数据加载工作、简化数据分析的系统架构,并进行更复杂的分析操作。 - -在 1.1 版本中,Apache Doris 支持了创建 Iceberg 外部表并查询数据,并支持通过 REFRESH 命令实现 Iceberg 数据库中所有表 Schema 的自动同步。 - -### 增加 ZSTD 压缩算法 [#8923](https://github.com/apache/doris/pull/8923) [#9747](https://github.com/apache/doris/pull/9747) - -目前 Apache Doris 中数据压缩方法是系统统一指定的,默认为 LZ4。针对部分对数据存储成本敏感的场景,例如日志类场景,原有的数据压缩率需求无法得到满足。 - -在 1.1 版本中,用户建表时可以在表属性中设置`"compression"="zstd"` 将压缩方法指定为 ZSTD。在 25GB 1.1 亿行的文本日志测试数据中,**最高获得了近 10 倍的压缩率、较原有压缩率提升了 53%,从磁盘读取数据并进行解压缩的速度提升了 30%** 。 - -## 功能优化 - -### **更全面的向量化支持** - -在 1.1 版本中,我们实现了计算层和存储层的全面向量化,包括: - -- 实现了所有内置函数的向量化 - -- 存储层实现向量化,并支持了低基数字符串列的字典优化 - -- 优化并解决了向量化引擎的大量性能和稳定性问题。 - -我们对 Apache Doris 1.1 版本与 0.15 版本分别在 SSB 和 TPC-H 标准测试数据集上进行了性能测试: - -- 在 SSB 测试数据集的全部 13 个 SQL 上,1.1 版本均优于 0.15 版本,整体性能约提升了 3 倍,解决了 1.0 版本中存在的部分场景性能劣化问题; - -- 在 TPC-H 测试数据集的全部 22 个 SQL 上,1.1 版本均优于 0.15 版本,整体性能约提升了 4.5 倍,部分场景性能达到了十余倍的提升; - -![release-note-1.1.0-SSB](/images/release-note-1.1.0-SSB.png) - -

SSB 测试数据集

- -![release-note-1.1.0-TPC-H](/images/release-note-1.1.0-TPC-H.png) - -

TPC-H 测试数据集

- -**性能测试报告:** - -[https://doris.apache.org/zh-CN/docs/benchmark/ssb](https://doris.apache.org/zh-CN/docs/benchmark/ssb) - -[https://doris.apache.org/zh-CN/docs/benchmark/tpch](https://doris.apache.org/zh-CN/docs/benchmark/tpch) - -### Compaction 逻辑优化与实时性保证 [#10153](https://github.com/apache/doris/pull/10153) - -在 Apache Doris 中每次 Commit 都会产生一个数据版本,在高并发写入场景下,容易出现因数据版本过多且 Compaction 不及时而导致的 -235 错误,同时查询性能也会随之下降。 - -在 1.1 版本中我们引入了 QuickCompaction,增加了主动触发式的 Compaction 检查,在数据版本增加的时候主动触发 Compaction,同时通过提升分片元信息扫描的能力,快速发现数据版本过多的分片并触发 Compaction。通过主动式触发加被动式扫描的方式,彻底解决数据合并的实时性问题。 - -同时,针对高频的小文件 Cumulative Compaction,实现了 Compaction 任务的调度隔离,防止重量级的 Base Compaction 对新增数据的合并造成影响。 - -最后,针对小文件合并,优化了小文件合并的策略,采用梯度合并的方式,每次参与合并的文件都属于同一个数据量级,防止大小差别很大的版本进行合并,逐渐有层次的合并,减少单个文件参与合并的次数,能够大幅地节省系统的 CPU 消耗。 - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a6d5c50f16a048f3ab27357bc97b7461~tplv-k3u1fbpfcp-zoom-1.image) - -在数据上游维持每秒 10w 的写入频率时(20 个并发写入任务、每个作业 5000 行、Checkpoint 间隔 1s),1.1 版本表现如下: - -- 数据快速合并:Tablet 数据版本维持在 50 以下,Compaction Score 稳定。相较于之前版本高并发写入时频繁出现的 -235 问题,**Compaction 合并效率有 10 倍以上的提升**。 - - - -- CPU 资源消耗显著降低:针对小文件 Compaction 进行了策略优化,在上述高并发写入场景下,**CPU 资源消耗降低 25%** ; - - - -- 查询耗时稳定:提升了数据整体有序性,大幅降低查询耗时的波动性,**高并发写入时的查询耗时与仅查询时持平**,查询性能较之前版本**有 3-4 倍提升**。 - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1c79ee9efba0416d81cc7bed1a349fdf~tplv-k3u1fbpfcp-zoom-1.image) - -### Parquet 和 ORC 文件的读取效率优化 [#9472](https://github.com/apache/doris/pull/9472) - -通过调整 Arrow 参数,利用 Arrow 的多线程读取能力来加速 Arrow 对每个 row_group 的读取,并修改成 SPSC 模型,通过预取来降低等待网络的代价。优化前后对 Parquet 文件导入的性能有 4 ~ 5 倍的提升。 - -### 更安全的元数据 Checkpoint [#9180](https://github.com/apache/doris/pull/9180) [#9192](https://github.com/apache/doris/pull/9192) - -通过对元数据检查点后生成的 image 文件进行双重检查和保留历史 image 文件的功能,解决了 image 文件错误导致的元数据损坏问题。 - -## Bug 修复 - -### 修复由于缺少数据版本而无法查询数据的问题。(严重)[#9267](https://github.com/apache/doris/pull/9267) [#9266](https://github.com/apache/doris/pull/9266) - -问题描述:`failed to initialize storage reader. tablet=924991.xxxx, res=-214, backend=xxxx` - -该问题是在版本 1.0 中引入的,可能会导致多个副本的数据版本丢失。 - -### 解决了资源隔离对加载任务的资源使用限制无效的问题(中等)[#9492](https://github.com/apache/doris/pull/9492) - -在 1.1 版本中,Broker Load 和 Routine Load 将使用具有指定资源标记的 BE 节点进行加载。 - -### 修复使用 HTTP BRPC 超过 2GB 传输网络数据包导致数据传输错误的问题(中等)[#9770](https://github.com/apache/doris/pull/9770) - -在以前的版本中,当通过 BRPC 在后端之间传输的数据超过 2GB 时,可能会导致数据传输错误。 - -## 其他 - -### 禁用 Mini Load - -Mini Load 与 Stream Load 的导入实现方式完全一致,都是通过 HTTP 协议提交和传输数据,在导入功能支持上 Stream Load 更加完备。 - -在 1.1 版本中,默认情况下 Mini Load 接口 `/_load` 将处于禁用状态,请统一使用 Stream Load 来替换 Mini Load。您也可以通过关闭 FE 配置项 `disable_mini_load` 来重新启用 Mini Load 接口。在版本 1.2 中,将彻底删除 Mini Load。 - -### 完全禁用 SegmentV1 存储格式 - -在 1.1 版本中将不再允许新创建 SegmentV1 存储格式的数据,现有数据仍可以继续正常访问。 - -您可以使用 ADMIN SHOW TABLET STORAGE FORMAT 语句检查集群中是否仍然存在 SegmentV1 格式的数据,如果存在请务必通过数据转换命令转换为 SegmentV2。 - -在 Apache Doris 1.2 版本中不再支持对 Segment V1 数据的访问,同时 Segment V1 代码将被彻底删除。 - -### 限制 String 类型的最大长度 [#8567](https://github.com/apache/doris/pull/8567) - -String 类型是 Apache Doris 在 0.15 版本中引入的新数据类型,在过去 String 类型的最大长度允许为 2GB。 - -在 1.1 版本中,我们将 String 类型的最大长度限制为 1 MB,超过此长度的字符串无法再写入,同时不再支持将 String 类型用作表的 Key 列、分区列以及分桶列。 - -已写入的字符串类型可以正常访问。 - -### 修复 fastjson 相关漏洞 [#9763](https://github.com/apache/doris/pull/9763) - -对 Canal 版本进行更新以修复 fastjson 安全漏洞 - -### 添加了 ADMIN DIAGNOSE TABLET 命令 [#8839](https://github.com/apache/doris/pull/8839) - -通过 ADMIN DIAGNOSE TABLET tablet_id 命令可以快速诊断指定 Tablet 的问题。 - -## 下载使用 - -### 下载链接 - -[https://doris.apache.org/zh-CN/download](https://doris.apache.org/zh-CN/download) - -### 升级说明 - -您可以从 Apache Doris 1.0 Release 版本和 1.0.x 发行版本升级到 1.1 Release 版本,升级过程请官网参考文档。如果您当前是 0.15 Release 版本或 0.15.x 发行版本,可跳过 1.0 版本直接升级至 1.1。 - -[https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade](https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade - -### 意见反馈 - -如果您遇到任何使用上的问题,欢迎随时通过 GitHub Discussion 论坛或者 Dev 邮件组与我们取得联系。 - -GitHub 论坛:[https://github.com/apache/incubator-doris/discussions](https://github.com/apache/doris/discussions) - -Dev 邮件组:dev@doris.apache.org - -## 致谢 - -Apache Doris 1.1 Release 版本的发布离不开所有社区用户的支持,在此向所有参与版本设计、开发、测试、讨论的社区贡献者们表示感谢,他们分别是: - -``` - -@adonis0147 - -@airborne12 - -@amosbird - -@aopangzi - -@arthuryangcs - -@awakeljw - -@BePPPower - -@BiteTheDDDDt - -@bridgeDream - -@caiconghui - -@cambyzju - -@ccoffline - -@chenlinzhong - -@daikon12 - -@DarvenDuan - -@dataalive - -@dataroaring - -@deardeng - -@Doris-Extras - -@emerkfu - -@EmmyMiao87 - -@englefly - -@Gabriel39 - -@GoGoWen - -@gtchaos - -@HappenLee - -@hello-stephen - -@Henry2SS - -@hewei-nju - -@hf200012 - -@jacktengg - -@jackwener - -@Jibing-Li - -@JNSimba - -@kangshisen - -@Kikyou1997 - -@kylinmac - -@Lchangliang - -@leo65535 - -@liaoxin01 - -@liutang123 - -@lovingfeel - -@luozenglin - -@luwei16 - -@luzhijing - -@mklzl - -@morningman - -@morrySnow - -@nextdreamblue - -@Nivane - -@pengxiangyu - -@qidaye - -@qzsee - -@SaintBacchus - -@SleepyBear96 - -@smallhibiscus - -@spaces-X - -@stalary - -@starocean999 - -@steadyBoy - -@SWJTU-ZhangLei - -@Tanya-W - -@tarepanda1024 - -@tianhui5 - -@Userwhite - -@wangbo - -@wangyf0555 - -@weizuo93 - -@whutpencil - -@wsjz - -@wunan1210 - -@xiaokang - -@xinyiZzz - -@xlwh - -@xy720 - -@yangzhg - -@Yankee24 - -@yiguolei - -@yinzhijian - -@yixiutt - -@zbtzbtzbt - -@zenoyang - -@zhangstar333 - -@zhangyifan27 - -@zhannngchen - -@zhengshengjun - -@zhengshiJ - -@zingdle - -@zuochunwei - -@zy-kkk -``` diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.1.md deleted file mode 100644 index 9528987f322bc..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.1.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -{ - "title": "Release 1.1.1", - "language": "zh-CN", - "description": "在 1.1.0 版本的向量化执行引擎中 ODBC Sink 是不支持的,而这一功能在之前版本的行存引擎是支持的,因此在 1.1.1 版本中我们重新完善了这一功能。" -} ---- - -## 新增功能 - -### 向量化执行引擎支持 ODBC Sink。 - -在 1.1.0 版本的向量化执行引擎中 ODBC Sink 是不支持的,而这一功能在之前版本的行存引擎是支持的,因此在 1.1.1 版本中我们重新完善了这一功能。 - -### 增加简易版 MemTracker - -MemTracker 是一个用于分析内存使用情况的统计工具,在 1.1.0 版本的向量化执行引擎中,由于 BE 侧没有 MemTracker,可能出现因内存失控导致的 OOM 问题。在 1.1.1 版本中,BE 侧增加了一个简易版 MemTracker,可以帮助控制内存,并在内存超出时取消查询。 - -完整版 MemTracker 将在 1.1.2 版本中正式发布。 - - -## 改进 - -### 支持在 Page Cache 中缓存解压后数据。 - -在 Page Cache 中有些数据是用 bitshuffle 编码方式压缩的,在查询过程中需要花费大量的时间来解压。在 1.1.1 版本中,Doris 将缓存解压由 bitshuffle 编码的数据以加速查询,我们发现在 ssb-flat 的一些查询中,可以减少 30% 的延时。 - -## Bug 修复 - -### 修复无法从 1.0 版本进行滚动升级的问题。 - -这个问题是在 1.1.0 版本中出现的,当升级 BE 而不升级 FE 时,可能会导致 BE Core。 - -如果你遇到这个问题,你可以尝试用 [#10833](https://github.com/apache/doris/pull/10833) 来修复它。 - -### 修复某些查询不能回退到非向量化引擎的问题,并导致 BE Core。 - -目前,向量化执行引擎不能处理所有的 SQL 查询,一些查询(如 left outer join)将使用非向量化引擎来运行。但部分场景在 1.1.0 版本中未被覆盖到,这可能导致 BE 挂掉。 - -### 修复 Compaction 不能正常工作导致的 -235 错误。 - -在 Unique Key 模型中,当一个 Rowset 有多个 Segment 时,在做 Compaction 过程中由于没有正确的统计行数,会导致 Compaction 失败并且产生 Tablet 版本过多而导致的 -235 错误。 - -### 修复查询过程中出现的部分 Segment fault。 - -[#10961](https://github.com/apache/doris/pull/10961) -[#10954](https://github.com/apache/doris/pull/10954) -[#10962](https://github.com/apache/doris/pull/10962) - -# 致谢 - -感谢所有参与贡献 1.1.1 版本的开发者: - -``` -@jacktengg -@mrhhsg -@xinyiZzz -@yixiutt -@starocean999 -@morrySnow -@morningman -@HappenLee -``` \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.2.md deleted file mode 100644 index 088729a604170..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.2.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -{ - "title": "Release 1.1.2", - "language": "zh-CN", - "description": "在 Apache Doris 1.1.2 版本中,我们引入了新的 Memtracker、极大程度上避免 OOM 类问题的发生,提升了向量化执行引擎在多数查询场景的性能表现,修复了诸多导致 BE 和 FE 发生异常的问题,优化了在湖仓联邦查询场景的部分体验问题并提升访问外部数据的性能。" -} ---- - -在 Apache Doris 1.1.2 版本中,我们引入了新的 Memtracker、极大程度上避免 OOM 类问题的发生,提升了向量化执行引擎在多数查询场景的性能表现,修复了诸多导致 BE 和 FE 发生异常的问题,优化了在湖仓联邦查询场景的部分体验问题并提升访问外部数据的性能。 - -相较于 1.1.1 版本,在 1.1.2 版本中有超过 170 个 Issue 和性能优化项被合入,系统稳定性和性能都得到进一步加强。与此同时,1.1.2 版本还将作为 Apache Doris 首个 LTS(Long-term Support)长周期支持版本,后续长期维护和支持,推荐所有用户下载和升级。 - -# 新增功能 - -### MemTracker - -MemTracker 是一个用于分析内存使用情况的统计工具,在 1.1.1 版本中我们引入了简易版 Memtracker 用以控制 BE 侧内存。在 1.1.2 版本中,我们引入了新的 MemTracker,在向量化执行引擎和非向量化执行引擎中都更为准确。 - -### 增加展示和取消正在执行 Query 的 API - -`GET /rest/v2/manager/query/current_queries` - -`GET /rest/v2/manager/query/kill/{query_id}` - -具体使用参考文档 [Query Profile Action](https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/manager/query-profile-action?_highlight=current&_highlight=query#request) - -### 支持读写 Emoji 表情通过 ODBC 外表 - - -# 优化改进 - -### 数据湖相关改进 - -- 扫描 HDFS ORC 文件时性能提升约 300%。[#11501](https://github.com/apache/doris/pull/11501) - -- 查询 Iceberg 表支持 HDFS 的 HA 模式。 - -- 支持查询由 [Apache Tez](https://tez.apache.org/) 创建的 Hive 数据 - -- 添加阿里云 OSS 作为 Hive 外部支持 - -### 在 Spark Load 中增加对 String 字符串类型和 Text 文本类型的支持 - - -### 在非向量化引擎支持复用 Block,在某些场景中有 50% 性能提升。[#11392](https://github.com/apache/doris/pull/11392) - -### 提升 Like 和正则表达式的性能 - -### 禁用 TCMalloc 的 aggressive_memory_decommit。 - -在查询或导入时将会有 40% 性能提升,也可以在配置文件中通过 `tc_enable_aggressive_memory_decommit`来修改 - -# Bug Fix - -### 修复部分可能导致 FE 失败或者数据损坏的问题 - -- 在 HA 环境中,BDBJE 将保留尽可能多的文件,通过增加配置 `bdbje_reserved_disk_bytes `以避免产生太多的 BDBJE 文件,BDBJE 日志只有在接近磁盘限制时才会删除。 - -- 修复了 BDBJE 中的重要错误,该错误将导致 FE 副本无法正确启动或数据损坏。 - -### 修复 FE 在查询过程中会在 waitFor_rpc 上 Hang 住以及 BE 在高并发情况下会 Hang 住的问题。 - -[#12459](https://github.com/apache/doris/pull/12459) [#12458](https://github.com/apache/doris/pull/12458) [#12392](https://github.com/apache/doris/pull/12392) - -### 修复向量化执行引擎查询时得到错误结果的问题。 - -[#11754](https://github.com/apache/doris/pull/11754) [#11694](https://github.com/apache/doris/pull/11694) - -### 修复许多 Planner 导致 BE Core 或者处于不正常状态的问题。 - -[#12080](https://github.com/apache/doris/pull/12080) [#12075](https://github.com/apache/doris/pull/12075) [#12040](https://github.com/apache/doris/pull/12040) [#12003](https://github.com/apache/doris/pull/12003) [#12007](https://github.com/apache/doris/pull/12007) [#11971](https://github.com/apache/doris/pull/11971) [#11933](https://github.com/apache/doris/pull/11933) [#11861](https://github.com/apache/doris/pull/11861) [#11859](https://github.com/apache/doris/pull/11859) [#11855](https://github.com/apache/doris/pull/11855) [#11837](https://github.com/apache/doris/pull/11837) [#11834](https://github.com/apache/doris/pull/11834) [#11821](https://github.com/apache/doris/pull/11821) [#11782](https://github.com/apache/doris/pull/11782) [#11723](https://github.com/apache/doris/pull/11723) [#11569](https://github.com/apache/doris/pull/11569) - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.3.md deleted file mode 100644 index 43b3411405206..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.3.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -{ - "title": "Release 1.1.3", - "language": "zh-CN", - "description": "作为 1.1.2 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.3 版本中,有超过 80 个 Issue 或性能优化项被合入,优化了在导入或查询过程中的内存控制," -} ---- - -作为 1.1.2 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.3 版本中,有超过 80 个 Issue 或性能优化项被合入,优化了在导入或查询过程中的内存控制,修复了许多导致 BE Core 以及产生错误查询结果的问题,系统稳定性和性能得以进一步加强,推荐所有用户下载和使用。 - -# 新增功能 - -- 在 ODBC 表中支持 SQLServer 和 PostgreSQL 的转义标识符。 - -- 支持使用 Parquet 作为导出文件格式。 - -# 优化改进 - -- 优化了 Flush 策略以及避免过多 Segment 小文件。 [#12706](https://github.com/apache/doris/pull/12706) [#12716](https://github.com/apache/doris/pull/12716) - -- 重构 Runtime Filter 以减少初始准备时间。 [#13127](https://github.com/apache/doris/pull/13127) - -- 修复了若干个在查询或导入过程中的内存控制问题。 [#12682](https://github.com/apache/doris/pull/12682) [#12688](https://github.com/apache/doris/pull/12688) [#12708](https://github.com/apache/doris/pull/12708) [#12776](https://github.com/apache/doris/pull/12776) [#12782](https://github.com/apache/doris/pull/12782) [#12791](https://github.com/apache/doris/pull/12791) [#12794](https://github.com/apache/doris/pull/12794) [#12820](https://github.com/apache/doris/pull/12820) [#12932](https://github.com/apache/doris/pull/12932) [#12954](https://github.com/apache/doris/pull/12954) [#12951](https://github.com/apache/doris/pull/12951) - -# Bug 修复 - -- 修复了 largeint 类型在 Compaction 过程中导致 Core 的问题。 [#10094](https://github.com/apache/doris/pull/10094) - -- 修复了 Grouping set 导致 BE Core 或者返回错误结果的问题。 [#12313](https://github.com/apache/doris/pull/12313) - -- 修复了使用 orthogonal_bitmap_union_count 函数时执行计划 PREAGGREGATION 显示错误的问题。 [#12581](https://github.com/apache/doris/pull/12581) - -- 修复了 Level1Iterator 未被释放导致的内存泄漏问题。 [#12592](https://github.com/apache/doris/pull/12592) - -- 修复了当 2 BE 且存在 Colocation 表时通过 Decommission 下线节点失败的问题。 [#12644](https://github.com/apache/doris/pull/12644) - -- 修复了 TBrokerOpenReaderResponse 过大时导致堆栈缓冲区溢出而导致的 BE Core 问题。 [#12658](https://github.com/apache/doris/pull/12658) - -- 修复了出现 -238 错误时 BE 节点可能 OOM 的问题。 [#12666](https://github.com/apache/doris/pull/12666) - -- 修复了 LEAD() 函数错误子表达式的问题。 [#12587](https://github.com/apache/doris/pull/12587) - -- 修复了行存代码中相关查询失败的问题。 [#12712](https://github.com/apache/doris/pull/12712) - -- 修复了 curdate()/current_date() 函数产生错误结果的问题。 [#12720](https://github.com/apache/doris/pull/12720) - -- 修复了 lateral View explode_split 函数出现错误结果的问题。 [#13643](https://github.com/apache/doris/pull/13643) - -- 修复了两张相同表中 Bucket Shuffle Join 计划错误的问题。 [#12930](https://github.com/apache/doris/pull/12930) - -- 修复了更新或导入过程中 Tablet 版本可能错误的问题。 [#13070](https://github.com/apache/doris/pull/13070) - -- 修复了在加密函数下使用 Broker 导入数据时 BE 可能发生 Core 的问题。 [#13009](https://github.com/apache/doris/pull/13009) - -# 升级说明 - -默认情况下禁用 PageCache 和 ChunkAllocator 以减少内存使用,用户可以通过修改配置项 `disable_storage_page_cache` 和 `chunk_reserved_bytes_limit` 来重新启用。 - -Storage Page Cache 和 Chunk Allocator 分别缓存用户数据块和内存预分配。 - -这两个功能会占用一定比例的内存,并且不会释放。这部分内存占用无法灵活调配,导致在某些场景下,因这部分内存占用而导致其他任务内存不足,影响系统稳定性和可用性。因此我们在 1.1.3 版本中默认关闭了这两个功能。 - -但在某些延迟敏感的报表场景下,关闭该功能可能会导致查询延迟增加。如用户担心升级后该功能对业务造成影响,可以通过在 be.conf 中增加以下参数以保持和之前版本行为一致。 - -``` -disable_storage_page_cache=false -chunk_reserved_bytes_limit=10% -``` - -* `disable_storage_page_cache`:是否关闭 Storage Page Cache。1.1.2(含)之前的版本,默认是 false,即打开。1.1.3 版本默认为 true,即关闭。 -* `chunk_reserved_bytes_limit`:Chunk allocator 预留内存大小。1.1.2(含)之前的版本,默认是整体内存的 10%。1.1.3 版本默认为 209715200(200MB)。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.4.md deleted file mode 100644 index a9d871366d124..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.4.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -{ - "title": "Release 1.1.4", - "language": "zh-CN", - "description": "作为 1.1 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.4 版本中,Doris 团队修复了自 1.1.3 版本以来的约 60 个 Issue 或性能优化项。改进了 Spark Load 的使用体验," -} ---- - -作为 1.1 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.4 版本中,Doris 团队修复了自 1.1.3 版本以来的约 60 个 Issue 或性能优化项。改进了 Spark Load 的使用体验,优化了诸多内存以及 BE 异常宕机的问题,系统稳定性和性能得以进一步加强,推荐所有用户下载和使用。 - -# 新增功能 - -- Broker Load 支持 华为云 OBS 对象存储。[#13523](https://github.com/apache/doris/pull/13523) - -- Spark Load 支持 Parquet 和 Orc 文件。[#13438](https://github.com/apache/doris/pull/13438) - - -# 优化改进 - -- 禁用 Metric Hook 中的互斥量,其将影响数据导入过程中的查询性能。 [#10941](https://github.com/apache/doris/pull/10941) - - -# Bug 修复 - -- 修复了当 Spark Load 加载文件时 Where 条件不生效的问题。 [#13804](https://github.com/apache/doris/pull/13804) - -- 修复了 If 函数存在 Nullable 列时开启向量化返回错误结果的问题。 [#13779](https://github.com/apache/doris/pull/13779) - -- 修复了在使用 Anti Join 和其他 Join 谓词时产生错误结果的问题。 [#13743](https://github.com/apache/doris/pull/13743) - -- 修复了当调用函数 concat(ifnull) 时 BE 宕机的问题。 [#13693](https://github.com/apache/doris/pull/13693) - -- 修复了 group by 语句中存在函数时 planner 错误的问题。 [#13613](https://github.com/apache/doris/pull/13613) - -- 修复了 lateral view 语句不能正确识别表名和列名的问题。 [#13600](https://github.com/apache/doris/pull/13600) - -- 修复了使用物化视图和表别名时出现未知列的问题。 [#13605](https://github.com/apache/doris/pull/13605) - -- 修复了 JSONReader 无法释放值和解析 allocator 内存的问题。 [#13513](https://github.com/apache/doris/pull/13513) - -- 修复了当 enable_vectorized_alter_table 为 true 时允许使用 to_bitmap() 对负值列创建物化视图的问题。 [#13448](https://github.com/apache/doris/pull/13448) - -- 修复了函数 from_date_format_str 中微秒数丢失的问题。 [#13446](https://github.com/apache/doris/pull/13446) - -- 修复了排序 exprs 的 nullability 属性在使用子 smap 信息进行替换后可能不正确的问题。 [#13328](https://github.com/apache/doris/pull/13328) - -- 修复了 case when 有 1000 个条件时出现 Core 的问题。 [#13315](https://github.com/apache/doris/pull/13315) - -- 修复了 Stream Load 导入数据时最后一行数据丢失的问题。 [#13066](https://github.com/apache/doris/pull/13066) - -- 恢复表或分区的副本数与备份前相同。 [#11942](https://github.com/apache/doris/pull/11942) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.5.md deleted file mode 100644 index 2268f4d24f625..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.1/release-1.1.5.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -{ - "title": "Release 1.1.5", - "language": "zh-CN", - "description": "在 1.1.5 版本中,Doris 团队已经修复了自 1.1.4 版本发布以来约 36 个问题或性能改进项。同时,1.1.5 版本也是作为 1.1 LTS 版本的错误修复版本,建议所有用户升级到这个版本。" -} ---- - -在 1.1.5 版本中,Doris 团队已经修复了自 1.1.4 版本发布以来约 36 个问题或性能改进项。同时,1.1.5 版本也是作为 1.1 LTS 版本的错误修复版本,建议所有用户升级到这个版本。 - - -# Behavior Changes - - -当别名与原始列名相同时,例如 "select year(birthday) as birthday",在 group by、order by、having 子句中使用别名时将与 MySQL 中保持一致,Group by 和 having 将首先使用原始列,order by 将首先使用别名。这里可能会对用户带来疑惑,因此建议最好不要使用与原始列名相同的别名。 - -# Features - -支持 Hash 函数 murmur_hash3_64。[#14636](https://github.com/apache/doris/pull/14636) - -# Improvements - -为日期函数 convert_tz 添加时区缓存以提高性能。[#14616](https://github.com/apache/doris/pull/14616) - -当调用 show 子句时,按 tablename 对结果进行排序。 [#14492](https://github.com/apache/doris/pull/14492) - -# Bug Fix - -修复 if 语句中带有常量时导致 BE 可能 Coredump 的问题。[#14858](https://github.com/apache/doris/pull/14858) - -修复 ColumnVector::insert_date_column 可能崩溃的问题 [#14839](https://github.com/apache/doris/pull/14839) - -更新 high_priority_flush_thread_num_per_store 默认值为 6,将提高负载性能。 [#14775](https://github.com/apache/doris/pull/14775) - -优化 quick compaction core。 [#14731](https://github.com/apache/doris/pull/14731) - -修复分区列非 duplicate key 时 Spark Load 抛出 IndexOutOfBounds 错误的问题。 - [#14661](https://github.com/apache/doris/pull/14661) - -修正 VCollectorIterator 中的内存泄漏问题。 [#14549](https://github.com/apache/doris/pull/14549) - -修复了存在 Sequence 列时可能存在的建表问题。 [#14511](https://github.com/apache/doris/pull/14511) - -使用 avg rowset 来计算批量大小,而不是使用 total_bytes,因为它要花费大量的 Cpu。 [#14273](https://github.com/apache/doris/pull/14273) - -修复了 right outer join 可能导致 core 的问题。[#14821](https://github.com/apache/doris/pull/14821) - -优化了 TCMalloc gc 的策略。 [#14777](https://github.com/apache/doris/pull/14777) [#14738](https://github.com/apache/doris/pull/14738) [#14374](https://github.com/apache/doris/pull/14374) - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.0.md deleted file mode 100644 index 428bad6d91ed2..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.0.md +++ /dev/null @@ -1,603 +0,0 @@ ---- -{ - "title": "Release 1.2.0", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,再一次经历数月的等候后,我们很高兴地宣布,Apache Doris 于 2022 年 12 月 7 日迎来 1.2.0 Release 版本的正式发布!有近 118 位 Contributor 为 Apache Doris 提交了超 2400 项优化和修复," -} ---- - -亲爱的社区小伙伴们,再一次经历数月的等候后,我们很高兴地宣布,Apache Doris 于 2022 年 12 月 7 日迎来 1.2.0 Release 版本的正式发布!有近 118 位 Contributor 为 Apache Doris 提交了超 2400 项优化和修复,感谢每一位让 Apache Doris 更好的你! - -自从社区正式确立 LTS 版本管理机制后,在 1.1.x 系列版本中不再合入大的功能,仅提供问题修复和稳定性改进,力求满足更多社区用户在稳定性方面的高要求。而在综合考虑版本迭代节奏和用户需求后,我们决定将众多新特性在 1.2 版本中发布,这无疑承载了众多社区用户和开发者的深切期盼,同时这也是一场厚积而薄发后的全面进化! - -在 1.2 版本中,我们实现了全面的向量化、**实现多场景查询性能 3-11 倍的提升**,在 Unique Key 模型上实现了 Merge-on-Write 的数据更新模式、**数据高频更新时查询性能提升达 3-6 倍**,增加了 Multi-Catalog 多源数据目录、**提供了无缝接入 Hive、ES、Hudi、Iceberg 等外部数据源的能力**,引入了 Light Schema Change 轻量表结构变更、**实现毫秒级的 Schema Change 操作并可以借助 Flink CDC 自动同步上游数据库的 DML 和 DDL 操作**,以 JDBC 外部表替换了过去的 ODBC 外部表,支持了 Java UDF 和 Romote UDF 以及 Array 数组类型和 JSONB 类型,修复了诸多之前版本的性能和稳定性问题,推荐大家下载和使用! - -# 下载安装 -GitHub 下载:[https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - -官网下载页:[https://doris.apache.org/download](https://doris.apache.org/download) - -源码地址:[https://github.com/apache/doris/releases/tag/1.2.0-rc04](https://github.com/apache/doris/releases/tag/1.2.0-rc04) - -### 下载说明: - -由于 Apache 服务器文件大小限制,官网下载页的 1.2.0 版本的二进制程序分为三个包: - -1. apache-doris-fe - -2. apache-doris-be - -3. apache-doris-java-udf-jar-with-dependencies - -其中新增的 `apache-doris-java-udf-jar-with-dependencies` 包用于支持 1.2.0 版本中的 JDBC 外表和 JAVA UDF。下载后,需要将其中的 `java-udf-jar-with-dependencies.jar` 文件放到 `be/lib` 目录下,方可启动 BE,否则无法启动成功。 - -### 部署说明: - -从历史版本升级到 1.2.0 版本,需完整更新 fe、be 下的 bin 和 lib 目录。 - -其他升级注意事项,请完整阅读本发版通告最后一节“升级注意事项”以及安装部署文档 [https://doris.apache.org/zh-CN/docs/dev/install/install-deploy](https://doris.apache.org/zh-CN/docs/dev/install/install-deploy) 和集群升级文档 [https://doris.apache.org/zh-CN/docs/dev/admin-manual/cluster-management/upgrade](https://doris.apache.org/zh-CN/docs/dev/admin-manual/cluster-management/upgrade) - -# 重要更新 - -### 1. 全面向量化支持,性能大幅提升 - -在 Apache Doris 1.2.0 版本中,系统所有模块都实现了向量化,包括数据导入、Schema Change、Compaction、数据导出、UDF 等。新版向量化执行引擎具备了完整替换原有非向量化引擎的能力,后续我们也将考虑在未来版本中去除原有非向量化引擎的代码。 - -与此同时,在全面向量化的基础上,我们对数据扫描、谓词计算、Aggregation 算子、HashJoin 算子、算子之间 Shuffle 效率等进行了全链路的优化,使得查询性能有了大幅提升。 - -我们对 Apache Doris 1.2.0 新版本进行了多个标准测试集的测试,同时选择了 1.1.3 版本和 0.15.0 版本作为对比参照项。经测,1.2.0 **在 SSB-Flat 宽表场景上相对 1.1.3 版本整体性能提升了近 4 倍、相对于 0.15.0 版本性能提升了近 10 倍,在 TPC-H 多表关联场景上较 1.1.3 版本上有近 3 倍的提升、较 0.15.0 版本性能至少提升了 11 倍。** - -![ssb_flat](/images/ssb_flat.png) - -![tpch](/images/tpch.png) - -同时,我们将 1.2.0 版本的测试数据提交到了全球知名的数据库测试排行榜 ClickBench,在最新的排行榜中,Apache Doris 1.2.0 新版本取得了通用机型(c6a.4xlarge, 500gb gp2)下**查询性能 Cold Run 第二和 Hot Run 第三的醒目成绩,共有 8 个 SQL 刷新榜单最佳成绩、成为新的性能标杆**。导入性能方面,1.2.0 新版本数据写入效率在同机型所有产品中位列第一,压缩前 70G 数据写入仅耗时 415s、单节点写入速度超过 170 MB/s,在实现极致查询性能的同时也保证了高效的写入效率! - -![coldrun](/images/coldrun.png) - -![hotrun](/images/hotrun.png) - -### 2. 在 Unique Key 模型上实现了 Merge-on-Write 的数据更新模式 - -在过去版本中,Apache Doris 主要是通过 Unique Key 数据模型来实现数据实时更新的。但由于采用的是 Merge-on-Read 的实现方式,查询存在着效率瓶颈,有大量非必要的 CPU 计算资源消耗和 IO 开销,且可能将出现查询性能抖动等问题。 - -在 1.2.0 版本中,我们在原有的 Unique Key 数据模型上,增加了 Merge-on-Write 的数据更新模式。该模式在数据写入时即对需要删除或更新的数据进行标记,始终保证有效的主键只出现在一个文件中(即在写入的时候保证了主键的唯一性),不需要在读取的时候通过归并排序来对主键进行去重,这对于高频写入的场景来说,大大减少了查询执行时的额外消耗。此外还能够支持谓词下推,并能够很好利用 Doris 丰富的索引,在数据 IO 层面就能够进行充分的数据裁剪,大大减少数据的读取量和计算量,因此在很多场景的查询中都有非常明显的性能提升。 - -在比较有代表性的 SSB-Flat 数据集上,通过模拟多个持续导入场景,**新版本的大部分查询取得了 3-6 倍的性能提升**。 - -![mergeonwrite_ssb](/images/mergeonwrite_ssb.png) - -使用场景:所有对主键唯一性有需求,需要频繁进行实时 Upsert 更新的用户建议打开。 - -使用说明:作为新的 Feature 默认关闭,用户可以通过在建表时添加下面的 Property 来开启: - -``` -“enable_unique_key_merge_on_write” = “true” -``` - -另外新版本 Merge-on-Write 数据更新模式与旧版本 Merge-on-Read 实现方式存在差异,因此已经创建的 Unique Key 表无法直接通过 Alter Table 添加 Property 来支持,只能在新建表的时候指定。如果用户需要将旧表转换到新表,可以使用 `insert into new_table select * from old_table` 的方式来实现。 - -### 3. Multi Catalog 多源数据目录 - -Multi-Catalog 多源数据目录功能的目标在于能够帮助用户更方便对接外部数据目录,以增强 Apache Doris 的数据湖分析和联邦数据查询能力。 - -在过去版本中,当我们需要对接外部数据源时,只能在 Database 或 Table 层级对接。当外部数据目录 Schema 发生变化、或者外部数据目录的 Database 或 Table 非常多时,需要用户手工进行一一映射,维护量非常大。1.2.0 版本新增的多源数据目录功能为 Apache Doris 提供了快速接入外部数据源进行访问的能力,用户可以通过 `CREATE CATALOG` 命令连接到外部数据源,Doris 会自动映射外部数据源的库、表信息。之后,用户就可以像访问普通表一样,对这些外部数据源中的数据进行访问,避免了之前用户需要对每张表手动建立外表映射的复杂操作。 - -目前能支持以下数据源: - -1. Hive Metastore:可以访问包括 Hive、Iceberg、Hudi 在内的数据表,也可对接兼容 Hive Metastore 的数据源,如阿里云的 DataLake Formation,同时支持 HDFS 和对象存储上的数据访问。 - -2. Elasticsearch:访问 ES 数据源。 - -3. JDBC:支持通过 JDBC 访问 MySQL 数据源。 - -注:相应的权限层级也会自动变更,详见“升级注意事项”部分 - -文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog) - -### 4. 轻量表结构变更 Light Schema Change - -在过去版本中,Schema Change 是一项相对消耗比较大的工作,需要对数据文件进行修改,在集群规模和表数据量较大时执行效率会明显降低。同时由于是异步作业,当上游 Schema 发生变更时,需要停止数据同步任务并手动执行 Schema Change,增加开发和运维成本的同时还可能造成消费数据的积压。 - -在 1.2.0 新版本中,对数据表的加减列操作,不再需要同步更改数据文件,仅需在 FE 中更新元数据即可,从而实现毫秒级的 Schema Change 操作,且存在导入任务时效率的提升更为显著。与此同时,使得 Apache Doris 在面对上游数据表维度变化时,可以更加快速稳定实现表结构同步,保证系统的高效且平稳运转。如用户可以通过 Flink CDC,可实现上游数据库到 Doris 的 DML 和 DDL 同步,进一步提升了实时数仓数据处理和分析链路的时效性与便捷性。 - -![lightschemachange_compare.png](/images/lightschemachange_compare.png) - -使用说明:作为新的 Feature 默认关闭,用户可以通过在建表时添加下面的 Property 来开启: - -``` -"light_schema_change" = "true" -``` - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -### 5. JDBC 外部表 - -在过去版本中,Apache Doris 提供了 ODBC 外部表的方式来访问 MySQL、Oracle、SQL Server、PostgreSQL 等数据源,但由于 ODBC 驱动版本问题可能造成系统的不稳定。相对于 ODBC,JDBC 接口更为统一且支持数据库众多,因此在 1.2.0 版本中我们实现了 JDBC 外部表以替换原有的 ODBC 外部表。在新版本中,用户可以通过 JDBC 连接支持 JDBC 协议的外部数据源, - -当前已适配的数据源包括: - -- MySQL -- PostgreSQL -- Oracle -- SQLServer -- ClickHouse - -更多数据源的适配已经在规划之中,原则上任何支持 JDBC 协议访问的数据库均能通过 JDBC 外部表的方式来访问。而之前的 ODBC 外部表功能将会在后续的某个版本中移除,还请尽量切换到 JDBC 外表功能。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc) - -### 6. JAVA UDF - -在过去版本中,Apache Doris 提供了 C++ 语言的原生 UDF,便于用户通过自己编写自定义函数来满足特定场景的分析需求。但由于原生 UDF 与 Doris 代码耦合度高、当 UDF 出现错误时可能会影响集群稳定性,且只支持 C++ 语言,对于熟悉 Hive、Spark 等大数据技术栈的用户而言存在较高门槛,因此在 1.2.0 新版本我们增加了 Java 语言的自定义函数,支持通过 Java 编写 UDF/UDAF,方便用户在 Java 生态中使用。同时,通过堆外内存、Zero Copy 等技术,使得跨语言的数据访问效率大幅提升。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/ecosystem/udf/java-user-defined-function](https://doris.apache.org/zh-CN/docs/dev/ecosystem/udf/java-user-defined-function) - -示例:[https://github.com/apache/doris/tree/master/samples/doris-demo](https://github.com/apache/doris/tree/master/samples/doris-demo) - -### 7. Remote UDF - -远程 UDF 支持通过 RPC 的方式访问远程用户自定义函数服务,从而彻底消除用户编写 UDF 的语言限制,用户可以使用任意编程语言实现自定义函数,完成复杂的数据分析工作。 - -文档:[https://doris.apache.org/zh-CN/docs/ecosystem/udf/remote-user-defined-function](https://doris.apache.org/zh-CN/docs/ecosystem/udf/remote-user-defined-function) - -示例:[https://github.com/apache/doris/tree/master/samples/doris-demo](https://github.com/apache/doris/tree/master/samples/doris-demo) - -### 8. Array/JSONB 复合数据类型 - -- Array 类型 - -支持了数组类型,同时也支持多级嵌套的数组类型。在一些用户画像,标签等场景,可以利用 Array 类型更好的适配业务场景。同时在新版本中,我们也实现了大量数组相关的函数,以更好的支持该数据类型在实际场景中的应用。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/ARRAY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/ARRAY) - -相关函数:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/array-functions/array](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/array-functions/array) - -- JSONB 类型 - -支持二进制的 JSON 数据类型 JSONB。该类型提供更紧凑的 JSONB 编码格式,同时提供在编码格式上的数据访问,相比于使用字符串存储的 JSON 数据,有数倍的性能提升。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/JSONB](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/JSONB) - -相关函数:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/json-functions/jsonb_parse](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/json-functions/jsonb_parse) - -### 9. DateV2/DatatimeV2 新版日期/日期时间数据类型 - -支持 DateV2 日期类型和 DatetimeV2 日期时间类型,相较于原有的 Date 和 Datetime 效率更高且支持最多到微秒的时间精度,建议使用新版日期类型。 - -文档:[https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATETIMEV2](https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATETIMEV2) - - [https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATEV2](https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATEV2) - -影响范围: - 1. 用户需要在建表时指定 DateV2 和 DatetimeV2,原有表的 Date 以及 Datetime 不受影响。 - 2. Datev2 和 Datetimev2 在与原来的 Date 和 Datetime 做计算时(例如等值连接),原有类型会被 cast 成新类型做计算 - 3. Example 参考文档中说明 - -### 10. 全新内存管理框架 - -在 Apache Doris 1.2.0 版本中我们增加了全新的内存跟踪器(Memory Tracker),用以记录 Doris BE 进程内存使用,包括查询、导入、Compaction、Schema Change 等任务生命周期中使用的内存以及各项缓存。通过 Memory Tracker 实现了更加精细的内存监控和控制,大大减少了因内存超限导致的 OOM 问题,使系统稳定性进一步得到提升。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/memory-management/memory-tracker](https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/memory-management/memory-tracker) - -### 11. Table Valued Function 表函数 - -增加了 Table Valued Function(TVF,表函数),TVF 可以视作一张普通的表,可以出现在 SQL 中所有“表”可以出现的位置,让用户像访问关系表格式数据一样,读取或访问来自 HDFS 或 S3 上的文件内容, - -例如使用 S3 TVF 实现对象存储上的数据导入: -``` -insert into tbl select * from s3("s3://bucket/file.*", "ak" = "xx", "sk" = "xxx") where c1 > 2; -``` - -或者直接查询 HDFS 上的数据文件: -``` -insert into tbl select * from hdfs("hdfs://bucket/file.*") where c1 > 2; -``` -TVF 可以帮助用户充分利用 SQL 丰富的表达能力,灵活处理各类数据。 - -文档: -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/s3](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/s3) - -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/hdfs](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/hdfs) - -# 更多功能 - -### 1. 更便捷的分区创建方式 - -支持通过 `FROM TO` 命令创建一个时间范围内的多个分区。 - -文档搜索“MULTI RANGE”: -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -示例: -``` -// 根据时间date 创建分区,支持多个批量逻辑和单独创建分区的混合使用 - -PARTITION BY RANGE(event_day)( - FROM ("2000-11-14") TO ("2021-11-14") INTERVAL 1 YEAR, - FROM ("2021-11-14") TO ("2022-11-14") INTERVAL 1 MONTH, - FROM ("2022-11-14") TO ("2023-01-03") INTERVAL 1 WEEK, - FROM ("2023-01-03") TO ("2023-01-14") INTERVAL 1 DAY, - PARTITION p_20230114 VALUES [('2023-01-14'), ('2023-01-15')) -) -``` -``` -// 根据时间datetime 创建分区 -PARTITION BY RANGE(event_time)( - FROM ("2023-01-03 12") TO ("2023-01-14 22") INTERVAL 1 HOUR -) -``` - -### 2. 列重命名 - -对于开启了 Light Schema Change 的表,支持对列进行重命名。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-RENAME ](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-RENAME ) - -### 3. 更丰富权限管理 - -- 支持行级权限 - -可以通过 `CREATE ROW POLICY` 命令创建行级权限。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-POLICY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-POLICY) - -- 支持指定密码强度、过期时间等。 - -- 支持在多次失败登录后锁定账户。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Account-Management-Statements/ALTER-USER](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Account-Management-Statements/ALTER-USER) - -### 4. 导入相关 - -- CSV 导入支持带 header 的 CSV 文件。 - -在文档中搜索 `csv_with_names`:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD/](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD/) - -- Stream Load 新增 `hidden_columns`,可以显式指定 delete flag 列和 sequence 列。 - -在文档中搜索 `hidden_columns`:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD) - -- Spark Load 支持 Parquet 和 ORC 文件导入。 -- 支持清理已完成的导入的 Label - 文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CLEAN-LABEL](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CLEAN-LABEL) - -- 支持通过状态批量取消导入作业 -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CANCEL-LOAD](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CANCEL-LOAD) - -- Broker Load 新增支持阿里云 OSS,腾讯 CHDFS 和华为云 OBS。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/advanced/broker](https://doris.apache.org/zh-CN/docs/dev/advanced/broker) - -- 支持通过 hive-site.xml 文件配置访问 HDFS。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/config/config-dir](https://doris.apache.org/zh-CN/docs/dev/admin-manual/config/config-dir) - -### 5. 支持通过 `SHOW CATALOG RECYCLE BIN` 功能查看回收站中的内容。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Show-Statements/SHOW-CATALOG-RECYCLE-BIN](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Show-Statements/SHOW-CATALOG-RECYCLE-BIN) - -### 6. 支持 `SELECT * EXCEPT` 语法。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/data-table/basic-usage](https://doris.apache.org/zh-CN/docs/dev/data-table/basic-usage) - -### 7. OUTFILE 支持 ORC 格式导出,并且支持多字节分隔符。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE) - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE) - -### 8. 支持通过配置修改可保存的 Query Profile 的数量。 - -文档搜索 FE 配置项:`max_query_profile_num` - -### 9. DELETE 语句支持 IN 谓词条件。并且支持分区裁剪。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/DELETE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/DELETE) - -### 10. 时间列的默认值支持使用 `CURRENT_TIMESTAMP` - -文档中搜索 "CURRENT_TIMESTAMP":[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -### 11. 添加两张系统表:backends、rowsets - -backends 是 Doris 中内置系统表,存放在 information_schema 数据库下,通过该系统表可以查看当前 Doris 集群中的 BE 节点信息。 - -rowsets 是 Doris 中内置系统表,存放在 information_schema 数据库下,通过该系统表可以查看 Doris 集群中各个 BE 节点当前 rowsets 情况。 - -文档: - -[https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/backends](https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/backends) - -[https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/rowsets](https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/rowsets) - -### 12. 备份恢复 - - - Restore 作业支持 `reserve_replica` 参数,使得恢复后的表的副本数和备份时一致。 - - Restore 作业支持 `reserve_dynamic_partition_enable` 参数,使得恢复后的表保持动态分区开启状态。 - - 文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/RESTORE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/RESTORE) - - - 支持通过内置的 libhdfs 进行备份恢复操作,不再依赖 broker。 - - 文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/CREATE-REPOSITORY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/CREATE-REPOSITORY) - -### 13. 支持同机多磁盘之间的数据均衡 - -文档: - -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-REBALANCE-DISK](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-REBALANCE-DISK) - -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-CANCEL-REBALANCE-DISK](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-CANCEL-REBALANCE-DISK) - -### 14. Routine Load 支持订阅 Kerberos 认证的 Kafka 服务。 - -文档中搜索 kerberos:[https://doris.apache.org/zh-CN/docs/dev/data-operate/import/import-way/routine-load-manual](https://doris.apache.org/zh-CN/docs/dev/data-operate/import/import-way/routine-load-manual) - -### 15. New built-in-function 新增内置函数 - - 新增以下内置函数: - - - cbrt - - sequence_match/sequence_count - - mask/mask_first_n/mask_last_n - - elt - - any/any_value - - group_bitmap_xor - - ntile - - nvl - - uuid - - initcap - - regexp_replace_one/regexp_extract_all - - multi_search_all_positions/multi_match_any - - domain/domain_without_www/protocol - - running_difference - - bitmap_hash64 - - murmur_hash3_64 - - to_monday - - not_null_or_empty - - window_funnel - - outer combine - 以及所有 Array 函数 - -# 升级注意事项 - -### FE 元数据版本变更【重要】 - -FE Meta Version 由 107 变更为 114,因此从 1.1.x 以及更早版本升级至 1.2.0 版本后,不可回滚到之前版本。 -升级过程中,建议通过灰度升级的方式,先升级部分节点并观察业务运行情况,以降低升级风险,若执行非法的回滚操作将可能导致数据丢失与损坏。 - -### 行为改变 - -- 权限层级变更。 - - 因为引入了 Catalog 层级,所以相应的用户权限层级也会自动变更。规则如下: - - - GlobalPrivs 和 ResourcePrivs 保持不变 - - 新增 CatalogPrivs 层级。 - - 原 DatabasePrivs 层级增加 internal 前缀(表示 internal catalog 中的 db) - - 原 TablePrivs 层级增加 internal 前缀(表示 internal catalog 中的 tbl) -- GroupBy 和 Having 子句中,优先使用列名而不是别名进行匹配。 -- 不再支持创建以 "mv_" 开头的列。"mv_" 是物化视图中的保留关键词 -- 移除了 order by 语句默认添加的 65535 行的 Limit 限制,并增加 Session 变量 `default_order_by_limit` 可以自定配置这个限制。 -- "Create Table As Select" 生成的表,所有字符串列统一使用 String 类型,不再区分 varchar/char/string -- audit log 中,移除 db 和 user 名称前的 `default_cluster` 字样。 -- audit log 中增加 sql digest 字段 -- union 子句总 order by 逻辑变动。新版本中,order by 子句将在 union 执行完成后执行,除非通过括号进行显式的关联。 -- 进行 decommission 操作时,会忽略回收站中的 tablet,确保 decomission 能够完成。 -- Decimal 的返回结果将按照原始列中声明的精度进行显示,或者按照显式指定的 cast 函数中的精度进行展示。 -- 列名的长度限制由 64 变更为 256 -- FE 配置项变动 - - 默认开启 `enable_vectorized_load` 参数。 - - 增大了 `create_table_timeout` 值。建表操作的默认超时时间将增大。 - - 修改 `stream_load_default_timeout_second` 默认值为 3 天。 - - 修改`alter_table_timeout_second` 的默认值为 一个月。 - - 增加参数 `max_replica_count_when_schema_change` 用于限制 alter 作业中涉及的 replica 数量,默认为 100000。 - - 添加 `disable_iceberg_hudi_table`。默认禁用了 iceberg 和 hudi 外表,推荐使用 multi catalog 功能。 -- BE 配置项变动 - - 移除了 `disable_stream_load_2pc` 参数。2PC 的 stream load 可直接使用。 - - 修改`tablet_rowset_stale_sweep_time_sec` ,从 1800 秒修改为 300 秒。 -- Session 变量变动 - - 修改变量 `enable_insert_strict` 默认为 true。这会导致一些之前可以执行,但是插入了非法值的 insert 操作,不再能够执行。 - - 修改变量 `enable_local_exchange` 默认为 true - - 默认通过 lz4 压缩进行数据传输,通过变量 `fragment_transmission_compression_codec` 控制 - - 增加 `skip_storage_engine_merge` 变量,用于调试 unique 或 agg 模型的数据 - 文档:https://doris.apache.org/zh-CN/docs/dev/advanced/variables -- BE 启动脚本会通过 `/proc/sys/vm/max_map_count` 检查数值是否大于 200W,否则启动失败。 -- 移除了 mini load 接口 - -### 升级过程中需注意 - -1. 升级准备 - - 需替换:lib, bin 目录(start/stop 脚本均有修改) - - BE 也需要配置 JAVA_HOME,已支持 JDBC Table 和 Java UDF。 - - fe.conf 中默认 JVM Xmx 参数修改为 8GB。 - -2. 升级过程中可能的错误 - - repeat 函数不可使用并报错:`vectorized repeat function cannot be executed`,可以在升级前先关闭向量化执行引擎。 - - schema change 失败并报错:`desc_tbl is not set. Maybe the FE version is not equal to the BE` - - 向量化 hash join 不可使用并报错。`vectorized hash join cannot be executed`。可以在升级前先关闭向量化执行引擎。 - -以上错误在完全升级后会恢复正常。 - -### 性能影响 - -- 默认使用 JeMalloc 作为新版本 BE 的内存分配器,替换 TcMalloc。 - -JeMalloc 相比 TcMalloc 使用的内存更少、高并发场景性能更高,但在内存充足的性能测试时,TcMalloc 比 JeMalloc 性能高 5%-10%,详细测试见:https://github.com/apache/doris/pull/12496 - -- tablet sink 中的 batch size 修改为至少 8K。 -- 默认关闭 Page Cache 和 减少 Chunk Allocator 预留内存大小 - -Page Cache 和 Chunk Allocator 分别缓存用户数据块和内存预分配,这两个功能会占用一定比例的内存并且不会释放。由于这部分内存占用无法灵活调配,导致在某些场景下可能因这部分内存占用而导致其他任务内存不足,影响系统稳定性和可用性,因此新版本中默认关闭了这两个功能。 - -但在某些延迟敏感的报表场景下,关闭该功能可能会导致查询延迟增加。如用户担心升级后该功能对业务造成影响,可以通过在 be.conf 中增加以下参数以保持和之前版本行为一致。 -``` -disable_storage_page_cache=false -chunk_reserved_bytes_limit=10% -``` - -### API 变化 - -- BE 的 http api 错误返回信息,由 `{"status": "Fail", "msg": "xxx"}` 变更为更具体的 ``{"status": "Not found", "msg": "Tablet not found. tablet_id=1202"}`` - -- `SHOW CREATE TABLE` 中,comment 的内容由双引号包裹变为单引号包裹 - -- 支持普通用户通过 http 命令获取 query profile。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/manager/query-profile-action](https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/manager/query-profile-action) - -- 优化了 sequence 列的指定方式,可以直接指定列名。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/data-operate/update-delete/sequence-column-manual](https://doris.apache.org/zh-CN/docs/dev/data-operate/update-delete/sequence-column-manual) - -- `show backends` 和 `show tablets` 返回结果中,增加远端存储的空间使用情况 (#11450) -- 移除了 Num-Based Compaction 相关代码 (#13409) -- 重构了 BE 的错误码机制,部分返回的错误信息会发生变化 (#8855) - -# 其他 - -- 支持 Docker 官方镜像。 -- 支持在 MacOS(x86/M1) 和 ubuntu-22.04 上编译 Doris -- 支持进行 image 文件的校验。 - -文档搜索“--image”:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/metadata-operation](https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/metadata-operation) -- 脚本相关 - - FE、BE 的 stop 脚本支持通过 `--grace` 参数退出 FE、BE(使用 kill -15 信号代替 kill -9) - - FE start 脚本支持通过 --version 查看当前 FE 版本 (#11563) -- 支持通过 `ADMIN COPY TABLET` 命令获取某个 tablet 的数据和相关建表语句,用于本地问题调试 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET) - -- 支持通过 http api,获取一个 SQL 语句相关的 建表语句,用于本地问题复现 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/query-schema-action](https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/query-schema-action) - -- 支持建表时关闭这个表的 compaction 功能,用于测试 - -文档中搜索 "disble_auto_compaction":[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -# 致谢 - -Apache Doris 1.2.0 版本的发布离不开所有社区用户的支持,在此向所有参与版本设计、开发、测试、讨论的社区贡献者们表示感谢,他们分别是(首字母排序): - -``` -@924060929 -@a19920714liou -@adonis0147 -@Aiden-Dong -@aiwenmo -@AshinGau -@b19mud -@BePPPower -@BiteTheDDDDt -@bridgeDream -@ByteYue -@caiconghui -@CalvinKirs -@cambyzju -@caoliang-web -@carlvinhust2012 -@catpineapple -@ccoffline -@chenlinzhong -@chovy-3012 -@coderjiang -@cxzl25 -@dataalive -@dataroaring -@dependabot -@dinggege1024 -@DongLiang-0 -@Doris-Extras -@eldenmoon -@EmmyMiao87 -@englefly -@FreeOnePlus -@Gabriel39 -@gaodayue -@geniusjoe -@gj-zhang -@gnehil -@GoGoWen -@HappenLee -@hello-stephen -@Henry2SS -@hf200012 -@huyuanfeng2018 -@jacktengg -@jackwener -@jeffreys-cat -@Jibing-Li -@JNSimba -@Kikyou1997 -@Lchangliang -@LemonLiTree -@lexoning -@liaoxin01 -@lide-reed -@link3280 -@liutang123 -@liuyaolin -@LOVEGISER -@lsy3993 -@luozenglin -@luzhijing -@madongz -@morningman -@morningman-cmy -@morrySnow -@mrhhsg -@Myasuka -@myfjdthink -@nextdreamblue -@pan3793 -@pangzhili -@pengxiangyu -@platoneko -@qidaye -@qzsee -@SaintBacchus -@SeekingYang -@smallhibiscus -@sohardforaname -@song7788q -@spaces-X -@ssusieee -@stalary -@starocean999 -@SWJTU-ZhangLei -@TaoZex -@timelxy -@Wahno -@wangbo -@wangshuo128 -@wangyf0555 -@weizhengte -@weizuo93 -@wsjz -@wunan1210 -@xhmz -@xiaokang -@xiaokangguo -@xinyiZzz -@xy720 -@yangzhg -@Yankee24 -@yeyudefeng -@yiguolei -@yinzhijian -@yixiutt -@yuanyuan8983 -@zbtzbtzbt -@zenoyang -@zhangboya1 -@zhangstar333 -@zhannngchen -@ZHbamboo -@zhengshiJ -@zhenhb -@zhqu1148980644 -@zuochunwei -@zy-kkk -``` diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.1.md deleted file mode 100644 index 1f438d4137a68..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.1.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -{ - "title": "Release 1.2.1", - "language": "zh-CN", - "description": "在 1.2.1 版本中,Doris 团队已经修复了自 1.2.0 版本发布以来约 200 个问题或性能改进项。同时,1.2.1 版本也作为 1.2 的第一个迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。" -} ---- - -在 1.2.1 版本中,Doris 团队已经修复了自 1.2.0 版本发布以来约 200 个问题或性能改进项。同时,1.2.1 版本也作为 1.2 的第一个迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - - -# 优化改进 - -### 支持高精度小数 DecimalV3 - -支持精度更高和性能更好的 DecimalV3,相较于过去版本具有以下优势: - -- 可表示范围更大,取值范围都进行了明显扩充,有效数字范围 [1,38]。 - -- 性能更高,根据不同精度,占用存储空间可自适应调整。 - -- 支持更完备的精度推演,对于不同的表达式,应用不同的精度推演规则对结果的精度进行推演。 - -[DecimalV3](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/DECIMALV3) - -### 支持 Iceberg V2 - -支持 Iceberg V2 (仅支持 Position Delete,Equality Delete 会在后续版本支持),可以通过 Multi-Catalog 功能访问 Iceberg V2 格式的表。 - - -### 支持 OR 条件转 IN - -支持将 where 条件表达式后的 or 条件转换成 in 条件,在部分场景中可以提升执行效率。 [#15437](https://github.com/apache/doris/pull/15437) [#12872](https://github.com/apache/doris/pull/12872) - - -### 优化 JSONB 类型的导入和查询性能 - -优化 JSONB 类型的导入和查询性能,在测试数据上约有 70% 的性能提升。 [#15219](https://github.com/apache/doris/pull/15219) [#15219](https://github.com/apache/doris/pull/15219) - -### Stream load 支持带引号的 CSV 数据 - -通过导入任务参数 `trim_double_quotes` 来控制,默认值为 false,为 true 时表示裁剪掉 CSV 文件每个字段最外层的双引号。 [#15241](https://github.com/apache/doris/pull/15241) - -### Broker 支持腾讯云 CHDFS 和 百度云 BOS、AFS - -可以通过 Broker 访问存储在腾讯云 CHDFS 和 百度智能云 BOS、AFS 上的数据。 [#15297](https://github.com/apache/doris/pull/15297) [#15448](https://github.com/apache/doris/pull/15448) - -### 新增函数 - -新增函数 `substring_index`。 [#15373](https://github.com/apache/doris/pull/15373) - - - -# 问题修复 - -- 修复部分情况下,从 1.1.x 版本升级到 1.2.0 版本后,用户权限信息丢失的问题。 [#15144](https://github.com/apache/doris/pull/15144) - -- 修复使用 date/datetimev2 类型进行分区时,分区值错误的问题。 [#15094](https://github.com/apache/doris/pull/15094) - -- 修复部分已发布功能的 Bug,具体列表可参阅:[PR List](https://github.com/apache/doris/pulls?q=is%3Apr+label%3Adev%2F1.2.1-merged+is%3Aclosed) - - -# 升级注意事项 - -### 已知问题 - -- 请勿使用 JDK11 作为 BE 的运行时 JDK,会导致 BE Crash。 - -- 该版本对 csv 格式的读取性能有下降,会影响 csv 格式的导入和读取效率,我们会在下一个三位版本尽快修复 - -### 行为改变 - -- BE 配置项 `high_priority_flush_thread_num_per_store` 默认值由 1 改成 6,以提升 Routine Load 的写入效率。[#14775](https://github.com/apache/doris/pull/14775) - -- FE 配置项 `enable_new_load_scan_node` 默认值改为 true,将使用新的 File Scan Node 执行导入任务,对用户无影响。 [#14808](https://github.com/apache/doris/pull/14808) - -- 删除 FE 配置项 `enable_multi_catalog`,默认开启 Multi-Catalog 功能。 - -- 默认强制开启向量化执行引擎。会话变量 `enable_vectorized_engine` 将不再生效,如需重新生效,需将 FE 配置项 `disable_enable_vectorized_engine` 设为 false,并重启 FE。 [#15213](https://github.com/apache/doris/pull/15213) - -# 致谢 - -有 45 位贡献者参与到 1.2.1 版本的开发与完善中,感谢他们的付出,他们分别是: - -@adonis0147 - -@AshinGau - -@BePPPower - -@BiteTheDDDDt - -@ByteYue - -@caiconghui - -@cambyzju - -@chenlinzhong - -@dataroaring - -@Doris-Extras - -@dutyu - -@eldenmoon - -@englefly - -@freemandealer - -@Gabriel39 - -@HappenLee - -@Henry2SS - -@hf200012 - -@jacktengg - -@Jibing-Li - -@Kikyou1997 - -@liaoxin01 - -@luozenglin - -@morningman - -@morrySnow - -@mrhhsg - -@nextdreamblue - -@qidaye - -@spaces-X - -@starocean999 - -@wangshuo128 - -@weizuo93 - -@wsjz - -@xiaokang - -@xinyiZzz - -@xutaoustc - -@yangzhg - -@yiguolei - -@yixiutt - -@Yulei-Yang - -@yuxuan-luo - -@zenoyang - -@zhangstar333 - -@zhannngchen - -@zhengshengjun - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.2.md deleted file mode 100644 index 1d53fae90fee5..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.2.md +++ /dev/null @@ -1,242 +0,0 @@ ---- -{ - "title": "Release 1.2.2", - "language": "zh-CN", - "description": "在 1.2.2 版本中,Doris 团队已经修复了自 1.2.1 版本发布以来超过 200 个问题或性能改进项。同时,1.2.2 版本也作为 1.2.1 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。" -} ---- - -在 1.2.2 版本中,Doris 团队已经修复了自 1.2.1 版本发布以来超过 200 个问题或性能改进项。同时,1.2.2 版本也作为 1.2.1 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - - -# New Feature - -### 数据湖分析 - -- **支持自动同步 Hive Metastore 元数据信息。** 默认情况下外部数据源的元数据变更,如创建或删除表、加减列等操作不会同步给 Doris,用户需要使用 `REFRESH CATALOG` 命令手动刷新元数据。在 1.2.2 版本中支持自动刷新 Hive Metastore 元数据信息,通过让 FE 节点定时读取 HMS 的 notification event 来感知 Hive 表元数据的变更情况。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/) - -- **支持读取 Iceberg Snapshot 以及查询 Snapshot 历史。** 在执行 Iceberg 数据写入时,每一次写操作都会产生一个新的快照。默认情况下通过 Apache Doris 读取 Iceberg 表仅会读取最新版本的快照。在 1.2.2 版本中可以使用 `FOR TIME AS OF` 和 `FOR VERSION AS OF` 语句,根据快照 ID 或者快照产生的时间读取历史版本的数据,也可以使用 iceberg_meta 表函数查询指定表的快照信息。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg) - -- JDBC Catalog 支持 PostgreSQL、Clickhouse、Oracle、SQLServer。 - -- **JDBC Catalog 支持 insert into 操作。** 在 Doris 中建立 JDBC Catalog 后,可以通过 insert into 语句直接写入数据,也可以将 Doris 执行完查询之后的结果写入 JDBC Catalog,或者是从一个 JDBC 外表将数据导入另一个 JDBC 外表。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/) - - -### 自动分桶推算 - -支持通过 `DISTRIBUTED BY HASH(……) BUCKETS AUTO` 语句设置自动分桶,系统帮助用户设定以及伸缩不同分区的分桶数,使分桶数保持在一个相对合适的范围内。 - -参考文档:[https://mp.weixin.qq.com/s/DSyZGJtjQZUYUsvfK0IcCg](https://mp.weixin.qq.com/s/DSyZGJtjQZUYUsvfK0IcCg) - - -### 新增函数 - -增加归类分析函数 `width_bucket` 。 - -参考文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/width-bucket/#description](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/width-bucket/#description) - - -# Behavior Changes - -### 默认情况下禁用 BE 的 Page Cache - -关闭此配置以优化内存使用并降低内存 OOM 的风险,但有可能增加一些小查询的查询延迟。如果您对查询延迟敏感,或者具有高并发小查询场景,可以配置 `disable_storage_page_cache=false` 以再次启用 Page Cache。 - -### 增加新 Session 变量 `group_by_and_having_use_alias_first` - -用于控制 group by 和 having 语句是否优先使用列的别名,而非从 From 语句里寻找列的名字,默认为 false。 - -# Improvement - -### Compaction 优化 - -- **支持 Vetical Compaction**。在过去版本中,宽列场景 Compaction 往往会带来大量的内存开销。在 1.2.2 版本中,Vertical Compaction 采用了按列组的方式进行数据合并,单次合并只需要加载部分列的数据,能够极大减少合并过程中的内存占用。在实际测试中,Vertical compaction 使用内存仅为原有 compaction 算法的 1/10,同时 Compaction 速率提升 15%。 - -- 支持 **Segment Compaction**。在过去版本中,当用户大数据量高频导入时可能会遇到 -238 以及 -235 问题,Segment Compaction 允许在导入数据的同时进行数据的合并,以有效控制 Segment 文件的数量,提升高频导入的系统稳定性。 - -参考文档:[https://doris.apache.org/docs/dev/advanced/best-practice/compaction](https://doris.apache.org/docs/dev/advanced/best-practice/compaction) - - -### 数据湖分析 - -- Hive Catalog 支持访问 Hive 1/2/3 版本。 - -- Hive Catalog 可以使用 Broker 访问数据存储在 JuiceFS 的 Hive。 - -- Iceberg Catalog 支持 Hive Metastore 和 Rest 作为元数据服务。 - -- ES Catalog 支持 元数据字段 _id 列映射。 - -参考文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/hive](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/hive) - -- 优化 Iceberg V2 表有大量删除行诗时的读取性能。 - -- 支持读取 Schema Evolution 后 Iceberg 表。 - -- Parquet Reader 正确处理列名大小写。 - - -### 其他 - -- 支持访问 Hadoop KMS 加密的 HDFS。 - -- 支持取消正在执行的导出任务。 - -参考文档:[https://doris.apache.org/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/CANCEL-EXPORT](https://doris.apache.org/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/CANCEL-EXPORT) - -- 将`explode_split` 函数执行效率优化 1 倍。 - -- 将 nullable 列的读取性能优化 3 倍。 - -- 优化 Memtracker 的部分问题,提高内存管理精度,优化内存应用。 - - -# BugFix - -- 修复了使用 Doris-Flink-Connector 导入数据时的内存泄漏问题;[#16430](https://github.com/apache/doris/pull/16430) - -- 修复了 BE 可能的线程调度问题,并减少了 BE 线程耗尽导致的 Fragment_sent_timeout。 - -- 修复了 datetimev2/decivalv3 的部分正确性和精度问题。 - -- 修复了 Light Schema Change 功能的各种已知问题。 - -- 修复了 bitmap 类型 Runtime Filter 的各种数据正确性问题。 - -- 修复了 1.2.1 版本中引入的 CSV 读取性能差的问题。 - -- 修复了 Spark Load 数据下载阶段导致的 BE OOM 问题。 - -- 修复了从 1.1.x 版升级到 1.2.x 版时可能出现的元数据兼容性问题。 - -- 修复了创建 JDBC Catalog 时的元数据问题。 - -- 修复了由于导入操作导致的 CPU 使用率高的问题。 - -- 修复了大量失败 Broker Load 作业导致的 FE OOM 问题。 - -- 修复了加载浮点类型时精度丢失的问题。 - -- 修复了 Stream Load 使用两阶段提交时出现的内存泄漏问题。 - -# 其他 - -添加指标以查看 BE 上的 Rowset 和 Segment 总数字 `doris_be_all_rowsets_num` 和 `doris_be_all_segments_num` - -# 致谢 - -有 53 位贡献者参与到 1.2.2 版本的开发与完善中,感谢他们的付出,他们分别是: - -@adonis0147 - -@AshinGau - -@BePPPower - -@BiteTheDDDDt - -@ByteYue - -@caiconghui - -@cambyzju - -@chenlinzhong - -@DarvenDuan - -@dataroaring - -@Doris-Extras - -@dutyu - -@englefly - -@freemandealer - -@Gabriel39 - -@HappenLee - -@Henry2SS - -@htyoung - -@isHuangXin - -@JackDrogon - -@jacktengg - -@Jibing-Li - -@kaka11chen - -@Kikyou1997 - -@Lchangliang - -@LemonLiTree - -@liaoxin01 - -@liqing-coder - -@luozenglin - -@morningman - -@morrySnow - -@mrhhsg - -@nextdreamblue - -@qidaye - -@qzsee - -@spaces-X - -@stalary - - -@starocean999 - -@weizuo93 - -@wsjz - -@xiaokang - -@xinyiZzz - -@xy720 - -@yangzhg - -@yiguolei - -@yixiutt - -@Yukang-Lian - -@Yulei-Yang - -@zclllyybb - -@zddr - -@zhangstar333 - -@zhannngchen - -@zy-kkk - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.3.md deleted file mode 100644 index 787dde46d247a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.3.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -{ - "title": "Release 1.2.3", - "language": "zh-CN", - "description": "在 1.2.3 版本中,Doris 团队已经修复了自 1.2.2 版本发布以来超过 200 个问题或性能改进项。同时,1.2.3 版本也作为 1.2.2 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。" -} ---- - -在 1.2.3 版本中,Doris 团队已经修复了自 1.2.2 版本发布以来超过 200 个问题或性能改进项。同时,1.2.3 版本也作为 1.2.2 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - - -# Improvement - -### JDBC Catalog - -- 支持通过 JDBC Catalog 连接到另一个 Doris 数据库。 - -目前 JDBC Catalog 连接 Doris 只支持用 5.x 版本的 JDBC jar 包。如果使用 8.x JDBC jar 包可能会出现列类型无法匹配问题。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/#doris](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/#doris) - -- 支持通过参数 `only_specified_database` 来同步指定的数据库。 - -- 支持通过 `lower_case_table_names` 参数控制是否以小写形式同步表名,解决表名区分大小写的问题。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc) - -- 优化 JDBC Catalog 的读取性能。 - -### Elasticsearch Catalog - -- 支持 Array 类型映射。 - -- 支持通过 `like_push_down` 属性下推 like 表达式来控制 ES 集群的 CPU 开销。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/es](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/es) - -### Hive Catalog - -- 支持 Hive 表默认分区 `__Hive_default_partition__`。 - -- Hive Metastore 元数据自动同步支持压缩格式的通知事件。 - -### 动态分区优化 - -- 支持通过 storage_medium 参数来控制创建动态分区的默认存储介质。 - -参考文档:[https://doris.apache.org/docs/dev/advanced/partition/dynamic-partition](https://doris.apache.org/docs/dev/advanced/partition/dynamic-partition) - - -### 优化 BE 的线程模型 - -- 优化 BE 的线程模型,以避免频繁创建和销毁线程所带来的稳定性问题。 - -# Bug 修复 - -- 修复了部分 Unique Key 模型 Merge-on-Write 表的问题; - -- 修复了部分 Compaction 相关问题; - -- 修复了部分 Delete 语句导致的数据问题; - -- 修复了部分 Query 执行问题; - -- 修复了在某些操作系统上使用 JDBC Catalog 导致 BE 宕机的问题; - -- 修复了部分 Multi-Catalog 的问题; - -- 修复了部分内存统计和优化问题; - -- 修复了部分 DecimalV3 和 date/datetimev2 的相关问题。 - -- 修复了部分导入过程中的稳定性问题; - -- 修复了部分 Light Schema Change 的问题; - -- 修复了使用 `datetime` 类型创建批处理分区的问题; - -- 修复了 Broker Load 大数据量导入失败而导致的 FE 内存使用过高的问题; - -- 修复了删除表后无法取消 Stream Load 的问题; - -- 修复了某些情况下查询 `information_schema` 超时的问题; - -- 修复了使用 `select outfile` 并发数据导出导致 BE 宕机的问题; - -- 修复了事务性插入操作导致内存泄漏的问题; - -- 修复了部分查询和导入 Profile 的问题,并支持通过 FE web ui 直接下载 Profile 文件; - -- 修复了 BE Tablet GC 线程导致 IO 负载过高的问题; - -- 修复了 Kafka Routine Load 中提交 Offset 不准确的问题。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.4.md deleted file mode 100644 index bbc7c5bb42d75..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.4.md +++ /dev/null @@ -1,159 +0,0 @@ ---- -{ - "title": "Release 1.2.4", - "language": "zh-CN", - "description": "在 1.2.4 版本中,Doris 团队已经修复了自 1.2.3 版本发布以来近 150 个问题或性能改进项。同时,1.2.4 版本也作为 1.2.3 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。" -} ---- - -在 1.2.4 版本中,Doris 团队已经修复了自 1.2.3 版本发布以来近 150 个问题或性能改进项。同时,1.2.4 版本也作为 1.2.3 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - -# Behavior Changed - -- 针对 Date/DatetimeV2 和 DecimalV3 类型,在 `DESCRIBLE` 和 `SHOW CREATE TABLE` 语句的结果中,将不再显示为 Date/DatetimeV2 或 DecimalV3,而直接显示为 Date/Datetime 或 Decimal。 - - 这个改动用于兼容部分 BI 系统。如果想查看列的实际类型,可以通过 `DESCRIBE ALL` 语句查看。 - -- 查询 `information_schema` 库中的表时,默认不再返回 External Catalog 中的元信息。 - - 这个改动避免了因 External Catalog 的连接问题导致的 information_schema 库不可查的问题,从而解决部分 BI 系统与 Doris 配合使用的问题。可以通过 FE 的配置项 `infodb_support_ext_catalog `控制,默认为 false,即不返回 External Catalog 中的元信息。 - -# Improvement - -### JDBC Catalog - -- 支持通过 JDBC Catalog 连接其他 Trino/Presto 集群 - -​ 参考文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#trino](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#trino) - -- JDBC Catalog 连接 Clickhouse 数据源支持 Array 类型映射 - -​ 参考文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#clickhouse](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#clickhouse) - -### Spark Load - -- Spark Load 支持 Resource Manager HA 相关配置 - -​ 参考 PR: [https://github.com/apache/doris/pull/15000](https://github.com/apache/doris/pull/15000) - -# Bug Fixes - -- 修复 Hive Catalog 的若干连通性问题。 - -- 修复 Hudi Catalog 的若干问题。 - -- 优化 JDBC Catalog 的连接池,避免过多的连接。 - -- 修复通过 JDBC Catalog 从另一个 Doris 集群导入数据是会发生 OOM 的问题。 - -- 修复若干查询和导入的规划问题。 - -- 修复 Unique Key Merge-On-Write 表的若干问题。 - -- 修复若干 BDBJE 问题,解决某些情况下 FE 元数据异常的问题。 - -- 修复 `CREATE VIEW` 语句不支持 Table Valued Function 的问题。 - -- 修复若干内存统计的问题。 - -- 修复读取 Parquet/ORC 表的若干问题。 - -- 修复 DecimalV3 的若干问题。 - -- 修复 `SHOW QUERY/LOAD PROFILE` 的若干问题。 - -# 致谢 - -有 47 位贡献者参与到 1.2.4 的完善和发布中,感谢他们的辛劳付出: - -@zy-kkk - -@zhannngchen - -@zhangstar333 - -@yixiutt - -@yiguolei - -@xinyiZzz - -@xiaokang - -@wsjz - -@wangbo - -@starocean999 - -@sohardforaname - -@siriume - -@pingchunzhang - -@nextdreamblue - -@mymeiyi - -@mrhhsg - -@morrySnow - -@morningman - -@luwei16 - -@luozenglin - -@liujinhui1994 - -@liaoxin01 - -@kaka11chen - -@jeffreys-cat - -@jacktengg - -@gavinchou - -@dutyu - -@dataroaring - -@chenlinzhong - -@caoliang-web - -@cambyzju - -@adonis0147 - -@Yulei-Yang - -@Yukang-Lian - -@SWJTU-ZhangLei - -@Kikyou1997 - -@Jibing-Li - -@JackDrogon - -@HappenLee - -@GoGoWen - -@Gabriel39 - -@Doris-Extras - -@CalvinKirs - -@Cai-Yao - -@ByteYue - -@BiteTheDDDDt - -@BePPPower diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.5.md deleted file mode 100644 index 0ccdd8c136aa0..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.5.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -{ - "title": "Release 1.2.5", - "language": "zh-CN", - "description": "在 1.2.5 版本中,Doris 团队已经修复了自 1.2.4 版本发布以来近 210 个问题或性能改进项。同时,1.2.5 版本也作为 1.2.4 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。" -} ---- - -在 1.2.5 版本中,Doris 团队已经修复了自 1.2.4 版本发布以来近 210 个问题或性能改进项。同时,1.2.5 版本也作为 1.2.4 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - -# Behavior Changed - -- BE 启动脚本会检查系统的最大文件句柄数需大于等于 65536,否则启动失败。 - -- BE 配置项 `enable_quick_compaction` 默认设为 true。即默认开启 Quick Compaction 功能。该功能用于优化大批量导入情况下的小文件问题。 - -- 修改表的动态分区属性后,将不再立即生效,而是统一等待下一次动态分区表的任务调度,以避免一些死锁问题。 - -# Improvement - -- 优化 bthread 和 pthread 的使用,减少查询过程中的 RPC 阻塞问题。 - -- FE 前端页面的 Profile 页面增加下载 Profile 的按钮。 - -- 新增 FE 配置 `recover_with_skip_missing_version`,用于在某些故障情况下,查询跳过有问题的数据副本。 - -- 行级权限功能支持 Catalog 外表。 - -- Hive Catalog 支持 BE 端自动刷新 kerberos 票据,无需手动刷新。 - -- JDBC Catalog 支持通过 MySQL/ClickHouse 系统库(`information_schema`)下的表。 - -# Bug Fixes - -- 修复低基数列优化导致的查询结果不正确的问题 - -- 修复若干访问 HDFS 的认证和兼容性问题。 - -- 修复若干浮点和 decimal 类型的问题。 - -- 修复若干 date/datetimev2 类型的问题。 - -- 修复若干查询执行和规划的问题。 - -- 修复 JDBC Catalog 的若干问题。 - -- 修复 Hive Catalog 的若干查询相关问题,以及 Hive Metastore 元数据同步的问题。 - -- 修复 `show load profile` 结果不正确的问题。 - -- 修复若干内存相关问题。 - -- 修复 `CREATE TABLE AS SELECT` 功能的若干问题。 - -- 修复 JSONB 类型在不支持 avx2 的机型上导致 BE 宕机的问题。 - -- 修复动态分区的若干问题。 - -- 修复 TopN 查询优化的若干问题。 - -- 修复 Unique Key Merge-on-Write 表模型的若干问题。 - - -# 致谢 - -有 58 贡献者参与到 1.2.5 的完善和发布中,感谢他们的辛劳付出: - -@adonis0147 - -@airborne12 - -@AshinGau - -@BePPPower - -@BiteTheDDDDt - -@caiconghui - -@CalvinKirs - -@cambyzju - -@caoliang-web - -@dataroaring - -@Doris-Extras - -@dujl - -@dutyu - -@fsilent - -@Gabriel39 - -@gitccl - -@gnehil - -@GoGoWen - -@gongzexin - -@HappenLee - -@herry2038 - -@jacktengg - -@Jibing-Li - -@kaka11chen - -@Kikyou1997 - -@LemonLiTree - -@liaoxin01 - -@LiBinfeng-01 - -@luwei16 - -@Moonm3n - -@morningman - -@mrhhsg - -@Mryange - -@nextdreamblue - -@nsnhuang - -@qidaye - -@Shoothzj - -@sohardforaname - -@stalary - -@starocean999 - -@SWJTU-ZhangLei - -@wsjz - -@xiaokang - -@xinyiZzz - -@yangzhg - -@yiguolei - -@yixiutt - -@yujun777 - -@Yulei-Yang - -@yuxuan-luo - -@zclllyybb - -@zddr - -@zenoyang - -@zhangstar333 - -@zhannngchen - -@zxealous - -@zy-kkk - -@zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.6.md deleted file mode 100644 index e8f9ef0fa9be2..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.6.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -{ - "title": "Release 1.2.6", - "language": "zh-CN", - "description": "感谢以下开发者在 Apache Doris 1.2.6 版本中所做的贡献;" -} ---- - -# Behavior Changed - -- 新增 BE 配置项 `allow_invalid_decimalv2_triteral` 以控制是否可以导入超过小数精度的 Decimal 类型数据,用于兼容之前的逻辑。 - -# Bug Fixes - -## 查询 - -- 修复了部分查询计划的问题; -- 支持会话变量 `sql_select_limit` 和 `have_query_cache` 用于与老版本的 MySQL 客户端兼容; -- 优化 Cold Run 查询性能; -- 修复 Expr Context 类内存泄漏的问题; -- 修复 `explode_split` 函数在某些情况下执行错误的问题。 - -## Multi Catalog - -- 修复了同步 Hive 元数据时 FE 回放元数据日志失败的问题; -- 修复了 `refresh catalog` 操作可能导致 FE OOM 的问题; -- 修复了 JDBC Catalog 无法正确处理 `0000-00-00` 日期格式的问题; -- 修复了 kerberos ticket 无法自动刷新的问题; -- 优化了 Hive Partition 裁剪性能; -- 修复 JDBC Catalog 中 Trino 和 Presto 不一致的行为; -- 修复了在某些环境中无法使用 HDFS 短路读取来提高查询效率的问题; -- 修复无法读取 CHDFS Iceberg 表的问题。 - -## 存储 - -- 修复 Merge-on-Write 表中删除 bitmap 逻辑计算错误的问题; -- 修复了若干 BE 内存问题; -- 修复了表数据 Snappy 压缩的问题; -- 修复 jemalloc 在某些情况下可能导致 BE 崩溃的问题。 - -## 其他 - -- 修复了部分 Java UDF 相关问题; -- 修复了 `recover table` 操作错误地触发动态分区创建的问题; -- 修复了通过 Broker Load 导入 orc 文件时的时区问题; -- 修复新添加的 `PERCENT` 关键字导致 Routine Load 作业的回放元数据失败的问题; -- 修复了 `truncate` 操作无法作用于非分区表的问题; -- 修复了由于 `show snapshot` 操作导致 MySQL 连接丢失的问题; -- 优化锁逻辑以降低创建表时发生锁超时错误的概率; -- 优化了导入发生错误时的报错信息。 - -# 致谢 - -感谢以下开发者在 Apache Doris 1.2.6 版本中所做的贡献; - -@amorynan - -@BiteTheDDDDt - -@caoliang-web - -@dataroaring - -@Doris-Extras - -@dutyu - -@Gabriel39 - -@HHoflittlefish777 - -@htyoung - -@jacktengg - -@jeffreys-cat - -@kaijchen - -@kaka11chen - -@Kikyou1997 - -@KnightLiJunLong - -@liaoxin01 - -@LiBinfeng-01 - -@morningman - -@mrhhsg - -@sohardforaname - -@starocean999 - -@vinlee19 - -@wangbo - -@wsjz - -@xiaokang - -@xinyiZzz - -@yiguolei - -@yujun777 - -@Yulei-Yang - -@zhangstar333 - -@zy-kkk diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.7.md deleted file mode 100644 index ef1edae8b9325..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.7.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -{ - "title": "Release 1.2.7", - "language": "zh-CN", - "description": "-添加了 havequerycache 变量以保证与 MySQL 生态系统兼容。 -添加 enablestrong consistencyread 以支持会话之间的强一致性读取。 -FE 指标支持用户级的查询计数器。" -} ---- - -# Bugfix - -- 修复了一些查询问题。 -- 修复了一些存储问题。 -- 修复一些小数精度问题。 -- 修复由无效的 sql_select_limit 会话变量值引起的查询错误。 -- 修复了无法使用 hdfs 短路读取的问题。 -- 修复了腾讯云 cosn 无法访问的问题。 -- 修复了一些 Hive Catalog kerberos 访问的问题。 -- 修复 Stream load Profile 无法使用的问题。 -- 修复 Promethus 监控参数格式问题。 -- 修复了创建大量 Tablet 时建表超时的问题。 - - -# 最新特性 - -- Unique Key 模型支持将数组类型作为 Key 列; --添加了 have_query_cache 变量以保证与 MySQL 生态系统兼容。 --添加 enable_strong _consistency_read 以支持会话之间的强一致性读取。 --FE 指标支持用户级的查询计数器。 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.8.md deleted file mode 100644 index f8162c2bf055f..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v1.2/release-1.2.8.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -{ - "title": "Release 1.2.8", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 1.2.8 版本已于 2024 年 3 月 09 日正式与大家见面。该版本对多个功能进行了更新优化,旨在更好地满足用户的需求,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 1.2.8](https://doris.apache.org/download/) 版本已于 2024 年 3 月 09 日正式与大家见面。该版本对多个功能进行了更新优化,旨在更好地满足用户的需求,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 改进和优化 -- 修复若干查询执行的问题 -- 修复若干 Spark Load 相关的问题 -- 修复若干 Parquet/ORC 文件读取的问题。 -- 修复 Broker 进行因为 "FileSystem closed" 错误导致运行失败的问题。 -- 修复若干 Broker Load 相关的问题。 -- 修复若干 CTAS 操作相关的问题。 -- 修复若干备份恢复功能相关的问题。 -- 修复若干导出(Export/Outfile)相关的问题。 -- 修复 `replayEraseTable` 方法导致 FE 无法启动的问题。 -- 优化 Iceberg Catalog 元数据缓存的性能。 -- Audit Log 中新增 Catalog 列。 - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.0.md deleted file mode 100644 index 0588a21e68fbd..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.0.md +++ /dev/null @@ -1,204 +0,0 @@ ---- -{ - "title": "Release 2.0.0", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 Release 版本已于 2023 年 8 月 11 日正式发布,有超过 275 位贡献者为 Apache Doris 提交了超过 4100 个优化与修复。" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 Release 版本已于 2023 年 8 月 11 日正式发布,有超过 275 位贡献者为 Apache Doris 提交了超过 4100 个优化与修复。 - -在 2.0.0 版本中,Apache Doris 在标准 Benchmark 数据集上盲测查询性能得到超过 10 倍的提升、在日志分析和湖仓一体场景能力得到全面加强、数据更新效率和写入效率都更加高效稳定、支持了更加完善的多租户和资源隔离机制、在资源弹性与存算分离方向踏上了新的台阶、增加了一系列面向企业用户的易用性特性。在经过近半年的开发、测试与稳定性调优后,这一版本已经正式稳定可用,欢迎大家下载使用! - -> 下载链接:[https://doris.apache.org/download](https://doris.apache.org/download) -> -> GitHub 源码:[https://github.com/apache/doris/tree/2.0.0-rc04](https://github.com/apache/doris/tree/2.0.0-rc04) - - -## 盲测性能 10 倍以上提升! - -在 Apache Doris 2.0.0 版本中,我们引入了全新查询优化器和自适应的并行执行模型,结合存储层、执行层以及执行算子上的一系列性能优化手段,实现了盲测性能 10 倍以上的提升。以 SSB-Flat 和 TPC-H 标准测试数据集为例,在相同的集群和机器配置下,新版本宽表场景盲测较之前版本性能提升 10 倍、多表关联场景盲测提升了 13 倍,实现了巨大的性能飞跃。 - -### 更智能的全新查询优化器 - -全新查询优化器采取了更先进的 Cascades 框架、使用了更丰富的统计信息、实现了更智能化的自适应调优,在绝大多数场景无需任何调优和 SQL 改写即可实现极致的查询性能,同时对复杂 SQL 支持得更加完备、可完整支持 TPC-DS 全部 99 个 SQL。通过全新查询优化器,我们可以胜任更多真实业务场景的挑战,减少因人工调优带来的人力消耗,真正助力业务提效。 - -以 TPC-H 为例,全新优化器在未进行任何手工调优和 SQL 改写的情况下,绝大多数 SQL 仍领先于旧优化器手工调优后的性能表现!而在超过百家 2.0 版本提前体验用户的真实业务场景中,绝大多数原始 SQL 执行效率得以极大提升! - -参考文档:[更智能的全新查询优化器](../../query-acceleration/optimization-technology-principle/query-optimizer.md) - -如何开启:`SET enable_nereids_planner=true` 在 Apache Doris 2.0-beta 版本中全新查询优化器已经默认开启 - -### 倒排索引支持 - -在 2.0.0 版本中我们对现有的索引结构进行了丰富,引入了倒排索引来应对多维度快速检索的需求,在关键字模糊查询、等值查询和范围查询等场景中均取得了显著的查询性能和并发能力提升。 - -在此以某头部手机厂商的用户行为分析场景为例,在之前的版本中,随着并发量的上升、查询耗时逐步提升,性能下降趋势比较明显。而在 2.0.0 版本开启倒排索引后,随着并发量的提升查询性能始终保持在毫秒级。在同等查询并发量的情况下,2.0.0 版本在该用户行为分析场景中并发查询性能提升了 5-90 倍! - - -### 点查询并发能力提升 20 倍 - -在银行交易流水单号查询、保险代理人保单查询、电商历史订单查询、快递运单号查询等 Data Serving 场景,会面临大量一线业务人员及 C 端用户基于主键 ID 检索整行数据的需求,同时在用户画像、实时风控等场景中还会面对机器大规模的程序化查询,在过去此类需求往往需要引入 Apache HBase 等 KV 系统来应对点查询、Redis 作为缓存层来分担高并发带来的系统压力。 -对于基于列式存储引擎构建的 Apache Doris 而言,此类的点查询在数百列宽表上将会放大随机读取 IO,并且查询优化器和执行引擎对于此类简单 SQL 的解析、分发也将带来不必要的额外开销,负责 SQL 解析的 FE 模块往往会成为限制并发的瓶颈,因此需要更高效简洁的执行方式。 - -在 Apache Doris 2.0.0 版本,我们引入了全新的行列混合存储以及行级 Cache,使得单次读取整行数据时效率更高、大大减少磁盘访问次数,同时引入了点查询短路径优化、跳过执行引擎并直接使用快速高效的读路径来检索所需的数据,并引入了预处理语句复用执行 SQL 解析来减少 FE 开销。 - -通过以上一系列优化,Apache Doris 2.0.0 版本在并发能力上实现了数量级的提升,实现了单节点 30000 QPS 的并发表现,较过去版本点查询并发能力提升超 20 倍! - -基于以上能力,Apache Doris 可以更好应对高并发数据服务场景的需求,替代 HBase 在此类场景中的能力,减少复杂技术栈带来的维护成本以及数据的冗余存储。 - -### 自适应的并行执行模型 - -在实现极速分析体验的同时,为了保证多个混合分析负载的执行效率以及查询的稳定性,在 2.0.0 版本中我们引入了 Pipeline 执行模型作为查询执行引擎。在 Pipeline 执行引擎中,查询的执行是由数据来驱动控制流变化的,各个查询执行过程之中的阻塞算子被拆分成不同 Pipeline,各个 Pipeline 能否获取执行线程调度执行取决于前置数据是否就绪,实现了阻塞操作的异步化、可以更加灵活地管理系统资源,同时减少了线程频繁创建和销毁带来的开销,并提升了 Apache Doris 对于 CPU 的利用效率。因此 Apache Doris 在混合负载场景中的查询性能和稳定性都得到了全面提升。 - -参考文档:[查询执行引擎](../../query-acceleration/optimization-technology-principle/pipeline-execution-engine) - -如何开启:` Set enable_pipeline_engine = true ` -- 该功能在 Apache Doris 2.0 版本中将默认开启,BE 在进行查询执行时默认将 SQL 的执行模型转变 Pipeline 的执行方式。 -- `parallel_pipeline_task_num`代表了 SQL 查询进行查询并发的 Pipeline Task 数目。Apache Doris 默认配置为`0`,此时 Apache Doris 会自动感知每个 BE 的 CPU 核数并把并发度设置为 CPU 核数的一半,用户也可以根据自己的实际情况进行调整。 -- 对于从老版本升级的用户,系统自动将该参数设置成老版本中`parallel_fragment_exec_instance_num`的值。 - -## 更统一多样的分析场景 - -作为最初诞生于报表分析场景的 OLAP 系统,Apache Doris 在这一擅长领域中做到了极致,凭借自身优异的分析性能和极简的使用体验收获到了众多用户的认可,在诸如实时看板(Dashboard)、实时大屏、业务报表、管理驾驶舱等实时报表场景以及自助 BI 平台、用户行为分析等即席查询场景获得了极为广泛的运用。 - -而随着用户规模的极速扩张,越来越多用户开始希望通过 Apache Doris 来简化现有的繁重大数据技术栈,减少多套系统带来的使用及运维成本。因此 Apache Doris 也在不断拓展应用场景的边界,从过去的实时报表和 Ad-hoc 等典型 OLAP 场景到湖仓一体、ELT/ETL、日志检索与分析、高并发 Data Serving 等更多业务场景,而日志检索分析、湖仓一体也是我们在 Apache Doris 最新版本中的重要突破。 - -### 10 倍以上性价比的日志检索分析平台 - -在 Apache Doris 2.0.0 版本中,我们提供了原生的半结构化数据支持,在已有的 JSON、Array 基础之上增加了复杂类型 Map,并基于 Light Schema Change 功能实现了 Schema Evolution。与此同时,2.0.0 版本新引入的倒排索引和高性能文本分析算法全面加强了 Apache Doris 在日志检索分析场景的能力,可以支持更高效的任意维度分析和全文检索。结合过去在大规模数据写入和低成本存储等方面的优势,相对于业内常见的日志分析解决方案,基于 Apache Doris 构建的新一代日志检索分析平台实现了 10 倍以上的性价比提升。 - -### 湖仓一体 - -在 Apache Doris 1.2 版本中,我们引入了 Multi-Catalog 功能,支持了多种异构数据源的元数据自动映射与同步,实现了便捷的元数据和数据打通。在 2.0.0 版本中,我们进一步对湖仓一体进行了加强,引入了更多数据源,并针对用户的实际生产环境做了诸多性能优化,在真实工作负载情况下查询性能得到大幅提升。 - -在数据源方面,Apache Doris 2.0.0 版本支持了 Hudi Copy-on-Write 表的 Snapshot Query 以及 Merge-on-Read 表的 Read Optimized Query,截止目前已经支持了 Hive、Hudi、Iceberg、Paimon、MaxCompute、Elasticsearch、Trino、ClickHouse 等数十种数据源,几乎支持了所有开放湖仓格式和 Metastore。同时还支持通过 Apache Range 对 Hive Catalog 进行鉴权,可以无缝对接用户现有的权限系统。同时还支持可扩展的鉴权插件,为任意 Catalog 实现自定义的鉴权方式。 - -在性能方面,利用 Apache Doris 自身高效的分布式执行框架、向量化执行引擎以及查询优化器,结合 2.0 版本中对于小文件和宽表的读取优化、本地文件 Cache、ORC/Parquet 文件读取效率优化、弹性计算节点以及外表的统计信息收集,Apaceh Doris 在 TPC-H 场景下查询 Hive 外部表相较于 Presto/Trino 性能提升 3-5 倍。 - -通过这一系列优化,Apache Doris 湖仓一体的能力得到极大拓展,在如下场景可以更好发挥其优异的分析能力: - -- 湖仓查询加速:为数据湖、Elasticsearch 以及各类关系型数据库提供优秀的查询加速能力,相比 Hive、Presto、Spark 等查询引擎实现数倍的性能提升。 - -- 数据导入与集成:基于可扩展的连接框架,增强 Apache Doris 在数据集成方面的能力,让数据更便捷的被消费和处理。用户可以通过 Apache Doris 对上游的多种数据源进行统一的增量、全量同步,并利用 Apache Doris 的数据处理能力对数据进行加工和展示,也可以将加工后的数据写回到数据源,或提供给下游系统进行消费。 - -- 统一数据分析网关:利用 Apache Doris 构建完善可扩展的数据源连接框架,支持用户将这些外部数据源统一到 Doris 的元数据映射结构上,当用户通过 Doris 查询这些外部数据源时,能够提供一致的查询体验。 - -## 高效的数据更新 - -在实时分析场景中,数据更新是非常普遍的需求。用户不仅希望能够实时查询最新数据,也希望能够对数据进行灵活的实时更新。典型场景如电商订单分析、物流运单分析、用户画像等,需要支持数据更新类型包括整行更新、部分列更新、按条件进行批量更新或删除以及整表或者整个分区的重写(inser overwrite)。 - -高效的数据更新一直是大数据分析领域的痛点,离线数据仓库 hive 通常只支持分区级别的数据更新,而 Hudi 和 Iceberg 等数据湖,虽然支持 Record 级别更新,但是通常采用 Merge-on-Read 或 Copy-on-Write 的方式,仅适合低频批量更新而不适合实时高频更新。 - -在 Apache Doris 1.2 版本,我们在 Unique Key 主键模型实现了 Merge-on-Write 的数据更新模式,数据在写入阶段就能完成所有的数据合并工作,因此查询性能得到 5-10 倍的提升。在 Apache Doris 2.0 版本我们进一步加强了数据更新能力,主要包括: - -- 对写入性能进行了大幅优化,高并发写入和混合负载写入场景的稳定性也显著提升。例如在单 Tablet 7GB 的重复导入测试中,数据导入的耗时从约 30 分钟缩短到了 90s,写入效率提升 20 倍;以某头部支付产品的场景压测为例,在 20 个并行写入任务下可以达到 30 万条每秒的写入吞吐,并且持续写入十几个小时后仍然表现非常稳定。 - -- 支持部分列更新功能。在 2.0.0 版本之前 Apache Doris 仅支持通过 Aggregate Key 聚合模型的 Replace_if_not_null 进行部分列更新,在 2.0.0 版本中我们增加了 Unique Key 主键模型的部分列更新,在多张上游源表同时写入一张宽表时,无需由 Flink 进行多流 Join 打宽,直接写入宽表即可,减少了计算资源的消耗并大幅降低了数据处理链路的复杂性。同时在面对画像场景的实时标签列更新、订单场景的状态更新时,直接更新指定的列即可,较过去更为便捷。 - -- 支持复杂条件更新和条件删除。在 2.0.0 版本之前 Unique Key 主键模型仅支持简单 Update 和 Delete 操作,在 2.0.0 版本中我们基于 Merge-on-Write 实现了复杂条件的数据更新和删除,并且执行效率更加高效。基于以上优化,Apache Doris 对于各类数据更新需求都有完备的能力支持! - -## 更加高效稳定的数据写入 - -### 导入性能进一步提升 - -聚焦于实时分析,我们在过去的几个版本中在不断增强实时分析能力,其中端到端的数据实时写入能力是优化的重要方向,在 Apache Doris 2.0 版本中,我们进一步强化了这一能力。通过 Memtable 不使用 Skiplist、并行下刷、单副本导入等优化,使得导入性能有了大幅提升: - -- 使用 Stream Load 对 TPC-H 144G lineitem 表原始数据进行三副本导入 48 buckets Duplicate 表,吞吐量提升 100%。 -- 使用 Stream Load 对 TPC-H 144G lineitem 表原始数据进行三副本导入 48 buckets Unique Key 表,吞吐量提升 200%。 -- 使用 insert into select 对 TPC-H 144G lineitem 表进行导入 48 buckets Duplicate 表,吞吐量提升 50%。 -- 使用 insert into select 对 TPC-H 144G lineitem 表进行导入 48 buckets Unique Key 表,吞吐提升 150%。 - - -### 数据高频写入更稳定 - -在高频数据写入过程中,小文件合并和写放大问题以及随之而来的磁盘 I/O 和 CPU 资源开销是制约系统稳定性的关键,因此在 2.0 版本中我们引入了 Vertical Compaction 以及 Segment Compaction,用以彻底解决 Compaction 内存问题以及写入过程中的 Segment 文件过多问题,资源消耗降低 90%,速度提升 50%,内存占用仅为原先的 10%。 - - -### 数据表结构自动同步 - -在过去版本中我们引入了毫秒级别的 Schema Change,而在最新版本 Flink-Doris-Connector 中,我们实现了从 MySQL 等关系型数据库到 Apache Doris 的一键整库同步。在实际测试中单个同步任务可以承载数千张表的实时并行写入,从此彻底告别过去繁琐复杂的同步流程,通过简单命令即可实现上游业务数据库的表结构及数据同步。同时当上游数据结构发生变更时,也可以自动捕获 Schema 变更并将 DDL 动态同步到 Doris 中,保证业务的无缝运行。 - -## 更加完善的多租户资源隔离 - -多租户与资源隔离的主要目的是为了保证高负载时避免相互发生资源抢占,Apache Doris 在过去版本中推出了资源组(Resource Group)的硬隔离方案,通过对同一个集群内部的 BE 打上标签,标签相同的 BE 会组成一个资源组。数据入库时会按照资源组配置将数据副本写入到不同的资源组中,查询时按照资源组的划分使用对应资源组上的计算资源进行计算,例如将读、写流量放在不同的副本上从而实现读写分离,或者将在线与离线业务划分在不同的资源组、避免在离线分析任务之间的资源抢占。 - -资源组这一硬隔离方案可以有效避免多业务间的资源抢占,但在实际业务场景中可能会存在某些资源组紧张而某些资源组空闲的情况发生,这时需要有更加灵活的方式进行空闲资源的共享,以降低资源空置率。因此在 2.0.0 版本中我们增加了 Workload Group 资源软限制的方案,通过对 Workload 进行分组管理,以保证内存和 CPU 资源的灵活调配和管控。 - -通过将 Query 与 Workload Group 相关联,可以限制单个 Query 在 BE 节点上的 CPU 和内存资源的百分比,并可以配置开启资源组的内存软限制。当集群资源紧张时,将自动 Kill 组内占用内存最大的若干个查询任务以减缓集群压力。当集群资源空闲时,一旦 Workload Group 使用资源超过预设值时,多个 Workload 将共享集群可用空闲资源并自动突破阈值,继续使用系统内存以保证查询任务的稳定执行。Workload Group 还支持设置优先级,通过预先设置的优先级进行资源分配管理,来确定哪些任务可正常获得资源,哪些任务只能获取少量或没有资源。 - -与此同时,在 Workload Group 中我们还引入了查询排队的功能,在创建 Workload Group 时可以设置最大查询数,超出最大并发的查询将会进行队列中等待执行,以此来缓解高负载下系统的压力。 - -## 极致弹性与存算分离 - -过去 Apache Doris 凭借在易用性方面的诸多设计帮助用户大幅节约了计算与存储资源成本,而面向未来的云原生架构,我们已经走出了坚实的一步。 - -从降本增效的趋势出发,用户对于计算和存储资源的需求可以概括为以下几方面: - -- 计算资源弹性:面对业务计算高峰时可以快速进行资源扩展提升效率,在计算低谷时可以快速缩容以降低成本; - -- 存储成本更低:面对海量数据可以引入更为廉价的存储介质以降低成本,同时存储与计算单独设置、相互不干预; - -- 业务负载隔离:不同的业务负载可以使用独立的计算资源,避免相互资源抢占; - -- 数据管控统一:统一 Catalog、统一管理数据,可以更加便捷地分析数据。 - -存算一体的架构在弹性需求不强的场景具有简单和易于维护的优势,但是在弹性需求较强的场景有一定的局限。而存算分离的架构本质是解决资源弹性的技术手段,在资源弹性方面有着更为明显的优势,但对于存储具有更高的稳定性要求,而存储的稳定性又会进一步影响到 OLAP 的稳定性以及业务的存续性,因此也引入了 Cache 管理、计算资源管理、垃圾数据回收等一系列机制。 - -而在与 Apache Doris 社区广大用户的交流中,我们发现用户对于存算分离的需求可以分为以下三类: - -- 目前选择简单易用的存算一体架构,暂时没有资源弹性的需求; - -- 欠缺稳定的大规模存储,要求在 Apache Doris 原有基础上提供弹性、负载隔离以及低成本; - -- 有稳定的大规模存储,要求极致弹性架构、解决资源快速伸缩的问题,因此也需要更为彻底的存算分离架构; - -为了满足前两类用户的需求,Apache Doris 2.0 版本中提供了可以兼容升级的存算分离方案: -第一种,计算节点。2.0 版本中我们引入了无状态的计算节点 Compute Node,专门用于数据湖分析。相对于原本存储计算一体的混合节点,Compute Node 不保存任何数据,在集群扩缩容时无需进行数据分片的负载均衡,因此在数据湖分析这种具有明显高峰的场景中可以灵活扩容、快速加入集群分摊计算压力。同时由于用户数据往往存储在 HDFS/S3 等远端存储中,执行查询时查询任务会优先调度到 Compute Node 执行,以避免内表与外表查询之间的计算资源抢占。 - -第二种,冷热数据分层。在存储方面,冷热数据往往面临不同频次的查询和响应速度要求,因此通常可以将冷数据存储在成本更低的存储介质中。在过去版本中 Apache Doris 支持对表分区进行生命周期管理,通过后台任务将热数据从 SSD 自动冷却到 HDD,但 HDD 上的数据是以多副本的方式存储的,并没有做到最大程度的成本节约,因此对于冷数据存储成本仍然有较大的优化空间。在 Apache Doris 2.0 版本中推出了冷热数据分层功能,冷热数据分层功能使 Apache Doris 可以将冷数据下沉到存储成本更加低廉的对象存储中,同时冷数据在对象存储上的保存方式也从多副本变为单副本,存储成本进一步降至原先的三分之一,同时也减少了因存储附加的计算资源成本和网络开销成本。通过实际测算,存储成本最高可以降低超过 70%! - -面对更加彻底的存储计算分离需求,飞轮科技(SelectDB)技术团队设计并实现了全新的云原生存算分离架构(SelectDB Cloud),近一年来经历了大量企业客户的大规模使用,在性能、功能成熟度、系统稳定性等方面经受了真实生产环境的考验。在 Apache Doris 2.0.0 版本发布之际,飞轮科技宣布将这一经过大规模打磨后的成熟架构贡献至 Apache Doris 社区。这一工作预计将于 2023 年 10 月前后完成,届时全部存算分离的代码都将会提交到 Apache Doris 社区主干分支中,预计在 9 月广大社区用户就可以提前体验到基于存算分离架构的预览版本。 - -## 易用性进一步提升 - -除了以上功能需求外,在 Apache Doris 还增加了许多面向企业级特性的体验改进: - -### 支持 Kubernetes 容器化部署 - -在过去 Apache Doris 是基于 IP 通信的,在 K8s 环境部署时由于宿主机故障发生 Pod IP 漂移将导致集群不可用,在 2.0 版本中我们支持了 FQDN,使得 Apache Doris 可以在无需人工干预的情况下实现节点自愈,因此可以更好应对 K8s 环境部署以及灵活扩缩容。 - -### 跨集群数据复制 - -在 Apache Doris 2.0.0 版本中,我们可以通过 CCR 的功能在库/表级别将源集群的数据变更同步到目标集群,可根据场景精细控制同步范围;用户也可以根据需求灵活选择全量或者增量同步,有效提升了数据同步的灵活性和效率;此外 Dors CCR 还支持 DDL 同步,源集群执行的 DDL 语句可以自动同步到目标集群,从而保证了数据的一致性。Doris CCR 配置和使用也非常简单,简单操作即可快速完成跨集群数据复制。基于 Doris CCR 优异的能力,可以更好实现读写负载分离以及多机房备份,并可以更好支持不同场景的跨集群复制需求。 - -## 其他升级注意事项 - -- 1.2-lts 需要停机升级到 2.0.0,2.0-alpha 需要停机升级到 2.0.0 -- 查询优化器开关默认开启 `enable_nereids_planner=true`; -- 系统中移除了非向量化代码,所以 `enable_vectorized_engine` 参数将不再生效; -- 新增参数 `enable_single_replica_compaction`; -- 默认使用 datev2, datetimev2, decimalv3 来创建表,不支持 datev1,datetimev1,decimalv2 创建表; -- 在 JDBC 和 Iceberg Catalog 中默认使用 decimalv3; -- date type 新增 AGG_STATE; -- backend 表去掉 cluster 列; -- 为了与 BI 工具更好兼容,在 show create table 时,将 datev2 和 datetimev2 显示为 date 和 datetime。 -- 在 BE 启动脚本中增加了 max_openfiles 和 swap 的检查,所以如果系统配置不合理,be 有可能会启动失败; -- 禁止在 localhost 访问 FE 时无密码登录; -- 当系统中存在 Multi-Catalog 时,查询 information schema 的数据默认只显示 internal catalog 的数据; -- 限制了表达式树的深度,默认为 200; -- array string 返回值 单引号变双引号; -- 对 Doris 的进程名重命名为 DorisFE 和 DorisBE; -- AES 和 SM4 加解密函数的两参数版本行为变化,详见[对应函数文档](../../sql-manual/sql-functions/scalar-functions/encrypt-digest-functions/sm4-encrypt.md) - -## 正式踏上 2.0 之旅 - -在 Apache Doris 2.0.0 版本发布过程中,我们邀请了数百家企业参与新版本的打磨,力求为所有用户提供性能更佳、稳定性更高、易用性更好的数据分析体验。后续我们将会持续敏捷发版来响应所有用户对功能和稳定性的更高追求,预计 2.0 系列的第一个迭代版本 2.0.1 将于 8 月下旬发布,9 月会进一步发布 2.0.2 版本。在快速 Bugfix 的同时,也会不断将一些最新特性加入到新版本中。9 月份我们还将发布 2.1 版本的尝鲜版本,会增加一系列呼声已久的新能力,包括 Variant 可变数据类型以更好满足半结构化数据 Schema Free 的分析需求,多表物化视图,在导入性能方面持续优化、增加新的更加简洁的数据导入方式,通过自动攒批实现更加实时的数据写入,复合数据类型的嵌套能力等。 - -期待 Apache Doris 2.0 版本的正式发布为更多社区用户提供实时统一的分析体验,我们也相信 Apache Doris 2.0 版本会成为您在实时分析场景中的最理想选择。 - -## 致谢 - -再次向所有参与 Apache Doris 2.0.0 版本开发和测试的贡献者们表示最衷心的感谢,他们分别是: - -0xflotus、1330571、15767714253、924060929、ArmandoZ、AshinGau、BBB-source、BePPPower、Bears0haunt、BiteTheDDDDt、ByteYue、Cai-Yao、CalvinKirs、Centurybbx、ChaseHuangxu、CodeCooker17、DarvenDua、Dazhuwei、DongLiang-0、EvanTheBoy、FreeOnePlus、Gabriel39、GoGoWen、HHoflittlefish777、HackToday、HappenLee、Henry2SS、HonestManXin、JNSimba、JackDrogon、Jake-00、Jenson97Jibing-Li、Johnnyssc、JoverZhang、KassieZ、Kikyou1997、Larborator、Lchangliang、LemonLiTree、LiBinfeng-01、MRYOG、Mellorsssss、Moonm3n、Mryange、Myasuka、NetShrimp06、Reminiscent、SWJTU-ZhangLei、SaintBacchus、ShaoStaticTiger、Shoothzj、SilasKenneth、TangSiyang2001、Tanya-W、TeslaCN、TsukiokaKogane、UnicornLee、WinkerDu、WuWQ98、Xiaoccer、XieJiann、Yanko-7、Yukang-Lian、Yulei-Yang、ZI-MA、ZashJie、ZhangYu0123、Zhiyu-h、adonis0147、airborne12、alissa-tung、amorynan、beijita、bigben0204、bin41215、bingquanzhao、bobhan1、bowenliang123、brody715、caiconghui、cambyzju、caoliang-web、catpineapple、chenlinzhong、cjq9458、cnissnzg、colagy、csun5285、czzmmc、dataroaring、davidshtian、deadlinefen、deardeng、didiaode18、dong-shuai、dujl、dutyu、echo-hhj、eldenmoon、englefly、figurant、fornaix、fracly、freemandealer、fsilent、fuchanghai、gavinchou、git-hulk、gitccl、gnehil、guoxiaolongzte、gwxog、hailin0、hanyisong、haochengxia、haohuaijin、hechao-ustc、hello-stephen、herry2038、hey-hoho、hf200012、hqx871、httpshirley、htyoung、hubgeter、hufengkai、hust-hhb、isHuangXin、ixzc、jacktengg、jackwener、jeffreys-cat、jiugem、jixxiong、kaijchen、kaka11chen、levy5307、lexluo09、liangjiawei1110、liaoxin01、liugddx、liujinhui1994、liujiwen-up、liutang123、liuxinzero07、liwei9902、lljqy、lsy3993、luozenglin、luwei16、luzhijing、lvshaokang、maochongxin、meredith620、mklzl、mongo360、morningman、morrySnow、mrhhsg、myfjdthink、mymeiyi、nanfeng1999、neuyilan、nextdreamblue、niebayes、nikam14、pengxiangyu、pingchunzhang、platoneko、q763562998、qidaye、qzsee、reswqa、sepastian、shenxingwuying、shuke987、shysnow、siriume、sjyago、skyhitnow、smallhibiscus、sohardforaname、spaces-X、stalary、starocean999、superspeedone、taomengen、tarepanda1024、timyuer、ucasfl、vinlee19、wangbo、wanghuan2054、wangshuo128、wangtianyi2004、wangyf0555、wangyujia2023、web-flow、weizhengte、weizuo93、whutpencil、wsjz、wuwenchi、wzymumon、xiaojunjie、xiaokang、xiedeyantu、xinyiZzz、xuqinghuang、xutaoustc、xy720、xzj7019、ya-dao、yagagagaga、yangzhg、yiguolei、yimeng、yinzhijian、yixiutt、yongjinhou、youtNa、yuanyuan8983、yujian225、yujun777、yuxuan-luo、yz-jayhua、zbtzbtzbt、zclllyybb、zddr、zenoyang、zgxme、zhangguoqiang666、zhangstar333、zhangy5、zhannngchen、zhbinbin、zhengshengjun、zhengshiJ、zwuis、zxealous、zy-kkk、zzzxl1993、zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.1.md deleted file mode 100644 index 21414d0b47167..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.1.md +++ /dev/null @@ -1,140 +0,0 @@ ---- -{ - "title": "Release 2.0.1", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.1 Release 版本已于 2023 年 9 月 4 日正式发布,有超过 71 位贡献者为 Apache Doris 提交了超过 380 个优化与修复。" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.1 Release 版本已于 2023 年 9 月 4 日正式发布,有超过 71 位贡献者为 Apache Doris 提交了超过 380 个优化与修复。 - -# 行为变更 -- 将 varchar 默认长度 1 修改为 65533 - -# 功能改进 - -### Array 和 Map 数据类型的功能优化及稳定性改进 - -- [https://github.com/apache/doris/pull/22793](https://github.com/apache/doris/pull/22793) -- [https://github.com/apache/doris/pull/22927](https://github.com/apache/doris/pull/22927) -- [https://github.com/apache/doris/pull/22738](https://github.com/apache/doris/pull/22738) -- [https://github.com/apache/doris/pull/22347](https://github.com/apache/doris/pull/22347) -- [https://github.com/apache/doris/pull/23250](https://github.com/apache/doris/pull/23250) -- [https://github.com/apache/doris/pull/22300](https://github.com/apache/doris/pull/22300) - -### 倒排索引的查询性能优化 - -- [https://github.com/apache/doris/pull/22836](https://github.com/apache/doris/pull/22836) -- [https://github.com/apache/doris/pull/23381](https://github.com/apache/doris/pull/23381) -- [https://github.com/apache/doris/pull/23389](https://github.com/apache/doris/pull/23389) -- [https://github.com/apache/doris/pull/22570](https://github.com/apache/doris/pull/22570) - -### bitmap、like、scan、agg 等执行性能优化 - -- [https://github.com/apache/doris/pull/23172](https://github.com/apache/doris/pull/23172) -- [https://github.com/apache/doris/pull/23495](https://github.com/apache/doris/pull/23495) -- [https://github.com/apache/doris/pull/23476](https://github.com/apache/doris/pull/23476) -- [https://github.com/apache/doris/pull/23396](https://github.com/apache/doris/pull/23396) -- [https://github.com/apache/doris/pull/23182](https://github.com/apache/doris/pull/23182) -- [https://github.com/apache/doris/pull/22216](https://github.com/apache/doris/pull/22216) - -### CCR 的功能优化与稳定性提升 - -- [https://github.com/apache/doris/pull/22447](https://github.com/apache/doris/pull/22447) -- [https://github.com/apache/doris/pull/22559](https://github.com/apache/doris/pull/22559) -- [https://github.com/apache/doris/pull/22173](https://github.com/apache/doris/pull/22173) -- [https://github.com/apache/doris/pull/22678](https://github.com/apache/doris/pull/22678) - -### Merge-on-Write 主键表的能力增强 - -- [https://github.com/apache/doris/pull/22282](https://github.com/apache/doris/pull/22282) -- [https://github.com/apache/doris/pull/22984](https://github.com/apache/doris/pull/22984) -- [https://github.com/apache/doris/pull/21933](https://github.com/apache/doris/pull/21933) -- [https://github.com/apache/doris/pull/22874](https://github.com/apache/doris/pull/22874) - - -### 表状态和统计信息的功能优化 - -- [https://github.com/apache/doris/pull/22658](https://github.com/apache/doris/pull/22658) -- [https://github.com/apache/doris/pull/22211](https://github.com/apache/doris/pull/22211) -- [https://github.com/apache/doris/pull/22775](https://github.com/apache/doris/pull/22775) -- [https://github.com/apache/doris/pull/22896](https://github.com/apache/doris/pull/22896) -- [https://github.com/apache/doris/pull/22788](https://github.com/apache/doris/pull/22788) -- [https://github.com/apache/doris/pull/22882](https://github.com/apache/doris/pull/22882) - - -### Multi-Catalog 的功能优化及稳定性改进 - -- [https://github.com/apache/doris/pull/22949](https://github.com/apache/doris/pull/22949) -- [https://github.com/apache/doris/pull/22923](https://github.com/apache/doris/pull/22923) -- [https://github.com/apache/doris/pull/22336](https://github.com/apache/doris/pull/22336) -- [https://github.com/apache/doris/pull/22915](https://github.com/apache/doris/pull/22915) -- [https://github.com/apache/doris/pull/23056](https://github.com/apache/doris/pull/23056) -- [https://github.com/apache/doris/pull/23297](https://github.com/apache/doris/pull/23297) -- [https://github.com/apache/doris/pull/23279](https://github.com/apache/doris/pull/23279) - - -# 问题修复 - -修复了若干个 2.0.0 版本中的问题,使系统稳定性得到进一步提升 - -- [https://github.com/apache/doris/pull/22673](https://github.com/apache/doris/pull/22673) -- [https://github.com/apache/doris/pull/22656](https://github.com/apache/doris/pull/22656) -- [https://github.com/apache/doris/pull/22892](https://github.com/apache/doris/pull/22892) -- [https://github.com/apache/doris/pull/22959](https://github.com/apache/doris/pull/22959) -- [https://github.com/apache/doris/pull/22902](https://github.com/apache/doris/pull/22902) -- [https://github.com/apache/doris/pull/22976](https://github.com/apache/doris/pull/22976) -- [https://github.com/apache/doris/pull/22734](https://github.com/apache/doris/pull/22734) -- [https://github.com/apache/doris/pull/22840](https://github.com/apache/doris/pull/22840) -- [https://github.com/apache/doris/pull/23008](https://github.com/apache/doris/pull/23008) -- [https://github.com/apache/doris/pull/23003](https://github.com/apache/doris/pull/23003) -- [https://github.com/apache/doris/pull/22966](https://github.com/apache/doris/pull/22966) -- [https://github.com/apache/doris/pull/22965](https://github.com/apache/doris/pull/22965) -- [https://github.com/apache/doris/pull/22784](https://github.com/apache/doris/pull/22784) -- [https://github.com/apache/doris/pull/23049](https://github.com/apache/doris/pull/23049) -- [https://github.com/apache/doris/pull/23084](https://github.com/apache/doris/pull/23084) -- [https://github.com/apache/doris/pull/22947](https://github.com/apache/doris/pull/22947) -- [https://github.com/apache/doris/pull/22919](https://github.com/apache/doris/pull/22919) -- [https://github.com/apache/doris/pull/22979](https://github.com/apache/doris/pull/22979) -- [https://github.com/apache/doris/pull/23096](https://github.com/apache/doris/pull/23096) -- [https://github.com/apache/doris/pull/23113](https://github.com/apache/doris/pull/23113) -- [https://github.com/apache/doris/pull/23062](https://github.com/apache/doris/pull/23062) -- [https://github.com/apache/doris/pull/22918](https://github.com/apache/doris/pull/22918) -- [https://github.com/apache/doris/pull/23026](https://github.com/apache/doris/pull/23026) -- [https://github.com/apache/doris/pull/23175](https://github.com/apache/doris/pull/23175) -- [https://github.com/apache/doris/pull/23167](https://github.com/apache/doris/pull/23167) -- [https://github.com/apache/doris/pull/23015](https://github.com/apache/doris/pull/23015) -- [https://github.com/apache/doris/pull/23165](https://github.com/apache/doris/pull/23165) -- [https://github.com/apache/doris/pull/23264](https://github.com/apache/doris/pull/23264) -- [https://github.com/apache/doris/pull/23246](https://github.com/apache/doris/pull/23246) -- [https://github.com/apache/doris/pull/23198](https://github.com/apache/doris/pull/23198) -- [https://github.com/apache/doris/pull/23221](https://github.com/apache/doris/pull/23221) -- [https://github.com/apache/doris/pull/23277](https://github.com/apache/doris/pull/23277) -- [https://github.com/apache/doris/pull/23249](https://github.com/apache/doris/pull/23249) -- [https://github.com/apache/doris/pull/23272](https://github.com/apache/doris/pull/23272) -- [https://github.com/apache/doris/pull/23383](https://github.com/apache/doris/pull/23383) -- [https://github.com/apache/doris/pull/23372](https://github.com/apache/doris/pull/23372) -- [https://github.com/apache/doris/pull/23399](https://github.com/apache/doris/pull/23399) -- [https://github.com/apache/doris/pull/23295](https://github.com/apache/doris/pull/23295) -- [https://github.com/apache/doris/pull/23446](https://github.com/apache/doris/pull/23446) -- [https://github.com/apache/doris/pull/23406](https://github.com/apache/doris/pull/23406) -- [https://github.com/apache/doris/pull/23387](https://github.com/apache/doris/pull/23387) -- [https://github.com/apache/doris/pull/23421](https://github.com/apache/doris/pull/23421) -- [https://github.com/apache/doris/pull/23456](https://github.com/apache/doris/pull/23456) -- [https://github.com/apache/doris/pull/23361](https://github.com/apache/doris/pull/23361) -- [https://github.com/apache/doris/pull/23402](https://github.com/apache/doris/pull/23402) -- [https://github.com/apache/doris/pull/23369](https://github.com/apache/doris/pull/23369) -- [https://github.com/apache/doris/pull/23245](https://github.com/apache/doris/pull/23245) -- [https://github.com/apache/doris/pull/23532](https://github.com/apache/doris/pull/23532) -- [https://github.com/apache/doris/pull/23529](https://github.com/apache/doris/pull/23529) -- [https://github.com/apache/doris/pull/23601](https://github.com/apache/doris/pull/23601) - -优化改进及修复问题的完整列表请在 GitHub 按照标签 dev/2.0.1-merged 进行筛选即可。 - - -# 致谢 - -向所有参与 Apache Doris 2.0.1 版本开发和测试的贡献者们表示最衷心的感谢,他们分别是: - -adonis0147、airborne12、amorynan、AshinGau、BePPPower、BiteTheDDDDt、bobhan1、ByteYue、caiconghui、CalvinKirs、csun5285、DarvenDuan、deadlinefen、DongLiang-0、Doris-Extras、dutyu、englefly、freemandealer、Gabriel39、GoGoWen、HappenLee、hello-stephen、HHoflittlefish777、hubgeter、hust-hhb、JackDrogon、jacktengg、jackwener、Jibing-Li、kaijchen、kaka11chen、Kikyou1997、Lchangliang、LemonLiTree、liaoxin01、LiBinfeng-01、lsy3993、luozenglin、morningman、morrySnow、mrhhsg、Mryange、mymeiyi、shuke987、sohardforaname、starocean999、TangSiyang2001、Tanya-W、ucasfl、vinlee19、wangbo -wsjz、wuwenchi、xiaokang、XieJiann、xinyiZzz、yujun777、Yukang-Lian、Yulei-Yang、zclllyybb、zddr、zenoyang、zgxme、zhangguoqiang666、zhangstar333、zhannngchen、zhiqiang-hhhh、zxealous、zy-kkk、zzzxl1993、zzzzzzzs \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.10.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.10.md deleted file mode 100644 index de7089152b366..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.10.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -{ - "title": "Release 2.0.10", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.10 版本已于 2024 年 5 月 16 日正式与大家见面,该版本提交了 83 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**[Apache Doris 2.0.10](https://doris.apache.org/download/) 版本已于 2024 年 5 月 16 日正式与大家见面**,该版本提交了 83 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 改进和优化 - -- 增加了`read_only`和`super_read_only`变量以保持和 MySQL 兼容 - -- 仅在 IO_ERROR 的错误才把数据目录加入 Broken List,防止 fd 超限等错误导致误加入 - -- 基于外表 CTAS 创建新表时,把 `VARCHAR` 类型转成 `STRING` 类型 - -- 支持把 Paimon 的 `ROW` 类型映射成 Doris 的 `STRUCT` 类型 - -- 在创建 Tablet 选择数据盘时,允许存在少量的倾斜 - -- 对 `set replica drop` 命令记录 Editlog,以防止在 Follower 节点执行命令后,其状态显示不正确 - -- Schema Change 内存自适应避免内存超限 - -- 倒排索引中 Unicode 分词器可以配置不使用停用词 - - -## 致谢 - -@airborne12, @BePPPower, @ByteYue, @CalvinKirs, @cambyzju, @csun5285, @dataroaring, @deardeng, @DongLiang-0, @eldenmoon, @felixwluo, @HappenLee, @hubgeter, @jackwener, @kaijchen, @kaka11chen, @Lchangliang, @liaoxin01, @LiBinfeng-01, @luennng, @morningman, @morrySnow, @Mryange, @nextdreamblue, @qidaye, @starocean999, @suxiaogang223, @SWJTU-ZhangLei, @w41ter, @xiaokang, @xy720, @yujun777, @Yukang-Lian, @zhangstar333, @zxealous, @zy-kkk, @zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.11.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.11.md deleted file mode 100644 index b2e735dfc9f9a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.11.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -{ - "title": "Release 2.0.11", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.11 版本已于 2024 年 6 月 5 日正式与大家见面,该版本提交了 123 个改进项以及问题修复,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.11](https://doris.apache.org/download/) 版本已于 2024 年 6 月 5 日正式与大家见面,该版本提交了 123 个改进项以及问题修复,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - - -## 1 行为变更 - -由于倒排索引已经成熟稳定,可以替换老的 `BITMAP INDEX`,因此后续新建 `BITMAP INDEX` 会自动切换成 `INVERTED INDEX`,而已经创建的 `BITMAP INDEX` 保持不变。整个切换过程对用户无感知,写入和查询没有变化,此外用户可以修改 FE 配置 `enable_create_bitmap_index_as_inverted_index = false` 来关闭该自动切换。[#35528](https://github.com/apache/doris/pull/35528) - - - -## 2 改进和优化 - -- 为 JSON 和 TIME 添加 Trino JDBC Catalog 类型映射。 - -- 在无法转移到(非)主节点时,FE 退出以防止未知状态和过多日志。 - -- 在删除统计表时写入审计日志。 - -- 如果表只进行了部分分析,忽略最小/最大列统计以避免低效的查询计划。 - -- 支持集合操作减法,例如 `set1 - set2`。 - -- 使用 concat(col, pattern_str) 改进 LIKE 和 REGEXP 子句的性能,例如:`col1 LIKE concat('%', col2, '%')`。 - -- 添加查询选项以支持短路查询,保证升级兼容性。 - - - -## 3 致谢 - -@924060929、@airborne12、@AshinGau、@BePPPower、@BiteTheDDDDt、@ByteYue、@CalvinKirs、@cambyzju、@csun5285、@dataroaring、@eldenmoon、@englefly、@feiniaofeiafei、@Gabriel39、@GoGoWen、@HHoflittlefish777、@hubgeter、@jacktengg、@jackwener、@jeffreys-cat、@Jibing-Li、@kaka11chen、@kobe6th、@LiBinfeng-01、@mongo360、@morningman、@morrySnow、@mrhhsg、@Mryange、@nextdreamblue、@qidaye、@sjyango、@starocean999、@SWJTU-ZhangLei、@w41ter、@wangbo、@wsjz、@wuwenchi、@xiaokang、@XieJiann、@xy720、@yujun777、@Yukang-Lian、@Yulei-Yang、@zclllyybb、@zddr、@zhangstar333、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.12.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.12.md deleted file mode 100644 index cdb156515c2a8..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.12.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -{ - "title": "Release 2.0.12", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.12 版本已于 2024 年 6 月 27 日正式与大家见面,该版本提交了 99 个改进项以及问题修复,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.12](https://doris.apache.org/download/) 版本已于 2024 年 6 月 27 日正式与大家见面,该版本提交了 99 个改进项以及问题修复,欢迎大家下载体验。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 行为变更 - -- 不再将建表的默认注释设置为表的类型,而是改成默认为空,比如 COMMENT 'OLAP' 变成 COMMENT '',这样对于依赖注释的 BI 软件更加友好。 [#35855](https://github.com/apache/doris/pull/35855) - -- 将 `@@autocommit` 变量的类型从 `BOOLEAN` 改成 `BIGINT`,以免有些 MySQL 客户端(比如.NET MySQL.Data)报错。 [#33282](https://github.com/apache/doris/pull/33282) - - -## 改进优化 - -- 删除 `disable_nested_complex_type` 参数,默认允许创建嵌套的 `ARRAY` `MAP` `STRUCT` 类型。[#36255](https://github.com/apache/doris/pull/36255) - -- HMS Catalog 支持 `SHOW CREATE DATABASE` 命令。[ #28145](https://github.com/apache/doris/pull/28145) - -- 在 Query Profile 中增加更多倒排索引的指标。[#36545](https://github.com/apache/doris/pull/36545) - -- 跨集群数据复制(CCR)支持倒排索引 [#31743](https://github.com/apache/doris/pull/31743) - -## 致谢 - -@amorynan、@BiteTheDDDDt、@cambyzju、@caoliang-web、@dataroaring、@eldenmoon、@feiniaofeiafei、@felixwluo、@gavinchou、@HappenLee、@hello-stephen、@jacktengg、@Jibing-Li、@Johnnyssc、@liaoxin01、@LiBinfeng-01、@luwei16、@mongo360、@morningman、@morrySnow、@mrhhsg、@Mryange、@mymeiyi、@qidaye、@qzsee、@starocean999、@w41ter、@wangbo、@wsjz、@wuwenchi、@xiaokang、@XuPengfei-1020、@xy720、@yongjinhou、@yujun777、@Yukang-Lian、@Yulei-Yang、@zclllyybb、@zddr、@zhannngchen、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.13.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.13.md deleted file mode 100644 index cff0b70ecc89b..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.13.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -{ - "title": "Release 2.0.13", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.13 版本已于 2024 年 7 月 16 日正式与大家见面,该版本提交了 112 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.13 版本已于 2024 年 7 月 16 日正式与大家见面,该版本提交了 112 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -[快速下载](https://doris.apache.org/download/) - -## 行为变更 - -仅在客户端启用了 `CLIENT_MULTI_STATEMENTS` 设置时,SQL 输入才会被视为多条语句,从而增强了与 MySQL 的兼容性。[#36759](https://github.com/apache/doris/pull/36759) - -## 新增功能 - -- 新增了 BE 配置 `allow_zero_date`,允许使用全零的日期。设置为 `false` 时,`0000-00-00` 会被解析为 `NULL`;设置为 `true` 时,会被解析为 `0000-01-01`。默认值为 `false`,以保持与之前行为的一致性。[#34961](https://github.com/apache/doris/pull/34961) - -- `LogicalWindow` 和 `LogicalPartitionTopN` 现在支持多字段谓词下推,以提升性能。[#36828](https://github.com/apache/doris/pull/36828) - -- ES Catalog 现在将 ES 的 `nested` 或 `object` 类型映射到 Doris 的 `JSON` 类型。[#37101](https://github.com/apache/doris/pull/37101) - -## 改进和优化 - -- `LIMIT` 查询现在会更早地停止读取数据,以减少资源消耗并提升性能。[#36535](https://github.com/apache/doris/pull/36535) - -- 现在支持具有空键的特殊 JSON 数据。[#36762](https://github.com/apache/doris/pull/36762) - -- 改进了 Routine Load 的稳定性和可用性,包括负载均衡、自动恢复、异常处理以及更友好的错误消息。[#36450](https://github.com/apache/doris/pull/36450) [#35376](https://github.com/apache/doris/pull/35376) [#35266](https://github.com/apache/doris/pull/35266) [#33372](https://github.com/apache/doris/pull/33372) [#32282](https://github.com/apache/doris/pull/32282) [#32046](https://github.com/apache/doris/pull/32046) [#32021](https://github.com/apache/doris/pull/32021) [#31846](https://github.com/apache/doris/pull/31846) [#31273](https://github.com/apache/doris/pull/31273) - -- 对 BE 的硬盘选择策略和速度进行了优化。[#36826](https://github.com/apache/doris/pull/36826) [#36795](https://github.com/apache/doris/pull/36795) [#36509](https://github.com/apache/doris/pull/36509) - -- 改进了 JDBC Catalog 的稳定性和可用性,包括加密、线程池连接数配置以及更友好的错误消息。[#36940](https://github.com/apache/doris/pull/36940) [#36720](https://github.com/apache/doris/pull/36720) [#30880](https://github.com/apache/doris/pull/30880) [#35692](https://github.com/apache/doris/pull/35692) - -## 致谢 - -@DarvenDuan、@Gabriel39、@Jibing-Li、@Johnnyssc、@Lchangliang、@LiBinfeng-01、@SWJTU-ZhangLei、@Thearas、@Yukang-Lian、@Yulei-Yang、@airborne12、@amorynan、@bobhan1、@cambyzju、@csun5285、@dataroaring、@deardeng、@eldenmoon、@englefly、@feiniaofeiafei、@hello-stephen、@jacktengg、@kaijchen、@liutang123、@luwei16、@morningman、@morrySnow、@mrhhsg、@mymeiyi、@platoneko、@qidaye、@sollhui、@starocean999、@w41ter、@xiaokang、@xy720、@yujun777、@zclllyybb \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.14.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.14.md deleted file mode 100644 index 4674088f07bae..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.14.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -{ - "title": "Release 2.0.14", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.14 版本已于 2024 年 8 月 6 日正式与大家见面,该版本提交了 110 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.14 版本已于 2024 年 8 月 6 日正式与大家见面,该版本提交了 110 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - - -## 1 新功能 - -- 增加获取最近一个查询 Profile 的 REST 接口 `curl http://user:password@127.0.0.1:8030/api/profile/text` 。[#38268](https://github.com/apache/doris/pull/38268) - -## 2 改进和优化 - -- 优化 MOW 表带有 Sequence 列的主键点查性能。[#38287](https://github.com/apache/doris/pull/38287) - -- 优化倒排索引在查询条件很多时的性能。[#35346](https://github.com/apache/doris/pull/35346) - -- 创建带分词的倒排索引时,自动开启 `support_phrase` 选项加速 `match_phrase` 系列短语查询。[#37949](https://github.com/apache/doris/pull/37949) - -- 支持简化的 SQL Hint,例如 `SELECT /*+ query_timeout(3000) */ * FROM t;`。[#37720](https://github.com/apache/doris/pull/37720) - -- 读对象存储遇到 429 错误时自动重试提升稳定性。[#35396](https://github.com/apache/doris/pull/35396) - -- LEFT SEMI / ANTI JOIN 在匹配到符合的数据行时,终止后续的匹配执行提升性能。[#34703](https://github.com/apache/doris/pull/34703) - -- 避免非法数据返回 MySQL 结果时出发 coredump。[#28069](https://github.com/apache/doris/pull/28069) - -- 输出类型名字时统一使用小写,保持跟 MySQL 兼容对 BI 工具更加友好。[#38521](https://github.com/apache/doris/pull/38521) - - -## 致谢 - -@924060929、@BiteTheDDDDt、@ByteYue、@CalvinKirs、@GoGoWen、@HappenLee、@Jibing-Li、@Lchangliang、@LiBinfeng-01、@Mryange、@XieJiann、@Yukang-Lian、@Yulei-Yang、@airborne12、@amorynan、@biohazard4321、@cambyzju、@csun5285、@eldenmoon、@englefly、@freemandealer、@hello-stephen、@hubgeter、@kaijchen、@liaoxin01、@luwei16、@morningman、@morrySnow、@mymeiyi、@qidaye、@sollhui、@starocean999、@w41ter、@wuwenchi、@xiaokang、@xy720、@yujun777、@zclllyybb、@zddr、@zhangstar333、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.15.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.15.md deleted file mode 100644 index 3ab116804eae8..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.15.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -{ - "title": "Release 2.0.15", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.15 版本已于 2024 年 9 月 30 日正式与大家见面,该版本提交了 157 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.15 版本已于 2024 年 9 月 30 日正式与大家见面,该版本提交了 157 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- 立即下载:https://doris.apache.org/download - -- GitHub 下载:https://github.com/apache/doris/releases/tag/2.0.15 - - -## 行为变更 - -无 - -## 新功能 - -- 恢复功能现在支持删除冗余的表块和分区选项。[#39028](https://github.com/apache/doris/pull/39028) - -- 支持 JSON 函数 `json_search`。[#40948](https://github.com/apache/doris/pull/40948) - -## 改进与优化 - -### 稳定性 - -- 添加了 FE 配置 `abort_txn_after_lost_heartbeat_time_second`,用于设置事务中止时间。[#28662](https://github.com/apache/doris/pull/28662) - -- BE 失去心跳信号超过 1 分钟后中止事务,而不是 5 秒,以避免事务中止过于敏感。[#22781](https://github.com/apache/doris/pull/22781) - -- 延迟调度例行加载的 EOF 任务,以避免过多的小事务。[#39975](https://github.com/apache/doris/pull/39975) - -- 优先从在线磁盘服务进行查询,以提高稳健性。[#39467](https://github.com/apache/doris/pull/39467) - -- 在非严格模式的部分更新中,如果行的删除标志已标记,则跳过检查新插入的行。[#40322](https://github.com/apache/doris/pull/40322) - -- 为防止 FE 内存不足,限制备份任务中的表块数量,默认值为 300,000。[#39987](https://github.com/apache/doris/pull/39987) - -- ARRAY MAP STRUCT 类型支持 `REPLACE_IF_NOT_NULL`。[#38304](https://github.com/apache/doris/pull/38304) - -- 对非 `DELETE_INVALID_XXX `失败的删除作业进行重试。[#37834](https://github.com/apache/doris/pull/37834) - -### 查询性能 - -- 优化由并发列更新和 compaction 引起的慢速列更新问题。[#38487](https://github.com/apache/doris/pull/38487) - -- 当过滤条件中存在 NullLiteral 时,可以将其折叠为 false 并进一步转换为 EmptySet,以减少不必要的数据扫描和计算。[#38135](https://github.com/apache/doris/pull/38135) - -- 提高 `ORDER BY` 全排序的性能。[#38985](https://github.com/apache/doris/pull/38985) - -- 提高倒排索引中字符串处理的性能。[#37395](https://github.com/apache/doris/pull/37395) - -### 查询优化器 - -- 增加了对以分号开头的语句的支持以兼容老优化器。[#39399](https://github.com/apache/doris/pull/39399) - -- 完善了一些聚合函数签名匹配。[#39352](https://github.com/apache/doris/pull/39352) - -- 在 Schema 变更后删除列统计信息并触发自动分析。[#39101](https://github.com/apache/doris/pull/39101) - -- 支持使用 `DROP CACHED STATS table_name` 删除缓存的统计信息。[#39367](https://github.com/apache/doris/pull/39367) - -### Multi Catalog - -- 优化 JDBC Catalog 刷新,减少客户端创建频率。[#40261](https://github.com/apache/doris/pull/40261) - -- 修复 JDBC Catalog 在某些条件下存在的线程泄漏问题。[#39423](https://github.com/apache/doris/pull/39423) - -**致谢** - -@924060929、@BePPPower、@BiteTheDDDDt、@CalvinKirs、@GoGoWen、@HappenLee、@Jibing-Li、@Johnnyssc、@LiBinfeng-01、@Mryange、@SWJTU-ZhangLei、@TangSiyang2001、@Toms1999、@Vallishp、@Yukang-Lian、@airborne12、@amorynan、@bobhan1、@cambyzju、@csun5285、@dataroaring、@eldenmoon、@englefly、@feiniaofeiafei、@hello-stephen、@htyoung、@hubgeter、@justfortaste、@liaoxin01、@liugddx、@liutang123、@luwei16、@mongo360、@morrySnow、@qidaye、@smallx、@sollhui、@starocean999、@w41ter、@xiaokang、@xzj7019、@yujun777、@zclllyybb、@zddr、@zhangstar333、@zhannngchen、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.2.md deleted file mode 100644 index 1c615664f28ac..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.2.md +++ /dev/null @@ -1,192 +0,0 @@ ---- -{ - "title": "Release 2.0.2", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.2 版本已于 2023 年 10 月 6 日正式发布,该版本对多个功能进行了更新优化,旨在更好地满足用户的需求。有 92 位贡献者为 Apache Doris 2.0.2 版本提交了功能优化项以及问题修复,进一步提升了系统的稳定性和性能," -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.2 版本已于 2023 年 10 月 6 日正式发布,该版本对多个功能进行了更新优化,旨在更好地满足用户的需求。有 92 位贡献者为 Apache Doris 2.0.2 版本提交了功能优化项以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**GitHub 下载**:https://github.com/apache/doris/releases/tag/2.0.2-rc05 - -**官网下载页**:https://doris.apache.org/download/ - -## Behavior Changes - -- https://github.com/apache/doris/pull/24679 - - 删除与 lambda 函数语法冲突的 json“->”运算符,可以使用函数 json_extract 代替。 - -- https://github.com/apache/doris/pull/24308 - -将 `metadata_failure_recovery` 从 fe.conf 移动到 start_fe.sh 参数,以避免异常操作。 - -- https://github.com/apache/doris/pull/24207 - -对于普通类型中的 null 值使用 `\n` 来表示,对于复杂类型或嵌套类型的 null 值,跟 JSON 类型保持一致、采取 null 来表示。 - -- https://github.com/apache/doris/pull/23795 -- https://github.com/apache/doris/pull/23784 - -优化 BE 节点 priority_network 配置项的绑定策略,如果用户配置了错误的 priority_network 则直接启动失败,以避免用户错误地认为配置是正确的。如果用户没有配置 priority_network,则仅从 IPv4 列表中选择第一个 IP,而不是从所有 IP 中选择,以避免用户的服务器不支持 IPv4。 - -- https://github.com/apache/doris/pull/17730 - -支持取消正在重试的导入任务,修复取消加载失败的问题。 - -## 功能优化 - -### 易用性提升 - -- https://github.com/apache/doris/pull/23887 - -某些场景下,用户需要向集群中添加一些自定义的库,如 lzo.jar、orai18n.jar 等。在过去的版本中,这些 lib 文件位于 fe/lib 或 be/lib 中,但在升级集群时,lib 库将被新的 lib 库替换,导致所有自定义的 lib 库都会丢失。 - -在新版本中,为 FE 和 BE 添加了新的自定义目录 custom_lib,用户可以在其中放置自定义 lib 文件。 - -- https://github.com/apache/doris/pull/23022 - -支持基于用户角色的权限访问控制,实现了行级细粒度的权限控制策略。 - -### 改进查询优化器 Nereids 统计信息收集 - -- https://github.com/apache/doris/pull/23663 - -在运行 Analysis 任务时禁用 File Cache,Analysis 任务是后台任务,不应影响用户本地 File Cache 数据。 - -- https://github.com/apache/doris/pull/23703 - -在过去版本中,查看列的统计信息时将忽略出现错误的列。 - -在新版本中,当 min 或 max 值未能反序列化时,查看列的统计信息时将使用 N/A 作为 min 或 max 的值并仍显示其余的统计信息,包括 count、null_count、ndv 等。 - -- https://github.com/apache/doris/pull/23965 - -支持 JDBC 外部表的统计信息收集。 - -- https://github.com/apache/doris/pull/24625 - -跳过 `__internal_schema` 和 `information_schema` 上未知列的统计信息检查。 - -### Multi-Catalog 功能优化 - -- https://github.com/apache/doris/pull/24168 - -支持 Hadoop viewfs; - -- https://github.com/apache/doris/pull/22369 - -优化 JDBC Catalog Checksum Replay 和 Range 相关问题; - -- https://github.com/apache/doris/pull/23868 - -优化了 JDBC Catalog 的 Property 检查和错误消息提示。 - -- https://github.com/apache/doris/pull/24242 - -修复了 MaxCompute Catalog Decimal 类型解析问题以及使用对象存储地址错误的问题。 - -- https://github.com/apache/doris/pull/23391 - -支持 Hive Metastore Catalog 的 SQL Cache。 - -- https://github.com/apache/doris/pull/22869 - -提高了 Hive Metastore Catalog 的元数据同步性能。 - -- https://github.com/apache/doris/pull/22702 - -添加 metadata_name_ids 以快速获取 Catalogs、DB、Table,在创建或删除 Catalog 和 Table 时无需 Refresh Catalog,并添加 Profiling 表从而与 MySQL 兼容。 - -### 倒排索引性能优化 - -- https://github.com/apache/doris/pull/23952 - -增加 bkd 索引的查询缓存,通过缓存可以加速在命中 bkd 索引时的查询性能,在高并发场景中效果更为明显; - -- https://github.com/apache/doris/pull/24678 - -提升倒排索引在 Count 算子上的查询性能; - -- https://github.com/apache/doris/pull/24751 - -提升了 Match 算子在未命中索引时的效率,在测试表现中性能最高提升 60 倍; - -- https://github.com/apache/doris/pull/23871 -- https://github.com/apache/doris/pull/24389 - -提升了 MATCH 和 MATCH_ALL 在倒排索引上的查询性能; - -### Array 函数优化 - -- https://github.com/apache/doris/pull/23630 - -优化了老版本查询优化器 Array 函数无法处理 Decimal 类型的问题; - -- https://github.com/apache/doris/pull/24327 - -优化了 `array_union` 数组函数对多个参数的支持; - -- https://github.com/apache/doris/pull/24455 - -支持通过 explode 函数来处理数组嵌套复杂类型; - -## Bug 修复 - - 修复了之前版本存在的部分 Bug,使系统整体稳定性表现得到大幅提升,完整 BugFix 列表请参考 GitHub Commits 记录; - -- https://github.com/apache/doris/pull/23601 -- https://github.com/apache/doris/pull/23630 -- https://github.com/apache/doris/pull/23555 -- https://github.com/apache/doris/pull/17644 -- https://github.com/apache/doris/pull/23779 -- https://github.com/apache/doris/pull/23940 -- https://github.com/apache/doris/pull/23860 -- https://github.com/apache/doris/pull/23973 -- https://github.com/apache/doris/pull/24020 -- https://github.com/apache/doris/pull/24039 -- https://github.com/apache/doris/pull/23958 -- https://github.com/apache/doris/pull/24104 -- https://github.com/apache/doris/pull/24097 -- https://github.com/apache/doris/pull/23852 -- https://github.com/apache/doris/pull/24139 -- https://github.com/apache/doris/pull/24165 -- https://github.com/apache/doris/pull/24164 -- https://github.com/apache/doris/pull/24369 -- https://github.com/apache/doris/pull/24372 -- https://github.com/apache/doris/pull/24381 -- https://github.com/apache/doris/pull/24385 -- https://github.com/apache/doris/pull/24290 -- https://github.com/apache/doris/pull/24207 -- https://github.com/apache/doris/pull/24521 -- https://github.com/apache/doris/pull/24460 -- https://github.com/apache/doris/pull/24568 -- https://github.com/apache/doris/pull/24610 -- https://github.com/apache/doris/pull/24595 -- https://github.com/apache/doris/pull/24616 -- https://github.com/apache/doris/pull/24635 -- https://github.com/apache/doris/pull/24625 -- https://github.com/apache/doris/pull/24572 -- https://github.com/apache/doris/pull/24578 -- https://github.com/apache/doris/pull/23943 -- https://github.com/apache/doris/pull/24697 -- https://github.com/apache/doris/pull/24681 -- https://github.com/apache/doris/pull/24617 -- https://github.com/apache/doris/pull/24692 -- https://github.com/apache/doris/pull/24700 -- https://github.com/apache/doris/pull/24389 -- https://github.com/apache/doris/pull/24698 -- https://github.com/apache/doris/pull/24778 -- https://github.com/apache/doris/pull/24782 -- https://github.com/apache/doris/pull/24800 -- https://github.com/apache/doris/pull/24808 -- https://github.com/apache/doris/pull/24636 -- https://github.com/apache/doris/pull/24981 -- https://github.com/apache/doris/pull/24949 - -## 致谢 - -感谢所有在 2.0.2 版本中参与功能开发与优化以及问题修复的所有贡献者,他们分别是: - -[@adonis0147](https://github.com/adonis0147) [@airborne12](https://github.com/airborne12) [@amorynan](https://github.com/amorynan) [@AshinGau](https://github.com/AshinGau) [@BePPPower](https://github.com/BePPPower) [@BiteTheDDDDt](https://github.com/BiteTheDDDDt) [@bobhan1](https://github.com/bobhan1) [@ByteYue](https://github.com/ByteYue) [@caiconghui](https://github.com/caiconghui) [@CalvinKirs](https://github.com/CalvinKirs) [@cambyzju](https://github.com/cambyzju) [@ChengDaqi2023](https://github.com/ChengDaqi2023) [@ChinaYiGuan](https://github.com/ChinaYiGuan) [@CodeCooker17](https://github.com/CodeCooker17) [@csun5285](https://github.com/csun5285) [@dataroaring](https://github.com/dataroaring) [@deadlinefen](https://github.com/deadlinefen) [@DongLiang-0](https://github.com/DongLiang-0) [@Doris-Extras](https://github.com/Doris-Extras) [@dutyu](https://github.com/dutyu) [@eldenmoon](https://github.com/eldenmoon) [@englefly](https://github.com/englefly) [@freemandealer](https://github.com/freemandealer) [@Gabriel39](https://github.com/Gabriel39) [@gnehil](https://github.com/gnehil) [@GoGoWen](https://github.com/GoGoWen) [@gohalo](https://github.com/gohalo) [@HappenLee](https://github.com/HappenLee) [@hello-stephen](https://github.com/hello-stephen) [@HHoflittlefish777](https://github.com/HHoflittlefish777) [@hubgeter](https://github.com/hubgeter) [@hust-hhb](https://github.com/hust-hhb) [@ixzc](https://github.com/ixzc) [@JackDrogon](https://github.com/JackDrogon) [@jacktengg](https://github.com/jacktengg) [@jackwener](https://github.com/jackwener) [@Jibing-Li](https://github.com/Jibing-Li) [@JNSimba](https://github.com/JNSimba) [@kaijchen](https://github.com/kaijchen) [@kaka11chen](https://github.com/kaka11chen) [@Kikyou1997](https://github.com/Kikyou1997) [@Lchangliang](https://github.com/Lchangliang) [@LemonLiTree](https://github.com/LemonLiTree) [@liaoxin01](https://github.com/liaoxin01) [@LiBinfeng-01](https://github.com/LiBinfeng-01) [@liugddx](https://github.com/liugddx) [@luwei16](https://github.com/luwei16) [@mongo360](https://github.com/mongo360) [@morningman](https://github.com/morningman) [@morrySnow](https://github.com/morrySnow) @mrhhsg @Mryange @mymeiyi @neuyilan @pingchunzhang @platoneko @qidaye @realize096 @RYH61 @shuke987 @sohardforaname @starocean999 @SWJTU-ZhangLei @TangSiyang2001 @Tech-Circle-48 @w41ter @wangbo @wsjz @wuwenchi @wyx123654 @xiaokang @XieJiann @xinyiZzz @XuJianxu @xutaoustc @xy720 @xyfsjq @xzj7019 @yiguolei @yujun777 @Yukang-Lian @Yulei-Yang @zclllyybb @zddr @zhangguoqiang666 @zhangstar333 @ZhangYu0123 @zhannngchen @zxealous @zy-kkk @zzzxl1993 @zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.3.md deleted file mode 100644 index 24e791dc87ea1..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.3.md +++ /dev/null @@ -1,277 +0,0 @@ ---- -{ - "title": "Release 2.0.3", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.3 版本已于 2023 年 12 月 14 日正式发布,该版本对复杂数据类型、统计信息收集、倒排索引、数据湖分析、分布式副本管理等多个功能进行了优化,有 104 位贡献者为 Apache Doris 2.0." -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.3 版本已于 2023 年 12 月 14 日正式发布,该版本对复杂数据类型、统计信息收集、倒排索引、数据湖分析、分布式副本管理等多个功能进行了优化,有 104 位贡献者为 Apache Doris 2.0.3 版本提交了超过 1000 个功能优化项以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**GitHub 下载**:https://github.com/apache/doris/releases - -**官网下载页**:https://doris.apache.org/download/ - - -## 新增特性 - -### 自动统计信息收集 - -统计信息是 CBO 优化器进行代价估算时的依赖,通过收集统计信息有助于优化器了解数据分布特性、估算每个执行计划的成本并选择更优的执行计划,以此大幅提升查询效率。从 2.0.3 版本开始,Apache Doris 开始支持自动统计信息收集,默认为开启状态。 - -在每次导入事务提交后,Apache Doris 将记录导入事务更新的表信息并估算表统计信息的健康度,对于健康度低于配置参数的表会认为统计信息已过时并自动触发表的统计信息收集作业。同时为了降低统计信息作业的资源开销,Apache Doris 会自动采取采样的方式收集统计信息,用户也可以调整参数来采样更多行以获得更准确的数据分布信息。 - -更多信息请参考:[Statistics](../../query-acceleration/optimization-technology-principle/statistics) - - -### 数据湖框架支持复杂数据类型 - -- Java UDF、JDBC catalog、Hudi MOR 表等功能支持复杂数据类型 - - https://github.com/apache/doris/pull/24810 - - https://github.com/apache/doris/pull/26236 - -- Paimon catalog 支持复杂数据类型 - - https://github.com/apache/doris/pull/25364 - -- Paimon catalog 支持 Paimon 0.5 版本 - - https://github.com/apache/doris/pull/24985 - - -### 增加更多内置函数 - -- 新优化器支持 BitmapAgg 函数 - - https://github.com/apache/doris/pull/25508 - -- 支持 SHA 系列摘要函数 - - https://github.com/apache/doris/pull/24342 - -- 聚合函数 min_by 和 max_by 支持 bitmap 数据类型 - - https://github.com/apache/doris/pull/25430 - -- 增加 milliseconds/microseconds_add/sub/diff 函数 - - https://github.com/apache/doris/pull/24114 - -- 增加 json_insert, json_replace, json_set JSON 函数 - - https://github.com/apache/doris/pull/24384 - - -## 改进优化 - -### 性能优化 - -- 在过滤率高的倒排索引 match where 条件和过滤率低的普通 where 条件组合时,大幅降低索引列的 IO -- 优化经过 where 条件过滤后随机读数据的效率 -- 优化在 JSON 数据类型上使用老的 get_json_xx 函数的性能,提升 2-4 倍 -- 支持配置降低读数据线程的优先级,保证写入的 CPU 资源和实时性 -- 增加返回 largeint 的 uuid-numeric 函数,性能比返回 string 的 uuid 函数快 20 倍 -- Case when 的性能提升 3 倍 -- 在存储引擎执行中裁剪不必要的谓词计算 -- 支持 count 算子下推到存储层 -- 优化支持 and or 表达式中包含 nullable 类型的计算性能 -- 支持更多场景下 limit 算子提前到 join 前执行的改写,以提升执行效率 -- 增加消除 inline view 中的无用的 order by 算子,以提升执行效率 -- 优化了部分情况下的基数估计和代价模型的准确性,以提升执行效率 -- 优化了 JDBC catalog 的谓词下推逻辑和大小写逻辑 -- 优化了 file cache 的第一次开启后的读取效率 -- 优化 Hive 表 SQL cache 策略,使用 HMS 中存储的分区更新时间作为 cache 是否失效的判断,提高 cache 命中率 -- 优化了 Merge-on-Write compaction 效率 -- 优化了外表查询的线程分配逻辑,降低内存使用 -- 优化 column reader 的内存使用 - - -### 分布式副本管理改进 - -优化跳过删除分区、colocate group、持续写时均衡失败、冷热分层表不能均衡等; - -### 安全性提升 - -- 审计日志插件的配置使用 token 代替明文密码以增强安全性 - - https://github.com/apache/doris/pull/26278 - -- log4j 配置安全性增强 - - https://github.com/apache/doris/pull/24861 - -- 日志中不显示用户敏感信息 - - https://github.com/apache/doris/pull/26912 - - -## Bugfix 和稳定性提升 - -### 复杂数据类型 - -- 修复了 map/struct 对定长 CHAR(n) 没有正确截断的问题 - - https://github.com/apache/doris/pull/25725 - -- 修复了 struct 嵌套 map/array 写入失败的问题 - - https://github.com/apache/doris/pull/26973 - -- 修复了 count distinct 不支持 array/map/struct 的问题 - - https://github.com/apache/doris/pull/25483 - -- 解决 query 中出现 delete 复杂类型之后,升级过程中出现 BE crash 的问题 - - https://github.com/apache/doris/pull/26006 - -- 修复了 jsonb 在 where 条件中 BE crash 问题 - - https://github.com/apache/doris/pull/27325 - -- 修复了 outer join 中有 array 类型时 BE crash 的问题 - - https://github.com/apache/doris/pull/25669 - -- 修复 orc 格式 decimal 类型读取错误的问题 - - https://github.com/apache/doris/pull/26548 - - https://github.com/apache/doris/pull/25977 - - https://github.com/apache/doris/pull/26633 - -### 倒排索引 - -- 修复了关闭倒排索引查询时 OR NOT 组合 where 条件结果错误的问题 - - https://github.com/apache/doris/pull/26327 - -- 修复了空数组的倒排索引写入时 BE crash 的问题 - - https://github.com/apache/doris/pull/25984 - -- 修复输出为空的情况下 index compaction BE crash 的问题 - - https://github.com/apache/doris/pull/25486 - -- 修复新增列没有写入数据时,增加倒排索引 BE crash 的问题 - - https://github.com/apache/doris/pull/27276 - -- 修复 1.2 版本误建倒排索引后升级 2.0 等情况下倒排索引硬链缺失和泄露的问题 - - https://github.com/apache/doris/pull/26903 - -### 物化视图 -- 修复 group by 语句中包括重复表达式导致 BE crash 的问题 - - https://github.com/apache/doris/pull/27523 - -- 禁止视图创建时 group by 子句中使用 float/doubld 类型 - - https://github.com/apache/doris/pull/25823 - -- 增强支持了 select 查询命中物化视图的功能 - - https://github.com/apache/doris/pull/24691 - -- 修复当使用了表的 alias 时物化视图不能命中的问题 - - https://github.com/apache/doris/pull/25321 - -- 修复了创建物化视图中使用 percentile_approx 的问题 - - https://github.com/apache/doris/pull/26528 - -### 采样查询 - -- 修复 table sample 功能在 partition table 上无法正常工作的问题 - - https://github.com/apache/doris/pull/25912 - -- 修复 table sample 指定 tablet 无法工作的问题 - - https://github.com/apache/doris/pull/25378 - - -### 主键表 - -- 修复基于主键条件更新的空指针异常 - - https://github.com/apache/doris/pull/26881 - -- 修复部分列更新字段名大小写问题 - - https://github.com/apache/doris/pull/27223 - -- 修复 schema change 时 mow 会出现重复 key 的问题 - - https://github.com/apache/doris/pull/25705 - - -### 导入和 Compaction - -- 修复 routine load 一流多表时 unknown slot descriptor 错误 - - https://github.com/apache/doris/pull/25762 - -- 修复内存统计并发访问导致 BE crash 问题 - - https://github.com/apache/doris/pull/27101 - -- 修复重复取消导入导致 BE crash 的问题 - - https://github.com/apache/doris/pull/27111 - -- 修复 broker load 时 broker 连接报错问题 - - https://github.com/apache/doris/pull/26050 - -- 修复 compaction 和 scan 并发下 delete 谓词可能导致查询结果不对的问题 - - https://github.com/apache/doris/pull/24638 - -- 修复 compaction task 存在时打印大量 stacktrace 日志的问题 - - https://github.com/apache/doris/pull/25597 - - -### 数据湖兼容性 - -- 解决 iceberg 表中包含特殊字符导致查询失败的问题 - - https://github.com/apache/doris/pull/27108 - -- 修复 Hive metastore 不同版本的兼容性问题 - - https://github.com/apache/doris/pull/27327 - -- 修复读取 MaxCompute 分区表错误的问题 - - https://github.com/apache/doris/pull/24911 - -- 修复备份到对象存储失败的问题 - - https://github.com/apache/doris/pull/25496 - - https://github.com/apache/doris/pull/25803 - - -### JDBC 外表兼容性 - -- 修复 JDBC catalog 处理 Oracle 日期类型格式错误的问题 - - https://github.com/apache/doris/pull/25487 - -- 修复 JDBC catalog 读取 MySQL 0000-00-00 日期异常的问题 - - https://github.com/apache/doris/pull/26569 - -- 修复从 MariaDB 读取数据时间类型默认值为 current_timestamp 时空指针异常问题 - - https://github.com/apache/doris/pull/25016 - -- 修复 JDBC catalog 处理 bitmap 类型时 BE crash 的问题 - - https://github.com/apache/doris/pull/25034 - - https://github.com/apache/doris/pull/26933 - - -### SQL 规划和优化 - -- 修复了部分场景下分区裁剪错误的问题 - - https://github.com/apache/doris/pull/27047 - - https://github.com/apache/doris/pull/26873 - - https://github.com/apache/doris/pull/25769 - - https://github.com/apache/doris/pull/27636 - -- 修复了部分场景下子查询处理不正确的问题 - - https://github.com/apache/doris/pull/26034 - - https://github.com/apache/doris/pull/25492 - - https://github.com/apache/doris/pull/25955 - - https://github.com/apache/doris/pull/27177 - -- 修复了部分语义解析的错误 - - https://github.com/apache/doris/pull/24928 - - https://github.com/apache/doris/pull/25627 - -- 修复 right outer/anti join 时,有可能丢失数据的问题 - - https://github.com/apache/doris/pull/26529 - -- 修复了谓词被错误的下推穿过聚合算子的问题 - - https://github.com/apache/doris/pull/25525 - -- 修正了部分情况下返回的结果 header 不正确的问题 - - https://github.com/apache/doris/pull/25372 - -- 包含有 nullsafeEquals 表达式 (<=>) 作为连接条件时,可以正确对规划出 hash join - - https://github.com/apache/doris/pull/27127 - -- 修复了 set operation 算子中无法正确列裁剪的问题 - - https://github.com/apache/doris/pull/26884 - - -## 行为变更 - -- 复杂数据类型 array/map/struct 的输出格式改成跟输入格式以及 JSON 规范保持一致,跟之前版本的主要变化是日期和字符串用双引号括起来,array/map 内部的空值显示为 null 而不是 NULL。 - - https://github.com/apache/doris/pull/25946 - -- 默认情况下,当用户属性 `resource_tags.location` 没有设置时,只能使用 default 资源组的节点,而之前版本中可以访问任意节点。 - - https://github.com/apache/doris/pull/25331 - -- 支持 SHOW_VIEW 权限,拥有 SELECT 或 LOAD 权限的用户将不再能够执行 `SHOW CREATE VIEW` 语句,必须单独授予 SHOW_VIEW 权限。 - - https://github.com/apache/doris/pull/25370 - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.4.md deleted file mode 100644 index ffce724a377e9..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.4.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -{ - "title": "Release 2.0.4", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.4 版本已于 2024 年 1 月 26 日正式发布,该版本在新优化器、倒排索引、数据湖等功能上有了进一步的完善与更新,使 Apache Doris 能够适配更广泛的场景。此外,该版本进行了若干的改进与优化,以提供更加稳定高效的性能体验。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.4 版本已于 2024 年 1 月 26 日正式发布,该版本在新优化器、倒排索引、数据湖等功能上有了进一步的完善与更新,使 Apache Doris 能够适配更广泛的场景。此外,该版本进行了若干的改进与优化,以提供更加稳定高效的性能体验。新版本已经上线,欢迎大家下载使用! - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - -## 行为变更 -- 提供了更精确的 Precision 和 Scale 推导,可满足金融场景计算的高要求 - - [https://github.com/apache/doris/pull/28034](https://github.com/apache/doris/pull/28034) -- Drop Policy 支持了 User 和 Role - - [https://github.com/apache/doris/pull/29488](https://github.com/apache/doris/pull/29488) - -## 新功能 -- 新优化器支持了 datev1,datetimev1 及 decimalv2 数据类型 -- 新优化器支持了 ODBC 外表 -- 倒排索引支持了 `lower_case` 和 `ignore_above` 选项 -- 倒排索引支持了 `match_regexp` 和 `match_phrase_prefix` 查询加速 -- 数据湖支持了 Paimon Native Reader -- 数据湖支持读取 LZO 压缩的 Parquet 文件 -- 审计日志支持 `insert into` - -## 改进和优化 -- 对数据均衡、迁移等存储管控进行了改进 -- 对数据冷却策略进行了改进,以节省本地硬盘存储空间 -- 对 ASCII 字符串 substr 进行了优化 -- 针对使用 date 函数查询时的分区裁剪进行了优化 -- 针对优化器自动统计信息收集的可观测性和性能进行了优化 - - -## 致谢 - -感谢 73 位开发者为 Apache Doris 2.0.4 版本做出了重要贡献,正是由于他们的努力,Apache Doris 在性能和稳定性方面取得了显著的进步。 - -airborne12、amorynan、AshinGau、BePPPower、bingquanzhao、BiteTheDDDDt、bobhan1、ByteYue、caiconghui、CalvinKirs、cambyzju、caoliang-web、catpineapple、csun5285、dataroaring、deardeng、dutyu、eldenmoon、englefly、feifeifeimoon、fornaix、Gabriel39、gnehil、HappenLee、hello-stephen、HHoflittlefish777、hubgeter、hust-hhb、ixzc、jacktengg、jackwener、Jibing-Li、kaka11chen、KassieZ、LemonLiTree、liaoxin01、LiBinfeng-01、lihuigang、liugddx、luwei16、morningman、morrySnow、mrhhsg、Mryange、nextdreamblue、Nitin-Kashyap、platoneko、py023、qidaye、shuke987、starocean999、SWJTU-ZhangLei、w41ter、wangbo、wsjz、wuwenchi、Xiaoccer、xiaokang、XieJiann、xingyingone、xinyiZzz、xuwei0912、xy720、xzj7019、yujun777、zclllyybb、zddr、zhangguoqiang666、zhangstar333、zhannngchen、zhiqiang-hhhh、zy-kkk、zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.5.md deleted file mode 100644 index ec7250a6f2933..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.5.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -{ - "title": "Release 2.0.5", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.5 版本已于 2024 年 2 月 27 日正式与大家见面。这次更新带来一系列行为变更和功能更新,并进行了若干的改进与优化,旨在为用户提供更为稳定高效的数据查询与分析体验。新版本已经上线,欢迎大家下载体验!" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.5](https://doris.apache.org/download/) 版本已于 2024 年 2 月 27 日正式与大家见面。这次更新带来一系列行为变更和功能更新,并进行了若干的改进与优化,旨在为用户提供更为稳定高效的数据查询与分析体验。新版本已经上线,欢迎大家下载体验! - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 行为变更 -- `select char(0) = '\0'` 返回 true,跟 MySQL 的行为保持一致 - - https://github.com/apache/doris/pull/30034 -- Export 导出数据支持空表 - - https://github.com/apache/doris/pull/30703 - -## 新功能 -- 利用过滤条件中的 `is null` 谓词,将 OUTER JOIN 转换为 ANTI JOIN -- 增加 `SHOW TABLETS BELONG` 语法用于获取 tablet 属于哪个 table -- InferPredicates 支持 `IN`,例如:`a = b & a in [1, 2] -> b in [1, 2]` -- 支持对物化视图收集统计信息 -- `SHOW PROCESSLIST` 支持输出连接对应的 FE -- Export 导出 CSV 文件支持通过 `with_bom` 参数控制是否带有 Windows BOM - -## 改进和优化 -- 在无统计信息时优化 Query Plan -- 基于 Rollup 的统计信息优化 Query Plan -- 用户停止 Auto Analyze 后尽快停止统计信息收集任务 -- 缓存统计信息收集异常,避免大约太多异常栈 -- 支持在 SQL 中自定使用某个物化视图 -- JDBC Catalog 谓词下推列名字符转义 -- 修复 MySQL Catalog 中 `to_date` 函数下推的问题 -- 优化 JDBC 客户端连接关闭的逻辑,在异常时正常取消查询 -- 优化 JDBC 连接池的参数 -- 通过 HMS API 获取 Hudi 外表的分区信息 -- 优化 Routine Load 的内存占用和错误信息 -- 如果 `max_backup_restore_job_num_per_db` 参数为 0,跳过所有备份恢复任务 - - -## 致谢 -最后,衷心感谢 59 位开发者为 Apache Doris 2.0.5 版本做出了重要贡献: - -airborne12, alexxing662, amorynan, AshinGau, BePPPower, bingquanzhao, BiteTheDDDDt, ByteYue, caiconghui, cambyzju, catpineapple, dataroaring, eldenmoon, Emor-nj, englefly, felixwluo, GoGoWen, HappenLee, hello-stephen, HHoflittlefish777, HowardQin, JackDrogon, jacktengg, jackwener, Jibing-Li, KassieZ, LemonLiTree, liaoxin01, liugddx, LuGuangming, morningman, morrySnow, mrhhsg, Mryange, mymeiyi, nextdreamblue, qidaye, ryanzryu, seawinde,starocean999, TangSiyang2001, vinlee19, w41ter, wangbo, wsjz, wuwenchi, xiaokang, XieJiann, xingyingone, xy720,xzj7019, yujun777, zclllyybb, zhangstar333, zhannngchen, zhiqiang-hhhh, zxealous, zy-kkk, zzzxl1993 - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.6.md deleted file mode 100644 index d591cf9fb4475..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.6.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -{ - "title": "Release 2.0.6", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.6 版本已于 2024 年 3 月 12 日正式与大家见面。本次版本中,有 51 位贡献者提交了约 114 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.6](https://doris.apache.org/download/) 版本已于 2024 年 3 月 12 日正式与大家见面。本次版本中,有 51 位贡献者提交了约 114 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 行为变更 -- 无 - -## 新功能 -- 自动选择物化视图时支持匹配带别名的函数 -- 增加安全下线一个 tablet 副本的命令 -- 外表统计信息增加行数统计缓存 -- 统计信息收集支持 Rollup - -## 改进和优化 -- 使用 protobuf 稳定序列化减少 Tablet Schema 缓存内存占用 -- 提升 `show column stats` 的性能 -- 统计信息收集和优化器支持 Iceberg 和 Paimon 的行数估计 -- JDBC Catalog 支持读取 SQL Server 的 Timestamp 类型 - - -## 致谢 -最后,衷心感谢 51 位开发者为 Apache Doris 2.0.6 版本做出了重要贡献: - -924060929, AshinGau, BePPPower, BiteTheDDDDt, CalvinKirs, cambyzju, deardeng, DongLiang-0, eldenmoon, englefly, feelshana, feiniaofeiafei, felixwluo, HappenLee, hust-hhb, iwanttobepowerful, ixzc, JackDrogon, Jibing-Li, KassieZ, larshelge, liaoxin01, LiBinfeng-01, liutang123, luennng, morningman, morrySnow, mrhhsg, qidaye, starocean999, TangSiyang2001, wangbo, wsjz, wuwenchi, xiaokang, XieJiann, xuwei0912, xy720, xzj7019, yiguolei, yujun777, Yukang-Lian, Yulei-Yang, zclllyybb, zddr, zhangstar333, zhannngchen, zhiqiang-hhhh, zy-kkk, zzzxl1993 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.7.md deleted file mode 100644 index 5024566e0e2f7..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.7.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -{ - "title": "Release 2.0.7", - "language": "zh-CN", - "description": "924060929,airborne12,amorynan,ByteYue,dataroaring,deardeng,feiniaofeiafei,felixwluo,freemandealer,gavinchou,hello-stephen,HHoflittlefish777,jacktengg," -} ---- - -## 1 行为变更 - -- `round` 函数行为跟 MySQL 保持一致,例如 `round(5/2)` 返回 3 而不是 2. - - - https://github.com/apache/doris/pull/31583 - - -- 时间精度转换行为跟 MySQL 保持一致,例如 '2023-10-12 14:31:49.666' 四舍五人到 '2023-10-12 14:31:50' . - - - https://github.com/apache/doris/pull/27965 - -## 2 新功能 - -- 在更多的情况下可以将 OUTER JOIN 转换成 ANTI JOIN 来加速查询 - - - https://github.com/apache/doris/pull/31854 - -- 支持通过 Nginx, HAProxy 等代理连接的 IP 透传 - - - https://github.com/apache/doris/pull/32338 - - -## 3 改进和优化 - -- 通过在 `information_schema` 中增加 DEFAULT_ENCRYPTION 列、增加 `processlist` 表,提升 BI 工具的兼容性 - -- 创建 JDBC Catalog 时默认自动检测连通性 - -- 增强自动恢复提升 Kafka Routine Load 的稳定性 - -- 倒排索引中文分词对英文默认做小写转换 - -- Repeat 函数的重复次数超过限制时报错 - -- 自动跳过 Hive 外表中的隐藏文件和目录 - -- 在某些极端情况下减少 File Meta Cache 避免 OOM - -- 减少 Broker Load 的 jvm 内存占用 - -- 加速带排序的 INSERT INTO SELECT 比如 `INSERT INTO t1 SELECT * FROM t2 ORDER BY k` - - -## 4 致谢 - -924060929,airborne12,amorynan,ByteYue,dataroaring,deardeng,feiniaofeiafei,felixwluo,freemandealer,gavinchou,hello-stephen,HHoflittlefish777,jacktengg,jackwener,jeffreys-cat,Jibing-Li,KassieZ,LiBinfeng-01,luwei16,morningman,mrhhsg,Mryange,nextdreamblue,platoneko,qidaye,rohitrs1983,seawinde,shuke987,starocean999,SWJTU-ZhangLei,w41ter,wsjz,wuwenchi,xiaokang,XieJiann,XuJianxu,yujun777,Yulei-Yang,zhangstar333,zhiqiang-hhhh,zy-kkk,zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.8.md deleted file mode 100644 index 8cbae42964be5..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.8.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -{ - "title": "Release 2.0.8", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.8 版本已于 2024 年 04 月 09 日正式与大家见面。本次版本中,有 35 位贡献者提交了约 65 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.8](https://doris.apache.org/download/) 版本已于 2024 年 04 月 09 日正式与大家见面。本次版本中,有 35 位贡献者提交了约 65 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - -## 1 行为变更 - -由于 `ADMIN SHOW xx` 语句在 MySQL 8.x jdbc driver 不能执行,所以将名字改成 `SHOW xx` - -- https://github.com/apache/doris/pull/29492 - -```sql -ADMIN SHOW CONFIG -> SHOW CONFIG -ADMIN SHOW REPLICA -> SHOW REPLICA -ADMIN DIAGNOSE TABLET -> SHOW TABLET DIAGNOSIS -ADMIN SHOW TABLET -> SHOW TABLET -``` - - -## 2 新功能 - -N/A - - - -## 3 改进和优化 - -- 新优化器支持 TopN 优化中使用倒排索引 - -- 限制统计信息 STRING 长度为 1024 以控制 BE 内存消耗 - -- 修复未创建 JDBC Client 时意外关闭的情况 - -- 接受所有 Iceberg Database,不再做额外的名字检查 - -- 异步更新外表行数统计,避免同步更新带来的 Cache miss 和 Plan 不稳定 - -- 简化 Hive 外表的 isSplitable 方法,避免过多的 Hadoop metric - - - -## 4 致谢 - -924060929, AcKing-Sam, amorynan, AshinGau, BePPPower, BiteTheDDDDt, ByteYue, cambyzju, dongsilun, eldenmoon, feiniaofeiafei, gnehil, Jibing-Li, liaoxin01, luwei16, morningman, morrySnow, mrhhsg, Mryange, nextdreamblue, platoneko, starocean999, SWJTU-ZhangLei, wuwenchi, xiaokang, xinyiZzz, Yukang-Lian, Yulei-Yang, zclllyybb, zddr, zhangstar333, zhiqiang-hhhh, ziyanTOP, zy-kkk, zzzxl1993 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.9.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.9.md deleted file mode 100644 index ce0066034c625..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.0/release-2.0.9.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -{ - "title": "Release 2.0.9", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.9 版本已正式发布。在本次版本中,有 34 位贡献者提交了约 68 个功能改进以及问题修复,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.9](https://doris.apache.org/download/) 版本已正式发布。在本次版本中,有 34 位贡献者提交了约 68 个功能改进以及问题修复,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 1 行为变更 - -无 - -## 2 新功能 - -- 物化视图的 Key 和 Value 列都允许出现谓词 - -- 物化视图支持 `bitmap_union(bitmap_from_array())` - -- 增加一个 FE 配置强制集群中所有表的 Replicate Allocation - -- 新优化器支持日期字面量指定时区 - -- `MATCH_PHRASE` 全文检索支持 slop 参数指定搜索词之间的距离 - -## 3 改进和优化 - -- `first_value` / `last_value` 函数增加第二个参数指定忽略 NULL 值 - -- `LEAD`/ `LAG` 函数的 Offset 参数可以为 0 - -- 调整物化视图匹配的顺序优先利用索引和预聚合加速查询 - -- 优化 TopN 查询 `ORDER BY k LIMIT n` 的性能 - -- 优化 Meta Cache 的性能 - -- 为` delete_bitmap get_agg` 函数增加 Profile 便于性能分析 - -- 增加 FE 参数设置 Autobucket 的最大 Bucket 数 - -## 4 致谢 - -adonis0147, airborne12, amorynan, AshinGau, BePPPower, BiteTheDDDDt, CalvinKirs, cambyzju, csun5285, eldenmoon, englefly, feiniaofeiafei, HHoflittlefish777, htyoung, hust-hhb, jackwener, Jibing-Li, kaijchen, kylinmac, liaoxin01, luwei16, morningman, mrhhsg, qidaye, starocean999, SWJTU-ZhangLei, w41ter, xiaokang, xiedeyantu, xy720, zclllyybb, zhangstar333, zhannngchen, zy-kkk, zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.0.md deleted file mode 100644 index 9cc26bdc95916..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.0.md +++ /dev/null @@ -1,859 +0,0 @@ ---- -{ - "title": "Release 2.1.0", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 3 月 8 日我们引来了 Apache Doris 2.1.0 版本的正式发布,欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 3 月 8 日我们引来了 Apache Doris 2.1.0 版本的正式发布,欢迎大家下载使用。 - -- 在查询性能方面,2.1 系列版本我们着重提升了开箱盲测性能,力争不做调优的情况下取得较好的性能表现,包含了对复杂 SQL 查询性能的进一步提升,在 TPC-DS 1TB 测试数据集上获得超过 100% 的性能提升,查询性能居于业界领先地位。 - -- 在数据湖分析场景,我们进行了大量性能方面的改进、相对于 Trino 和 Spark 分别有 4-6 倍的性能提升,并引入了多 SQL 方言兼容、便于用户可以从原有系统无缝切换至 Apache Doris。在面向数据科学以及其他形式的大规模数据读取场景,我们引入了基于 Arrow Flight 的高速读取接口,数据传输效率提升 100 倍。 - -- 在半结构化数据分析场景,我们引入了全新的 Variant 和 IP 数据类型,完善了一系列分析函数,面向复杂半结构化数据的存储和分析处理更加得心应手。 - -- 在 2.1.0 版本中我们也引入了基于多表的异步物化视图以提升查询性能,支持透明改写加速、自动刷新、外表到内表的物化视图以及物化视图直查,基于这一能力物化视图也可用于数据仓库分层建模、作业调度和数据加工。 - -- 在存储方面,我们引入了自增列、自动分区、MemTable 前移以及服务端攒批的能力,使得大规模数据实时写入的效率更高。 - -- 在负载管理方面,我们进一步完善了 Workload Group 资源组的隔离能力,并增加了运行时查看 SQL 资源用量的能力,进一步提升了多负载场景下的稳定性。 - -在 2.1.0 版本的研发过程中,**有 237 位贡献者为 Apache Doris 带来了接近 6000 个 Commits。** 同时 2.1.0 版本也同样经过了近百家社区用户的大规模打磨,在测试过程中向我们反馈了许多有价值的优化项,在此向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢。后续我们将会持续敏捷发版来响应所有用户对功能和稳定性的更高追求,欢迎大家在使用过程中给予我们更多反馈。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - -## 复杂查询性能提升 100%,TPC-DS 业界领先 - - 在 2.1 系列版本中,我们着重提升了开箱盲测性能,力争不做调优的情况下取得较好的性能表现,包含了对复杂 SQL 查询性能的进一步提升。在此我们以 TPC-DS 1TB 作为性能测试对比的基准,重点对比最新 2.1.0 版本与 2.0.5 版本的性能提升。集群规模均为 1FE、3BE,其中 BE 节点的服务器配置为 48C 192G。从以下测试结果中可以看到: - -- 2.1.0 版本的总查询耗时为 245.7 秒,相较于 2.0.5 版本的 489.6 秒,**性能提升达到 100 %;** - -- 在全部 99 个 SQL 中,有近三分之一的 SQL 查询性能提升达到 2 倍以上,超过 80 个 SQL 都获得显著性能提升; - -- 不论是基础的过滤、排序、聚合,或者复杂的多表关联查询、子查询以及窗口函数计算,2.1.0 版本都有更为明显的性能优势; - -- 2.0.5 版本或 2.1.0 版本,都可以完整执行 TPC-DS 的 99 个查询。 - -![复杂查询性能提升 100%,TPC-DS 业界领先](/images/2.1-Doris-TPC-DS-best-performance.png) - - -以上详细测试结果我们将在后续提交到 Apache Doris 官网文档中,也欢迎所有用户在完成最新版本的部署后进行测试复现。 - -与此同时,我们也对业内多个 OLAP 系统在同等硬件资源和多个测试数据规模下进行了性能测试,不论大宽表场景或多表关联场景,Apache Doris 都具备着极为明显的性能优势。毫无疑问,**Apache Doris 已在业界同类产品中性能居于最领先地位**! - - -### 优化器更智能 - -在 Apache Doris 2.0 版本中我们引入了全新查询优化器,在绝大多数场景无需任何调优即可实现极致的查询性能。而在最新发布的 Apache Doris 2.1 版本中,查询优化器在整体代际更新的基础上,进行了优化规则的扩展和枚举框架的完善,面向复杂分析场景更加得心应手: - -- **优化器基础设施完善**:在多种优化器基础设施方面进行了补充和增强,例如对统计信息推导和代价模型方面的持续改进,使之能够收集更多的特征信息为复杂优化提供基础; - -- **优化规则持续扩展**:得益于丰富的实际场景反馈,新版本中查询优化器增强了包括算子下压在内的许多经典规则,结合上述基础设施扩充而引入的新优化规则,使得新版本的查询优化器能覆盖更广泛的使用场景; - -- **枚举框架进一步优化**:在查询优化器 Cascades 和 DPhyper 两大融合框架的基础上,继续深耕框架能力、优化框架性能,确立了更为清晰的枚举策略,兼顾计划质量和枚举效率,为高性能引擎提供坚实基础。例如将 Cascades 默认枚举表上限从 5 提升到了 8、有效扩大了高质量计划的覆盖范围,同时进一步优化 DPhyper 枚举效率、使之能够枚举出更优计划。 - -### 无统计信息优化 - -针对海量数据规模以及数据湖分析场景下,针对统计信息收集难度高、收集时间久的问题,在 2.1 版本中查询优化器利用多种启发式技术,大大提升了**无统计信息场景下**的计划质量,使得在没有统计信息的场景下也可获得较好的查询计划。同时扩展了 Runtime Filter 的下压场景和自适应能力,在执行过程中能够自适应地动态调整部分表达式谓词,使得 Apache Doris 在不依赖统计信息的情况下也具有优异的性能表现。 - -### Parallel Adaptive Scan 并行自适应扫描 - -在复杂数据分析场景下,每次查询都需要扫描大量的数据进行计算,因此 IO 瓶颈很大程度上决定了查询性能的上限。为了提升 Scan IO 的性能,Apache Doris 采取了并行读取的技术,每个扫描线程读取 1 个或者多个 Tablet(即用户建表时指定的 Bucket),但如若用户建表时指定的 Bucket 数目不合理、那么磁盘扫描线程就无法并行工作,直接影响查询性能。为此,在 2.1 版本中我们引入了 Tablet 内的并行扫描技术,可以将多个 Tablet 进行池化,在磁盘扫描端可以根据行数来拆分多个线程并行扫描(最多支持 48 个线程),从而有效避免分桶数不合理导致的查询性能问题。 - -![Parallel Adaptive Scan 并行自适应扫描](/images/2.1-doris-parallel-adaptive-scan.png) - -因此在 2.1 版本以后,我们建议用户**在建表时设置的分桶数=整个集群磁盘的数量**,在 IO 层面能将整个集群所有的 IO 资源全部利用起来。 - -:::tip -当前 2.1.0 版本的 Parallel Adaptive Scan 只能针对 Unqiue Key 模型的 Merge-on-Write 表以及 Duplicate Key 模型生效,预计在 2.1.1 版本中会增加对 Unique Key 模型 Merge-on-Read 表和 Aggregate Key 模型的支持。 -::: - -### Local Shuffle - -在部分场景下,数据分布不均会导致多个 Instance 的查询执行出现长尾。而为了解决单个 BE 节点上多个 Instance 之间的数据倾斜问题,在 Apache Doris 2.1 版本中我们引入了 Local Shuffle 技术,尽可能将数据打散从而加速查询。例如在某一典型的聚合查询中,数据在经过聚合之前将会通过一个 Local Shuffle 节点被均匀分布在不同的 Pipeline Task 中,如下图所示: - -![Local Shuffle](/images/2.1-doris-local-shuffle.png) - -在具备了 Parallel Adaptive Scan 和 Local Shuffle 能力之后,Apache Doris 能够规避由于分桶数不合理、数据分布不均带来的性能问题。 - -在此我们分别使用 Clickbench(大宽表场景)和 TPC-H(多表 Join 的复杂分析场景)数据集模拟建表分桶不合理的情况,在 Clickbench 数据集中我们建表 Bucket 数量分别设为 1 和 16,在 TPC-H 100G 数据集下我们建表时每个 Partition 的 Bucket 数目分别设为 1 和 16。在开启 Parallel Adaptive Scan 和 Local Shuffle 之后,整体查询性能表现比较平稳,即使不合理的数据分布也能取得优异的性能表现。 - -![Local Shuffle Clickbench and TPCH-100](/images/2.1-doris-clickbench-tpch.png) - -:::note 备注 -参考文档:[Pipeline X 执行引擎](../../query-acceleration/optimization-technology-principle/pipeline-execution-engine) -::: - -## ARM 架构深度适配,性能提升 230% - -在 Apache Doris 2.1 版本中我们针对 ARM 架构进行了深度的适配和指令集优化,可以在 ARM 架构上充分发挥 Apache Doris 的性能优势。相较于 2.0 版本,2.1 版本在 ClickBench、SSB 100G、TPC-H 100G 以及 TPC-DS 1TB 等多个测试数据集中取得了超过 100% 的性能提升。在此我们以大宽表场景的 ClickBench 以及多表关联场景的 TPC-H 为例,集群配置均为 1FE 3BE、BE 节点的服务器配置为 16C 64G 的 ARM 服务器,测试结论如下: - -- 在大宽表场景中,ClickBench 测试数据集 43 个 SQL 的总查询耗时从 102.36 秒降低至 30.73 秒,性能提升超过 230%; - -- 在多表关联场景中,TPC-H 22 个 SQL 的总查询耗时从 174.8 秒降低至 90.4 秒,性能提升 93%; - -## 数据湖分析 - -### 性能提升 - -在 2.1 版本中,我们对数据湖分析方面做了大量改进,包括对 HDFS 和对象存储的 IO 优化、Parquet/ORC 文件格式的读取反序列优化、浮点类型解压优化、谓词下推执行优化、缓存策略以及扫描任务调度策略的优化,以及针对不同数据源的统计信息准确性的提升及更精准的优化器代价模型。基于以上优化,Apache Doris 在数据湖分析场景下的性能得到大幅度提升。 - -![Doris 数据湖分析 - 性能提升](/images/2.1-doris-TPC-DS.png) - -在此我们以 TPC-DS 1TB 场景下进行测试,Apache Doris 2.1 版本和 Trino 435 版本的性能测试结果如下: - -- 在无缓存情况下,Apache Doris 的总体运行耗时间为 717s、Trino 为 1296s,查询耗时降低了 45%,全部 99 条 SQL 中有 80% 比 Trino 更快; - -- 在开启文件缓存功能并命中的情况下,Apache Doris 的总体性能可以进一步提升 2.2 倍以上,**较 Trino 有 4 倍以上的性能提升,全部 99 条 SQL 性能均优于 Trino**。 - -与此同时也在 TPC-DS 10TB 场景下对 Apache Doris 2.1 版本与 Spark 3.5.0 以及 3.3.1 版本进行了性能测试,查询性能分别提升 4.2 倍和 6.1 倍。 - - - -### 高速数据读取,数据传输效率提升 100 倍 - -如今许多大数据系统都采取列式内存数据格式,以 MySQL/JDBC/ODBC 作为与数据库系统交互的主流协议与标准。在数据输出至外部系统的过程中,需要将数据从系统特定的列存格式序列化为 MySQL/JDBC/ODBC 协议的行存格式,再反序列化回客户端的列存格式,这会使数据传输速度大幅降低,在面向数据科学或其他形式的大规模数据读写时,数据传输的效率缺陷愈发明显。 - -作为用于大规模数据处理的列式内存格式,Apache Arrow 提供了高效的数据结构、允许不同系统间更快共享数据。如果源数据库和目标客户端都支持 Apache Arrow 作为列式内存格式,使用 Arrow Flight SQL 协议传输将无需序列化和反序列化数据,消除数据传输中的开销。同时 Arrow Flight 还可以利用多节点和多核架构,通过完全并行化优化吞吐能力。 - -![高速数据读取,数据传输效率提升 100 倍](/images/2.1-doris-arrow-flight.png) - -在过去如果需要采取 Python 读取 Apache Doris 中的数据,需要将 Apache Doris 中列存的 Block 序列化为 MySQL 协议的行存 Bytes,然后在 Python 客户端再反序列化到 Pandas 中,传输过程带来的性能损耗非常大。 - -在 Apache Doris 2.1 版本中,我们提供了基于 Arrow Flight 的 HTTP Data API 高吞吐数据读写接口。相比于过去的 MySQL 协议,使用 Arrow Flight SQL 后,我们在 Apache Doris 中先将列存的 Block 转为同样列存的 Arrow RecordBatch,这一步转换效率非常高、且传输过程中无需再次序列化和反序列化,而后在 Python 客户端再将 Arrow RecordBatch 转到同样列存的 Pandas DataFrame 中,这一步转换同样非常快。通过 Arrow Flight 提供的 Python 客户端 Pandas/Numpy 等数据科学工具,可以快速从 Apache Doris 中读取数据并在本地进行分析。 - -基于此,Apache Doris 可以与整个 AI 和数据科学生态进行良好的整合,这也是未来的重要发展方向。 - -```C++ -conn = flight_sql.connect(uri="grpc://{FE_HOST}:{fe.conf:arrow_flight_sql_port}", db_kwargs={ - adbc_driver_manager.DatabaseOptions.USERNAME.value: "user", - adbc_driver_manager.DatabaseOptions.PASSWORD.value: "pass", - }) -cursor = conn.cursor() -cursor.execute("select * from arrow_flight_sql_test order by k0;") -print(cursor.fetchallarrow().to_pandas()) -``` - -针对常见的数据类型,我们通过不同的 MySQL 客户端进行了对比测试,基于 Arrow Flight SQL 数据传输性能相较于 MySQL 协议提升了近百倍。 - - -![Arrow Flight SQL](/images/2.1-doris-arrow-flight-sql.png) - - -:::note -演示 Demo:https://www.bilibili.com/video/BV1mj421Z7b7/?spm_id_from=333.999.0.0 -::: - -### 其他 - -- Paimon Catalog:Paimon 版本升级至 0.6.0,优化了 Read Optimized 表的读取,在 Paimon 数据充分合并的场景下,可以有 10 倍的性能提升; - -- Iceberg Catalog:Iceberg 版本升级至 1.4.3,同时解决了 AWS S3 认证的若干兼容性问题; - -- Hudi Catalog:Hudi 版本升级至 0.14.1,同时解决了 Hudi Flink Catalog 的若干兼容性问题。 - - -## 多表物化视图 - -作为一种典型的“空间换时间”策略,物化视图通过预先计算和存储 SQL 查询结果,当执行相同查询时可以直接从物化视图表中获取结果,在大幅提升查询性能的同时、更是减少重复计算带来的系统资源消耗。 - -在过去版本中 Apache Doris 提供了强一致的单表物化视图、保证基表和物化视图表的原子性,并支持了查询语句在物化视图上的智能路由。 - -**在 Apache Doris 2.1 版本中,我们引入了全新的异步物化视图,可以基于多表来构建。** 异步物化视图可以全量或者分区增量构建,也可以手动或者周期性地构建刷新数据。在多表关联查询且表数据量较大的场景下,优化器会根据代价模型进行透明改写、并自动寻找最优物化视图来响应查询,**以大幅提升查询性能**。与此同时,也提供了从外表到内表的物化视图以及直查物化视图的能力,基于此特性,**异步物化视图也可用于数据仓库分层建模、作业调度和数据加工**。异步物化视图使用方式如下: - -**表定义:** - -```SQL -use tpch; - -CREATE TABLE IF NOT EXISTS orders ( - o_orderkey integer not null, - o_custkey integer not null, - o_orderstatus char(1) not null, - o_totalprice decimalv3(15,2) not null, - o_orderdate date not null, - o_orderpriority char(15) not null, - o_clerk char(15) not null, - o_shippriority integer not null, - o_comment varchar(79) not null - ) - DUPLICATE KEY(o_orderkey, o_custkey) - PARTITION BY RANGE(o_orderdate)( - FROM ('2023-10-17') TO ('2023-10-20') INTERVAL 1 DAY) - DISTRIBUTED BY HASH(o_orderkey) BUCKETS 3 - PROPERTIES ("replication_num" = "1"); - -insert into orders values - (1, 1, 'ok', 99.5, '2023-10-17', 'a', 'b', 1, 'yy'), - (2, 2, 'ok', 109.2, '2023-10-18', 'c','d',2, 'mm'), - (3, 3, 'ok', 99.5, '2023-10-19', 'a', 'b', 1, 'yy'); - -CREATE TABLE IF NOT EXISTS lineitem ( - l_orderkey integer not null, - l_partkey integer not null, - l_suppkey integer not null, - l_linenumber integer not null, - l_quantity decimalv3(15,2) not null, - l_extendedprice decimalv3(15,2) not null, - l_discount decimalv3(15,2) not null, - l_tax decimalv3(15,2) not null, - l_returnflag char(1) not null, - l_linestatus char(1) not null, - l_shipdate date not null, - l_commitdate date not null, - l_receiptdate date not null, - l_shipinstruct char(25) not null, - l_shipmode char(10) not null, - l_comment varchar(44) not null - ) - DUPLICATE KEY(l_orderkey, l_partkey, l_suppkey, l_linenumber) - PARTITION BY RANGE(l_shipdate) - (FROM ('2023-10-17') TO ('2023-10-20') INTERVAL 1 DAY) - DISTRIBUTED BY HASH(l_orderkey) BUCKETS 3 - PROPERTIES ("replication_num" = "1"); - -insert into lineitem values - (1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-17', '2023-10-17', '2023-10-17', 'a', 'b', 'yyyyyyyyy'), - (2, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-18', '2023-10-18', '2023-10-18', 'a', 'b', 'yyyyyyyyy'), - (3, 2, 3, 6, 7.5, 8.5, 9.5, 10.5, 'k', 'o', '2023-10-19', '2023-10-19', '2023-10-19', 'c', 'd', 'xxxxxxxxx'); - - - CREATE TABLE IF NOT EXISTS partsupp ( - ps_partkey INTEGER NOT NULL, - ps_suppkey INTEGER NOT NULL, - ps_availqty INTEGER NOT NULL, - ps_supplycost DECIMALV3(15,2) NOT NULL, - ps_comment VARCHAR(199) NOT NULL -) -DUPLICATE KEY(ps_partkey, ps_suppkey) -DISTRIBUTED BY HASH(ps_partkey) BUCKETS 3 -PROPERTIES ( - "replication_num" = "1" -) -``` - -**创建物化视图:** - -```SQL -CREATE MATERIALIZED VIEW mv1 - BUILD DEFERRED REFRESH AUTO ON MANUAL - partition by(l_shipdate) - DISTRIBUTED BY RANDOM BUCKETS 2 - PROPERTIES ('replication_num' = '1') - AS - select l_shipdate, o_orderdate, l_partkey, - l_suppkey, sum(o_totalprice) as sum_total - from lineitem - left join orders on lineitem.l_orderkey = orders.o_orderkey - and l_shipdate = o_orderdate - group by - l_shipdate, - o_orderdate, - l_partkey, - l_suppkey; -``` - -**目前异步物化视图已经具备以下功能:** - -- **透明改写加速:**支持常见算子的透明改写,如 Select、Where、Join、Group by、Aggregation 等,可以直接通过建立物化视图,对现有的查询进行加速。例如在 BI 报表场景,某些报表查询延时比较高,就可以通过建立合适的物化视图进行加速。 - -- **自动刷新:**物化视图支持不同刷新策略,如定时刷新和手动刷新,也支持不同的刷新粒度,如全量刷新、分区粒度的增量刷新等。 - -- **外表到内表的物化视图:**可以对存放在 Hive、Hudi、Iceberg 等数据湖系统上的数据建立物化视图,加速对数据湖的访问,也可以通过物化视图的方式将数据湖中的数据同步到 Apache Doris 内表中。 - -- **物化视图直查:**用户也可以将物化视图的构建看做 ETL 的过程,把物化视图看做是 ETL 加工后的结果数据,由于物化视图本身也是一个表,所以用户可以直接查询物化视图。 - -:::note -- 演示 Demo: https://www.bilibili.com/video/BV1s2421T71z/?spm_id_from=333.999.0.0 -- 参考文档:[异步物化视图](../../query-acceleration/materialized-view/async-materialized-view/overview) -::: - -## 存储能力增强 - -### 自增列 AUTO_INCREMENT - -自增列 AUTO_INCREMENT 是 OLTP 数据库中常见的一项功能,提供了一种方便高效的方式来为新插入的数据行自动分配唯一标识符。由于自增列的可用值分配涉及到全局事务,因此在分布式 OLAP 数据库中并不常见。在 Apache Doris 2.1 版本中,我们通过创新性的自增序列预分配策略,提供了高效的自增列实现。基于自增列的唯一性保证,用户可以利用自增列实现高效的字典编码和查询分页。 - -**字典编码:** 在进行 PV/UV 统计或人群圈选等需要精确去重的查询时,可以使用自增列对 UserID 或订单 ID 等字符串值创建字典表,将用户数据批量或者实时写入字典表即可生成字典,根据各种维度的条件对对应的 Bitmap 进行聚合运算; - -```SQL -CREATE TABLE `demo`.`dictionary_tbl` ( - `user_id` varchar(50) NOT NULL, - `aid` BIGINT NOT NULL AUTO_INCREMENT -) ENGINE=OLAP -UNIQUE KEY(`user_id`) -DISTRIBUTED BY HASH(`user_id`) BUCKETS 32 -PROPERTIES ( -"replication_allocation" = "tag.location.default: 3", -"enable_unique_key_merge_on_write" = "true" -); -``` - -**查询分页**:在页面展示数据时,往往需要做分页展示。传统的分页通常使用 SQL 中的 `limit`, `offset` + `order by` 进行查询。在进行深分页查询时,即使查询数据量较少、数据库仍需将全部数据读取至内存进行全量排序,查询效率比较低下。采取自增列可以为每一行生成唯一标识、查询时记住上一页最大唯一标识并用于下一页的查询条件,实现更高效的分页查询。 - -以下表为例,unique_value 是一个唯一值: - -```SQL -CREATE TABLE `demo`.`records_tbl2` ( - `key` int(11) NOT NULL COMMENT "", - `name` varchar(26) NOT NULL COMMENT "", - `address` varchar(41) NOT NULL COMMENT "", - `city` varchar(11) NOT NULL COMMENT "", - `nation` varchar(16) NOT NULL COMMENT "", - `region` varchar(13) NOT NULL COMMENT "", - `phone` varchar(16) NOT NULL COMMENT "", - `mktsegment` varchar(11) NOT NULL COMMENT "", - `unique_value` BIGINT NOT NULL AUTO_INCREMENT -) DUPLICATE KEY (`key`, `name`) -DISTRIBUTED BY HASH(`key`) BUCKETS 10 -PROPERTIES ( - "replication_num" = "3" -); -``` - -在分页展示中,每页展示 100 条数据,使用如下方式获取第一页的数据: - -```SQL -select * from records_tbl2 order by unique_value limit 100; -``` - -通过程序记录下返回结果中`unique_value`中的最大值,假设为 99,则可用如下方式查询第二页的数据: - -```SQL -select * from records_tbl2 where unique_value > 99 order by unique_value limit 100; -``` - -如果要直接查询一个靠后页面的内容,此时不方便直接获取之前页面数据中`unique_value`的最大值时,例如要直接获取第 101 页的内容,则可以使用如下方式进行查询 - -```SQL -select key, name, address, city, nation, region, phone, mktsegment -from records_tbl2, (select unique_value as max_value from records_tbl2 order by uniuqe_value limit 1 offset 9999) as previous_data -where records_tbl2.uniuqe_value > previous_data.max_value -order by unique_value limit 100; -``` - -:::note -演示 Demo:https://www.bilibili.com/video/BV1VC411h7Gr/?spm_id_from=333.999.0.0 -::: - -### 自动分区 Auto Partition - -在 Apache Doris 2.1 版本之前一直采取手动分区的形式,用户需要提前把分区建立好,否则在导入数据过程中会因为找不到对应分区而出错。而自动分区功能支持了在导入数据过程中自动检测分区列的数据对应的分区是否存在。如果不存在,则会自动创建分区并正常进行导入。 - -自动分区功能使用方式如下: - -```SQL -CREATE TABLE `DAILY_TRADE_VALUE` -( - `TRADE_DATE` datev2 NULL COMMENT '交易日期', - `TRADE_ID` varchar(40) NULL COMMENT '交易编号', - ...... -) -UNIQUE KEY(`TRADE_DATE`, `TRADE_ID`) -AUTO PARTITION BY RANGE date_trunc(`TRADE_DATE`, 'year') -( -) -DISTRIBUTED BY HASH(`TRADE_DATE`) BUCKETS 10 -PROPERTIES ( - "replication_num" = "1" -); -``` - -:::caution -注意事项 - -1. 当前自动分区功能仅支持一个分区列,并且分区列必须为 NOT NULL 列; - -2. 自动分区当前已支持 Range 分区和 List 分区,其中 Range 分区函数仅支持 `date_trunc`、分区列仅支持 `DATE` 或者 `DATETIME` 格式;List 分区不支持函数调用,分区列支持 `BOOLEAN、TINYINT、SMALLINT、INT、BIGINT、LARGEINT、DATE、DATETIME、CHAR、VARCHAR` 数据类型,分区值为枚举值; - -3. 使用 List 分区时,一旦分区列的值当前不存在,自动分区功能都会为其创建一个独立的新分区。 -::: - -:::note - -参考文档:[数据划分](../../table-design/data-partitioning/data-distribution) -::: - -### INSERT INTO SELECT 导入性能提升 100% - -`INSERT INTO…SELECT` 语句是 ETL 中最高频使用的操作之一,可以快速完成数据在库表之间的迁移、转换以及清洗合并,提升 `INSERT INTO…SELECT` 性能可以更好满足用户对数据快速提取和分析的需求。在 Apache Doris 2.0 版本中,我们引入了单副本导入功能(Single Replica Load)来减少多副本的重复写入和 Compaction 工作,但是导入性能还存在优化的空间。 - -在 Apache Doris 2.1 版本中,为了进一步提升`INSERT INTO…SELECT` 性能,我们实现了 MemTable 前移以进一步减少导入过程中的开销,能在大多数场景中能在 2.0 版本的基础上取得 100% 的导入性能提升。 - -![INSERT INTO SELECT 导入性能提升 100%](/images/2.1-doris-INSERT-INTO-SELECT.png) - - -MemTable 前移和非前移的流程对比如上图所示,Sink 节点不再发送编码后的 Block,而是在本地处理完 MemTable 将生成的 Segment 数据发给下游节点,减少了数据多次编码的开销,同时使内存反压更准确和及时。此外,我们使用了 Streaming RPC 来替代了 Ping-pong RPC,减少了数据传输过程中的等待。 - -在此我们对 2.1 版本开启 MemTable 前移后的导入性能进行了测试,测试环境如下:1 FE+3 BE、每个节点 16C 64G、3 块高性能云盘(保证磁盘 I/O 不成为瓶颈) - -可以看到在单副本场景下,2.1 版本开启 MemTable 前移后、导入耗时降低至 2.0 版本的 36%,三副本场景下导入耗时降低至 2.0 版本的 54%,整体导入性能提升超过 100%。 - -| INSERT INTO 表 | Doris 2.0 非前移默认 | Doris 2.1MemTable 前移 | -| :------------------- | :------------------- | :--------------------- | -| linitem 1 副本 (38G) | 30.2 s | 11.1 s | -| linitem 3 副本 (38G) | 47.4 s | 25.4 s | - -![INSERT INTO SELECT 导入性能提升 100%](/images/2.1-insert-into-table.png) - -:::note -MemTable 前移在 2.1 版本中默认开启,用户无需修改原有的导入命令即可获得大幅性能提升。如果在使用过程中遇到问题、希望回退到原有的导入方式,可以在 MySQL 连接中设置环境变量 `enable_memtable_on_sink_node=false` 来关闭 MemTable 前移。 -::: - -### 高频实时导入/服务端攒批 Group Commit - -在数据导入过程中,不同批次导入的数据都会写入内存表中,随后在磁盘中上形成一个个 RowSet 文件,每个 Rowset 文件对应一次数据导入版本。后台 Compaction 进程会自动对多个版本的 RowSet 文件进行合并,将多个 RowSet 小文件合并成 RowSet 大文件以优化查询性能以及存储空间,而每一次的 Compaction 进程都会产生对 CPU、内存以及磁盘 IO 资源的消耗。在实际数据写入场景中,写入越实时高频、生成 RowSet 版本数越高、Compaction 所消耗的资源就越大。为了避免高频写入带来的过多资源消耗甚至 OOM,Apache Doris 引入了反压机制,即在版本过多的情况下会返回 -235,并对数据的版本数量进行控制。 - - -![高频实时导入/服务端攒批 Group Commit](/images/2.1-doris-group-commit.png) - -从 Apache Doris 2.1 版本开始,我们引入了服务端攒批 Group Commit,大幅强化了高并发、高频实时写入的能力。 - -顾名思义,Group Commit 会把用户侧的多次写入在 BE 端进行积攒后批量提交。对于用户而言,无需控制写入程序的频率,Doris 会自动把用户提交的多次写入在内部合并为一个版本,从而可以大幅提升用户侧的写入频次。 - -![高频实时导入/服务端攒批 Group Commit](/images/2.1-doris-group-commit-2.png) - -当前 Group Commit 已经支持同步模式 `sync_mode` 和异步模式 `async_mode`。同步模式下会将多个导入在一个事务提交,事务提交后导入返回,在导入完成后数据立即可见。异步模式下数据会先写入 WAL,Apache Doris 会根据负载和表的`group_commit_interval`属性异步提交数据,提交之后数据可见。为了防止 WAL 占用较大的磁盘空间,单次导入数据量较大时,会自动切换为`sync_mode`。 - -我们分别采取 JDBC 和 Stream Load 两种方式对高并发写入场景下 Group Commit(异步模式 `async_mode`)的写入性能进行了测试,测试报告如下: - -- **JDBC 写入**: - - - 集群配置为 1FE 1BE,数据集为 TPC-H SF10 Lineitem 表,总共约 22GB、1.8 亿行; - - - 经测试,在并发数 20、单次 Insert 数据行数 100 行下,导入效率达到 10.69w 行/秒、导入吞吐达 11.46 MB/秒,BE 节点的 CPU 使用率稳定保持在 10%-20%; - -- **Stream Load 写入**: - - - 集群配置为 1FE 3BE,数据集为 httplogs、总共 31GB、2.47 亿行。在未开启 Group Commit 和 开启 Group Commit 的异步模式时,通过设置不同的单并发数据量和并发数,对比数据的写入性能。 - - - 经测试,在并发数 10、单次导入数据量 1 MB 下,未开启 Group Commit 时会提示 -235 错误,开启后可稳定运行且导入效率达 81w 行/秒、导入吞吐达 104 MB/秒;在并发数 10、单次导入数据量 10MB 下,开启 Group Commit 后耗时降低至原先的 55%、导入吞吐提升 79%; - - -:::note -- 演示 Demo:https://www.bilibili.com/video/BV1um411o7Ha/?spm_id_from=333.999.0.0 - -- 参考文档和完整测试报告:[Group Commit](../../data-operate/import/group-commit-manual) - -::: - -## 半结构化数据分析 - -### Variant 数据类型 - -过去 Apache Doris 在应对复杂半结构化数据的存储和分析处理时,一般有两种方式: - -1. 一种方式是用户提前预定好表结构,加工成宽表,在数据进入前将数据解析好,这种方案的优点是写入性能好,查询也不需要解析,但是使用不够灵活、对表结构发起变更增加运维、研发的成本。 - -2. 使用 Doris 中的 JSON 类型、或是存成 JSON String,将原始 JSON 数据不经过加工直接入库,查询的时候,用解析函数处理。优点是不需要额外的数据加工、预定义表结构拍平嵌套结构,运维、研发方便,但存在解析性能以及数据读取效率低下的问题。 - -为了解决上述半结构化数据的挑战,在 Apache Doris 2.1 版本中我们引入全新的数据类型`VARIANT`,支持存储半结构化数据、允许存储包含不同数据类型(如整数、字符串、布尔值等)的复杂数据结构,无需在表结构中提前定义具体的列,其存储和查询与传统的 String、JSONB 等行存类型发生了本质的改变,期望其作为半结构化数据首选数据类型,给用户带来更加高效的数据处理机制。 - -Variant 类型特别适用于处理结构可能随时会发生变化的复杂嵌套结构。在写入过程中,Variant 类型可以自动根据列的结构和类型推断列信息,并将其合并到现有表的 Schema 中,将 JSON 键及其对应的值灵活存储为动态子列。同时,一个表可以同时包含灵活的 Variant 对象列和预先定义类型的更严格的静态列,从而在数据存储、查询上提供了更大的灵活性。除此之外,Variant 类型能够与 Doris 核心特性融合,利用列式存储、向量化引擎、优化器等技术,为用户带来极高性价比的查询性能及存储性能。 - -**使用方式如下:** - -```SQL --- 无索引 -CREATE TABLE IF NOT EXISTS ${table_name} ( - k BIGINT, - v VARIANT -) -table_properties; - --- 在v列创建索引,可选指定分词方式,默认不分词 -CREATE TABLE IF NOT EXISTS ${table_name} ( - k BIGINT, - v VARIANT, - INDEX idx_var(v) USING INVERTED [PROPERTIES("parser" = "english|unicode|chinese")] [COMMENT 'your comment'] -) -table_properties; - --- 查询,使用`[]`形式访问子列 -SELECT v["properties"]["title"] from ${table_name} -``` - -**相比 JSON 类型的优势** - -在 Apache Doris 中 JSON 类型是以二进制 JSONB 格式进行存储,整行 JSON 以行存的形式存储到 Segment 文件中。而 VARIANT 类型在写入的时候进行类型推断,将写入的 JSON 列存化,查询不需要进行解析。此外 Variant 类型针对稀疏场景的 JSON 进行优化,只提取频繁出现的列,稀疏的列会以单独的格式进行存储。 - -为了验证引入 Variant 数据类型后在存储以及查询上所带来的优势,我们基于 ClickBench 测试数据集进行了存储空间和查询性能的测试。 - -在存储空间方面,相同数据采取 Variant 类型,所占用的存储空间跟预定义的静态列的存储空间持平,相比于 JSON 类型则减少了约 65%。在一些低基数场景,由于列存的优势,存储资源的成本效应会更加明显。 - -![相比 JSON 类型的优势](/images/2.1-comparied-to-Json.png) - -在查询性能方面,如下表可知,Variant 类型与预定义静态列的查询性能差异在 10% 左右;**而对于 JSON 类型来说,Variant 类型的热查询速度相比于 JSON 类型提升了 8 倍以上,冷查询有着数量级的提升。**(由于 I/O 原因,JSONB 类型的冷查询大部分超时)。 - -![相比 JSON 类型的优势](/images/2.1-comparied-to-Json-2.png) - - -:::caution -注意事项: - -- 目前 Variant 暂不支持 Aggregate 模型,也不支持将 Variant 类型作为 Unique 或 Duplicate 模型的主键及排序键; - -- 推荐使用 RANDOM 模式或者开启 Group Commit 导入,写入性能更高效; - -- 日期、Decimal 等非标准 JSON 类型尽可能提取出来作为静态字段,性能更好; - -- 二维及其以上的数组以及数组嵌套对象,列存化会被存成 JSONB 编码,性能不如原生数组; - -- 查询过滤、聚合需要带 Cast,存储层会根据存储类型和 Cast 目标类型来提示(hint)存储引擎谓词下推,加速查询。 -::: - -:::note -- 演示 Demo: https://www.bilibili.com/video/BV13u4m1g7ra/?spm_id_from=333.999.0.0 - -- 参考文档:[VARIANT](../../sql-manual/basic-element/sql-data-types/semi-structured/VARIANT) - -::: - -### IP 数据类型 - -在网络流量监控的场景中,IP 地址是一个常见的字段,大量的统计分析基于 IP 地址进行。在 Apache Doris 2.1 版本中,将原生支持 IPv4 和 IPv6 数据类型,用高效的二进制形式存储 IP 数据。相比于使用明文的 IP String,内存和存储空间可节省 60% 左右。 - -同时基于 IP 类型,我们增加了常用的 20 多个 IP 处理函数,如: - -- IPV4_NUM_TO_STRING:将类型为 Int16、Int32、Int64 且大端表示的 IPv4 的地址,返回相应 IPv4 的字符串表现形式; -- IPV4_CIDR_TO_RANGE:接收一个 IPv4 和一个包含 CIDR 的 Int16 值,返回一个结构体,其中包含两个 IPv4 字段分别表示子网的较低范围(min)和较高范围(max); -- INET_ATON:获取包含 IPv4 地址的字符串,格式为 A.B.C.D(点分隔的十进制数字) - -:::note -参考文档:[IPV6](../../sql-manual/basic-element/sql-data-types/ip/IPV6) - -::: - -### 复杂数据类型分析函数完善 - -在 Apache Doris 2.1 版本中我们丰富了行转列和 IN 能支持的数据类型。如: - -- `explode_map`:支持 MAP 类型数据行转列(仅在新优化器中实现) - -支持 Map 类型 Explode 行转列,将 Map 字段的 N 个 Key Value 对展开成 N 行,每行的 Map 字段替换成 Key 和 Value 两个字段。`explode_map` 需要和 Lateral View 一起使用,可以接多个 Lateral View, 结果则是每个 `explode_map` 之后的行数以笛卡尔积的形式展示。 - -具体使用如下: - -```SQL --- 建表语句 - CREATE TABLE `sdu` ( - `id` INT NULL, - `name` TEXT NULL, - `score` MAP NULL -) ENGINE=OLAP -DUPLICATE KEY(`id`) -COMMENT 'OLAP' -DISTRIBUTED BY HASH(`id`) BUCKETS 1 -PROPERTIES ( -"replication_allocation" = "tag.location.default: 1" -); - --- insert 数据 -insert into sdu values (0, "zhangsan", {"Chinese":"80","Math":"60","English":"90"}); -insert into sdu values (1, "lisi", {"null":null}); -insert into sdu values (2, "wangwu", {"Chinese":"88","Math":"90","English":"96"}); -insert into sdu values (3, "lisi2", {null:null}); -insert into sdu values (4, "amory", NULL); - -mysql> select name, course_0, score_0 from sdu lateral view explode_map(score) tmp as course_0,score_0; -+----------+----------+---------+ -| name | course_0 | score_0 | -+----------+----------+---------+ -| zhangsan | Chinese | 80 | -| zhangsan | Math | 60 | -| zhangsan | English | 90 | -| lisi | null | NULL | -| wangwu | Chinese | 88 | -| wangwu | Math | 90 | -| wangwu | English | 96 | -| lisi2 | NULL | NULL | -+----------+----------+---------+ - -mysql> select name, course_0, score_0, course_1, score_1 from sdu lateral view explode_map(score) tmp as course_0,score_0 lateral view explode_map(score) tmp1 as course_1,score_1; -+----------+----------+---------+----------+---------+ -| name | course_0 | score_0 | course_1 | score_1 | -+----------+----------+---------+----------+---------+ -| zhangsan | Chinese | 80 | Chinese | 80 | -| zhangsan | Chinese | 80 | Math | 60 | -| zhangsan | Chinese | 80 | English | 90 | -| zhangsan | Math | 60 | Chinese | 80 | -| zhangsan | Math | 60 | Math | 60 | -| zhangsan | Math | 60 | English | 90 | -| zhangsan | English | 90 | Chinese | 80 | -| zhangsan | English | 90 | Math | 60 | -| zhangsan | English | 90 | English | 90 | -| lisi | null | NULL | null | NULL | -| wangwu | Chinese | 88 | Chinese | 88 | -| wangwu | Chinese | 88 | Math | 90 | -| wangwu | Chinese | 88 | English | 96 | -| wangwu | Math | 90 | Chinese | 88 | -| wangwu | Math | 90 | Math | 90 | -| wangwu | Math | 90 | English | 96 | -| wangwu | English | 96 | Chinese | 88 | -| wangwu | English | 96 | Math | 90 | -| wangwu | English | 96 | English | 96 | -| lisi2 | NULL | NULL | NULL | NULL | -+----------+----------+---------+----------+---------+ -``` - -`explode_map_outer` 和 `explode_outer` 的目的一致,可以将当前 MAP 类型的列中是 NULL 的数据行展示出来。 - -```SQL -mysql> select name, course_0, score_0 from sdu lateral view explode_map_outer(score) tmp as course_0,score_0; -+----------+----------+---------+ -| name | course_0 | score_0 | -+----------+----------+---------+ -| zhangsan | Chinese | 80 | -| zhangsan | Math | 60 | -| zhangsan | English | 90 | -| lisi | null | NULL | -| wangwu | Chinese | 88 | -| wangwu | Math | 90 | -| wangwu | English | 96 | -| lisi2 | NULL | NULL | -| amory | NULL | NULL | -+----------+----------+---------+ -``` - -- 增加 IN 谓词支持 Struct 类型数据的能力(仅在新优化器中实现) - -IN 谓词的左参数支持 `struct() function` 构建的 Struct 类型的数据,也支持 Select 某表中某一列是 Struct 类型的数据,右边的参数支持一个由 `struct() function` 构建的 Struct 类型的数据的数组。IN 谓词支持 Struct 类型可以有效替换 Where 条件中如果需要大量的 or 连词连接的表达式,如: `(a = 1 and b = '2') or (a = 1 and b = '3') or (...)` 可以通过 IN 实现为 `struct(a,b) in (struct(1, '2'), struct(1, '3'), ...)` - -```SQL -mysql> select struct(1,"2") in (struct(1,3), struct(1,"2"), struct(1,1), null); -+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| cast(struct(1, '2') as STRUCT) IN (NULL, cast(struct(1, '2') as STRUCT), cast(struct(1, 1) as STRUCT), cast(struct(1, 3) as STRUCT)) | -+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| 1 | -+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -mysql> select struct(1,"2") not in (struct(1,3), struct(1,"2"), struct(1,1), null); -+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| ( not cast(struct(1, '2') as STRUCT) IN (NULL, cast(struct(1, '2') as STRUCT), cast(struct(1, 1) as STRUCT), cast(struct(1, 3) as STRUCT))) | -+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| 0 | -+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -``` - -- `MAP_AGG`:接收 expr1 作为键,expr2 作为对应的值,返回一个 MAP - -:::note -参考文档:[MAP_AGG](../../sql-manual/sql-functions/aggregate-functions/map-agg.md) -::: - - - -## 负载管理 - -### 资源硬隔离 - -在 Apache Doris 2.0 版本我们引入了 Workload Group,可以实现对 CPU 资源的软限制。Workload Group 软限的优点是可以提升资源的利用率,但同时也会带来查询延迟的不确定性,这对那些期望查询性能稳定性的用户来说是难以接受的。因此在 Apache Doris 2.1 版本中我们对 Workload Group 实现了 CPU 硬限,即无论当前物理机的整体 CPU 是否空闲,配置了硬限的 Group 最大 CPU 用量不能超过配置的值。 - -这意味着不管单机的资源是否充足,该 Workload Group 的最大可用 CPU 资源都是固定的,只要用户的查询负载不发生大的变化,那么查询性能就会相对稳定。由于影响一个查询性能稳定性的因素很多,除了 CPU 之外,内存、IO 以及软件层面的资源竞争也都会产生影响,因此当集群的负载在空闲和满载之间切换时,即使配置了 CPU 的硬限,查询性能的稳定性也会产生波动,但是预期的表现应该是优于软限制。 - -:::caution -注意事项 - -1. Doris 2.0 版本的 CPU 隔离是基于优先级队列实现的,而在 2.1 版本中 Apache Doris 是基于 CGroup 实现了 CPU 资源的隔离,因此从 2.0 版本升级到 2.1 版本时,需要在使用前完成 CGroup 的配置,详细注意事项参考官网文档。 - -2. 目前 Workload Group 支持的工作负载类型包括查询间的隔离以及导入与查询之间的隔离,需要注意的是如果期望对导入负载进行彻底的限制,那么需要开启 MemTable 前移。 - -3. 用户需要通过开关指定当前集群的 CPU 限制模式是软限还是硬限,暂不支持两种模式同时运行,两种模式的切换可以参考官网文档,后续我们也会根据用户的实际需求决定是否要同时支持这两种模式。 -::: - -:::note -- 演示 Demo:https://www.bilibili.com/video/BV1Fz421X7XE/?spm_id_from=333.999.0.0 -- 参考文档:[Workload Group](../../admin-manual/workload-management/workload-group) - -::: - -### TopSQL - -:::tip -自 2.1.1 版本之后,active_queries() 已经废弃,TopSQl 主要通过 Doris 内置的系统表实现,参考文档 [工作负载诊断与分析](../../admin-manual/workload-management/analysis-diagnosis.md) -::: - -当集群出现预期外的大查询导致集群整体负载上升、查询可用性下降时,用户难以快速找到这些大查询并进行相应的降级操作。因此在 Apache Doris 2.1 版本中我们支持了运行时查看 SQL 资源用量的功能,具体指标如下: - -```SQL -mysql [(none)]>desc function active_queries(); -+------------------------+--------+------+-------+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+------------------------+--------+------+-------+---------+-------+ -| BeHost | TEXT | No | false | NULL | NONE | -| BePort | BIGINT | No | false | NULL | NONE | -| QueryId | TEXT | No | false | NULL | NONE | -| StartTime | TEXT | No | false | NULL | NONE | -| QueryTimeMs | BIGINT | No | false | NULL | NONE | -| WorkloadGroupId | BIGINT | No | false | NULL | NONE | -| QueryCpuTimeMs | BIGINT | No | false | NULL | NONE | -| ScanRows | BIGINT | No | false | NULL | NONE | -| ScanBytes | BIGINT | No | false | NULL | NONE | -| BePeakMemoryBytes | BIGINT | No | false | NULL | NONE | -| CurrentUsedMemoryBytes | BIGINT | No | false | NULL | NONE | -| ShuffleSendBytes | BIGINT | No | false | NULL | NONE | -| ShuffleSendRows | BIGINT | No | false | NULL | NONE | -| Database | TEXT | No | false | NULL | NONE | -| FrontendInstance | TEXT | No | false | NULL | NONE | -| Sql | TEXT | No | false | NULL | NONE | -+------------------------+--------+------+-------+---------+-------+ -``` - -`active_queries()` 函数记录了查询在各个 BE 上运行时的审计信息,该函数可以当做普通的 Doris 表来看待,支持查询、谓词过滤、排序和 Join 等操作。常用的指标包括 SQL 的运行时间、CPU 时间、单 BE 的峰值内存、Scan 的数据量以及 Shuffle 的数据量,也可以从 BE 的粒度做上卷,查看 SQL 全局的资源用量。 - -需要注意的是这里只显示运行时的 SQL,查询结束的 SQL 不会在这里显示,而是写入审计日志中(目前主要是 fe.audit.log)。常用的 SQL 如下: - -```SQL -查看集群中目前运行时间最久的n个sql -select QueryId,max(QueryTimeMs) as query_time from active_queries() group by QueryId order by query_time desc limit 10; - -查看目前集群中CPU耗时最长的n个sql -select QueryId, sum(QueryCpuTimeMs) as cpu_time from active_queries() group by QueryId order by cpu_time desc limit 10 - -查看目前集群中scan行数最多的n个sql以及他们的运行时间 -select t1.QueryId,t1.scan_rows, t2.query_time from - (select QueryId, sum(ScanRows) as scan_rows from active_queries() group by QueryId order by scan_rows desc limit 10) t1 - left join (select QueryId,max(QueryTimeMs) as query_time from active_queries() group by QueryId) t2 on t1.QueryId = t2.QueryId - -查看目前各个BE的负载情况,按照CPU时间/scan行数/shuffle字节数降序排列 -select BeHost,sum(QueryCpuTimeMs) as query_cpu_time, sum(ScanRows) as scan_rows,sum(ShuffleSendBytes) as shuffle_bytes from active_queries() group by BeHost order by query_cpu_time desc,scan_rows desc ,shuffle_bytes desc limit 10 - -查看单BE峰值内存最高的N个sql -select QueryId,max(BePeakMemoryBytes) as be_peak_mem from active_queries() group by QueryId order by be_peak_mem desc limit 10; -``` - -目前主要展示的负载类型包括 Select 和`Insert Into……Select`,预计在 2.1 版本之上的三位迭代版本中会支持 Stream Load 和 Broker Load 的资源用量展示。 - -:::note -参考文档:[ACTIVE_QUERIES](../../admin-manual/system-tables/information_schema/active_queries) -::: - - -## 其他 - -### Decimal256 - -为了更好的满足金融类或者财务类客户以及一些高端制造业客户对于数字类型进行精确计算的需求,2.1 新版本中提供了更高精度的 Decimal 数据类型,最高支持 76 位有效数字(该类型处于 Experimental 状态,需要手工开启配置项 set enable_decimal256=true 才能使用)。 - -示例: - -```SQL -CREATE TABLE `test_arithmetic_expressions_256` ( - k1 decimal(76, 30), - k2 decimal(76, 30) - ) - DISTRIBUTED BY HASH(k1) - PROPERTIES ( - "replication_num" = "1" - ); - -insert into test_arithmetic_expressions_256 values - (1.000000000000000000000000000001, 9999999999999999999999999999999999999999999998.999999999999999999999999999998), - (2.100000000000000000000000000001, 4999999999999999999999999999999999999999999999.899999999999999999999999999998), - (3.666666666666666666666666666666, 3333333333333333333333333333333333333333333333.333333333333333333333333333333); -``` - -查询语句及结果: - -```SQL -select k1, k2, k1 + k2 a from test_arithmetic_expressions_256 order by 1, 2; -+----------------------------------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| k1 | k2 | a | -+----------------------------------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| 1.000000000000000000000000000001 | 9999999999999999999999999999999999999999999998.999999999999999999999999999998 | 9999999999999999999999999999999999999999999999.999999999999999999999999999999 | -| 2.100000000000000000000000000001 | 4999999999999999999999999999999999999999999999.899999999999999999999999999998 | 5000000000000000000000000000000000000000000001.999999999999999999999999999999 | -| 3.666666666666666666666666666666 | 3333333333333333333333333333333333333333333333.333333333333333333333333333333 | 3333333333333333333333333333333333333333333336.999999999999999999999999999999 | -+----------------------------------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -3 rows in set (0.09 sec) -``` - -:::caution -注意事项 -- Decimal256 类型对于计算 CPU 的消耗更高,因此在性能上会有一些损耗。 -::: - - -### 任务调度 Job Scheduler - -同社区用户多次交流中,我们发现许多场景下用户使用 Apache Doris 时都存在定时调度的需求,例如: - -- 周期性的 Backup; - -- 过期数据定时清理; - -- 周期性的导入任务,如定时通过 Catalog 的方式去进行增量或全量数据同步; - -- 定期 ETL,如部分用户定期从宽表中 Load 数据至指定表、从明细表中定时拉取数据存至聚合表、ODS 层表定时打宽并写入原有宽表更新; - -尽管诸如 Airflow、DolphinScheduler 等可供选择的外部调度系统非常多,但仍面临一致性的问题——在极端情况下,外部调度系统触发 Doris 导入任务并执行成功,因意外情况忽然宕机时,外部调度系统无法正确获取执行结果,会认为此次调度失败,导致触发调度系统的容错机制,通常是重试或者直接失败。而无论采用哪种策略,最终都会导致以下几个情况发生: - -- **资源浪费**:由于调度系统误认为任务失败,可能会重新调度执行已经成功的任务,导致不必要的资源消耗。 - -- **数据重复或丢失**:如果调度系统选择重试导入任务,可能导致数据重复导入,造成数据冗余和不一致。另一方面,如果调度系统直接标记任务为失败,可能导致实际已成功导入的数据被忽略或丢失。 - -- **时间延误**:由于调度系统的容错机制被触发,可能需要进行额外的任务调度和重试,导致整体数据处理时间延长,影响业务效率和响应速度。 - -- **系统稳定性下降**:频繁的重试或直接失败可能导致调度系统和 Doris 的负载增加,进而影响系统的稳定性和性能。 - -因此我们在 Apache Doris 2.1 版本中引入了 Job Scheduler 功能并具备了自行任务调度的能力。Doris Job Scheduler 是根据既定计划运行的任务,用于在特定时间或指定时间间隔触发预定义的操作,从而帮助我们自动执行一些任务。从功能上来讲,它类似于操作系统上的定时任务(如:Linux 中的 cron、Windows 中的计划任务),但 Doris 的 Job 调度可以精确到秒级。对于导入场景,我们能够做到完全的一致性保障。除此之外,Doris 内置的 Jon Scheduler 还具有以下特点: - -1. **高效调度**:Job Scheduler 可以在指定的时间间隔内安排任务和事件,确保数据处理的高效性。采用时间轮算法保证事件能够精准做到秒级触发。 - -2. **灵活调度**:Job Scheduler 提供了多种调度选项,如按 分、小时、天或周的间隔进行调度,同时支持一次性调度以及循环(周期)事件调度,并且周期调度也可以指定开始时间、结束时间。 - -3. **事件池和高性能处理队列**:Job Scheduler 采用 Disruptor 实现高性能的生产消费者模型,最大可能的避免任务执行过载。 - -4. **调度记录可追溯**:Job Scheduler 会存储最新的 Task 执行记录(可配置),通过简单的命令即可查看任务执行记录,确保过程可追溯。 - -5. **高可用**:依托于 Doris 自身的高可用机制,Job 可以很轻松的做到自恢复,高可用。 - -在此我们创建一个定时调度任务作为示例: - -```SQL -// 从 2023-11-17 起每天定时执行 insert语句直到 2038 年结束 -CREATE -JOB e_daily - ON SCHEDULE - EVERY 1 DAY - STARTS '2023-11-17 23:59:00' - ENDS '2038-01-19 03:14:07' - COMMENT 'Saves total number of sessions' - DO - INSERT INTO site_activity.totals (time, total) - SELECT CURRENT_TIMESTAMP, COUNT(*) - FROM site_activity.sessions where create_time >= days_add(now(),-1) ; -``` - -:::caution 注意事项 - -当前 Job Scheduler 仅支持 Insert 内表,参考文档:[CREATE-JOB](../../sql-manual/sql-statements/job/CREATE-JOB.md) - -::: - -## Behavior Changed - -- Unique Key 模型默认开启 Merge On Write 写时合并,新创建的 Unique Key 模型的表将自动设置 `enable_unique_key_merge_on_write=true`。 - -- 倒排索引 Invert Index 经过一年多时间的打磨,已实现了对原本的位图索引 Bitmap Index 功能和场景的全覆盖,且功能上和性能上都大幅优于原本的位图索引 Bitmap Index,因此从 Apache Doris 2.1 版本起,我们将默认停止对位图索引 Bitmap Index 的支持,已经创建的位图索引保持不变将继续生效,不允许创建新的位图索引,在未来我们将会移除位图索引的相关代码。 - -- `cpu_resource_limit`不再支持,其本身是限制 BE 上 Scanner 线程数目的功能,而 Workload Group 也能支持设置 BE Scanner 线程数目,所以已设置的 `cpu_resource_limit `将失效。 - -- Segment Compaction 主要应对单批次大数据量的导入,可以在同一批次数据中进行多个 Segment 的 Compaction 操作,在 2.1 版本开始 Segment Compaction 将默认开启,`enable_segcompaction` 默认值设置为 True。 - -- Audit Log 插件 - - - 从 2.1 版本开始,Apache Doris 开始内置 Audit Log 审计日志插件,用户只需通过设置全局变量 `enable_audit_plugin` 开启或关闭审计日志功能。 - - - 对于之前已经安装过审计日志插件的用户,升级后可以继续使用原有插件,也可以通过 uninstall 命令卸载原有插件后,使用新的插件。但注意,切换插件后,审计日志表也将切换到新的表中。 - - - 具体可参阅:[审计日志插件](../../admin-manual/audit-plugin.md) - - - - -## 致谢 - -467887319, 924060929, acnot, airborne12, AKIRA, alan_rodriguez, AlexYue, allenhooo, amory, amory, AshinGau, beat4ocean, BePPPower, bigben0204, bingquanzhao, BirdAmosBird, BiteTheDDDDt, bobhan1, caiconghui, camby, camby, CanGuan, caoliang-web, catpineapple, Centurybbx, chen, ChengDaqi2023, ChenyangSunChenyang, Chester, ChinaYiGuan, ChouGavinChou, chunping, colagy, CSTGluigi, czzmmc, daidai, dalong, dataroaring, DeadlineFen, DeadlineFen, deadlinefen, deardeng, didiaode18, DongLiang-0, dong-shuai, Doris-Extras, Dragonliu2018, DrogonJackDrogon, DuanXujianDuan, DuRipeng, dutyu, echo-dundun, ElvinWei, englefly, Euporia, feelshana, feifeifeimoon, feiniaofeiafei, felixwluo, figurant, flynn, fornaix, FreeOnePlus, Gabriel39, gitccl, gnehil, GoGoWen, gohalo, guardcrystal, hammer, HappenLee, HB, hechao, HelgeLarsHelge, herry2038, HeZhangJianHe, HHoflittlefish777, HonestManXin, hongkun-Shao, HowardQin, hqx871, httpshirley, htyoung, huanghaibin, HuJerryHu, HuZhiyuHu, Hyman-zhao, i78086, irenesrl, ixzc, jacktengg, jacktengg, jackwener, jayhua, Jeffrey, jiafeng.zhang, Jibing-Li, JingDas, julic20s, kaijchen, kaka11chen, KassieZ, kindred77, KirsCalvinKirs, KirsCalvinKirs, kkop, koarz, LemonLiTree, LHG41278, liaoxin01, LiBinfeng-01, LiChuangLi, LiDongyangLi, Lightman, lihangyu, lihuigang, LingAdonisLing, liugddx, LiuGuangdongLiu, LiuHongLiu, liuJiwenliu, LiuLijiaLiu, lsy3993, LuGuangmingLu, LuoMetaLuo, luozenglin, Luwei, Luzhijing, lxliyou001, Ma1oneZhang, mch_ucchi, Miaohongkai, morningman, morrySnow, Mryange, mymeiyi, nanfeng, nanfeng, Nitin-Kashyap, PaiVallishPai, Petrichor, plat1ko, py023, q763562998, qidaye, QiHouliangQi, ranxiang327, realize096, rohitrs1983, sdhzwc, seawinde, seuhezhiqiang, seuhezhiqiang, shee, shuke987, shysnow, songguangfan, Stalary, starocean999, SunChenyangSun, sunny, SWJTU-ZhangLei, TangSiyang2001, Tanya-W, taoxutao, Uniqueyou, vhwzIs, walter, walter, wangbo, Wanghuan, wangqt, wangtao, wangtianyi2004, wenluowen, whuxingying, wsjz, wudi, wudongliang, wuwenchihdu, wyx123654, xiangran0327, Xiaocc, XiaoChangmingXiao, xiaokang, XieJiann, Xinxing, xiongjx, xuefengze, xueweizhang, XueYuhai, XuJianxu, xuke-hat, xy, xy720, xyfsjq, xzj7019, yagagagaga, yangshijie, YangYAN, yiguolei, yiguolei, yimeng, YinShaowenYin, Yoko, yongjinhou, ytwp, yuanyuan8983, yujian, yujun777, Yukang-Lian, Yulei-Yang, yuxuan-luo, zclllyybb, ZenoYang, zfr95, zgxme, zhangdong, zhangguoqiang, zhangstar333, zhangstar333, zhangy5, ZhangYu0123, zhannngchen, ZhaoLongZhao, zhaoshuo, zhengyu, zhiqqqq, ZhongJinHacker, ZhuArmandoZhu, zlw5307, ZouXinyiZou, zxealous, zy-kkk, zzwwhh, zzzxl1993, zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.1.md deleted file mode 100644 index 54aa067dffc1c..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.1.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -{ - "title": "Release 2.1.1", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.1 版本已于 2024 年 4 月 3 日正式发布。该版本针对 2.1.0 版本出现的问题进行较为全面的优化,提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.1.1 版本已于 2024 年 4 月 3 日正式发布。该版本针对 2.1.0 版本出现的问题进行较为全面的优化,提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- **立即下载:** https://doris.apache.org/download/ - -- **GitHub Release:** https://github.com/apache/doris/releases - - -## 1 行为变更 - -1. 改变了 Float 类型字段返回值序列化的方式,可以提升大数据量下 Float 返回的性能。 - -- https://github.com/apache/doris/pull/32049 - -2. 将部分 Table Valued Function 变更为系统表 `active_queries()`, `workload_groups()`。 - -- https://github.com/apache/doris/pull/32314 - -3. 由于 `show query``/l``oad profile stmt` 语句在实际用户场景中使用较少,该语句将不再支持与维护。同时该功能在 Pipeline 与 PipelineX 引擎中不支持。 - -- https://github.com/apache/doris/pull/32467 - -4. 升级 Arrow Flight 版本至 15.0.2,同时用户需要使用 ADBC 15.0.2 版本访问 Doris。 - -- https://github.com/apache/doris/pull/32827. - -## 2 升级问题 - -1. 修复了从 2.0.x 滚动升级至 2.1.x 的过程中,部分 BE 节点升级出现 Core 的问题。 - -- https://github.com/apache/doris/pull/32672 - -- https://github.com/apache/doris/pull/32444 - -- https://github.com/apache/doris/pull/32162 - -2. 修复了在 2.0.x 滚动升级至 2.1.x 过程中,使用 JDBC Catalog 会出现 Query 报错的问题。 - -- https://github.com/apache/doris/pull/32618 - -## 3 新功能 - -1. 默认开启列级权限。 - -- https://github.com/apache/doris/pull/32659 - -2. Pipeline 和 PipelineX 引擎能够在 K8S 下准确获取 CPU 核数。 - -- https://github.com/apache/doris/pull/32370 - -3. 支持读取 Parquet INT96 类型 - -- https://github.com/apache/doris/pull/32394 - -4. 支持 IP 透传的协议,以方便在 FE 之前启用代理的同时还能获取客户端准确的 IP 地址,实现白名单权限控制。 - -- https://github.com/apache/doris/pull/32338/files - -5. 增加对 Workload Queue 检测指标。 - -- https://github.com/apache/doris/pull/32259 - -6. 增加系统表 `backend_active_tasks `,以实时监测每个 BE 上活跃任务以及消耗的资源信息。 - -- https://github.com/apache/doris/pull/31945 - -7. 在 Spark Doris Connector 中增加 IPV4 和 IPV6 的支持。 - -- https://github.com/apache/doris/pull/32240 - -8. CCR 支持倒排索引。 - -- https://github.com/apache/doris/pull/32101 - -9. 支持查询 Experimental 的 Session Variable。 - -- https://github.com/apache/doris/pull/31837 - -10. 支持建立 `bitmap_union(bitmap_from_array())` 函数的物化视图。 - --https://github.com/apache/doris/pull/31962 - -11. 支持对 Hive 中 `HIVE_DEFAULT_PARTITION` 分区进行列裁剪。 - -- https://github.com/apache/doris/pull/31736 - -12. 支持 `set variable` 语句中使用函数。 - -- https://github.com/apache/doris/pull/32492 - -13. Arrow 序列化方式增加对 Variant 类型的支持。 - -- https://github.com/apache/doris/pull/32809 - -## 4 改进与优化 - -1. 当系统自动重启或者滚动升级之后,自动启动 Routine Load 导入任务。 - -- https://github.com/apache/doris/pull/32239 - -2. 优化了 Routine Load 任务在各个 BE 上的分布方式,让各个 BE 负载更加均衡。 - -- https://github.com/apache/doris/pull/32021 - -3. 升级 Spark 的版本,解决部分 Spark Load 的安全问题。 - -- https://github.com/apache/doris/pull/30368 - -4. 在冷热分离过程中,自动跳过被删除的 Tablet. - -- https://github.com/apache/doris/pull/32079 - -5. Workload Group 支持对 Routine Load 的资源进行限制。 - -- https://github.com/apache/doris/pull/31671 - -6. 大幅度优化多表物化视图查询改写性能。 - -- https://github.com/apache/doris/pull/31886 - -7. 优化 Broker Load 任务对 FE 的内存使用 - -- https://github.com/apache/doris/pull/31985 - -8. 优化 Partition 的裁剪逻辑。 - -- https://github.com/apache/doris/pull/31970 - -9. 优化 Tablet Schema Cache 对 BE 内存使用。 - -- https://github.com/apache/doris/pull/31141 - -10. 多表物化视图增加更多对 JOIN 类型的支持,包括 INNER JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOIN、LEFT SEMI JOIN、RIGHT SEMI JOIN、LEFT ANTI JOIN、RIGHT ANTI JOIN - -- https://github.com/apache/doris/pull/32909 - -## 5 Bugs 修复 - -1. 修复 TopN 下推导致的问题。 - -- https://github.com/apache/doris/pull/326332. - -2. 修复 JAVA UDF 带来的内存泄露问题。 - -- https://github.com/apache/doris/pull/32630 - -3. 修复 ODBC 表备份恢复问题。 - -- https://github.com/apache/doris/pull/31989 - -4. 修复对 Variant 类型进行运算时常量折叠会导致 BE 出错的问题 - -- https://github.com/apache/doris/pull/32265 - -5. 修复了部分导入任务失败时 Routine Load 卡住的问题。 - -- https://github.com/apache/doris/pull/32638 - -6. 修复 SEMI JOIN 结果不正确的问题。 - -- https://github.com/apache/doris/pull/32477 - -7. 当列的数据为空时,修复建立倒排索引会出错的问题。 - -- https://github.com/apache/doris/pull/32669 - -8. 修复`<=> join` 操作会出现 Core 的问题。 - -- https://github.com/apache/doris/pull/32623 - -9. 修复部分列更新在有 Sequence 列结果准确性的问题。 - -- https://github.com/apache/doris/pull/32574 - -10. 修复 Select Outfile 导出到 Parquet 或者 ORC 格式的列类型映射问题。 - -- https://github.com/apache/doris/pull/32281 - -11. 修复在 Restore 过程中 BE 有时候会 Core 的问题。 - -- https://github.com/apache/doris/pull/32489 - -12. 修复 `array_agg `函数结果不对的问题。 - -- https://github.com/apache/doris/pull/32387 - -13. 使 Variant 类型应当一直是 nullable. - -- https://github.com/apache/doris/pull/32248 - -14. 修复 Schema Change 没有正确处理空 Block 的问题。 - -- https://github.com/apache/doris/pull/32396 - -15. 修复使用 `json_length()` 函数时部分场景会出错的问题。 - -- https://github.com/apache/doris/pull/32145 - -16. 修复 Iceberg 表没有正确处理 Date Cast 转换的问题。 - -- https://github.com/apache/doris/pull/32194 - -17. 修复 Variant 类型建立 Index 时出现的部分 Bug。 - -- https://github.com/apache/doris/pull/31992 - -18. 修复当多个 `map_agg` 函数同时使用时结果不正确的问题。 - -- https://github.com/apache/doris/pull/31928 - -19. 修复 `money_format` 函数的返回结果不正确的问题。 - -- https://github.com/apache/doris/pull/31883 - -20. 修复在高并发的建立链接时部分请求会卡住的问题。 - -- https://github.com/apache/doris/pull/31594 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.10.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.10.md deleted file mode 100644 index 9fc0b400cbd40..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.10.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -{ - "title": "Release 2.1.10", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.10 版本已于 2025 年 05 月 17 日正式发布。 该版本持续在查询执行引擎、湖仓一体等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.10 版本已于 2025 年 05 月 17 日正式发布。** 该版本持续在查询执行引擎、湖仓一体等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。 - -- [立即下载](https://doris.apache.org/download) - -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.10-rc01) - -## 行为变更 - -- DELETE 不再错误的需要目标表的 SELECT_PRIV 权限 [#49794](https://github.com/apache/doris/pull/49794) -- Insert Overwrite 不再限制对同一个表并发只能为 1 [#48673](https://github.com/apache/doris/pull/48673) -- Merge on write unique 表禁止使用时序 compaction [#49905](https://github.com/apache/doris/pull/49905) -- 禁止在 VARIANT 类型上 build index。[#49159](https://github.com/apache/doris/pull/49159) - -## 新功能 - -### 查询执行引擎 - -- 支持了更多的 GEO 类型的计算函数`ST_CONTAINS ` , `ST_INTERSECTS`, `ST_TOUCHES`,`GeometryFromText`,`ST_Intersects`, `ST_Disjoint`, `ST_Touches`。[#49665](https://github.com/apache/doris/pull/49665) [#48695](https://github.com/apache/doris/pull/48695) -- 支持 `years_of_week` 函数。[#48870](https://github.com/apache/doris/pull/48870) - -## 湖仓一体 - -- Hive Catalog 支持 Catalog 级别的分区缓存开关控制 [#50724](https://github.com/apache/doris/pull/50724) - - 更多详情,可参考[文档](https://doris.apache.org/zh-CN/docs/dev/lakehouse/meta-cache#关闭-hive-catalog-元数据缓存) - -## 改进提升 - -### 湖仓一体 - -- Paimon 依赖版本升级到 1.0.1 -- Iceberg 依赖版本升级到 1.6.1 -- 将 Parquet Footer 的内存开销纳入 Memory Tracker 管控,以避免可能的 OOM 问题。[#49037](https://github.com/apache/doris/pull/49037) -- 优化 JDBC Catalog 的谓词下推逻辑,支持 AND/OR 等连接谓词的下推[#50542](https://github.com/apache/doris/pull/50542) -- 预编译版本默认携带 Jindofs 扩展包以支持阿里云 OSS-HDFS 访问。 - -### 半结构化管理 - -- ANY 函数支持 JSON 类型 [#50311](https://github.com/apache/doris/pull/50311) -- JSON_REPLACE,JSON_INSERT,JSON_SET,JSON_ARRAY 函数支持 JSON 数据类型和复杂数据类型[#50308](https://github.com/apache/doris/pull/50308) - -### 查询优化器 - -- 当 in 表达式的 options 多于 `Config.max_distribution_pruner_recursion_depth` 时,不执行分桶裁剪,以提升规划速度 [#49387](https://github.com/apache/doris/pull/49387) - -### 存储管理 - -- 减少日志和改进部分日志。[#47647](https://github.com/apache/doris/pull/47647) [#48523](https://github.com/apache/doris/pull/48523) - -### 其他 - -- 避免 thrift rpc END_OF_FILE 异常 [#49649](https://github.com/apache/doris/pull/49649) - -## Bug 修复 - -### 湖仓一体 - -- 修复某些情况下,在 Hive 侧新建表,Doris 侧无法立即查看到的问题 [#50188](https://github.com/apache/doris/pull/50188) -- 修复某些 Text 格式 Hive 表访问报错 "Storage schema reading not supported" 的 问题 [#50038](https://github.com/apache/doris/pull/50038) - - 查看[文档 get_schema_from_table 详情](https://doris.apache.org/zh-CN/docs/dev/lakehouse/catalogs/hive-catalog?_highlight=get_schema_from_table#语法) -- 修复某些情况下,写入 Hive/Iceberg 表时,元数据提交并发问题 [#49842](https://github.com/apache/doris/pull/49842) -- 修复某些情况下,写入存储在 oss-hdfs 上的 Hive 表失败的问题 [#49754](https://github.com/apache/doris/pull/49754) -- 修复当 Hive 分区键值有逗号的情况下,访问失败的问题 [#49382](https://github.com/apache/doris/pull/49382) -- 修复某些情况下,Paimon 表 Split 分配不均匀的问题 [#50083](https://github.com/apache/doris/pull/50083) -- 修复读取存储在 OSS 上的 Paimon 表时,无法正确处理 Delete 文件的问题 [#49645](https://github.com/apache/doris/pull/49645) -- 修复 MaxCompute Catalog 中,读取高精度 Timestamp 列时无法访问的问题 [#49600](https://github.com/apache/doris/pull/49600) -- 修复某些情况下,删除 Catalog 可能导致部分资源泄露的问题 [#49621](https://github.com/apache/doris/pull/49621) -- 修复某些情况下,读取 LZO 压缩格式的数据失败的问题 [#49538](https://github.com/apache/doris/pull/49538) -- 修复某些情况下,ORC 延迟物化功能导致复杂类型读取错误的问题 [#50136](https://github.com/apache/doris/pull/50136) -- 修复某些情况下,读取 pyorc-0.3 版本产生的 ORC 文件报错的问题 [#50358](https://github.com/apache/doris/pull/50358) -- 修复某些情况下,EXPORT 操作导致元数据死锁的问题 [#50088](https://github.com/apache/doris/pull/50088) - -### 索引 - -- 修复多次添加、删除和重命名列操作后构建倒排索引的错误 [#50056](https://github.com/apache/doris/pull/50056) -- 在 index compaction 中索引对应的列唯一 ID 的校验,避免潜在的数据异常和系统错误 [#47562](https://github.com/apache/doris/pull/47562) - -### 半结构化数据类型 - -- 修复某些情况下,VARIANT 类型转 JSON 类型返回 NULL 错误的结果 [#50180](https://github.com/apache/doris/pull/50180) -- 修复某些情况下,JSONB CAST 导致 crash [#49810](https://github.com/apache/doris/pull/49810) -- 禁止在 VARIANT 类型上 build index [#49159](https://github.com/apache/doris/pull/49159) -- 修复 named_struct 函数 decimal 类型精度正确性 [#48964](https://github.com/apache/doris/pull/48964) - -### 查询优化器 - -- 修复常量折叠中的一些问题 [#49413](https://github.com/apache/doris/pull/49413) [#50425](https://github.com/apache/doris/pull/50425) [#49686](https://github.com/apache/doris/pull/49686) [#49575](https://github.com/apache/doris/pull/49575) [#50142](https://github.com/apache/doris/pull/50142) -- 公共表达式提取在 lambda 表达式上可能工作异常 [#49166](https://github.com/apache/doris/pull/49166) -- 修复消除 group by key 中的常量可能不能正常工作的问题 [#49589](https://github.com/apache/doris/pull/49589) -- 修复在极端场景下,由于统计信息的推导错误,规划无法正常执行的问题 [#49415](https://github.com/apache/doris/pull/49415) -- 修复部分依赖 BE 中元数据的 information_schema 表,不能获取完整数据的问题 [#50721](https://github.com/apache/doris/pull/50721) - -### 查询执行引擎 - -- 修复了找不到 explode_json_array_json_outer 函数的问题。[#50164](https://github.com/apache/doris/pull/50164) -- 修复了 substring_index 不支持动态参数的问题。[#50149](https://github.com/apache/doris/pull/50149) -- 修复了很多 st_contains 函数计算结果不对的问题。[#50115](https://github.com/apache/doris/pull/50115) -- 修复了 array_range 函数可能导致的 core 的问题。[#49993](https://github.com/apache/doris/pull/49993) -- 修复了 date_diff 函数计算结果错误的问题。[#49429](https://github.com/apache/doris/pull/49429) -- 修复了一系列字符串函数在非 ASCII 编码下的乱码或者结果错误的问题。[#49231](https://github.com/apache/doris/pull/49231) [#49846](https://github.com/apache/doris/pull/49846) [#49127](https://github.com/apache/doris/pull/49127) [#40710](https://github.com/apache/doris/pull/40710) - -### 存储管理 - -- 修复某些情况下,动态分区表(Dynamic Partition Table)回放元数据失败的问题[#49569](https://github.com/apache/doris/pull/49569) -- 修复 ARM 下 streamload 可能因为操作序列丢数据的问题 [#48948](https://github.com/apache/doris/pull/48948) -- 修复 full compaction 报错以及可能导致 mow 数据重复的问题 [#49825](https://github.com/apache/doris/pull/49825) [#48958](https://github.com/apache/doris/pull/48958) -- 修复没有持久化分区 Storage Policy 的问题。 [#49721](https://github.com/apache/doris/pull/49721) -- 修复导入之后文件极小概率不存在的问题。[ #50343](https://github.com/apache/doris/pull/50343) -- 修复 CCR 和磁盘均衡并发可能导致的文件找不见问题。[#50663 ](https://github.com/apache/doris/pull/50663) -- 修复备份恢复大快照时可能出现的 connection reset 问题。[#49649](https://github.com/apache/doris/pull/49649) -- 修复 FE Follower 丢失本地备份快照的问题。[#49550](https://github.com/apache/doris/pull/49550) - -### Others - -- 修复某些场景下,审计日志可能丢失的问题 [#50357](https://github.com/apache/doris/pull/50357) -- 修复审计日志中 isQuery 标记可能不正确的问题 [#49959](https://github.com/apache/doris/pull/49959) -- 修复审计日志中部分查询 sqlHash 不正确的问题 [#49984](https://github.com/apache/doris/pull/49984) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.11.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.11.md deleted file mode 100644 index cef144fb064cd..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.11.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -{ - "title": "Release 2.1.11", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 8 月 15 日我们引来了 Apache Doris 2.1.11 版本的正式发布,欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 8 月 15 日我们引来了 Apache Doris 2.1.11 版本的正式发布,欢迎大家下载使用。 - - -## 行为变更 - -- time_series_max_tablet_version_num 控制时序 compaction 策略表的最大版本数目。[#51371](https://github.com/apache/doris/pull/51371) -- 修复冷热分层时 hdfs root_path 没有生效的问题。[#48441](https://github.com/apache/doris/pull/48441) -- 在 新优化器(Nereids)中,当查询时的表达式的深度或宽度超过阈值限制时,无论是否开始查询回退到老优化器,都不会回退。[#52431](https://github.com/apache/doris/pull/52431) -- 统一了开始 unicode 名字与否的名字检查规则,现在非 unicode 名字规则是 unicode 名字规则的严格子集。[#53264](https://github.com/apache/doris/pull/53264) - -## 新功能 - -### 查询执行引擎 - -- 引入系统表 routine_load_job 查看routine load job 信息。[#48963](https://github.com/apache/doris/pull/48963) - -### 查询优化器 - -- 支持了 MySQL 的 GROUP BY 上卷语法 GROUP BY ... WITH ROLLUP。[#51978](https://github.com/apache/doris/pull/51978) - -## 改进提升 - -### 查询优化器 - -- 优化了在聚合模型表和主键模型 mor 表上收集统计信息的性能。[#51675](https://github.com/apache/doris/pull/51675) - -### 异步物化视图 - -- 优化了透明改写的规划性能 [#51309](https://github.com/apache/doris/pull/51309) -- 优化了刷新的性能 [#51493](https://github.com/apache/doris/pull/51493) - -## Bug 修复 - -### 导入 - -- 修复 routineload alter 属性之后 show 展示结果不符合预期的问题 [#53038](https://github.com/apache/doris/pull/53038) - -### 湖仓一体 - -- 修复某些情况读取 iceberg equality delete 数据错误的问题 [#51253](https://github.com/apache/doris/pull/51253) -- 修复iceberg hadoop catalog 在 kerberos 环境下报错的问题 [#50623](https://github.com/apache/doris/pull/50623) [#52149](https://github.com/apache/doris/pull/52149) -- 修复 Kerberos 环境下 Iceberg 表写入事务提交失败的问题 [#51508](https://github.com/apache/doris/pull/51508) -- 修复 Iceberg 表写入事务提交错误的问题 [#52716](https://github.com/apache/doris/pull/52716) -- 修复某些情况下访问 kerberos 环境的 Hudi 表数据报错的问题 [#51713 ](https://github.com/apache/doris/pull/51713) -- SQL Server Catalog 支持识别 IDENTITY 列信息 [#51285](https://github.com/apache/doris/pull/51285) -- 修复某些情况下 Jdbc Catalog 表无法获取行数信息的问题 [#50901](https://github.com/apache/doris/pull/50901) -- 优化 orc zlib 在 x86 环境下的解压性能并修复潜在问题 [#51775](https://github.com/apache/doris/pull/51775) -- 在 Profile 中增加 Parquet/ORC 条件过滤和延迟物化相关的指标 [#51248](https://github.com/apache/doris/pull/51248) -- 优化 ORC Footer 的读取性能 [#51117](https://github.com/apache/doris/pull/51117) -- 修复 Table Valued Function 无法读压缩格式的 json 文件的问题 [#51983](https://github.com/apache/doris/pull/51983) -- 修复某些情况下并发刷新 Catalog 导致元数据不一致的问题 [#51787](https://github.com/apache/doris/pull/51787) - -### 索引 - -- 修复了倒排索引在处理包含 CAST 操作的 IN 谓词时出现的查询错误,避免返回错误的查询结果。[#50860](https://github.com/apache/doris/pull/50860) -- 修复了倒排索引在执行异常情况下的内存泄漏问题。[#52747](https://github.com/apache/doris/pull/52747) - -### 半结构化数据类型 - -- 修复了一些json 函数在null 值情况下结果错误的问题。 -- 修复了一些json 函数相关的bug。[#52543](https://github.com/apache/doris/pull/52543) [#51516](https://github.com/apache/doris/pull/51516) - -### 查询优化器 - -- 修复解析字符串为日期失败时,查询无法继续执行的问题 [#50900](https://github.com/apache/doris/pull/50900) -- 修复了个别场景下常量折叠结果错误的问题 [#51738](https://github.com/apache/doris/pull/51738) -- 修复个别数组函数在遇到 null literal 作为输入时,无法正常规划的问题 [#50899](https://github.com/apache/doris/pull/50899) -- 修复在极端场景下,开启 local shuffle 可能导致结果错误的问题 [#51313](https://github.com/apache/doris/pull/51313) [#52871 ](https://github.com/apache/doris/pull/52871) -- 修复了 replace view 可能导致 desc view 时看不到列信息的问题 [#52043](https://github.com/apache/doris/pull/52043) -- 修复了 prepare command 在非 master FE 节点上有可能无法正确执行的问题 [#52265](https://github.com/apache/doris/pull/52265) - -### 异步物化视图 - -- 修复当基表列的类型变更,可能导致透明改写后查询失败的问题 [#50730](https://github.com/apache/doris/pull/50730) -- 修复了个别场景下,透明改写分区补偿错误的问题 [#51899](https://github.com/apache/doris/pull/51899) [#52218](https://github.com/apache/doris/pull/52218) - -### 查询执行引擎 - -- 修复TopN计算时如果遇到variant 列类型,可能会core的问题。[#52573](https://github.com/apache/doris/pull/52573) -- 修复函数bitmap_from_base64在输入错误数据时会Core的问题。[#53018](https://github.com/apache/doris/pull/53018) -- 修复了bitmap_union 函数在超大数据量时,一些结果错误的问题。[#52033](https://github.com/apache/doris/pull/52033) -- 修复了multi_distinct_group_concat在窗口函数中使用时计算错误的问题。[#51875](https://github.com/apache/doris/pull/51875) -- 修复了array_map 函数,在极端值时可能core的问题。[#51618](https://github.com/apache/doris/pull/51618) [#50913](https://github.com/apache/doris/pull/50913) -- 修复了错误的时区处理的问题。[#51454](https://github.com/apache/doris/pull/51454) - -### Others - -- 修复多语句在主 FE 和非主 FE 行为不一致的问题。[#52632](https://github.com/apache/doris/pull/52632) -- 修复 prepared statment 在非主 FE 报错的问题。[#48689](https://github.com/apache/doris/pull/48689) -- 修复 roolup 操作时可能导致 CCR 中断的问题。[#50830](https://github.com/apache/doris/pull/50830) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.2.md deleted file mode 100644 index cea7345943545..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.2.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -{ - "title": "Release 2.1.2", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.2 版本已于 2024 年 4 月 12 日正式发布。该版本提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.2 版本已于 2024 年 4 月 12 日正式发布**。该版本提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 1 行为变更 - -1. 将 EXPORT 命令中 `data_consistence` 属性的默认值调整为 Partition,这可以使得并发导入的同时做 EXPORT 操作更容易成功。 - -- https://github.com/apache/doris/pull/32830 - -2. 兼容部分 MySQL Connector(如 MySQL.Data for .NET)将 SELECT `@``@autocommit` 的返回值类型变更为 BIGINT。 - -- https://github.com/apache/doris/pull/33282 - -3. Auto Partition 语法变化,详见[文档](../../table-design/data-partitioning/auto-partitioning.md) - -- https://github.com/apache/doris/pull/32737 - -4. Auto Partition 禁止和 Dynamic Partition 同时作用在一张表上 - -- https://github.com/apache/doris/pull/33736 - -## 2 升级问题 - -1. 修复正常 Workload Group 从 2.0 或者更早版本升级到 2.1 时没有默认创建的问题。 - -- https://github.com/apache/doris/pull/33197 - -## 3 新功能 - -1. 增加 processlist 系统表功能,用户可以通过查询系统表获得活跃的链接信息。 - -- https://github.com/apache/doris/pull/32511 - -2. 增加新的表函数 `LOCAL` 以访问部分共享存储上的文件。 - -- https://github.com/apache/doris-website/pull/494 - -## 4 改进与优化 - -1. 跳过部分不必要检查,加速在 K8s 环境下优雅退出的速度。 - -- https://github.com/apache/doris/pull/33212 - -2. 在 Profile 中增加已命中的物化视图信息,能够方便地定位物化视图是否命中。 - -- https://github.com/apache/doris/pull/33137 - -3. 针对 DB2 Catalog,增加测试链接是否通畅的功能,能够在建立 Catalog 时做部分链接检查。 - -- https://github.com/apache/doris/pull/33335 - -4. 增加 DNS Cache,解决 K8s 环境下域名解析较慢,从而影响查询的问题。 - -- https://github.com/apache/doris/pull/32869 - -5. 增加异步刷新 Catalog 中表的行数信息,避免查询抖动。 - -- https://github.com/apache/doris/pull/32997 - -## 5 Bug 修复 - -1. 修复 Iceberg Catalog 中,不支持 Iceberg 自定义属性的问题,例如 "io.manifest.cache-enabled"。 - -- https://github.com/apache/doris/pull/33113 - -2. `LEAD`/`LAG` 函数的 Offset 起始位置可以设置为 0。 - -- https://github.com/apache/doris/pull/33174 - -3. 修复部分导入过程中可能出现的 Timeout 的问题。 - -- https://github.com/apache/doris/pull/33077 - -- https://github.com/apache/doris/pull/33260 - -4. 修复部分 `ARRAY` / `MAP` / `STRUCT` 类型在 Compaction 中引起 Core 的问题。 - -- https://github.com/apache/doris/pull/33130 https://github.com/apache/doris/pull/33295 - -5. 修复查询过程中 Runtime Filter 部分等待超时的问题。 - -- https://github.com/apache/doris/pull/33369 - -6. 修复 `unix_timestamp` 函数在 Auto Partition 中可能导致 Core 的问题。 - -- https://github.com/apache/doris/pull/32871 - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.3.md deleted file mode 100644 index bc8d9aac8ccbd..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.3.md +++ /dev/null @@ -1,176 +0,0 @@ ---- -{ - "title": "Release 2.1.3", - "language": "zh-CN", - "description": "Apache Doris 2.1.3 版本已于 2024 年 5 月 21 日正式发布。该版本更新带来了若干改进项,包括支持向 Hive 回写数据、物化视图、新函数等功能,同时改善权限管理并修复若干问题,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -**Apache Doris 2.1.3 版本已于 2024 年 5 月 21 日正式发布**。该版本更新带来了若干改进项,包括支持向 Hive 回写数据、物化视图、新函数等功能,同时改善权限管理并修复若干问题,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - - -## 功能特性 - -**1. 支持通过 Hive Catalog 向 Hive 表中回写数据** - -从 2.1.3 版本开始,Apache Doris 支持对 Hive 的 DDL 和 DML 操作。用户可以直接通过 Apache Doris 在 Hive 中创建库表,通过执行`INSERT INTO`语句来向 Hive 表中写入数据。通过该功能,用户可以通过 Apache Doris 对 Hive 进行完整的数据查询和写入操作,进一步帮助用户简化湖仓一体架构。 - -参考[文档](../../lakehouse/catalogs/hive-catalog) - - - -**2. 支持在异步物化视图之上构建新的异步物化视图** - - -用户可以在异步物化视图之上来创建新的异步物化视图,直接复用计算好的中间结果进行数据加工处理,简化复杂的聚合和计算操作带来的资源消耗和维护成本,进一步加速查询性能、提升数据可用性。 - -**3. 支持通过物化视图嵌套物化视图进行重写** - -物化视图(Materialized View,MV)是用于存储查询结果的数据库对象。现在,Apache Doris 支持通过 MV 嵌套物化视图进行重写,这有助于优化查询性能。 - - -**4. 新增 SHOW VIEWS 语句** - -可以使用`SHOW VIEWS`语句来查询数据库中的视图,有助于更好地管理和理解数据库中的视图对象。 - -**5. Workload Group 支持绑定到特定的 BE 节点** - -Workload Group 可以绑定到特定的 BE 节点,实现查询执行的更精细化控制,以优化资源使用和提高性能。 - -**6. Broker Load 支持压缩的 JSON 格式** - -Broker Load 支持导入压缩的 JSON 格式数据,可以显著减少数据传输的带宽需求、加速数据导入性能。 - -**7. TRUNCATE 函数可以使用列作为 scale 参数** - -TRUNCATE 函数现在可以接受列作为 scale 参数,这使得在处理数值数据时可以更加灵活。 - -**8. 添加新的函数 `uuid_to_int` 和 `int_to_uuid`** - -这两个函数允许用户在 UUID 和整数之间进行转换,对于需要处理 UUID 数据的场景有明显帮助。 - -**9. 添加 `bypass_workload_group` Session Variable 以绕过查询队列** - -会话变量 `bypass_workload_group` 允许某些查询绕过 Workload Group 队列直接执行,这可以用于处理需要快速响应的关键查询。 - -**10. 添加 strcmp 函数** - -strcmp 函数用于比较两个字符串并返回它们的比较结果,帮助文本数据的处理更加简易。 - -**11. 支持 HLL 函数 `hll_from_base64` 和 `hll_to_base64`** - -HLL(HyperLogLog)是一种用于基数估计的算法,以上两个函数允许用户将 HLL 数据从 Base64 编码的字符串中解码,或将 HLL 数据编码为 Base64 字符串,这对于存储和传输 HLL 数据非常有用。 - -## 优化改进 - -**1. 替换 SipHash 为 XXHash 以改善 Shuffle 性能** - -SipHash 和 XXHash 都是哈希函数,但 XXHash 在某些场景下可能提供更快的哈希速度和更好的性能,此优化旨在通过采用 XXHash 来提高数据 Shuffle 过程中的性能。 - -**2. 异步物化视图支持 OLAP 表分区列为可以为 NULL:** - -允许异步物化视图支持 OLAP 表的分区列可以为 NULL,从而增强了数据处理的灵活性。 - -**3. 收集列统计信息时限制最大字符串长度为 1024 以控制 BE 内存使用** - -在收集列统计信息时,限制字符串的长度可以防止过大的数据消耗过多的 BE 内存,有助于保持系统的稳定性和性能。 - -**4. 支持动态删除 Bitmap Cache 以提高性能** - -通过支持动态删除不再需要的 Bitmap Cache,可以释放内存并改善系统性能。 - -**5. 在 ALTER 操作中减少内存使用** - -减少 ALTER 操作中的内存使用,以提高系统资源的利用效率。 - -**6. 支持复杂类型的常量折叠** - -支持 Array/Map/Struct 复杂类型的常量折叠; - -**7. 在 Aggregate Key 聚合模型中增加对 Variant 类型的支持** - -Variant 数据类型能够存储多种数据类型,在此优化中允许对 Variant 类型的数据进行聚合操作,从而增强了半结构化数据分析的灵活性。 - -**8. 在 CCR 中支持新的倒排索引格式** - -**9. 优化嵌套物化视图的重写性能** - -**10. 支持 decimal256 类型的行存格式** - -在行存格式中支持 decimal 256 类型,以以扩展系统对高精度数值数据的处理能力。 - -## 行为变更 - -**1. 授权(Authorization)** - -- **Grant_priv 权限更改**:`Grant_priv`不能再被任意授予。执行 `GRANT` 操作时,用户不仅需要具有`Grant_priv`,还需要具有要授予的权限。例如,如果想要授予对`table1`的 `SELECT` 权限,那么该用户不仅需要具有 `GRANT` 权限,还需要具有对`table1`的 `SELECT` 权限,这增加了权限管理的安全性和一致性。 - -- **Workload Group 和 Resource 的 Usage_priv**:`Usage_priv` 对 Workload Group 和 Resource 的权限不再是全局级别的,而是仅限于 Resource 和 Workload Group 内,权限的授予和使用将更加具体。 - -- **操作的授权**:之前未被授权的操作现在都有了相应的授权,以实现更加细致和全面地操作权限控制。 - -**2. LOG 目录配置** - -FE 和 BE 的日志目录配置现在统一使用`LOG_DIR`环境变量,所有其他不同类型的日志都将以`LOG_DIR`作为根目录进行存储。同时为了保持版本间的兼容性,以前的配置项`sys_log_dir`仍然可以使用。 - -**3. S3 表函数(TVF)** - -由于之前的解析方式在某些情况下可能无法正确识别或处理 S3 的 URL,因此将对象存储路径的解析逻辑进行重构。对于 S3 表函数中的文件路径,需要传递`force_parsing_by_standard_uri`参数来确保被正确解析。 - -## 升级问题 - -由于许多用户将某些关键字用作列名或属性值,因此将如下关键字设置为非保留关键字,允许用户将其用作标识符使用。 - -## 问题修复 - -**1. 修复在腾讯云 COSN 上读取 Hive 表时的无数据错误** - -解决了在腾讯云 COSN 存储上读取 Hive 表时可能遇到的无数据错误,增强了与腾讯云存储服务的兼容性。 - -**2. 修复 milliseconds_diff 函数返回错误结果** - -修复`milliseconds_diff`函数在某些情况下返回错误结果的问题,确保了时间差计算的准确性。 - -**3. 用户定义变量应转发到 Master 节点** - -确保用户定义的变量能够正确地传递到 Master 节点,以便在整个系统中保持一致性和正确的执行逻辑。 - -**4. 修复添加复杂类型列时遇到的 Schema Change 问题** - -在添加复杂类型列时,可能会遇到 Schema Change 问题,此修复确保了 Schema Change 的正确性。 - -5. **修复 FE master 节点更改时 Routine Load 的数据丢失问题** - -`Routine Load`常用于订阅 Kafka 消息队列中的数据,此修复解决了在 FE Master 节点更改时可能导致的数据丢失问题。 - -**6. 修复当找不到 Workload Group 时 Routine Load 失败的问题** - -修复了当`Routine Load`找不到指定 Workload Group 时导致的失败问题。 - -**7. 支持 column string64,以避免在 string size 溢出 unit32 时 Join 失败的问题** - -在某些情况下,字符串的大小可能会超过 unit32 的限制,支持`string64`类型可以确保字符串 JOIN 操作的正确执行。 - -**8. 允许 Hadoop 用户创建 Paimon Catalog** - -允许具有权限的对应 Hadoop 用户来创建 Paimon Catalog。 - -**9. 修复 function_ipxx_cidr 函数与常量参数的问题** - -修复了`function_ipxx_cidr`函数在处理常量参数时可能出现的问题,保证函数执行的正确性。 - -**10. 修复使用 HDFS 进行还原时的文件下载错误** - -解决了在使用 HDFS 进行数据还原时遇到的“failed to download”错误,确保了数据恢复的正确性和可靠性。 - -**11. 修复隐藏列相关的列权限问题** - -在某些情况下,隐藏列的权限设置可能不正确,此修复确保了列权限设置的正确性和安全性。 - -**12. 修复在 K8s 部署中 Arrow Flight 无法获取正确 IP 的问题** - -此修复解决了在 Kubernetes 部署环境中 Arrow Flight 无法正确获取 IP 地址的问题。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.4.md deleted file mode 100644 index 6d5c6bbda7328..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.4.md +++ /dev/null @@ -1,272 +0,0 @@ ---- -{ - "title": "Release 2.1.4", - "language": "zh-CN", - "description": "Apache Doris 2.1.4 版本已于 2024 年 6 月 26 日正式发布。 在 2.1.4 版本中,我们对数据湖分析场景进行了多项功能体验优化,重点修复了旧版本中异常内存占用的问题,同时提交了若干改进项以及问题修复,进一步提升了系统的性能、稳定性及易用性,欢迎大家下载使用。" -} ---- - -**Apache Doris 2.1.4 版本已于 2024 年 6 月 26 日正式发布。** 在 2.1.4 版本中,我们对数据湖分析场景进行了多项功能体验优化,重点修复了旧版本中异常内存占用的问题,同时提交了若干改进项以及问题修复,进一步提升了系统的性能、稳定性及易用性,欢迎大家下载使用。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 行为变更 - -- **通过 Catalog 查询外部表(如 Hive 数据表)时,系统将忽略不存在的文件:** 当从元数据缓存中获取文件列表时,由于缓存更新并非实时,因此可能存在实际的文件列表已删除、而元数据缓存中仍存在该文件的情况。为了避免由于尝试访问不存在的文件而导致的查询错误,系统会忽略这些不存在的文件。 [#35319](https://github.com/apache/doris/pull/35319) - -- 默认情况下,创建 Bitmap Index 不再默认变更为 Inverted Index。该行为由 FE 配置项 `enable_create_bitmap_index_as_inverted_index` 控制,默认为 FALSE。[#35521](https://github.com/apache/doris/pull/35521) - -- 当使用 `--console` 启动 FE、BE 进程时,所有日志将输出到标准输出,并通过前缀区分不同类型的日志。[#35679](https://github.com/apache/doris/pull/35679) - - 关于更多信息,请参考文档: - - - [BE 日志管理](../../admin-manual/log-management/be-log.md) - - - [FE 日志管理](../../admin-manual/log-management/fe-log.md) - -- 如果建表时没有填写表注释,默认注释为空,不再使用表类型作为默认表注释。 [#36025](https://github.com/apache/doris/pull/36025) - -- DECIMALV3 的默认精度从 (9, 0) 调整为 (38,9) ,以和最初发布此功能的版本保持兼容。 [#36316](https://github.com/apache/doris/pull/36316) - -## 新增功能 - -### 查询优化器 - -- **支持 FE 火焰图工具**:在 FE 部署目录 `${DORIS_FE_HOME}/bin` 中会增加`profile_fe.sh` 脚本,可以利用 async-profiler 工具生成 FE 的火焰图,用以发现性能瓶颈点。 - - 关于更多信息,请参考文档:[使用 FE Profiler 生成火焰图](https://doris.apache.org/zh-CN/community/developer-guide/fe-profiler) - -- **支持 SELECT DISTINCT 与聚合函数同时使用**:支持 `SELECT DISTINCT` 与聚合函数同时使用,在一个查询中同时去重和进行聚合操作,如 SUM、MIN/MAX 等。 - -- **支持无 GROUP BY 的单表查询重写**:无 `GROUP BY` 的单表查询重写功能允许数据库优化器在不需要分组的情况下,根据查询的复杂性和数据表的结构,自动选择最佳的执行计划来执行查询,这可以提高查询的性能,减少不必要的资源消耗,并简化查询逻辑。 [#35242](https://github.com/apache/doris/pull/35242). - -- **查询优化器全面支持高并发点查询功能**:在 2.1.4 版本之后,查询优化器全面支持高并发点查询功能,所有符合点查询条件的 SQL 语句会自动走短路径查询,无需用户在客户端额外设置 `set experimental_enable_nereids_planner = false`。 [#36205](https://github.com/apache/doris/pull/36205). - -### 湖仓一体 - -- **支持 Paimon 的原生读取器来处理 Deletion Vector:** Deletion Vector 主要用于标记或追踪哪些数据已被删除或标记为删除,通常应用在需要保留历史数据的场景,基于本优化可以提升大量数据更新或删除时的处理效率。 [#35241](https://github.com/apache/doris/pull/35241) - - 关于更多信息,请参考文档:[数据湖分析 - Paimon](../../lakehouse/catalogs/paimon-catalog) - -- **支持在表值函数(TVF)中使用 Resource**:TVF 功能为 Apache Doris 提供了直接将对象存储或 HDFS 上的文件作为 Table 进行查询分析的能力。通过在 TVF 中引用 Resource,可以避免重复填写连接信息,提升使用体验。 [#35139](https://github.com/apache/doris/pull/35139) - - 关于更多信息,请参考文档:[表函数 - HDFS](../../lakehouse/file-analysis.md) - -- **支持通过 Ranger 插件实现数据脱敏**:开启 Ranger 鉴权功能后,支持使用 Ranger 中的 Data Mask 功能进行数据脱敏。 - - 关于更多信息,请参考文档:[基于 Apache Ranger 的鉴权管理](../../admin-manual/auth/ranger#资源和权限) - -### 异步物化视图 - -- 构建支持内表触发式更新,如果物化视图使用的是内表,如果内表数据发生变化,可以触发物化视图刷新,需要在创建物化视图时指定 REFRESH ON COMMIT。 - -- 支持单表透明改写。 - - 关于更多信息,请参考文档:[查询异步物化视图](../../query-acceleration/materialized-view/async-materialized-view/functions-and-demands.md) - -- 透明改写支持 agg_state, agg_union 类型的聚合上卷,物化视图可以定义为 agg_state 或者 agg_union,查询使用具体的聚合函数,或者使用 agg_merge - - 关于更多信息,请参考文档:[AGG_STATE](../../sql-manual/basic-element/sql-data-types/aggregate/AGG-STATE) - -### 其他 - -- **新增 `replace_empty` 函数**:将字符串中的子字符串进行替换,当旧字符串为空时,会将新字符串插入到原有字符串的每个字符前以及最后。 - - 关于更多信息,请参考文档:[字符串函数 - REPLACE_EMPTY](../../sql-manual/sql-functions/scalar-functions/string-functions/replace-empty) - -- 支持 `show storage policy using` 语句:支持查看所有或指定存储策略关联的表和分区。 - - 关于更多信息,请参考文档:[SQL 语句 - SHOW](../../sql-manual/sql-statements/cluster-management/storage-management/SHOW-STORAGE-POLICY.md) - -- **支持 BE 侧的 JVM 指标:** 通过在 `be.conf` 配置文件中设置`enable_jvm_monitor=true`,可以启用对 BE 节点 JVM 的监控和指标收集,有助于了解 BE JVM 的资源使用情况,以便进行故障排除和性能优化。 - -## 改进优化 - -- 支持为中文列名创建倒排索引。[#36321](https://github.com/apache/doris/pull/36321) - -- 优化 Segment Cache 所消耗内存的估算准确度,以便能够更快地释放未使用的内存。[#35751](https://github.com/apache/doris/pull/35751) - -- 在使用 Export 功能导出数据时,提前过滤空分区以提升导出效率。[#35542](https://github.com/apache/doris/pull/35542) - -- 优化 Routine Load 任务分配算法以平衡 BE 节点之间的负载压力。[#34778](https://github.com/apache/doris/pull/34778) - -- 在设置错误的会话变量名时,自动识别近似变量值并给出更详细的错误提示。[#35775](https://github.com/apache/doris/pull/35775) - -- 支持将 Java UDF Jar 文件放到 FE 的 `custom_lib` 目录中并默认加载。[#35984](https://github.com/apache/doris/pull/35984) - -- 为审计日志导入作业添加超时的全局变量`audit_plugin_load_timeout` ,以控制在加载审计插件或处理审计日志时允许的最大执行时间。 - -- 优化了异步物化视图透明改写规划的性能。 - -- 当 `INSERT` 源数据为空时,BE 将不会执行任何操作。[#34418](https://github.com/apache/doris/pull/34418) - -- 支持分批获取 Hudi 和 Hive 文件列表,当存在大量数据文件时可以提升数据扫描性能。 [#35107](https://github.com/apache/doris/pull/35107) - - - 120 万文件场景中,获取文件列表的时间由 390 秒缩减到 46 秒。 - -- 创建异步物化视图时,禁止使用动态分区。 - -- 支持检测 Hive 外表分区数据是否和异步物化视图同步。 - -- 允许异步物化视图创建索引。 - -## 缺陷修复 - -### 查询优化器 - -- 修复 SQL Cache 在 `truncate paritition` 后依然返回旧结果的问题。[#34698](https://github.com/apache/doris/pull/34698) - -- 修复从 JSON Cast 到其他类型 Nullable 属性不对的问题。[#34707](https://github.com/apache/doris/pull/34707) - -- 修复偶现的 DATETIMEV2 Literal 化简错误。 [#35153](https://github.com/apache/doris/pull/35153) - -- 修复窗口函数中不能使用 `COUNT(*)` 的问题。[#35220](https://github.com/apache/doris/pull/35220) - -- 修复 `UNION ALL` 下全部是无 `FROM 的 `SELECT` 时,Nullable 属性可能错误的问题。 -[#35074](https://github.com/apache/doris/pull/35074) - -- 修复 `bitmap in join` 和子查询解嵌套无法同时使用的问题。[#35435](https://github.com/apache/doris/pull/35435) - -- 修复在特定情况下过滤条件不能下推到 CTE Producer 导致的性能问题。[#35463](https://github.com/apache/doris/pull/35463) - -- 修复聚合 Combinator 为大写时,无法找到函数的问题。[#35540](https://github.com/apache/doris/pull/35540) - -- 修复窗口函数没有被列裁剪正确裁剪导致的性能问题。[#35504](https://github.com/apache/doris/pull/35504) - -- 修复多个同名不同库的表同时出现在查询中时,可能解析错误导致结果错误的问题。[#35571](https://github.com/apache/doris/pull/35571) - -- 修复对于 Schema 表扫描时,由于生成了 Runtime Filter 导致查询报错的问题。[#35655](https://github.com/apache/doris/pull/35655) - -- 修复关联子查询解嵌套,关联条件被折叠为 Null Literal 导致无法执行的问题。[#35811](https://github.com/apache/doris/pull/35811) - -- 修复规划时,偶现的 Decimal Literal 被错误设置精度的问题。 [#36055](https://github.com/apache/doris/pull/36055) - - -- 修复偶现的多层聚合被合并后规划错误的问题。[#36145](https://github.com/apache/doris/pull/36145) - -- 修复偶现的聚合扩展规划报错输入输出不匹配的问题。[#36207](https://github.com/apache/doris/pull/36207) - -- 修复偶现的 `<=>` 被错误转换为 `=` 的问题。[#36521](https://github.com/apache/doris/pull/36521) - -### 查询执行 - -- 修复 Pipeline 引擎上达到限定的行数且内存没有释放时查询被挂起的问题。 [#35746](https://github.com/apache/doris/pull/35746) - -- 修复当设置 `enable_decimal256 =true` 且查询优化器回退到旧版本时 BE 发生 Core 的问题。[#35731](https://github.com/apache/doris/pull/35731) - -### 物化视图 - -- 修复构建异步物化视图指定 store_row_column 属性,be core 的问题。 - -- 修复构建异步物化视图指定 storage_medium 不生效的问题。 - -- 修复基表删除后,异步物化视图 show partitions 报错的问题。 - -- 修复异步物化视图引起备份恢复异常的问题。 - -- 修复分区改写可能导致错误结果的问题。 - -### 半结构化数据分析 - -- 修复带有空 Key 的 VARIANT 类型发生 Core 的问题。[#35671](https://github.com/apache/doris/pull/35671) - -- Bitmap 索引和 BloomFilter 索引不应支持轻量级索引变更。[#35225](https://github.com/apache/doris/pull/35225) - -### 主键模型 - -- 修复在有部分列更新导入的情况下发生异常重启,可能会产生重复 Key 的问题。[#35678](https://github.com/apache/doris/pull/35678) - -- 修复在内存紧张时发生 Clone 时 BE 可能会发生 Core 的问题。[#34702](https://github.com/apache/doris/pull/34702) - -### 湖仓一体 - -- 修复创建 Hive 表时无法使用完全限定名(如 `ctl.db.tbl`)的问题。 [#34984](https://github.com/apache/doris/pull/34984) - -- 修复 Refresh 操作时 Hive Metastore 连接未关闭的问题。[#35426](https://github.com/apache/doris/pull/35426) - -- 修复从 2.0.x 升级到 2.1.x 时可能的元数据回放问题。 [#35532](https://github.com/apache/doris/pull/35532) - -- 修复 TVF 表函数无法读取空 Snappy 压缩文件的问题。[#34926](https://github.com/apache/doris/pull/34926) - -- 修复无法读取具有无效最小/最大列统计信息的 Parquet 文件的问题。[#35041](https://github.com/apache/doris/pull/35041) - -- 修复 Parquet/ORC Reader 中无法处理带有 null-aware 函数下推谓词的问题。[#35335](https://github.com/apache/doris/pull/35335) - -- 修复创建 Hive 表时分区列顺序的问题。 [#35347](https://github.com/apache/doris/pull/35347) - -- 修复当分区值包含空格时无法将 Hive 表写入 S3 的问题。 [#35645](https://github.com/apache/doris/pull/35645) - -- 修复 Doris 写入 Parquet 格式 Hive 表无法被 Hive 读取的问题。 [#34981](https://github.com/apache/doris/pull/34981) - -- 修复 Hive 表 Schema 变更后无法读取 ORC 文件的问题。[#35583](https://github.com/apache/doris/pull/35583) - -- 修复了部分情况下,启用 Hive Metastore Listener 后 FE 无法启动的问题。[#36533](https://github.com/apache/doris/pull/36533) - -- 修复由 Hadoop FS 缓存引起的 FE OOM 问题。[#36403](https://github.com/apache/doris/pull/36403) - -- 修复写出 Parquet 格式文件写出 Row Group 过小的问题。[#36042](https://github.com/apache/doris/pull/36042) [#36143](https://github.com/apache/doris/pull/36143) - -- 修复 Paimon 表 Schema 变更后无法通过 JNI 读取 Paimon 表的问题。[#35309](https://github.com/apache/doris/pull/35309) - -- 修复 Paimon 表 Schema 变更后由于表字段长度判断错误导致无法读取的问题。 [#36049](https://github.com/apache/doris/pull/36049) - -- 修复了读取 Iceberg 中的时间戳列类型时的时区问题。 [#36435](https://github.com/apache/doris/pull/36435) - -- 修复了 Iceberg 表上的日期时间转换错误和数据路径错误的问题。[#35708](https://github.com/apache/doris/pull/35708) - -- 修复阿里云 OSS Endpoint 不正确的问题。[#34907](https://github.com/apache/doris/pull/34907) - -- 修复了大量文件导致的查询性能下降问题。[#36431](https://github.com/apache/doris/pull/36431) - -- 允许用户定义的属性通过表函数传递给 S3 SDK。[#35515](https://github.com/apache/doris/pull/35515) - -### 数据导入 - -- 修复 `CANCEL LOAD` 命令不生效的问题。[#35352](https://github.com/apache/doris/pull/35352) - -- 修复导入事务 Publish 阶段空指针错误导致导入事务无法完成的问题。[#35977](https://github.com/apache/doris/pull/35977) - -- 修复 bRPC 通过 HTTP 发送大数据文件序列化的问题。 [#36169](https://github.com/apache/doris/pull/36169) - -### 数据管控 - -- 修复了在将 DDL 或 DML 转发到主 FE 后,ConnectionContext 中的资源标签未设置的问题。 [#35618](https://github.com/apache/doris/pull/35618) - -- 修复了在启用 `lower_case_table_names` 时,Restore 表名不正确的问题。 [#35508](https://github.com/apache/doris/pull/35508) - -- 修复了清理无用数据或文件的管理命令不生效的问题。 [#35271](https://github.com/apache/doris/pull/35271) - -- 修复了无法从分区中删除存储策略的问题。[#35874](https://github.com/apache/doris/pull/35874) - -- 修复了向多副本自动分区表导入数据时的数据丢失问题。[#36586](https://github.com/apache/doris/pull/36586) - -- 修复了使用旧优化器查询或插入自动分区表时,表的分区列发生变化的问题。 [#36514](https://github.com/apache/doris/pull/36514) - -### 内存管理 - -- 修复日志中频繁报错 Cgroup meminfo 获取失败的问题。 [#35425](https://github.com/apache/doris/pull/35425) - -- 修复使用 BloomFilter 时 Segment 缓存大小不受控制导致进程内存异常增长的问题。[#34871](https://github.com/apache/doris/pull/34871) - -### 权限 - -- 修复开启表名大小写不敏感后,权限设置无效的问题。[#36557](https://github.com/apache/doris/pull/36557) - -- 修复通过非 Master FE 节点设置 LDAP 密码不生效的问题。[#36598](https://github.com/apache/doris/pull/36598) - -- 修复了无法检查 `SELECT COUNT(*)` 语句授权的问题。[#35465](https://github.com/apache/doris/pull/35465) - -### 其他 - -- 修复 MySQL 连接损坏情况下,客户端 JDBC 程序无法关闭连接的问题。 [#36616](https://github.com/apache/doris/pull/36616) - -- 修改 `SHOW PROCEDURE STATUS` 语句返回值与 MySQL 协议不兼容的问题。[#35350](https://github.com/apache/doris/pull/35350) - -- `libevent` 库强制开启 Keepalive 以解决部分情况下连接泄露的问题。 [#36088](https://github.com/apache/doris/pull/36088) - - -## 致谢 - -@133tosakarin、@924060929、@airborne12、@amorynan、@AshinGau、@BePPPower、@BiteTheDDDDt、@ByteYue、@caiconghui、@CalvinKirs、@cambyzju、@catpineapple、@cjj2010、@csun5285、@DarvenDuan、@dataroaring、@deardeng、@Doris-Extras、@eldenmoon、@englefly、@feiniaofeiafei、@felixwluo、@freemandealer、@Gabriel39、@gavinchou、@GoGoWen、@HappenLee、@hello-stephen、@hubgeter、@hust-hhb、@jacktengg、@jackwener、@jeffreys-cat、@Jibing-Li、@kaijchen、@kaka11chen、@Lchangliang、@liaoxin01、@LiBinfeng-01、@lide-reed、@luennng、@luwei16、@mongo360、@morningman、@morrySnow、@mrhhsg、@Mryange、@mymeiyi、@nextdreamblue、@platoneko、@qidaye、@qzsee、@seawinde、@shuke987、@sollhui、@starocean999、@suxiaogang223、@TangSiyang2001、@Thearas、@Vallishp、@w41ter、@wangbo、@whutpencil、@wsjz、@wuwenchi、@xiaokang、@xiedeyantu、@XieJiann、@xinyiZzz、@XuPengfei-1020、@xy720、@xzj7019、@yiguolei、@yongjinhou、@yujun777、@Yukang-Lian、@Yulei-Yang、@zclllyybb、@zddr、@zfr9527、@zgxme、@zhangbutao、@zhangstar333、@zhannngchen、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.5.md deleted file mode 100644 index d44dfa26a26eb..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.5.md +++ /dev/null @@ -1,395 +0,0 @@ ---- -{ - "title": "Release 2.1.5", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.5 版本已于 2024 年 7 月 24 日正式发布。2.1.5 版本在湖仓一体、多表物化视图、半结构化数据分析等方面进行了全面更新及改进,同时在倒排索引、查询优化器、查询引擎、存储管理等 10 余方向上完成了若干问题修复,欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.1.5 版本已于 2024 年 7 月 24 日正式发布。2.1.5 版本在湖仓一体、多表物化视图、半结构化数据分析等方面进行了全面更新及改进,同时在倒排索引、查询优化器、查询引擎、存储管理等 10 余方向上完成了若干问题修复,欢迎大家下载使用。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 行为变更 - -- JDBC Catalog 的默认连接池大小从 10 调整为 30。[#37023](https://github.com/apache/doris/pull/37023) - -- 创建 JDBC Catalog 时,参数 `connection_pool_max_size` 的默认值改为 30,以避免高并发场景下连接池耗尽的问题。 - -- 将系统的保留内存的最小值,即 `low water mark` 调整为 `min (6.4G, MemTotal * 5%)`,以更好地防止 BE 出现 OOM 问题。 - -- 修改了单请求多个语句的处理逻辑,当客户端未设置 `CLIENT_MULTI_STATEMENTS` 标志位时,将仅返回最后一个语句的结果,而非所有语句结果。 - -- 不再允许直接更改异步物化视图的数据。[#37129](https://github.com/apache/doris/pull/37129) - -- 增加会话变量 `use_max_length_of_varchar_in_ctas`,用于控制 CTAS 时 VARCHAR 和 CHAR 类型长度的生成行为。默认值是 true。当设置为 false 时,使用推导出的 VARCHAR 长度,而不是使用最大长度。[#37284](https://github.com/apache/doris/pull/37284) - -- 统计信息收集,默认开启了通过文件大小预估 Hive 表行数的功能。[#37694](https://github.com/apache/doris/pull/37694) - -- 默认开启异步物化视图透明改写机制。[#35897](https://github.com/apache/doris/pull/35897) - -- 透明改写利用分区物化视图,如果分物物化视图部分分区失效,默认行为是将所有基础表与物化视图联合,以保证查询数据的正确性。 [#35897](https://github.com/apache/doris/pull/35897) - -## 新功能 - -### 湖仓一体 - -- 会话变量 `read_csv_empty_line_as_null` 用于控制在读取 CSV 格式文件时,是否忽略空行。默认情况下忽略空行,当设置为 true 时,空行将被读取为所有列均为 Null 的行。[#37153](https://github.com/apache/doris/pull/37153) - - - 更多信息,请参考[文档](https://doris.apache.org/docs/lakehouse/datalake-analytics/hive?_highlight=compress_type)。 - -- 新增兼容 Presto 的复杂类型输出格式。通过设置 `set serde_dialect="presto"`,可以控制复杂类型的输出格式 与 Presto 一致,用于平滑迁移 Presto 业务。[#37253](https://github.com/apache/doris/pull/37253) - -​ - -### 多表物化视图 -- 支持在构建物化视图中使用非确定性函数。[#37651](https://github.com/apache/doris/pull/37651) - -- 支持原子替换异步物化视图定义。[#37147](https://github.com/apache/doris/pull/37147) - -- 支持通过 `show create materialized view` 查看异步物化视图创建语句。 [#37125](https://github.com/apache/doris/pull/37125) - -- 支持对多维聚合查询的透明改写。[#37436](https://github.com/apache/doris/pull/37436) - -- 支持对非聚合物化视图的聚合查询进行透明改写。 [#37497](https://github.com/apache/doris/pull/37497) - -- 支持使用 Key 列,对查询中的 DISTINCT 聚合做透明改写。[#37651](https://github.com/apache/doris/pull/37651) - -- 支持对物化视图进行分区,通过使用 `date_trunc` 对分区进行汇总。[#31812](https://github.com/apache/doris/pull/31812) [#35562](https://github.com/apache/doris/pull/35562) - -- 支持分区表值函数(TVF) [#36479](https://github.com/apache/doris/pull/36479) - -### 半结构化数据分析 - -- 使用 VARIANT 类型的表支持部分列更新。 [#34925](https://github.com/apache/doris/pull/34925) - -- 支持默认开启 PreparedStatement。 [#36581](https://github.com/apache/doris/pull/36581) - -- VARIANT 类型支持导出为 CSV 格式。[#37857](https://github.com/apache/doris/pull/37857) - -- 支持 `explode_json_object` 函数,用于将 JSON Object 行转列。 [#36887](https://github.com/apache/doris/pull/36887) - -- ES Catalog 将 ES 的 NESTED 或者 OBJECT 类型映射成 Doris JSON 类型。[#37101](https://github.com/apache/doris/pull/37101) - -- 默认情况下,对于具有指定分词器的倒排索引,默认开启 `support_phrase` 以提升 `match_phrase` 系列查询性能。[#37949](https://github.com/apache/doris/pull/37949) - -### 查询优化器 - -- 支持 `explain DELETE FROM` 语句。[#37100](https://github.com/apache/doris/pull/37100) - -- 支持常量表达式参数的 Hint 形式。[#37988](https://github.com/apache/doris/pull/37988) - -### 内存管理 - -- 增加了 HTTP API 以清除缓存。 [#36599](https://github.com/apache/doris/pull/36599) - -### 权限管理 - -- 支持对表值函数(TVF)中的资源进行鉴权。 [#37132](https://github.com/apache/doris/pull/37132) - -## 改进提升 - -### 湖仓一体 - -- 将 Paimon 升级至 0.8.1 版本。 - -- 修复在部分情况下,查询 Paimon 表时导致 `org.apache.commons.lang.StringUtils` 的问题。[#37512](https://github.com/apache/doris/pull/37512) - -- 支持腾讯云 LakeFS。 [#36891](https://github.com/apache/doris/pull/36891) - -- 优化了外部表查询时获取文件列表的超时时间。 [#36842](https://github.com/apache/doris/pull/36842) - -- 可通过会话变量 `fetch_splits_max_wait_time_ms` 进行设置 - -- 改进了 SQLServer JDBC Catalog 的默认连接逻辑。 [#36971](https://github.com/apache/doris/pull/36971) - - - 默认情况下,不干预连接加密设置。仅当 `force_sqlserver_jdbc_encrypt_false` 设置为 true 时,才会强制在 JDBC URL 中添加 `encrypt=false` 以减少认证错误,从而提供更灵活的控制加密行为的能力。 - -- Hive 表的 `show create table` 语句增加序列化/反序列化。[#37096](https://github.com/apache/doris/pull/37096) - -- FE 端 Hive 表列表默认缓存时间由 1 天改为 4 小时 - -- 数据导出(Export/Outfile)支持指定 Parquet 和 ORC 的压缩格式。 - - - 更多信息,请参考[文档](../../sql-manual/sql-statements/data-modification/load-and-export/EXPORT.md)。 - -- 当使用 CTAS+TVF 创建表时,TVF 中的分区列将被自动映射为 Varchar(65533)而非 String,以便该分区列能够作为内表的分区列使用。 [#37161](https://github.com/apache/doris/pull/37161) - -- 优化 Hive 写入操作元数据的访问次数。[#37127](https://github.com/apache/doris/pull/37127) - -- ES Catalog 支持将 NESTED/OBJECT 类型映射到 Doris 的 JSON 类型。[#37182](https://github.com/apache/doris/pull/37182) - -- 优化使用低版本 OBJECT 驱动连接 Oracle 时的报错信息。[#37634](https://github.com/apache/doris/pull/37634) - -- 当 Hudi 表 Incremental Read 返回空集时,Doris 同样返回空集而非报错。[#37636](https://github.com/apache/doris/pull/37634) - -- 修复部分情况下内外表关联查询可能导致 FE 超时的问题。[#37757](https://github.com/apache/doris/pull/37757) - -- 修复了在从旧版本升级到新版本时,如果开启了 Hive Metastore Even Listener 情况下,可能出现 FE 元数据回放错误的问题。 [#37757](https://github.com/apache/doris/pull/37757) - - - -### 多表物化视图 - -- 创建异步物化视图时,支持自动选择 Key 列。 [#36601](https://github.com/apache/doris/pull/36601) - -- 异步物化视图分区刷新支持定义中使用 `date_trunc` 函数。[#35562](https://github.com/apache/doris/pull/35562) - -- 嵌套物化视图中,当下层命中聚合上卷改写后,上层现在依然可以继续进行透明改写。 [#37651](https://github.com/apache/doris/pull/37651) - -- 当 Schema Change 不影响异步物化视图数据正确性时,异步物化视图保持可用状态。 [#37122](https://github.com/apache/doris/pull/37122) - -- 提升了透明改写的规划速度。[#37935](https://github.com/apache/doris/pull/37935) - -- 计算异步物化视图可用性时,不再考虑当前的刷新状态。[#36617](https://github.com/apache/doris/pull/36617) - -### 半结构化数据管理 - -- 通过采样优化 DESC 查看 VARIANT 子列的性能。 [#37217](https://github.com/apache/doris/pull/37217) - -- 行存 `page_size` 默认从 4K 调到 16K 压缩率提升 30%,而且支持表级别可配置。 - -- JSON 类型支持 Key 为空的特殊 JSON 数据。 [#36762](https://github.com/apache/doris/pull/36762) - -### 倒排索引 - -- 减少倒排索引 Exists 调用避免对象存储访问延迟。[#36945](https://github.com/apache/doris/pull/36945) - -- 优化倒排索引查询流程额外开销。[#35357](https://github.com/apache/doris/pull/35357) - -- 在物化视图中不创建倒排索引。 [#36869](https://github.com/apache/doris/pull/36869) - -### 查询优化器 - -- 当比较表达式两侧都是 Literal 时,String Literal 会尝试向另一侧的类型转换。 [#36921](https://github.com/apache/doris/pull/36921) - -- 重构了 VARIANT 类型的子路径下推功能,现在可以更好地支持复杂的下推场景。 [#36923](https://github.com/apache/doris/pull/36923) - -- 优化了物化视图代价计算的逻辑,能够更准确的选择代价更低的物化视图。 [#37098](https://github.com/apache/doris/pull/37098) - -- 提升了 SQL 中使用用户变量时的 SQL 缓存规划速度。 [#37119](https://github.com/apache/doris/pull/37119) - -- 优化了 NOT NULL 表达式的估行逻辑,当查询中存在 NOT NULL 时可以获得更好的性能。 [#37498](https://github.com/apache/doris/pull/37498) - -- 优化了 LIKE 表达式的 NULL 拒绝推导逻辑。[#37864](https://github.com/apache/doris/pull/37864) - -- 优化查询指定分区失败时的报错信息,可以更清楚看到是哪个表导致的问题。 [#37280](https://github.com/apache/doris/pull/37280) - -### 查询引擎 - -- 将某些场景下 BITMAP_UNION 算子的性能提升了 3 倍。 - -- 提升 Arrow Flight 在 ARM 环境下的读取性能。 - -- 优化了 `explode`、`explode_map`、`explode_json` 函数的执行性能。 - -### 数据导入 - -- 支持为 `INSERT INTO ... FROM TABLE VALUE FUNCTION` 语句设置 `max_filter_ratio` 参数。 - - - 更多信息,请参考[文档](../../data-operate/import/import-way/insert-into-manual) - -## Bug 修复 - -### 湖仓一体 - -- 修复部分情况下查询 Parquet 格式导致 BE 宕机的问题。[#37086](https://github.com/apache/doris/pull/37086) - -- 修复查询 Parquet 格式,BE 端打印大量日志的问题。[#37012](https://github.com/apache/doris/pull/37012) - -- 修复部分情况下 FE 端重复创建大量 FileSystem 对象的问题。[#37142](https://github.com/apache/doris/pull/37142) - -- 修复部分情况下,写入 Hive 后的事务信息未清理的问题。[#37172](https://github.com/apache/doris/pull/37172) - -- 修复部分情况下,Hive 表写入操作导致线程泄露的问题。[#37247](https://github.com/apache/doris/pull/37247) - -- 修复部分情况下,无法正确获取 Hive Text 格式行列分隔符的问题。[#37188](https://github.com/apache/doris/pull/37188) - -- 修复部分情况下,读取 lz4 压缩块时的并发问题。[#37187](https://github.com/apache/doris/pull/37187) - -- 修复部分情况下,Iceberg 表 `count(*)` 返回错误的问题。[#37810](https://github.com/apache/doris/pull/37810)。 - -- 修复部分情况下,创建基于 MinIO 的 Paimon Catalog 导致 FE 元数据回放错误的问题。[#37249](https://github.com/apache/doris/pull/37249) - -- 修复部分情况下使用 Ranger 创建 Catalog 客户端卡死的问题。 [#37551](https://github.com/apache/doris/pull/37551) - -### 多表物化视图 - -- 修复当基表增加新的分区时,可能导致的分区聚合上卷改写后结果错误的问题。 [#37651](https://github.com/apache/doris/pull/37651) - -- 修复关联的基表分区删除后,物化视图分区状态没有被置为不同步的问题。 [#36602](https://github.com/apache/doris/pull/36602) - -- 修复异步物化视图构建偶现的死锁问题。 [#37133](https://github.com/apache/doris/pull/37133) - -- 修复异步物化视图单次刷新大量分区时偶现的,报错 `nereids cost too much time` 问题。[#37589](https://github.com/apache/doris/pull/37589) - -- 修复创建异步物化视图时,如果最终的 Select List 中存在 Null Literal,则无法创建的问题。[#37281](https://github.com/apache/doris/pull/37281) - -- 修复单表物化视图,如果构建了聚合的物化视图,虽然改写成功,但是 CBO 没有选择的问题。 [#35721](https://github.com/apache/doris/pull/35721) [#36058](https://github.com/apache/doris/pull/36058) - -- 修复 Join 输入都是聚合的情况下,构建分区物化视图,分区推导失败的问题。[#34781](https://github.com/apache/doris/pull/34781) - -### 半结构化数据管理 - -- 修复 VARIANT 在并发/异常数据等特殊情况下的问题。[#37976](https://github.com/apache/doris/pull/37976) [#37839](https://github.com/apache/doris/pull/37839) [#37794](https://github.com/apache/doris/pull/37794) [#37674](https://github.com/apache/doris/pull/37674) [#36997](https://github.com/apache/doris/pull/36997) - -- 修复 VARIANT 用在不支持的 SQL 中 Coredump 的问题。 [#37640](https://github.com/apache/doris/pull/37640) - -- 修复 1.x 版本升级到 2.x 或者更高版本时因为 MAP 数据类型 Coredump 的问题。 [#36937](https://github.com/apache/doris/pull/36937) - -- 修复 ES Catalog 对 Array 的支持。 [#36936](https://github.com/apache/doris/pull/36936) - -### 倒排索引 - -- 修复倒排索引 v2 DROP INDEX 元数据没有删除的问题。 [#37646](https://github.com/apache/doris/pull/37646) - -- 修复字符串长度超过“ignore above”时查询准确性问题。 [#37679](https://github.com/apache/doris/pull/37679) - -- 修复索引大小统计的问题。 [#37232](https://github.com/apache/doris/pull/37232) [#37564](https://github.com/apache/doris/pull/37564) - -### 查询优化器 - -- 修复部分因为保留关键字而导致导入无法执行的问题。[#35938](https://github.com/apache/doris/pull/35938) - -- 修复了在创建表时 CHAR(255) 类型错误的记录为 CHAR(1) 的问题。 [#37671](https://github.com/apache/doris/pull/37671) - -- 修复了在相关子查询中的连接表达式为复杂表达式时返回错误结果的问题。[#37683](https://github.com/apache/doris/pull/37683) - -- 修复了 DECIMAL 类型分桶裁剪有可能错误的问题。[#38013](https://github.com/apache/doris/pull/38013) - -- 修复了部分场景下开启 Pipeline Local Shuffle 后,聚合算子计算结果错误的问题。[#38061](https://github.com/apache/doris/pull/38016) - -- 修复当聚合算子中存在相等的表达式时,可能出现的规划报错问题。[#36622](https://github.com/apache/doris/pull/36622) - -- 修复当聚合算子中存在 Lambda 表达式时,可能出现的规划报错问题。[#37285](https://github.com/apache/doris/pull/37285) - -- 修复了由窗口函数生成的字面量在优化为字面量时类型错误导致无法执行的问题。 [#37283](https://github.com/apache/doris/pull/37283) - -- 修复了聚合函数 `foreach combinator` 错误输出 Null 属性问题。[#37980](https://github.com/apache/doris/pull/37980) - - -- 修复了 acos 函数在参数为超越范围值的字面量时不能规划的问题。[#37996](https://github.com/apache/doris/pull/37996) - -- 修复当查询指定的同步物化视图时,显示指定查询分区导致规划报错的问题。[#36982](https://github.com/apache/doris/pull/36982) - -- 修复了在规划过程中偶尔出现 NPE 的问题。[#38024](https://github.com/apache/doris/pull/38024) - -### 查询引擎 - -- 修复 DELETE WHERE 语句中,在 DECIMAL 数据类型作为条件报错的问题。[#37801](https://github.com/apache/doris/pull/37801) - -- 修复查询执行结束,但是 BE 内存不释放的问题。[#37792](https://github.com/apache/doris/pull/37792) [#37297](https://github.com/apache/doris/pull/37297) - -- 修复在千级别 QPS 场景下,Audit Log 占用 FE 内存太多的问题。https://github.com/apache/doris/pull/37786 - -- 修复 sleep 函数在输入非法值时 BE Core 的问题。[#37681](https://github.com/apache/doris/pull/37681) - -- 修复执行过程中 `sync filter size meet error` 的问题。 [#37103](https://github.com/apache/doris/pull/37103) - -- 修复执行过程中,使用时区时结果不对的问题。[#37062](https://github.com/apache/doris/pull/37062) - -- 修复 `cast string` 到 `int` 时结果不对的问题。 [#36788](https://github.com/apache/doris/pull/36788) - -- 修复 Arrow Flight 协议在开启 Pipelinex 时查询报错的问题。 [#35804](https://github.com/apache/doris/pull/35804) - -- 修复 `cast string to date/datetime` 报错的问题。 [#35637](https://github.com/apache/doris/pull/35637) - -- 修复使用 `<=>` 做大表关联查询时 BE Core 的问题。 [#36263](https://github.com/apache/doris/pull/36263) - -### 存储管理 - -- 修复列更新写入时遇到 DELETE SIGN 数据不可见问题。[#36755](https://github.com/apache/doris/pull/36755) - -- 优化 Schema Change 期间 FE 的内存占用。[#36756](https://github.com/apache/doris/pull/36756) - -- 修复 BE 重启时事务没有 Abort 导致的 BE 下线卡住问题。[#36437](https://github.com/apache/doris/pull/36437) - -- 修复 NOT-NULL 到 NULL 类型变更的偶发报错问题。 [#36389](https://github.com/apache/doris/pull/36389) - -- 优化 BE 宕机时的副本修复调度。 [#36897](https://github.com/apache/doris/pull/36897) - -- 单个 BE 创建 Tablet 时支持 round-robin 选择磁盘。 [#36900](https://github.com/apache/doris/pull/36900) - -- 修复 Publish 慢导致的查询 -230 错误。 [#36222](https://github.com/apache/doris/pull/36222) - -- 优化 Partition Balance 的速度。 [#36976](https://github.com/apache/doris/pull/36976) - -- 使用 FD 数目和内存控制 Segment Cache 避免 FD 不足。 [#37035](https://github.com/apache/doris/pull/37035) - -- 修复 Clone 和 Alter 并发可能导致的副本丢失问题。 [#36858](https://github.com/apache/doris/pull/36858) - -- 修复不能调整列顺序问题。[#37226](https://github.com/apache/doris/pull/37226) - -- 禁止自增列的部分 Schema Change 操作。 [#37331](https://github.com/apache/doris/pull/37331) - -- 修复 Delete 操作报错不准确。 [#37374](https://github.com/apache/doris/pull/37374) - -- BE 侧 Trash 过期时间调整为一天。 [#37409](https://github.com/apache/doris/pull/37409) - -- 优化 Compaction 内存占用和调度。 [#37491](https://github.com/apache/doris/pull/37491) - -- 检查潜在的过大 Backup 导致 FE 重启的问题。[#37466](https://github.com/apache/doris/pull/37466) - -- 恢复动态分区删除策略以及交叉分区的行为到 2.1.3。[#37570](https://github.com/apache/doris/pull/37570) [#37506](https://github.com/apache/doris/pull/37506) - -- 修复 DELETE 谓词重部分 DECIMAL 报错问题。 [#37710](https://github.com/apache/doris/pull/37710) - -### 数据导入 - -- 修复导入时错误处理竞争导致的数据不可见问题。[#36744](https://github.com/apache/doris/pull/36744) - -- Stream Load 导入支持 `hhl_from_base64`。 [#36819](https://github.com/apache/doris/pull/36819) - -- 修复潜在的单表非常多 Tablet 导入失败时可能导致 FE OOM 的问题。 [#36944](https://github.com/apache/doris/pull/36944) - -- 修复 FE 主从切换时自增列可能重复的问题。[#36961](https://github.com/apache/doris/pull/36961) - -- 修复 INSERT INTO SELECT 自增列报错问题。 [#37029](https://github.com/apache/doris/pull/37029) - -- 降低数据下刷线程数,优化内存占用。 [#37092](https://github.com/apache/doris/pull/37092) - -- 优化 Routine Load 任务自动恢复和错误信息。 [#37371](https://github.com/apache/doris/pull/37371) - -- 增加 Routine Load 默认攒批大小。 [#37388](https://github.com/apache/doris/pull/37388) - -- 修复 Routine Load 在 Kafka EOF 过期的任务停止问题。[#37983](https://github.com/apache/doris/pull/37983) - -- 修复一流多表 Coredump。 [#37370](https://github.com/apache/doris/pull/37370) - -- 修复 Group Commit 内存估计不准导致的提前反压问题。[#37379](https://github.com/apache/doris/pull/37379) - -- 优化 Group Commit BE 侧线程占用。 [#37380](https://github.com/apache/doris/pull/37380) - -- 修复数据没有分区时没有错误 URL 的问题。 [#37401](https://github.com/apache/doris/pull/37401) - -- 修复导入时潜在的内存误操作问题。 [#38021](https://github.com/apache/doris/pull/38021) - -### 主键模型 - -- 降低主键表 Compaction 的内存占用。 [#36968](https://github.com/apache/doris/pull/36968) - -- 修复主键副本 Clone 失败时可能的重复数据问题。 [#37229](https://github.com/apache/doris/pull/37229) - -### 内存管理 - -- 修复 Jemalloc Cache 统计不准的问题。[#37464](https://github.com/apache/doris/pull/37464) - -- 修复在 K8s / CGroup 中不能正确获取内存大小的问题。 [#36966](https://github.com/apache/doris/pull/36966) - -### 权限管理 - -- 修复 Table Valued Function 引用 Resource 时没有鉴权的问题。 [#37132](https://github.com/apache/doris/pull/37132) - -- 修复 Show Role 语句中没有 Workload Group 权限的问题。 [#36032](https://github.com/apache/doris/pull/36032) - -- 修复创建 Row Policy 时,同时执行两条语句,导致 FE 重启失败的问题。[#37342](https://github.com/apache/doris/pull/37342) - -- 修复部分情况下,老版本升级后,因为 Row Policy 导致 FE 元数据回放失败的问题。[#37342](https://github.com/apache/doris/pull/37342) - -### 其他 - -- 修复计算节点参与内部表创建的问题。[#37961](https://github.com/apache/doris/pull/37961) - -- 修复 `enable_strong_read_consistency = true` 时从延迟问题。 [#37641](https://github.com/apache/doris/pull/37641) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.6.md deleted file mode 100644 index c5f9ad5712a2a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.6.md +++ /dev/null @@ -1,516 +0,0 @@ ---- -{ - "title": "Release 2.1.6", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.6 版本已于 2024 年 9 月 10 日正式发布。2.1.6 版本在湖仓一体、异步物化视图、半结构化数据管理持续升级改进,同时在查询优化器、执行引擎、存储管理、数据导入与导出以及权限管理等方面完成了若干修复。欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.6 版本已于 2024 年 9 月 10 日正式发布。**2.1.6 版本在湖仓一体、异步物化视图、半结构化数据管理持续升级改进,同时在查询优化器、执行引擎、存储管理、数据导入与导出以及权限管理等方面完成了若干修复。欢迎大家下载使用。 - -- 官网下载:https://doris.apache.org/download - -- GitHub 下载:https://github.com/apache/doris/releases/tag/2.1.6-rc04 - -## 行为变更 - -- 移除 `create repository` 命令中的 `delete_if_exists` 选项。[#38192](https://github.com/apache/doris/pull/38192) - -- 新增会话变量 `enable_prepared_stmt_audit_log`,用于控制 JDBC 预编译语句是否记录审计日志,默认不记录。[#38624](https://github.com/apache/doris/pull/38624) [#39009](https://github.com/apache/doris/pull/39009) - -- 采用文件描述符限制和内存限制来管理 Segment Cache。[#39689](https://github.com/apache/doris/pull/39689) - -- 当 `sys_log_mode` 配置项设置为 `BRIEF` 时,在日志中增加文件位置信息,以提供更详细的上下文。[#39571](https://github.com/apache/doris/pull/39571) - -- 将会话变量 `max_allowed_packet` 的默认值调整为 16MB,提高数据传输限制。[#38697](https://github.com/apache/doris/pull/38697) - -- 在单次请求中,若包含多个 SQL 语句,各语句间必须使用分号进行分隔,以增强语句的清晰度和执行效率。[#38670](https://github.com/apache/doris/pull/38670) - -- 现在支持 SQL 语句以分号开始,提供更灵活的语句书写方式。[#39399](https://github.com/apache/doris/pull/39399) - -- 在执行如 `show create table` 等语句时,类型格式与 MySQL 保持一致,提升与 MySQL 的兼容性。[#38012](https://github.com/apache/doris/pull/38012) - -- 当新优化器规划查询超时后,不再回退到旧优化器,以避免潜在的性能下降问题。[#39499](https://github.com/apache/doris/pull/39499) - -## 新功能 - -### Lakehouse - -- 实现 Iceberg 表的写回功能。 - - - 更多信息,请查看文档数据湖构建-[Iceberg](../../lakehouse/catalogs/iceberg-catalog) - -- 增强 SQL 拦截规则,支持对外表的拦截处理。 - - - 更多信息,请查看文档查询管理-[SQL 拦截](../../admin-manual/workload-management/sql-blocking) - -- 新增系统表`file_cache_statistics`,用于查看 BE 节点的数据缓存性能指标。 - - - 更多信息,请查看文档系统表-[file_cache_statistics](../../admin-manual/system-tables/information_schema/file_cache_statistics) - -### 异步物化视图 - -- 支持在 Insert 中进行透明改写。[#38115](https://github.com/apache/doris/pull/38115) - -- 支持对查询中存在 VARIANT 类型时的透明改写。[#37929](https://github.com/apache/doris/pull/37929) - -### 半结构化数据管理 - -- 支持 ARRAY MAP 类型到 JSON 类型的 CAST 转换功能。[#36548](https://github.com/apache/doris/pull/36548) - -- 引入`json_keys`函数,用于提取 JSON 中的键名。[#36411](https://github.com/apache/doris/pull/36411) - -- 支持在导入 JSON 时指定`json path`$``[#38213](https://github.com/apache/doris/pull/38213) - -- ARRAY / MAP / STRUCT 类型支持`replace_if_not_null`[#38304](https://github.com/apache/doris/pull/38304) - -- 允许调整 ARRAY / MAP / STRUCT 类型的列顺序。[#39210](https://github.com/apache/doris/pull/39210) - -- 新增`multi_match`函数,支持在多个字段中匹配关键词,并利用倒排索引加速查询。[#37722](https://github.com/apache/doris/pull/37722) - -### 查询优化器 - -- 完善 MySQL 协议返回列的信息,包括原始数据库名、表名、列名和别名。[#38126](https://github.com/apache/doris/pull/38126) - -- 增强聚合函数`group_concat`,支持同时使用`order by`和`distinct`进行复杂数据聚合。[#38080](https://github.com/apache/doris/pull/38080) - -- 改进了 SQL 缓存机制,支持通过注释区分不同的查询以复用缓存结果。[#40049](https://github.com/apache/doris/pull/40049) - -- 增强分区裁剪功能,支持在过滤条件中使用`date_trunc`和`date`函数。[#38025](https://github.com/apache/doris/pull/38025) [#38743](https://github.com/apache/doris/pull/38743) - -- 允许在表别名前使用数据库名作为限定名前缀。[#38640](https://github.com/apache/doris/pull/38640) - -- 支持 Hint 格式注释。[#39113](https://github.com/apache/doris/pull/39113) - -### 执行引擎 - -- `Group concat`函数现支持`distinct`和`order by`选项。[#38744](https://github.com/apache/doris/pull/38744) - -### Others - -- 新增系统表`table_properties`,便于用户查看和管理表的各项属性。 - - - 更多信息,请查看文档 [table_properties](../../admin-manual/system-tables/information_schema/table_properties/) -- 新增 FE 中死锁和慢锁检测功能。 - - - 更多信息,请查看文档 [FE 锁管理](../../admin-manual/trouble-shooting/frontend-lock-manager) - -## 改进提升 - -### 湖仓一体 - -- 革新外表元数据缓存机制。 - - - 更多信息,请查看文档 [元数据缓存](../../lakehouse/meta-cache.md) - -- 新增会话变量`keep_carriage_return`,默认关闭。读取 Hive Text 格式表时,默认将`\r\n`与`\n`均视为换行符。[#38099](https://github.com/apache/doris/pull/38099) - -- 优化 Parquet / ORC 文件读写内存统计。[#37257](https://github.com/apache/doris/pull/37257) - -- Paimon 表支持 IN/ NOT IN 谓词下推。[#38390](https://github.com/apache/doris/pull/38390) - -- 升级优化器,支持 Hudi 表的 Time Travel 语法。[#38591](https://github.com/apache/doris/pull/38591) - -- Kerberos 认证流程优化,提升安全认证效率与稳定性。[#37301](https://github.com/apache/doris/pull/37301) - -- 支持 Rename column 操作后读取 Hive 表。[#38809](https://github.com/apache/doris/pull/38809) - -- 提升外表分区列读取性能。[#38810](https://github.com/apache/doris/pull/38810) - -- 优化外表查询规划,优化数据分片合并策略,有效避免小分片对查询性能的影响。[#38964](https://github.com/apache/doris/pull/38964) - -- SHOW CREATE DATABASE / TABLE 新增 Location 等属性展示。[#39644](https://github.com/apache/doris/pull/39644) - -- MaxCompute Catalog 扩展支持复杂类型。[#39822](https://github.com/apache/doris/pull/39822) - -- 优化文件缓存加载策略,通过异步加载方式避免 BE 启动时间过长的问题。[#39036](https://github.com/apache/doris/pull/39036) - -- 升级文件缓存淘汰策略,有效管理长时间占用锁的资源。[#39721](https://github.com/apache/doris/pull/39721) - -### 异步物化视图 - -- 支持小时、周及季度级别的分区上卷构建。[#37678](https://github.com/apache/doris/pull/37678) - -- 基于 Hive 外表的物化视图,在刷新前自动更新元数据缓存,以保证每次刷新可以获取最新数据。[#38212](https://github.com/apache/doris/pull/38212) - -- 通过批量获取元数据,优化存算分离模式下的透明改写规划性能。[#39301 ](https://github.com/apache/doris/pull/39301) - -- 通过禁止重复枚举,进一步提升透明改写的规划性能。[#39541 ](https://github.com/apache/doris/pull/39541) - -- 优化基于 Hive 外表分区刷新物化视图的透明改写性能。[#38525](https://github.com/apache/doris/pull/38525) - -### 半结构化数据管理 - -- 优化 TOPN 查询内存分配,显著提升查询性能。[#37429](https://github.com/apache/doris/pull/37429) - -- 优化倒排索引字符串处理性能。[#37395](https://github.com/apache/doris/pull/37395) - -- 优化倒排索引在 MOW 表中的性能。[#37428](https://github.com/apache/doris/pull/37428) - -- 建表时支持指定行存 `page_size`,以控制压缩效果。[#37145](https://github.com/apache/doris/pull/37145) - -### 查询优化器 - -- 调整 Mark Join 行数估计算法,提高基数估算准确性。[#38270](https://github.com/apache/doris/pull/38270) - -- 优化 Semi / Anti Join 代价估计算法,能够正确选择最佳 Join 顺序。[#37951](https://github.com/apache/doris/pull/37951) - -- 调整部分列无统计信息情况下的过滤估计算法,使估算更精准。[#39592](https://github.com/apache/doris/pull/39592) - -- 改进 Set Operation 算子 Instance 计算逻辑,防止在极端情况下并行度不足的问题。[#39999](https://github.com/apache/doris/pull/39999) - -- 优化 Bucket Shuffle 使用策略,数据打散不充分时也能获得更好的性能。[#36784](https://github.com/apache/doris/pull/36784) - -- 窗口函数数据提前过滤,支持单投影中存在多窗口函数的情况。[#38393](https://github.com/apache/doris/pull/38393) - -- 过滤条件含 `NullLiteral` 时,智能折叠为 False,转换为 `EmptySet`,减少不必要的数据扫描量。[#38135](https://github.com/apache/doris/pull/38135) - -- 扩大谓词推导适用范围,在特定模式的查询下能够大幅减少数据扫描量。[#37314](https://github.com/apache/doris/pull/37314) - -- 在分区裁剪中支持部分短路计算逻辑,以提升分区裁剪性能。在特定场景下,性能提升超过 100%。[#38191](https://github.com/apache/doris/pull/38191) - -- 在用户变量中,支持计算任意的标量函数。[#39144 ](https://github.com/apache/doris/pull/39144) - -- 当查询中存在别名冲突时,报错信息能够保持与 MySQL 一致。[#38104 ](https://github.com/apache/doris/pull/38104) - -### 执行引擎 - -- 实现 AggState 从 2.1 到 3.x 版本的兼容,并解决了 coredump 问题。[#37104](https://github.com/apache/doris/pull/37104) - -- 重构无 Join 操作时的 Local Shuffle 策略选择机制。[#37282](https://github.com/apache/doris/pull/37282) - -- 将内部表查询的 scanner 调整为异步模式,以防止查询内部表时出现卡顿。[#38403](https://github.com/apache/doris/pull/38403) - -- 优化 Join 算子在构建 Hash 表时的 Block Merge 流程。[#37471](https://github.com/apache/doris/pull/37471) - -- 缩短 MultiCast 持有锁的时间。[#37462](https://github.com/apache/doris/pull/37462) - -- 优化 gRPC 的 keepAliveTime 设置并增加了链接监测机制,降低了因 RPC 错误导致的查询失败率。[#37304](https://github.com/apache/doris/pull/37304) - -- 当内存超出限制时,将清理 `jemalloc` 中的所有 Dirty Pages。[#37164](https://github.com/apache/doris/pull/37164) - -- 提升 `aes_encrypt`/`decrypt` 函数对常量类型的处理效率。[#37194](https://github.com/apache/doris/pull/37194) - -- 加快 `json_extract` 函数对常量数据的处理速度。[#36927](https://github.com/apache/doris/pull/36927) - -- 提高 `ParseUrl` 函数处理常量数据的性能。[#36882](https://github.com/apache/doris/pull/36882) - -### 存储管理 - -**备份恢复 / 跨集群同步** - -- Restore 功能现已支持删除多余的 Tablet 和分区选项。[#39363](https://github.com/apache/doris/pull/39363) - -- 在创建 Repository 时,支持检查存储连通性。[#39538](https://github.com/apache/doris/pull/39538) - -- Binlog 支持 Drop 表操作,使 CCR 能够支持 Drop 表的增量同步。[#38541](https://github.com/apache/doris/pull/38541) - -**Compaction** - -- 改进高优 Compaction 任务不受并发控制限制的问题。[#38189](https://github.com/apache/doris/pull/38189) - -- 根据数据特性自动调整 Compaction 的内存消耗。[#37486](https://github.com/apache/doris/pull/37486) - -- 修复顺序数据优化策略可能引发的聚合表或 MOR UNIQUE 表数据准确性问题。[#38299](https://github.com/apache/doris/pull/38299) - -- 优化补副本期间 Compaction 选择 rowset 的策略,以避免触发 -235 错误。[#39262](https://github.com/apache/doris/pull/39262) - -**Merge-on-Write** - -- 解决了列更新和 Compaction 并发时列更新慢的问题。[#38682](https://github.com/apache/doris/pull/38682) - -- 修复一次导入大量数据时,Segcompaction 可能导致 MOW 数据不正确的问题。[#38992](https://github.com/apache/doris/pull/38992) [#39707](https://github.com/apache/doris/pull/39707) - -- 解决 BE 重启后,可能导致列更新数据丢失的问题。[#39035](https://github.com/apache/doris/pull/39035) - -**其他** - -- 增加了 FE 配置,用于控制冷热分层下查询是否优先访问本地数据的副本。[#38322](https://github.com/apache/doris/pull/38322) - -- 解决了过期的 BE 汇报消息未包含新创建 Tablet 的问题。[#38839 ](https://github.com/apache/doris/pull/38839)[#39605](https://github.com/apache/doris/pull/39605) - -- 优化副本调度优先级策略,优先调度缺少数据的副本。[#38884](https://github.com/apache/doris/pull/38884) - -- 对于有未完成 ALTER JOB 的 Tablet,不进行均衡调度。[#39202](https://github.com/apache/doris/pull/39202) - -- List 分区方式的表现支持修改分桶数。[#39688](https://github.com/apache/doris/pull/39688) - -- 优先选择在线的磁盘服务进行查询。[#39654](https://github.com/apache/doris/pull/39654) - -- 改进了同步物化视图的 Base 表不支持删除时的提示信息。[#39857](https://github.com/apache/doris/pull/39857) - -- 改进了单列超过 4G 时的报错信息。[#39897](https://github.com/apache/doris/pull/39897) - -- 修复了 Insert 语句遇到 Plan 错误时未正确中止事务的问题。[#38260](https://github.com/apache/doris/pull/38260) - -- 修复了 SSL 链接关闭时的异常问题。[#38677](https://github.com/apache/doris/pull/38677) - -- 修复了使用 Label 中止事务时未持有表锁的问题。[#38842](https://github.com/apache/doris/pull/38842) - -- 修复了 Gson Pretty 导致 Image 过大的问题。[#39135](https://github.com/apache/doris/pull/39135) - -- 修复了 CREAT TABLE 语句在新优化器下未检查 Bucket 为 0 的问题。[#38999](https://github.com/apache/doris/pull/38999) - -- 修复了 DELETE 条件谓词中包含中文列时报错的问题。[#39500](https://github.com/apache/doris/pull/39500) - -- 修复了分区均衡模式下频繁均衡 Tablet 的问题。[#39606](https://github.com/apache/doris/pull/39606) - -- 修复了分区丢失 Storage Policy 属性的问题。[#39677](https://github.com/apache/doris/pull/39677) - -- 修复了事务内导入多个表时统计信息不正确的问题。[#39548](https://github.com/apache/doris/pull/39548) - -- 修复了 Random 分桶表删除时报错的问题。[#39830](https://github.com/apache/doris/pull/39830) - -- 修复了 UDF 不存在导致 FE 无法启动的问题。[#39868](https://github.com/apache/doris/pull/39868) - -- 修复了 FE 主从 Last Failed Version 不一致的问题。[#39947](https://github.com/apache/doris/pull/39947) - -- 修复了 Schema Change Job 被取消时,相关 Tablet 可能仍处于 Schema Change 状态的问题。[#39327](https://github.com/apache/doris/pull/39327) - -- 修复了单个语句修改类型和列顺序 SC 时出现的报错问题。[#39107](https://github.com/apache/doris/pull/39107) - -### 数据导入 - -- 改进了导入发生 -238 错误时的错误信息提示。[#39182](https://github.com/apache/doris/pull/39182) - -- 实现在 Restore 分区时,其他分区可以同时进行导入。[#39915](https://github.com/apache/doris/pull/39915) - -- 优化了 Group Commit FE 选择 BE 的策略。[#37830](https://github.com/apache/doris/pull/37830) [#39010](https://github.com/apache/doris/pull/39010) - -- 对于一些常见的 Stream Load 错误信息,避免了程序栈的打印,简化了错误处理。[#38418](https://github.com/apache/doris/pull/38418) - -- 改进下线的 BE 可能影响导入出错的问题。[#38256](https://github.com/apache/doris/pull/38256) - -### 权限管理 - -- 优化了开启 Ranger 鉴权插件后的访问性能。[#38575](https://github.com/apache/doris/pull/38575) - -- 优化了 Refresh Catalog / Database / Table 操作的权限策略,用户仅需 SHOW 权限即可执行此操作。[#39008](https://github.com/apache/doris/pull/39008) - -## Bug 修复 - -### 湖仓一体 - -- 修复切换 Catalog 时可能出现的数据库找不到问题。[#38114](https://github.com/apache/doris/pull/38114) - -- 解决了读取 S3 上不存在的数据时出现的异常报错。[#38253](https://github.com/apache/doris/pull/38253) - -- 修正导出操作时,指定异常路径可能导致导出位置异常的问题。[#38602](https://github.com/apache/doris/pull/38602) - -- 修复 Paimon 表时间列时区问题。[#37716](https://github.com/apache/doris/pull/37716) - -- 临时关闭 Parquet PageIndex 功能以避免部分错误行为。 - -- 修复外表查询时,错误选取黑名单中 Backend 节点的问题。[#38984](https://github.com/apache/doris/pull/38984) - -- 解决读取 Parquet Struct 列类型中缺失子列导致查询错误的问题。[#39192](https://github.com/apache/doris/pull/39192) - -- 修复 JDBC Catalog 的谓词下推问题。[#39082](https://github.com/apache/doris/pull/39082) - -- 修正 Parquet 格式读取时,历史格式导致查询结果错误的问题。[#39375](https://github.com/apache/doris/pull/39375) - -- 增强了 Oracle JDBC Catalog 对 OJDBC6 驱动的兼容性。[#39408](https://github.com/apache/doris/pull/39408) - -- 解决了 Refresh Catalog/Database/Table 操作可能导致的 FE 内存泄漏问题。[#39186](https://github.com/apache/doris/pull/39186) [#39871](https://github.com/apache/doris/pull/39871) - -- 修复了 JDBC Catalog 在某些情况下的线程泄漏问题。 [#39666 ](https://github.com/apache/doris/pull/39666)[#39582](https://github.com/apache/doris/pull/39582) - -- 修复开启 Hive Metastore 事件订阅后,可能出现事件处理失败的问题。[#39239](https://github.com/apache/doris/pull/39239) - -- 禁止读取自定义 Escape CHAR 和 NULL Format 的 Hive Text 格式表,防止数据错误。[#39869](https://github.com/apache/doris/pull/39869) - -- 修复某些情况下,无法访问通过 Iceberg API 创建的 Iceberg 表的问题。[#39203](https://github.com/apache/doris/pull/39203) - -- 修复无法读取存储在开启高可用的 HDFS 集群上的 Paimon 表的问题。[#39876](https://github.com/apache/doris/pull/39876) - -- 修复开启文件缓存后,读取 Paimon 表 Deletion Vector 可能导致错误的问题。[#39875](https://github.com/apache/doris/pull/39875) - -- 修复某些情况下读取 Parquet 可能导致死锁的问题 [#39945](https://github.com/apache/doris/pull/39945) - -### 异步物化视图 - -- 修复无法在 Follower FE 上使用 `show create materialized view` 命令的问题。[#38794](https://github.com/apache/doris/pull/38794) - -- 统一异步物化视图在元数据中的对象类型,使其在数据工具中正常显示。[#38797](https://github.com/apache/doris/pull/38797) - -- 修复嵌套异步物化视图总是进行全量刷新的问题。[#38698](https://github.com/apache/doris/pull/38698) - -- 修正 Cancel 任务在重启 FE 后状态可能显示为 running 的问题。 [#39424](https://github.com/apache/doris/pull/39424) - -- 修复错误使用上下文,导致刷新物化视图任务可能非预期失败的问题。[#39690](https://github.com/apache/doris/pull/39690) - -- 修复基于外表创建异步物化视图时,VARCHAR 类型因长度不合理导致写入失败的问题。[#37668](https://github.com/apache/doris/pull/37668) - -- 修复 FE 重启或 Catalog 重建后,基于外表的异步物化视图可能失效的问题。[#39355](https://github.com/apache/doris/pull/39355) - -- 禁止 List 分区的物化视图使用分区上卷,以防止生成错误数据。[#38124](https://github.com/apache/doris/pull/38124) - -- 修复在聚合上卷透明改写时,SELECT List 中存在字面量导致的结果错误问题。[#38958](https://github.com/apache/doris/pull/38958) - -- 修复当查询中存在形如`a = a`的过滤条件时,透明改写可能出错的问题。[#39629](https://github.com/apache/doris/pull/39629) - -- 修复透明改写直查外表无法成功的问题。[#39041](https://github.com/apache/doris/pull/39041) - -### 半结构化数据管理 - -- 删除老优化器上 `PreparedStatement` 的支持。[#39465](https://github.com/apache/doris/pull/39465) - -- 修复 JSON 转义字符处理的问题。[#37251 ](https://github.com/apache/doris/pull/37251) - -- 修复 JSON 字段重复处理的问题。 [#38490](https://github.com/apache/doris/pull/38490) - -- 修复部分 ARRAY MAP 函数的问题。[#39307](https://github.com/apache/doris/pull/39307) [ #39699 ](https://github.com/apache/doris/pull/39699) [#39757](https://github.com/apache/doris/pull/39757) - -- 修复倒排索引查询和 LIKE 查询复杂组合的问题。[#36687](https://github.com/apache/doris/pull/36687) - -### 查询优化器 - -- 修复分区过滤条件中存在 `or` 时,可能导致分区裁剪错误的问题。[#38897 ](https://github.com/apache/doris/pull/38897) - -- 修复存在复杂表达式时,可能导致的分区裁剪错误的问题。[#39298](https://github.com/apache/doris/pull/39298) - -- 修复 AGG_STATE 类型中的子类型,Nullable 可能规划不正确导致执行报错的问题。[#37489](https://github.com/apache/doris/pull/37489) - -- 修复 Set Operation 算子 Nullable 可能规划不正确,导致执行报错的问题。[#39109](https://github.com/apache/doris/pull/39109) - -- 修复 Intersect 算子执行优先级不正确的问题。 [#39095](https://github.com/apache/doris/pull/39095) - -- 修复当查询中存在最大合法日期字面量时,可能出现 NPE 的问题。[#39482](https://github.com/apache/doris/pull/39482) - -- 修复偶现的规划报错,导致的执行时报错 Slot 不合法的问题。[#39640](https://github.com/apache/doris/pull/39640) - -- 修复重复引用 CTE 中的列,可能导致结果缺少部分列数据的问题。[#39850](https://github.com/apache/doris/pull/39850) - -- 修复在查询中存在 CASE WHEN 时,偶现的规划报错问题。[#38491](https://github.com/apache/doris/pull/38491) - -- 修复不能将 IP 类型隐式转换为 STRING 类型的问题。[#39318](https://github.com/apache/doris/pull/39318) - -- 修复在使用多维聚合时,当 SELECT List 中存在相同列和其别名时,可能出现的规划报错问题。[#38166](https://github.com/apache/doris/pull/38166) - -- 修复使用 BE 常量折叠时,处理 BOOLEAN 类型可能不正确的问题。[#39019](https://github.com/apache/doris/pull/39019) - -- 修复在表达式中存在 `default_cluster:` 作为 Database 名称前缀导致的规划报错问题。[#39114](https://github.com/apache/doris/pull/39114) - -- 修复 Insert Into 可能导致的死锁问题。[#38660](https://github.com/apache/doris/pull/38660) - -- 修复没有在规划全过程持有表锁导致可能出现规划报错的问题。 [#38950](https://github.com/apache/doris/pull/38950) - -- 修复创建表时不能正确处理 CHAR(0), VARCHAR(0) 的问题。[#38427](https://github.com/apache/doris/pull/38427) - -- 修复 SHOW CREAT TABLE 可能错误的显示出隐藏列的问题。[#38796](https://github.com/apache/doris/pull/38796) - -- 修复创建表时没有禁止使用和隐藏列同名列的问题。 [#38796](https://github.com/apache/doris/pull/38796) - -- 修复在执行 INSERT INTO AS SELECT 时,如果存在 CTE,偶现的规划报错问题。[#38526](https://github.com/apache/doris/pull/38526) - -- 修复 INSERT INTO VALUES 无法自动填充 NULL 默认值的问题。[#39122](https://github.com/apache/doris/pull/39122) - -- 修复在 DELETE 中使用 CTE,但是没有使用 USING 时,导致的 NPE 问题。[#39379](https://github.com/apache/doris/pull/39379) - -- 修复对随机分布的聚合模型表执行删除操作会失败的问题。[#37985](https://github.com/apache/doris/pull/37985) - -### 执行引擎 - -- 修复多个场景下,Pipeline 执行引擎被卡顿,导致查询不结束的问题。[#38657](https://github.com/apache/doris/pull/38657) [#38206](https://github.com/apache/doris/pull/38206) [#38885](https://github.com/apache/doris/pull/38885) - -- 修复了 NULL 和非 NULL 列在差集计算时导致的 Coredump 问题。[#38737](https://github.com/apache/doris/pull/38737) - -- 修复了 `width_bucket` 函数结果错误的问题。[#37892](https://github.com/apache/doris/pull/37892) - -- 修复了当单行数据很大且返回结果集也很大时(超过 2GB)查询报错的问题。[#37990](https://github.com/apache/doris/pull/37990) - -- 修复了 `stddev` 在 `DecimalV2` 类型下结果错误的问题。[#38731](https://github.com/apache/doris/pull/38731) - -- 修复了 `MULTI_MATCH_ANY` 函数导致的 Coredump 问题。[#37959](https://github.com/apache/doris/pull/37959) - -- 修复了 INSERT OVERWRITE AUTO PARTITION 导致事务回滚的问题。[#38103](https://github.com/apache/doris/pull/38103) - -- 修复了 `convert_tz` 函数结果错误的问题。[#37358](https://github.com/apache/doris/pull/37358) [#38764](https://github.com/apache/doris/pull/38764) - -- 修复了 `collect_set` 函数结合窗口函数使用时 Coredump 的问题。[#38234](https://github.com/apache/doris/pull/38234) - -- 修复了 `mod` 函数在异常输入时导致的 Coredump 问题。[#37999](https://github.com/apache/doris/pull/37999) - -- 修复了多线程下执行相同表达式可能导致 Java UDF 结果错误的问题。[#38612](https://github.com/apache/doris/pull/38612) - -- 修复了 `conv` 函数返回类型错误导致的溢出问题。[#38001](https://github.com/apache/doris/pull/38001) - -- 修复了 `histogram` 函数结果不稳定的问题。[#38608](https://github.com/apache/doris/pull/38608) - -### 存储管理 - -- 修复备份恢复后,写入数据时可能出现不可读的问题。[#38343](https://github.com/apache/doris/pull/38343) - -- 修复跨版本 Restore Version 使用问题。[#38396](https://github.com/apache/doris/pull/38396) - -- 修复 Backup 失败时 Job 没有取消的问题。[#38993](https://github.com/apache/doris/pull/38993) - -- 修复 2.1.4 升级到 2.1.5 CCR 报 NPE,导致 FE 不能启动的问题。[#39910](https://github.com/apache/doris/pull/39910) - -- 修复 Restore 之后视图和物化视图不能使用的问题。[#38072](https://github.com/apache/doris/pull/38072) [#39848](https://github.com/apache/doris/pull/39848) - -### 数据导入 - -**Routine Load** - -- 修复 Routine Load 一流多表可能得内存泄露的问题。 [#38824](https://github.com/apache/doris/pull/38824) - -- 修复 Routine Load 包围符和转义符不生效的问题。[#38825](https://github.com/apache/doris/pull/38825) - -- 修复 Routine Load 任务名包含大写字母时 `show routineload` 结果不正确的问题。[#38826](https://github.com/apache/doris/pull/38826) - -- 修复改变 Routine Load Topic 时没有重置 Offset Cache 的问题。[#38474](https://github.com/apache/doris/pull/38474) - -- 修复并发情况下 `show routineload` 可能触发异常的问题。[#39525](https://github.com/apache/doris/pull/39525) - -- 修复 Routine Load 可能重复导入数据的问题。[#39526](https://github.com/apache/doris/pull/39526) - -**Group Commit** - -- 修复 JDBC 方式下打开 Group Commit 时 setNull 导致的数据报错问题 [#38276](https://github.com/apache/doris/pull/38276) - -- 修复打开 `group commit insert` 发往非 Master FE 时可能导致 NPE 问题 [#38345](https://github.com/apache/doris/pull/38345) - -- 修复 Group Commit 内部写数据错误处理不正确的问题。[#38997](https://github.com/apache/doris/pull/38997) - -- 修复 Group Commit 执行规划失败时可能触发的 Coredump。[#39396](https://github.com/apache/doris/pull/39396) - -**其它** - -- 修复并发导入 Auto Partition 表可能报 Tablet 不存在的问题。[#38793](https://github.com/apache/doris/pull/38793) - -- 修复可能的 Load Stream 泄露问题。[#39039](https://github.com/apache/doris/pull/39039) - -- 修复 INSERT INTO SELECT 没有数据时开启事务的问题。[#39108](https://github.com/apache/doris/pull/39108) - -- 使用 Memtable 前移时忽略单副本导入的配置。[#39154](https://github.com/apache/doris/pull/39154) - -- 修复后台导入 `stream load record` 遇见 Database 删除时异常中止的问题。 [#39527](https://github.com/apache/doris/pull/39527) - -- 修复 Strict Mode 模式下,出现数据错误时错误信息提示不准确的问题。[#39587](https://github.com/apache/doris/pull/39587) - -- 修复 Stream Load 遇见错误数据不返回 Error URL 的问题。[#38417](https://github.com/apache/doris/pull/38417) - -- 修复 Insert Overwrite 和 Auto Partition 配合使用的问题。[#38442](https://github.com/apache/doris/pull/38442) - -- 修复 CSV 遇到行分隔符被包围符包围数据时解析错误的问题。[#38445](https://github.com/apache/doris/pull/38445) - -### 数据导出 - -- 修复导出操作中指定 `delete_existing_files` 属性后,可能会重复删除导出数据的问题。[#39304](https://github.com/apache/doris/pull/39304) - -### 权限管理 - -- 修复创建物化视图时,错误地要求拥有 ALTER TABLE 的权限的问题。[#38011](https://github.com/apache/doris/pull/38011) - -- 修复 `show routine load` 时,Database 显式为空的问题。[#38365](https://github.com/apache/doris/pull/38365) - -- 修复 `create table like` 错误的要求拥有对原表的创建权限的问题。[#37879](https://github.com/apache/doris/pull/37879) - -- 修复赋权操作没有检查对象是否存在的问题。[#39597](https://github.com/apache/doris/pull/39597) - -## 版本升级说明 - -Doris 升级请遵守不要跨两个二位版本升级的原则,依次往后升级。 - -比如从 0.15.x 升级到 2.0.x 版本,则建议先升级至 1.1 最新版本,然后升级到最新的 1.2 版本,最后升级到最新的 2.0 版本,以此类推。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.7.md deleted file mode 100644 index 464d751ac189d..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.7.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -{ - "title": "Release 2.1.7", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.7 版本已于 2024 年 11 月 10 日正式发布。2.1.7 版本持续升级改进,同时在湖仓一体、异步物化视图、半结构化数据管理、查询优化器、执行引擎、存储管理、以及权限管理等方面完成了若干修复。欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.7 版本已于 2024 年 11 月 10 日正式发布。**2.1.7 版本持续升级改进,同时在湖仓一体、异步物化视图、半结构化数据管理、查询优化器、执行引擎、存储管理、以及权限管理等方面完成了若干修复。欢迎大家下载使用。 - -- [立即下载](https://doris.apache.org/download) -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.7-rc03) - -## 行为变更 - -- 以下全局变量会被强制设置到下列默认值 - - enable_nereids_dml: true - - enable_nereids_dml_with_pipeline: true - - enable_nereids_planner: true - - enable_fallback_to_original_planner: true - - enable_pipeline_x_engine: true -- 审计日志增加了新的列 [#42262](https://github.com/apache/doris/pull/42262) - - 更多信息,请参考[管理指南](../../admin-manual/audit-plugin) - -## 新功能 - -### 异步物化视图 - -- 异步物化视图增加了一个属性 use_for_rewrite 用于控制是否参与透明改写 [#40332](https://github.com/apache/doris/pull/40332) - -### 查询执行引擎 - -- 在 Profile 中输出变更的 session variable 列表。[#41016 ](https://github.com/apache/doris/pull/41016) -- 增加了`trim_in`、`ltrim_in` 和 `rtrim_in` 函数的支持。[#42641](https://github.com/apache/doris/pull/42641) -- 增加了一些 URL 函数,包括对 `to``p_level_domain`、`first_significant_subdomain` 、`cut_to_first_significant_subdomain` 支持。[#42916](https://github.com/apache/doris/pull/42916) -- 增加了 `bit_set` 函数。[#42099](https://github.com/apache/doris/pull/42099) -- 增加了`count_substrings` 函数。[#42055](https://github.com/apache/doris/pull/42055) -- 增加 `translate` 和 `url_encode` 函数。[#41051](https://github.com/apache/doris/pull/41051) -- 增加 `normal_cdf`, `to_iso8601`, `from_iso8601_date` 函数。[ #40695](https://github.com/apache/doris/pull/40695) - - -### 存储管理 - -- 增加了 `information_schema.table_options` 和 `information_schema.``table_properties` 系统表,支持查询建表时设置的一些属性。[#34384](https://github.com/apache/doris/pull/34384) - - 更多信息,请参考系统表: - - [table_options](../../admin-manual/system-tables/information_schema/table_options) - - [table_properties](../../admin-manual/system-tables/information_schema/table_properties) -- 支持 `bitmap_empty` 作为默认值。[#40364](https://github.com/apache/doris/pull/40364) -- 增加了一个新的 Session 变量`require_sequence_in_insert` 来控制向 Unique Key 表进行`insert into select` 写入时,是否必须提供 Sequence 列。[#41655](https://github.com/apache/doris/pull/41655) - -### 其他 - -允许在 BE WebUI 页面生成火焰图。[#41044](https://github.com/apache/doris/pull/41044) - -## 改进提升 - -### 湖仓一体 - -- 支持写入数据到 Hive Text 格式表。[#40537](https://github.com/apache/doris/pull/40537) - - 更多信息,请参考[使用 Hive 构建数据湖](../../lakehouse/catalogs/hive-catalog)文档 -- 使用 MaxCompute Open Storage API 访问 MaxCompute 数据。[#41610](https://github.com/apache/doris/pull/41610) - - 更多信息,请参考 [MaxCompute](../../lakehouse/catalogs/maxcompute-catalog) 文档 -- 支持 Paimon DLF Catalog。[#41694](https://github.com/apache/doris/pull/41694) - - 更多信息,请参考 [Paimon Catalog](../../lakehouse/catalogs/paimon-catalog) 文档 -- 新增语法 `table$partitions` 语法支持直接查询 Hive 分区信息 [#41230](https://github.com/apache/doris/pull/41230) - - 更多信息,请参考[通过 Hive 分析数据湖](../../lakehouse/catalogs/hive-catalog)文档 -- 支持 brotli 压缩格式的 Parquet 文件读取。[#42162](https://github.com/apache/doris/pull/42162) -- 支持读取 Parquet 文件中的 DECIMAL 256 类型。[#42241](https://github.com/apache/doris/pull/42241) -- 支持读取 OpenCsvSerde 格式的 Hive 表。[#42939](https://github.com/apache/doris/pull/42939) - -### 异步物化视图 - -- 细化了异步物化视图中构建时锁持有的粒度。[#40402](https://github.com/apache/doris/pull/40402) [#41010](https://github.com/apache/doris/pull/41010) - -### 查询优化器 - -- 优化了极端情况下统计信息收集和使用的准确性,以提升规划稳定性。[#40457](https://github.com/apache/doris/pull/40457) -- 现在可以在更多情况下生成 Runtime Filter,以提升查询性能。 [#40815](https://github.com/apache/doris/pull/40815) -- 提升数值,日期和字符串函数的常量折叠能力,以提升查询性能。[#40820 ](https://github.com/apache/doris/pull/40820) -- 优化了列裁剪的算法,以提升查询性能。[#41548](https://github.com/apache/doris/pull/41548) - -### 查询执行引擎 - -- 支持并行的 Prepare 降低短查询的耗时。[#40270](https://github.com/apache/doris/pull/40270) -- 修正了 Profile 中一些 Counter 的名字,保持跟审计日志一致。[#41993](https://github.com/apache/doris/pull/41993) -- 增加了新的 Local Shuffle 规则,使得部分查询更快。[#40637](https://github.com/apache/doris/pull/40637) - -### 存储管理 - -- Show Partitions 命令支持显示 Commit Version。 [#28274](https://github.com/apache/doris/pull/28274) -- 建表时检查不合理的 Partition EXPR。[#40158](https://github.com/apache/doris/pull/40158) -- 优化 Routine Load EOF 时的调度逻辑。[#40509](https://github.com/apache/doris/pull/40509) -- Routine Load 感知 Schema 变化。[#40508](https://github.com/apache/doris/pull/40508) -- 优化 Routine Load Task 超时逻辑。[#41135](https://github.com/apache/doris/pull/41135) - -### 其他 - -- 支持通过 BE 配置关闭 BRPC 的内置服务端口。[#41047](https://github.com/apache/doris/pull/41047) -- 修复审计日志缺失字段以及重复记录的问题。[#41047](https://github.com/apache/doris/pull/43015) - -## Bug 修复 - -### 湖仓一体 - -- 修复了 INSERT OVERWRITE 的行为跟 Hive 不一致的问题。[#39840](https://github.com/apache/doris/pull/39840) -- 清理临时创建的文件夹,解决 HDFS 上空文件夹太多的问题。[#40424](https://github.com/apache/doris/pull/40424) -- 修复某些情况下,使用 JDBC Catalog 导致 FE 内存泄露的问题。[#40923](https://github.com/apache/doris/pull/40923) -- 修复某些情况下,使用 JDBC Catalog 导致 BE 内存泄露的问题。[#41266](https://github.com/apache/doris/pull/41266) -- 修复某些情况下,读取 Snappy 压缩格式错误的问题。[#40862](https://github.com/apache/doris/pull/40862) -- 修复某些情况下,FE 端 FileSystem 可能泄露的问题。[#41108](https://github.com/apache/doris/pull/41108) -- 修复某些情况下,通过 EXPLAIN VERBOSE 查看外表执行计划可能导致空指针的问题。[#41231](https://github.com/apache/doris/pull/41231) -- 修复无法读取 Paimon parquet 格式表的问题。[#41487](https://github.com/apache/doris/pull/41487) -- 修复 JDBC Oracle Catalog 兼容性改动引入的性能问题。[#41407](https://github.com/apache/doris/pull/41407) -- 禁止下推隐式转换后的谓词条件已解决 JDBC Catalog 某些情况下查询结果不正确的问题。[#42242](https://github.com/apache/doris/pull/42242) -- 修复 External Catalog 中表名大小写访问异常的一些问题。[#42261](https://github.com/apache/doris/pull/42261) - -### 异步物化视图 - -- 修复用户指定的 Start Time 不生效的问题。[#39573](https://github.com/apache/doris/pull/39573) -- 修复嵌套物化视图不刷新的问题。[#40433](https://github.com/apache/doris/pull/40433) -- 修复删除重建基表后,物化视图可能不刷新的问题。[#41762](https://github.com/apache/doris/pull/41762) -- 修复分区补偿改写可能导致结果错误的问题。[#40803](https://github.com/apache/doris/pull/40803) -- 当 `sql_select_limit` 设置时,改写结果可能错误的问题。[#40106](https://github.com/apache/doris/pull/40106) - -### 半结构化管理 - -- 修复了索引文件句柄泄露的问题。[#41915](https://github.com/apache/doris/pull/41915) -- 修复了特殊情况下倒排索引 `count()` 不准确的问题。[#41127](https://github.com/apache/doris/pull/41127) -- 修复了未开启 Light Schema Change 时 Variant 异常的问题。[#40908](https://github.com/apache/doris/pull/40908) -- 修复了 Variant 返回数组时内存泄漏的问题。[#41339](https://github.com/apache/doris/pull/41339) - -### 查询优化器 - -- 修正了外表查询时,可能存在过滤条件 nullable 计算错误,导致执行异常的问题。[#41014](https://github.com/apache/doris/pull/41014) -- 修复范围比较表达式优化可能发生错误的问题。[#41356](https://github.com/apache/doris/pull/41356) - -### 查询执行引擎 - -- `match_regexp` 函数不能正确处理空字符串的问题。[#39503](https://github.com/apache/doris/pull/39503) -- 解决在高并发场景下,Scanner 线程池卡死的问题。[#40495](https://github.com/apache/doris/pull/40495) -- 修复了 `data_floor` 函数结果错误的问题。[#41948](https://github.com/apache/doris/pull/41948) -- 修复了部分场景下,Cancel 消息不正确的问题。[#41798](https://github.com/apache/doris/pull/41798) -- 修复 Arrow Flight 打印太多的 Warn 日志的问题。[#41770] (https://github.com/apache/doris/pull/41770) -- 解决部分场景下 Runtime Filter 发送失败的问题。[#41698](https://github.com/apache/doris/pull/41698) -- 修复了一些系统表查询的时候不能正常结束或者卡住的问题。[#41592](https://github.com/apache/doris/pull/41592) -- 修复了窗口函数结果不正确的问题。[#40761](https://github.com/apache/doris/pull/40761) -- 修复 ENCRYPT 和 DECRYPT 函数导致 BE Core 的问题。[#40726](https://github.com/apache/doris/pull/40726) -- 修复 CONV 函数结果错误的问题。[#40530](https://github.com/apache/doris/pull/40530) - -### 存储管理 - -- Memtable 前移在多副本情况下,有机器宕机时导入失败的问题。[#38003](https://github.com/apache/doris/pull/38003) -- 导入过程中,Memtable 在 Flush 阶段时,统计的内存不准确。[#39536](https://github.com/apache/doris/pull/39536) -- 修复 Memtable 前移多副本容错的问题。[#40477](https://github.com/apache/doris/pull/40477) -- 修复 Memtable 前移 bvar 统计不准的问题。[#40985](https://github.com/apache/doris/pull/40985) -- 修复 s3 Load 进度汇报不准的问题。[#40987](https://github.com/apache/doris/pull/40987) - -### 权限管理 - -- 修复了 SHOW COLUMNS, SHOW SYNC, SHOW DATA FROM DB.TABLE 相关的权限问题。 [#39726](https://github.com/apache/doris/pull/39726) - -### Others - -- 修复 2.0 版本的审计日志插件在 2.1 版本无法使用的问题[#41400](https://github.com/apache/doris/pull/41400) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.8.md deleted file mode 100644 index 24edf0cf49b59..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.8.md +++ /dev/null @@ -1,181 +0,0 @@ ---- -{ - "title": "Release 2.1.8", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.8 版本已于 2025 年 01 月 24 日正式发布。 该版本持续在湖仓一体、异步物化视图、查询优化器与执行引擎、存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.8 版本已于 2025 年 01 月 24 日正式发布。** 该版本持续在湖仓一体、异步物化视图、查询优化器与执行引擎、存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。 - -- [立即下载](https://doris.apache.org/download) - -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.8-rc01) - - -## 行为变更 - -- 当通过 External Catalog 查询表名大小写不敏感的数据源(如 Hive)时,在之前版本中,可以使用任意大小写进行表名查询,但是在 2.1.8版本中,将严格遵循 Doris 自身的表名大小写敏感策略。 -- 添加环境变量 `SKIP_CHECK_ULIMIT` 以跳过 BE 进程内关于 ulimit 值校验检查,仅适用于 Docker 快速启动场景中应用。[#45267](https://github.com/apache/doris/pull/45267) -- 添加 `enable_cooldown_replica_affinity session` 变量控制冷热分层下查询选用副本亲和性 -- FE 添加配置` restore_job_compressed_serialization` 和 `backup_job_compressed_serialization` 用于解决 db tablet 数量非常大情况下备份和恢复操作时 FE OOM 的问题,默认关闭,打开之后无法降级 - -## 新功能 - -- **查询执行引擎:**Arrowflight 协议支持通过负载均衡设备访问 BE。 [#43281](https://github.com/apache/doris/pull/43281) -- **其他:**当前 Lambda 表达式支持捕获外部的列。 [#45186](https://github.com/apache/doris/pull/45186) - -## 改进提升 - -### 湖仓一体 - -- Hudi 版本更新至 0.15,并且优化了 Hudi 表的查询规划性能。 -- 优化了 MaxCompute 分区表的读取性能。 [#45148](https://github.com/apache/doris/pull/45148) -- 支持会话变量 enable_text_validate_utf8,可以忽略 CSV 格式中的 UTF8 编码检测。[#45537](https://github.com/apache/doris/pull/45537) -- 优化在高过滤率情况下,Parquet 文件延迟物化的性能。[#46183](https://github.com/apache/doris/pull/46183) - -### 异步物化视图 - -- 现在支持手动刷新异步物化视图中不存在的分区。[#45290](https://github.com/apache/doris/pull/45290) -- 优化了透明改写规划的性能。[#44786](https://github.com/apache/doris/pull/44786) - -### 查询优化器 - -- 提升了 Runtime Filter 的自适应能力。[#42640](https://github.com/apache/doris/pull/42640) -- 增加了在 MAX / MIN 聚合函数列上的过滤条件生成原始列过滤条件的能力。[#39252](https://github.com/apache/doris/pull/39252) -- 增加了在连接谓词上抽取单测过滤条件的能力。[#38479](https://github.com/apache/doris/pull/38479) -- 优化了谓词推导在集合算子上的能力,可以更好的生成过滤谓词。[#39450](https://github.com/apache/doris/pull/39450) -- 优化了统计信息收集和使用的异常处理能力,避免在收集异常时产生非预期的执行计划。[#43009](https://github.com/apache/doris/pull/43009) [#43776](https://github.com/apache/doris/pull/43776) [#43865](https://github.com/apache/doris/pull/43865) [#42104](https://github.com/apache/doris/pull/42104) [#42399](https://github.com/apache/doris/pull/42399) [#41729](https://github.com/apache/doris/pull/41729) - -### 查询执行引擎 - -- Resource group 支持在当前 group 不可用的时候,降级到别的 Group. [#44255](https://github.com/apache/doris/pull/44255) -- 优化带 limit 的查询执行使其能够更快的结束,避免多余的数据扫描。[#45222](https://github.com/apache/doris/pull/45222) - -### 存储管理 - -- CCR 支持了更加全面的操作,比如 Rename Table,Rename Column,Modify Comment,Drop View,Drop Rollup 等。 -- 提升了 Broker Load 导入进度的准确性和多个压缩文件导入时的性能。 -- 改进了 Routine Load 超时策略、线程池使用以防止 Routine Load 超时失败和影响查询。 - -### 其他 - -- Docker 快速启动镜像支持不设置环境参数直接启动,添加环境变量 `SKIP_CHECK_ULIMIT` 以跳过 `start_be.sh` 脚本以及 BE 进程内关于 `swap`、`max_map_count`、`ulimit` 相关校验检查,仅适用于 Docker 快速启动场景中应用。[#45269](https://github.com/apache/doris/pull/45269) -- 新增 LDAP 配置型 `ldap_group_filter` 用于自定义 Group 过滤。[#43292](https://github.com/apache/doris/pull/43292) -- 优化了使用 Ranger 时的性能。[#41207](https://github.com/apache/doris/pull/41207) -- 修复审计日志中,`scan bytes` 统计不准的问题。[#45167](https://github.com/apache/doris/pull/45167) -- 在 COLUMNS 系统表中能够正确显示列的默认值。[#44849](https://github.com/apache/doris/pull/44849) -- 在 VIEWS 系统表中能够正确显示视图的定义。[#45857](https://github.com/apache/doris/pull/45857) -- 当前,admin 用户不能被删除。[#44751](https://github.com/apache/doris/pull/44751) - -## Bug 修复 - -### 湖仓一体 - -- Hive - - - 修复无法查询 Spark 创建的 Hive 视图的问题。[#43553](https://github.com/apache/doris/pull/43553) - - - 修复无法正确读取某些 Hive Transaction 表的问题。[#45753](https://github.com/apache/doris/pull/45753) - - - 修复 Hive 表分区存在特殊字符时,无法进行正确分区裁剪的问题。[#42906](https://github.com/apache/doris/pull/42906) - -- Iceberg - - - 修复在 Kerberos 认证环境下,无法创建 Iceberg 表的问题。[#43445](https://github.com/apache/doris/pull/43445) - - - 修复某些情况下,Iceberg 表存在 dangling delete 情况下,`count(*)` 查询不准确的问题。[#44039](https://github.com/apache/doris/pull/44039) - - - 修复某些情况下,Iceberg 表列名不匹配导致查询错误的问题[#44470](https://github.com/apache/doris/pull/44470) - - - 修复某些情况下,当 Iceberg 表分区被修改后,无法读取的问题[#45367](https://github.com/apache/doris/pull/45367) - -- Paimon - - - 修复 Paimon Catalog 无法访问阿里云 OSS-HDFS 的问题。[#42585](https://github.com/apache/doris/pull/42585) - -- Hudi - - - 修复某些情况下,Hudi 表分区裁剪失效的问题。[#44669](https://github.com/apache/doris/pull/44669) - -- JDBC - - - 修复某些情况下,开始表名大小写不敏感功能后,使用 JDBC Catalog 无法获取表的问题。 - -- MaxCompute - - - 修复某些情况下,MaxCompute 表分区裁剪失效的问题。[#44508](https://github.com/apache/doris/pull/44508) - -- 其他 - - - 修复某些情况下,Export 任务导致 FE 内存泄露的问题。[#44019](https://github.com/apache/doris/pull/44019) - - - 修复某些情况下,无法使用 HTTPS 协议访问 S3 对象存储的问题。[#44242](https://github.com/apache/doris/pull/44242) - - - 修复某些情况下,Kerberos 认证票据无法自动刷新的问题。[#44916](https://github.com/apache/doris/pull/44916) - - - 修复某些情况下,读取 Hadoop Block 压缩格式文件出错的问题。[#45289](https://github.com/apache/doris/pull/45289) - - - 查询 ORC 格式的数据时,不再下推 CHAR 类型的谓词,以避免可能的结果错误。[#45484](https://github.com/apache/doris/pull/45484) - -### 异步物化视图 - -- 修复了当物化视图定义中存在 CTE 时,无法刷新的问题。[#44857](https://github.com/apache/doris/pull/44857) -- 修复了当基表增加列后,异步物化视图不能命中透明改写的问题。[#44867](https://github.com/apache/doris/pull/44867) -- 修复了当查询中在不同位置包含相同的过滤谓词时,透明改写失败的问题。[#44575](https://github.com/apache/doris/pull/44575) -- 修复了当过滤谓词或连接谓词中使用列的别名时,无法透明改写的问题。[#44779](https://github.com/apache/doris/pull/44779) - -### 索引 - -- 修复倒排索引 Compaction 异常处理的问题 [#45773](https://github.com/apache/doris/pull/45773) -- 修复倒排索引构建因为等锁超时失败的问题 [#43589](https://github.com/apache/doris/pull/43589) -- 修复异常情况下倒排索引写入 Crash 的问题。[#46075](https://github.com/apache/doris/pull/46075) -- 修复 Match 函数特殊参数时空指针的问题 [#45774](https://github.com/apache/doris/pull/45774) -- 修复 VARIANT 倒排索引相关的问题,禁用 VARIANT 使用索引 v1 格式。[#43971](https://github.com/apache/doris/pull/43971) [#45179](https://github.com/apache/doris/pull/45179/) - -- 修复 NGram Bloomfilter Index 设置 `gram_size = 65535` 时 Crash 的问题。[#43654](https://github.com/apache/doris/pull/43654) -- 修复 Bloomfilter Index 计算 DATE 和 DATETIME 不对的问题。[#43622](https://github.com/apache/doris/pull/43622) -- 修复 Drop Coloumn 没有自动 Drop Bloomfilter Index 的问题。[#44478](https://github.com/apache/doris/pull/44478) -- 减少 Bloomfilter Index 写入时的内存占用。[#46047](https://github.com/apache/doris/pull/46047) - -### 半结构化数据类型 - -- 优化内存占用,降低 VARIANT 数据类型的内存消耗。[#43349](https://github.com/apache/doris/pull/43349) [#44585](https://github.com/apache/doris/pull/44585) [#45734](https://github.com/apache/doris/pull/45734) -- 优化 VARIANT Schema Copy 性能。[#45731](https://github.com/apache/doris/pull/45731) -- 自动推断 Tablet Key 时不将 VARIANT 作为 Key。[#44736](https://github.com/apache/doris/pull/44736) -- 修复 VARIANT 从 NOT NULL 改成 NULL 的问题。[#45734](https://github.com/apache/doris/pull/45734) -- 修复 Lambda 函数类型推断错误的问题。[#45798](https://github.com/apache/doris/pull/45798) -- 修复 `ipv6_cidr_to_range` 函数边界条件 Coredump。[#46252](https://github.com/apache/doris/pull/46252) - -### 查询优化器 - -- 修复了潜在的表读锁互斥导致的死锁问题,并优化了锁的使用逻辑[#45045](https://github.com/apache/doris/pull/45045) [#43376](https://github.com/apache/doris/pull/43376) [#44164](https://github.com/apache/doris/pull/44164) [#44967](https://github.com/apache/doris/pull/44967) [#45995](https://github.com/apache/doris/pull/45995) -- 修复了 SQL Cache 功能错误的使用常量折叠导致在使用包含时间格式的函数时结果不正确的问题。[#44631](https://github.com/apache/doris/pull/44631) -- 修复了比较表达式优化,在边缘情况下可能优化错误,导致结果不正确的问题。[#44054](https://github.com/apache/doris/pull/44054) [#44725](https://github.com/apache/doris/pull/44725) [#44922](https://github.com/apache/doris/pull/44922) [#45735](https://github.com/apache/doris/pull/45735) [#45868](https://github.com/apache/doris/pull/45868) -- 修复高并发点查审计日志不正确的问题。[ #43345 ](https://github.com/apache/doris/pull/43345)[#44588](https://github.com/apache/doris/pull/44588) -- 修复高并发点查遇到异常后持续报错的问题。[#44582](https://github.com/apache/doris/pull/44582) -- 修复部分字段 Prepared Statement 不正确的问题。[#45732 ](https://github.com/apache/doris/pull/45732) - -### 查询执行引擎 - -- 修复了正则表达式和 LIKE 函数在特殊字符时结果不对的问题。[#44547](https://github.com/apache/doris/pull/44547) -- 修复 SQL Cache 在切换 DB 的时候结果可能不对的问题。[#44782](https://github.com/apache/doris/pull/44782) -- 修复`cut_ipv6` 函数结果不对的问题。[#43921](https://github.com/apache/doris/pull/43921) -- 修复数值类型到 bool 类型 cast 的问题。[#46275](https://github.com/apache/doris/pull/46275) -- 修复了一系列 Arrow Flight 相关的问题。[#45661](https://github.com/apache/doris/pull/45661) [#45023](https://github.com/apache/doris/pull/45023) [#43960](https://github.com/apache/doris/pull/43960) [#43929](https://github.com/apache/doris/pull/43929) -- 修复了当 hashjoin 的 hash 表超过 4G 时,部分情况结果错误的问题。[#46461](https://github.com/apache/doris/pull/46461/files) -- 修复了 convert_to 函数在中文字符时溢出的问题。[#46505](https://github.com/apache/doris/pull/46405) - -### 存储管理 - -- 修复高并发 DDL 可能导致 FE 启动失败的问题。 -- 修复自增列可能出现重复值的问题。 -- 修复扩容时 Routine Load 不能使用新扩容 BE 的问题。 - -### 权限管理 - -- 修复使用 Ranger 作为鉴权插件时,频繁访问 Ranger 服务的问题[#45645](https://github.com/apache/doris/pull/45645) - -### Others - -- 修复 BE 端开启 `enable_jvm_monitor=true` 后可能导致的内存泄露问题。[#44311](https://github.com/apache/doris/pull/44311) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.9.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.9.md deleted file mode 100644 index 3b41d22567c9f..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v2.1/release-2.1.9.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -{ - "title": "Release 2.1.9", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.9 版本已于 2025 年 04 月 02 日正式发布。 该版本持续在倒排索引、查询优化器与存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.9 版本已于 2025 年 04 月 02 日正式发布。** 该版本持续在倒排索引、查询优化器与存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。 - -- [立即下载](https://doris.apache.org/download) - -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.9-rc02) - - -## 行为变更 - -- Audit Log 中的 SQLHash 现在通过当前执行的 SQL 精确计算,解决了同一请求中所有 SQL 使用相同 SQLHash 的问题。[#48242](https://github.com/apache/doris/pull/48242) -- 查询返回的 ColumnLabelName 与 SQL 中的输入完全一致。[#47093 ](https://github.com/apache/doris/pull/47093) -- 所有在用户属性中设置的变量,优先级均高于 session 级别设置的变量。 [#47185](https://github.com/apache/doris/pull/47185) - -## 新功能 - -### 存储管理 - -- 禁止 rename 分区列。[#47596](https://github.com/apache/doris/pull/47596) - -### 其他 - -- FE 监控指标新增 Catalog、Database、Table 数量指标。[#47891](https://github.com/apache/doris/pull/47891) - -## 改进提升 - -### 倒排索引 - -- VARIANT 类型中的 ARRAY 支持倒排索引。[#47688 ](https://github.com/apache/doris/pull/47688) -- Profile 中展示每个过滤条件的倒排索引性能指标。[#47504](https://github.com/apache/doris/pull/47504) - -### 查询优化器 - -- 支持在聚合查询中使用 `SELECT`` *`,如果下层 relation 仅输出聚合 key 列。[#48006](https://github.com/apache/doris/pull/48006) - -### 存储管理 - -- CCR 优化回收 binlog 效率、小文件传输效率,并增强了混沌环境下的健壮性。[#47547](https://github.com/apache/doris/pull/47547) [#47313 ](https://github.com/apache/doris/pull/47313)[#45061](https://github.com/apache/doris/pull/45061) -- 改进了导入的错误提示,使错误提示更加具体。[#47918](https://github.com/apache/doris/pull/47918) [#47470](https://github.com/apache/doris/pull/47470) - -## Bug 修复 - -### 湖仓一体 - -- 修复 BE 端无法正确配置 krb5.conf 路径的问题。[#47679](https://github.com/apache/doris/pull/47679) -- 禁止 `SELECT ``OUTFILE` 语句重试以避免重复导出数据。[#48095](https://github.com/apache/doris/pull/48095) -- 修复无法通过 JAVA API 访问 Paimon 表的问题。[#47192](https://github.com/apache/doris/pull/47192) -- 修复无法写入存储位置为 `s3a://` 的 Hive 表的问题。[#47162](https://github.com/apache/doris/pull/47162) -- 修复 Catalog 的 Comment 字段没有被持久化的问题。[#46946](https://github.com/apache/doris/pull/46946) -- 修复某些情况下,JDBC BE 端类加载泄漏的问题。[#46912](https://github.com/apache/doris/pull/46912) -- 修复 JDBC Catalog 无法使用高版本 ClickHouse JDBC Driver 的问题。 [#46026](https://github.com/apache/doris/pull/46026) -- 修复某些情况下,读取 Iceberg Position Delete 导致 BE 宕机的问题。[#47977](https://github.com/apache/doris/pull/47977) -- 修复多分区列情况下读取 MaxCompute 表数据错误的问题。[#48325](https://github.com/apache/doris/pull/48325) -- 修复某些情况下读取 Parquet 复杂列类型错误的问题。[#47734](https://github.com/apache/doris/pull/47734) - -### 倒排索引 - -- 修复 ARRAY 类型倒排索引空值处理错误的问题。[#48231](https://github.com/apache/doris/pull/48231) -- 修复对刚刚添加的列执行 `BUILD INDEX` 异常的问题。[#48389](https://github.com/apache/doris/pull/48389) -- 修复特殊字符 UTF8 编码索引被截断导致结果错误的问题。[#48657](https://github.com/apache/doris/pull/48657) - -### 半结构化数据类型 - -- 修复 `array_agg` 函数在特殊情况下 crash 的问题。[#46927](https://github.com/apache/doris/pull/46927) -- 修复 Stream Load 导入 JSON 类型时,chunk 参数设置错误导致 crash 的问题。 [#48196](https://github.com/apache/doris/pull/48196) - -### 查询优化器 - -- 修复时间函数内嵌套 `current_date` 等关键字函数无法的进行常量折叠的问题。[#47288](https://github.com/apache/doris/pull/47288) -- 修复非确定性函数相关的结果错误问题。[#48321](https://github.com/apache/doris/pull/48321) -- 修复当原表有 on update 列属性时,CREATE TABLE LIKE 无法执行的问题。[#48007](https://github.com/apache/doris/pull/48007) -- 修复直查聚合模型表的物化视图可能产生非预期规划报错的问题。[#47658](https://github.com/apache/doris/pull/47658) -- 修复 PrepareStatement 因为内部 ID 溢出导致异常的问题。[#47950](https://github.com/apache/doris/pull/47950) - -### 查询执行引擎 - -- 修复了查询系统表时,可能的查询卡住或者空指针的问题。[#48370](https://github.com/apache/doris/pull/48370) -- LEAD/LAG 函数支持了 DOUBLE 类型。[#47940](https://github.com/apache/doris/pull/47940) -- 修复了 `case when` 条件超过 256 个时,查询报错的问题。[#47179](https://github.com/apache/doris/pull/47179) -- 修复了 `str_to_date` 函数在空格的时候,结果错误的问题。[#48920](https://github.com/apache/doris/pull/48920) -- 修复了`split_part` 函数在常量折叠时遇到 || ,结果错误的问题。[#48910](https://github.com/apache/doris/pull/48910) -- 修复了 `log` 函数结果错误的问题。[#47228](https://github.com/apache/doris/pull/47228) -- 修复了 `array` / `map` 函数在 lambda 表达式中使用时导致的 core 的问题。[#49140](https://github.com/apache/doris/pull/49140) - -### 存储管理 - -- 修复了导入聚合表时,可能的内存写脏问题。[#47523](https://github.com/apache/doris/pull/47523) -- 修复内存紧张时 MoW 导入偶发 coredump 问题。[#47715](https://github.com/apache/doris/pull/47715) -- 修复 MoW 在 BE 重启和 Schema Change 时可能出现重复 key 的问题。[#48056](https://github.com/apache/doris/pull/48056) [#48775](https://github.com/apache/doris/pull/48775) -- 修复 Group Commit 和全局打开列更新以及 memtable 前移时的问题。[#48120](https://github.com/apache/doris/pull/48120) [#47968](https://github.com/apache/doris/pull/47968) - -### 权限管理 - -- 使用 LDAP 时不再会抛出 PartialResultException 异常。[#47858](https://github.com/apache/doris/pull/47858) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.0.md deleted file mode 100644 index 8dbf1ade9226f..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.0.md +++ /dev/null @@ -1,434 +0,0 @@ ---- -{ - "title": "Release 3.0.0", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,在近期我们迎来了 Apache Doris 3.0 版本的正式发布,欢迎大家下载使用体验!" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,在近期我们迎来了 Apache Doris 3.0 版本的正式发布,欢迎大家下载使用体验! - -**从 3.0 系列版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。基于云原生存算分离的架构,用户可以通过多计算集群实现查询负载间的物理隔离以及读写负载隔离,并借助对象存储或 HDFS 等低成本的共享存储系统来大幅降低存储成本。** - -3.0 版本是 Apache Doris 在湖仓一体演化路线上的重要里程碑版本。在 3.0 版本中 Apache Doris 增加了数据湖写回功能,用户可以在 Apache Doris 中完成多个数据源之间的数据分析、共享、处理、存储操作。结合异步物化视图等能力,Apache Doris 可以作为企业统一的湖仓数据处理引擎,帮助用户更好的管理湖、仓、数据库中的数据。与此同时,3.0 版本引入了 [Trino Connector](https://www.selectdb.com/blog/911) 类型,用户可以快速使用 Trino Connector 来连接或适配更多数据源、并可以利用 Apache Doris 的高性能计算引擎提供比 Trino 更快的数据查询能力。 - -3.0 版本同样对 ETL 批处理场景进行了增强,对`insert into select`、`delete` 和 `update` 操作提供了显式事务支持;对查询执行过程中的可观测性进行了增强。 - -在性能方面,3.0 版本的查询优化器在框架能力、基础设施以及规则扩充等方面做了重要增强,针对更复杂更多样的业务场景提供更极致的优化能力,盲测性能更高。实现了自适应的 Runtime Filter 计算方式,能够在运行时根据数据大小准确估算 Runtime Filter,在大数据量和高压力场景下有更好的性能表现。对异步物化视图的构建能力、透明改写能力以及性能均进行了增强,使得物化视图在查询加速、数据建模等场景具有更好的稳定性和易用性。 - -**在 3.0 版本的研发过程中,有超过 170 名贡献者为 Apache Doris 提交了近 5000 个优化与修复。** 来自飞轮科技、百度、美团、字节跳动、腾讯、阿里、快手、华为、天翼云等企业的贡献者与社区深度共建,贡献了大量来自真实业务场景下测试 Case 来帮助我们持续打磨、共同改进,在此向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - -## 1. 存算分离全新架构 - -从 Apache Doris 3.0 版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。 - -全新存算分离模式对计算与存储进行了解耦,计算节点不再存储主数据,而是引入共享存储层(HDFS 与对象存储)作为统一的数据主存储空间,计算资源和存储资源可以独立扩缩容,为用户带来了多方面价值: - -- **负载隔离**:多个计算集群共享同一份数据,用户可以使用多计算集群对不同业务或者在离线的负载进行隔离; - -- **存储成本大幅降低**:全量数据存储到成本更低且极其可靠的共享存储中,热数据仅在本地 Cache,相比存算一体三副本,存储成本最高下降至原先的 1/10; - -- **计算资源弹性**:数据不保存在计算节点,计算资源可以按照负载需求实现灵活弹性扩缩容,比如单个计算集群的扩缩容或者加减计算集群,弹性带来了资源配置的灵活性以及成本的降低; - -- **系统鲁棒性的提升**:数据存储到共享存储,Doris 不再有多副本一致性的逻辑,会大幅度简化分布式存储带来的复杂度,从而会提升系统的鲁棒性。 - -- **数据共享和克隆的灵活性**:存算分离架构的灵活性不止在一个 Doris 集群内部,在跨 Doris 集群时也应该体现出灵活性,比如 Doris 集群 A 中的库表可以轻量地在 Doris 集群 B 中完成克隆,即只做元数据级别的复制,不做数据的复制。 - -### 1-1. 从存算一体到存算分离 - -在存算一体模式中,Apache Doris 整体由 Frontend(FE)和 Backend(BE)两类进程组成,其中 FE 节点主要负责用户请求接入、查询解析规划、元数据管理和集群管理等相关工作,BE 节点主要负责数据存储和查询计划的执行,多 BE 节点间采取 MPP 分布式计算架构,通过多副本一致性协议来帮助服务的高可用和数据的高可靠。 - -![从存算一体到存算分离](/images/storage-compute-decoupled.PNG) - -新兴云计算基础设施的成熟,无论是公有云、私有云以及基于 K8s 的容器平台,云计算基础设施的革新催生了新的需求,越来越多用户期待 Apache Doris 针对云计算基础设施提供更加深度的适配,以便提供更加灵活强大的弹性能力,因此**飞轮科技团队早在 2022 年基于 Apache Doris 设计并实现了云原生存算分离版本(SelectDB Cloud),在经过数百家企业近两年的大规模生产打磨后,将其贡献回 Apache Doris 社区,即当前 3.0 版本的存算分离模式。** - -在存算分离模式下,Apache Doris 整体架构演化成**元数据层、计算层和共享存储层**三层: - -- **元数据层**:新引入 Meta Service 模块来提供系统的元数据服务,例如库表、Schema、Rowset Meta、事务等信息,是一个可以横向扩展的无状态服务。目前 BE 的 Meta 已经全部进入了 Meta Service,FE 的部分 Meta 已进入 Meta Service,其它 Meta 在后续版本中也会全部进入 Meta Service。 - -- **计算层**:负责执行查询规划,计算节点即无状态的 BE 节点,会缓存一部分 Tablet 元数据和数据到本地以提高查询性能。通过多个无状态的 BE 节点可以组成计算资源集合(即多计算集群),多个计算集群共享一份数据和元数据服务,计算集群支持随时弹性加减节点。 - -- **共享存储层**:数据持久化到共享存储层,目前支持 HDFS 以及 S3、OSS、GCS、Azure Blob、COS、BOS、MinIO 等各类云上兼容 S3 协议的对象存储系统。 - - -### 1-2 设计亮点 - -全新存算分离架构最大的设计亮点在于将 FE 全内存的元数据模式演变成共享的元数据服务,这一方案的优势在于,元数据服务提供了全局一致的状态视图,任何节点可以直接提交写入,不再需要经过 FE 做 Publish。写入时数据进入共享存储,元数据进入元数据服务,**可以有效控制共享存储上的小文件数量,同时单表的实时写入性能和存算一体相差无几,整个系统的写入能力不再受限于单 FE 的处理能力。** - -![Apache Doris 存算分离设计亮点](/images/storage-compute-decoupled-highlight-3.PNG) - -基于全局一致的状态视图,在数据 GC 时,我们采用了设计上容易证明正确性和效率更高的正向数据删除。具体而言,将共享存储中的数据纳入到在共享元数据服务提供的全局一致视图中,数据生成时绑定一个事务,元数据删除时也绑定一个事务,以此可以实现删除和写入不能一起成功,视图中记录了哪些数据需要删除,异步删除过程只需要根据事务记录正向删除数据即可,不需要反向 GC。 - -未来随着 FE 中 Tablet 相关的 Meta 进入共享服务,Doris 集群规模也不再受限于单 FE 内存。基于共享的元数据服务和正向的数据删除技术,在此基础上可以便捷地扩展数据共享、轻量克隆等功能。 - -### 1-3 业界同类方案对比 - -业界还有另一种存算分离架构的设计方案,将数据和 BE 节点的 Meta 存放在共享对象存储或者 HDFS 中,该方案会有如下的问题: - -- **无法承载实时写**:在写入数据时,数据会根据分区分桶规则映射到 Tablet 中并生成 Segment 文件以及 Rowset Meta。在写入阶段会通过 FE 进行两阶段提交(即 Publish),在 BE 节点接到 Publish 请求后再将 Rowset 设置为可见,Publish 是不允许失败的。如果将 Rowset Meta 保存在共享存储中,实时写入过程中的小文件数据是数据文件的三倍,一次写入数据结束后生成 Rowset Meta、一次 Publish 时更改 Rowset Meta 状态。Publish 是由 FE 节点单点驱动的,不论单个表或整个系统的写入能力都受限于 FE 节点。 - - ![Doris 与业界同类方案对比](/images/storage-compute-decoupled-comparison-4.png) - - 在 Apache Doris 3.0 版本正式发版后,我们对该方案实时数据写入性能与 Apache Doris 进行了对比。在此我们在相同计算资源下分别模拟 500 并发任务写入 10000 个 500 行的数据文件和 50 并发任务写入 250 个 20000 行的数据文件,可以看到在 50 并发下 **Apache Doris 存算分离和存算一体模式的微批写入性能基本相当,而该方案写入性能与 Apache Doris 差距达到 100 倍**。在 500 并发下,Apache Doris 存算分离模式性能稍有损耗,但对比该方案仍**有超过 11 倍的巨大优势**。为了保证测试公平性,Apache Doris 并未开启 Group Commit 服务端攒批的能力(该方案不具备此能力),而在开启 Group Commit 后实时写入能力还将进一步增强。 - - ![Doris 与业界同类方案对比](/images/storage-compute-decoupled-comparison-5.png) - - 此外该方案在实时写入方面还存在稳定性和成本问题: - - - 稳定性隐患:小文件数目多会给共享存储特别是 HDFS 带来更大的压力和不稳定隐患。 - - - 对象存储请求费用高:部分公有云对象存储的 Put 和 Delete 收费是 Get 的 10 倍,小文件数目多会导致对象存储请求费用大幅上升,甚至超过存储费用。 - -- **扩展性受限**:FE 的 Meta 是全内存的,存算分离模式下往往会面对更大规模的数据存储,因此当 Tablet 数量超大时(例如超过千万级别),FE 内存的压力较大;整个系统的写入能力受到 FE 单点瓶颈的限制。 - -- **数据删除逻辑隐患**:存算分离架构下数据只有一份,因此数据删除逻辑对于系统的可靠性至关重要。常规的跨系统数据删除做法是对比计算出差集,对于写入过程中的数据依赖超时时间,没办法从机制上 100% 避免删除和写入一起成功,删除和写入一起成功就会丢数据。另外在存储系统有异常时,用于计算差集的输入可能错误,这就可能导致误删除数据。 - -- **数据共享与轻量级克隆**:存算分离架构未来可以借助于架构的灵活性实现数据共享和轻量级数据克隆,降低企业数据管理的负担。如若每个集群是单独的 FE,跨集群克隆数据之后,很难计算出哪些数据没有被引用可以被删除,跨多个集群计算很容易误删数据。 - -与之相比,Doris 3.0 版本将 FE 全内存的元数据模式演变成共享的元数据服务有效地克服了以上问题。 - -### 1-4 查询性能对比 - -由于存算分离模式下数据需要从远端共享存储系统中读取,因此数据传输的主要瓶颈,从存算一体模式下的磁盘 IO 转变为存算分离模式下的网络带宽,在一定程度上会造成性能损耗。 - -为了加速数据访问,Apache Doris 实现了基于本地磁盘的高速缓存机制,并提供 LRU 和 TTL 两种高效的缓存管理策略,并对索引相关的数据进行了优化,旨在最大程度上缓存用户常用数据、提升查询性能。新导入的数据将异步写入缓存中,以加速最新数据的首次访问。如果查询所需数据不在缓存中,系统将从远端存储中读取该数据进内存并同步写入缓存中,以便于后续查询。在涉及多计算集群的应用场景中,Apache Doris 提供缓存预热功能,当新计算集群建立时,用户可以选择对特定的数据(如表或分区)进行预热,以进一步提高查询效率。 - -在此我们分别对存算一体模式和存算分离模式进行了不同缓存下的性能测试,以 TPC-DS 1TB 测试集为例,主要结果如下: - -- 完全命中缓存时(即查询的所有数据均被加载进缓存中)**存算分离模式与存算一体模式查询性能完全持平**; - -- 部分命中缓存时(即测试开始前清空所有缓存,初始状态下缓存中无任何数据,在测试过程中数据被逐渐加载进缓存中,性能随之持续提升)存算分离模式与存算一体模式查询性能基本相当,总体性能损耗约 10% ,这一测试场景也与用户实际应用中最为类似。 - -- 完全未命中任何缓存时(每次执行 SQL 前均清理所有缓存,模拟极端情况)性能损耗约 35%。即使在冷数据读取时存在一定性能损耗,但**相较于业内其他同类系统,存算分离模式下的 Apache Doris 仍有着极为明显的性能优势。** - -![Doris 查询性能对比](/images/storage-compute-decoupled-query-performance-6.png) - -### 1-5 写入性能对比 - -在写入性能方面,我们在相同计算资源下分别模拟了批量导入和高并发实时导入两大场景,存算一体模式和存算分离模式的写入性能对比结论如下: - -- 在批量数据导入场景,导入 TPC-H 1TB 和 TPC-DS 1TB 测试数据集,在存算一体模式采用单副本的情况下,**存算分离模式写入性能较存算一体模式分别提升了 20.05% 和 27.98%**。批量导入时 Segment 文件大小一般会在几十 MB 到上百 MB,存算分离模式会将 Segment 文件切分成多个小文件并发上传到对象存储,因而会带来比写本地磁盘更高的吞吐。实际部署中存算一体模式一般会采用三副本,此时存算分离模式的写入性能优势会更加明显。 - -- 高并发实时导入场景在前文中已介绍,在此不在赘述。 - -![Doris 写入性能对比](/images/storage-compute-decoupled-loading-performance-7.png) - -### 1-6 生产运行经验 - -- 性能:实时数据场景下可以指定 TTL 的 Cache 以及写入时数据进入 Cache,使查询性能达到与存算一体。Compaction 和 Schema Change 后台任务生成的数据根据热度进入 Cache 可以避免查询抖动。 - -- 负载隔离:多计算集群提供了物理层资源隔离,比如不同业务单元适合使用多计算集群隔离。单个计算集群内依然需要使用 Workload Group 对不同的查询做资源的限制和隔离。 - -### 1-7 注意事项 - -- 当前 3.0 版本存算一体模式与存算分离模式不可共存,用户在集群部署时需要指定其中一种模式进行部署。 - -- 存算一体模式的部署和升级可以正常按照官网文档进行,推荐采用 Doris Manager 进行快速部署和集群升级,存算分离模式暂不支持 Doris Manager 部署和升级,后续我们将会持续迭代以实现更好支持。 - -- 暂不支持从 2.1 版本原地升级至 3.0 存算分离模式,需要在存算分离集群部署完成后通过工具进行数据迁移,后续也会支持通过 CCR 能力实现不停服迁移。 - - - -## 2. 湖仓一体再进化 - -尽管 Apache Doris 定位于实时数据仓库,在以往版本中一直不拘于数据仓库的能力边界,在湖仓一体方向持续发力。而 3.0 版本是 Apache Doris 在湖仓一体路线上的重要里程碑版本,从 3.0 版本开始,Apache Doris 在湖仓一体场景的能力臻于完善。对于湖仓一体,我们认为其最核心的理念即**数据无界、湖仓融合:** - -**数据无界:将 Apache Doris 作为统一查询处理引擎,打破数据在不同系统间的屏障,在数据仓库、数据湖乃至数据流、本地数据文件等所有数据源端都能提供一致且极速的分析处理体验。** - -- **湖仓查询加速**:无需将数据迁移至 Apache Doris,用户便可直接利用 Doris 高效的查询引擎,直接查询 Iceberg、Hudi、Paimon 等数据湖和 Hive 等离线数仓中的数据,实现查询分析的加速。 - -- **联邦分析**:Apache Doris 通过扩展 Catalog 和存储插件,丰富其联邦分析能力,使用户无需将数据物理集中至统一的存储空间,在保持各数据源独立性和隐私性的同时,仅借助 Apache Doris 即可实现多个异构数据源的统一分析,既可以直查外部表以及存储文件、也可以执行内表和外表以及外表相互之间的关联分析,打破数据孤岛、提供全局一致性的数据洞察与分析。 - -- **数据湖构建:** Apache Doris 增加了 Hive、Iceberg 数据写回功能,写回功能支持用户直接通过 Doris 创建 Hive、Iceberg 表,并将数据写入到表中。基于此,用户可以将 Apache Doris 中的内表数据写回离线湖仓,或者对离线湖仓中的数据利用 Apache Doris 进行数据加工后落地回离线湖仓,从而实现更简化和高效的数据湖构建。 - -**湖仓融合:数据湖架构日益复杂,增加了用户技术选型成本与维护成本。同时实现多个系统一致的细粒度权限管控也变得非常困难,实时性也不足。为应对这一挑战,Apache Doris 融入了湖的核心特征,将其打造成一个轻量、高效的原生实时湖仓。** - -- **数据实时更新:** 从 1.2 版本开始 Apache Doris 增强了主键模型,引入 Merge-on-Write,支持实时更新。借助这一特性,上游数据变更可以基于主键进行高频实时数据更新。 - -- **数据科学与 AI 计算支撑:** 从 2.1 版本开始 Apache Doris 借助高效的 Arrow Flight 协议,增强了存储的开放性和对多计算负载的高效支持,这让 Apache Doris 支持数据科学和 AI 计算成为可能。 - -- **半结构化与非结构化数据增强:** Apache Doris 先后引入 Array / Map / Struct / JSON / Variant 等数据类型,未来还会支持向量索引。 - -- **存算分离资源能效提升:** 从 3.0 版本中支持了存算分离模式,进一步提升了资源效率和可扩展性。 - -### 2-1 湖仓查询加速 - -查询加速是湖仓一体化进程中的重要一环。借助 Apache Doris 强大的分布式查询引擎,可以帮助用户对湖仓数据进行快速分析。在 TPC-H 和 TPC-DS 标准测试集上,Apache Doris 的平均查询性能是 Trino/Presto 的 3-5 倍。 - -在 3.0 版本中,我们重点针对用户实际生产环境中的湖仓查询加速场景进行了优化,包括: - -- **更精细的任务拆分策略:** 通过对一致性哈希算法的调整以及引入任务分片权重机制,确保各个节点的查询负载均衡。 - -- **面向多分区、多文件场景的调度优化:** 在大量文件(100 万+)场景下,通过异步、分批获取文件分片的方式,显著降低查询耗时(100s -> 10s),并降低 FE 内存压力。 - -后续我们将进一步针对性的提升真实业务场景下的查询加速性能,提升用户实际感受,构建业界领先的湖仓查询加速引擎。 - -### 2-2 联邦分析 - 更丰富的数据源连接器 - -在之前的版本中,Apache Doris 已经支持了 10 余种主流湖、仓、关系型数据库的连接器。在 3.0 版本中,我们引入了 Trino Connector 兼容框架,极大扩展了 Apache Doris 可连接的数据源。借助该框架,仅需简单适配,用户即可通过 Doris 访问对应的数据源,并利用 Doris 的极速计算引擎进行数据分析。 - -目前 Doris 已完成 Delta Lake、Kudu、BigQuery、Kafka、TPCH、TPCDS 等多种 Connector 的适配,也欢迎所有开发者参考开发指南,为 Apache Doris 适配更多数据源。 - -:::info 备注 -参考文档: - -- [接入 Trino Connector](https://doris.apache.org/zh-CN/community/how-to-contribute/trino-connector-developer-guide) - -- [TPC-H](../../lakehouse/best-practices/tpch) - -- [TPC-DS](../../lakehouse/best-practices/tpcds) - -- [Delta Lake](../../lakehouse/catalogs/delta-lake-catalog) - -- [Kudu](../../lakehouse/catalogs/kudu-catalog) - -- [BigQuery](../../lakehouse/catalogs/bigquery-catalog) -::: - -### 2-3 数据湖构建 - -在 3.0 版本中,Apache Doris 增加了 Hive、Iceberg 数据写回功能。写回功能支持用户直接通过 Doris 创建 Hive、Iceberg 表,并将数据写入到表中。该功能使得 Apache Doris 在湖仓数据处理能力上形成闭环,用户可以在 Apache Doris 中完成多个数据源之间的数据分析、共享、处理、存储操作。 - -在后续的迭代版本中,Apache Doris 将进一步完善对数据湖表格式的支持以及存储 API 开放性。 - -:::info 备注 - -参考文档:[数据湖构建](../../lakehouse/catalogs/hive-catalog) - -::: - -## 3. 半结构化分析全面增强 - -在过去发布的 2.0 和 2.1 版本中,Apache Doris 陆续引入了倒排索引、N-Gram Bloom Filter、Variant 数据类型等重磅特性,支持高性能的全文检索和任意维度分析,对复杂半结构化数据的存储和处理分析更加灵活高效。 - -在 3.0 版本中,我们继续对这一场景能力进行了全面增强,在应对半结构化数据分析和日志检索分析场景的挑战时更加得心应手。 - -Variant 数据类型在经过大规模生产打磨后,已具备充分的稳定性,成为 JSON 数据存储和分析的首选。在 3.0 版本中我们对 Variant 类型进行了多项优化: - -- Variant 数据类型支持创建索引加速查询,包括倒排索引、Bloom Filter 索引以及内置的 ZoneMap 索引; - -- 对于包含 Variant 数据类型的 Unique 模型表,支持灵活的部分列更新; - -- Variant 数据类型支持在存算分离模式上使用,并对其元数据存储进行了优化; - -- 支持将 Variant 数据类型导出成 Parquet、CSV 等格式。 - -倒排索引自 2.0 版本开始被引入起,经历一年多的打磨,目前已具备较高的成熟度,在数百家企业的生产环境中长期运行。在 3.0 版本中,我们对倒排索引进行了多项优化: - -- 通过锁并发等一系列的性能优化,在实时报表分析场景中 Apache Doris 在查询延迟和并发等关键指标已大幅超过 Elasticsearch; - -- 在存算分离模式下优化了索引文件,减少远端存储的调用,大幅优化了索引查询延迟; - -- 增加了对 Array 类型的支持,加速 `array_contains` 查询; - -- 对短语查询系列 `match_phrase_*` 功能进行增强,包括支持词距 slop、短语前缀匹配 `match_phrase_prefix` 等。 - -## 4. ETL 能力持续增强 - -### 4-1. 事务增强 - -数据加工在数据仓库中是一个常见的场景,通常需要多个数据变更作为一个事务。Doris 3.0 对` insert into select`、`delete` 和 `update` 操作提供了显式事务支持。具体的应用场景比如: - -- 事务性要求:例如更新一个时间范围的数据,通常的做法是先删除这个时间范围的数据,然后写入。考虑到数据已经在服务,希望查询时要么看到老的数据要么看到新的数据,因此可以在一个事务中执行 `delete` 和 `insert into select`。 - - ```Java - BEGIN; - DELETE FROM table WHERE date >= "2024-07-01" AND date <= "2024-07-31"; - INSERT INTO table SELECT * FROM stage_table; - COMMIT; - ``` - -- 简化任务失败的处理:例如一个数据加工包含 2 个` insert into select`,在一个事务中去执行,任何一步失败只需要重新开始执行即可。 - - ```Java - BEGIN WITH LABEL label_etl_1; - INTO table1 SELECT * FROM stage_table1; - INSERT INTO table SELECT * FROM stage_table; - COMMIT; - ``` - -:::info 备注 - -参考文档: - -- [事务](../../data-operate/transaction/) - -- 目前 CCR 暂未支持显示事务同步。 -::: - -### 4-2 可观测性增强 - -- **Profile 实时获取**:在过去,某些复杂查询可能由于 Plan 的原因或者数据的原因,导致计算量特别大,开发者只有在查询结束后才能拿到 Profile 做性能分析以发现问题,有可能对线上系统产生影响。通过 Profile 实时获取,开发者可以在查询的运行过程中实时获取查询执行的 Profile,看到每个算子的执行情况,不需要等到查询执行结束。基于实时 Profile 获取功能,开发者还可以进一步监控每一 ETL 作业的执行进度。 - -- **系统表 backend_active_tasks**:`backend_active_tasks` 系统表提供了每个 Query 在每个 BE 上的实时资源消耗信息,可以通过 SQL 对系统表做分析计算,进而实时获得每个 Query 的资源使用量,有利于用户发现大查询或者不合理的工作负载。 - -## 5. 多表物化视图 - -在 Apache Doris 3.0 版本中,对多表物化视图的构建能力进行了增强并提高稳定性,拓展了透明改写的能力、透明改写性能提升 2 倍,重构了同步物化视图的透明改写逻辑并拓展了透明改写的能力,同时在异步物化视图的易用性上做了增强,让物化视图在查询加速,数据建模等场景更好用、更稳定。 - -### 5-1. 构建刷新功能 - -- 物化视图的支持分区增量更新,大大减少了物化视图的构建成本,并且支持物化视图分区上卷,满足不同粒度的分区刷新物化视图需求。 - -- 支持构建嵌套物化视图,在数据建模场景更好用。 - -- 允许异步物化视图创建索引和指定排序键,命中物化视图后查询速度会提升。 - -- 提高了物化视图 DDL 的易用性,支持物化视图原子替换,可以保证物化视图一直可用的情况下,修改物化视图定义 SQL。 - -- 允许物化视图使用非确定函数,在定时构建 T+1 物化数据的场景更易用。 - -- 新增了触发刷新物化的功能,在使用嵌套物化视图数据建模时,保证数据一致性。 - -- 拓展了可以构建分区物化视图的 SQL 模式,让更多的场景可以使用分区增量更新能力。 - -### 5-2. 构建刷新稳定性 - -- 支持指定物化视图构建时的 Workload Group,限制物化视图构建使用的资源,保障查询的可用资源。 - -### 5-3. 透明改写功能拓展 - -- 支持了更多 Join 类型的改写,并且支持了 Join 衍生改写。当查询和物化视图的 Join 的类型不一致时,如果物化可以提供查询所需的所有数据时,通过在 Join 的外部补偿谓词,也可以进行透明改写。 - -- 增强了聚合改写,支持了更多的聚合函数上卷,并且支持了多维聚合函数 GROUPING SETS、ROLLUP、CUBE 的改写,同时支持了查询包含聚合,物化不包含聚合的改写,可以节省 Join 连接和表达式计算。 - -- 支持了嵌套物化视图的透明改写,在复杂的查询加速场景下,可以借助嵌套物化视图来进行极致加速。 - -- 分区物化视图部分分区失效,支持物化视图 Union All 基表补全数据,增加了分区物化视图的适用范围。 - -### 5-4. 透明改写性能 - -- 持续优化了透明改写的性能,透明改写性能是 2.1.0 版本的两倍。 - -:::info 备注 -参考文档: - -- [异步物化视图概览](../../query-acceleration/materialized-view/async-materialized-view/overview.md) - -- [查询异步物化视图](../../query-acceleration/materialized-view/async-materialized-view/functions-and-demands.md) -::: - -## 6. 性能提升 - -### 6-1. 优化器更智能 - -在 3.0 版本中,查询优化器在框架能力、分布式计划支持、优化器基础设施以及规则扩充等方面做了重要增强,支持更复杂更多样的业务场景、提供更极致的优化能力,对于复杂 SQL 有更高的盲测性能: - -- **更完善的计划枚举能力**:对计划枚举的关键结构 Memo 做了 Projection 规范化重构,不仅提升了 Cascades 框架枚举有效计划的效率和枚举出更优计划的可能性,同时也修复了历史版本 Join Reorder 过程中列裁剪不完全导致的 Join 算子不必要开销等遗留问题,有效提升相应场景下的执行性能。 - -- **更完善的分布式计划支持**:对分布式查询计划做了增强,使得聚合,连接和窗口函数操作能更智能的识别中间运算结果的数据特征,避免无效的数据重分布操作,提升相应场景的性能。同时,3.0 版本中对多副本连续执行模式下的执行性能也进行了优化,使其对数据缓存更友好,相应性能也得到较大提升。 - -- **更完善的优化器基础设施**:在代价模型和统计信息估行方面,3.0 版本也修复了若干重要估行问题,代价模型问题的修复也更加适配执行引擎迭代,使得执行计划相较历史版本更稳定。 - -- **更丰富的 Runtime Filter 计划支持**:3.0 版本在传统 Join Runtime Filter 的基础上,拓展了 TopN Runtime Filter 的能力。典型场景如存在 TopN 算子时,可以生成 TopN 的 Runtime Filter 以获得更好的执行性能。 - -- **更丰富的优化规则库**:持续的增强和迭代基础优化规则库,通过持续不断地业务反馈和内测增强,3.0 版本中加入了如 Intersect Reorder 等典型的优化规则支持,使得优化器的规则成熟度得到了进一步的提升。 - -### 6-2. 自适应 Runtime Filter - -Runtime Filter 是否能够准确生成对查询性能的影响至关重要,在过去 Doris 非常依赖于用户手工设置或者优化器根据统计信息来生成,在某些情况下一旦设置不准确将会带来性能抖动。 - -在 3.0 版本实现了自适应的 Runtime Filter 计算方式,能够在运行时根据数据大小准确估算 Runtime Filter,在大数据量和高压力场景下有更好的性能表现。 - -### 6-3. 函数性能优化 - -- 3.0 版本对数十个函数的向量化实现做了改进,部分常用函数的性能提升 50% 以上。 - -- 对 Nullable 类型数据的聚合计算也做了大量优化,性能提升 30%。 - -### 6-4. 盲测性能进一步提升 - -我们对 3.0 版本与 2.1 版本分别在 TPC-DS 和 TPC-H 测试数据集上进行了盲测性能测试,查询性能分别提升了 7.3% 以及 6.2%。 - -![盲测性能进一步提升](/images/tpc-ds-and-tpc-h.png) - -## 7. 新功能 - -### 7-1. Java UDTF - -从 3.0 版本开始支持增加对 Java UDTF 的支持,主要操作如下: - -- 编写 UDTF:UDTF 和 UDF 函数一样,需要用户自主实现一个 `evaluate` 方法,注意 UDTF 函数的返回值必须是 Array 类型。 - - ```sql - public class UDTFStringTest { - public ArrayList evaluate(String value, String separator) { - if (value == null || separator == null) { - return null; - } else { - return new ArrayList<>(Arrays.asList(value.split(separator))); - } - } - } - ``` - -- 创建 UDTF:这里会默认创建两个对应的函数 `java-utdf`和 `java-utdf_outer`, `outer`的后缀在表函数生成 0 行数据时添加一行`Null`数据。 - - ```sql - CREATE TABLES FUNCTION java-utdf(string, string) RETURNS array PROPERTIES ( - "file"="file:///pathTo/java-udaf.jar", - "symbol"="org.apache.doris.udf.demo.UDTFStringTest", - "always_nullable"="true", - "type"="JAVA_UDF" - ); - ``` - -:::info 备注 -参考文档: [Java UDF - UDTF](../../query-data/udf/java-user-defined-function.md#java-udtf-实例介绍) -::: - -### 7-2 生成列 - -生成列是一种特殊的数据库表列,其值由其他列的值计算而来,而不是直接由用户插入或更新。该功能支持预先计算表达式的结果,并存储在数据库中,适用于需要频繁查询或进行复杂计算的场景。 - -生成列可以在数据导入或更新时自动根据预定义的表达式计算结果,并将这些结果持久化存储。在后续的查询过程中,可以直接访问这些已经计算好的结果,而无需在查询时再进行复杂的计算,从而显著减少查询时的计算负担,提升查询性能。 - -从 3.0 版本开始 Apache Doris 支持生成列功能,创建表时可以指定列为 Generated 列。Generated 列可在写入时,根据定义的表达式,自动获取计算结果。相比于 Default value,可以定义更为复杂的表达式,但不可以显式写入指定的值。 - -:::info 备注 - -参考文档: - -[CREATE TABLE AND GENERATED COLUMN](../../sql-manual/sql-statements/table-and-view/table/CREATE-TABLE.md) -::: - -## 8. 功能改进 - -### 8-1. 同步物化视图 - -重构同步物化视图选择逻辑,将选择逻辑从 RBO 迁移至 CBO,使其与异步物化视图保持一致。 - -此功能默认开启。如遇到问题,可使用开关 `set global enable_sync_mv_cost_based_rewrite = false` 回退到 RBO 模式。 - -### 8-2. Routine Load 导入 - -在之前的版本中,Routine Load 存在部分体验性问题:任务在 BE 节点之间调度不均、调度不及时,配置繁琐、需要同时改 FE 和 BE 的多个配置进行调优,稳定性不够高、重启或升级等都可能导致 Routine Load Job 暂停,需要人工介入才能恢复。我们针对这些问题对 Routine Load 做了大量的优化,使得 Routine Load 更高效、稳定且易用,为用户提供更好的体验。 - -- 资源调度方面,改善了任务在 BE 节点之间的调度均衡性,确保任务能够更加均匀地分配到各个节点。对于发生无法恢复错误的 Job 及时暂停,避免无效调度导致的资源浪费,并改进了调度的及时性,提升了 Routine Load 的导入性能。 - -- 参数配置方面,简化了配置过程,用户在大部分环境下无需修改 FE 和 BE 的配置进行调优。同时引入超时参数自动调整机制,避免集群压力增大时,任务持续超时重试。 - -- 稳定性方面,增强了其在各种异常场景下的稳定性,如 FE 切主、BE 滚动升级、Kafka 集群异常等都能持续稳定的工作。优化了 Auto Resume 机制,使得在故障恢复后 Routine Load 能够自动恢复运行,减少了用户的人工介入。 - -## 9 行为变更 - -- `cpu_resource_limit` 将不再支持,所有的资源隔离方式都依赖 Workload Group 实现。 - -- 从 3.0 版本开始请使用 JDK 17,推荐版本 `jdk-17.0.10_linux-x64_bin.tar.gz`。 - -## 立刻开启 3.0 - -在 3.0 版本正式发布之前,存算分离架构在 SelectDB 数百家企业的生产环境已经得到近两年的大规模打磨,同时来自百度、美团、字节跳动、腾讯、阿里、快手、华为、天翼云等企业多名贡献者与社区深度共建,贡献了大量来自真实业务场景下测试 Case,使得 3.0 版本在功能易用性和系统稳定性得到了有力验证,推荐有存算分离需求的用户下载 3.0 版本进行尝鲜。 - -后续我们也将加快发版迭代节奏,力求给所有用户带来更稳定的版本体验。 - - -## 致谢 - -在此再次向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢: - -@133tosakarin、@390008457、@924060929、@AcKing-Sam、@AshinGau、@BePPPower、@BiteTheDDDDt、@ByteYue、@CSTGluigi、@CalvinKirs、@Ceng23333、@DarvenDuan、@DongLiang-0、@Doris-Extras、@Dragonliu2018、@Emor-nj、@FreeOnePlus、@Gabriel39、@GoGoWen、@HappenLee、@HowardQin、@Hyman-zhao、@INNOCENT-BOY、@JNSimba、@JackDrogon、@Jibing-Li、@KassieZ、@Lchangliang、@LemonLiTree、@LiBinfeng-01、@LompleZ、@M1saka2003、@Mryange、@Nitin-Kashyap、@On-Work-Song、@SWJTU-ZhangLei、@StarryVerse、@TangSiyang2001、@Tech-Circle-48、@Thearas、@Vallishp、@WinkerDu、@XieJiann、@XuJianxu、@XuPengfei-1020、@Yukang-Lian、@Yulei-Yang、@Z-SWEI、@ZhongJinHacker、@adonis0147、@airborne12、@allenhooo、@amorynan、@bingquanzhao、@biohazard4321、@bobhan1、@caiconghui、@cambyzju、@caoliang-web、@catpineapple、@cjj2010、@csun5285、@dataroaring、@deardeng、@dongsilun、@dutyu、@echo-hhj、@eldenmoon、@elvestar、@englefly、@feelshana、@feifeifeimoon、@feiniaofeiafei、@felixwluo、@freemandealer、@gavinchou、@ghkang98、@gnehil、@hechao-ustc、@hello-stephen、@httpshirley、@hubgeter、@hust-hhb、@iszhangpch、@iwanttobepowerful、@ixzc、@jacktengg、@jackwener、@jeffreys-cat、@kaijchen、@kaka11chen、@kindred77、@koarz、@kobe6th、@kylinmac、@larshelge、@liaoxin01、@lide-reed、@liugddx、@liujiwen-up、@liutang123、@lsy3993、@luwei16、@luzhijing、@lxliyou001、@mongo360、@morningman、@morrySnow、@mrhhsg、@my-vegetable-has-exploded、@mymeiyi、@nanfeng1999、@nextdreamblue、@pingchunzhang、@platoneko、@py023、@qidaye、@qzsee、@raboof、@rohitrs1983、@rotkang、@ryanzryu、@seawinde、@shoothzj、@shuke987、@sjyango、@smallhibiscus、@sollhui、@sollhui、@spaces-X、@stalary、@starocean999、@superdiaodiao、@suxiaogang223、@taptao、@vhwzx、@vinlee19、@w41ter、@wangbo、@wangshuo128、@whutpencil、@wsjz、@wuwenchi、@wyxxxcat、@xiaokang、@xiedeyantu、@xiedeyantu、@xingyingone、@xinyiZzz、@xy720、@xzj7019、@yagagagaga、@yiguolei、@yongjinhou、@ytwp、@yuanyuan8983、@yujun777、@yuxuan-luo、@zclllyybb、@zddr、@zfr9527、@zgxme、@zhangbutao、@zhangstar333、@zhannngchen、@zhiqiang-hhhh、@ziyanTOP、@zxealous、@zy-kkk、@zzzxl1993、@zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.1.md deleted file mode 100644 index d39861e89ed80..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.1.md +++ /dev/null @@ -1,575 +0,0 @@ ---- -{ - "title": "Release 3.0.1", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.1 版本已于 2024 年 8 月 23 日正式发布。从 3.0 系列版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。同时在 3.0.1 版本中," -} ---- - -亲爱的社区小伙伴们,Apache Doris 3.0.1 版本已于 2024 年 8 月 23 日正式发布。从 3.0 系列版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。同时在 3.0.1 版本中,Apache Doris 在存算分离、湖仓一体、半结构化数据分析、异步物化视图等方面进行了全面更新与改进,欢迎大家下载使用。 - - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - - -## 行为变更 - -### 查询优化器 - -- 新增变量 `use_max_length_of_varchar_in_ctas`,用于控制在执行 `CREATE TABLE AS SELECT`(CTAS)操作时 VARCHAR 类型的长度行为。此变量默认设置为 true。当设置为 true 时,如果 VARCHAR 类型的列源自一个表,则采用推导长度;否则,使用最大长度。当设置为 false 时,VARCHAR 类型将始终使用推导出的长度。[#37069](https://github.com/apache/doris/pull/37069) - -- 所有的数据类型将以小写形式展示,以保持与 MySQL 格式的兼容性。[#38012](https://github.com/apache/doris/pull/38012) - -- 同一查询请求中的多条查询语句现在必须使用分号分隔。[#38670](https://github.com/apache/doris/pull/38670) - -### 查询执行 - -- 将集群在执行 Shuffle 操作后默认的并行任务数设置为 100,这将提高大型集群中查询的稳定性和并发处理能力。[#38196](https://github.com/apache/doris/pull/38196) - -### 存储 - -- `trash_file_expire_time_sec` 的默认值已从 86400 秒更改为 0 秒,这意味着如果误删除文件并清空了 FE 回收站,数据将无法恢复。 - -- 表属性 `enable_mow_delete_on_delete_predicate`(在版本 3.0.0 中引入)已更名为 `enable_mow_light_delete`。 - -- 显式事务现在被禁止对已写入数据的表执行 Delete 操作。 - -- 禁止对含有自增字段的表进行重量级的 Schema Change 操作。 - -## 新特性 - -### 任务调度 - -- 优化内部调度作业的执行逻辑,取消开始时间和立即执行参数之间的强关联。现在任务在创建时可以指定开始时间或选择立即执行,两者不再冲突,从而提高了调度的灵活性。[#36805](https://github.com/apache/doris/pull/36805) - -### 存算分离 - -- 支持动态更改 File Cache 的使用上限。[#37484](https://github.com/apache/doris/pull/37484) - -- Recycler 现在支持对象存储限速以及服务端限速重试功能。[#37663](https://github.com/apache/doris/pull/37663) [#37680](https://github.com/apache/doris/pull/37680) - -### Lakehouse - -- 新增会话变量 `serde_dialect`,可以设置复杂类型的输出格式。[#37039](https://github.com/apache/doris/pull/37039) - -- SQL 拦截功能现在支持外部表 - - - 更多内容,参考文档[SQL 拦截](../../admin-manual/workload-management/sql-blocking.md) - -- Insert Overwrite 现在支持 Iceberg 表。[#37191](https://github.com/apache/doris/pull/37191) - -### 异步物化视图 - -- 支持按小时级别分区上卷构建。[#37678](https://github.com/apache/doris/pull/37678) - -- 支持原子替换异步物化视图定义语句。[#36749](https://github.com/apache/doris/pull/36749) - -- 透明改写现在支持 Insert 语句。[#38115](https://github.com/apache/doris/pull/38115) - -- 透明改写现在支持 Variant 类型。[#37929](https://github.com/apache/doris/pull/37929) - -### 查询执行 - -- Group Concat 函数现在支持 DISTINCT 和 ORDER BY 选项。[#38744](https://github.com/apache/doris/pull/38744) - -### 半结构化数据管理 - -- ES Catalog 现在将 Elasticsearch 中的 `nested` 或 `object` 类型映射为 Doris 的 JSON 类型。[#37101](https://github.com/apache/doris/pull/37101) - -- 新增 `MULTI_MATCH` 函数,支持在多个字段中匹配关键词,并能利用倒排索引加速搜索。[#37722](https://github.com/apache/doris/pull/37722) - -- 新增 `explode_json_object` 函数,可以将 JSON 数据中的 Object 展开为多行。[#36887](https://github.com/apache/doris/pull/36887) - -- 倒排索引现在支持 Memtable 前移,在多副本写入时只需构建一次索引,减少 CPU 消耗并提升性能。[#35891](https://github.com/apache/doris/pull/35891) - -- 新增 `MATCH_PHRASE` 支持正向词距(slop),例如 `msg MATCH_PHRASE 'a b 2+'` 可以匹配包含词 a 和 b,它们之间的词距不超过两个,并且 a 在 b 的前面;而普通的词距(slop)如果没有最后的加号 `+`,则不保证 a 在 b 的前面。[#36356](https://github.com/apache/doris/pull/36356) - -### 其他 - -- 新增加了 FE 参数 `skip_audit_user_list`,在此配置项中的用户操作将不会被记录到审计日志中。[#38310](https://github.com/apache/doris/pull/38310) - - - 更多内容,参考文档[审计插件](../../admin-manual/audit-plugin/) - -## 改进 - -### 存储 - -- 降低单个 BE 内磁盘间均衡导致写失败的可能性。[#38000](https://github.com/apache/doris/pull/38000) - -- 降低 Memtable Limiter 的内存消耗。[#37511](https://github.com/apache/doris/pull/37511) - -- 在替换分区操作时,将旧分区移动到 FE 回收站。[#36361](https://github.com/apache/doris/pull/36361) - -- 优化了 Compaction 的内存消耗。[#37099](https://github.com/apache/doris/pull/37099) - -- 增加了会话变量以控制 JDBC PreparedStatement 的审计日志,默认不打印。[#38419](https://github.com/apache/doris/pull/38419) - -- 优化了 Group Commit 选择 BE 的逻辑。[#35558](https://github.com/apache/doris/pull/35558) - -- 优化了列更新的性能。[#38487](https://github.com/apache/doris/pull/38487) - -- 优化了 `delete bitmap cache` 的使用。[#38761](https://github.com/apache/doris/pull/38761) - -- 添加了配置以控制冷热分层时查询的亲和性。[#37492](https://github.com/apache/doris/pull/37492) - -### 存算分离 - -- 遇到对象存储服务端限速时,现在会自动重试。[#37199](https://github.com/apache/doris/pull/37199) - -- 适应存算分离模式下 Memtable Flush 的线程数。[#38789](https://github.com/apache/doris/pull/38789) - -- 将 Azure 作为编译选项,以便支持在不支持 Azure 的环境中编译。 - -- 优化了对象存储访问限速的可观测性。[#38294](https://github.com/apache/doris/pull/38294) - -- 允许 File Cache TTL 队列进行 LRU 淘汰,增加了 TTL 队列的可用性。[#37312](https://github.com/apache/doris/pull/37312) - -- 优化了存算分离模式下 Balance Writeeditlog IO 次数。[#37787](https://github.com/apache/doris/pull/37787) - -- 优化了存算分离模式下建表的速度,批量发送创建 Tablet 的请求。[#36786](https://github.com/apache/doris/pull/36786) - -- 通过退避重试的方式,优化了本地 File Cache 可能不一致时导致的读取失败问题。[#38645](https://github.com/apache/doris/pull/38645) - -### Lakehouse - -- 优化了 Parquet/ORC 格式读写操作的内存统计。[#37234](https://github.com/apache/doris/pull/37234) - -- Trino Connector Catalog 现在支持谓词下推。[#37874](https://github.com/apache/doris/pull/37874) - -- 新增会话变量 `enable_count_push_down_for_external_table`,用于控制是否开启外部表的 `count(*)` 下推优化。[#37046](https://github.com/apache/doris/pull/37046) - -- 优化了 Hudi 快照读的读取逻辑,当快照为空时返回空集,与 Spark 行为保持一致。[#37702](https://github.com/apache/doris/pull/37702) - -- 优化了 Hive 表分区列的读取性能。[#37377](https://github.com/apache/doris/pull/37377) - -### 异步物化视图 - -- 透明改写计划速度提升了 20%。[#37197](https://github.com/apache/doris/pull/37197) - -- 如果 Group Key 满足数据唯一性,在透明改写时不再进行上卷,以更好地进行嵌套匹配。[#38387](https://github.com/apache/doris/pull/38387) - -- 透明改写现在可以更好地进行聚合消除,以提高嵌套物化视图的匹配成功率。[#36888](https://github.com/apache/doris/pull/36888) - -### MySQL 兼容性 - -- 现在正确填充了 MySQL 协议中结果列的库名、表名和原始名称。[#38126](https://github.com/apache/doris/pull/38126) - -- 支持了形如 `/*+ func(value) */` 的 Hint 格式。[#37720](https://github.com/apache/doris/pull/37720) - -### 查询优化器 - -- 显著提升了复杂查询的计划速度。[#38317](https://github.com/apache/doris/pull/38317) - -- 根据数据分桶数量,自适应选择是否进行 Bucket Shuffle,以避免极端情况下的性能劣化。[#36784](https://github.com/apache/doris/pull/36784) - -- 优化了 SEMI/ANTI JOIN 的代价估算逻辑。[#37951](https://github.com/apache/doris/pull/37951) [#37060](https://github.com/apache/doris/pull/37060) - -- 支持将 Limit 下推到第一阶段聚合,以提升性能。[#34853](https://github.com/apache/doris/pull/34853) - -- 分区裁剪现在支持过滤条件中包含 `date_trunc` 或 `date` 函数。[#38025](https://github.com/apache/doris/pull/38025) [#38743](https://github.com/apache/doris/pull/38743) - -- SQL 缓存现在支持包含用户变量的查询场景。[#37915](https://github.com/apache/doris/pull/37915) - -- 优化了聚合语义不合法时的错误信息。[#38122](https://github.com/apache/doris/pull/38122) - -### 查询执行 - -- 适配了 AggState 的 2.1 到 3.x 兼容性,并修复了 Coredump 问题。[#37104](https://github.com/apache/doris/pull/37104) - -- 重构了不带 Join 时 Local Shuffle 的策略选择。[#37282](https://github.com/apache/doris/pull/37282) - -- 将内部表查询的 Scanner 修改为异步方式,以防止查询内部表时卡住。[#38403](https://github.com/apache/doris/pull/38403) - -- 优化了 Join 算子构建 Hash 表时的 Block Merge 过程。[#37471](https://github.com/apache/doris/pull/37471) - -- 优化了 MultiCast 持有锁的时间。[#37462](https://github.com/apache/doris/pull/37462) - -- 优化了 gRPC 的 keepAliveTime 并增加了链接监测机制,降低了查询过程中因 RPC 错误导致查询失败的概率。[#37304](https://github.com/apache/doris/pull/37304) - -- 当内存超限时,清理 Jemalloc 中的所有 Dirty Pages。[#37164](https://github.com/apache/doris/pull/37164) - -- 优化了 `aes_encrypt` /`decrypt` 函数对常量类型的处理性能。[#37194](https://github.com/apache/doris/pull/37194) - -- 优化了 `json_extract` 函数对常量数据的处理性能。[#36927](https://github.com/apache/doris/pull/36927) - -- 优化了 `ParseUrl` 函数对常量数据的处理性能。[#36882](https://github.com/apache/doris/pull/36882) - -### 半结构化数据管理 - -- Bitmap 索引现在默认使用反向索引,`enable_create_bitmap_index_as_inverted_index` 默认设置为 true。[#36692](https://github.com/apache/doris/pull/36692) - -- 在存算分离模式下,DESC 现在可以查看 VARIANT 类型的子列。[#38143](https://github.com/apache/doris/pull/38143) - -- 移除了倒排索引查询时检查文件是否存在的步骤,以降低远程存储的访问延迟。[#36945](https://github.com/apache/doris/pull/36945) - -- ARRAY / MAP / STRUCT 复杂类型现在支持 AGG 表的 `replace_if_not_null`。[#38304](https://github.com/apache/doris/pull/38304) - -- 现在支持 JSON 数据的转义字符。[#37176](https://github.com/apache/doris/pull/37176) [#37251](https://github.com/apache/doris/pull/37251) - -- 倒排索引查询现在在 MOW 表上与 Duplicate 表一致。[#37428](https://github.com/apache/doris/pull/37428) - -- 优化了倒排索引加速 IN 查询的性能。[#37395](https://github.com/apache/doris/pull/37395) - -- TOPN 查询时减少了多余的内存分配,以提升性能。[#37429](https://github.com/apache/doris/pull/37429) - -- 当创建带分词的倒排索引时,现在自动开启 `support_phrase` 选项,以加速 `match_phrase` 系列短语查询。[#37949](https://github.com/apache/doris/pull/37949) - -### 其他 - -- Audit Log 现在可以记录 SQL 类型。[#37790](https://github.com/apache/doris/pull/37790) - -- 增加对 `information_schema.processlist` Show All FE 的支持。[#38701](https://github.com/apache/doris/pull/38701) - -- 缓存 Ranger 的 `atamask` 和 `rowpolicy`,以加速查询效率。[#37723](https://github.com/apache/doris/pull/37723) - -- 优化 Job Manager 的元数据管理,在修改元数据后立即释放锁,以减少锁持有时间。[#38162](https://github.com/apache/doris/pull/38162) - -## 缺陷修复 - -### 升级 - -- 修复从 2.1 版本升级时 mtmv load 失败的问题。[#38799](https://github.com/apache/doris/pull/38799) - -- 修复在 2.1 版本升级时找不到 `null_type` 的问题。[#39373](https://github.com/apache/doris/pull/39373) - -- 修复从 2.1 版本升级到 3.0 版本时权限持久化的兼容性问题。[#39288](https://github.com/apache/doris/pull/39288) - -### 导入 - -- 修复 CSV 格式解析中,换行符被包围符包围时解析失败的问题。[#38347](https://github.com/apache/doris/pull/38347) - -- 修复 FE 在转发 Group Commit 时可能出现的异常问题。[#38228](https://github.com/apache/doris/pull/38228) [#38265](https://github.com/apache/doris/pull/38265) - -- Group Commit 现在支持新优化器。[#37002](https://github.com/apache/doris/pull/37002) - -- 修复 JDBC setNull 时 Group Commit 报告数据错误的问题。[#38262](https://github.com/apache/doris/pull/38262) - -- 优化 Group Commit 遇到 `delete bitmap lock` 错误时的重试逻辑。[#37600](https://github.com/apache/doris/pull/37600) - -- 修复 Routine Load 不能使用 CSV 包围符和转义符的问题。[#38402](https://github.com/apache/doris/pull/38402) - -- 修复 Routine Load Job 名字大小写混用时无法显示的问题。[#38523](https://github.com/apache/doris/pull/38523) - -- 优化 FE 主从切换时主动恢复 Routine Load 的逻辑。[#37876](https://github.com/apache/doris/pull/37876) - -- 修复 Kafka 中数据全部过期时 Routine Load 暂停的问题。[#37288](https://github.com/apache/doris/pull/37288) - -- 修复 `show routine load` 返回空结果的问题。[#38199](https://github.com/apache/doris/pull/38199) - -- 修复 Routine Load 多表流式导入时的内存泄露问题。[#38255](https://github.com/apache/doris/pull/38255) - -- 修复 Stream Load 不返回 Error URL 的问题。[#38325](https://github.com/apache/doris/pull/38325) - -- 修复 Load Channel 可能泄露的问题。[#38031](https://github.com/apache/doris/pull/38031) [#37500](https://github.com/apache/doris/pull/37500) - -- 修复导入少于预期的 Segment 时可能不报错的问题。[#36753](https://github.com/apache/doris/pull/36753) - -- 修复 Load Stream 泄露的问题。[#38912](https://github.com/apache/doris/pull/38912) - -- 优化下线节点对导入操作的影响。[#38198](https://github.com/apache/doris/pull/38198) - -- 修复 Insert Into 空数据情况下事务不结束的问题。[#38991](https://github.com/apache/doris/pull/38991) - -### 存储 - -**01 备份与恢复** - -- 修复备份恢复后表无法写入的问题。[#37089](https://github.com/apache/doris/pull/37089) - -- 修复备份恢复后视图中数据库名称错误的问题。[#37412](https://github.com/apache/doris/pull/37412) - -**02 Compaction(压缩)** - -- 修复有序数据压缩时 Cumu Compaction 处理 Delete 错误的的问题。[#38742](https://github.com/apache/doris/pull/38742) - -- 修复顺序压缩优化导致的聚合表重复 Key 问题。[#38224](https://github.com/apache/doris/pull/38224) - -- 修复大宽表下压缩操作导致 Coredump 的问题。[#37960](https://github.com/apache/doris/pull/37960) - -- 修复压缩任务并发统计不准确导致的压缩饥饿问题。[#37318](https://github.com/apache/doris/pull/37318) - -**03 MOW Unique Key(MOW 唯一键)** - -- 解决累计压缩删除 Delete Sign 导致的副本间数据不一致问题。[#37950](https://github.com/apache/doris/pull/37950) - -- 在新的优化器下,MOW Delete 表现在使用部分列更新。[#38751](https://github.com/apache/doris/pull/38751) - -- 修复存算分离下 MOW 表可能出现的重复 Key 问题。[#39018](https://github.com/apache/doris/pull/39018) - -- 修复 MOW Unique 和 Duplicate 表不能修改列顺序的问题。[#37067](https://github.com/apache/doris/pull/37067) - -- 修复 Segcompaction 可能导致的数据正确性问题。[#37760](https://github.com/apache/doris/pull/37760) - -- 修复列更新可能出现的内存泄露问题。[#37706](https://github.com/apache/doris/pull/37706) - -**04 其他** - -- 修复 TOPN 查询可能出现的小概率异常。[#39119](https://github.com/apache/doris/pull/39119) [#39199](https://github.com/apache/doris/pull/39199) - -修复 FE 重启时自增 ID 可能重复的问题。[#37306](https://github.com/apache/doris/pull/37306) - -- 修复 Delete 操作优先级队列可能的排队问题。[#37169](https://github.com/apache/doris/pull/37169) - -- 优化 Delete 重试逻辑。[#37363](https://github.com/apache/doris/pull/37363) - -- 修复新优化器下建表语句中 `bucket = 0` 的问题。[#38971](https://github.com/apache/doris/pull/38971) - -- 修复 FE 生成 Image 失败时错误地报告成功的问题。[#37508](https://github.com/apache/doris/pull/37508) - -- 修复 FE 下线节点时使用错误 nodename 可能导致的 FE 成员不一致问题。[#37987](https://github.com/apache/doris/pull/37987) - -- 修复 CCR 增加分区可能失败的问题。[#37295](https://github.com/apache/doris/pull/37295) - -- 修复倒排索引文件中 `int32` 溢出的问题。[#38891](https://github.com/apache/doris/pull/38891) - -- 修复 TRUNCATE TABLE 失败可能导致 BE 不能下线的问题。[#37334](https://github.com/apache/doris/pull/37334) - -- 修复因空指针导致的 Publish 无法继续的问题。[#37724](https://github.com/apache/doris/pull/37724) [#37531](https://github.com/apache/doris/pull/37531) -- 修复手动触发磁盘迁移时可能出现的 Coredump 问题。[#37712](https://github.com/apache/doris/pull/37712) - -### 存算分离 - -- 修复 `show create table` 可能会展示两次 `file_cache_ttl_seconds` 属性的问题。[#38052](https://github.com/apache/doris/pull/38052) - -- 修复设置 File Cache TTL 后,Segment Footer TTL 未正确设置的问题。[#37485](https://github.com/apache/doris/pull/37485) - -- 修复 File Cache 因大量转换 Cache 类型可能会导致 Coredump 的问题。[#38518](https://github.com/apache/doris/pull/38518) - -- 修复 File Cache 可能会泄漏 fd 的问题。[#38051](https://github.com/apache/doris/pull/38051) - -- 修复 Schema Change Job 覆盖 Compaction Job 导致 Base Tablet Compaction 不能正常完成的问题。[#38210](https://github.com/apache/doris/pull/38210) - -- 修复 Base Compaction Score 因 Data Race 可能会不准确的问题。[#38006](https://github.com/apache/doris/pull/38006) - -- 修复导入返回的错误信息可能不能正确上传到对象存储的问题。[#38359](https://github.com/apache/doris/pull/38359) - -- 修复存算分离模式和存算一体模式 2PC 导入返回信息不一致的问题。[#38076](https://github.com/apache/doris/pull/38076) - -- 修复 File Cache 预热未正确设置 File Size 导致 Coredump 的问题。[#38939](https://github.com/apache/doris/pull/38939) - -- 修复部分列更新没有正确出列 Delete 的问题。[#37151](https://github.com/apache/doris/pull/37151) - -- 修复存算分离模式权限持久化兼容问题。[#38136](https://github.com/apache/doris/pull/38136) [#37708](https://github.com/apache/doris/pull/37708) - -- 修复 Observer 遇到 `-230` 错误没有进行正确重试的问题。[#37625](https://github.com/apache/doris/pull/37625) - -- 修复 `show load` 带条件时没有正确 analyze 的问题。[#37656](https://github.com/apache/doris/pull/37656) - -- 修复存算分离模式下 `show streamload` 导致 BE Coredump 的问题。[#37903](https://github.com/apache/doris/pull/37903) - -- 修复 `copy into` 在严格模式下未正确校验列名的问题。[#37650](https://github.com/apache/doris/pull/37650) - -- 修复一表多流导入没有权限的问题。[#38878](https://github.com/apache/doris/pull/38878) - -- 修复 getVersionUpdateTimeMs 可能会越界的问题。[#38074](https://github.com/apache/doris/pull/38074) - -- 修复 FE Azure Blob List 没有实现正确的问题。[#37986](https://github.com/apache/doris/pull/37986) - -- 修复 Azure Blob 回收时间计算不准确导致不触发回收的问题。[#37535](https://github.com/apache/doris/pull/37535) - -- 修复存算分离模式下倒排索引文件漏删的问题。[#38306](https://github.com/apache/doris/pull/38306) - -### Lakehouse - -- 修复 Oracle Catalog 读取二进制数据的问题。[#37078](https://github.com/apache/doris/pull/37078) - -- 修复多 FE 情况下,获取外表元数据可能导致的死锁问题。[#37756](https://github.com/apache/doris/pull/37756) - -- 修复 JNI Scanner 打开失败导致 BE 节点宕机的问题。[#37697](https://github.com/apache/doris/pull/37697) - -- 修复 Trino Connector Catalog 读取 Date 类型慢的问题。[#37266](https://github.com/apache/doris/pull/37266) - -- 优化 Hive Catalog 的 Kerberos 认证逻辑。[#37301](https://github.com/apache/doris/pull/37301) - -- 修复解析 MinIO 属性时,Region 属性可能解析错误的问题。[#37249](https://github.com/apache/doris/pull/37249) - -- 修复 FE 创建过多的 FileSystem 导致内存泄漏的问题。[#36954](https://github.com/apache/doris/pull/36954) - -- 修复读取 Paimon 时区信息错误的问题。[#37716](https://github.com/apache/doris/pull/37716) - -- 修复 Hive 写回操作可能导致的线程泄漏问题。[#36990](https://github.com/apache/doris/pull/36990) - -- 修复开启 Hive Metastore Event 同步功能导致的空指针问题。[#38421](https://github.com/apache/doris/pull/38421) - -- 修复创建 Catalog 时报错信息不清晰或卡死的情况。[#37551](https://github.com/apache/doris/pull/37551) - -- 修复读取 Hive Text 格式表时与 Hive 行为不一致的问题。[#37638](https://github.com/apache/doris/pull/37638) - -- 修复切换 Catalog 和 Database 逻辑错误的问题。[#37828](https://github.com/apache/doris/pull/37828) - -### MySQL 兼容性 - -- 修复开启 SSL 后,MySQL 协议中某些 Flag 设置不正确的问题。[#38086](https://github.com/apache/doris/pull/38086) - -### 异步物化视图 - -- 修复基表分区数量非常多时可能导致的构建失败问题。[#37589](https://github.com/apache/doris/pull/37589) - -- 修复构建嵌套物化视图时,即使可以进行分区刷新,也错误地进行了全表刷新的问题。[#38698](https://github.com/apache/doris/pull/38698) - -- 修复分区刷新在分析分区依赖时,不能处理同时存在合法和不合法依赖关系的问题。[#38367](https://github.com/apache/doris/pull/38367) - -- 修复最终返回结果包含 NULL Type 导致异步物化视图可能构建失败的问题。[#37019](https://github.com/apache/doris/pull/37019) - -- 当包含同名的同步物化视图和异步物化视图时,透明改写可能出现规划错误。[#37311](https://github.com/apache/doris/pull/37311) - -### 同步物化视图 - -- 现在改写后的同步物化视图也可以正确地进行分区裁剪。[#38527](https://github.com/apache/doris/pull/38527) - -- 同步物化视图改写时,不再选择数据未就绪的同步物化视图。[#38148](https://github.com/apache/doris/pull/38148) - -### 查询优化器 - -- 修复查询和 Delete 等操作同时进行可能导致的死锁问题。[#38660](https://github.com/apache/doris/pull/38660) - -- 修复分桶裁剪在 Decimal 列分桶上可能错误裁剪的问题。[#37889](https://github.com/apache/doris/pull/37889) - -- 修复当 Mark Join 参与 Join Reorder 时,规划可能出现错误的问题。[#39152](https://github.com/apache/doris/pull/39152) - -- 修复关联子查询关联条件不是简单列时,结果错误的问题。[#37644](https://github.com/apache/doris/pull/37644) - -- 修复分区裁剪不能正确处理 or 表达式的问题。[#38897](https://github.com/apache/doris/pull/38897) - -- 修复当进行 JOIN 和 AGG 交换执行顺序的优化时,可能导致的规划报错问题。[#37343](https://github.com/apache/doris/pull/37343) - -- 修复 `str_to_date` 在 DATEV1 类型上进行常量折叠计算错误的问题。[#37360](https://github.com/apache/doris/pull/37360) - -- 修复 ACOS 函数常量折叠返回非 NaN 的问题。[#37932](https://github.com/apache/doris/pull/37932) - -- 修复偶尔出现的规划报错 "The children format needs to be [WhenClause+, DefaultValue?]" 的问题。[#38491](https://github.com/apache/doris/pull/38491) - -- 修复当投影中包含窗口函数,且同时存在一个列的原始列和其别名时,规划可能出现错误的问题。[#38166](https://github.com/apache/doris/pull/38166) - -- 修复当聚合参数中含有 Lambda 表达式,可能导致规划报错的问题。[#37109](https://github.com/apache/doris/pull/37109) - -- 修复在极端情况下可能出现的 Insert 报错:"MultiCastDataSink cannot be cast to DataStreamSink" 的问题。[#38526](https://github.com/apache/doris/pull/38526) - -- 修复创建表时,新优化器对于传入的 `char(0)/varchar(0)` 没有正确处理的问题。[#38427](https://github.com/apache/doris/pull/38427) - -- 修复 `char(255) toSql` 行为不正确的问题。[#37340](https://github.com/apache/doris/pull/37340) - -- 修复 `agg_state `类型内部的 nullable 属性可能规划错误的问题。[#37489](https://github.com/apache/doris/pull/37489) - -- 修复 Mark Join 时行数统计不准确的问题。[#38270](https://github.com/apache/doris/pull/38270) - -### 查询执行 - -- 修复多个场景下,Pipeline 执行引擎被卡住导致查询不结束的问题。[#38657](https://github.com/apache/doris/pull/38657) [#38206](https://github.com/apache/doris/pull/38206) [#38885](https://github.com/apache/doris/pull/38885) [#38151](https://github.com/apache/doris/pull/38151) [#37297](https://github.com/apache/doris/pull/37297) - -- 修复 NULL 和非 NULL 列在差集计算时导致的 Coredump 问题。[#38750](https://github.com/apache/doris/pull/38750) - -- 修复 Delete 语句中 DECIMAL 类型为纯小数时报错的问题。[#37801](https://github.com/apache/doris/pull/37801) - -- 修复 `width_bucket` 函数结果错误的问题。[#37892](https://github.com/apache/doris/pull/37892) - -- 修复当单行数据很大且返回结果集也很大时(超过 2GB)查询报错的问题。[#37990](https://github.com/apache/doris/pull/37990) - -- 修复单副本导入时 rpc 链接没有正确释放导致的 Coredump 问题。[#38087](https://github.com/apache/doris/pull/38087) - -- 修复 `foreach` 函数处理 NULL 导致的 Coredump 问题。[#37349](https://github.com/apache/doris/pull/37349) - -- 修复 stddev 在 DecimalV2 类型下结果错误的问题。[#38731](https://github.com/apache/doris/pull/38731) - -- 修复` bitmap union` 计算性能慢的问题。[#37816](https://github.com/apache/doris/pull/37816) - -- 修复 Profile 中聚合算子的 RowsProduced 没有设置的问题。[#38271](https://github.com/apache/doris/pull/38271) - -- 修复 Hash Join 下计算 Hash 表 Bucket 数目时溢出的问题。[#37193](https://github.com/apache/doris/pull/37193) [#37493](https://github.com/apache/doris/pull/37493) - -- 修复 `jemalloc cache memory tracker` 记录不准确的问题。[#37464](https://github.com/apache/doris/pull/37464) - -- 增加配置项 `enable_stacktrace`,用户可以通过设置此选项来控制 BE 日志中是否输出异常栈。[#37713](https://github.com/apache/doris/pull/37713) - -- 修复 Arrow Flight SQL 在设置 `enable_parallel_result_sink` 为 false 时不能正常工作的问题。[#37779](https://github.com/apache/doris/pull/37779) - -- 修复错误地使用 Colocate Join 的问题。[#37361](https://github.com/apache/doris/pull/37361) [#37729](https://github.com/apache/doris/pull/37729) - -- 修复 `round` 函数在 DECIMAL128 类型上计算溢出的问题。[#37733](https://github.com/apache/doris/pull/37733) [#38106](https://github.com/apache/doris/pull/38106) - -- 修复 `sleep` 函数传参 const 字符串时的 Coredump 问题。[#37681](https://github.com/apache/doris/pull/37681) - -- 增加审计日志的队列长度,解决了数千并发场景下审计日志不能正常记录的问题。[#37786](https://github.com/apache/doris/pull/37786) - -- 修复创建 Workload Group 导致的线程数过多,导致 BE Coredump 的问题。[#38096](https://github.com/apache/doris/pull/38096) - -- 修复 MULTI_MATCH_ANY 函数导致的 Coredump 问题。[#37959](https://github.com/apache/doris/pull/37959) - -- 修复`insert overwrite auto partition `导致事务回滚的问题。[#38103](https://github.com/apache/doris/pull/38103) - -- 修复 TimeUtils formatter 没有使用正确时区的问题。[#37465](https://github.com/apache/doris/pull/37465) - -- 修复 week/yearweek 常量折叠场景下结果错误的问题。[#37376](https://github.com/apache/doris/pull/37376) - -- 修复 `convert_tz` 函数结果错误的问题。[#37358](https://github.com/apache/doris/pull/37358) [#38764](https://github.com/apache/doris/pull/38764) - -- 修复 `collect_set` 函数结合窗口函数使用时 Coredump 的问题。[#38234](https://github.com/apache/doris/pull/38234) - -- 修复 `percentile_approx` 在滚动升级过程中导致的 Coredump 问题。[#39321](https://github.com/apache/doris/pull/39321) - -- 修复 `mod` 函数在异常输入时导致的 Coredump 问题。[#37999](https://github.com/apache/doris/pull/37999) - -- 修复 Broadcast Join 在 probe 开始运行时 Hash Table 构建未完成的问题。[#37643](https://github.com/apache/doris/pull/37643) - -- 修复多线程下执行相同表达式可能导致 Java UDF 结果错误的问题。[#38612](https://github.com/apache/doris/pull/38612) - -- 修复 `conv` 函数返回类型错误导致的溢出问题。[#38001](https://github.com/apache/doris/pull/38001) - -- 修复 `json_replace` 函数返回类型不正确的问题。[#3701](https://github.com/apache/doris/pull/37014) - -- 修复 `percentile` 聚合函数 Nullable 属性设置不合理的问题。[#37330](https://github.com/apache/doris/pull/37330) - -- 修复 `histogram` 函数结果不稳定的问题。[#38608](https://github.com/apache/doris/pull/38608) - -- 修复 Profile 中 Task State 显示不正确的问题。[#38082](https://github.com/apache/doris/pull/38082) - -- 修复系统刚启动时部分 query 被错误取消的问题。[#37662](https://github.com/apache/doris/pull/37662) - -### 半结构化数据管理 - -- 修复时间序列压缩的一些问题。[#39170](https://github.com/apache/doris/pull/39170) [#39176](https://github.com/apache/doris/pull/39176) - -- 修复压缩过程中索引大小统计错误的问题。[#37232](https://github.com/apache/doris/pull/37232) - -- 修复倒排索引对不分词的超长字符串匹配可能不正确的问题。[#37679](https://github.com/apache/doris/pull/37679) [#38218](https://github.com/apache/doris/pull/38218) - -- 修复 `array_range` 和 `array_with_const` 函数在大数据量下内存占用高的问题。[#38284](https://github.com/apache/doris/pull/38284) [#37495](https://github.com/apache/doris/pull/37495) - -- 修复选择 ARRAY / MAP / STRUCT 类型的列时可能出现的 Coredump 问题。[#37936](https://github.com/apache/doris/pull/37936) - -- 修复 Stream Load 指定 jsonpath 时 simdjson 解析错误导致导入失败的问题。[#38490](https://github.com/apache/doris/pull/38490) - -- 修复 JSON 数据中有重复 Key 时处理异常的问题。[#38146](https://github.com/apache/doris/pull/38146) - -- 修复 DROP INDEX 后可能出现查询报错的问题。[#37646](https://github.com/apache/doris/pull/37646) - -- 修复索引压缩时在合并行检查中的错误返回问题。[#38732](https://github.com/apache/doris/pull/38732) - -- 倒排索引 v2 格式现在支持修改列名。[#38079](https://github.com/apache/doris/pull/38079) - -- 修复没有索引时 MATCH 函数匹配空字符串时 Coredump 的问题。[#37947](https://github.com/apache/doris/pull/37947) - -- 修复倒排索引对 NULL 值处理的问题。[#37921](https://github.com/apache/doris/pull/37921) [#37842](https://github.com/apache/doris/pull/37842) [#38741](https://github.com/apache/doris/pull/38741) - -- 修复 FE 重启后 `row_store_page_size` 不正确的问题。[#38240](https://github.com/apache/doris/pull/38240) - -### 其他 - -- 修复时区配置问题,现在默认时区不再固定为 UTC+8,而是从系统配置中获取。[#37294](https://github.com/apache/doris/pull/37294) - -- 修复由于存在多个 JSR 规范实现导致使用 Ranger 时出现的类冲突问题。[#37575](https://github.com/apache/doris/pull/37575) - -- 修复部分 BE 代码中字段可能未初始化的问题。[#37403](https://github.com/apache/doris/pull/37403) - -- 修复 Random Distributed 表 Delete 语句报错的问题。[#37985](https://github.com/apache/doris/pull/37985) - -- 修复创建同步物化视图时错误地需要基表的 `alter_priv` 权限问题。[#38011](https://github.com/apache/doris/pull/38011) - -- 修复当 TVF 中使用了 Resource 时未对 Resource 鉴权的问题。[#36928](https://github.com/apache/doris/pull/36928) - - -## 致谢 - -@133tosakarin、 @924060929、 @AshinGau、 @Baymine、 @BePPPower、 @BiteTheDDDDt、 @ByteYue、 @CalvinKirs、 @Ceng23333、 @DarvenDuan、 @FreeOnePlus、 @Gabriel39、 @HappenLee、 @JNSimba、 @Jibing-Li、 @KassieZ、 @Lchangliang、 @LiBinfeng-01、 @Mryange、 @SWJTU-ZhangLei、 @TangSiyang2001、 @Tech-Circle-48、 @Vallishp、 @Yukang-Lian、 @Yulei-Yang、 @airborne12、 @amorynan、 @bobhan1、 @cambyzju、 @cjj2010、 @csun5285、 @dataroaring、 @deardeng、 @eldenmoon、 @englefly、 @feiniaofeiafei、 @felixwluo、 @freemandealer、 @gavinchou、 @ghkang98、 @hello-stephen、 @hubgeter、 @hust-hhb、 @jacktengg、 @kaijchen、 @kaka11chen、 @keanji-x、 @liaoxin01、 @liutang123、 @luwei16、 @luzhijing、 @lxr599、 @morningman、 @morrySnow、 @mrhhsg、 @mymeiyi、 @platoneko、 @qidaye、 @qzsee、 @seawinde、 @shuke987、 @sollhui、 @starocean999、 @suxiaogang223、 @w41ter、 @wangbo、 @wangshuo128、 @whutpencil、 @wsjz、 @wuwenchi、 @wyxxxcat、 @xiaokang、 @xiedeyantu、 @xinyiZzz、 @xy720、 @xzj7019、 @yagagagaga、 @yiguolei、 @yujun777、 @z404289981、 @zclllyybb、 @zddr、 @zfr9527、 @zhangbutao、 @zhangstar333、 @zhannngchen、 @zhiqiang-hhhh、 @zjj、 @zy-kkk、 @zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.2.md deleted file mode 100644 index 92b773a3d188f..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.2.md +++ /dev/null @@ -1,323 +0,0 @@ ---- -{ - "title": "Release 3.0.2", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.2 版本已于 2024 年 10 月 15 日正式发布。 3.0.2 版本在存算分离、存储、湖仓一体、查询优化器以及执行引擎持续升级改进,欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 3.0.2 版本已于 2024 年 10 月 15 日正式发布。** 3.0.2 版本在存算分离、存储、湖仓一体、查询优化器以及执行引擎持续升级改进,欢迎大家下载使用。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - -## 行为变更 - -### 存储 - -- 限制单个备份任务的 Tablet 数量,避免 FE 内存溢出。[#40518](https://github.com/apache/doris/pull/40518) -- `SHOW PARTITIONS`命令现在显示分区的`CommittedVersion`。[#28274](https://github.com/apache/doris/pull/28274) - -### 其他 - -- `fe.log`的默认打印模式(异步)现在包含文件行号信息。如果遇到因行号输出导致的性能问题,请选择 BRIEF 模式。[#39419](https://github.com/apache/doris/pull/39419) -- 默认将 Session 变量`ENABLE_PREPARED_STMT_AUDIT_LOG` 的值从 `true` 更改为 `false`,不再打印 Prepare 语句的审计日志。[#38865](https://github.com/apache/doris/pull/38865) -- 将 Session 变量 `max_allowed_packet` 的默认值从 1MB 调整为 16MB,与 MySQL 8.4 保持一致。[#38697](https://github.com/apache/doris/pull/38697) -- FE 和 BE 的 JVM 默认使用 UTF-8 字符集。[#39521](https://github.com/apache/doris/pull/39521) - -## 新特性 - -### 存储 - -- 备份和恢复现在支持清除不在备份中的表或分区。[#39028](https://github.com/apache/doris/pull/39028) - -### 存算分离 - -- 支持并行回收多个 Tablet 上的过期数据。[#37630](https://github.com/apache/doris/pull/37630) -- 支持通过`ALTER`语句变更 Storage Vault。[#38685](https://github.com/apache/doris/pull/38685) [#37606](https://github.com/apache/doris/pull/37606) -- 支持单个事务同时导入大量 Tablet(5000+)(实验性功能)。[#38243](https://github.com/apache/doris/pull/38243) -- 支持自动中止因节点重启等原因导致的未决事务,解决未决事务阻塞 Secommission 或 Schema Change 的问题。[#37669](https://github.com/apache/doris/pull/37669) -- 新增 Session 变量 `enable_segment_cache` 控制查询时是否使用 Segment Cache(默认为`true`)。[#37141](https://github.com/apache/doris/pull/37141) -- 解决存算分离模式下进行 Schema Change 时不能大量导入的问题。[#39558](https://github.com/apache/doris/pull/39558) -- 支持在存算分离模式下允许添加多个 Follower 角色的 FE。[#38388](https://github.com/apache/doris/pull/38388) -- 支持在无盘或低性能 HDD 环境下使用内存作为 File Cache 以加速查询。[#38811](https://github.com/apache/doris/pull/38811) - -### Lakehouse - -- 新增 Lakesoul Catalog -- 新增系统表 `catalog_meta_cache_statistics`,用于查看 External Catalog 中各类元数据缓存的使用情况。[#40155](https://github.com/apache/doris/pull/40155) - -### 查询优化器 - -- 支持 `is [not] true/false`表达式。[#38623](https://github.com/apache/doris/pull/38623) - -### 查询执行 - -- 新增 CRC32 函数。[#38204](https://github.com/apache/doris/pull/38204) -- 新增聚合函数 Skew 和 Kurt。[#41277](https://github.com/apache/doris/pull/41277) -- 将 Profile 持久化到 FE 的磁盘中,以保留更多的 Profile。[#33690](https://github.com/apache/doris/pull/33690) -- 新增系统表`workload_group_privileges`以查看 Workload Group 相关的权限信息。[#38436](https://github.com/apache/doris/pull/38436) -- 新增系统表`workload_group_resource_usage`以监控 Workload Group 的资源统计信息。[#39177](https://github.com/apache/doris/pull/39177) -- Workload Group 现在支持限制本地 IO 和远程 IO 的读取。[#39012](https://github.com/apache/doris/pull/39012) -- Workload Group 现在支持 cgroupv2 以限制 CPU 使用。[#39374](https://github.com/apache/doris/pull/39374) -- 新增系统表`information_schema.partitions`以查看一些建表属性。[#40636](https://github.com/apache/doris/pull/40636) - -### 其他 - -- 支持使用`SHOW`语句展示 BE 的配置信息,例如`SHOW BACKEND CONFIG LIKE ${pattern}`。[#36525](https://github.com/apache/doris/pull/36525) - -## 改进与优化 - -### 导入 - -- 优化了 Routine Load 在遇到 Kafka 频繁 EOF 时的导入效率。[#39975](https://github.com/apache/doris/pull/39975) -- Stream Load 结果中增加了读取 HTTP 数据的耗时时间`ReceiveDataTimeMs`,可以快速判断网络原因导致的 Stream Load 慢问题。[#40735](https://github.com/apache/doris/pull/40735) -- 优化了 Routine Load 超时逻辑,避免了倒排和 MOW 写入频繁超时问题。[#40818](https://github.com/apache/doris/pull/40818) - -### 存储 - -- 支持批量添加分区。[#37114](https://github.com/apache/doris/pull/37114) - -### 存算分离 - -- 添加了 meta-service HTTP 接口`/MetaService/http/show_meta_ranges`,便于统计 FDB 中 KV 分布组成。[#39208](https://github.com/apache/doris/pull/39208) -- meta-service/recycler stop 脚本确保进程完全退出后才返回。[#40218](https://github.com/apache/doris/pull/40218) -- 支持使用 Session 变量`version_comment`(Cloud Mode)来显示当前部署模式为存算分离模式。[#38269](https://github.com/apache/doris/pull/38269) -- 修复了提交事务失败时返回的详细消息。[#40584](https://github.com/apache/doris/pull/40584) -- 支持使用一个 meta-service 进程同时提供元数据服务和数据回收服务。[#40223](https://github.com/apache/doris/pull/40223) -- 优化了 file_cache 的默认配置,避免了未设置时可能导致的无法正确运行的问题。[#41421](https://github.com/apache/doris/pull/41421) [#41507](https://github.com/apache/doris/pull/41507) -- 通过批量获取多个 Partition 的 Version 提高了查询性能。[#38949](https://github.com/apache/doris/pull/38949) -- 延迟变更 Tablet 的分布,避免了临时网络抖动引起的查询性能问题。[#40371](https://github.com/apache/doris/pull/40371) -- 优化了 Balance 逻辑中的读写锁。[#40633](https://github.com/apache/doris/pull/40633) -- 提高了 File Cache 在重启/宕机等情况下处理 TTL 文件名的鲁棒性。[#40226](https://github.com/apache/doris/pull/40226) -- 增加了 BE HTTP 接口`/api/file_cache?op=hash`,方便计算 Segment 文件在盘上的 Hash 文件名。[#40831](https://github.com/apache/doris/pull/40831) -- 优化了统一命名,兼容使用 Compute Group 代表 BE 分组(原 Cloud Cluster)。[#40767](https://github.com/apache/doris/pull/40767) -- 优化了主键表计算 Delete Bitmap 时获取锁的等待时间。[#40341](https://github.com/apache/doris/pull/40341) -- 当主键表 Delete Bitmap 数量多时,通过提前合并多个 Delete Bitmap 来优化查询时 CPU 消耗高的问题。[#40204](https://github.com/apache/doris/pull/40204) -- 支持通过 SQL 语句管理存算分离模式下的 FE/BE 节点,隐藏部署存算分离模式时直接和 meta-service 交互的逻辑。[#40264](https://github.com/apache/doris/pull/40264) -- 增加了快速部署 FDB 脚本。[#39803](https://github.com/apache/doris/pull/39803) -- 优化了`SHOW CACHE HOTSPOT`的输出,使其和其他`SHOW`语句的列名风格统一。[#41322](https://github.com/apache/doris/pull/41322) -- 使用 Storage Vault 作为存储后端时,不允许使用`latest_fs()`以规避同个表绑定不同的存储后端。[#40516](https://github.com/apache/doris/pull/40516) -- 优化了 MOW 表导入时计算 Delete Bitmap 的超时策略。[#40562](https://github.com/apache/doris/pull/40562) [#40333](https://github.com/apache/doris/pull/40333) -- 存算分离模式下 be.conf 的 `enable_file_cache` 默认开启。[#41502](https://github.com/apache/doris/pull/41502) - -### Lakehouse - -- 读取 CSV 格式的表时,支持通过会话`keep_carriage_return`设置对`\r`符号的读取行为。[#39980](https://github.com/apache/doris/pull/39980) -- BE 的 JVM 最大内存默认调整为 2GB(仅影响新部署用户)。[#41403](https://github.com/apache/doris/pull/41403) -- Hive Catalog 新增`hive.recursive_directories_table`和`hive.ignore_absent_partitions`属性,用于指定是否递归遍历数据目录,以及是否忽略缺失的分区。[#39494](https://github.com/apache/doris/pull/39494) -- 优化了 Catalog 刷新逻辑,避免了刷新产生大量连接。[#39205](https://github.com/apache/doris/pull/39205) -- `SHOW CREATE DATABASE`和`SHOW CREATE TABLE`针对外部数据源,增加了 Location 信息显示。[#39179](https://github.com/apache/doris/pull/39179) -- 新优化器支持通过`INSERT INTO`命令将数据插入到 JDBC 外表。[#41511](https://github.com/apache/doris/pull/41511) -- MaxCompute Catalog 支持复杂类型。[#39259](https://github.com/apache/doris/pull/39259) -- 优化了外表数据分片的读取合并逻辑。[#38311](https://github.com/apache/doris/pull/38311) -- 优化了外表元数据缓存的一些刷新策略。[#38506](https://github.com/apache/doris/pull/38506) -- Paimon 表支持`IN/NOT IN`谓词下推。[#38390](https://github.com/apache/doris/pull/38390) -- 兼容 Paimon 0.9 版本创建的 Parquet 格式的表。[#41020](https://github.com/apache/doris/pull/41020) - -### 异步物化视图 - -- 构建异步物化视图支持同时使用 Immediate 和 Starttime。[#39573](https://github.com/apache/doris/pull/39573) -- 基于外表的异步物化视图,在刷新物化视图前会刷新外表的元数据缓存,保证基于最新外表数据构建。[#38212](https://github.com/apache/doris/pull/38212) -- 分区增量构建支持按照周和季度粒度上卷。[#39286](https://github.com/apache/doris/pull/39286) - -### 查询优化器 - -- 聚合函数`GROUP_CONCAT`现在支持同时使用`DISTINCT`和`ORDER BY`。[#38080](https://github.com/apache/doris/pull/38080) -- 优化了统计信息的收集、使用,以及估算行数和代价计算的逻辑,现在可以生成更高效稳定的执行计划。 -- 窗口函数分区数据预过滤支持包含多个窗口函数的情况。[#38393](https://github.com/apache/doris/pull/38393) - -### 查询执行 - -- 通过并行运行 Prepare Pipeline Task 来降低查询延时。[#40874](https://github.com/apache/doris/pull/40874) -- 在 Profile 中显示 Catalog 信息。[#38283](https://github.com/apache/doris/pull/38283) -- 优化了`IN`过滤条件的计算性能。[#40917](https://github.com/apache/doris/pull/40917) -- 在 K8S 中支持 cgroupv2 来限制 Doris 的内存使用。[#39256](https://github.com/apache/doris/pull/39256) -- 优化了字符串到 DATETIME 类型的转换性能。[#38385](https://github.com/apache/doris/pull/38385) -- 当字符串是一个小数时,支持将其 CAST 为 INT,这将更兼容 MySQL 的某些行为。[#38847](https://github.com/apache/doris/pull/38847) - -### 半结构化数据管理 - -- 优化了倒排索引匹配的性能。[#41122](https://github.com/apache/doris/pull/41122) -- 暂时禁止在数组上创建带分词的倒排索引。[#39062](https://github.com/apache/doris/pull/39062) -- `explode_json_array`支持二进制 JSON 类型。[#37278](https://github.com/apache/doris/pull/37278) -- IP 数据类型支持 BloomFilter 索引。[#39253](https://github.com/apache/doris/pull/39253) -- IP 数据类型支持行存。[#39258](https://github.com/apache/doris/pull/39258) -- ARRAY、MAP、STRUCT 嵌套数据类型支持 Schema Change。[#39210](https://github.com/apache/doris/pull/39210) -- 创建 MTMV 时遇到 VARIANT 数据类型自动截断 KEY。[#39988](https://github.com/apache/doris/pull/39988) -- 查询时懒加载倒排索引提升性能。[#38979](https://github.com/apache/doris/pull/38979) -- `add inverted index file size for open file`。[#37482](https://github.com/apache/doris/pull/37482) -- Compaction 时减少倒排索引访问对象存储接口提升性能。[#41079](https://github.com/apache/doris/pull/41079) -- 增加了 3 个倒排索引相关的 Query Profile Metric。[#36696](https://github.com/apache/doris/pull/36696) -- 减少非 PreparedStatement SQL 的 Cache 开销提升性能。[#40910](https://github.com/apache/doris/pull/40910) -- 预热缓存支持倒排索引。[#38986](https://github.com/apache/doris/pull/38986) -- 倒排索引写入即缓存。[#39076](https://github.com/apache/doris/pull/39076) - -### 兼容性 - -- 修复了 Thrift ID 在 Master 上与 Branch-2.1 不兼容的问题。[#41057](https://github.com/apache/doris/pull/41057) - -### 其他 - -- BE HTTP API 支持鉴权,需要鉴权时将 `config::enable_all_http_auth` 设置为 true(默认为 false)。[#39577](https://github.com/apache/doris/pull/39577) -- 优化了 REFRESH 操作所需的用户权限。从 ALTER 权限放宽到 SHOW 权限。[#39008](https://github.com/apache/doris/pull/39008) -- 减少了调用 `advanceNextId()` 时 nextId 的范围。[#40160](https://github.com/apache/doris/pull/40160) -- 优化了 Java UDF 的缓存机制。[#40404](https://github.com/apache/doris/pull/40404) - -## 缺陷修复 - -### 导入 - -- 修复了`abortTransaction`没有处理返回码的问题。[#41275](https://github.com/apache/doris/pull/41275) -- 修复了存算分离模式下提交/中止事务失败时未调用`afterCommit/afterAbort`的问题。[#41267](https://github.com/apache/doris/pull/41267) -- 修复了存算分离模式下 Routine Load 修改消费偏移量无法工作的问题。[#39159](https://github.com/apache/doris/pull/39159) -- 修复了获取错误日志文件路径时重复关闭文件的问题。[#41320](https://github.com/apache/doris/pull/41320) -- 修复了存算分离模式下 Routine Load 作业进度缓存不正确的问题。[#39313](https://github.com/apache/doris/pull/39313) -- 修复了存算分离模式下 Routine Load 提交事务失败导致卡住的问题。[#40539](https://github.com/apache/doris/pull/40539) -- 修复了存算分离模式下 Routine Load 一直报数据质量检查错误的问题。[#39790](https://github.com/apache/doris/pull/39790) -- 修复了存算分离模式下 Routine Load 未在提交前事务进行检查的问题。[#39775](https://github.com/apache/doris/pull/39775) -- 修复了存算分离模式下 Routine Load 未在中止事务前进行检查的问题。[#40463](https://github.com/apache/doris/pull/40463) -- 修复了 Cluster Key 不支持某些数据类型的问题。[#38966](https://github.com/apache/doris/pull/38966) -- 修复了事务被重复提交的问题。[#39786](https://github.com/apache/doris/pull/39786) -- 修复了 WAL 在 BE 退出时 Use After Free 的问题。[#33131](https://github.com/apache/doris/pull/33131) -- 修复了存算分离模式下 WAL 回放未跳过已经完成了的导入事务的问题。[#41262](https://github.com/apache/doris/pull/41262) -- 修复了存算分离模式下 Group Commit 选择 BE 的逻辑。[#39986](https://github.com/apache/doris/pull/39986) [#38644](https://github.com/apache/doris/pull/38644) -- 修复了 Insert Into 开启 Group Commit 时 BE 可能 Coredump 的问题。[#39339](https://github.com/apache/doris/pull/39339) -- 修复了 Insert Into 开启 Group Commit 时可能会卡住的问题。[#39391](https://github.com/apache/doris/pull/39391) -- 修复了导入不打开 Group Commit 选项时可能会报找不到表的问题。[#39731](https://github.com/apache/doris/pull/39731) -- 修复了 Tablet 数量太多提交事务超时的问题。[#40031](https://github.com/apache/doris/pull/40031) -- 修复了 Auto Partition 并发 open 的问题。[#38605](https://github.com/apache/doris/pull/38605) -- 修复了导入锁粒度太大的问题。[#40134](https://github.com/apache/doris/pull/40134) -- 修复了 Varchar 长度为 0 导致 Coredump 的问题。[#40940](https://github.com/apache/doris/pull/40940) -- 修复了日志打印的 index ID 值不正确的问题。[#38790](https://github.com/apache/doris/pull/38790) -- 修复了 Memtable 前移未 Close BRPC Streaming 的问题。[#40105](https://github.com/apache/doris/pull/40105) -- 修复了 Memtable 前移 bvar 统计不准确的问题。[#39075](https://github.com/apache/doris/pull/39075) -- 修复了 Memtable 前移多副本容错的问题。[#38003](https://github.com/apache/doris/pull/38003) -- 修复了 Routine Load 一流多表错误计算消息长度的问题。[#40367](https://github.com/apache/doris/pull/40367) -- 修复了 Broker Load 进度汇报不准确的问题。[#40325](https://github.com/apache/doris/pull/40325) -- 修复了 Broker Load 扫描数据量汇报不准确的问题。[#40694](https://github.com/apache/doris/pull/40694) -- 修复了存算分离模式下 Routine Load 并发的问题。[#39242](https://github.com/apache/doris/pull/39242) -- 修复了存算分离模式下 Routine Load Job 被取消的问题。[#39514](https://github.com/apache/doris/pull/39514) -- 修复了删除 Kafka Topic 时进度未被重置的问题。[#38474](https://github.com/apache/doris/pull/38474) -- 修复了 Routine Load 事务状态转换时更新进度的问题。[#39311](https://github.com/apache/doris/pull/39311) -- 修复了 Routine Load 从暂停状态切换到暂停状态的问题。[#40728](https://github.com/apache/doris/pull/40728) -- 修复了 Stream Load 记录因数据库被删除被漏记录的问题。[#39360](https://github.com/apache/doris/pull/39360) - -### 存储 - -- 修复了 Storage Policy 丢失的问题。[#38700](https://github.com/apache/doris/pull/38700) -- 修复了跨版本备份恢复报错的问题。[#38370](https://github.com/apache/doris/pull/38370) -- 修复了 CCR Binlog NPE 问题。[#39909](https://github.com/apache/doris/pull/39909) -- 修复了可能的 MOW 重复 Key 问题。[#41309](https://github.com/apache/doris/pull/41309) [#39791](https://github.com/apache/doris/pull/39791) [#39958](https://github.com/apache/doris/pull/39958) [#38369](https://github.com/apache/doris/pull/38369) [#38331](https://github.com/apache/doris/pull/38331) -- 修复了高频写入场景下备份恢复之后不能写入的问题。[#40118](https://github.com/apache/doris/pull/40118) [#38321](https://github.com/apache/doris/pull/38321) -- 修复了删除空字符串和 Schema Change 交叉可能触发的数据错误问题。[#41064](https://github.com/apache/doris/pull/41064) -- 修复了列更新导致的数据统计不正确问题。[#40880](https://github.com/apache/doris/pull/40880) -- 限制了 Tablet Meta PB 的大小,防止大小过大导致 BE 宕机。[#39455](https://github.com/apache/doris/pull/39455) -- 修复了`begin; insert into values; commit`新优化器可能的列错位问题。[#39295](https://github.com/apache/doris/pull/39295) - -### 存算分离 - -- 修复了存算分离模式下多个 FE 的 Tablet 分布可能不一致的问题。[#41458](https://github.com/apache/doris/pull/41458) -- 修复了 TVF 在多计算组环境下可能不工作的问题。[#39249](https://github.com/apache/doris/pull/39249) -- 修复了存算分离模式 BE 退出时 Compaction 使用了已经释放的资源问题。[#39302](https://github.com/apache/doris/pull/39302) -- 修复了自动启停可能导致 FE replay 卡住的问题。[#40027](https://github.com/apache/doris/pull/40027) -- 修复了 BE 状态和 Meta-Service 中存储的状态不一致的问题。[#40799](https://github.com/apache/doris/pull/40799) -- 修复了 FE->Meta-Service 连接池不能自动过期重连的问题。[#41202](https://github.com/apache/doris/pull/41202) [#40661](https://github.com/apache/doris/pull/40661) -- 修复了 Rebalance 过程中有一些 Tablet 可能会来回进行非预期的 Balance 问题。[#39792](https://github.com/apache/doris/pull/39792) -- 修复了 FE 重启后 Storage Vault 权限丢失的问题。[#40260](https://github.com/apache/doris/pull/40260) -- 修复了 Tablet 行数等统计信息可能因为 FDB Scan Range 分页导致统计不全的问题。[#40494](https://github.com/apache/doris/pull/40494) -- 修复了同个 Label 下关联大量的 Abort 事务导致的性能问题。[#40606](https://github.com/apache/doris/pull/40606) -- 修复了 commit_txn 没有自动重入的问题,保持存算一体和存算分离行为一致。[#39615](https://github.com/apache/doris/pull/39615) -- 修复了 Drop Column 时投影列变多的问题。[#40187](https://github.com/apache/doris/pull/40187) -- 修复了 Delete 语句返回值没有正确处理导致删除之后数据仍可见的问题。[#39428](https://github.com/apache/doris/pull/39428) -- 修复了文件缓存预热时因为 Rowset 元数据竞争导致的 coredump 问题。[#39361](https://github.com/apache/doris/pull/39361) -- 修复了 TTL 缓存开启 LRU 淘汰时会用满整个缓存空间的问题。[#39814](https://github.com/apache/doris/pull/39814) -- 修复了基于 HDFS 存储后端导入 Commit Rowset 失败时临时文件不能回收的问题。[#40215](https://github.com/apache/doris/pull/40215) - -### Lakehouse - -- 修复了一些 JDBC Catalog 谓词下推的问题。[#39064](https://github.com/apache/doris/pull/39064) -- 修复了当 Parquet 格式中 Struct 类型列缺失时无法读取的问题。[#38718](https://github.com/apache/doris/pull/38718) -- 修复了部分情况下 FE 侧 FileSystem 泄露的问题。[#38610](https://github.com/apache/doris/pull/38610) -- 修复了部分情况下 Hive/Iceberg 表写回导致元数据缓存信息不一致的问题。[#40729](https://github.com/apache/doris/pull/40729) -- 修复了部分情况下为外表生成分区 ID 不稳定的问题。[#39325](https://github.com/apache/doris/pull/39325) -- 修复了部分情况下外表查询会选择在黑名单中的 BE 节点的问题。[#39451](https://github.com/apache/doris/pull/39451) -- 优化了分批获取外表分区信息时的超时时间,避免了长时间占用线程。[#39346](https://github.com/apache/doris/pull/39346) -- 修复了部分情况下查询 Hudi 表导致内存泄露的问题。[#41256](https://github.com/apache/doris/pull/41256) -- 修复了部分情况下 JDBC Catalog 可能存在连接池连接泄露的问题。[#39582](https://github.com/apache/doris/pull/39582) -- 修复了部分情况下 JDBC Catalog 可能存在 BE 内存泄露的问题。[#41041](https://github.com/apache/doris/pull/41041) -- 修复了无法查询阿里云 OSS 上 Hudi 数据的问题。[#41316](https://github.com/apache/doris/pull/41316) -- 修复了无法读取 MaxCompute 空分区的问题。[#40046](https://github.com/apache/doris/pull/40046) -- 修复了通过 JDBC Catalog 查询 Oracle 表示性能差的问题。[#41513](https://github.com/apache/doris/pull/41513) -- 修复了开启文件缓存功能后,查询 Paimon 表 Deletion Vector 时 BE 宕机的问题。[#39877](https://github.com/apache/doris/pull/39877) -- 修复了无法访问开启 HA 的 HDFS 集群上 Paimon 表的问题。[#39806](https://github.com/apache/doris/pull/39806) -- 临时关闭了 Parquet 的 Page Index 过滤功能以避免一些潜在问题。[#38691](https://github.com/apache/doris/pull/38691) -- 修复了无法读取 Parquet 文件中 Unsigned 类型的问题。[#39926](https://github.com/apache/doris/pull/39926) -- 修复了部分情况下读取 Parquet 文件可能导致死循环的问题。[#39523](https://github.com/apache/doris/pull/39523) - -### 异步物化视图 - -- 修复了分区构建时,如果两侧有相同的列名,可能选择错误的表跟踪分区的问题。[#40810](https://github.com/apache/doris/pull/40810) -- 修复了透明改写分区补偿可能导致结果错误的问题。[#40803](https://github.com/apache/doris/pull/40803) -- 修复了透明改写在外表不生效的问题。[#38909](https://github.com/apache/doris/pull/38909) -- 修复了嵌套物化视图可能不能正常刷新的问题。[#40433](https://github.com/apache/doris/pull/40433) - -### 同步物化视图 - -- 修复了在 MOW 表上创建同步物化视图可能导致查询结果错误的问题。[#39171](https://github.com/apache/doris/pull/39171) - -### 查询优化器 - -- 修复了升级后原有同步物化视图可能不可用的问题。[#41283](https://github.com/apache/doris/pull/41283) -- 修复了 DATETIME 字面量比较时,没有正确处理毫秒的问题。[#40121](https://github.com/apache/doris/pull/40121) -- 修复了条件函数分区裁剪可能错误的问题。[#39298](https://github.com/apache/doris/pull/39298) -- 修复了存在同步物化视图的 MOW 表无法执行 Delete 的问题。[#39578](https://github.com/apache/doris/pull/39578) -- 修复了 JDBC 外表查询谓词中的 Slot 的 Nullable 可能规划不正确,导致查询报错的问题。[#41014](https://github.com/apache/doris/pull/41014) - -### 查询执行 - -- 修复了 Runtime Filter 在使用过程中导致的内存泄露问题。[#39155](https://github.com/apache/doris/pull/39155) -- 修复了 Window Function 在使用内存特别多的问题。[#39581](https://github.com/apache/doris/pull/39581) -- 修复了一系列滚动升级期间函数兼容性的问题。[#41023](https://github.com/apache/doris/pull/41023) [#40438](https://github.com/apache/doris/pull/40438) [#39648](https://github.com/apache/doris/pull/39648) -- 修复了`encryption_function` 在常量时结果错误的问题。[#40201](https://github.com/apache/doris/pull/40201) -- 修复了单表物化视图导入时报错的问题。[#39061](https://github.com/apache/doris/pull/39061) -- 修复了窗口函数分区结果计算错误的问题。[#39100](https://github.com/apache/doris/pull/39100) [#40761](https://github.com/apache/doris/pull/40761) -- 修复了 TOPN 计算在有 Null 值时计算错误的问题。[#39497](https://github.com/apache/doris/pull/39497) -- 修复了 `map_agg` 函数计算结果错误的问题。[#39743](https://github.com/apache/doris/pull/39743) -- 修复了 Cancel 返回的消息错误的问题。[#38982](https://github.com/apache/doris/pull/38982) -- 修复了 Encrypt 和 Decrypt 函数导致 BE Core 的问题。[#40726](https://github.com/apache/doris/pull/40726) -- 修复了在高并发场景下,过多的 Scanner 导致查询卡住的问题。[#40495](https://github.com/apache/doris/pull/40495) -- Runtime Filter 中支持 TIME 类型。[#38258](https://github.com/apache/doris/pull/38258) -- 修复了 Window Funnel 函数结果错误的问题。[#40960](https://github.com/apache/doris/pull/40960) - -### 半结构化数据管理 - -- 修复了没有索引时 Match 函数报错的问题。[#38989](https://github.com/apache/doris/pull/38989) -- 修复了 ARRAY 数据类型作为 `array_min`/`array_max` 函数参数时 Crash 的问题。[#39492](https://github.com/apache/doris/pull/39492) -- 修复了 `array_enumerate_uniq` 函数 Nullable 的问题。[#38384](https://github.com/apache/doris/pull/38384) -- 修复了添加或删除列时 BloomFilter 索引没有更新的问题。[#38431](https://github.com/apache/doris/pull/38431) -- 修复了 ES-Catalog 解析异常 Array 数据的问题。[#39104](https://github.com/apache/doris/pull/39104) -- 修复了 ES-Catalog 不合理条件下推的问题。[#40111](https://github.com/apache/doris/pull/40111) -- 修复了 `map()`/ `struct()` 函数修改了输入数据导致异常的问题。[#39699](https://github.com/apache/doris/pull/39699) -- 修复了特殊情况下索引 Compaction Crash 的问题。[#40294](https://github.com/apache/doris/pull/40294) -- 修复了 ARRAY 类型倒排索引缺少 Nullbitmap 的问题。[#38907](https://github.com/apache/doris/pull/38907) -- 修复了倒排索引 `count()` 结果的问题。[#41152](https://github.com/apache/doris/pull/41152) -- 修复了 `explode_map` 使用别名时结果正确性问题。[#39757](https://github.com/apache/doris/pull/39757) -- 修复了 VARIANT 类型中异常 JSON 数据无法使用行存的问题。[#39394](https://github.com/apache/doris/pull/39394) -- 修复了 VARIANT 类型中返回 ARRAY 结果时内存泄漏的问题。[#41358](https://github.com/apache/doris/pull/41358) -- 修复了 VARIANT 类型修改列名的问题。[#40320](https://github.com/apache/doris/pull/40320) -- 修复了 VARIANT 类型转成 DECIMAL 类型可能丢失精度的问题。[#39650](https://github.com/apache/doris/pull/39650) -- 修复了 VARIANT 类型 Nullable 处理问题。[#39732](https://github.com/apache/doris/pull/39732) -- 修复了 VARIANT 类型稀疏列读取问题。[#40295](https://github.com/apache/doris/pull/40295) - -### 其他 - -- 修复了新旧 Audit Log Plugin 兼容性问题。[#41401](https://github.com/apache/doris/pull/41401) -- 修复了某些情况下用户能看到他人进程的问题。[#39747](https://github.com/apache/doris/pull/39747) -- 修复了有权限的用户也不能导出的问题。[#38365](https://github.com/apache/doris/pull/38365) -- 修复了 CREATE TABLE LIKE 需要已有表的 CREATE 权限的问题。[#37879](https://github.com/apache/doris/pull/37879) -- 修复了一些功能没有校验权限的问题。[#39726](https://github.com/apache/doris/pull/39726) -- 修复了使用 SSL 连接时未正确关闭连接的问题。[#38587](https://github.com/apache/doris/pull/38587) -- 修复了部分情况下执行 ALTER VIEW 操作导致 FE 无法启动的问题。[#40872](https://github.com/apache/doris/pull/40872) - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.3.md deleted file mode 100644 index b83a0e587836a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.3.md +++ /dev/null @@ -1,209 +0,0 @@ ---- -{ - "title": "Release 3.0.3", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.3 版本已于 2024 年 12 月 02 日正式发布。 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 3.0.3 版本已于 2024 年 12 月 02 日正式发布。** 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - -## 行为变更 - -- 禁止在具有同步物化视图的 MOW 表上进行列更新。[#40190](https://github.com/apache/doris/pull/40190) -- 调整 RoutineLoad 的默认参数以提升导入效率。[#42968](https://github.com/apache/doris/pull/42968) -- 当 StreamLoad 失败时,LoadedRows 的返回值调整为 0。[#41946](https://github.com/apache/doris/pull/41946) [#42291](https://github.com/apache/doris/pull/42291) -- 将 Segment cache 的默认内存限制调整为 5%。[#42308](https://github.com/apache/doris/pull/42308) [#42436](https://github.com/apache/doris/pull/42436) - -## 新特性 - -- 引入 `enable_cooldown_replica_affinity` 会话变量,用以控制冷热分层副本的亲和性。[#42677](https://github.com/apache/doris/pull/42677) - -### Lakehouse - -- 新增 `table$partition` 语法,用于查询 Hive 表的分区信息。[#40774](https://github.com/apache/doris/pull/40774) - - - [查看文档](../../lakehouse/catalogs/hive-catalog) - -- 支持创建 Text 格式的 Hive 表。[#41860](https://github.com/apache/doris/pull/41860) [#42175](https://github.com/apache/doris/pull/42175) - - - [查看文档](../../lakehouse/catalogs/hive-catalog) - -### 异步物化视图 - -- 引入新的物化视图属性 `use_for_rewrite`。当 `use_for_rewrite` 设置为 false 时,物化视图不参与透明改写。[#40332](https://github.com/apache/doris/pull/40332) - -### 查询优化器 - -- 支持关联非聚合子查询。[#42236](https://github.com/apache/doris/pull/42236) - -### 查询执行 - -- 增加了 `ngram_search`、`normal_cdf`、`to_iso8601`、`from_iso8601_date`、`SESSION_USER()`、`last_query_id` 函数。[#38226](https://github.com/apache/doris/pull/38226) [#40695](https://github.com/apache/doris/pull/40695) [#41075](https://github.com/apache/doris/pull/41075) [#41600](https://github.com/apache/doris/pull/41600) [#39575](https://github.com/apache/doris/pull/39575) [#40739](https://github.com/apache/doris/pull/40739) -- `aes_encrypt` 和 `aes_decrypt` 函数支持 GCM 模式。[#40004](https://github.com/apache/doris/pull/40004) -- Profile 中输出变更的会话变量值。[#41016](https://github.com/apache/doris/pull/41016) [#41318](https://github.com/apache/doris/pull/41318) - -### 半结构化数据管理 - -- 新增数组函数 `array_match_all` 和 `array_match_any`。[#40605](https://github.com/apache/doris/pull/40605) [#43514](https://github.com/apache/doris/pull/43514) -- 数组函数 `array_agg` 支持在 ARRAY 中嵌套 ARRAY/MAP/STRUCT。[#42009](https://github.com/apache/doris/pull/42009) -- 新增近似聚合统计函数 `approx_top_k` 和 `approx_top_sum`。[#44082](https://github.com/apache/doris/pull/44082) - -## 改进与优化 - -### 存储 - -- 支持将 `bitmap_empty` 作为默认值。[#40364](https://github.com/apache/doris/pull/40364) -- 引入 `insert_timeout` 会话变量,用以控制 DELETE 语句的超时时间。[#41063](https://github.com/apache/doris/pull/41063) -- 改进部分错误提示信息。[#41048](https://github.com/apache/doris/pull/41048) [#39631](https://github.com/apache/doris/pull/39631) -- 改进副本修复的优先级调度。[#41076](https://github.com/apache/doris/pull/41076) -- 提高了建表时对时区处理的鲁棒性。[#41926](https://github.com/apache/doris/pull/41926) [#42389](https://github.com/apache/doris/pull/42389) -- 在创建表时检查分区表达式的合法性。[#40158](https://github.com/apache/doris/pull/40158) -- 在 DELETE 操作时支持 Unicode 编码的列名。[#39381](https://github.com/apache/doris/pull/39381) - -### 存算分离 - -- 存算分离模式支持 ARM 架构部署。[#42467](https://github.com/apache/doris/pull/42467) [#43377](https://github.com/apache/doris/pull/43377) -- 优化文件缓存的淘汰策略和锁竞争,提高命中率及高并发点查性能。[#42451](https://github.com/apache/doris/pull/42451) [#43201](https://github.com/apache/doris/pull/43201) [#41818](https://github.com/apache/doris/pull/41818) [#43401](https://github.com/apache/doris/pull/43401) -- S3 storage vault 支持 `use_path_style`,解决对象存储使用自定义域名的问题。[#43060](https://github.com/apache/doris/pull/43060) [#43343](https://github.com/apache/doris/pull/43343) [#43330](https://github.com/apache/doris/pull/43330) -- 优化存算分离配置及部署,预防不同模式下的误操作。[#43381](https://github.com/apache/doris/pull/43381) [#43522](https://github.com/apache/doris/pull/43522) [#43434](https://github.com/apache/doris/pull/43434) [#40764](https://github.com/apache/doris/pull/40764) [#43891](https://github.com/apache/doris/pull/43891) -- 优化可观测性,并提供删除指定 segment file cache 的接口。[#38489](https://github.com/apache/doris/pull/38489) [#42896](https://github.com/apache/doris/pull/42896) [#41037](https://github.com/apache/doris/pull/41037) [#43412](https://github.com/apache/doris/pull/43412) -- 优化 Meta-service 运维接口:RPC 限速及修复 tablet 元数据修正。[#42413](https://github.com/apache/doris/pull/42413) [#43884](https://github.com/apache/doris/pull/43884) [#41782](https://github.com/apache/doris/pull/41782) [#43460](https://github.com/apache/doris/pull/43460) - -### Lakehouse - -- Paimon Catalog 支持阿里云 DLF 和 OSS-HDFS 存储。[#41247](https://github.com/apache/doris/pull/41247) [#42585](https://github.com/apache/doris/pull/42585) - - - [查看文档](../../lakehouse/catalogs/paimon-catalog) - -- 支持读取 OpenCSV 格式的 Hive 表。[#42257](https://github.com/apache/doris/pull/42257) [#42942](https://github.com/apache/doris/pull/42942) -- 优化了访问 External Catalog 中 `information_schema.columns` 表的性能。[#41659](https://github.com/apache/doris/pull/41659) [#41962](https://github.com/apache/doris/pull/41962) -- 使用新的 MaxCompute 开放存储 API 访问 MaxCompute 数据源。[#41614](https://github.com/apache/doris/pull/41614) -- 优化了 Paimon 表 JNI 部分的调度策略,使得扫描任务更加均衡。[#43310](https://github.com/apache/doris/pull/43310) -- 优化了 ORC 小文件的读取性能。[#42004](https://github.com/apache/doris/pull/42004) [#43467](https://github.com/apache/doris/pull/43467) -- 支持读取 brotli 压缩格式的 parquet 文件。[#42177](https://github.com/apache/doris/pull/42177) -- 在 `information_schema` 库下新增 `file_cache_statistics` 表,用于查看元数据缓存统计信息。[#42160](https://github.com/apache/doris/pull/42160) - -### 查询优化器 - -- 优化:当查询仅注释不同时,可以复用同一个 SQL Cache。[#40049](https://github.com/apache/doris/pull/40049) -- 优化:提升了在数据频繁更新时统计信息的稳定性。[#43865](https://github.com/apache/doris/pull/43865) [#39788](https://github.com/apache/doris/pull/39788) [#43009](https://github.com/apache/doris/pull/43009) [#40457](https://github.com/apache/doris/pull/40457) [#42409](https://github.com/apache/doris/pull/42409) [#41894](https://github.com/apache/doris/pull/41894) -- 优化:提升常量折叠的稳定性。[#42910](https://github.com/apache/doris/pull/42910) [#41164](https://github.com/apache/doris/pull/41164) [#39723](https://github.com/apache/doris/pull/39723) [#41394](https://github.com/apache/doris/pull/41394) [#42256](https://github.com/apache/doris/pull/42256) [#40441](https://github.com/apache/doris/pull/40441) -- 优化:列裁剪可以生成更优的执行计划。[#41719](https://github.com/apache/doris/pull/41719) [#41548](https://github.com/apache/doris/pull/41548) - -### 查询执行 - -- 优化了 sort 算子的内存使用。[#39306](https://github.com/apache/doris/pull/39306) -- 优化了 ARM 下运算的性能。[#38888](https://github.com/apache/doris/pull/38888) [#38759](https://github.com/apache/doris/pull/38759) -- 优化了一系列函数的计算性能。[#40366](https://github.com/apache/doris/pull/40366) [#40821](https://github.com/apache/doris/pull/40821) [#40670](https://github.com/apache/doris/pull/40670) [#41206](https://github.com/apache/doris/pull/41206) [#40162](https://github.com/apache/doris/pull/40162) -- 使用 SSE 指令优化 `match_ipv6_subnet` 函数的性能。[#38755](https://github.com/apache/doris/pull/38755) -- 在 insert overwrite 时支持自动创建新的分区。[#38628](https://github.com/apache/doris/pull/38628) [#42645](https://github.com/apache/doris/pull/42645) -- 在 Profile 中增加了每个 PipelineTask 的状态。[#42981](https://github.com/apache/doris/pull/42981) -- IP 类型支持 runtime filter。[#39985](https://github.com/apache/doris/pull/39985) - -### 半结构化数据管理 - -- 审计日志中输出 prepared statement 的真实 SQL。[#43321](https://github.com/apache/doris/pull/43321) -- filebeat doris output plugin 支持容错、进度报告等。[#36355](https://github.com/apache/doris/pull/36355) -- 倒排索引查询性能优化。[#41547](https://github.com/apache/doris/pull/41547) [#41585](https://github.com/apache/doris/pull/41585) [#41567](https://github.com/apache/doris/pull/41567) [#41577](https://github.com/apache/doris/pull/41577) [#42060](https://github.com/apache/doris/pull/42060) [#42372](https://github.com/apache/doris/pull/42372) -- 数组函数 `array overlaps` 支持使用倒排索引加速。[#41571](https://github.com/apache/doris/pull/41571) -- IP 函数 `is_ip_address_in_range` 支持使用倒排索引加速。[#41571](https://github.com/apache/doris/pull/41571) -- 优化 VARIANT 数据类型的 CAST 性能。[#41775](https://github.com/apache/doris/pull/41775) [#42438](https://github.com/apache/doris/pull/42438) [#43320](https://github.com/apache/doris/pull/43320) -- 优化 Variant 数据类型的 CPU 资源消耗。[#42856](https://github.com/apache/doris/pull/42856) [#43062](https://github.com/apache/doris/pull/43062) [#43634](https://github.com/apache/doris/pull/43634) -- 优化 Variant 数据类型的元数据和执行内存资源消耗。[#42448](https://github.com/apache/doris/pull/42448) [#43326](https://github.com/apache/doris/pull/43326) [#41482](https://github.com/apache/doris/pull/41482) [#43093](https://github.com/apache/doris/pull/43093) [#43567](https://github.com/apache/doris/pull/43567) [#43620](https://github.com/apache/doris/pull/43620) - -### 权限 - -- LDAP 新增配置项 `ldap_group_filter` 用于自定义过滤 group。[#43292](https://github.com/apache/doris/pull/43292) - -### 其他 - -- FE 监控项中的连接数信息支持按用户分别显示。[#39200](https://github.com/apache/doris/pull/39200) - -## 问题修复 - -### 存储 - -- 修复 IPv6 hostname 使用问题。[#40074](https://github.com/apache/doris/pull/40074) -- 修复 broker/s3 load 进度展示不准确问题。[#43535](https://github.com/apache/doris/pull/43535) -- 修复查询从 FE 可能卡住的问题。[#41303](https://github.com/apache/doris/pull/41303) [#42382](https://github.com/apache/doris/pull/42382) -- 修复异常情况下自增 id 重复的问题。[#43774](https://github.com/apache/doris/pull/43774) [#43983](https://github.com/apache/doris/pull/43983) -- 修复 groupcommit 偶发 NPE 问题。[#43635](https://github.com/apache/doris/pull/43635) -- 修复 auto bucket 计算不准确的问题。[#41675](https://github.com/apache/doris/pull/41675) [#41835](https://github.com/apache/doris/pull/41835) -- 修复 FE 重启时流控多表不能正确规划的问题。[#41677](https://github.com/apache/doris/pull/41677) [#42290](https://github.com/apache/doris/pull/42290) - -### 存算分离 - -- 修复 MOW 主键表 delete bitmap 过大可能导致 coredump 的问题。[#43088](https://github.com/apache/doris/pull/43088) [#43457](https://github.com/apache/doris/pull/43457) [#43479](https://github.com/apache/doris/pull/43479) [#43407](https://github.com/apache/doris/pull/43407) [#43297](https://github.com/apache/doris/pull/43297) [#43613](https://github.com/apache/doris/pull/43613) [#43615](https://github.com/apache/doris/pull/43615) [#43854](https://github.com/apache/doris/pull/43854) [#43968](https://github.com/apache/doris/pull/43968) [#44074](https://github.com/apache/doris/pull/44074) [#41793](https://github.com/apache/doris/pull/41793) [#42142](https://github.com/apache/doris/pull/42142) -- 修复 segment 文件为 5MB 整数倍时上传对象失败的问题。[#43254](https://github.com/apache/doris/pull/43254) -- 修复 aws sdk 默认重试策略不生效的问题。[#43575](https://github.com/apache/doris/pull/43575) [#43648](https://github.com/apache/doris/pull/43648) -- 修复 alter storage vault 时指定错误 type 也能继续执行的问题。[#43489](https://github.com/apache/doris/pull/43489) [#43352](https://github.com/apache/doris/pull/43352) [#43495](https://github.com/apache/doris/pull/43495) -- 修复大事务延迟提交过程中 tablet_id 可能为 0 的问题。[#42043](https://github.com/apache/doris/pull/42043) [#42905](https://github.com/apache/doris/pull/42905) -- 修复常量折叠 RCP 以及 FE 转发 SQL 可能不在预期的计算组执行的问题。[#43110](https://github.com/apache/doris/pull/43110) [#41819](https://github.com/apache/doris/pull/41819) [#41846](https://github.com/apache/doris/pull/41846) -- 修复 meta-service 接收到 RPC 时不严格检查 instance_id 的问题。[#43253](https://github.com/apache/doris/pull/43253) [#43832](https://github.com/apache/doris/pull/43832) -- 修复 FE follower information_schema version 没有及时更新的问题。[#43496](https://github.com/apache/doris/pull/43496) -- 修复 file cache rename 原子性以及指标不准确的问题。[#42869](https://github.com/apache/doris/pull/42869) [#43504](https://github.com/apache/doris/pull/43504) [#43220](https://github.com/apache/doris/pull/43220) - -### Lakehouse - -- 禁止带有隐式转换的谓词条件下推给 JDBC 数据源,避免不一致的查询结果。[#42102](https://github.com/apache/doris/pull/42102) -- 修复 Hive 高版本事务表的一些读取问题。[#42226](https://github.com/apache/doris/pull/42226) -- 修复 Export 命令可能导致死锁的问题。[#43083](https://github.com/apache/doris/pull/43083) [#43402](https://github.com/apache/doris/pull/43402) -- 修复无法查询 Spark 创建的 Hive 视图的问题。[#43552](https://github.com/apache/doris/pull/43552) -- 修复 Hive 分区路径中包含特殊字符导致分区裁剪有误的问题。[#42906](https://github.com/apache/doris/pull/42906) -- 修复 Iceberg Catalog 无法使用 AWS Glue 的问题。[#41084](https://github.com/apache/doris/pull/41084) - -### 异步物化视图 - -- 修复基表重建后,异步物化视图可能无法刷新的问题。[#41762](https://github.com/apache/doris/pull/41762) - -### 查询优化器 - -- 修复使用多列 range 分区时,分区裁剪结果可能有误的问题。[#43332](https://github.com/apache/doris/pull/43332) -- 修复部分 limit offset 场景下计算结果错误的问题。[#42576](https://github.com/apache/doris/pull/42576) - -### 查询执行 - -- 修复 hash join 时 array 类型的大小超过 4G 导致 BE Core 的问题。[#43861](https://github.com/apache/doris/pull/43861) -- 修复 is null 谓词运算部分场景下结果不正确的问题。[#43619](https://github.com/apache/doris/pull/43619) -- 修复 bitmap 类型在 hash join 时输出结果不正确的问题。[#43718](https://github.com/apache/doris/pull/43718) -- 修复一些函数结果计算错误的问题。[#40710](https://github.com/apache/doris/pull/40710) [#39358](https://github.com/apache/doris/pull/39358) [#40929](https://github.com/apache/doris/pull/40929) [#40869](https://github.com/apache/doris/pull/40869) [#40285](https://github.com/apache/doris/pull/40285) [#39891](https://github.com/apache/doris/pull/39891) [#40530](https://github.com/apache/doris/pull/40530) [#41948](https://github.com/apache/doris/pull/41948) [#43588](https://github.com/apache/doris/pull/43588) -- 修复一些 JSON 类型解析的问题。[#39937](https://github.com/apache/doris/pull/39937) -- 修复 varchar 和 char 类型在 runtime filter 运算时的问题。[#43758](https://github.com/apache/doris/pull/43758) [#43919](https://github.com/apache/doris/pull/43919) -- 修复一些 decimal256 在标量函数和聚合函数里使用的问题。[#42136](https://github.com/apache/doris/pull/42136) [#42356](https://github.com/apache/doris/pull/42356) -- 修复 arrow flight 在连接时报 `Reach limit of connections` 错误的问题。[#39127](https://github.com/apache/doris/pull/39127) -- 修复 k8s 环境下,BE 可用内存统计不正确的问题。[#41123](https://github.com/apache/doris/pull/41123) - -### 半结构化数据管理 - -- 调整 `segment_cache_fd_percentage` 和 `inverted_index_fd_number_limit_percent` 的默认值。[#42224](https://github.com/apache/doris/pull/42224 -- logstash 支持 group_commit。[#40450](https://github.com/apache/doris/pull/40450) -- 修复 build index 时 coredump 的问题。[#43246](https://github.com/apache/doris/pull/43246) [#43298](https://github.com/apache/doris/pull/43298) -- 修复 variant index 的问题。[#43375](https://github.com/apache/doris/pull/43375) [#43773](https://github.com/apache/doris/pull/43773) -- 修复后台 compaction 异常情况下可能出现的 fd 和内存泄漏。[#42374](https://github.com/apache/doris/pull/42374) -- 倒排索引 match null 正确返回 null 而不是 false。[#41786](https://github.com/apache/doris/pull/41786) -- 修复 ngram bloomfilter 索引 bf_size 设置为 65536 时 coredump 的问题。[#43645](https://github.com/apache/doris/pull/43645) -- 修复复杂数据类型 JOIN 可能出 coredump 的问题。[#40398](https://github.com/apache/doris/pull/40398) -- 修复 TVF JSON 数据 coredump 的问题。[#43187](https://github.com/apache/doris/pull/43187) -- 修复 bloom filter 计算日期和时间的精度问题。[#43612](https://github.com/apache/doris/pull/43612) -- 修复 IPv6 类型行存 coredump 的问题。[#43251](https://github.com/apache/doris/pull/43251) -- 修复关闭 light_schema_change 时使用 VARIANT 类型 coredump 的问题。[#40908](https://github.com/apache/doris/pull/40908) -- 提升高并发点查的 cache 性能。[#44077](https://github.com/apache/doris/pull/44077) -- 修复删除列时 bloom filter 索引没有同步更新的问题。[#43378](https://github.com/apache/doris/pull/43378) -- 修复 es catalog 在数组和标量混合数据等特殊情况下的不稳定问题。[#40314](https://github.com/apache/doris/pull/40314) [#40385](https://github.com/apache/doris/pull/40385) [#43399](https://github.com/apache/doris/pull/43399) [#40614](https://github.com/apache/doris/pull/40614) -- 修复异常正则匹配导致的 coredump 问题。[#43394](https://github.com/apache/doris/pull/43394) - -### 权限 - -- 修复若干权限授权之后无法正常限制的问题。[#43193](https://github.com/apache/doris/pull/43193) [#41723](https://github.com/apache/doris/pull/41723) [#42107](https://github.com/apache/doris/pull/42107) [#43306](https://github.com/apache/doris/pull/43306) -- 加强若干权限校验。[#40688](https://github.com/apache/doris/pull/40688) [#40533](https://github.com/apache/doris/pull/40533) [#41791](https://github.com/apache/doris/pull/41791) [#42106](https://github.com/apache/doris/pull/42106) - -### 其他 - -- 补充了审计日志表和文件中缺失的审计日志字段。[#43303](https://github.com/apache/doris/pull/43303) - - - [查看文档](../../admin-manual/system-tables/internal_schema/audit_log) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.4.md deleted file mode 100644 index a55e9f8e99a06..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.4.md +++ /dev/null @@ -1,210 +0,0 @@ ---- -{ - "title": "Release 3.0.4", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.4 版本已于 2025 年 02 月 28 日正式发布。 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 3.0.4 版本已于 2025 年 02 月 28 日正式发布。** 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - - -## 行为变更 - -- 在 Audit Log 中,`drop table` 和 `drop database` 语句保持 `force` 标志。 [#43227](https://github.com/apache/doris/pull/43227) - -- 导出数据至 Parquet/ORC 格式时,`bitmap`、`quantile_state` 和 `hll` 类型将以 Binary 格式导出。同时新增支持导出 `jsonb` 和 `variant` 类型,导出格式为 `string`。 [#44041](https://github.com/apache/doris/pull/44041) - - - 更多内容,参考文档:[Export Overview - Apache Doris](https://doris.apache.org/docs/3.0/data-operate/export/export-overview) -- 当通过 External Catalog 查询表名大小写不敏感的数据源(如 Hive)时,在之前版本中,可以使用任意大小写进行表名查询,但是在 3.0.4 版本中,将严格遵循 Doris 自身的表名大小写敏感策略。 -- 将 Hudi JNI Scanner 从 Spark API 替换为 Hadoop API,以增强兼容性。用户可以通过设置会话变量 `set hudi_jni_scanner=spark/hadoop` 进行切换。[#44267](https://github.com/apache/doris/pull/44267) -- 禁止在 Colocate 表中使用 `auto bucket`。 [#44396](https://github.com/apache/doris/pull/44396) -- 为 Catalog 增加 Paimon 缓存,不再进行实时数据查询。 [#44911 ](https://github.com/apache/doris/pull/44911) -- 增大 `max_broker_concurrency` 的默认值,以提升 Broker Load 在大规模数据导入时的性能。 [#44929](https://github.com/apache/doris/pull/44929) -- 将 Auto Partition 分区的 `storage medium` 默认值修改为当前表的 `storage medium` 属性值,而非系统默认值。 [#45955](https://github.com/apache/doris/pull/45955) -- 禁止在修改 Key 列的 Schema Change 执行期间进行列更新。 [#46347](https://github.com/apache/doris/pull/46347) -- 对于包含自增列的 Key 列表,支持在列更新时不提供自增列。 [#44528](https://github.com/apache/doris/pull/44528) -- FE ID 生成器策略切换为与物理时间相关的策略,ID 不再从 10000 开始。 [#44790](https://github.com/apache/doris/pull/44790) -- 在存算分离模式下,Compaction 产生的 stale rowset 默认回收延迟时间减小至 1800 秒,以减少回收间隔。某些极端场景下可能会导致超大查询失败,如遇问题可按需调整。 [#45460](https://github.com/apache/doris/pull/45460) -- 在存算分离模式下禁用 `show cache hotspot` 语句,需直接访问系统表。 [#47332](https://github.com/apache/doris/pull/47332) -- 禁止删除系统创建的 `admin` 用户。 [#44751](https://github.com/apache/doris/pull/44751) - -## 改进优化 - -### 存储 - -- 优化 Routine Load 因 `max_match_interval` 设置过小导致任务频繁超时的问题。 [#46292](https://github.com/apache/doris/pull/46292) -- 提升 Broker Load 在导入多个压缩文件时的性能。 [#43975](https://github.com/apache/doris/pull/43975) -- 增大 `webserver_num_workers` 的默认值以提升 Stream Load 性能。 [#46593](https://github.com/apache/doris/pull/46593) -- 优化 Routine Load 导入任务在 BE 节点扩容时负载不均衡的问题。 [#44798](https://github.com/apache/doris/pull/44798) -- 优化 Routine Load 线程池使用,防止 Routine Load 超时失败影响查询。 [#45039](https://github.com/apache/doris/pull/45039) - -### 存算分离 - -- 加强 Meta-service 的稳定性和可观测性。 [#44036](https://github.com/apache/doris/pull/44036), [#45617](https://github.com/apache/doris/pull/45617), [#45255](https://github.com/apache/doris/pull/45255), [#45068](https://github.com/apache/doris/pull/45068) -- 优化 File Cache,增加提前淘汰策略,减小持锁时间,提升查询性能。 [#47473](https://github.com/apache/doris/pull/47473), [#45678](https://github.com/apache/doris/pull/45678), [#47472](https://github.com/apache/doris/pull/47472) -- 优化 File Cache 初始化检查以及队列转换,提升稳定性。 [#44004](https://github.com/apache/doris/pull/44004), [#44429](https://github.com/apache/doris/pull/44429), [#45057](https://github.com/apache/doris/pull/45057), [#47229](https://github.com/apache/doris/pull/47229) -- 优化 HDFS 数据回收速度。 [#46393](https://github.com/apache/doris/pull/46393) -- 优化超高频导入时 FE 获取计算组可能存在的性能问题。 [#47203](https://github.com/apache/doris/pull/47203) -- 优化存算分离主键表的若干导入相关参数,提升实时高并发导入的稳定性。 [#47295](https://github.com/apache/doris/pull/47295), [#46750](https://github.com/apache/doris/pull/46750), [#46365](https://github.com/apache/doris/pull/46365) - -### Lakehouse - -- 支持读取 Hive Json 格式的表数据。 [#43469](https://github.com/apache/doris/pull/46393) - - - 更多内容,参考文档:[Text/CSV/JSON - Apache Doris](https://doris.apache.org/docs/dev/lakehouse/file-formats/text#json) - -- 支持会话变量 `enable_text_validate_utf8`,可忽略 CSV 格式中的 UTF-8 编码检测。 [#45537](https://github.com/apache/doris/pull/45537) - - - 更多内容,参考文档:[Text/CSV/JSON - Apache Doris](https://doris.apache.org/docs/dev/lakehouse/file-formats/text#character-set) - -- 将 Hudi 版本更新至 0.15,并优化 Hudi 表的查询规划性能。 -- 优化 MaxCompute 分区表的读取性能。 [#45148](https://github.com/apache/doris/pull/45148) -- 优化在高过滤率情况下,Parquet 文件延迟物化的性能。 [#46183](https://github.com/apache/doris/pull/46183) -- 支持 Parquet 复杂类型的延迟物化。 [#44098](https://github.com/apache/doris/pull/44098) -- 优化 ORC 类型的谓词下推逻辑,支持更多谓词条件用于索引过滤。 [#43255](https://github.com/apache/doris/pull/43255) - -### 异步物化视图 - -- 支持更多场景下的聚合上卷改写。 [#44412](https://github.com/apache/doris/pull/44412) - -### 查询优化器 - -- 优化分区裁剪性能。 [#46261](https://github.com/apache/doris/pull/46261) -- 增加利用数据特征消除 `group by` key 的规则。 [#43391](https://github.com/apache/doris/pull/43391) -- 根据目标表的数据量自适应调整 Runtime Filter 的等待时间。 [#42640](https://github.com/apache/doris/pull/42640) -- 优化聚合下压连接的能力,以适应更多场景。 [#43856](https://github.com/apache/doris/pull/43856), [#43380](https://github.com/apache/doris/pull/43380) -- 优化 Limit 下压聚合,以适应更多场景。 [#44042](https://github.com/apache/doris/pull/44042) - -### 其他 - -- 优化 FE、BE、MS 进程启动脚本,使输出内容更明确。 [#45610](https://github.com/apache/doris/pull/45610), [#45490](https://github.com/apache/doris/pull/45490), [#45883](https://github.com/apache/doris/pull/45883) -- `show tables` 显示的表名大小写现在与 MySQL 行为一致。 [#46030](https://github.com/apache/doris/pull/46030) -- `show index` 支持任意目标表类型。 [#45861](https://github.com/apache/doris/pull/45861) -- `information_schema.columns` 支持显示默认值。 [#44849](https://github.com/apache/doris/pull/44849) -- `information_schema.views` 支持显示视图定义。 [#45857](https://github.com/apache/doris/pull/45857) -- 支持 MySQL 协议的 `COM_RESET_CONNECTION` 命令。 [#44747](https://github.com/apache/doris/pull/44747) - -## 缺陷修复 - -### 存储 - -- 修复聚合表模型导入过程中可能出现的内存错误。 [#46997](https://github.com/apache/doris/pull/46997) -- 修复存算分离模式下 FE 主节点重启时导致 Routine Load offset 丢失的问题。 [#46566](https://github.com/apache/doris/pull/46566) -- 修复存算模式下 FE Observer 节点在批量导入场景中的内存泄漏问题。 [#47244](https://github.com/apache/doris/pull/47244) -- 修复 Full Compaction 进行 Order Data Compaction 导致 Cumulative Point 回退的问题。 [#44359](https://github.com/apache/doris/pull/44359) -- 修复 Delete 操作可能导致 Tablet Compaction 短暂无法调度的问题。 [#43466](https://github.com/apache/doris/pull/43466) -- 修复多计算集群时,Schema Change 后 Tablet 状态不正确的问题。 [#45821](https://github.com/apache/doris/pull/45821) -- 修复在有 `sequence_type` 的主键表上进行 Column Rename Schema Change 时可能报 NPE 错误的问题。 [#46906](https://github.com/apache/doris/pull/46906) -- **数据正确性:**修复主键表在部分列更新导入包含 DELETE SIGN 列时的正确性问题。 [#46194](https://github.com/apache/doris/pull/46194) -- 修复主键表 Publish 任务持续卡住时,FE 可能存在内存泄漏的问题。 [#44846](https://github.com/apache/doris/pull/44846) - -### 存算分离 - -- 修复 File Cache 可能导致缓存大小大于表数据大小的问题。 [#46561](https://github.com/apache/doris/pull/46561), [#46390](https://github.com/apache/doris/pull/46390) -- 修复数据上传至 5MB 边界值时可能导致上传失败的问题。 [#47333](https://github.com/apache/doris/pull/47333) -- 修复 Storage Vault 若干 `alter` 相关操作,增加更多参数检查,提升鲁棒性。 [#45155](https://github.com/apache/doris/pull/45155), [#45156](https://github.com/apache/doris/pull/45156), [#46625](https://github.com/apache/doris/pull/46625), [#47078](https://github.com/apache/doris/pull/47078), [#45685](https://github.com/apache/doris/pull/45685), [#46779](https://github.com/apache/doris/pull/46779) -- 修复因 Storage Vault 配置不当导致数据无法回收或回收缓慢的问题。 [#46798](https://github.com/apache/doris/pull/46798), [#47536](https://github.com/apache/doris/pull/47536), [#47475](https://github.com/apache/doris/pull/47475), [#47324](https://github.com/apache/doris/pull/47324), [#45072](https://github.com/apache/doris/pull/45072) -- 修复回收过程中可能卡住导致数据无法及时回收的问题。 [#45760](https://github.com/apache/doris/pull/45760) -- 修复存算分离下 MTTM-230 错误时未正确重试的问题。 [#47370](https://github.com/apache/doris/pull/47370), [#47326](https://github.com/apache/doris/pull/47326) -- 修复存算分离模式下 Decommission BE 时,Group Commit WAL 未回放完成的问题。 [#47187](https://github.com/apache/doris/pull/47187) -- 修复超过 2GB 的 Tablet Meta 导致 MS 不可用的问题。 [#44780](https://github.com/apache/doris/pull/44780) -- **数据正确性**:修复存算分离主键表的两个重复 Key 问题。 [#46039](https://github.com/apache/doris/pull/46039), [#44975](https://github.com/apache/doris/pull/44975) -- 修复存算分离主键表在高频实时导入下,可能因 Delete Bitmap 过大导致 Base Compaction 持续失败的问题。 [#46969](https://github.com/apache/doris/pull/46969) -- 修改 Schema Change 在存算分离主键表上的一些错误重试逻辑,提高 Schema Change 的健壮性。 [#46748](https://github.com/apache/doris/pull/46748) - -### Lakehouse - -#### Hive - -- 修复无法查询 Spark 创建的 Hive 视图的问题。 [#43553](https://github.com/apache/doris/pull/43553) -- 修复无法正确读取某些 Hive Transaction 表的问题。 [#45753](https://github.com/apache/doris/pull/45753) -- 修复 Hive 表分区存在特殊字符时,无法进行正确分区裁剪的问题。 [#42906](https://github.com/apache/doris/pull/42906) - -#### Iceberg - -- 修复在 Kerberos 认证环境下,无法创建 Iceberg 表的问题。 [#43445](https://github.com/apache/doris/pull/43445) -- 修复某些情况下,Iceberg 表存在 dangling delete 情况下,`count*` 查询不准确的问题。 [#44039](https://github.com/apache/doris/pull/44039) -- 修复某些情况下,Iceberg 表列名不匹配导致查询错误的问题。 [#44470](https://github.com/apache/doris/pull/44470) -- 修复某些情况下,Iceberg 表分区被修改后无法读取的问题。 [#45367](https://github.com/apache/doris/pull/45367) - -#### Paimon - -- 修复 Paimon Catalog 无法访问阿里云 OSS-HDFS 的问题。 [#42585](https://github.com/apache/doris/pull/42585) - -#### Hudi - -- 修复某些情况下,Hudi 表分区裁剪失效的问题。 [#44669](https://github.com/apache/doris/pull/44669) - -#### JDBC - -- 修复某些情况下,开启表名大小写不敏感功能后,使用 JDBC Catalog 无法获取表的问题。 - -#### MaxCompute - -- 修复某些情况下,MaxCompute 表分区裁剪失效的问题。 [#44508](https://github.com/apache/doris/pull/44508) - -#### 其他 - -- 修复某些情况下,Export 任务导致 FE 内存泄漏的问题。 [#44019](https://github.com/apache/doris/pull/44019) -- 修复某些情况下,无法使用 HTTPS 协议访问 S3 对象存储的问题。 [#44242](https://github.com/apache/doris/pull/44242) -- 修复某些情况下,Kerberos 认证票据无法自动刷新的问题。 [#44916](https://github.com/apache/doris/pull/44916) -- 修复某些情况下,读取 Hadoop Block 压缩格式文件出错的问题。 [#45289](https://github.com/apache/doris/pull/45289) -- 查询 ORC 格式的数据时,不再下推 CHAR 类型的谓词,以避免可能的结果错误。 [#45484](https://github.com/apache/doris/pull/45484) - -### 异步物化视图 - -- 修复极端场景下查询透明改写可能导致规划或结果错误的问题。 [#44575](https://github.com/apache/doris/pull/44575), [#45744](https://github.com/apache/doris/pull/45744) -- 修复极端场景下异步物化视图调度可能多产生构建任务的问题。 [#46020](https://github.com/apache/doris/pull/46020), [#46280](https://github.com/apache/doris/pull/46280) - -### 查询优化器 - -- 修复部分表达式改写可能产生错误表达式的问题。 [#44770](https://github.com/apache/doris/pull/44770), [#44920](https://github.com/apache/doris/pull/44920), [#45922](https://github.com/apache/doris/pull/45922), [#45596](https://github.com/apache/doris/pull/45596) -- 修复偶现的 SQL Cache 结果错误问题。 [#44782](https://github.com/apache/doris/pull/44782), [#44631](https://github.com/apache/doris/pull/44631), [#46443](https://github.com/apache/doris/pull/46443), [#47266](https://github.com/apache/doris/pull/47266) -- 修复部分场景下 Limit 下压聚合算子可能导致错误结果的问题。 [#45369](https://github.com/apache/doris/pull/45369) -- 修复部分场景下延迟物化优化产生错误执行计划的问题。 [#45693](https://github.com/apache/doris/pull/45693), [#46551](https://github.com/apache/doris/pull/46551) - -### 查询执行 - -- 修复正则表达式和 `like` 函数在特殊字符时结果不正确的问题。 [#44547](https://github.com/apache/doris/pull/44547) -- 修复 SQL Cache 在切换 DB 时结果可能不正确的问题。 [#44782](https://github.com/apache/doris/pull/44782) -- 修复一系列 Arrow Flight 相关问题。 [#45023](https://github.com/apache/doris/pull/45023), [#43929](https://github.com/apache/doris/pull/43929) -- 修复当 HashJoin 的 Hash 表超过 4G 时,部分情况下结果错误的问题。 [#46461](https://github.com/apache/doris/pull/46461) -- 修复 `convert_to` 函数在中文字符时溢出的问题。 [#46405](https://github.com/apache/doris/pull/46405) -- 修复 `group by` 带 Limit 时,在极端情况下结果可能出错的问题。 [#47844](https://github.com/apache/doris/pull/47844) -- 修复访问某些系统表结果可能不正确的问题。 [#47498](https://github.com/apache/doris/pull/47498) -- 修复 `percentile` 函数可能导致系统崩溃的问题。 [#47068](https://github.com/apache/doris/pull/47068) -- 修复单表查询带 Limit 时性能退化的问题。 [#46090](https://github.com/apache/doris/pull/46090) -- 修复 `StDistanceSphere` 和 `StAngleSphere` 函数导致系统崩溃的问题。 [#45508](https://github.com/apache/doris/pull/45508) -- 修复 `map_agg` 结果错误的问题。 [#40454](https://github.com/apache/doris/pull/40454) - -### 半结构化数据管理 - -#### BloomFilter Index - -- 修复 BloomFilter Index 参数过大导致的异常。 [#45780](https://github.com/apache/doris/pull/45780) -- 修复 BloomFilter Index 写入时内存占用过高的问题。 [#45833](https://github.com/apache/doris/pull/45833) -- 修复删除列时 BloomFilter Index 没有正确删除的问题。 [#44361](https://github.com/apache/doris/pull/44361), [#43378](https://github.com/apache/doris/pull/43378) - -#### Inverted Index - -- 修复倒排索引构建过程中偶发崩溃的问题。 [#43246](https://github.com/apache/doris/pull/43246) -- 修复倒排索引合并时,出现次数为 0 的词占用空间的问题。 [#43113](https://github.com/apache/doris/pull/43113) -- 避免 Index Size 统计出现超大异常值。 [#46549](https://github.com/apache/doris/pull/46549) -- 修复 VARIANT 类型字段的倒排索引异常。 [#43375](https://github.com/apache/doris/pull/43375) -- 优化倒排索引的本地缓存局部性,提高缓存命中率。 [#46518](https://github.com/apache/doris/pull/46518) -- 在查询 Profile 中增加倒排索引读远程存储的指标 `NumInvertedIndexRemoteIOTotal`。 [#45675](https://github.com/apache/doris/pull/45675), [#44863](https://github.com/apache/doris/pull/44863) - -#### 其他 - -- 修复 `ipv6_cidr_to_range` 函数在特殊 NULL 数据时崩溃的问题。 [#44700](https://github.com/apache/doris/pull/44700) - -### 权限 - -- 赋予 `CREATE_PRIV` 时,不再检查对应资源是否存在。 [#45125](https://github.com/apache/doris/pull/45125) -- 修复在极端场景下,可能出现的查询有权限的视图,但报错没有视图中引用的表的权限的问题。 [#44621](https://github.com/apache/doris/pull/44621) -- 修复 `use db` 时检查权限时不区分内外 Catalog 的问题。 [#45720](https://github.com/apache/doris/pull/45720) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.5.md deleted file mode 100644 index f05afe0ac1637..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.5.md +++ /dev/null @@ -1,208 +0,0 @@ ---- -{ - "title": "Release 3.0.5", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.5 版本已于 2025 年 04 月 28 日正式发布。 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 3.0.5 版本已于 2025 年 04 月 28 日正式发布。** 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- [GitHub 下载](https://github.com/apache/doris/releases) - -- [官网下载](https://doris.apache.org/download) - - -## 新特性 - -### Lakehouse - -- FE Metrics 新增 Catalog/Database/Table 数量监控指标([#47891](https://github.com/apache/doris/pull/47891)) -- MaxCompute Catalog 支持 Timestamp 类型([#48768](https://github.com/apache/doris/pull/48768)) - -### 查询执行 - -- 新增 URL 处理函数:`top_level_domain`、`first_significant_subdomain`、`cut_to_first_significant_subdomain`([#42488](https://github.com/apache/doris/pull/42488)) -- 新增 `year_of_week` 函数,兼容 Trino 语法实现([#48870](https://github.com/apache/doris/pull/48870)) -- `percentile_array` 函数支持 Float 和 Double 数据类型([#48094](https://github.com/apache/doris/pull/48094)) - -### 存算分离 - -- 支持重命名计算组(Rename Compute Group)([#46221](https://github.com/apache/doris/pull/46221)) - -## 改进 - -### 存储 - -- 优化主键表(MOW)高频导入场景的查询性能([#48968](https://github.com/apache/doris/pull/48968)) -- 优化 Key Range 查询的 Profile 信息展示([#48191](https://github.com/apache/doris/pull/48191)) -- Stream Load 支持 JSON 压缩文件导入([#49044](https://github.com/apache/doris/pull/49044)) -- 优化多个导入场景的错误提示信息([#48436](https://github.com/apache/doris/pull/48436) [#47721](https://github.com/apache/doris/pull/47721) [#47804](https://github.com/apache/doris/pull/47804) [#48638](https://github.com/apache/doris/pull/48638) [#48344](https://github.com/apache/doris/pull/48344) [#49287](https://github.com/apache/doris/pull/49287) [#48009](https://github.com/apache/doris/pull/48009)) -- 新增 Routine Load 多项监控指标([#49045](https://github.com/apache/doris/pull/49045) [#48764](https://github.com/apache/doris/pull/48764)) -- 优化 Routine Load 调度算法,避免单任务异常影响整体调度([#47847](https://github.com/apache/doris/pull/47847)) -- 新增 Routine Load 系统表([#49284](https://github.com/apache/doris/pull/49284)) -- 优化 Compaction 任务生成速度以提升性能([#49547](https://github.com/apache/doris/pull/49547)) - -### 存算分离 - -- 修复多个 File Cache 稳定性及性能问题([#48786](https://github.com/apache/doris/pull/48786) [#48623](https://github.com/apache/doris/pull/48623) [#48687](https://github.com/apache/doris/pull/48687) [#49050](https://github.com/apache/doris/pull/49050) [#48318](https://github.com/apache/doris/pull/48318)) -- 优化 Storage Vault 创建校验逻辑([#48073](https://github.com/apache/doris/pull/48073) [#48369](https://github.com/apache/doris/pull/48369)) - -### Lakehouse - -- 优化 Trino Connector Catalog 的 BE 端 Scanner 关闭逻辑,加速内存释放([#47857](https://github.com/apache/doris/pull/47857)) -- ClickHouse JDBC Catalog 自动兼容新旧版本驱动([#46026](https://github.com/apache/doris/pull/46026)) - -### 异步物化视图 - -- 优化透明改写(Transparent Rewrite)的规划性能([#48782](https://github.com/apache/doris/pull/48782)) -- 优化 `tvf mv_infos` 性能([#47415](https://github.com/apache/doris/pull/47415)) -- 基于外部表的物化视图构建时取消 Catalog 元数据刷新,减少内存占用([#48767](https://github.com/apache/doris/pull/48767)) - -### 查询优化器 - -- 优化 Key 列与分区列的统计信息收集性能([#46534](https://github.com/apache/doris/pull/46534)) -- 查询结果别名与用户输入保持严格一致([#47093](https://github.com/apache/doris/pull/47093)) -- 优化聚合算子中公共子表达式抽取后的列裁剪逻辑([#46627](https://github.com/apache/doris/pull/46627)) -- 增强函数绑定失败及子查询不支持的报错信息([#47919](https://github.com/apache/doris/pull/47919) [#47985](https://github.com/apache/doris/pull/47985)) - -### 半结构化数据管理 - -- `json_object` 函数支持复杂类型参数([#47779](https://github.com/apache/doris/pull/47779)) -- 支持将 UInt128 写入 IPv6 类型([#48802](https://github.com/apache/doris/pull/48802)) -- 支持 VARIANT 类型中 ARRAY 字段的倒排索引([#47688](https://github.com/apache/doris/pull/47688) [#48117](https://github.com/apache/doris/pull/48117)) - -### 权限 - -- 提升 Ranger 鉴权性能([#49352](https://github.com/apache/doris/pull/49352)) - -### 其他 - -- 优化 JVM Metrics 接口性能([#49380](https://github.com/apache/doris/pull/49380)) - -## Bug 修复 - -### 存储 - -- 修复若干极端场景下的数据正确性问题([#48056](https://github.com/apache/doris/pull/48056) [#48399](https://github.com/apache/doris/pull/48399) [#48400](https://github.com/apache/doris/pull/48400) [#48748](https://github.com/apache/doris/pull/48748) [#48775](https://github.com/apache/doris/pull/48775) [#48867](https://github.com/apache/doris/pull/48867) [#49165](https://github.com/apache/doris/pull/49165) [#49193](https://github.com/apache/doris/pull/49193) [#49350](https://github.com/apache/doris/pull/49350) [#49710](https://github.com/apache/doris/pull/49710) [#49825](https://github.com/apache/doris/pull/49825)) -- 修复已完成事务未及时清理的问题([#49564](https://github.com/apache/doris/pull/49564)) -- 部分列更新时 JSONB 类型默认值改用 `{}`([#49066](https://github.com/apache/doris/pull/49066)) -- 修复存算分离主键模型 Compaction 未释放 Delete Bitmap 锁导致导入卡顿的问题([#47766](https://github.com/apache/doris/pull/47766)) -- 修复 ARM 架构下 Stream Load 数据丢失问题([#49666](https://github.com/apache/doris/pull/49666)) -- 修复 Insert Into Select 遇到数据质量错误未返回错误 URL 的问题([#49687](https://github.com/apache/doris/pull/49687)) -- 修复 Routine Load 多表导入时数据质量错误未返回错误 URL 的问题([#49130](https://github.com/apache/doris/pull/49130)) -- 修复 Schema Change 期间 Insert Into Values 导入结果异常问题([#49338](https://github.com/apache/doris/pull/49338)) -- 修复 Tablet Commit 信息上报导致的 Core Dump 问题([#48732](https://github.com/apache/doris/pull/48732)) -- 修复 S3 Load 导入不支持 Azure 中国区域名的问题([#48642](https://github.com/apache/doris/pull/48642)) -- 修复 K8s 环境下 FE 报 "get image failed" 错误([#49072](https://github.com/apache/doris/pull/49072)) -- 优化动态分区调度的 CPU 消耗([#48577](https://github.com/apache/doris/pull/48577)) -- 修复重命名物化视图(MV)导致列异常的问题([#48328](https://github.com/apache/doris/pull/48328)) -- 修复 Schema Change 失败后未释放内存和 File Cache 的问题([#48426](https://github.com/apache/doris/pull/48426)) -- 修复含空分区表的 Base Compaction 失败问题([#49062](https://github.com/apache/doris/pull/49062)) -- 修复复杂类型变更导致的数据正确性问题([#49452](https://github.com/apache/doris/pull/49452)) -- 修复 Cold Compaction 导致 Core Dump 的问题([#48329](https://github.com/apache/doris/pull/48329)) -- 修复存在 Delete 操作时 Cumulative Point 未提升的问题([#47282](https://github.com/apache/doris/pull/47282)) -- 修复大数据量 Full Compaction 内存不足问题([#48958](https://github.com/apache/doris/pull/48958)) - -### 存算分离 - -- 修复 K8s 环境下 File Cache 清除失败问题([#49199](https://github.com/apache/doris/pull/49199)) -- 修复高频导入时读写锁导致的 FE CPU 飙升问题([#48564](https://github.com/apache/doris/pull/48564)) - -### Lakehouse - -**Data Lakes** - -- 修复并发写入 Hive/Iceberg 表可能引发的 BE Core Dump([#49842](https://github.com/apache/doris/pull/49842)) -- 修复 AWS S3 存储的 Hive/Iceberg 表写入失败问题([#47162](https://github.com/apache/doris/pull/47162)) -- 修复 Iceberg Position Deletion 读取结果错误([#47977](https://github.com/apache/doris/pull/47977)) -- 修复腾讯云 COS 无法创建 Iceberg 表的问题([#49885](https://github.com/apache/doris/pull/49885)) -- 修复 Kerberos 认证 HDFS 访问 Paimon 数据失败问题([#47192](https://github.com/apache/doris/pull/47192)) -- 修复 Hudi Jni Scanner 内存泄漏问题([#48955](https://github.com/apache/doris/pull/48955)) -- 修复 MaxCompute Catalog 多分区列表读取错误([#48325](https://github.com/apache/doris/pull/48325)) - -**JDBC** - -- 修复 JDBC Catalog 表行数查询空指针问题([#49442](https://github.com/apache/doris/pull/49442)) -- 修复 OceanBase Oracle 模式连接测试失败([#49442](https://github.com/apache/doris/pull/49442)) -- 修复 JDBC Catalog 并发场景下列类型长度错误([#48541](https://github.com/apache/doris/pull/48541)) -- 修复 JDBC Catalog BE 端 Classloader 泄漏([#46912](https://github.com/apache/doris/pull/46912)) -- 修复 PostgreSQL JDBC Catalog 连接线程泄漏([#49568](https://github.com/apache/doris/pull/49568)) - -**Export** - -- 修复 EXPORT 作业卡在 EXPORTING 状态([#47974](https://github.com/apache/doris/pull/47974)) -- 禁止 OUTFILE 自动重试以防止重复文件导出([#48095](https://github.com/apache/doris/pull/48095)) - -**其他** - -- 修复 FE WebUI 执行 TVF 查询空指针问题([#49213](https://github.com/apache/doris/pull/49213)) -- 修复 Hadoop Libhdfs Thread Local 空指针异常([#48280](https://github.com/apache/doris/pull/48280)) -- 修复 FE 访问 Hadoop Filesystem 报 "Filesystem already closed"([#48351](https://github.com/apache/doris/pull/48351)) -- 修复 Catalog Comment 未持久化问题([#46946](https://github.com/apache/doris/pull/46946)) -- 修复 Parquet 复杂类型读取报错([#47734](https://github.com/apache/doris/pull/47734)) - -### 异步物化视图 - -- 修复极端场景下物化视图构建任务卡顿问题([#48074](https://github.com/apache/doris/pull/48074)) -- 修复嵌套物化视图透明改写失效问题([#48222](https://github.com/apache/doris/pull/48222)) - -### 查询优化器 - -- 修复函数常量折叠计算结果错误([#49225](https://github.com/apache/doris/pull/49225) [#47966](https://github.com/apache/doris/pull/47966) [#49416](https://github.com/apache/doris/pull/49416) [#49087](https://github.com/apache/doris/pull/49087) [#49033](https://github.com/apache/doris/pull/49033) [#49061](https://github.com/apache/doris/pull/49061) [#48895](https://github.com/apache/doris/pull/48895) [#48957](https://github.com/apache/doris/pull/48957) [#47288](https://github.com/apache/doris/pull/47288) [#48641](https://github.com/apache/doris/pull/48641) [#49413](https://github.com/apache/doris/pull/49413) [#48783](https://github.com/apache/doris/pull/48783)) -- 修复嵌套窗口函数使用 ORDER BY 子句意外报错([#48492](https://github.com/apache/doris/pull/48492)) - -### 查询执行 - -- 修复 Pipeline 任务调度导致的卡死/性能问题([#49976](https://github.com/apache/doris/pull/49976) [#49007](https://github.com/apache/doris/pull/49007)) -- 修复 FE 连接失败时的内存越界问题([#48370](https://github.com/apache/doris/pull/48370) [#48313](https://github.com/apache/doris/pull/48313)) -- 修复 Lambda 函数与数组函数共用导致的内存越界([#49140](https://github.com/apache/doris/pull/49140)) -- 修复 String 与 JSONB 类型转换空值导致 BE Core([#49810](https://github.com/apache/doris/pull/49810)) -- 规范 `parse_url` 未定义行为([#49149](https://github.com/apache/doris/pull/49149)) -- 修复 `array_overlap` 函数空值结果异常([#49403](https://github.com/apache/doris/pull/49403)) -- 修复非 ASCII 字符大小写转换错误([#49763](https://github.com/apache/doris/pull/49763)) -- 修复 `percentile` 函数部分场景 BE Core([#48563](https://github.com/apache/doris/pull/48563)) -- 修复多个内存越界问题([#48288](https://github.com/apache/doris/pull/48288) [#49737](https://github.com/apache/doris/pull/49737) [#48018](https://github.com/apache/doris/pull/48018) [#47964](https://github.com/apache/doris/pull/47964)) -- 修复 SET 算子结果错误([#48001](https://github.com/apache/doris/pull/48001)) -- 降低 Arrow Flight 默认线程池大小以避免句柄耗尽([#48530](https://github.com/apache/doris/pull/48530)) -- 修复窗口函数内存越界导致 BE Core([#48458](https://github.com/apache/doris/pull/48458)) - -### 半结构化数据管理 - -- 修复 Transfer-Encoding: chunked 的 Stream Load JSON 导入异常([#48474](https://github.com/apache/doris/pull/48474)) -- 增强 JSONB 格式合法性校验([#48731](https://github.com/apache/doris/pull/48731)) -- 修复 STRUCT 类型字段过多导致的 Crash([#49552](https://github.com/apache/doris/pull/49552)) -- 支持复杂类型 VARCHAR 长度扩展([#48025](https://github.com/apache/doris/pull/48025)) -- 修复 `array_avg` 函数在特定参数下的 Crash([#48691](https://github.com/apache/doris/pull/48691)) -- 修复 VARIANT 类型 `ColumnObject::pop_back` Crash([#48935](https://github.com/apache/doris/pull/48935) [#48978](https://github.com/apache/doris/pull/48978)) -- 禁用 VARIANT 类型的索引构建操作([#49844](https://github.com/apache/doris/pull/49844)) -- 禁用 VARIANT 类型倒排索引 V1 格式([#49890](https://github.com/apache/doris/pull/49890)) -- 修复 VARIANT 多层 CAST 结果错误([#47954](https://github.com/apache/doris/pull/47954)) -- 优化 VARIANT 多子列倒排索引元数据查询性能([#48153](https://github.com/apache/doris/pull/48153)) -- 优化存算分离模式下 VARIANT Schema 内存消耗([#47629](https://github.com/apache/doris/pull/47629) [#48463](https://github.com/apache/doris/pull/48463)) -- 修复 PreparedStatement ID 溢出问题([#48116](https://github.com/apache/doris/pull/48116)) -- 修复行存与 Delete 操作结合问题([#49609](https://github.com/apache/doris/pull/49609)) - -### 倒排索引 - -- 修复 ARRAY 类型倒排索引 Null Bitmap 错误([#48052](https://github.com/apache/doris/pull/48052)) -- 修复 Date/Datetimev1 类型 Bloomfilter 索引比较错误([#47005](https://github.com/apache/doris/pull/47005)) -- 修复 UTF-8 四字节字符截断问题([#48792](https://github.com/apache/doris/pull/48792)) -- 修复新增列后立即创建倒排索引导致丢失的问题([#48547](https://github.com/apache/doris/pull/48547)) -- 修复 ARRAY 倒排索引空数据处理异常([#48264](https://github.com/apache/doris/pull/48264)) -- 修复倒排索引 FE 元数据升级兼容性([#49283](https://github.com/apache/doris/pull/49283)) -- 修复 `match_phrase_prefix` 缓存错误([#46517](https://github.com/apache/doris/pull/46517)) -- 修复 Compaction 后倒排索引 File Cache 未清理([#49738](https://github.com/apache/doris/pull/49738)) - -### 权限 - -- DELETE 操作不再检查 Select_Priv 权限([#49239](https://github.com/apache/doris/pull/49239)) -- 禁止非 root 用户修改 root 权限([#48752](https://github.com/apache/doris/pull/48752)) -- 修复 LDAP 偶发 Partial Result Exception([#47858](https://github.com/apache/doris/pull/47858)) - -### 其他 - -- 修复 JDK17 环境 JAVA_OPTS 识别异常([#48170](https://github.com/apache/doris/pull/48170)) -- 修复 InterruptException 导致 BDB 元数据写入失败([#47874](https://github.com/apache/doris/pull/47874)) -- 优化多语句请求的 SQL Hash 生成([#48242](https://github.com/apache/doris/pull/48242)) -- 用户属性变量优先级高于 Session 变量([#48548](https://github.com/apache/doris/pull/48548)) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.6.md deleted file mode 100644 index dd60fa3ce4d1c..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.6.md +++ /dev/null @@ -1,191 +0,0 @@ ---- -{ - "title": "Release 3.0.6", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.6 版本已于 2025 年 06 月 16 日正式发布。 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 3.0.6 版本已于 2025 年 06 月 16 日正式发布。** 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- [GitHub 下载](https://github.com/apache/doris/releases) - -- [官网下载](https://doris.apache.org/download) - -## 行为变更 - -- **禁止 Unique 表使用时序 Compaction** [#49905](https://github.com/apache/doris/pull/49905) -- **存算分离场景下 Auto Bucket 单分桶容量调整为 10GB** [#50566](https://github.com/apache/doris/pull/50566) - -## 新特性 - -### Lakehouse - -- **支持访问 AWS S3 Table Buckets 中的 Iceberg 表格式** - - 详情请参考[文档:Iceberg on S3 Tables](https://doris.apache.org/docs/dev/lakehouse/catalogs/iceberg-catalog#iceberg-on-s3-tables) - -### 存储 - -- **对象存储访问支持 IAM Role 授权** 适用于导入/导出、备份恢复及存算分离场景 [#50252](https://github.com/apache/doris/pull/50252) [#50682](https://github.com/apache/doris/pull/50682) [#49541](https://github.com/apache/doris/pull/49541) [#49565](https://github.com/apache/doris/pull/49565) [#49422](https://github.com/apache/doris/pull/49422) - - 详情请参考[文档](https://doris.apache.org/zh-CN/docs/3.0/admin-manual/auth/integrations/aws-authentication-and-authorization) - -### 新增函数 - -- `json_extract_no_quotes` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/json-functions/json-extract) -- `unhex_null` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/string-functions/unhex) -- `xpath_string` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/string-functions/xpath-string) -- `str_to_map` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/map-functions/str-to-map) -- `months_between` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/date-time-functions/months-between) -- `next_day` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/date-time-functions/next-day) -- `format_round` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/numeric-functions/format-round) - -## 改进 - -### 导入 - -- **引入黑名单机制**:避免 Routine Load 将元信息分发至不可用 BE 节点 [#50587](https://github.com/apache/doris/pull/50587) -- **提高负载优先级阈值**:`load_task_high_priority_threshold_second` 默认值增大 [#50478](https://github.com/apache/doris/pull/50478) - -### 主键模型 - -- **减少冗余日志输出** [#51093](https://github.com/apache/doris/pull/51093) - -### 存储优化 - -- 精简 Compaction Profile 及日志 [#50950](https://github.com/apache/doris/pull/50950) -- 优化调度策略提升 Compaction 吞吐量 [#49882](https://github.com/apache/doris/pull/49882) [#48759](https://github.com/apache/doris/pull/48759) [#51482](https://github.com/apache/doris/pull/51482) [#50672](https://github.com/apache/doris/pull/50672) [#49953](https://github.com/apache/doris/pull/49953) [#50819](https://github.com/apache/doris/pull/50819) - -### 存算分离 - -- **启动优化**:加速 File Cache 初始化 [#50726](https://github.com/apache/doris/pull/50726) -- **查询加速**:优化 File Cache 查询性能 [#50275](https://github.com/apache/doris/pull/50275) [#50387](https://github.com/apache/doris/pull/50387) [#50555](https://github.com/apache/doris/pull/50555) -- **元数据获取优化**:解决 `get_version` 导致的性能瓶颈 [#51111](https://github.com/apache/doris/pull/51111) [#50439](https://github.com/apache/doris/pull/50439) -- **对象回收加速**:提升存算分离模式垃圾回收效率 [#50037](https://github.com/apache/doris/pull/50037) [#50766](https://github.com/apache/doris/pull/50766) -- **稳定性提升**:优化对象存储重试策略 [#50957](https://github.com/apache/doris/pull/50957) -- **Profile 细化**:增强 Tablet/Segment Footer 维度统计 [#49945](https://github.com/apache/doris/pull/49945) [#50564](https://github.com/apache/doris/pull/50564) [#50326](https://github.com/apache/doris/pull/50326) -- **Schema Change 容错**:默认启用 New Tablet Compaction 规避 -230 错误 [#51070](https://github.com/apache/doris/pull/51070) - -### Lakehouse - -#### Catalog 增强 -- Hive Catalog 支持分区缓存 TTL 控制(`partition.cache.ttl-second`)[#50724](https://github.com/apache/doris/pull/50724) - - 详情参考文档:[元数据缓存](https://doris.apache.org/docs/dev/lakehouse/meta-cache) -- 支持 Hive 表 `skip.header.line.count` 属性 [#49929](https://github.com/apache/doris/pull/49929) -- 兼容 `org.openx.data.jsonserde.JsonSerDe` 格式的 Hive 表 [#49958](https://github.com/apache/doris/pull/49958) - - 详情参考文档:[文本格式](https://doris.apache.org/docs/dev/lakehouse/file-formats/text) -- Paimon 版本升级至 1.0.1 -- Iceberg 版本升级至 1.6.1 - -#### 功能扩展 -- 支持阿里云 OSS-HDFS Root Policy 功能 [#50678](https://github.com/apache/doris/pull/50678) -- 方言兼容:返回 Hive 格式查询结果 [#49931](https://github.com/apache/doris/pull/49931) - -### 异步物化视图 - -- **内存优化**:降低透明改写内存占用 [#48887](https://github.com/apache/doris/pull/48887) - -### 查询优化器 - -- **分桶剪枝性能提升** [#49388](https://github.com/apache/doris/pull/49388) -- **Lambda 表达式增强**:支持引用闭包外部 Slot [#44365](https://github.com/apache/doris/pull/44365) - -### 查询执行 - -- **TopN 查询加速**:优化存算分离场景性能 [#50803](https://github.com/apache/doris/pull/50803) -- **函数扩展**:`substring_index` 支持变量参数 [#50149](https://github.com/apache/doris/pull/50149) -- **地理信息函数**:新增 `ST_CONTAINS`/`ST_INTERSECTS`/`ST_TOUCHES`/`ST_DISJOINT` [#49665](https://github.com/apache/doris/pull/49665) - -### 核心组件 - -- **内存追踪优化**:高并发场景性能提升约 10% [#50462](https://github.com/apache/doris/pull/50462) -- **审计日志增强**:通过 `audit_plugin_max_insert_stmt_length` 限制 INSERT 语句长度 [#51314](https://github.com/apache/doris/pull/51314) - - 详情请参考文档:[审计插件](https://doris.apache.org/docs/3.0/admin-manual/audit-plugin) - - -## 缺陷修复 - -### 导入 - -- 修复 BE 事务清理失败问题 [#50103](https://github.com/apache/doris/pull/50103) -- 优化 Routine Load 任务报错准确性 [#51078](https://github.com/apache/doris/pull/51078) -- 禁止向 `disable_load=true` 节点分发元信息任务 [#50421](https://github.com/apache/doris/pull/50421) -- 修复 FE 重启后消费进度回退 [#50221](https://github.com/apache/doris/pull/50221) -- 修复 Group Commit 与 Schema Change 冲突导致的 Core Dump [#51144](https://github.com/apache/doris/pull/51144) -- 解决 S3 Load 使用 HTTPS 协议报错 [#51246](https://github.com/apache/doris/pull/51246) [#51529](https://github.com/apache/doris/pull/51529) - -### 主键模型 - -- 修复竞争导致的主键重复问题 [#50019](https://github.com/apache/doris/pull/50019) [#50051](https://github.com/apache/doris/pull/50051) [#50106](https://github.com/apache/doris/pull/50106) [#50417](https://github.com/apache/doris/pull/50417) [#50847](https://github.com/apache/doris/pull/50847) [#50974](https://github.com/apache/doris/pull/50974) - -### 存储 - -- 解决 CCR 与磁盘均衡竞争 [#50663](https://github.com/apache/doris/pull/50663) -- 修复默认分区 Key 未持久化问题 [#50489](https://github.com/apache/doris/pull/50489) -- CCR 支持 Rollup 表 [#50337](https://github.com/apache/doris/pull/50337) -- 修复 `cooldown_ttl=0` 边界问题 [#50830](https://github.com/apache/doris/pull/50830) -- 解决数据 GC 与 Publish 竞争导致数据丢失 [#50343](https://github.com/apache/doris/pull/50343) -- 修复 Delete Job 分区剪枝失效 [#50674](https://github.com/apache/doris/pull/50674) - -### 存算分离 - -- 修复 Schema Change 阻塞 Compaction [#50908](https://github.com/apache/doris/pull/50908) -- 解决 `storage_vault_prefix` 为空时对象回收失败 [#50352](https://github.com/apache/doris/pull/50352) -- 修复 Tablet Cache 导致的查询性能问题 [#51193](https://github.com/apache/doris/pull/51193) [#49420](https://github.com/apache/doris/pull/49420) -- 消除残留 Tablet Cache 引起的性能抖动 [#50200](https://github.com/apache/doris/pull/50200) - -### Lakehouse - -#### Export 修复 -- 解决 FE 内存泄漏 [#51171](https://github.com/apache/doris/pull/51171) -- 避免 FE 死锁 [#50088](https://github.com/apache/doris/pull/50088) - -#### Catalog 修复 -- JDBC Catalog 支持组合条件下推 [#50542](https://github.com/apache/doris/pull/50542) -- 修复阿里云 OSS Paimon 表 Deletion Vector 读取 [#49645](https://github.com/apache/doris/pull/49645) -- 支持含逗号的 Hive 表分区值 [#49382](https://github.com/apache/doris/pull/49382) -- 修正 MaxCompute Timestamp 列类型解析 [#49600](https://github.com/apache/doris/pull/49600) -- Trino Catalog 支持显示 `information_schema` 系统表 [#49912](https://github.com/apache/doris/pull/49912) - -#### 文件格式 -- 修复 LZO 压缩格式读取失败 [#49538](https://github.com/apache/doris/pull/49538) -- 兼容旧版 ORC 文件 [#50358](https://github.com/apache/doris/pull/50358) -- 修正 ORC 复杂类型解析错误 [#50136](https://github.com/apache/doris/pull/50136) - -### 异步物化视图 - -- 修复同时指定 `start time` 与立即触发模式时的少刷新问题 [#50624](https://github.com/apache/doris/pull/50624) - -### 查询优化器 - -- 修复 Lambda 表达式改写错误 [#49166](https://github.com/apache/doris/pull/49166) -- 解决 Group By 常量键规划失败 [#49473](https://github.com/apache/doris/pull/49473) -- 修正常量折叠逻辑 [#50142](https://github.com/apache/doris/pull/50142) [#50810](https://github.com/apache/doris/pull/50810) -- 补全系统表信息 [#50721](https://github.com/apache/doris/pull/50721) -- 修复 NULL Literal 创建 View 的列类型错误 [#49881](https://github.com/apache/doris/pull/49881) - -### 查询执行 - -- 解决 JSON 导入非法值导致 BE Core [#50978](https://github.com/apache/doris/pull/50978) -- 修复 Intersect 输入 NULL 常量结果错误 [#50951](https://github.com/apache/doris/pull/50951) -- 修正 Variant 类型谓词错误执行 [#50934](https://github.com/apache/doris/pull/50934) -- 修复 `get_json_string` JSON Path 非法时的结果错误 [#50859](https://github.com/apache/doris/pull/50859) -- 对齐 MySQL 函数行为(JSON_REPLACE/INSERT/SET/ARRAY)[#50308](https://github.com/apache/doris/pull/50308) -- 解决 `array_map` 空参数 Core [#50201](https://github.com/apache/doris/pull/50201) -- 修复 Variant 转 JSONB 异常 Core [#50180](https://github.com/apache/doris/pull/50180) -- 修复 `explode_json_array_json_outer` 函数缺失 [#50164](https://github.com/apache/doris/pull/50164) -- 对齐 `percentile` 与 `percentile_array` 结果 [#49351](https://github.com/apache/doris/pull/49351) -- 优化 UTF8 编码函数行为(url_encode/strright/append_trail_char_if_absent)[#49127](https://github.com/apache/doris/pull/49127) - -### 其他 - -- 修复高并发下审计日志丢失 [#50357](https://github.com/apache/doris/pull/50357) -- 解决动态分区建表导致元数据回放失败 [#49569](https://github.com/apache/doris/pull/49569) -- 避免 Global UDF 重启丢失 [#50279](https://github.com/apache/doris/pull/50279) -- 对齐 MySQL View 元数据返回格式 [#51058](https://github.com/apache/doris/pull/51058) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.7.md deleted file mode 100644 index 54bba0b08c01c..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.7.md +++ /dev/null @@ -1,179 +0,0 @@ ---- -{ - "title": "Release 3.0.7", - "language": "en" -} ---- - -## 行为变更 - -- 调整 `show frontends` 和 `show backends` 的权限需求,使其与对应的 RESTful API 保持一致,即需要 `information_schema` 库的 `SELECT_PRIV` 权限 -- 指定 domain 的 admin 和 root 用户不再视为系统用户 -- 存储:单库默认并发事务数调整为 10000 - -## 新特性 - -### 查询优化器 - -- 支持 MySQL 的聚合上卷语法 `GROUP BY ... WITH ROLLUP` - -### 查询执行 - -- 新增数据函数:`cot`/`sec`/`cosec` -- `Like` 语句支持 `escape` 语法 - -### 半结构化数据管理 - -- 通过设置会话变量 `enable_add_index_for_new_data=true`,支持仅对新增数据构建不分词倒排索引和 NGram bloomfilter 索引 - - -## 改进 - -### 导入 - -- 优化 `SHOW CREATE LOAD` 错误信息提示 - -### 主键 - -- 新增 segment key bounds 截断能力,避免单次大导入失败的问题 - -### 存储 - -- 增强 Compaction 和导入数据的可靠性 -- 优化 balance 速度 -- 优化建表速度 -- 优化 compaction 默认参数及可观测性 -- 优化查询报错 -230 的问题 -- 增加系统表 `backend_tablets` -- 优化 Cloud 模式下从 follower 节点查询 `information_schema.tables` 的性能 - -### 存算分离 - -- 增强 Meta-service recycler 可观测性 -- 支持导入 compaction 过程进行跨 compute group 增量预热 -- 优化 Storage vault 连通性检查 -- 支持通过 MS API 更新存储后端信息 - -### Lakehouse - -- 优化 x86 环境下 ORC zlib 的解压性能并修复潜在问题 -- 优化外表读取的默认并发线程数 -- 优化不支持 DDL 操作的 Catalog 的报错信息 - -### 异步物化视图 - -- 优化透明改写规划的性能 - -### 查询优化器 - -- `group_concat` 函数现在允许参数为非字符串类型 -- `sum` 和 `avg` 函数允许参数为非数值类型 -- 扩展 TOP-N 查询延迟物化的支持范围,当查询部分列时也能延迟物化 -- 创建分区时,list 分区允许包含 `MAX_VALUE` -- 优化采样收集聚合模型表统计信息的性能 -- 优化采样收集统计信息时 NDV 值的准确性 - -### 倒排索引 - -- 统一 `show create table` 中倒排索引展示的 properties 顺序 -- 为倒排索引过滤条件新增逐条件的 profile 指标(如命中行数与执行时间),便于性能分析 -- 增强 profile 中倒排索引相关信息展示 - -### 权限 - -- Ranger 支持设置 storage vault 和 compute group 的权限 - -## 缺陷修复 - -### 导入 - -- 修复导入 CSV 文件使用多字符分隔符可能导致的正确性问题 -- 修复修改任务属性后显示 `ROUTINE LOAD` 任务结果不正确的问题 -- 修复主节点重启或 Leader 切换后一流多表导入计划失效的问题 -- 修复 `ROUTINE LOAD` 任务因找不到可用 BE 节点导致所有调度任务阻塞的问题 -- 修复 `runningTxnIds` 并发读写冲突问题 - -### 主键 - -- 优化 mow 表在高频并发导入下的导入性能 -- mow 表 full compaction 释放被删除数据的空间 -- 修复 mow 表在极端场景下可能出现的导入失败问题 -- 优化 mow 表 compaction 性能 -- 修复 mow 表在有并发导入和 sc 时可能的正确性问题 -- 修复 mow 空表执行 schema change 可能导致导入卡住或 schema change 失败的问题 -- 修复 mow delete bitmap cache 内存泄漏问题 -- 修复 mow 表在 sc 后可能的正确性问题 - -### 存储 - -- 修复 compaction 导致的 clone 过程 missing rowset 问题 -- 修复 autobucket 计算 size 不准确及默认值问题 -- 修复分桶列可能导致的正确性问题 -- 修复单列表不能 rename 的问题 -- 修复 memtable 可能的内存泄漏问题 -- 修复空表事务写对不支持行为的报错不统一问题 - -### 存算分离 - -- File cache 相关修复 -- 修复 schema 过程中 cumulative point 可能回滚的问题 -- 修复后台任务影响自动重启的问题 -- 修复 azure 环境中数据回收过程未处理的异常问题 -- 修复单 rowset 做 compaction 未及时清理 file cache 的问题 - -### Lakehouse - -- 修复 Kerberos 环境下 Iceberg 表写入事务提交失败的问题 -- 修复 kerberos 环境下查询 hudi 的问题 -- 修复多 Catalog 情况下潜在的死锁问题 -- 修复某些情况下并发刷新 Catalog 导致元数据不一致的问题 -- 修复 ORC footer 某些情况下会被多次读取的问题 -- 修复 Table Valued Function 无法读取压缩格式 json 文件的问题 -- SQL Server Catalog 支持识别 IDENTITY 列信息 -- SQL Convertor 支持指定多个 url 以实现高可用 - -### 异步物化视图 - -- 修复当查询被优化为空集结果时,可能错误进行分区补偿的问题 - -### 查询优化器 - -- 修复 `sql_select_limit` 以外的影响 DML 执行结果的问题 -- 修复开始 local shuffle 时,物化的 CTE 在极端情况下可能执行报错的问题 -- 修复 prepare 的 insert 语句无法在非 master 节点执行的问题 -- 修复 `cast ipv4` 到 string 的结果错误问题 - -### 权限 - -- 当一个用户拥有多个角色时,会合并多个角色的权限后再执行鉴权 - -### 查询执行 - -- 修复部分 json 函数问题 -- 修复异步线程池满时可能导致 BE Core 的问题 -- 修复 `hll_to_base64` 结果不正确的问题 -- 修复 `decimal256` 转换为 float 时结果错误的问题 -- 修复两处内存泄漏问题 -- 修复 `bitmap_from_base64` 导致的 be core 问题 -- 修复 `array_map` 函数可能导致的 be core 问题 -- 修复 `split_by_regexp` 函数可能的错误问题 -- 修复超大数据量下 `bitmap_union` 函数可能的结果错误问题 -- 修复 `format round` 函数在部分边界值下可能 core 的问题 - -### 倒排索引 - -- 修复倒排索引在异常情况下产生的内存泄漏问题 -- 修复写入和查询空索引文件时报错的问题 -- 捕获倒排索引字符串读取中的 IO 异常,避免因异常导致进程崩溃 - -### 复杂数据类型 - -- 修复 Variant Nested 嵌套数据类型冲突时可能导致的类型推断错误 -- 修复 `map` 函数参数类型推导错误 -- 修复 jsonpath 中指定 `'$.'` 作为 path 导致数据错误变为 NULL 的问题 -- 修复 Variant 的子字段包含 `.` 时,序列化格式无法还原的问题 - -### 其他 - -- 修复 auditlog 表 IP 字段长度不足的问题 -- 修复 SQL 解析错误时,审计日志中记录的 query id 为上一次执行查询的 query id 的问题 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.8.md deleted file mode 100644 index c35ff71b16e6a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/releasenotes/v3.0/release-3.0.8.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -{ - "title": "Release 3.0.8", - "language": "zh-CN", - "description": "schema-change" -} ---- - -## 行为变更 - -- 当使用 ranger / LDAP 时,不再禁止在 Doris 中创建用户 [#50139](https://github.com/apache/doris/pull/50139) -- variant 在默认情况下会关闭 nested 属性,若需在建表时开启,需先在 session variable 中执行以下命令:`set enable_variant_flatten_nested = true`[#54413](https://github.com/apache/doris/pull/54413) - -## 新特性 - -### 查询优化器 - -- 支持 MySQL 的 GROUP BY WITH ORDER 语法 [#53037](https://github.com/apache/doris/pull/53037) - - -## 改进 - -### 导入 - -- 优化内存不足时的下刷策略 ([#52906](https://github.com/apache/doris/pull/52906), [#53909](https://github.com/apache/doris/pull/53909), [#42649](https://github.com/apache/doris/pull/42649), [#54517](https://github.com/apache/doris/pull/54517)) -- S3 Load 和 TVF 支持无 AK/SK 访问公开可读的对象 ([#53592](https://github.com/apache/doris/pull/53592), [#54040](https://github.com/apache/doris/pull/54040)) - -### 存算分离 - -- 当缓存空间充足时,base compaction 生成的 rowset 可以写入文件缓存 ([#53801](https://github.com/apache/doris/pull/53801), [#54693](https://github.com/apache/doris/pull/54693)) -- 优化 `ALTER STORAGE VAULT` 命令,`type`属性可以自动推导,无需显式制定 ([#54394](https://github.com/apache/doris/pull/54394), [#54475](https://github.com/apache/doris/pull/54475)) - - -### 查询优化器 - -- 点查查询会被规划为只有一个 fragment,以提升点查的执行速度 [#53541](https://github.com/apache/doris/pull/53541) - -### 查询执行 - -- 提升 unique key 表在点查时的性能 [#53948](https://github.com/apache/doris/pull/53948) - -### 倒排索引 - -- 优化不分词索引写入时常见默认分词器的额外资源消耗 [#54666](https://github.com/apache/doris/pull/54666) - - -## 缺陷修复 - -### 导入 - -- 修复在使用多字符列分隔符时,`enclose` 解析错误的问题 ([#54581](https://github.com/apache/doris/pull/54581), [#55052](https://github.com/apache/doris/pull/55052)) -- 修复 S3 Load 进度更新不及时的问题 ([#54606](https://github.com/apache/doris/pull/54606), [#54790](https://github.com/apache/doris/pull/54790)) -- 修复 JSON 格式布尔类型加载到 INT 列时的错误 ([#54397](https://github.com/apache/doris/pull/54397), [#54640](https://github.com/apache/doris/pull/54640)) -- 修复 Stream Load 缺失错误 URL 返回的问题 ([#54115](https://github.com/apache/doris/pull/54115), [#54266](https://github.com/apache/doris/pull/54266)) -- 修复在 schema change 抛出异常后 group commit 被阻塞的问题 [#54312](https://github.com/apache/doris/pull/54312) - -### Lakehouse - -- 修复部分情况下使用 JDBC SQL 透传解析失败的问题 [#54077](https://github.com/apache/doris/pull/54077) -- 修复写入 decimal 分区的 iceberg 表失败的问题 [#54557](https://github.com/apache/doris/pull/54557) -- 修复某些情况下 Hudi 表 Timestamp 类型分区列查询失败的问题 [#53791](https://github.com/apache/doris/pull/53791) - -### 查询优化器 - -- 修复在部分自关联场景中,错误使用 colocate join 的问题 [#54323](https://github.com/apache/doris/pull/54323) -- 修复 select distinct 与窗口函数一起使用时可能导致的结果错误 [#54133](https://github.com/apache/doris/pull/54133) -- 当 lambda 表达式出现在非预期位置时,提供更友好的报错 [#53657](https://github.com/apache/doris/pull/53657) - -### 权限 - -- 修复查询外部视图时,错误检查视图中基表权限的问题 [#53786](https://github.com/apache/doris/pull/53786) - -### 查询执行 - -- 修复 IPV6 类型不能解析 IPV4 类型数据的问题 [#54391](https://github.com/apache/doris/pull/54391) -- 修复 IPV6 类型解析时出现栈溢出的错误 [#53713](https://github.com/apache/doris/pull/53713) - - -### 复杂数据类型 - -- BE 支持启动时选择符合指令集的 simdjson parser [#52732](https://github.com/apache/doris/pull/52732) -- 修复 variant nested 数据类型在数据类型冲突情况下导致的错误类型推断 [#53083](https://github.com/apache/doris/pull/53083) -- 修复 variant nested 顶层嵌套 array 数据默认值填充问题 [#54396](https://github.com/apache/doris/pull/54396) -- 禁止 variant 类型在 cloud 上 build index [#54777](https://github.com/apache/doris/pull/54777) -- 修复 variant 创建倒排索引后写入不符合索引条件的数据时生成空索引文件的问题 [#53814](https://github.com/apache/doris/pull/53814) - -### 其他 - -**schema-change** - -- 修复在清理失败的 SC 任务时新 tablet 为空的问题 ([#53952](https://github.com/apache/doris/pull/53952), [#54064](https://github.com/apache/doris/pull/54064)) -- 按原有顺序重建 bucket 列 ([#54024](https://github.com/apache/doris/pull/54024), [#54072](https://github.com/apache/doris/pull/54072), [#54109](https://github.com/apache/doris/pull/54109)) -- 禁止删除 bucket 列 [#54037](https://github.com/apache/doris/pull/54037) -- 网络错误时支持自动重试 ([#54419](https://github.com/apache/doris/pull/54419), [#54488](https://github.com/apache/doris/pull/54488)) -- 避免在 `tabletInvertedIndex` 上的死锁 ([#54197](https://github.com/apache/doris/pull/54197), [#54996](https://github.com/apache/doris/pull/54996)) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/all-release.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/all-release.md deleted file mode 100644 index ac68caff7c872..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/all-release.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -{ - "title": "最新发布", - "language": "zh-CN", - "description": "本文列出了近一年内所有已发布的 Apache Doris 版本,按发布时间倒序呈现。" -} ---- - -本文列出了近一年内所有已发布的 Apache Doris 版本,按发布时间倒序呈现。 - - - - -:::tip 最新发布 -🎉 3.1.3 版本已于 2025 年 11 月 24 日正式发布,详情可查看[版本发布](../releasenotes/v3.1/release-3.1.3)。Apache Doris 3.1 是半结构化分析领域的里程碑,引入了稀疏列和模板化 schema,显著提升了查询和索引性能。它还显著增强了湖仓一体能力,通过异步物化视图和优化连接属性,实现了数据湖和数据仓的无缝集成。新版本在存储引擎上提供了灵活列更新,并通过分区裁剪和基于数据特征的优化器,实现了查询性能的巨大飞跃。 - - - -🎉 3.0.8 版本已于 2025 年 09 月 19 日正式发布,详情可查看[版本发布](../releasenotes/v3.0/release-3.0.8)。从 3.X 版本开始,Apache Doris 除了支持计算存储一体模式外,还支持计算存储分离模式进行集群部署。借助将计算和存储层解耦的云原生架构,用户可以在多个计算集群之间实现查询负载的物理隔离,以及读写负载的隔离。 - -
- -🎉 2.1.11 版本现已于 2025 年 08 月 15 日正式发布,详情可查看[版本发布](../releasenotes/v2.1/release-2.1.11)。子查询性能方面 2.1 版本开箱即用查询的性能提高了 100%;在数据湖分析场景方面,相对于 Trino 和 Spark 分别有 4-6 倍性能提升;在半结构化数据分析场景中提供了强有力的支持,包括新的 Variant 类型和一系列分析函数。此外,2.1 版本起支持异步物化视图以加速查询,优化了大规模实时写入,并通过稳定性和运行时 SQL 资源跟踪改进了工作负载管理。 - -::: - -
- -- [2025-11-24, Apache Doris 3.1.3 版本发布](../releasenotes/v3.1/release-3.1.3.md) - -- [2025-10-27, Apache Doris 3.1.2 版本发布](../releasenotes/v3.1/release-3.1.2.md) - -- [2025-09-26, Apache Doris 3.1.1 版本发布](../releasenotes/v3.1/release-3.1.1.md) - -- [2025-09-19, Apache Doris 3.0.8 版本发布](../releasenotes/v3.0/release-3.0.8.md) - -- [2025-09-04, Apache Doris 3.1.0 版本发布](../releasenotes/v3.1/release-3.1.0.md) - -- [2025-08-25, Apache Doris 3.0.7 版本发布](../releasenotes/v3.0/release-3.0.7.md) - -- [2025-08-15, Apache Doris 2.1.11 版本发布](../releasenotes/v2.1/release-2.1.11.md) - -- [2025-06-16, Apache Doris 3.0.6 版本发布](../releasenotes/v3.0/release-3.0.6.md) - -- [2025-05-17, Apache Doris 2.1.10 版本发布](../releasenotes/v2.1/release-2.1.10.md) - -- [2025-04-28, Apache Doris 3.0.5 版本发布](../releasenotes/v3.0/release-3.0.5.md) - -- [2025-04-02, Apache Doris 2.1.9 版本发布](../releasenotes/v2.1/release-2.1.9.md) - -- [2025-02-28, Apache Doris 3.0.4 版本发布](../releasenotes/v3.0/release-3.0.4.md) - -- [2025-01-24, Apache Doris 2.1.8 版本发布](../releasenotes/v2.1/release-2.1.8.md) - -- [2024-12-02, Apache Doris 3.0.3 版本发布](../releasenotes/v3.0/release-3.0.3.md) - -- [2024-11-10, Apache Doris 2.1.7 版本发布](../releasenotes/v2.1/release-2.1.7.md) - -- [2024-10-15, Apache Doris 3.0.2 版本发布](../releasenotes/v3.0/release-3.0.2.md) - -- [2024-09-30, Apache Doris 2.0.15 版本发布](../releasenotes/v2.0/release-2.0.15.md) - -- [2024-09-10, Apache Doris 2.1.6 版本发布](../releasenotes/v2.1/release-2.1.6.md) - -- [2024-08-23, Apache Doris 3.0.1 版本发布](../releasenotes/v3.0/release-3.0.1.md) - -- [2024-07-24, Apache Doris 2.1.5 版本发布](../releasenotes/v2.1/release-2.1.5.md) - -- [2024-07-17, Apache Doris 2.0.13 版本发布](../releasenotes/v2.0/release-2.0.13.md) - -- [2024-06-27, Apache Doris 2.0.12 版本发布](../releasenotes/v2.0/release-2.0.12.md) - -- [2024-06-26, Apache Doris 2.1.4 版本发布](../releasenotes/v2.1/release-2.1.4.md) - -- [2024-06-05, Apache Doris 2.0.11 版本发布](../releasenotes/v2.0/release-2.0.11.md) - -- [2024-05-21, Apache Doris 2.1.3 版本发布](../releasenotes/v2.1/release-2.1.3.md) - -- [2024-05-16, Apache Doris 2.0.10 版本发布](../releasenotes/v2.0/release-2.0.10.md) - -- [2024-04-23, Apache Doris 2.0.9 版本发布](../releasenotes/v2.0/release-2.0.9.md) - -- [2024-04-12, Apache Doris 2.1.2 版本发布](../releasenotes/v2.1/release-2.1.2.md) - -- [2024-04-09, Apache Doris 2.0.8 版本发布](../releasenotes/v2.0/release-2.0.8.md) - -- [2024-04-03, Apache Doris 2.1.1 版本发布](../releasenotes/v2.1/release-2.1.1.md) - -- [2024-03-26, Apache Doris 2.0.7 版本发布](../releasenotes/v2.0/release-2.0.7.md) - -- [2024-03-12, Apache Doris 2.1.0 版本发布](../releasenotes/v2.1/release-2.1.0.md) - -- [2024-03-11, Apache Doris 2.0.6 版本发布](../releasenotes/v2.0/release-2.0.6.md) - -- [2024-02-28, Apache Doris 2.0.5 版本发布](../releasenotes/v2.0/release-2.0.5.md) - -- [2024-01-26, Apache Doris 2.0.4 版本发布](../releasenotes/v2.0/release-2.0.4.md) - - - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.0.md deleted file mode 100644 index dd5b2989761ad..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.0.md +++ /dev/null @@ -1,375 +0,0 @@ ---- -{ - "title": "Release 1.1.0", - "language": "zh-CN", - "description": "在 1.1 版本中,我们实现了计算层和存储层的全面向量化、正式将向量化执行引擎作为稳定功能进行全面启用,所有查询默认通过向量化执行引擎来执行,性能较之前版本有 3-5 倍的巨大提升;增加了直接访问 Apache Iceberg 外部表的能力," -} ---- - -在 1.1 版本中,**我们实现了计算层和存储层的全面向量化、正式将向量化执行引擎作为稳定功能进行全面启用**,所有查询默认通过向量化执行引擎来执行,**性能较之前版本有 3-5 倍的巨大提升**;增加了直接访问 Apache Iceberg 外部表的能力,支持对 Doris 和 Iceberg 中的数据进行联邦查询,**扩展了 Apache Doris 在数据湖上的分析能力**;在原有的 LZ4 基础上增加了 ZSTD 压缩算法,进一步提升了数据压缩率;**修复了诸多之前版本存在的性能与稳定性问题**,使系统稳定性得到大幅提升。欢迎大家下载使用。 - -## 升级说明 - -### 向量化执行引擎默认开启 - -在 Apache Doris 1.0 版本中,我们引入了向量化执行引擎作为实验性功能。用户需要在执行 SQL 查询手工开启,通过 `set batch_size = 4096` 和 `set enable_vectorized_engine = true `配置 session 变量来开启向量化执行引擎。 - -在 1.1 版本中,我们正式将向量化执行引擎作为稳定功能进行了全面启用,session 变量`enable_vectorized_engine` 默认设置为 true,无需用户手工开启,所有查询默认通过向量化执行引擎来执行。 - -### BE 二进制文件更名 - -BE 二进制文件从原有的 palo_be 更名为 doris_be,如果您以前依赖进程名称进行集群管理和其他操作,请注意修改相关脚本。 - -### Segment 存储格式升级 - -Apache Doris 早期版本的存储格式为 Segment V1,在 0.12 版本中我们实现了新的存储格式 Segment V2,引入了 Bitmap 索引、内存表、Page Cache、字典压缩以及延迟物化等诸多特性。从 0.13 版本开始,新建表的默认存储格式为 Segment V2,与此同时也保留了对 Segment V1 格式的兼容。 - -为了保证代码结构的可维护性、降低冗余历史代码带来的额外学习及开发成本,我们决定从下一个版本起不再支持 Segment v1 存储格式,预计在 Apache Doris 1.2 版本中将删除这部分代码。 - - -### 正常升级 - -正常升级操作请按照官网上的集群升级文档进行滚动升级即可。 - -[https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade](https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade) - -## 重要功能 - -### 支持数据随机分布 [实验性功能] [#8259](https://github.com/apache/doris/pull/8259) [#8041](https://github.com/apache/doris/pull/8041) - -在某些场景中(例如日志分析类场景),用户可能无法找到一个合适的分桶键来避免数据倾斜,因此需要由系统提供额外的分布方式来解决数据倾斜的问题。 - -因此通过在建表时可以不指定具体分桶键,选择使用随机分布对数据进行分桶`DISTRIBUTED BY random BUCKETS number`,数据导入时将会随机写入单个 Tablet,以减少加载过程中的数据扇出,并减少资源开销、提升系统稳定性。 - -### 支持创建 Iceberg 外部表 [实验性功能] [#7391](https://github.com/apache/doris/pull/7391) [#7981](https://github.com/apache/doris/pull/7981) [#8179](https://github.com/apache/doris/pull/8179) - -Iceberg 外部表为 Apache Doris 提供了直接访问存储在 Iceberg 数据的能力。通过 Iceberg 外部表可以实现对本地存储和 Iceberg 存储的数据进行联邦查询,省去繁琐的数据加载工作、简化数据分析的系统架构,并进行更复杂的分析操作。 - -在 1.1 版本中,Apache Doris 支持了创建 Iceberg 外部表并查询数据,并支持通过 REFRESH 命令实现 Iceberg 数据库中所有表 Schema 的自动同步。 - -### 增加 ZSTD 压缩算法 [#8923](https://github.com/apache/doris/pull/8923) [#9747](https://github.com/apache/doris/pull/9747) - -目前 Apache Doris 中数据压缩方法是系统统一指定的,默认为 LZ4。针对部分对数据存储成本敏感的场景,例如日志类场景,原有的数据压缩率需求无法得到满足。 - -在 1.1 版本中,用户建表时可以在表属性中设置`"compression"="zstd"` 将压缩方法指定为 ZSTD。在 25GB 1.1 亿行的文本日志测试数据中,**最高获得了近 10 倍的压缩率、较原有压缩率提升了 53%,从磁盘读取数据并进行解压缩的速度提升了 30%** 。 - -## 功能优化 - -### **更全面的向量化支持** - -在 1.1 版本中,我们实现了计算层和存储层的全面向量化,包括: - -- 实现了所有内置函数的向量化 - -- 存储层实现向量化,并支持了低基数字符串列的字典优化 - -- 优化并解决了向量化引擎的大量性能和稳定性问题。 - -我们对 Apache Doris 1.1 版本与 0.15 版本分别在 SSB 和 TPC-H 标准测试数据集上进行了性能测试: - -- 在 SSB 测试数据集的全部 13 个 SQL 上,1.1 版本均优于 0.15 版本,整体性能约提升了 3 倍,解决了 1.0 版本中存在的部分场景性能劣化问题; - -- 在 TPC-H 测试数据集的全部 22 个 SQL 上,1.1 版本均优于 0.15 版本,整体性能约提升了 4.5 倍,部分场景性能达到了十余倍的提升; - -![release-note-1.1.0-SSB](/images/release-note-1.1.0-SSB.png) - -

SSB 测试数据集

- -![release-note-1.1.0-TPC-H](/images/release-note-1.1.0-TPC-H.png) - -

TPC-H 测试数据集

- -**性能测试报告:** - -[https://doris.apache.org/zh-CN/docs/benchmark/ssb](https://doris.apache.org/zh-CN/docs/benchmark/ssb) - -[https://doris.apache.org/zh-CN/docs/benchmark/tpch](https://doris.apache.org/zh-CN/docs/benchmark/tpch) - -### Compaction 逻辑优化与实时性保证 [#10153](https://github.com/apache/doris/pull/10153) - -在 Apache Doris 中每次 Commit 都会产生一个数据版本,在高并发写入场景下,容易出现因数据版本过多且 Compaction 不及时而导致的 -235 错误,同时查询性能也会随之下降。 - -在 1.1 版本中我们引入了 QuickCompaction,增加了主动触发式的 Compaction 检查,在数据版本增加的时候主动触发 Compaction,同时通过提升分片元信息扫描的能力,快速发现数据版本过多的分片并触发 Compaction。通过主动式触发加被动式扫描的方式,彻底解决数据合并的实时性问题。 - -同时,针对高频的小文件 Cumulative Compaction,实现了 Compaction 任务的调度隔离,防止重量级的 Base Compaction 对新增数据的合并造成影响。 - -最后,针对小文件合并,优化了小文件合并的策略,采用梯度合并的方式,每次参与合并的文件都属于同一个数据量级,防止大小差别很大的版本进行合并,逐渐有层次的合并,减少单个文件参与合并的次数,能够大幅地节省系统的 CPU 消耗。 - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a6d5c50f16a048f3ab27357bc97b7461~tplv-k3u1fbpfcp-zoom-1.image) - -在数据上游维持每秒 10w 的写入频率时(20 个并发写入任务、每个作业 5000 行、Checkpoint 间隔 1s),1.1 版本表现如下: - -- 数据快速合并:Tablet 数据版本维持在 50 以下,Compaction Score 稳定。相较于之前版本高并发写入时频繁出现的 -235 问题,**Compaction 合并效率有 10 倍以上的提升**。 - - - -- CPU 资源消耗显著降低:针对小文件 Compaction 进行了策略优化,在上述高并发写入场景下,**CPU 资源消耗降低 25%** ; - - - -- 查询耗时稳定:提升了数据整体有序性,大幅降低查询耗时的波动性,**高并发写入时的查询耗时与仅查询时持平**,查询性能较之前版本**有 3-4 倍提升**。 - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1c79ee9efba0416d81cc7bed1a349fdf~tplv-k3u1fbpfcp-zoom-1.image) - -### Parquet 和 ORC 文件的读取效率优化 [#9472](https://github.com/apache/doris/pull/9472) - -通过调整 Arrow 参数,利用 Arrow 的多线程读取能力来加速 Arrow 对每个 row_group 的读取,并修改成 SPSC 模型,通过预取来降低等待网络的代价。优化前后对 Parquet 文件导入的性能有 4 ~ 5 倍的提升。 - -### 更安全的元数据 Checkpoint [#9180](https://github.com/apache/doris/pull/9180) [#9192](https://github.com/apache/doris/pull/9192) - -通过对元数据检查点后生成的 image 文件进行双重检查和保留历史 image 文件的功能,解决了 image 文件错误导致的元数据损坏问题。 - -## Bug 修复 - -### 修复由于缺少数据版本而无法查询数据的问题。(严重)[#9267](https://github.com/apache/doris/pull/9267) [#9266](https://github.com/apache/doris/pull/9266) - -问题描述:`failed to initialize storage reader. tablet=924991.xxxx, res=-214, backend=xxxx` - -该问题是在版本 1.0 中引入的,可能会导致多个副本的数据版本丢失。 - -### 解决了资源隔离对加载任务的资源使用限制无效的问题(中等)[#9492](https://github.com/apache/doris/pull/9492) - -在 1.1 版本中,Broker Load 和 Routine Load 将使用具有指定资源标记的 BE 节点进行加载。 - -### 修复使用 HTTP BRPC 超过 2GB 传输网络数据包导致数据传输错误的问题(中等)[#9770](https://github.com/apache/doris/pull/9770) - -在以前的版本中,当通过 BRPC 在后端之间传输的数据超过 2GB 时,可能会导致数据传输错误。 - -## 其他 - -### 禁用 Mini Load - -Mini Load 与 Stream Load 的导入实现方式完全一致,都是通过 HTTP 协议提交和传输数据,在导入功能支持上 Stream Load 更加完备。 - -在 1.1 版本中,默认情况下 Mini Load 接口 `/_load` 将处于禁用状态,请统一使用 Stream Load 来替换 Mini Load。您也可以通过关闭 FE 配置项 `disable_mini_load` 来重新启用 Mini Load 接口。在版本 1.2 中,将彻底删除 Mini Load。 - -### 完全禁用 SegmentV1 存储格式 - -在 1.1 版本中将不再允许新创建 SegmentV1 存储格式的数据,现有数据仍可以继续正常访问。 - -您可以使用 ADMIN SHOW TABLET STORAGE FORMAT 语句检查集群中是否仍然存在 SegmentV1 格式的数据,如果存在请务必通过数据转换命令转换为 SegmentV2。 - -在 Apache Doris 1.2 版本中不再支持对 Segment V1 数据的访问,同时 Segment V1 代码将被彻底删除。 - -### 限制 String 类型的最大长度 [#8567](https://github.com/apache/doris/pull/8567) - -String 类型是 Apache Doris 在 0.15 版本中引入的新数据类型,在过去 String 类型的最大长度允许为 2GB。 - -在 1.1 版本中,我们将 String 类型的最大长度限制为 1 MB,超过此长度的字符串无法再写入,同时不再支持将 String 类型用作表的 Key 列、分区列以及分桶列。 - -已写入的字符串类型可以正常访问。 - -### 修复 fastjson 相关漏洞 [#9763](https://github.com/apache/doris/pull/9763) - -对 Canal 版本进行更新以修复 fastjson 安全漏洞 - -### 添加了 ADMIN DIAGNOSE TABLET 命令 [#8839](https://github.com/apache/doris/pull/8839) - -通过 ADMIN DIAGNOSE TABLET tablet_id 命令可以快速诊断指定 Tablet 的问题。 - -## 下载使用 - -### 下载链接 - -[https://doris.apache.org/zh-CN/download](https://doris.apache.org/zh-CN/download) - -### 升级说明 - -您可以从 Apache Doris 1.0 Release 版本和 1.0.x 发行版本升级到 1.1 Release 版本,升级过程请官网参考文档。如果您当前是 0.15 Release 版本或 0.15.x 发行版本,可跳过 1.0 版本直接升级至 1.1。 - -[https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade](https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade - -### 意见反馈 - -如果您遇到任何使用上的问题,欢迎随时通过 GitHub Discussion 论坛或者 Dev 邮件组与我们取得联系。 - -GitHub 论坛:[https://github.com/apache/incubator-doris/discussions](https://github.com/apache/doris/discussions) - -Dev 邮件组:dev@doris.apache.org - -## 致谢 - -Apache Doris 1.1 Release 版本的发布离不开所有社区用户的支持,在此向所有参与版本设计、开发、测试、讨论的社区贡献者们表示感谢,他们分别是: - -``` - -@adonis0147 - -@airborne12 - -@amosbird - -@aopangzi - -@arthuryangcs - -@awakeljw - -@BePPPower - -@BiteTheDDDDt - -@bridgeDream - -@caiconghui - -@cambyzju - -@ccoffline - -@chenlinzhong - -@daikon12 - -@DarvenDuan - -@dataalive - -@dataroaring - -@deardeng - -@Doris-Extras - -@emerkfu - -@EmmyMiao87 - -@englefly - -@Gabriel39 - -@GoGoWen - -@gtchaos - -@HappenLee - -@hello-stephen - -@Henry2SS - -@hewei-nju - -@hf200012 - -@jacktengg - -@jackwener - -@Jibing-Li - -@JNSimba - -@kangshisen - -@Kikyou1997 - -@kylinmac - -@Lchangliang - -@leo65535 - -@liaoxin01 - -@liutang123 - -@lovingfeel - -@luozenglin - -@luwei16 - -@luzhijing - -@mklzl - -@morningman - -@morrySnow - -@nextdreamblue - -@Nivane - -@pengxiangyu - -@qidaye - -@qzsee - -@SaintBacchus - -@SleepyBear96 - -@smallhibiscus - -@spaces-X - -@stalary - -@starocean999 - -@steadyBoy - -@SWJTU-ZhangLei - -@Tanya-W - -@tarepanda1024 - -@tianhui5 - -@Userwhite - -@wangbo - -@wangyf0555 - -@weizuo93 - -@whutpencil - -@wsjz - -@wunan1210 - -@xiaokang - -@xinyiZzz - -@xlwh - -@xy720 - -@yangzhg - -@Yankee24 - -@yiguolei - -@yinzhijian - -@yixiutt - -@zbtzbtzbt - -@zenoyang - -@zhangstar333 - -@zhangyifan27 - -@zhannngchen - -@zhengshengjun - -@zhengshiJ - -@zingdle - -@zuochunwei - -@zy-kkk -``` diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.1.md deleted file mode 100644 index 9528987f322bc..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.1.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -{ - "title": "Release 1.1.1", - "language": "zh-CN", - "description": "在 1.1.0 版本的向量化执行引擎中 ODBC Sink 是不支持的,而这一功能在之前版本的行存引擎是支持的,因此在 1.1.1 版本中我们重新完善了这一功能。" -} ---- - -## 新增功能 - -### 向量化执行引擎支持 ODBC Sink。 - -在 1.1.0 版本的向量化执行引擎中 ODBC Sink 是不支持的,而这一功能在之前版本的行存引擎是支持的,因此在 1.1.1 版本中我们重新完善了这一功能。 - -### 增加简易版 MemTracker - -MemTracker 是一个用于分析内存使用情况的统计工具,在 1.1.0 版本的向量化执行引擎中,由于 BE 侧没有 MemTracker,可能出现因内存失控导致的 OOM 问题。在 1.1.1 版本中,BE 侧增加了一个简易版 MemTracker,可以帮助控制内存,并在内存超出时取消查询。 - -完整版 MemTracker 将在 1.1.2 版本中正式发布。 - - -## 改进 - -### 支持在 Page Cache 中缓存解压后数据。 - -在 Page Cache 中有些数据是用 bitshuffle 编码方式压缩的,在查询过程中需要花费大量的时间来解压。在 1.1.1 版本中,Doris 将缓存解压由 bitshuffle 编码的数据以加速查询,我们发现在 ssb-flat 的一些查询中,可以减少 30% 的延时。 - -## Bug 修复 - -### 修复无法从 1.0 版本进行滚动升级的问题。 - -这个问题是在 1.1.0 版本中出现的,当升级 BE 而不升级 FE 时,可能会导致 BE Core。 - -如果你遇到这个问题,你可以尝试用 [#10833](https://github.com/apache/doris/pull/10833) 来修复它。 - -### 修复某些查询不能回退到非向量化引擎的问题,并导致 BE Core。 - -目前,向量化执行引擎不能处理所有的 SQL 查询,一些查询(如 left outer join)将使用非向量化引擎来运行。但部分场景在 1.1.0 版本中未被覆盖到,这可能导致 BE 挂掉。 - -### 修复 Compaction 不能正常工作导致的 -235 错误。 - -在 Unique Key 模型中,当一个 Rowset 有多个 Segment 时,在做 Compaction 过程中由于没有正确的统计行数,会导致 Compaction 失败并且产生 Tablet 版本过多而导致的 -235 错误。 - -### 修复查询过程中出现的部分 Segment fault。 - -[#10961](https://github.com/apache/doris/pull/10961) -[#10954](https://github.com/apache/doris/pull/10954) -[#10962](https://github.com/apache/doris/pull/10962) - -# 致谢 - -感谢所有参与贡献 1.1.1 版本的开发者: - -``` -@jacktengg -@mrhhsg -@xinyiZzz -@yixiutt -@starocean999 -@morrySnow -@morningman -@HappenLee -``` \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.2.md deleted file mode 100644 index 088729a604170..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.2.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -{ - "title": "Release 1.1.2", - "language": "zh-CN", - "description": "在 Apache Doris 1.1.2 版本中,我们引入了新的 Memtracker、极大程度上避免 OOM 类问题的发生,提升了向量化执行引擎在多数查询场景的性能表现,修复了诸多导致 BE 和 FE 发生异常的问题,优化了在湖仓联邦查询场景的部分体验问题并提升访问外部数据的性能。" -} ---- - -在 Apache Doris 1.1.2 版本中,我们引入了新的 Memtracker、极大程度上避免 OOM 类问题的发生,提升了向量化执行引擎在多数查询场景的性能表现,修复了诸多导致 BE 和 FE 发生异常的问题,优化了在湖仓联邦查询场景的部分体验问题并提升访问外部数据的性能。 - -相较于 1.1.1 版本,在 1.1.2 版本中有超过 170 个 Issue 和性能优化项被合入,系统稳定性和性能都得到进一步加强。与此同时,1.1.2 版本还将作为 Apache Doris 首个 LTS(Long-term Support)长周期支持版本,后续长期维护和支持,推荐所有用户下载和升级。 - -# 新增功能 - -### MemTracker - -MemTracker 是一个用于分析内存使用情况的统计工具,在 1.1.1 版本中我们引入了简易版 Memtracker 用以控制 BE 侧内存。在 1.1.2 版本中,我们引入了新的 MemTracker,在向量化执行引擎和非向量化执行引擎中都更为准确。 - -### 增加展示和取消正在执行 Query 的 API - -`GET /rest/v2/manager/query/current_queries` - -`GET /rest/v2/manager/query/kill/{query_id}` - -具体使用参考文档 [Query Profile Action](https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/manager/query-profile-action?_highlight=current&_highlight=query#request) - -### 支持读写 Emoji 表情通过 ODBC 外表 - - -# 优化改进 - -### 数据湖相关改进 - -- 扫描 HDFS ORC 文件时性能提升约 300%。[#11501](https://github.com/apache/doris/pull/11501) - -- 查询 Iceberg 表支持 HDFS 的 HA 模式。 - -- 支持查询由 [Apache Tez](https://tez.apache.org/) 创建的 Hive 数据 - -- 添加阿里云 OSS 作为 Hive 外部支持 - -### 在 Spark Load 中增加对 String 字符串类型和 Text 文本类型的支持 - - -### 在非向量化引擎支持复用 Block,在某些场景中有 50% 性能提升。[#11392](https://github.com/apache/doris/pull/11392) - -### 提升 Like 和正则表达式的性能 - -### 禁用 TCMalloc 的 aggressive_memory_decommit。 - -在查询或导入时将会有 40% 性能提升,也可以在配置文件中通过 `tc_enable_aggressive_memory_decommit`来修改 - -# Bug Fix - -### 修复部分可能导致 FE 失败或者数据损坏的问题 - -- 在 HA 环境中,BDBJE 将保留尽可能多的文件,通过增加配置 `bdbje_reserved_disk_bytes `以避免产生太多的 BDBJE 文件,BDBJE 日志只有在接近磁盘限制时才会删除。 - -- 修复了 BDBJE 中的重要错误,该错误将导致 FE 副本无法正确启动或数据损坏。 - -### 修复 FE 在查询过程中会在 waitFor_rpc 上 Hang 住以及 BE 在高并发情况下会 Hang 住的问题。 - -[#12459](https://github.com/apache/doris/pull/12459) [#12458](https://github.com/apache/doris/pull/12458) [#12392](https://github.com/apache/doris/pull/12392) - -### 修复向量化执行引擎查询时得到错误结果的问题。 - -[#11754](https://github.com/apache/doris/pull/11754) [#11694](https://github.com/apache/doris/pull/11694) - -### 修复许多 Planner 导致 BE Core 或者处于不正常状态的问题。 - -[#12080](https://github.com/apache/doris/pull/12080) [#12075](https://github.com/apache/doris/pull/12075) [#12040](https://github.com/apache/doris/pull/12040) [#12003](https://github.com/apache/doris/pull/12003) [#12007](https://github.com/apache/doris/pull/12007) [#11971](https://github.com/apache/doris/pull/11971) [#11933](https://github.com/apache/doris/pull/11933) [#11861](https://github.com/apache/doris/pull/11861) [#11859](https://github.com/apache/doris/pull/11859) [#11855](https://github.com/apache/doris/pull/11855) [#11837](https://github.com/apache/doris/pull/11837) [#11834](https://github.com/apache/doris/pull/11834) [#11821](https://github.com/apache/doris/pull/11821) [#11782](https://github.com/apache/doris/pull/11782) [#11723](https://github.com/apache/doris/pull/11723) [#11569](https://github.com/apache/doris/pull/11569) - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.3.md deleted file mode 100644 index 43b3411405206..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.3.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -{ - "title": "Release 1.1.3", - "language": "zh-CN", - "description": "作为 1.1.2 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.3 版本中,有超过 80 个 Issue 或性能优化项被合入,优化了在导入或查询过程中的内存控制," -} ---- - -作为 1.1.2 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.3 版本中,有超过 80 个 Issue 或性能优化项被合入,优化了在导入或查询过程中的内存控制,修复了许多导致 BE Core 以及产生错误查询结果的问题,系统稳定性和性能得以进一步加强,推荐所有用户下载和使用。 - -# 新增功能 - -- 在 ODBC 表中支持 SQLServer 和 PostgreSQL 的转义标识符。 - -- 支持使用 Parquet 作为导出文件格式。 - -# 优化改进 - -- 优化了 Flush 策略以及避免过多 Segment 小文件。 [#12706](https://github.com/apache/doris/pull/12706) [#12716](https://github.com/apache/doris/pull/12716) - -- 重构 Runtime Filter 以减少初始准备时间。 [#13127](https://github.com/apache/doris/pull/13127) - -- 修复了若干个在查询或导入过程中的内存控制问题。 [#12682](https://github.com/apache/doris/pull/12682) [#12688](https://github.com/apache/doris/pull/12688) [#12708](https://github.com/apache/doris/pull/12708) [#12776](https://github.com/apache/doris/pull/12776) [#12782](https://github.com/apache/doris/pull/12782) [#12791](https://github.com/apache/doris/pull/12791) [#12794](https://github.com/apache/doris/pull/12794) [#12820](https://github.com/apache/doris/pull/12820) [#12932](https://github.com/apache/doris/pull/12932) [#12954](https://github.com/apache/doris/pull/12954) [#12951](https://github.com/apache/doris/pull/12951) - -# Bug 修复 - -- 修复了 largeint 类型在 Compaction 过程中导致 Core 的问题。 [#10094](https://github.com/apache/doris/pull/10094) - -- 修复了 Grouping set 导致 BE Core 或者返回错误结果的问题。 [#12313](https://github.com/apache/doris/pull/12313) - -- 修复了使用 orthogonal_bitmap_union_count 函数时执行计划 PREAGGREGATION 显示错误的问题。 [#12581](https://github.com/apache/doris/pull/12581) - -- 修复了 Level1Iterator 未被释放导致的内存泄漏问题。 [#12592](https://github.com/apache/doris/pull/12592) - -- 修复了当 2 BE 且存在 Colocation 表时通过 Decommission 下线节点失败的问题。 [#12644](https://github.com/apache/doris/pull/12644) - -- 修复了 TBrokerOpenReaderResponse 过大时导致堆栈缓冲区溢出而导致的 BE Core 问题。 [#12658](https://github.com/apache/doris/pull/12658) - -- 修复了出现 -238 错误时 BE 节点可能 OOM 的问题。 [#12666](https://github.com/apache/doris/pull/12666) - -- 修复了 LEAD() 函数错误子表达式的问题。 [#12587](https://github.com/apache/doris/pull/12587) - -- 修复了行存代码中相关查询失败的问题。 [#12712](https://github.com/apache/doris/pull/12712) - -- 修复了 curdate()/current_date() 函数产生错误结果的问题。 [#12720](https://github.com/apache/doris/pull/12720) - -- 修复了 lateral View explode_split 函数出现错误结果的问题。 [#13643](https://github.com/apache/doris/pull/13643) - -- 修复了两张相同表中 Bucket Shuffle Join 计划错误的问题。 [#12930](https://github.com/apache/doris/pull/12930) - -- 修复了更新或导入过程中 Tablet 版本可能错误的问题。 [#13070](https://github.com/apache/doris/pull/13070) - -- 修复了在加密函数下使用 Broker 导入数据时 BE 可能发生 Core 的问题。 [#13009](https://github.com/apache/doris/pull/13009) - -# 升级说明 - -默认情况下禁用 PageCache 和 ChunkAllocator 以减少内存使用,用户可以通过修改配置项 `disable_storage_page_cache` 和 `chunk_reserved_bytes_limit` 来重新启用。 - -Storage Page Cache 和 Chunk Allocator 分别缓存用户数据块和内存预分配。 - -这两个功能会占用一定比例的内存,并且不会释放。这部分内存占用无法灵活调配,导致在某些场景下,因这部分内存占用而导致其他任务内存不足,影响系统稳定性和可用性。因此我们在 1.1.3 版本中默认关闭了这两个功能。 - -但在某些延迟敏感的报表场景下,关闭该功能可能会导致查询延迟增加。如用户担心升级后该功能对业务造成影响,可以通过在 be.conf 中增加以下参数以保持和之前版本行为一致。 - -``` -disable_storage_page_cache=false -chunk_reserved_bytes_limit=10% -``` - -* `disable_storage_page_cache`:是否关闭 Storage Page Cache。1.1.2(含)之前的版本,默认是 false,即打开。1.1.3 版本默认为 true,即关闭。 -* `chunk_reserved_bytes_limit`:Chunk allocator 预留内存大小。1.1.2(含)之前的版本,默认是整体内存的 10%。1.1.3 版本默认为 209715200(200MB)。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.4.md deleted file mode 100644 index a9d871366d124..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.4.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -{ - "title": "Release 1.1.4", - "language": "zh-CN", - "description": "作为 1.1 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.4 版本中,Doris 团队修复了自 1.1.3 版本以来的约 60 个 Issue 或性能优化项。改进了 Spark Load 的使用体验," -} ---- - -作为 1.1 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.4 版本中,Doris 团队修复了自 1.1.3 版本以来的约 60 个 Issue 或性能优化项。改进了 Spark Load 的使用体验,优化了诸多内存以及 BE 异常宕机的问题,系统稳定性和性能得以进一步加强,推荐所有用户下载和使用。 - -# 新增功能 - -- Broker Load 支持 华为云 OBS 对象存储。[#13523](https://github.com/apache/doris/pull/13523) - -- Spark Load 支持 Parquet 和 Orc 文件。[#13438](https://github.com/apache/doris/pull/13438) - - -# 优化改进 - -- 禁用 Metric Hook 中的互斥量,其将影响数据导入过程中的查询性能。 [#10941](https://github.com/apache/doris/pull/10941) - - -# Bug 修复 - -- 修复了当 Spark Load 加载文件时 Where 条件不生效的问题。 [#13804](https://github.com/apache/doris/pull/13804) - -- 修复了 If 函数存在 Nullable 列时开启向量化返回错误结果的问题。 [#13779](https://github.com/apache/doris/pull/13779) - -- 修复了在使用 Anti Join 和其他 Join 谓词时产生错误结果的问题。 [#13743](https://github.com/apache/doris/pull/13743) - -- 修复了当调用函数 concat(ifnull) 时 BE 宕机的问题。 [#13693](https://github.com/apache/doris/pull/13693) - -- 修复了 group by 语句中存在函数时 planner 错误的问题。 [#13613](https://github.com/apache/doris/pull/13613) - -- 修复了 lateral view 语句不能正确识别表名和列名的问题。 [#13600](https://github.com/apache/doris/pull/13600) - -- 修复了使用物化视图和表别名时出现未知列的问题。 [#13605](https://github.com/apache/doris/pull/13605) - -- 修复了 JSONReader 无法释放值和解析 allocator 内存的问题。 [#13513](https://github.com/apache/doris/pull/13513) - -- 修复了当 enable_vectorized_alter_table 为 true 时允许使用 to_bitmap() 对负值列创建物化视图的问题。 [#13448](https://github.com/apache/doris/pull/13448) - -- 修复了函数 from_date_format_str 中微秒数丢失的问题。 [#13446](https://github.com/apache/doris/pull/13446) - -- 修复了排序 exprs 的 nullability 属性在使用子 smap 信息进行替换后可能不正确的问题。 [#13328](https://github.com/apache/doris/pull/13328) - -- 修复了 case when 有 1000 个条件时出现 Core 的问题。 [#13315](https://github.com/apache/doris/pull/13315) - -- 修复了 Stream Load 导入数据时最后一行数据丢失的问题。 [#13066](https://github.com/apache/doris/pull/13066) - -- 恢复表或分区的副本数与备份前相同。 [#11942](https://github.com/apache/doris/pull/11942) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.5.md deleted file mode 100644 index 2268f4d24f625..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.1/release-1.1.5.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -{ - "title": "Release 1.1.5", - "language": "zh-CN", - "description": "在 1.1.5 版本中,Doris 团队已经修复了自 1.1.4 版本发布以来约 36 个问题或性能改进项。同时,1.1.5 版本也是作为 1.1 LTS 版本的错误修复版本,建议所有用户升级到这个版本。" -} ---- - -在 1.1.5 版本中,Doris 团队已经修复了自 1.1.4 版本发布以来约 36 个问题或性能改进项。同时,1.1.5 版本也是作为 1.1 LTS 版本的错误修复版本,建议所有用户升级到这个版本。 - - -# Behavior Changes - - -当别名与原始列名相同时,例如 "select year(birthday) as birthday",在 group by、order by、having 子句中使用别名时将与 MySQL 中保持一致,Group by 和 having 将首先使用原始列,order by 将首先使用别名。这里可能会对用户带来疑惑,因此建议最好不要使用与原始列名相同的别名。 - -# Features - -支持 Hash 函数 murmur_hash3_64。[#14636](https://github.com/apache/doris/pull/14636) - -# Improvements - -为日期函数 convert_tz 添加时区缓存以提高性能。[#14616](https://github.com/apache/doris/pull/14616) - -当调用 show 子句时,按 tablename 对结果进行排序。 [#14492](https://github.com/apache/doris/pull/14492) - -# Bug Fix - -修复 if 语句中带有常量时导致 BE 可能 Coredump 的问题。[#14858](https://github.com/apache/doris/pull/14858) - -修复 ColumnVector::insert_date_column 可能崩溃的问题 [#14839](https://github.com/apache/doris/pull/14839) - -更新 high_priority_flush_thread_num_per_store 默认值为 6,将提高负载性能。 [#14775](https://github.com/apache/doris/pull/14775) - -优化 quick compaction core。 [#14731](https://github.com/apache/doris/pull/14731) - -修复分区列非 duplicate key 时 Spark Load 抛出 IndexOutOfBounds 错误的问题。 - [#14661](https://github.com/apache/doris/pull/14661) - -修正 VCollectorIterator 中的内存泄漏问题。 [#14549](https://github.com/apache/doris/pull/14549) - -修复了存在 Sequence 列时可能存在的建表问题。 [#14511](https://github.com/apache/doris/pull/14511) - -使用 avg rowset 来计算批量大小,而不是使用 total_bytes,因为它要花费大量的 Cpu。 [#14273](https://github.com/apache/doris/pull/14273) - -修复了 right outer join 可能导致 core 的问题。[#14821](https://github.com/apache/doris/pull/14821) - -优化了 TCMalloc gc 的策略。 [#14777](https://github.com/apache/doris/pull/14777) [#14738](https://github.com/apache/doris/pull/14738) [#14374](https://github.com/apache/doris/pull/14374) - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.0.md deleted file mode 100644 index 428bad6d91ed2..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.0.md +++ /dev/null @@ -1,603 +0,0 @@ ---- -{ - "title": "Release 1.2.0", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,再一次经历数月的等候后,我们很高兴地宣布,Apache Doris 于 2022 年 12 月 7 日迎来 1.2.0 Release 版本的正式发布!有近 118 位 Contributor 为 Apache Doris 提交了超 2400 项优化和修复," -} ---- - -亲爱的社区小伙伴们,再一次经历数月的等候后,我们很高兴地宣布,Apache Doris 于 2022 年 12 月 7 日迎来 1.2.0 Release 版本的正式发布!有近 118 位 Contributor 为 Apache Doris 提交了超 2400 项优化和修复,感谢每一位让 Apache Doris 更好的你! - -自从社区正式确立 LTS 版本管理机制后,在 1.1.x 系列版本中不再合入大的功能,仅提供问题修复和稳定性改进,力求满足更多社区用户在稳定性方面的高要求。而在综合考虑版本迭代节奏和用户需求后,我们决定将众多新特性在 1.2 版本中发布,这无疑承载了众多社区用户和开发者的深切期盼,同时这也是一场厚积而薄发后的全面进化! - -在 1.2 版本中,我们实现了全面的向量化、**实现多场景查询性能 3-11 倍的提升**,在 Unique Key 模型上实现了 Merge-on-Write 的数据更新模式、**数据高频更新时查询性能提升达 3-6 倍**,增加了 Multi-Catalog 多源数据目录、**提供了无缝接入 Hive、ES、Hudi、Iceberg 等外部数据源的能力**,引入了 Light Schema Change 轻量表结构变更、**实现毫秒级的 Schema Change 操作并可以借助 Flink CDC 自动同步上游数据库的 DML 和 DDL 操作**,以 JDBC 外部表替换了过去的 ODBC 外部表,支持了 Java UDF 和 Romote UDF 以及 Array 数组类型和 JSONB 类型,修复了诸多之前版本的性能和稳定性问题,推荐大家下载和使用! - -# 下载安装 -GitHub 下载:[https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - -官网下载页:[https://doris.apache.org/download](https://doris.apache.org/download) - -源码地址:[https://github.com/apache/doris/releases/tag/1.2.0-rc04](https://github.com/apache/doris/releases/tag/1.2.0-rc04) - -### 下载说明: - -由于 Apache 服务器文件大小限制,官网下载页的 1.2.0 版本的二进制程序分为三个包: - -1. apache-doris-fe - -2. apache-doris-be - -3. apache-doris-java-udf-jar-with-dependencies - -其中新增的 `apache-doris-java-udf-jar-with-dependencies` 包用于支持 1.2.0 版本中的 JDBC 外表和 JAVA UDF。下载后,需要将其中的 `java-udf-jar-with-dependencies.jar` 文件放到 `be/lib` 目录下,方可启动 BE,否则无法启动成功。 - -### 部署说明: - -从历史版本升级到 1.2.0 版本,需完整更新 fe、be 下的 bin 和 lib 目录。 - -其他升级注意事项,请完整阅读本发版通告最后一节“升级注意事项”以及安装部署文档 [https://doris.apache.org/zh-CN/docs/dev/install/install-deploy](https://doris.apache.org/zh-CN/docs/dev/install/install-deploy) 和集群升级文档 [https://doris.apache.org/zh-CN/docs/dev/admin-manual/cluster-management/upgrade](https://doris.apache.org/zh-CN/docs/dev/admin-manual/cluster-management/upgrade) - -# 重要更新 - -### 1. 全面向量化支持,性能大幅提升 - -在 Apache Doris 1.2.0 版本中,系统所有模块都实现了向量化,包括数据导入、Schema Change、Compaction、数据导出、UDF 等。新版向量化执行引擎具备了完整替换原有非向量化引擎的能力,后续我们也将考虑在未来版本中去除原有非向量化引擎的代码。 - -与此同时,在全面向量化的基础上,我们对数据扫描、谓词计算、Aggregation 算子、HashJoin 算子、算子之间 Shuffle 效率等进行了全链路的优化,使得查询性能有了大幅提升。 - -我们对 Apache Doris 1.2.0 新版本进行了多个标准测试集的测试,同时选择了 1.1.3 版本和 0.15.0 版本作为对比参照项。经测,1.2.0 **在 SSB-Flat 宽表场景上相对 1.1.3 版本整体性能提升了近 4 倍、相对于 0.15.0 版本性能提升了近 10 倍,在 TPC-H 多表关联场景上较 1.1.3 版本上有近 3 倍的提升、较 0.15.0 版本性能至少提升了 11 倍。** - -![ssb_flat](/images/ssb_flat.png) - -![tpch](/images/tpch.png) - -同时,我们将 1.2.0 版本的测试数据提交到了全球知名的数据库测试排行榜 ClickBench,在最新的排行榜中,Apache Doris 1.2.0 新版本取得了通用机型(c6a.4xlarge, 500gb gp2)下**查询性能 Cold Run 第二和 Hot Run 第三的醒目成绩,共有 8 个 SQL 刷新榜单最佳成绩、成为新的性能标杆**。导入性能方面,1.2.0 新版本数据写入效率在同机型所有产品中位列第一,压缩前 70G 数据写入仅耗时 415s、单节点写入速度超过 170 MB/s,在实现极致查询性能的同时也保证了高效的写入效率! - -![coldrun](/images/coldrun.png) - -![hotrun](/images/hotrun.png) - -### 2. 在 Unique Key 模型上实现了 Merge-on-Write 的数据更新模式 - -在过去版本中,Apache Doris 主要是通过 Unique Key 数据模型来实现数据实时更新的。但由于采用的是 Merge-on-Read 的实现方式,查询存在着效率瓶颈,有大量非必要的 CPU 计算资源消耗和 IO 开销,且可能将出现查询性能抖动等问题。 - -在 1.2.0 版本中,我们在原有的 Unique Key 数据模型上,增加了 Merge-on-Write 的数据更新模式。该模式在数据写入时即对需要删除或更新的数据进行标记,始终保证有效的主键只出现在一个文件中(即在写入的时候保证了主键的唯一性),不需要在读取的时候通过归并排序来对主键进行去重,这对于高频写入的场景来说,大大减少了查询执行时的额外消耗。此外还能够支持谓词下推,并能够很好利用 Doris 丰富的索引,在数据 IO 层面就能够进行充分的数据裁剪,大大减少数据的读取量和计算量,因此在很多场景的查询中都有非常明显的性能提升。 - -在比较有代表性的 SSB-Flat 数据集上,通过模拟多个持续导入场景,**新版本的大部分查询取得了 3-6 倍的性能提升**。 - -![mergeonwrite_ssb](/images/mergeonwrite_ssb.png) - -使用场景:所有对主键唯一性有需求,需要频繁进行实时 Upsert 更新的用户建议打开。 - -使用说明:作为新的 Feature 默认关闭,用户可以通过在建表时添加下面的 Property 来开启: - -``` -“enable_unique_key_merge_on_write” = “true” -``` - -另外新版本 Merge-on-Write 数据更新模式与旧版本 Merge-on-Read 实现方式存在差异,因此已经创建的 Unique Key 表无法直接通过 Alter Table 添加 Property 来支持,只能在新建表的时候指定。如果用户需要将旧表转换到新表,可以使用 `insert into new_table select * from old_table` 的方式来实现。 - -### 3. Multi Catalog 多源数据目录 - -Multi-Catalog 多源数据目录功能的目标在于能够帮助用户更方便对接外部数据目录,以增强 Apache Doris 的数据湖分析和联邦数据查询能力。 - -在过去版本中,当我们需要对接外部数据源时,只能在 Database 或 Table 层级对接。当外部数据目录 Schema 发生变化、或者外部数据目录的 Database 或 Table 非常多时,需要用户手工进行一一映射,维护量非常大。1.2.0 版本新增的多源数据目录功能为 Apache Doris 提供了快速接入外部数据源进行访问的能力,用户可以通过 `CREATE CATALOG` 命令连接到外部数据源,Doris 会自动映射外部数据源的库、表信息。之后,用户就可以像访问普通表一样,对这些外部数据源中的数据进行访问,避免了之前用户需要对每张表手动建立外表映射的复杂操作。 - -目前能支持以下数据源: - -1. Hive Metastore:可以访问包括 Hive、Iceberg、Hudi 在内的数据表,也可对接兼容 Hive Metastore 的数据源,如阿里云的 DataLake Formation,同时支持 HDFS 和对象存储上的数据访问。 - -2. Elasticsearch:访问 ES 数据源。 - -3. JDBC:支持通过 JDBC 访问 MySQL 数据源。 - -注:相应的权限层级也会自动变更,详见“升级注意事项”部分 - -文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog) - -### 4. 轻量表结构变更 Light Schema Change - -在过去版本中,Schema Change 是一项相对消耗比较大的工作,需要对数据文件进行修改,在集群规模和表数据量较大时执行效率会明显降低。同时由于是异步作业,当上游 Schema 发生变更时,需要停止数据同步任务并手动执行 Schema Change,增加开发和运维成本的同时还可能造成消费数据的积压。 - -在 1.2.0 新版本中,对数据表的加减列操作,不再需要同步更改数据文件,仅需在 FE 中更新元数据即可,从而实现毫秒级的 Schema Change 操作,且存在导入任务时效率的提升更为显著。与此同时,使得 Apache Doris 在面对上游数据表维度变化时,可以更加快速稳定实现表结构同步,保证系统的高效且平稳运转。如用户可以通过 Flink CDC,可实现上游数据库到 Doris 的 DML 和 DDL 同步,进一步提升了实时数仓数据处理和分析链路的时效性与便捷性。 - -![lightschemachange_compare.png](/images/lightschemachange_compare.png) - -使用说明:作为新的 Feature 默认关闭,用户可以通过在建表时添加下面的 Property 来开启: - -``` -"light_schema_change" = "true" -``` - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -### 5. JDBC 外部表 - -在过去版本中,Apache Doris 提供了 ODBC 外部表的方式来访问 MySQL、Oracle、SQL Server、PostgreSQL 等数据源,但由于 ODBC 驱动版本问题可能造成系统的不稳定。相对于 ODBC,JDBC 接口更为统一且支持数据库众多,因此在 1.2.0 版本中我们实现了 JDBC 外部表以替换原有的 ODBC 外部表。在新版本中,用户可以通过 JDBC 连接支持 JDBC 协议的外部数据源, - -当前已适配的数据源包括: - -- MySQL -- PostgreSQL -- Oracle -- SQLServer -- ClickHouse - -更多数据源的适配已经在规划之中,原则上任何支持 JDBC 协议访问的数据库均能通过 JDBC 外部表的方式来访问。而之前的 ODBC 外部表功能将会在后续的某个版本中移除,还请尽量切换到 JDBC 外表功能。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc) - -### 6. JAVA UDF - -在过去版本中,Apache Doris 提供了 C++ 语言的原生 UDF,便于用户通过自己编写自定义函数来满足特定场景的分析需求。但由于原生 UDF 与 Doris 代码耦合度高、当 UDF 出现错误时可能会影响集群稳定性,且只支持 C++ 语言,对于熟悉 Hive、Spark 等大数据技术栈的用户而言存在较高门槛,因此在 1.2.0 新版本我们增加了 Java 语言的自定义函数,支持通过 Java 编写 UDF/UDAF,方便用户在 Java 生态中使用。同时,通过堆外内存、Zero Copy 等技术,使得跨语言的数据访问效率大幅提升。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/ecosystem/udf/java-user-defined-function](https://doris.apache.org/zh-CN/docs/dev/ecosystem/udf/java-user-defined-function) - -示例:[https://github.com/apache/doris/tree/master/samples/doris-demo](https://github.com/apache/doris/tree/master/samples/doris-demo) - -### 7. Remote UDF - -远程 UDF 支持通过 RPC 的方式访问远程用户自定义函数服务,从而彻底消除用户编写 UDF 的语言限制,用户可以使用任意编程语言实现自定义函数,完成复杂的数据分析工作。 - -文档:[https://doris.apache.org/zh-CN/docs/ecosystem/udf/remote-user-defined-function](https://doris.apache.org/zh-CN/docs/ecosystem/udf/remote-user-defined-function) - -示例:[https://github.com/apache/doris/tree/master/samples/doris-demo](https://github.com/apache/doris/tree/master/samples/doris-demo) - -### 8. Array/JSONB 复合数据类型 - -- Array 类型 - -支持了数组类型,同时也支持多级嵌套的数组类型。在一些用户画像,标签等场景,可以利用 Array 类型更好的适配业务场景。同时在新版本中,我们也实现了大量数组相关的函数,以更好的支持该数据类型在实际场景中的应用。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/ARRAY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/ARRAY) - -相关函数:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/array-functions/array](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/array-functions/array) - -- JSONB 类型 - -支持二进制的 JSON 数据类型 JSONB。该类型提供更紧凑的 JSONB 编码格式,同时提供在编码格式上的数据访问,相比于使用字符串存储的 JSON 数据,有数倍的性能提升。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/JSONB](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/JSONB) - -相关函数:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/json-functions/jsonb_parse](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/json-functions/jsonb_parse) - -### 9. DateV2/DatatimeV2 新版日期/日期时间数据类型 - -支持 DateV2 日期类型和 DatetimeV2 日期时间类型,相较于原有的 Date 和 Datetime 效率更高且支持最多到微秒的时间精度,建议使用新版日期类型。 - -文档:[https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATETIMEV2](https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATETIMEV2) - - [https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATEV2](https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATEV2) - -影响范围: - 1. 用户需要在建表时指定 DateV2 和 DatetimeV2,原有表的 Date 以及 Datetime 不受影响。 - 2. Datev2 和 Datetimev2 在与原来的 Date 和 Datetime 做计算时(例如等值连接),原有类型会被 cast 成新类型做计算 - 3. Example 参考文档中说明 - -### 10. 全新内存管理框架 - -在 Apache Doris 1.2.0 版本中我们增加了全新的内存跟踪器(Memory Tracker),用以记录 Doris BE 进程内存使用,包括查询、导入、Compaction、Schema Change 等任务生命周期中使用的内存以及各项缓存。通过 Memory Tracker 实现了更加精细的内存监控和控制,大大减少了因内存超限导致的 OOM 问题,使系统稳定性进一步得到提升。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/memory-management/memory-tracker](https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/memory-management/memory-tracker) - -### 11. Table Valued Function 表函数 - -增加了 Table Valued Function(TVF,表函数),TVF 可以视作一张普通的表,可以出现在 SQL 中所有“表”可以出现的位置,让用户像访问关系表格式数据一样,读取或访问来自 HDFS 或 S3 上的文件内容, - -例如使用 S3 TVF 实现对象存储上的数据导入: -``` -insert into tbl select * from s3("s3://bucket/file.*", "ak" = "xx", "sk" = "xxx") where c1 > 2; -``` - -或者直接查询 HDFS 上的数据文件: -``` -insert into tbl select * from hdfs("hdfs://bucket/file.*") where c1 > 2; -``` -TVF 可以帮助用户充分利用 SQL 丰富的表达能力,灵活处理各类数据。 - -文档: -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/s3](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/s3) - -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/hdfs](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/hdfs) - -# 更多功能 - -### 1. 更便捷的分区创建方式 - -支持通过 `FROM TO` 命令创建一个时间范围内的多个分区。 - -文档搜索“MULTI RANGE”: -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -示例: -``` -// 根据时间date 创建分区,支持多个批量逻辑和单独创建分区的混合使用 - -PARTITION BY RANGE(event_day)( - FROM ("2000-11-14") TO ("2021-11-14") INTERVAL 1 YEAR, - FROM ("2021-11-14") TO ("2022-11-14") INTERVAL 1 MONTH, - FROM ("2022-11-14") TO ("2023-01-03") INTERVAL 1 WEEK, - FROM ("2023-01-03") TO ("2023-01-14") INTERVAL 1 DAY, - PARTITION p_20230114 VALUES [('2023-01-14'), ('2023-01-15')) -) -``` -``` -// 根据时间datetime 创建分区 -PARTITION BY RANGE(event_time)( - FROM ("2023-01-03 12") TO ("2023-01-14 22") INTERVAL 1 HOUR -) -``` - -### 2. 列重命名 - -对于开启了 Light Schema Change 的表,支持对列进行重命名。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-RENAME ](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-RENAME ) - -### 3. 更丰富权限管理 - -- 支持行级权限 - -可以通过 `CREATE ROW POLICY` 命令创建行级权限。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-POLICY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-POLICY) - -- 支持指定密码强度、过期时间等。 - -- 支持在多次失败登录后锁定账户。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Account-Management-Statements/ALTER-USER](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Account-Management-Statements/ALTER-USER) - -### 4. 导入相关 - -- CSV 导入支持带 header 的 CSV 文件。 - -在文档中搜索 `csv_with_names`:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD/](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD/) - -- Stream Load 新增 `hidden_columns`,可以显式指定 delete flag 列和 sequence 列。 - -在文档中搜索 `hidden_columns`:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD) - -- Spark Load 支持 Parquet 和 ORC 文件导入。 -- 支持清理已完成的导入的 Label - 文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CLEAN-LABEL](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CLEAN-LABEL) - -- 支持通过状态批量取消导入作业 -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CANCEL-LOAD](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CANCEL-LOAD) - -- Broker Load 新增支持阿里云 OSS,腾讯 CHDFS 和华为云 OBS。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/advanced/broker](https://doris.apache.org/zh-CN/docs/dev/advanced/broker) - -- 支持通过 hive-site.xml 文件配置访问 HDFS。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/config/config-dir](https://doris.apache.org/zh-CN/docs/dev/admin-manual/config/config-dir) - -### 5. 支持通过 `SHOW CATALOG RECYCLE BIN` 功能查看回收站中的内容。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Show-Statements/SHOW-CATALOG-RECYCLE-BIN](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Show-Statements/SHOW-CATALOG-RECYCLE-BIN) - -### 6. 支持 `SELECT * EXCEPT` 语法。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/data-table/basic-usage](https://doris.apache.org/zh-CN/docs/dev/data-table/basic-usage) - -### 7. OUTFILE 支持 ORC 格式导出,并且支持多字节分隔符。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE) - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE) - -### 8. 支持通过配置修改可保存的 Query Profile 的数量。 - -文档搜索 FE 配置项:`max_query_profile_num` - -### 9. DELETE 语句支持 IN 谓词条件。并且支持分区裁剪。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/DELETE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/DELETE) - -### 10. 时间列的默认值支持使用 `CURRENT_TIMESTAMP` - -文档中搜索 "CURRENT_TIMESTAMP":[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -### 11. 添加两张系统表:backends、rowsets - -backends 是 Doris 中内置系统表,存放在 information_schema 数据库下,通过该系统表可以查看当前 Doris 集群中的 BE 节点信息。 - -rowsets 是 Doris 中内置系统表,存放在 information_schema 数据库下,通过该系统表可以查看 Doris 集群中各个 BE 节点当前 rowsets 情况。 - -文档: - -[https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/backends](https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/backends) - -[https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/rowsets](https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/rowsets) - -### 12. 备份恢复 - - - Restore 作业支持 `reserve_replica` 参数,使得恢复后的表的副本数和备份时一致。 - - Restore 作业支持 `reserve_dynamic_partition_enable` 参数,使得恢复后的表保持动态分区开启状态。 - - 文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/RESTORE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/RESTORE) - - - 支持通过内置的 libhdfs 进行备份恢复操作,不再依赖 broker。 - - 文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/CREATE-REPOSITORY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/CREATE-REPOSITORY) - -### 13. 支持同机多磁盘之间的数据均衡 - -文档: - -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-REBALANCE-DISK](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-REBALANCE-DISK) - -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-CANCEL-REBALANCE-DISK](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-CANCEL-REBALANCE-DISK) - -### 14. Routine Load 支持订阅 Kerberos 认证的 Kafka 服务。 - -文档中搜索 kerberos:[https://doris.apache.org/zh-CN/docs/dev/data-operate/import/import-way/routine-load-manual](https://doris.apache.org/zh-CN/docs/dev/data-operate/import/import-way/routine-load-manual) - -### 15. New built-in-function 新增内置函数 - - 新增以下内置函数: - - - cbrt - - sequence_match/sequence_count - - mask/mask_first_n/mask_last_n - - elt - - any/any_value - - group_bitmap_xor - - ntile - - nvl - - uuid - - initcap - - regexp_replace_one/regexp_extract_all - - multi_search_all_positions/multi_match_any - - domain/domain_without_www/protocol - - running_difference - - bitmap_hash64 - - murmur_hash3_64 - - to_monday - - not_null_or_empty - - window_funnel - - outer combine - 以及所有 Array 函数 - -# 升级注意事项 - -### FE 元数据版本变更【重要】 - -FE Meta Version 由 107 变更为 114,因此从 1.1.x 以及更早版本升级至 1.2.0 版本后,不可回滚到之前版本。 -升级过程中,建议通过灰度升级的方式,先升级部分节点并观察业务运行情况,以降低升级风险,若执行非法的回滚操作将可能导致数据丢失与损坏。 - -### 行为改变 - -- 权限层级变更。 - - 因为引入了 Catalog 层级,所以相应的用户权限层级也会自动变更。规则如下: - - - GlobalPrivs 和 ResourcePrivs 保持不变 - - 新增 CatalogPrivs 层级。 - - 原 DatabasePrivs 层级增加 internal 前缀(表示 internal catalog 中的 db) - - 原 TablePrivs 层级增加 internal 前缀(表示 internal catalog 中的 tbl) -- GroupBy 和 Having 子句中,优先使用列名而不是别名进行匹配。 -- 不再支持创建以 "mv_" 开头的列。"mv_" 是物化视图中的保留关键词 -- 移除了 order by 语句默认添加的 65535 行的 Limit 限制,并增加 Session 变量 `default_order_by_limit` 可以自定配置这个限制。 -- "Create Table As Select" 生成的表,所有字符串列统一使用 String 类型,不再区分 varchar/char/string -- audit log 中,移除 db 和 user 名称前的 `default_cluster` 字样。 -- audit log 中增加 sql digest 字段 -- union 子句总 order by 逻辑变动。新版本中,order by 子句将在 union 执行完成后执行,除非通过括号进行显式的关联。 -- 进行 decommission 操作时,会忽略回收站中的 tablet,确保 decomission 能够完成。 -- Decimal 的返回结果将按照原始列中声明的精度进行显示,或者按照显式指定的 cast 函数中的精度进行展示。 -- 列名的长度限制由 64 变更为 256 -- FE 配置项变动 - - 默认开启 `enable_vectorized_load` 参数。 - - 增大了 `create_table_timeout` 值。建表操作的默认超时时间将增大。 - - 修改 `stream_load_default_timeout_second` 默认值为 3 天。 - - 修改`alter_table_timeout_second` 的默认值为 一个月。 - - 增加参数 `max_replica_count_when_schema_change` 用于限制 alter 作业中涉及的 replica 数量,默认为 100000。 - - 添加 `disable_iceberg_hudi_table`。默认禁用了 iceberg 和 hudi 外表,推荐使用 multi catalog 功能。 -- BE 配置项变动 - - 移除了 `disable_stream_load_2pc` 参数。2PC 的 stream load 可直接使用。 - - 修改`tablet_rowset_stale_sweep_time_sec` ,从 1800 秒修改为 300 秒。 -- Session 变量变动 - - 修改变量 `enable_insert_strict` 默认为 true。这会导致一些之前可以执行,但是插入了非法值的 insert 操作,不再能够执行。 - - 修改变量 `enable_local_exchange` 默认为 true - - 默认通过 lz4 压缩进行数据传输,通过变量 `fragment_transmission_compression_codec` 控制 - - 增加 `skip_storage_engine_merge` 变量,用于调试 unique 或 agg 模型的数据 - 文档:https://doris.apache.org/zh-CN/docs/dev/advanced/variables -- BE 启动脚本会通过 `/proc/sys/vm/max_map_count` 检查数值是否大于 200W,否则启动失败。 -- 移除了 mini load 接口 - -### 升级过程中需注意 - -1. 升级准备 - - 需替换:lib, bin 目录(start/stop 脚本均有修改) - - BE 也需要配置 JAVA_HOME,已支持 JDBC Table 和 Java UDF。 - - fe.conf 中默认 JVM Xmx 参数修改为 8GB。 - -2. 升级过程中可能的错误 - - repeat 函数不可使用并报错:`vectorized repeat function cannot be executed`,可以在升级前先关闭向量化执行引擎。 - - schema change 失败并报错:`desc_tbl is not set. Maybe the FE version is not equal to the BE` - - 向量化 hash join 不可使用并报错。`vectorized hash join cannot be executed`。可以在升级前先关闭向量化执行引擎。 - -以上错误在完全升级后会恢复正常。 - -### 性能影响 - -- 默认使用 JeMalloc 作为新版本 BE 的内存分配器,替换 TcMalloc。 - -JeMalloc 相比 TcMalloc 使用的内存更少、高并发场景性能更高,但在内存充足的性能测试时,TcMalloc 比 JeMalloc 性能高 5%-10%,详细测试见:https://github.com/apache/doris/pull/12496 - -- tablet sink 中的 batch size 修改为至少 8K。 -- 默认关闭 Page Cache 和 减少 Chunk Allocator 预留内存大小 - -Page Cache 和 Chunk Allocator 分别缓存用户数据块和内存预分配,这两个功能会占用一定比例的内存并且不会释放。由于这部分内存占用无法灵活调配,导致在某些场景下可能因这部分内存占用而导致其他任务内存不足,影响系统稳定性和可用性,因此新版本中默认关闭了这两个功能。 - -但在某些延迟敏感的报表场景下,关闭该功能可能会导致查询延迟增加。如用户担心升级后该功能对业务造成影响,可以通过在 be.conf 中增加以下参数以保持和之前版本行为一致。 -``` -disable_storage_page_cache=false -chunk_reserved_bytes_limit=10% -``` - -### API 变化 - -- BE 的 http api 错误返回信息,由 `{"status": "Fail", "msg": "xxx"}` 变更为更具体的 ``{"status": "Not found", "msg": "Tablet not found. tablet_id=1202"}`` - -- `SHOW CREATE TABLE` 中,comment 的内容由双引号包裹变为单引号包裹 - -- 支持普通用户通过 http 命令获取 query profile。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/manager/query-profile-action](https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/manager/query-profile-action) - -- 优化了 sequence 列的指定方式,可以直接指定列名。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/data-operate/update-delete/sequence-column-manual](https://doris.apache.org/zh-CN/docs/dev/data-operate/update-delete/sequence-column-manual) - -- `show backends` 和 `show tablets` 返回结果中,增加远端存储的空间使用情况 (#11450) -- 移除了 Num-Based Compaction 相关代码 (#13409) -- 重构了 BE 的错误码机制,部分返回的错误信息会发生变化 (#8855) - -# 其他 - -- 支持 Docker 官方镜像。 -- 支持在 MacOS(x86/M1) 和 ubuntu-22.04 上编译 Doris -- 支持进行 image 文件的校验。 - -文档搜索“--image”:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/metadata-operation](https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/metadata-operation) -- 脚本相关 - - FE、BE 的 stop 脚本支持通过 `--grace` 参数退出 FE、BE(使用 kill -15 信号代替 kill -9) - - FE start 脚本支持通过 --version 查看当前 FE 版本 (#11563) -- 支持通过 `ADMIN COPY TABLET` 命令获取某个 tablet 的数据和相关建表语句,用于本地问题调试 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET) - -- 支持通过 http api,获取一个 SQL 语句相关的 建表语句,用于本地问题复现 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/query-schema-action](https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/query-schema-action) - -- 支持建表时关闭这个表的 compaction 功能,用于测试 - -文档中搜索 "disble_auto_compaction":[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -# 致谢 - -Apache Doris 1.2.0 版本的发布离不开所有社区用户的支持,在此向所有参与版本设计、开发、测试、讨论的社区贡献者们表示感谢,他们分别是(首字母排序): - -``` -@924060929 -@a19920714liou -@adonis0147 -@Aiden-Dong -@aiwenmo -@AshinGau -@b19mud -@BePPPower -@BiteTheDDDDt -@bridgeDream -@ByteYue -@caiconghui -@CalvinKirs -@cambyzju -@caoliang-web -@carlvinhust2012 -@catpineapple -@ccoffline -@chenlinzhong -@chovy-3012 -@coderjiang -@cxzl25 -@dataalive -@dataroaring -@dependabot -@dinggege1024 -@DongLiang-0 -@Doris-Extras -@eldenmoon -@EmmyMiao87 -@englefly -@FreeOnePlus -@Gabriel39 -@gaodayue -@geniusjoe -@gj-zhang -@gnehil -@GoGoWen -@HappenLee -@hello-stephen -@Henry2SS -@hf200012 -@huyuanfeng2018 -@jacktengg -@jackwener -@jeffreys-cat -@Jibing-Li -@JNSimba -@Kikyou1997 -@Lchangliang -@LemonLiTree -@lexoning -@liaoxin01 -@lide-reed -@link3280 -@liutang123 -@liuyaolin -@LOVEGISER -@lsy3993 -@luozenglin -@luzhijing -@madongz -@morningman -@morningman-cmy -@morrySnow -@mrhhsg -@Myasuka -@myfjdthink -@nextdreamblue -@pan3793 -@pangzhili -@pengxiangyu -@platoneko -@qidaye -@qzsee -@SaintBacchus -@SeekingYang -@smallhibiscus -@sohardforaname -@song7788q -@spaces-X -@ssusieee -@stalary -@starocean999 -@SWJTU-ZhangLei -@TaoZex -@timelxy -@Wahno -@wangbo -@wangshuo128 -@wangyf0555 -@weizhengte -@weizuo93 -@wsjz -@wunan1210 -@xhmz -@xiaokang -@xiaokangguo -@xinyiZzz -@xy720 -@yangzhg -@Yankee24 -@yeyudefeng -@yiguolei -@yinzhijian -@yixiutt -@yuanyuan8983 -@zbtzbtzbt -@zenoyang -@zhangboya1 -@zhangstar333 -@zhannngchen -@ZHbamboo -@zhengshiJ -@zhenhb -@zhqu1148980644 -@zuochunwei -@zy-kkk -``` diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.1.md deleted file mode 100644 index 1f438d4137a68..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.1.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -{ - "title": "Release 1.2.1", - "language": "zh-CN", - "description": "在 1.2.1 版本中,Doris 团队已经修复了自 1.2.0 版本发布以来约 200 个问题或性能改进项。同时,1.2.1 版本也作为 1.2 的第一个迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。" -} ---- - -在 1.2.1 版本中,Doris 团队已经修复了自 1.2.0 版本发布以来约 200 个问题或性能改进项。同时,1.2.1 版本也作为 1.2 的第一个迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - - -# 优化改进 - -### 支持高精度小数 DecimalV3 - -支持精度更高和性能更好的 DecimalV3,相较于过去版本具有以下优势: - -- 可表示范围更大,取值范围都进行了明显扩充,有效数字范围 [1,38]。 - -- 性能更高,根据不同精度,占用存储空间可自适应调整。 - -- 支持更完备的精度推演,对于不同的表达式,应用不同的精度推演规则对结果的精度进行推演。 - -[DecimalV3](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/DECIMALV3) - -### 支持 Iceberg V2 - -支持 Iceberg V2 (仅支持 Position Delete,Equality Delete 会在后续版本支持),可以通过 Multi-Catalog 功能访问 Iceberg V2 格式的表。 - - -### 支持 OR 条件转 IN - -支持将 where 条件表达式后的 or 条件转换成 in 条件,在部分场景中可以提升执行效率。 [#15437](https://github.com/apache/doris/pull/15437) [#12872](https://github.com/apache/doris/pull/12872) - - -### 优化 JSONB 类型的导入和查询性能 - -优化 JSONB 类型的导入和查询性能,在测试数据上约有 70% 的性能提升。 [#15219](https://github.com/apache/doris/pull/15219) [#15219](https://github.com/apache/doris/pull/15219) - -### Stream load 支持带引号的 CSV 数据 - -通过导入任务参数 `trim_double_quotes` 来控制,默认值为 false,为 true 时表示裁剪掉 CSV 文件每个字段最外层的双引号。 [#15241](https://github.com/apache/doris/pull/15241) - -### Broker 支持腾讯云 CHDFS 和 百度云 BOS、AFS - -可以通过 Broker 访问存储在腾讯云 CHDFS 和 百度智能云 BOS、AFS 上的数据。 [#15297](https://github.com/apache/doris/pull/15297) [#15448](https://github.com/apache/doris/pull/15448) - -### 新增函数 - -新增函数 `substring_index`。 [#15373](https://github.com/apache/doris/pull/15373) - - - -# 问题修复 - -- 修复部分情况下,从 1.1.x 版本升级到 1.2.0 版本后,用户权限信息丢失的问题。 [#15144](https://github.com/apache/doris/pull/15144) - -- 修复使用 date/datetimev2 类型进行分区时,分区值错误的问题。 [#15094](https://github.com/apache/doris/pull/15094) - -- 修复部分已发布功能的 Bug,具体列表可参阅:[PR List](https://github.com/apache/doris/pulls?q=is%3Apr+label%3Adev%2F1.2.1-merged+is%3Aclosed) - - -# 升级注意事项 - -### 已知问题 - -- 请勿使用 JDK11 作为 BE 的运行时 JDK,会导致 BE Crash。 - -- 该版本对 csv 格式的读取性能有下降,会影响 csv 格式的导入和读取效率,我们会在下一个三位版本尽快修复 - -### 行为改变 - -- BE 配置项 `high_priority_flush_thread_num_per_store` 默认值由 1 改成 6,以提升 Routine Load 的写入效率。[#14775](https://github.com/apache/doris/pull/14775) - -- FE 配置项 `enable_new_load_scan_node` 默认值改为 true,将使用新的 File Scan Node 执行导入任务,对用户无影响。 [#14808](https://github.com/apache/doris/pull/14808) - -- 删除 FE 配置项 `enable_multi_catalog`,默认开启 Multi-Catalog 功能。 - -- 默认强制开启向量化执行引擎。会话变量 `enable_vectorized_engine` 将不再生效,如需重新生效,需将 FE 配置项 `disable_enable_vectorized_engine` 设为 false,并重启 FE。 [#15213](https://github.com/apache/doris/pull/15213) - -# 致谢 - -有 45 位贡献者参与到 1.2.1 版本的开发与完善中,感谢他们的付出,他们分别是: - -@adonis0147 - -@AshinGau - -@BePPPower - -@BiteTheDDDDt - -@ByteYue - -@caiconghui - -@cambyzju - -@chenlinzhong - -@dataroaring - -@Doris-Extras - -@dutyu - -@eldenmoon - -@englefly - -@freemandealer - -@Gabriel39 - -@HappenLee - -@Henry2SS - -@hf200012 - -@jacktengg - -@Jibing-Li - -@Kikyou1997 - -@liaoxin01 - -@luozenglin - -@morningman - -@morrySnow - -@mrhhsg - -@nextdreamblue - -@qidaye - -@spaces-X - -@starocean999 - -@wangshuo128 - -@weizuo93 - -@wsjz - -@xiaokang - -@xinyiZzz - -@xutaoustc - -@yangzhg - -@yiguolei - -@yixiutt - -@Yulei-Yang - -@yuxuan-luo - -@zenoyang - -@zhangstar333 - -@zhannngchen - -@zhengshengjun - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.2.md deleted file mode 100644 index 1d53fae90fee5..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.2.md +++ /dev/null @@ -1,242 +0,0 @@ ---- -{ - "title": "Release 1.2.2", - "language": "zh-CN", - "description": "在 1.2.2 版本中,Doris 团队已经修复了自 1.2.1 版本发布以来超过 200 个问题或性能改进项。同时,1.2.2 版本也作为 1.2.1 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。" -} ---- - -在 1.2.2 版本中,Doris 团队已经修复了自 1.2.1 版本发布以来超过 200 个问题或性能改进项。同时,1.2.2 版本也作为 1.2.1 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - - -# New Feature - -### 数据湖分析 - -- **支持自动同步 Hive Metastore 元数据信息。** 默认情况下外部数据源的元数据变更,如创建或删除表、加减列等操作不会同步给 Doris,用户需要使用 `REFRESH CATALOG` 命令手动刷新元数据。在 1.2.2 版本中支持自动刷新 Hive Metastore 元数据信息,通过让 FE 节点定时读取 HMS 的 notification event 来感知 Hive 表元数据的变更情况。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/) - -- **支持读取 Iceberg Snapshot 以及查询 Snapshot 历史。** 在执行 Iceberg 数据写入时,每一次写操作都会产生一个新的快照。默认情况下通过 Apache Doris 读取 Iceberg 表仅会读取最新版本的快照。在 1.2.2 版本中可以使用 `FOR TIME AS OF` 和 `FOR VERSION AS OF` 语句,根据快照 ID 或者快照产生的时间读取历史版本的数据,也可以使用 iceberg_meta 表函数查询指定表的快照信息。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg) - -- JDBC Catalog 支持 PostgreSQL、Clickhouse、Oracle、SQLServer。 - -- **JDBC Catalog 支持 insert into 操作。** 在 Doris 中建立 JDBC Catalog 后,可以通过 insert into 语句直接写入数据,也可以将 Doris 执行完查询之后的结果写入 JDBC Catalog,或者是从一个 JDBC 外表将数据导入另一个 JDBC 外表。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/) - - -### 自动分桶推算 - -支持通过 `DISTRIBUTED BY HASH(……) BUCKETS AUTO` 语句设置自动分桶,系统帮助用户设定以及伸缩不同分区的分桶数,使分桶数保持在一个相对合适的范围内。 - -参考文档:[https://mp.weixin.qq.com/s/DSyZGJtjQZUYUsvfK0IcCg](https://mp.weixin.qq.com/s/DSyZGJtjQZUYUsvfK0IcCg) - - -### 新增函数 - -增加归类分析函数 `width_bucket` 。 - -参考文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/width-bucket/#description](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/width-bucket/#description) - - -# Behavior Changes - -### 默认情况下禁用 BE 的 Page Cache - -关闭此配置以优化内存使用并降低内存 OOM 的风险,但有可能增加一些小查询的查询延迟。如果您对查询延迟敏感,或者具有高并发小查询场景,可以配置 `disable_storage_page_cache=false` 以再次启用 Page Cache。 - -### 增加新 Session 变量 `group_by_and_having_use_alias_first` - -用于控制 group by 和 having 语句是否优先使用列的别名,而非从 From 语句里寻找列的名字,默认为 false。 - -# Improvement - -### Compaction 优化 - -- **支持 Vetical Compaction**。在过去版本中,宽列场景 Compaction 往往会带来大量的内存开销。在 1.2.2 版本中,Vertical Compaction 采用了按列组的方式进行数据合并,单次合并只需要加载部分列的数据,能够极大减少合并过程中的内存占用。在实际测试中,Vertical compaction 使用内存仅为原有 compaction 算法的 1/10,同时 Compaction 速率提升 15%。 - -- 支持 **Segment Compaction**。在过去版本中,当用户大数据量高频导入时可能会遇到 -238 以及 -235 问题,Segment Compaction 允许在导入数据的同时进行数据的合并,以有效控制 Segment 文件的数量,提升高频导入的系统稳定性。 - -参考文档:[https://doris.apache.org/docs/dev/advanced/best-practice/compaction](https://doris.apache.org/docs/dev/advanced/best-practice/compaction) - - -### 数据湖分析 - -- Hive Catalog 支持访问 Hive 1/2/3 版本。 - -- Hive Catalog 可以使用 Broker 访问数据存储在 JuiceFS 的 Hive。 - -- Iceberg Catalog 支持 Hive Metastore 和 Rest 作为元数据服务。 - -- ES Catalog 支持 元数据字段 _id 列映射。 - -参考文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/hive](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/hive) - -- 优化 Iceberg V2 表有大量删除行诗时的读取性能。 - -- 支持读取 Schema Evolution 后 Iceberg 表。 - -- Parquet Reader 正确处理列名大小写。 - - -### 其他 - -- 支持访问 Hadoop KMS 加密的 HDFS。 - -- 支持取消正在执行的导出任务。 - -参考文档:[https://doris.apache.org/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/CANCEL-EXPORT](https://doris.apache.org/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/CANCEL-EXPORT) - -- 将`explode_split` 函数执行效率优化 1 倍。 - -- 将 nullable 列的读取性能优化 3 倍。 - -- 优化 Memtracker 的部分问题,提高内存管理精度,优化内存应用。 - - -# BugFix - -- 修复了使用 Doris-Flink-Connector 导入数据时的内存泄漏问题;[#16430](https://github.com/apache/doris/pull/16430) - -- 修复了 BE 可能的线程调度问题,并减少了 BE 线程耗尽导致的 Fragment_sent_timeout。 - -- 修复了 datetimev2/decivalv3 的部分正确性和精度问题。 - -- 修复了 Light Schema Change 功能的各种已知问题。 - -- 修复了 bitmap 类型 Runtime Filter 的各种数据正确性问题。 - -- 修复了 1.2.1 版本中引入的 CSV 读取性能差的问题。 - -- 修复了 Spark Load 数据下载阶段导致的 BE OOM 问题。 - -- 修复了从 1.1.x 版升级到 1.2.x 版时可能出现的元数据兼容性问题。 - -- 修复了创建 JDBC Catalog 时的元数据问题。 - -- 修复了由于导入操作导致的 CPU 使用率高的问题。 - -- 修复了大量失败 Broker Load 作业导致的 FE OOM 问题。 - -- 修复了加载浮点类型时精度丢失的问题。 - -- 修复了 Stream Load 使用两阶段提交时出现的内存泄漏问题。 - -# 其他 - -添加指标以查看 BE 上的 Rowset 和 Segment 总数字 `doris_be_all_rowsets_num` 和 `doris_be_all_segments_num` - -# 致谢 - -有 53 位贡献者参与到 1.2.2 版本的开发与完善中,感谢他们的付出,他们分别是: - -@adonis0147 - -@AshinGau - -@BePPPower - -@BiteTheDDDDt - -@ByteYue - -@caiconghui - -@cambyzju - -@chenlinzhong - -@DarvenDuan - -@dataroaring - -@Doris-Extras - -@dutyu - -@englefly - -@freemandealer - -@Gabriel39 - -@HappenLee - -@Henry2SS - -@htyoung - -@isHuangXin - -@JackDrogon - -@jacktengg - -@Jibing-Li - -@kaka11chen - -@Kikyou1997 - -@Lchangliang - -@LemonLiTree - -@liaoxin01 - -@liqing-coder - -@luozenglin - -@morningman - -@morrySnow - -@mrhhsg - -@nextdreamblue - -@qidaye - -@qzsee - -@spaces-X - -@stalary - - -@starocean999 - -@weizuo93 - -@wsjz - -@xiaokang - -@xinyiZzz - -@xy720 - -@yangzhg - -@yiguolei - -@yixiutt - -@Yukang-Lian - -@Yulei-Yang - -@zclllyybb - -@zddr - -@zhangstar333 - -@zhannngchen - -@zy-kkk - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.3.md deleted file mode 100644 index 787dde46d247a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.3.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -{ - "title": "Release 1.2.3", - "language": "zh-CN", - "description": "在 1.2.3 版本中,Doris 团队已经修复了自 1.2.2 版本发布以来超过 200 个问题或性能改进项。同时,1.2.3 版本也作为 1.2.2 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。" -} ---- - -在 1.2.3 版本中,Doris 团队已经修复了自 1.2.2 版本发布以来超过 200 个问题或性能改进项。同时,1.2.3 版本也作为 1.2.2 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - - -# Improvement - -### JDBC Catalog - -- 支持通过 JDBC Catalog 连接到另一个 Doris 数据库。 - -目前 JDBC Catalog 连接 Doris 只支持用 5.x 版本的 JDBC jar 包。如果使用 8.x JDBC jar 包可能会出现列类型无法匹配问题。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/#doris](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/#doris) - -- 支持通过参数 `only_specified_database` 来同步指定的数据库。 - -- 支持通过 `lower_case_table_names` 参数控制是否以小写形式同步表名,解决表名区分大小写的问题。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc) - -- 优化 JDBC Catalog 的读取性能。 - -### Elasticsearch Catalog - -- 支持 Array 类型映射。 - -- 支持通过 `like_push_down` 属性下推 like 表达式来控制 ES 集群的 CPU 开销。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/es](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/es) - -### Hive Catalog - -- 支持 Hive 表默认分区 `__Hive_default_partition__`。 - -- Hive Metastore 元数据自动同步支持压缩格式的通知事件。 - -### 动态分区优化 - -- 支持通过 storage_medium 参数来控制创建动态分区的默认存储介质。 - -参考文档:[https://doris.apache.org/docs/dev/advanced/partition/dynamic-partition](https://doris.apache.org/docs/dev/advanced/partition/dynamic-partition) - - -### 优化 BE 的线程模型 - -- 优化 BE 的线程模型,以避免频繁创建和销毁线程所带来的稳定性问题。 - -# Bug 修复 - -- 修复了部分 Unique Key 模型 Merge-on-Write 表的问题; - -- 修复了部分 Compaction 相关问题; - -- 修复了部分 Delete 语句导致的数据问题; - -- 修复了部分 Query 执行问题; - -- 修复了在某些操作系统上使用 JDBC Catalog 导致 BE 宕机的问题; - -- 修复了部分 Multi-Catalog 的问题; - -- 修复了部分内存统计和优化问题; - -- 修复了部分 DecimalV3 和 date/datetimev2 的相关问题。 - -- 修复了部分导入过程中的稳定性问题; - -- 修复了部分 Light Schema Change 的问题; - -- 修复了使用 `datetime` 类型创建批处理分区的问题; - -- 修复了 Broker Load 大数据量导入失败而导致的 FE 内存使用过高的问题; - -- 修复了删除表后无法取消 Stream Load 的问题; - -- 修复了某些情况下查询 `information_schema` 超时的问题; - -- 修复了使用 `select outfile` 并发数据导出导致 BE 宕机的问题; - -- 修复了事务性插入操作导致内存泄漏的问题; - -- 修复了部分查询和导入 Profile 的问题,并支持通过 FE web ui 直接下载 Profile 文件; - -- 修复了 BE Tablet GC 线程导致 IO 负载过高的问题; - -- 修复了 Kafka Routine Load 中提交 Offset 不准确的问题。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.4.md deleted file mode 100644 index bbc7c5bb42d75..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.4.md +++ /dev/null @@ -1,159 +0,0 @@ ---- -{ - "title": "Release 1.2.4", - "language": "zh-CN", - "description": "在 1.2.4 版本中,Doris 团队已经修复了自 1.2.3 版本发布以来近 150 个问题或性能改进项。同时,1.2.4 版本也作为 1.2.3 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。" -} ---- - -在 1.2.4 版本中,Doris 团队已经修复了自 1.2.3 版本发布以来近 150 个问题或性能改进项。同时,1.2.4 版本也作为 1.2.3 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - -# Behavior Changed - -- 针对 Date/DatetimeV2 和 DecimalV3 类型,在 `DESCRIBLE` 和 `SHOW CREATE TABLE` 语句的结果中,将不再显示为 Date/DatetimeV2 或 DecimalV3,而直接显示为 Date/Datetime 或 Decimal。 - - 这个改动用于兼容部分 BI 系统。如果想查看列的实际类型,可以通过 `DESCRIBE ALL` 语句查看。 - -- 查询 `information_schema` 库中的表时,默认不再返回 External Catalog 中的元信息。 - - 这个改动避免了因 External Catalog 的连接问题导致的 information_schema 库不可查的问题,从而解决部分 BI 系统与 Doris 配合使用的问题。可以通过 FE 的配置项 `infodb_support_ext_catalog `控制,默认为 false,即不返回 External Catalog 中的元信息。 - -# Improvement - -### JDBC Catalog - -- 支持通过 JDBC Catalog 连接其他 Trino/Presto 集群 - -​ 参考文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#trino](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#trino) - -- JDBC Catalog 连接 Clickhouse 数据源支持 Array 类型映射 - -​ 参考文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#clickhouse](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#clickhouse) - -### Spark Load - -- Spark Load 支持 Resource Manager HA 相关配置 - -​ 参考 PR: [https://github.com/apache/doris/pull/15000](https://github.com/apache/doris/pull/15000) - -# Bug Fixes - -- 修复 Hive Catalog 的若干连通性问题。 - -- 修复 Hudi Catalog 的若干问题。 - -- 优化 JDBC Catalog 的连接池,避免过多的连接。 - -- 修复通过 JDBC Catalog 从另一个 Doris 集群导入数据是会发生 OOM 的问题。 - -- 修复若干查询和导入的规划问题。 - -- 修复 Unique Key Merge-On-Write 表的若干问题。 - -- 修复若干 BDBJE 问题,解决某些情况下 FE 元数据异常的问题。 - -- 修复 `CREATE VIEW` 语句不支持 Table Valued Function 的问题。 - -- 修复若干内存统计的问题。 - -- 修复读取 Parquet/ORC 表的若干问题。 - -- 修复 DecimalV3 的若干问题。 - -- 修复 `SHOW QUERY/LOAD PROFILE` 的若干问题。 - -# 致谢 - -有 47 位贡献者参与到 1.2.4 的完善和发布中,感谢他们的辛劳付出: - -@zy-kkk - -@zhannngchen - -@zhangstar333 - -@yixiutt - -@yiguolei - -@xinyiZzz - -@xiaokang - -@wsjz - -@wangbo - -@starocean999 - -@sohardforaname - -@siriume - -@pingchunzhang - -@nextdreamblue - -@mymeiyi - -@mrhhsg - -@morrySnow - -@morningman - -@luwei16 - -@luozenglin - -@liujinhui1994 - -@liaoxin01 - -@kaka11chen - -@jeffreys-cat - -@jacktengg - -@gavinchou - -@dutyu - -@dataroaring - -@chenlinzhong - -@caoliang-web - -@cambyzju - -@adonis0147 - -@Yulei-Yang - -@Yukang-Lian - -@SWJTU-ZhangLei - -@Kikyou1997 - -@Jibing-Li - -@JackDrogon - -@HappenLee - -@GoGoWen - -@Gabriel39 - -@Doris-Extras - -@CalvinKirs - -@Cai-Yao - -@ByteYue - -@BiteTheDDDDt - -@BePPPower diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.5.md deleted file mode 100644 index 0ccdd8c136aa0..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.5.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -{ - "title": "Release 1.2.5", - "language": "zh-CN", - "description": "在 1.2.5 版本中,Doris 团队已经修复了自 1.2.4 版本发布以来近 210 个问题或性能改进项。同时,1.2.5 版本也作为 1.2.4 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。" -} ---- - -在 1.2.5 版本中,Doris 团队已经修复了自 1.2.4 版本发布以来近 210 个问题或性能改进项。同时,1.2.5 版本也作为 1.2.4 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - -# Behavior Changed - -- BE 启动脚本会检查系统的最大文件句柄数需大于等于 65536,否则启动失败。 - -- BE 配置项 `enable_quick_compaction` 默认设为 true。即默认开启 Quick Compaction 功能。该功能用于优化大批量导入情况下的小文件问题。 - -- 修改表的动态分区属性后,将不再立即生效,而是统一等待下一次动态分区表的任务调度,以避免一些死锁问题。 - -# Improvement - -- 优化 bthread 和 pthread 的使用,减少查询过程中的 RPC 阻塞问题。 - -- FE 前端页面的 Profile 页面增加下载 Profile 的按钮。 - -- 新增 FE 配置 `recover_with_skip_missing_version`,用于在某些故障情况下,查询跳过有问题的数据副本。 - -- 行级权限功能支持 Catalog 外表。 - -- Hive Catalog 支持 BE 端自动刷新 kerberos 票据,无需手动刷新。 - -- JDBC Catalog 支持通过 MySQL/ClickHouse 系统库(`information_schema`)下的表。 - -# Bug Fixes - -- 修复低基数列优化导致的查询结果不正确的问题 - -- 修复若干访问 HDFS 的认证和兼容性问题。 - -- 修复若干浮点和 decimal 类型的问题。 - -- 修复若干 date/datetimev2 类型的问题。 - -- 修复若干查询执行和规划的问题。 - -- 修复 JDBC Catalog 的若干问题。 - -- 修复 Hive Catalog 的若干查询相关问题,以及 Hive Metastore 元数据同步的问题。 - -- 修复 `show load profile` 结果不正确的问题。 - -- 修复若干内存相关问题。 - -- 修复 `CREATE TABLE AS SELECT` 功能的若干问题。 - -- 修复 JSONB 类型在不支持 avx2 的机型上导致 BE 宕机的问题。 - -- 修复动态分区的若干问题。 - -- 修复 TopN 查询优化的若干问题。 - -- 修复 Unique Key Merge-on-Write 表模型的若干问题。 - - -# 致谢 - -有 58 贡献者参与到 1.2.5 的完善和发布中,感谢他们的辛劳付出: - -@adonis0147 - -@airborne12 - -@AshinGau - -@BePPPower - -@BiteTheDDDDt - -@caiconghui - -@CalvinKirs - -@cambyzju - -@caoliang-web - -@dataroaring - -@Doris-Extras - -@dujl - -@dutyu - -@fsilent - -@Gabriel39 - -@gitccl - -@gnehil - -@GoGoWen - -@gongzexin - -@HappenLee - -@herry2038 - -@jacktengg - -@Jibing-Li - -@kaka11chen - -@Kikyou1997 - -@LemonLiTree - -@liaoxin01 - -@LiBinfeng-01 - -@luwei16 - -@Moonm3n - -@morningman - -@mrhhsg - -@Mryange - -@nextdreamblue - -@nsnhuang - -@qidaye - -@Shoothzj - -@sohardforaname - -@stalary - -@starocean999 - -@SWJTU-ZhangLei - -@wsjz - -@xiaokang - -@xinyiZzz - -@yangzhg - -@yiguolei - -@yixiutt - -@yujun777 - -@Yulei-Yang - -@yuxuan-luo - -@zclllyybb - -@zddr - -@zenoyang - -@zhangstar333 - -@zhannngchen - -@zxealous - -@zy-kkk - -@zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.6.md deleted file mode 100644 index e8f9ef0fa9be2..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.6.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -{ - "title": "Release 1.2.6", - "language": "zh-CN", - "description": "感谢以下开发者在 Apache Doris 1.2.6 版本中所做的贡献;" -} ---- - -# Behavior Changed - -- 新增 BE 配置项 `allow_invalid_decimalv2_triteral` 以控制是否可以导入超过小数精度的 Decimal 类型数据,用于兼容之前的逻辑。 - -# Bug Fixes - -## 查询 - -- 修复了部分查询计划的问题; -- 支持会话变量 `sql_select_limit` 和 `have_query_cache` 用于与老版本的 MySQL 客户端兼容; -- 优化 Cold Run 查询性能; -- 修复 Expr Context 类内存泄漏的问题; -- 修复 `explode_split` 函数在某些情况下执行错误的问题。 - -## Multi Catalog - -- 修复了同步 Hive 元数据时 FE 回放元数据日志失败的问题; -- 修复了 `refresh catalog` 操作可能导致 FE OOM 的问题; -- 修复了 JDBC Catalog 无法正确处理 `0000-00-00` 日期格式的问题; -- 修复了 kerberos ticket 无法自动刷新的问题; -- 优化了 Hive Partition 裁剪性能; -- 修复 JDBC Catalog 中 Trino 和 Presto 不一致的行为; -- 修复了在某些环境中无法使用 HDFS 短路读取来提高查询效率的问题; -- 修复无法读取 CHDFS Iceberg 表的问题。 - -## 存储 - -- 修复 Merge-on-Write 表中删除 bitmap 逻辑计算错误的问题; -- 修复了若干 BE 内存问题; -- 修复了表数据 Snappy 压缩的问题; -- 修复 jemalloc 在某些情况下可能导致 BE 崩溃的问题。 - -## 其他 - -- 修复了部分 Java UDF 相关问题; -- 修复了 `recover table` 操作错误地触发动态分区创建的问题; -- 修复了通过 Broker Load 导入 orc 文件时的时区问题; -- 修复新添加的 `PERCENT` 关键字导致 Routine Load 作业的回放元数据失败的问题; -- 修复了 `truncate` 操作无法作用于非分区表的问题; -- 修复了由于 `show snapshot` 操作导致 MySQL 连接丢失的问题; -- 优化锁逻辑以降低创建表时发生锁超时错误的概率; -- 优化了导入发生错误时的报错信息。 - -# 致谢 - -感谢以下开发者在 Apache Doris 1.2.6 版本中所做的贡献; - -@amorynan - -@BiteTheDDDDt - -@caoliang-web - -@dataroaring - -@Doris-Extras - -@dutyu - -@Gabriel39 - -@HHoflittlefish777 - -@htyoung - -@jacktengg - -@jeffreys-cat - -@kaijchen - -@kaka11chen - -@Kikyou1997 - -@KnightLiJunLong - -@liaoxin01 - -@LiBinfeng-01 - -@morningman - -@mrhhsg - -@sohardforaname - -@starocean999 - -@vinlee19 - -@wangbo - -@wsjz - -@xiaokang - -@xinyiZzz - -@yiguolei - -@yujun777 - -@Yulei-Yang - -@zhangstar333 - -@zy-kkk diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.7.md deleted file mode 100644 index ef1edae8b9325..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.7.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -{ - "title": "Release 1.2.7", - "language": "zh-CN", - "description": "-添加了 havequerycache 变量以保证与 MySQL 生态系统兼容。 -添加 enablestrong consistencyread 以支持会话之间的强一致性读取。 -FE 指标支持用户级的查询计数器。" -} ---- - -# Bugfix - -- 修复了一些查询问题。 -- 修复了一些存储问题。 -- 修复一些小数精度问题。 -- 修复由无效的 sql_select_limit 会话变量值引起的查询错误。 -- 修复了无法使用 hdfs 短路读取的问题。 -- 修复了腾讯云 cosn 无法访问的问题。 -- 修复了一些 Hive Catalog kerberos 访问的问题。 -- 修复 Stream load Profile 无法使用的问题。 -- 修复 Promethus 监控参数格式问题。 -- 修复了创建大量 Tablet 时建表超时的问题。 - - -# 最新特性 - -- Unique Key 模型支持将数组类型作为 Key 列; --添加了 have_query_cache 变量以保证与 MySQL 生态系统兼容。 --添加 enable_strong _consistency_read 以支持会话之间的强一致性读取。 --FE 指标支持用户级的查询计数器。 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.8.md deleted file mode 100644 index f8162c2bf055f..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v1.2/release-1.2.8.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -{ - "title": "Release 1.2.8", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 1.2.8 版本已于 2024 年 3 月 09 日正式与大家见面。该版本对多个功能进行了更新优化,旨在更好地满足用户的需求,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 1.2.8](https://doris.apache.org/download/) 版本已于 2024 年 3 月 09 日正式与大家见面。该版本对多个功能进行了更新优化,旨在更好地满足用户的需求,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 改进和优化 -- 修复若干查询执行的问题 -- 修复若干 Spark Load 相关的问题 -- 修复若干 Parquet/ORC 文件读取的问题。 -- 修复 Broker 进行因为 "FileSystem closed" 错误导致运行失败的问题。 -- 修复若干 Broker Load 相关的问题。 -- 修复若干 CTAS 操作相关的问题。 -- 修复若干备份恢复功能相关的问题。 -- 修复若干导出(Export/Outfile)相关的问题。 -- 修复 `replayEraseTable` 方法导致 FE 无法启动的问题。 -- 优化 Iceberg Catalog 元数据缓存的性能。 -- Audit Log 中新增 Catalog 列。 - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.0.md deleted file mode 100644 index 0588a21e68fbd..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.0.md +++ /dev/null @@ -1,204 +0,0 @@ ---- -{ - "title": "Release 2.0.0", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 Release 版本已于 2023 年 8 月 11 日正式发布,有超过 275 位贡献者为 Apache Doris 提交了超过 4100 个优化与修复。" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 Release 版本已于 2023 年 8 月 11 日正式发布,有超过 275 位贡献者为 Apache Doris 提交了超过 4100 个优化与修复。 - -在 2.0.0 版本中,Apache Doris 在标准 Benchmark 数据集上盲测查询性能得到超过 10 倍的提升、在日志分析和湖仓一体场景能力得到全面加强、数据更新效率和写入效率都更加高效稳定、支持了更加完善的多租户和资源隔离机制、在资源弹性与存算分离方向踏上了新的台阶、增加了一系列面向企业用户的易用性特性。在经过近半年的开发、测试与稳定性调优后,这一版本已经正式稳定可用,欢迎大家下载使用! - -> 下载链接:[https://doris.apache.org/download](https://doris.apache.org/download) -> -> GitHub 源码:[https://github.com/apache/doris/tree/2.0.0-rc04](https://github.com/apache/doris/tree/2.0.0-rc04) - - -## 盲测性能 10 倍以上提升! - -在 Apache Doris 2.0.0 版本中,我们引入了全新查询优化器和自适应的并行执行模型,结合存储层、执行层以及执行算子上的一系列性能优化手段,实现了盲测性能 10 倍以上的提升。以 SSB-Flat 和 TPC-H 标准测试数据集为例,在相同的集群和机器配置下,新版本宽表场景盲测较之前版本性能提升 10 倍、多表关联场景盲测提升了 13 倍,实现了巨大的性能飞跃。 - -### 更智能的全新查询优化器 - -全新查询优化器采取了更先进的 Cascades 框架、使用了更丰富的统计信息、实现了更智能化的自适应调优,在绝大多数场景无需任何调优和 SQL 改写即可实现极致的查询性能,同时对复杂 SQL 支持得更加完备、可完整支持 TPC-DS 全部 99 个 SQL。通过全新查询优化器,我们可以胜任更多真实业务场景的挑战,减少因人工调优带来的人力消耗,真正助力业务提效。 - -以 TPC-H 为例,全新优化器在未进行任何手工调优和 SQL 改写的情况下,绝大多数 SQL 仍领先于旧优化器手工调优后的性能表现!而在超过百家 2.0 版本提前体验用户的真实业务场景中,绝大多数原始 SQL 执行效率得以极大提升! - -参考文档:[更智能的全新查询优化器](../../query-acceleration/optimization-technology-principle/query-optimizer.md) - -如何开启:`SET enable_nereids_planner=true` 在 Apache Doris 2.0-beta 版本中全新查询优化器已经默认开启 - -### 倒排索引支持 - -在 2.0.0 版本中我们对现有的索引结构进行了丰富,引入了倒排索引来应对多维度快速检索的需求,在关键字模糊查询、等值查询和范围查询等场景中均取得了显著的查询性能和并发能力提升。 - -在此以某头部手机厂商的用户行为分析场景为例,在之前的版本中,随着并发量的上升、查询耗时逐步提升,性能下降趋势比较明显。而在 2.0.0 版本开启倒排索引后,随着并发量的提升查询性能始终保持在毫秒级。在同等查询并发量的情况下,2.0.0 版本在该用户行为分析场景中并发查询性能提升了 5-90 倍! - - -### 点查询并发能力提升 20 倍 - -在银行交易流水单号查询、保险代理人保单查询、电商历史订单查询、快递运单号查询等 Data Serving 场景,会面临大量一线业务人员及 C 端用户基于主键 ID 检索整行数据的需求,同时在用户画像、实时风控等场景中还会面对机器大规模的程序化查询,在过去此类需求往往需要引入 Apache HBase 等 KV 系统来应对点查询、Redis 作为缓存层来分担高并发带来的系统压力。 -对于基于列式存储引擎构建的 Apache Doris 而言,此类的点查询在数百列宽表上将会放大随机读取 IO,并且查询优化器和执行引擎对于此类简单 SQL 的解析、分发也将带来不必要的额外开销,负责 SQL 解析的 FE 模块往往会成为限制并发的瓶颈,因此需要更高效简洁的执行方式。 - -在 Apache Doris 2.0.0 版本,我们引入了全新的行列混合存储以及行级 Cache,使得单次读取整行数据时效率更高、大大减少磁盘访问次数,同时引入了点查询短路径优化、跳过执行引擎并直接使用快速高效的读路径来检索所需的数据,并引入了预处理语句复用执行 SQL 解析来减少 FE 开销。 - -通过以上一系列优化,Apache Doris 2.0.0 版本在并发能力上实现了数量级的提升,实现了单节点 30000 QPS 的并发表现,较过去版本点查询并发能力提升超 20 倍! - -基于以上能力,Apache Doris 可以更好应对高并发数据服务场景的需求,替代 HBase 在此类场景中的能力,减少复杂技术栈带来的维护成本以及数据的冗余存储。 - -### 自适应的并行执行模型 - -在实现极速分析体验的同时,为了保证多个混合分析负载的执行效率以及查询的稳定性,在 2.0.0 版本中我们引入了 Pipeline 执行模型作为查询执行引擎。在 Pipeline 执行引擎中,查询的执行是由数据来驱动控制流变化的,各个查询执行过程之中的阻塞算子被拆分成不同 Pipeline,各个 Pipeline 能否获取执行线程调度执行取决于前置数据是否就绪,实现了阻塞操作的异步化、可以更加灵活地管理系统资源,同时减少了线程频繁创建和销毁带来的开销,并提升了 Apache Doris 对于 CPU 的利用效率。因此 Apache Doris 在混合负载场景中的查询性能和稳定性都得到了全面提升。 - -参考文档:[查询执行引擎](../../query-acceleration/optimization-technology-principle/pipeline-execution-engine) - -如何开启:` Set enable_pipeline_engine = true ` -- 该功能在 Apache Doris 2.0 版本中将默认开启,BE 在进行查询执行时默认将 SQL 的执行模型转变 Pipeline 的执行方式。 -- `parallel_pipeline_task_num`代表了 SQL 查询进行查询并发的 Pipeline Task 数目。Apache Doris 默认配置为`0`,此时 Apache Doris 会自动感知每个 BE 的 CPU 核数并把并发度设置为 CPU 核数的一半,用户也可以根据自己的实际情况进行调整。 -- 对于从老版本升级的用户,系统自动将该参数设置成老版本中`parallel_fragment_exec_instance_num`的值。 - -## 更统一多样的分析场景 - -作为最初诞生于报表分析场景的 OLAP 系统,Apache Doris 在这一擅长领域中做到了极致,凭借自身优异的分析性能和极简的使用体验收获到了众多用户的认可,在诸如实时看板(Dashboard)、实时大屏、业务报表、管理驾驶舱等实时报表场景以及自助 BI 平台、用户行为分析等即席查询场景获得了极为广泛的运用。 - -而随着用户规模的极速扩张,越来越多用户开始希望通过 Apache Doris 来简化现有的繁重大数据技术栈,减少多套系统带来的使用及运维成本。因此 Apache Doris 也在不断拓展应用场景的边界,从过去的实时报表和 Ad-hoc 等典型 OLAP 场景到湖仓一体、ELT/ETL、日志检索与分析、高并发 Data Serving 等更多业务场景,而日志检索分析、湖仓一体也是我们在 Apache Doris 最新版本中的重要突破。 - -### 10 倍以上性价比的日志检索分析平台 - -在 Apache Doris 2.0.0 版本中,我们提供了原生的半结构化数据支持,在已有的 JSON、Array 基础之上增加了复杂类型 Map,并基于 Light Schema Change 功能实现了 Schema Evolution。与此同时,2.0.0 版本新引入的倒排索引和高性能文本分析算法全面加强了 Apache Doris 在日志检索分析场景的能力,可以支持更高效的任意维度分析和全文检索。结合过去在大规模数据写入和低成本存储等方面的优势,相对于业内常见的日志分析解决方案,基于 Apache Doris 构建的新一代日志检索分析平台实现了 10 倍以上的性价比提升。 - -### 湖仓一体 - -在 Apache Doris 1.2 版本中,我们引入了 Multi-Catalog 功能,支持了多种异构数据源的元数据自动映射与同步,实现了便捷的元数据和数据打通。在 2.0.0 版本中,我们进一步对湖仓一体进行了加强,引入了更多数据源,并针对用户的实际生产环境做了诸多性能优化,在真实工作负载情况下查询性能得到大幅提升。 - -在数据源方面,Apache Doris 2.0.0 版本支持了 Hudi Copy-on-Write 表的 Snapshot Query 以及 Merge-on-Read 表的 Read Optimized Query,截止目前已经支持了 Hive、Hudi、Iceberg、Paimon、MaxCompute、Elasticsearch、Trino、ClickHouse 等数十种数据源,几乎支持了所有开放湖仓格式和 Metastore。同时还支持通过 Apache Range 对 Hive Catalog 进行鉴权,可以无缝对接用户现有的权限系统。同时还支持可扩展的鉴权插件,为任意 Catalog 实现自定义的鉴权方式。 - -在性能方面,利用 Apache Doris 自身高效的分布式执行框架、向量化执行引擎以及查询优化器,结合 2.0 版本中对于小文件和宽表的读取优化、本地文件 Cache、ORC/Parquet 文件读取效率优化、弹性计算节点以及外表的统计信息收集,Apaceh Doris 在 TPC-H 场景下查询 Hive 外部表相较于 Presto/Trino 性能提升 3-5 倍。 - -通过这一系列优化,Apache Doris 湖仓一体的能力得到极大拓展,在如下场景可以更好发挥其优异的分析能力: - -- 湖仓查询加速:为数据湖、Elasticsearch 以及各类关系型数据库提供优秀的查询加速能力,相比 Hive、Presto、Spark 等查询引擎实现数倍的性能提升。 - -- 数据导入与集成:基于可扩展的连接框架,增强 Apache Doris 在数据集成方面的能力,让数据更便捷的被消费和处理。用户可以通过 Apache Doris 对上游的多种数据源进行统一的增量、全量同步,并利用 Apache Doris 的数据处理能力对数据进行加工和展示,也可以将加工后的数据写回到数据源,或提供给下游系统进行消费。 - -- 统一数据分析网关:利用 Apache Doris 构建完善可扩展的数据源连接框架,支持用户将这些外部数据源统一到 Doris 的元数据映射结构上,当用户通过 Doris 查询这些外部数据源时,能够提供一致的查询体验。 - -## 高效的数据更新 - -在实时分析场景中,数据更新是非常普遍的需求。用户不仅希望能够实时查询最新数据,也希望能够对数据进行灵活的实时更新。典型场景如电商订单分析、物流运单分析、用户画像等,需要支持数据更新类型包括整行更新、部分列更新、按条件进行批量更新或删除以及整表或者整个分区的重写(inser overwrite)。 - -高效的数据更新一直是大数据分析领域的痛点,离线数据仓库 hive 通常只支持分区级别的数据更新,而 Hudi 和 Iceberg 等数据湖,虽然支持 Record 级别更新,但是通常采用 Merge-on-Read 或 Copy-on-Write 的方式,仅适合低频批量更新而不适合实时高频更新。 - -在 Apache Doris 1.2 版本,我们在 Unique Key 主键模型实现了 Merge-on-Write 的数据更新模式,数据在写入阶段就能完成所有的数据合并工作,因此查询性能得到 5-10 倍的提升。在 Apache Doris 2.0 版本我们进一步加强了数据更新能力,主要包括: - -- 对写入性能进行了大幅优化,高并发写入和混合负载写入场景的稳定性也显著提升。例如在单 Tablet 7GB 的重复导入测试中,数据导入的耗时从约 30 分钟缩短到了 90s,写入效率提升 20 倍;以某头部支付产品的场景压测为例,在 20 个并行写入任务下可以达到 30 万条每秒的写入吞吐,并且持续写入十几个小时后仍然表现非常稳定。 - -- 支持部分列更新功能。在 2.0.0 版本之前 Apache Doris 仅支持通过 Aggregate Key 聚合模型的 Replace_if_not_null 进行部分列更新,在 2.0.0 版本中我们增加了 Unique Key 主键模型的部分列更新,在多张上游源表同时写入一张宽表时,无需由 Flink 进行多流 Join 打宽,直接写入宽表即可,减少了计算资源的消耗并大幅降低了数据处理链路的复杂性。同时在面对画像场景的实时标签列更新、订单场景的状态更新时,直接更新指定的列即可,较过去更为便捷。 - -- 支持复杂条件更新和条件删除。在 2.0.0 版本之前 Unique Key 主键模型仅支持简单 Update 和 Delete 操作,在 2.0.0 版本中我们基于 Merge-on-Write 实现了复杂条件的数据更新和删除,并且执行效率更加高效。基于以上优化,Apache Doris 对于各类数据更新需求都有完备的能力支持! - -## 更加高效稳定的数据写入 - -### 导入性能进一步提升 - -聚焦于实时分析,我们在过去的几个版本中在不断增强实时分析能力,其中端到端的数据实时写入能力是优化的重要方向,在 Apache Doris 2.0 版本中,我们进一步强化了这一能力。通过 Memtable 不使用 Skiplist、并行下刷、单副本导入等优化,使得导入性能有了大幅提升: - -- 使用 Stream Load 对 TPC-H 144G lineitem 表原始数据进行三副本导入 48 buckets Duplicate 表,吞吐量提升 100%。 -- 使用 Stream Load 对 TPC-H 144G lineitem 表原始数据进行三副本导入 48 buckets Unique Key 表,吞吐量提升 200%。 -- 使用 insert into select 对 TPC-H 144G lineitem 表进行导入 48 buckets Duplicate 表,吞吐量提升 50%。 -- 使用 insert into select 对 TPC-H 144G lineitem 表进行导入 48 buckets Unique Key 表,吞吐提升 150%。 - - -### 数据高频写入更稳定 - -在高频数据写入过程中,小文件合并和写放大问题以及随之而来的磁盘 I/O 和 CPU 资源开销是制约系统稳定性的关键,因此在 2.0 版本中我们引入了 Vertical Compaction 以及 Segment Compaction,用以彻底解决 Compaction 内存问题以及写入过程中的 Segment 文件过多问题,资源消耗降低 90%,速度提升 50%,内存占用仅为原先的 10%。 - - -### 数据表结构自动同步 - -在过去版本中我们引入了毫秒级别的 Schema Change,而在最新版本 Flink-Doris-Connector 中,我们实现了从 MySQL 等关系型数据库到 Apache Doris 的一键整库同步。在实际测试中单个同步任务可以承载数千张表的实时并行写入,从此彻底告别过去繁琐复杂的同步流程,通过简单命令即可实现上游业务数据库的表结构及数据同步。同时当上游数据结构发生变更时,也可以自动捕获 Schema 变更并将 DDL 动态同步到 Doris 中,保证业务的无缝运行。 - -## 更加完善的多租户资源隔离 - -多租户与资源隔离的主要目的是为了保证高负载时避免相互发生资源抢占,Apache Doris 在过去版本中推出了资源组(Resource Group)的硬隔离方案,通过对同一个集群内部的 BE 打上标签,标签相同的 BE 会组成一个资源组。数据入库时会按照资源组配置将数据副本写入到不同的资源组中,查询时按照资源组的划分使用对应资源组上的计算资源进行计算,例如将读、写流量放在不同的副本上从而实现读写分离,或者将在线与离线业务划分在不同的资源组、避免在离线分析任务之间的资源抢占。 - -资源组这一硬隔离方案可以有效避免多业务间的资源抢占,但在实际业务场景中可能会存在某些资源组紧张而某些资源组空闲的情况发生,这时需要有更加灵活的方式进行空闲资源的共享,以降低资源空置率。因此在 2.0.0 版本中我们增加了 Workload Group 资源软限制的方案,通过对 Workload 进行分组管理,以保证内存和 CPU 资源的灵活调配和管控。 - -通过将 Query 与 Workload Group 相关联,可以限制单个 Query 在 BE 节点上的 CPU 和内存资源的百分比,并可以配置开启资源组的内存软限制。当集群资源紧张时,将自动 Kill 组内占用内存最大的若干个查询任务以减缓集群压力。当集群资源空闲时,一旦 Workload Group 使用资源超过预设值时,多个 Workload 将共享集群可用空闲资源并自动突破阈值,继续使用系统内存以保证查询任务的稳定执行。Workload Group 还支持设置优先级,通过预先设置的优先级进行资源分配管理,来确定哪些任务可正常获得资源,哪些任务只能获取少量或没有资源。 - -与此同时,在 Workload Group 中我们还引入了查询排队的功能,在创建 Workload Group 时可以设置最大查询数,超出最大并发的查询将会进行队列中等待执行,以此来缓解高负载下系统的压力。 - -## 极致弹性与存算分离 - -过去 Apache Doris 凭借在易用性方面的诸多设计帮助用户大幅节约了计算与存储资源成本,而面向未来的云原生架构,我们已经走出了坚实的一步。 - -从降本增效的趋势出发,用户对于计算和存储资源的需求可以概括为以下几方面: - -- 计算资源弹性:面对业务计算高峰时可以快速进行资源扩展提升效率,在计算低谷时可以快速缩容以降低成本; - -- 存储成本更低:面对海量数据可以引入更为廉价的存储介质以降低成本,同时存储与计算单独设置、相互不干预; - -- 业务负载隔离:不同的业务负载可以使用独立的计算资源,避免相互资源抢占; - -- 数据管控统一:统一 Catalog、统一管理数据,可以更加便捷地分析数据。 - -存算一体的架构在弹性需求不强的场景具有简单和易于维护的优势,但是在弹性需求较强的场景有一定的局限。而存算分离的架构本质是解决资源弹性的技术手段,在资源弹性方面有着更为明显的优势,但对于存储具有更高的稳定性要求,而存储的稳定性又会进一步影响到 OLAP 的稳定性以及业务的存续性,因此也引入了 Cache 管理、计算资源管理、垃圾数据回收等一系列机制。 - -而在与 Apache Doris 社区广大用户的交流中,我们发现用户对于存算分离的需求可以分为以下三类: - -- 目前选择简单易用的存算一体架构,暂时没有资源弹性的需求; - -- 欠缺稳定的大规模存储,要求在 Apache Doris 原有基础上提供弹性、负载隔离以及低成本; - -- 有稳定的大规模存储,要求极致弹性架构、解决资源快速伸缩的问题,因此也需要更为彻底的存算分离架构; - -为了满足前两类用户的需求,Apache Doris 2.0 版本中提供了可以兼容升级的存算分离方案: -第一种,计算节点。2.0 版本中我们引入了无状态的计算节点 Compute Node,专门用于数据湖分析。相对于原本存储计算一体的混合节点,Compute Node 不保存任何数据,在集群扩缩容时无需进行数据分片的负载均衡,因此在数据湖分析这种具有明显高峰的场景中可以灵活扩容、快速加入集群分摊计算压力。同时由于用户数据往往存储在 HDFS/S3 等远端存储中,执行查询时查询任务会优先调度到 Compute Node 执行,以避免内表与外表查询之间的计算资源抢占。 - -第二种,冷热数据分层。在存储方面,冷热数据往往面临不同频次的查询和响应速度要求,因此通常可以将冷数据存储在成本更低的存储介质中。在过去版本中 Apache Doris 支持对表分区进行生命周期管理,通过后台任务将热数据从 SSD 自动冷却到 HDD,但 HDD 上的数据是以多副本的方式存储的,并没有做到最大程度的成本节约,因此对于冷数据存储成本仍然有较大的优化空间。在 Apache Doris 2.0 版本中推出了冷热数据分层功能,冷热数据分层功能使 Apache Doris 可以将冷数据下沉到存储成本更加低廉的对象存储中,同时冷数据在对象存储上的保存方式也从多副本变为单副本,存储成本进一步降至原先的三分之一,同时也减少了因存储附加的计算资源成本和网络开销成本。通过实际测算,存储成本最高可以降低超过 70%! - -面对更加彻底的存储计算分离需求,飞轮科技(SelectDB)技术团队设计并实现了全新的云原生存算分离架构(SelectDB Cloud),近一年来经历了大量企业客户的大规模使用,在性能、功能成熟度、系统稳定性等方面经受了真实生产环境的考验。在 Apache Doris 2.0.0 版本发布之际,飞轮科技宣布将这一经过大规模打磨后的成熟架构贡献至 Apache Doris 社区。这一工作预计将于 2023 年 10 月前后完成,届时全部存算分离的代码都将会提交到 Apache Doris 社区主干分支中,预计在 9 月广大社区用户就可以提前体验到基于存算分离架构的预览版本。 - -## 易用性进一步提升 - -除了以上功能需求外,在 Apache Doris 还增加了许多面向企业级特性的体验改进: - -### 支持 Kubernetes 容器化部署 - -在过去 Apache Doris 是基于 IP 通信的,在 K8s 环境部署时由于宿主机故障发生 Pod IP 漂移将导致集群不可用,在 2.0 版本中我们支持了 FQDN,使得 Apache Doris 可以在无需人工干预的情况下实现节点自愈,因此可以更好应对 K8s 环境部署以及灵活扩缩容。 - -### 跨集群数据复制 - -在 Apache Doris 2.0.0 版本中,我们可以通过 CCR 的功能在库/表级别将源集群的数据变更同步到目标集群,可根据场景精细控制同步范围;用户也可以根据需求灵活选择全量或者增量同步,有效提升了数据同步的灵活性和效率;此外 Dors CCR 还支持 DDL 同步,源集群执行的 DDL 语句可以自动同步到目标集群,从而保证了数据的一致性。Doris CCR 配置和使用也非常简单,简单操作即可快速完成跨集群数据复制。基于 Doris CCR 优异的能力,可以更好实现读写负载分离以及多机房备份,并可以更好支持不同场景的跨集群复制需求。 - -## 其他升级注意事项 - -- 1.2-lts 需要停机升级到 2.0.0,2.0-alpha 需要停机升级到 2.0.0 -- 查询优化器开关默认开启 `enable_nereids_planner=true`; -- 系统中移除了非向量化代码,所以 `enable_vectorized_engine` 参数将不再生效; -- 新增参数 `enable_single_replica_compaction`; -- 默认使用 datev2, datetimev2, decimalv3 来创建表,不支持 datev1,datetimev1,decimalv2 创建表; -- 在 JDBC 和 Iceberg Catalog 中默认使用 decimalv3; -- date type 新增 AGG_STATE; -- backend 表去掉 cluster 列; -- 为了与 BI 工具更好兼容,在 show create table 时,将 datev2 和 datetimev2 显示为 date 和 datetime。 -- 在 BE 启动脚本中增加了 max_openfiles 和 swap 的检查,所以如果系统配置不合理,be 有可能会启动失败; -- 禁止在 localhost 访问 FE 时无密码登录; -- 当系统中存在 Multi-Catalog 时,查询 information schema 的数据默认只显示 internal catalog 的数据; -- 限制了表达式树的深度,默认为 200; -- array string 返回值 单引号变双引号; -- 对 Doris 的进程名重命名为 DorisFE 和 DorisBE; -- AES 和 SM4 加解密函数的两参数版本行为变化,详见[对应函数文档](../../sql-manual/sql-functions/scalar-functions/encrypt-digest-functions/sm4-encrypt.md) - -## 正式踏上 2.0 之旅 - -在 Apache Doris 2.0.0 版本发布过程中,我们邀请了数百家企业参与新版本的打磨,力求为所有用户提供性能更佳、稳定性更高、易用性更好的数据分析体验。后续我们将会持续敏捷发版来响应所有用户对功能和稳定性的更高追求,预计 2.0 系列的第一个迭代版本 2.0.1 将于 8 月下旬发布,9 月会进一步发布 2.0.2 版本。在快速 Bugfix 的同时,也会不断将一些最新特性加入到新版本中。9 月份我们还将发布 2.1 版本的尝鲜版本,会增加一系列呼声已久的新能力,包括 Variant 可变数据类型以更好满足半结构化数据 Schema Free 的分析需求,多表物化视图,在导入性能方面持续优化、增加新的更加简洁的数据导入方式,通过自动攒批实现更加实时的数据写入,复合数据类型的嵌套能力等。 - -期待 Apache Doris 2.0 版本的正式发布为更多社区用户提供实时统一的分析体验,我们也相信 Apache Doris 2.0 版本会成为您在实时分析场景中的最理想选择。 - -## 致谢 - -再次向所有参与 Apache Doris 2.0.0 版本开发和测试的贡献者们表示最衷心的感谢,他们分别是: - -0xflotus、1330571、15767714253、924060929、ArmandoZ、AshinGau、BBB-source、BePPPower、Bears0haunt、BiteTheDDDDt、ByteYue、Cai-Yao、CalvinKirs、Centurybbx、ChaseHuangxu、CodeCooker17、DarvenDua、Dazhuwei、DongLiang-0、EvanTheBoy、FreeOnePlus、Gabriel39、GoGoWen、HHoflittlefish777、HackToday、HappenLee、Henry2SS、HonestManXin、JNSimba、JackDrogon、Jake-00、Jenson97Jibing-Li、Johnnyssc、JoverZhang、KassieZ、Kikyou1997、Larborator、Lchangliang、LemonLiTree、LiBinfeng-01、MRYOG、Mellorsssss、Moonm3n、Mryange、Myasuka、NetShrimp06、Reminiscent、SWJTU-ZhangLei、SaintBacchus、ShaoStaticTiger、Shoothzj、SilasKenneth、TangSiyang2001、Tanya-W、TeslaCN、TsukiokaKogane、UnicornLee、WinkerDu、WuWQ98、Xiaoccer、XieJiann、Yanko-7、Yukang-Lian、Yulei-Yang、ZI-MA、ZashJie、ZhangYu0123、Zhiyu-h、adonis0147、airborne12、alissa-tung、amorynan、beijita、bigben0204、bin41215、bingquanzhao、bobhan1、bowenliang123、brody715、caiconghui、cambyzju、caoliang-web、catpineapple、chenlinzhong、cjq9458、cnissnzg、colagy、csun5285、czzmmc、dataroaring、davidshtian、deadlinefen、deardeng、didiaode18、dong-shuai、dujl、dutyu、echo-hhj、eldenmoon、englefly、figurant、fornaix、fracly、freemandealer、fsilent、fuchanghai、gavinchou、git-hulk、gitccl、gnehil、guoxiaolongzte、gwxog、hailin0、hanyisong、haochengxia、haohuaijin、hechao-ustc、hello-stephen、herry2038、hey-hoho、hf200012、hqx871、httpshirley、htyoung、hubgeter、hufengkai、hust-hhb、isHuangXin、ixzc、jacktengg、jackwener、jeffreys-cat、jiugem、jixxiong、kaijchen、kaka11chen、levy5307、lexluo09、liangjiawei1110、liaoxin01、liugddx、liujinhui1994、liujiwen-up、liutang123、liuxinzero07、liwei9902、lljqy、lsy3993、luozenglin、luwei16、luzhijing、lvshaokang、maochongxin、meredith620、mklzl、mongo360、morningman、morrySnow、mrhhsg、myfjdthink、mymeiyi、nanfeng1999、neuyilan、nextdreamblue、niebayes、nikam14、pengxiangyu、pingchunzhang、platoneko、q763562998、qidaye、qzsee、reswqa、sepastian、shenxingwuying、shuke987、shysnow、siriume、sjyago、skyhitnow、smallhibiscus、sohardforaname、spaces-X、stalary、starocean999、superspeedone、taomengen、tarepanda1024、timyuer、ucasfl、vinlee19、wangbo、wanghuan2054、wangshuo128、wangtianyi2004、wangyf0555、wangyujia2023、web-flow、weizhengte、weizuo93、whutpencil、wsjz、wuwenchi、wzymumon、xiaojunjie、xiaokang、xiedeyantu、xinyiZzz、xuqinghuang、xutaoustc、xy720、xzj7019、ya-dao、yagagagaga、yangzhg、yiguolei、yimeng、yinzhijian、yixiutt、yongjinhou、youtNa、yuanyuan8983、yujian225、yujun777、yuxuan-luo、yz-jayhua、zbtzbtzbt、zclllyybb、zddr、zenoyang、zgxme、zhangguoqiang666、zhangstar333、zhangy5、zhannngchen、zhbinbin、zhengshengjun、zhengshiJ、zwuis、zxealous、zy-kkk、zzzxl1993、zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.1.md deleted file mode 100644 index 21414d0b47167..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.1.md +++ /dev/null @@ -1,140 +0,0 @@ ---- -{ - "title": "Release 2.0.1", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.1 Release 版本已于 2023 年 9 月 4 日正式发布,有超过 71 位贡献者为 Apache Doris 提交了超过 380 个优化与修复。" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.1 Release 版本已于 2023 年 9 月 4 日正式发布,有超过 71 位贡献者为 Apache Doris 提交了超过 380 个优化与修复。 - -# 行为变更 -- 将 varchar 默认长度 1 修改为 65533 - -# 功能改进 - -### Array 和 Map 数据类型的功能优化及稳定性改进 - -- [https://github.com/apache/doris/pull/22793](https://github.com/apache/doris/pull/22793) -- [https://github.com/apache/doris/pull/22927](https://github.com/apache/doris/pull/22927) -- [https://github.com/apache/doris/pull/22738](https://github.com/apache/doris/pull/22738) -- [https://github.com/apache/doris/pull/22347](https://github.com/apache/doris/pull/22347) -- [https://github.com/apache/doris/pull/23250](https://github.com/apache/doris/pull/23250) -- [https://github.com/apache/doris/pull/22300](https://github.com/apache/doris/pull/22300) - -### 倒排索引的查询性能优化 - -- [https://github.com/apache/doris/pull/22836](https://github.com/apache/doris/pull/22836) -- [https://github.com/apache/doris/pull/23381](https://github.com/apache/doris/pull/23381) -- [https://github.com/apache/doris/pull/23389](https://github.com/apache/doris/pull/23389) -- [https://github.com/apache/doris/pull/22570](https://github.com/apache/doris/pull/22570) - -### bitmap、like、scan、agg 等执行性能优化 - -- [https://github.com/apache/doris/pull/23172](https://github.com/apache/doris/pull/23172) -- [https://github.com/apache/doris/pull/23495](https://github.com/apache/doris/pull/23495) -- [https://github.com/apache/doris/pull/23476](https://github.com/apache/doris/pull/23476) -- [https://github.com/apache/doris/pull/23396](https://github.com/apache/doris/pull/23396) -- [https://github.com/apache/doris/pull/23182](https://github.com/apache/doris/pull/23182) -- [https://github.com/apache/doris/pull/22216](https://github.com/apache/doris/pull/22216) - -### CCR 的功能优化与稳定性提升 - -- [https://github.com/apache/doris/pull/22447](https://github.com/apache/doris/pull/22447) -- [https://github.com/apache/doris/pull/22559](https://github.com/apache/doris/pull/22559) -- [https://github.com/apache/doris/pull/22173](https://github.com/apache/doris/pull/22173) -- [https://github.com/apache/doris/pull/22678](https://github.com/apache/doris/pull/22678) - -### Merge-on-Write 主键表的能力增强 - -- [https://github.com/apache/doris/pull/22282](https://github.com/apache/doris/pull/22282) -- [https://github.com/apache/doris/pull/22984](https://github.com/apache/doris/pull/22984) -- [https://github.com/apache/doris/pull/21933](https://github.com/apache/doris/pull/21933) -- [https://github.com/apache/doris/pull/22874](https://github.com/apache/doris/pull/22874) - - -### 表状态和统计信息的功能优化 - -- [https://github.com/apache/doris/pull/22658](https://github.com/apache/doris/pull/22658) -- [https://github.com/apache/doris/pull/22211](https://github.com/apache/doris/pull/22211) -- [https://github.com/apache/doris/pull/22775](https://github.com/apache/doris/pull/22775) -- [https://github.com/apache/doris/pull/22896](https://github.com/apache/doris/pull/22896) -- [https://github.com/apache/doris/pull/22788](https://github.com/apache/doris/pull/22788) -- [https://github.com/apache/doris/pull/22882](https://github.com/apache/doris/pull/22882) - - -### Multi-Catalog 的功能优化及稳定性改进 - -- [https://github.com/apache/doris/pull/22949](https://github.com/apache/doris/pull/22949) -- [https://github.com/apache/doris/pull/22923](https://github.com/apache/doris/pull/22923) -- [https://github.com/apache/doris/pull/22336](https://github.com/apache/doris/pull/22336) -- [https://github.com/apache/doris/pull/22915](https://github.com/apache/doris/pull/22915) -- [https://github.com/apache/doris/pull/23056](https://github.com/apache/doris/pull/23056) -- [https://github.com/apache/doris/pull/23297](https://github.com/apache/doris/pull/23297) -- [https://github.com/apache/doris/pull/23279](https://github.com/apache/doris/pull/23279) - - -# 问题修复 - -修复了若干个 2.0.0 版本中的问题,使系统稳定性得到进一步提升 - -- [https://github.com/apache/doris/pull/22673](https://github.com/apache/doris/pull/22673) -- [https://github.com/apache/doris/pull/22656](https://github.com/apache/doris/pull/22656) -- [https://github.com/apache/doris/pull/22892](https://github.com/apache/doris/pull/22892) -- [https://github.com/apache/doris/pull/22959](https://github.com/apache/doris/pull/22959) -- [https://github.com/apache/doris/pull/22902](https://github.com/apache/doris/pull/22902) -- [https://github.com/apache/doris/pull/22976](https://github.com/apache/doris/pull/22976) -- [https://github.com/apache/doris/pull/22734](https://github.com/apache/doris/pull/22734) -- [https://github.com/apache/doris/pull/22840](https://github.com/apache/doris/pull/22840) -- [https://github.com/apache/doris/pull/23008](https://github.com/apache/doris/pull/23008) -- [https://github.com/apache/doris/pull/23003](https://github.com/apache/doris/pull/23003) -- [https://github.com/apache/doris/pull/22966](https://github.com/apache/doris/pull/22966) -- [https://github.com/apache/doris/pull/22965](https://github.com/apache/doris/pull/22965) -- [https://github.com/apache/doris/pull/22784](https://github.com/apache/doris/pull/22784) -- [https://github.com/apache/doris/pull/23049](https://github.com/apache/doris/pull/23049) -- [https://github.com/apache/doris/pull/23084](https://github.com/apache/doris/pull/23084) -- [https://github.com/apache/doris/pull/22947](https://github.com/apache/doris/pull/22947) -- [https://github.com/apache/doris/pull/22919](https://github.com/apache/doris/pull/22919) -- [https://github.com/apache/doris/pull/22979](https://github.com/apache/doris/pull/22979) -- [https://github.com/apache/doris/pull/23096](https://github.com/apache/doris/pull/23096) -- [https://github.com/apache/doris/pull/23113](https://github.com/apache/doris/pull/23113) -- [https://github.com/apache/doris/pull/23062](https://github.com/apache/doris/pull/23062) -- [https://github.com/apache/doris/pull/22918](https://github.com/apache/doris/pull/22918) -- [https://github.com/apache/doris/pull/23026](https://github.com/apache/doris/pull/23026) -- [https://github.com/apache/doris/pull/23175](https://github.com/apache/doris/pull/23175) -- [https://github.com/apache/doris/pull/23167](https://github.com/apache/doris/pull/23167) -- [https://github.com/apache/doris/pull/23015](https://github.com/apache/doris/pull/23015) -- [https://github.com/apache/doris/pull/23165](https://github.com/apache/doris/pull/23165) -- [https://github.com/apache/doris/pull/23264](https://github.com/apache/doris/pull/23264) -- [https://github.com/apache/doris/pull/23246](https://github.com/apache/doris/pull/23246) -- [https://github.com/apache/doris/pull/23198](https://github.com/apache/doris/pull/23198) -- [https://github.com/apache/doris/pull/23221](https://github.com/apache/doris/pull/23221) -- [https://github.com/apache/doris/pull/23277](https://github.com/apache/doris/pull/23277) -- [https://github.com/apache/doris/pull/23249](https://github.com/apache/doris/pull/23249) -- [https://github.com/apache/doris/pull/23272](https://github.com/apache/doris/pull/23272) -- [https://github.com/apache/doris/pull/23383](https://github.com/apache/doris/pull/23383) -- [https://github.com/apache/doris/pull/23372](https://github.com/apache/doris/pull/23372) -- [https://github.com/apache/doris/pull/23399](https://github.com/apache/doris/pull/23399) -- [https://github.com/apache/doris/pull/23295](https://github.com/apache/doris/pull/23295) -- [https://github.com/apache/doris/pull/23446](https://github.com/apache/doris/pull/23446) -- [https://github.com/apache/doris/pull/23406](https://github.com/apache/doris/pull/23406) -- [https://github.com/apache/doris/pull/23387](https://github.com/apache/doris/pull/23387) -- [https://github.com/apache/doris/pull/23421](https://github.com/apache/doris/pull/23421) -- [https://github.com/apache/doris/pull/23456](https://github.com/apache/doris/pull/23456) -- [https://github.com/apache/doris/pull/23361](https://github.com/apache/doris/pull/23361) -- [https://github.com/apache/doris/pull/23402](https://github.com/apache/doris/pull/23402) -- [https://github.com/apache/doris/pull/23369](https://github.com/apache/doris/pull/23369) -- [https://github.com/apache/doris/pull/23245](https://github.com/apache/doris/pull/23245) -- [https://github.com/apache/doris/pull/23532](https://github.com/apache/doris/pull/23532) -- [https://github.com/apache/doris/pull/23529](https://github.com/apache/doris/pull/23529) -- [https://github.com/apache/doris/pull/23601](https://github.com/apache/doris/pull/23601) - -优化改进及修复问题的完整列表请在 GitHub 按照标签 dev/2.0.1-merged 进行筛选即可。 - - -# 致谢 - -向所有参与 Apache Doris 2.0.1 版本开发和测试的贡献者们表示最衷心的感谢,他们分别是: - -adonis0147、airborne12、amorynan、AshinGau、BePPPower、BiteTheDDDDt、bobhan1、ByteYue、caiconghui、CalvinKirs、csun5285、DarvenDuan、deadlinefen、DongLiang-0、Doris-Extras、dutyu、englefly、freemandealer、Gabriel39、GoGoWen、HappenLee、hello-stephen、HHoflittlefish777、hubgeter、hust-hhb、JackDrogon、jacktengg、jackwener、Jibing-Li、kaijchen、kaka11chen、Kikyou1997、Lchangliang、LemonLiTree、liaoxin01、LiBinfeng-01、lsy3993、luozenglin、morningman、morrySnow、mrhhsg、Mryange、mymeiyi、shuke987、sohardforaname、starocean999、TangSiyang2001、Tanya-W、ucasfl、vinlee19、wangbo -wsjz、wuwenchi、xiaokang、XieJiann、xinyiZzz、yujun777、Yukang-Lian、Yulei-Yang、zclllyybb、zddr、zenoyang、zgxme、zhangguoqiang666、zhangstar333、zhannngchen、zhiqiang-hhhh、zxealous、zy-kkk、zzzxl1993、zzzzzzzs \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.10.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.10.md deleted file mode 100644 index de7089152b366..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.10.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -{ - "title": "Release 2.0.10", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.10 版本已于 2024 年 5 月 16 日正式与大家见面,该版本提交了 83 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**[Apache Doris 2.0.10](https://doris.apache.org/download/) 版本已于 2024 年 5 月 16 日正式与大家见面**,该版本提交了 83 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 改进和优化 - -- 增加了`read_only`和`super_read_only`变量以保持和 MySQL 兼容 - -- 仅在 IO_ERROR 的错误才把数据目录加入 Broken List,防止 fd 超限等错误导致误加入 - -- 基于外表 CTAS 创建新表时,把 `VARCHAR` 类型转成 `STRING` 类型 - -- 支持把 Paimon 的 `ROW` 类型映射成 Doris 的 `STRUCT` 类型 - -- 在创建 Tablet 选择数据盘时,允许存在少量的倾斜 - -- 对 `set replica drop` 命令记录 Editlog,以防止在 Follower 节点执行命令后,其状态显示不正确 - -- Schema Change 内存自适应避免内存超限 - -- 倒排索引中 Unicode 分词器可以配置不使用停用词 - - -## 致谢 - -@airborne12, @BePPPower, @ByteYue, @CalvinKirs, @cambyzju, @csun5285, @dataroaring, @deardeng, @DongLiang-0, @eldenmoon, @felixwluo, @HappenLee, @hubgeter, @jackwener, @kaijchen, @kaka11chen, @Lchangliang, @liaoxin01, @LiBinfeng-01, @luennng, @morningman, @morrySnow, @Mryange, @nextdreamblue, @qidaye, @starocean999, @suxiaogang223, @SWJTU-ZhangLei, @w41ter, @xiaokang, @xy720, @yujun777, @Yukang-Lian, @zhangstar333, @zxealous, @zy-kkk, @zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.11.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.11.md deleted file mode 100644 index b2e735dfc9f9a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.11.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -{ - "title": "Release 2.0.11", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.11 版本已于 2024 年 6 月 5 日正式与大家见面,该版本提交了 123 个改进项以及问题修复,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.11](https://doris.apache.org/download/) 版本已于 2024 年 6 月 5 日正式与大家见面,该版本提交了 123 个改进项以及问题修复,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - - -## 1 行为变更 - -由于倒排索引已经成熟稳定,可以替换老的 `BITMAP INDEX`,因此后续新建 `BITMAP INDEX` 会自动切换成 `INVERTED INDEX`,而已经创建的 `BITMAP INDEX` 保持不变。整个切换过程对用户无感知,写入和查询没有变化,此外用户可以修改 FE 配置 `enable_create_bitmap_index_as_inverted_index = false` 来关闭该自动切换。[#35528](https://github.com/apache/doris/pull/35528) - - - -## 2 改进和优化 - -- 为 JSON 和 TIME 添加 Trino JDBC Catalog 类型映射。 - -- 在无法转移到(非)主节点时,FE 退出以防止未知状态和过多日志。 - -- 在删除统计表时写入审计日志。 - -- 如果表只进行了部分分析,忽略最小/最大列统计以避免低效的查询计划。 - -- 支持集合操作减法,例如 `set1 - set2`。 - -- 使用 concat(col, pattern_str) 改进 LIKE 和 REGEXP 子句的性能,例如:`col1 LIKE concat('%', col2, '%')`。 - -- 添加查询选项以支持短路查询,保证升级兼容性。 - - - -## 3 致谢 - -@924060929、@airborne12、@AshinGau、@BePPPower、@BiteTheDDDDt、@ByteYue、@CalvinKirs、@cambyzju、@csun5285、@dataroaring、@eldenmoon、@englefly、@feiniaofeiafei、@Gabriel39、@GoGoWen、@HHoflittlefish777、@hubgeter、@jacktengg、@jackwener、@jeffreys-cat、@Jibing-Li、@kaka11chen、@kobe6th、@LiBinfeng-01、@mongo360、@morningman、@morrySnow、@mrhhsg、@Mryange、@nextdreamblue、@qidaye、@sjyango、@starocean999、@SWJTU-ZhangLei、@w41ter、@wangbo、@wsjz、@wuwenchi、@xiaokang、@XieJiann、@xy720、@yujun777、@Yukang-Lian、@Yulei-Yang、@zclllyybb、@zddr、@zhangstar333、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.12.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.12.md deleted file mode 100644 index cdb156515c2a8..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.12.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -{ - "title": "Release 2.0.12", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.12 版本已于 2024 年 6 月 27 日正式与大家见面,该版本提交了 99 个改进项以及问题修复,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.12](https://doris.apache.org/download/) 版本已于 2024 年 6 月 27 日正式与大家见面,该版本提交了 99 个改进项以及问题修复,欢迎大家下载体验。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 行为变更 - -- 不再将建表的默认注释设置为表的类型,而是改成默认为空,比如 COMMENT 'OLAP' 变成 COMMENT '',这样对于依赖注释的 BI 软件更加友好。 [#35855](https://github.com/apache/doris/pull/35855) - -- 将 `@@autocommit` 变量的类型从 `BOOLEAN` 改成 `BIGINT`,以免有些 MySQL 客户端(比如.NET MySQL.Data)报错。 [#33282](https://github.com/apache/doris/pull/33282) - - -## 改进优化 - -- 删除 `disable_nested_complex_type` 参数,默认允许创建嵌套的 `ARRAY` `MAP` `STRUCT` 类型。[#36255](https://github.com/apache/doris/pull/36255) - -- HMS Catalog 支持 `SHOW CREATE DATABASE` 命令。[ #28145](https://github.com/apache/doris/pull/28145) - -- 在 Query Profile 中增加更多倒排索引的指标。[#36545](https://github.com/apache/doris/pull/36545) - -- 跨集群数据复制(CCR)支持倒排索引 [#31743](https://github.com/apache/doris/pull/31743) - -## 致谢 - -@amorynan、@BiteTheDDDDt、@cambyzju、@caoliang-web、@dataroaring、@eldenmoon、@feiniaofeiafei、@felixwluo、@gavinchou、@HappenLee、@hello-stephen、@jacktengg、@Jibing-Li、@Johnnyssc、@liaoxin01、@LiBinfeng-01、@luwei16、@mongo360、@morningman、@morrySnow、@mrhhsg、@Mryange、@mymeiyi、@qidaye、@qzsee、@starocean999、@w41ter、@wangbo、@wsjz、@wuwenchi、@xiaokang、@XuPengfei-1020、@xy720、@yongjinhou、@yujun777、@Yukang-Lian、@Yulei-Yang、@zclllyybb、@zddr、@zhannngchen、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.13.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.13.md deleted file mode 100644 index cff0b70ecc89b..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.13.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -{ - "title": "Release 2.0.13", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.13 版本已于 2024 年 7 月 16 日正式与大家见面,该版本提交了 112 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.13 版本已于 2024 年 7 月 16 日正式与大家见面,该版本提交了 112 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -[快速下载](https://doris.apache.org/download/) - -## 行为变更 - -仅在客户端启用了 `CLIENT_MULTI_STATEMENTS` 设置时,SQL 输入才会被视为多条语句,从而增强了与 MySQL 的兼容性。[#36759](https://github.com/apache/doris/pull/36759) - -## 新增功能 - -- 新增了 BE 配置 `allow_zero_date`,允许使用全零的日期。设置为 `false` 时,`0000-00-00` 会被解析为 `NULL`;设置为 `true` 时,会被解析为 `0000-01-01`。默认值为 `false`,以保持与之前行为的一致性。[#34961](https://github.com/apache/doris/pull/34961) - -- `LogicalWindow` 和 `LogicalPartitionTopN` 现在支持多字段谓词下推,以提升性能。[#36828](https://github.com/apache/doris/pull/36828) - -- ES Catalog 现在将 ES 的 `nested` 或 `object` 类型映射到 Doris 的 `JSON` 类型。[#37101](https://github.com/apache/doris/pull/37101) - -## 改进和优化 - -- `LIMIT` 查询现在会更早地停止读取数据,以减少资源消耗并提升性能。[#36535](https://github.com/apache/doris/pull/36535) - -- 现在支持具有空键的特殊 JSON 数据。[#36762](https://github.com/apache/doris/pull/36762) - -- 改进了 Routine Load 的稳定性和可用性,包括负载均衡、自动恢复、异常处理以及更友好的错误消息。[#36450](https://github.com/apache/doris/pull/36450) [#35376](https://github.com/apache/doris/pull/35376) [#35266](https://github.com/apache/doris/pull/35266) [#33372](https://github.com/apache/doris/pull/33372) [#32282](https://github.com/apache/doris/pull/32282) [#32046](https://github.com/apache/doris/pull/32046) [#32021](https://github.com/apache/doris/pull/32021) [#31846](https://github.com/apache/doris/pull/31846) [#31273](https://github.com/apache/doris/pull/31273) - -- 对 BE 的硬盘选择策略和速度进行了优化。[#36826](https://github.com/apache/doris/pull/36826) [#36795](https://github.com/apache/doris/pull/36795) [#36509](https://github.com/apache/doris/pull/36509) - -- 改进了 JDBC Catalog 的稳定性和可用性,包括加密、线程池连接数配置以及更友好的错误消息。[#36940](https://github.com/apache/doris/pull/36940) [#36720](https://github.com/apache/doris/pull/36720) [#30880](https://github.com/apache/doris/pull/30880) [#35692](https://github.com/apache/doris/pull/35692) - -## 致谢 - -@DarvenDuan、@Gabriel39、@Jibing-Li、@Johnnyssc、@Lchangliang、@LiBinfeng-01、@SWJTU-ZhangLei、@Thearas、@Yukang-Lian、@Yulei-Yang、@airborne12、@amorynan、@bobhan1、@cambyzju、@csun5285、@dataroaring、@deardeng、@eldenmoon、@englefly、@feiniaofeiafei、@hello-stephen、@jacktengg、@kaijchen、@liutang123、@luwei16、@morningman、@morrySnow、@mrhhsg、@mymeiyi、@platoneko、@qidaye、@sollhui、@starocean999、@w41ter、@xiaokang、@xy720、@yujun777、@zclllyybb \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.14.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.14.md deleted file mode 100644 index 4674088f07bae..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.14.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -{ - "title": "Release 2.0.14", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.14 版本已于 2024 年 8 月 6 日正式与大家见面,该版本提交了 110 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.14 版本已于 2024 年 8 月 6 日正式与大家见面,该版本提交了 110 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - - -## 1 新功能 - -- 增加获取最近一个查询 Profile 的 REST 接口 `curl http://user:password@127.0.0.1:8030/api/profile/text` 。[#38268](https://github.com/apache/doris/pull/38268) - -## 2 改进和优化 - -- 优化 MOW 表带有 Sequence 列的主键点查性能。[#38287](https://github.com/apache/doris/pull/38287) - -- 优化倒排索引在查询条件很多时的性能。[#35346](https://github.com/apache/doris/pull/35346) - -- 创建带分词的倒排索引时,自动开启 `support_phrase` 选项加速 `match_phrase` 系列短语查询。[#37949](https://github.com/apache/doris/pull/37949) - -- 支持简化的 SQL Hint,例如 `SELECT /*+ query_timeout(3000) */ * FROM t;`。[#37720](https://github.com/apache/doris/pull/37720) - -- 读对象存储遇到 429 错误时自动重试提升稳定性。[#35396](https://github.com/apache/doris/pull/35396) - -- LEFT SEMI / ANTI JOIN 在匹配到符合的数据行时,终止后续的匹配执行提升性能。[#34703](https://github.com/apache/doris/pull/34703) - -- 避免非法数据返回 MySQL 结果时出发 coredump。[#28069](https://github.com/apache/doris/pull/28069) - -- 输出类型名字时统一使用小写,保持跟 MySQL 兼容对 BI 工具更加友好。[#38521](https://github.com/apache/doris/pull/38521) - - -## 致谢 - -@924060929、@BiteTheDDDDt、@ByteYue、@CalvinKirs、@GoGoWen、@HappenLee、@Jibing-Li、@Lchangliang、@LiBinfeng-01、@Mryange、@XieJiann、@Yukang-Lian、@Yulei-Yang、@airborne12、@amorynan、@biohazard4321、@cambyzju、@csun5285、@eldenmoon、@englefly、@freemandealer、@hello-stephen、@hubgeter、@kaijchen、@liaoxin01、@luwei16、@morningman、@morrySnow、@mymeiyi、@qidaye、@sollhui、@starocean999、@w41ter、@wuwenchi、@xiaokang、@xy720、@yujun777、@zclllyybb、@zddr、@zhangstar333、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.15.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.15.md deleted file mode 100644 index 3ab116804eae8..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.15.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -{ - "title": "Release 2.0.15", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.15 版本已于 2024 年 9 月 30 日正式与大家见面,该版本提交了 157 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.15 版本已于 2024 年 9 月 30 日正式与大家见面,该版本提交了 157 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- 立即下载:https://doris.apache.org/download - -- GitHub 下载:https://github.com/apache/doris/releases/tag/2.0.15 - - -## 行为变更 - -无 - -## 新功能 - -- 恢复功能现在支持删除冗余的表块和分区选项。[#39028](https://github.com/apache/doris/pull/39028) - -- 支持 JSON 函数 `json_search`。[#40948](https://github.com/apache/doris/pull/40948) - -## 改进与优化 - -### 稳定性 - -- 添加了 FE 配置 `abort_txn_after_lost_heartbeat_time_second`,用于设置事务中止时间。[#28662](https://github.com/apache/doris/pull/28662) - -- BE 失去心跳信号超过 1 分钟后中止事务,而不是 5 秒,以避免事务中止过于敏感。[#22781](https://github.com/apache/doris/pull/22781) - -- 延迟调度例行加载的 EOF 任务,以避免过多的小事务。[#39975](https://github.com/apache/doris/pull/39975) - -- 优先从在线磁盘服务进行查询,以提高稳健性。[#39467](https://github.com/apache/doris/pull/39467) - -- 在非严格模式的部分更新中,如果行的删除标志已标记,则跳过检查新插入的行。[#40322](https://github.com/apache/doris/pull/40322) - -- 为防止 FE 内存不足,限制备份任务中的表块数量,默认值为 300,000。[#39987](https://github.com/apache/doris/pull/39987) - -- ARRAY MAP STRUCT 类型支持 `REPLACE_IF_NOT_NULL`。[#38304](https://github.com/apache/doris/pull/38304) - -- 对非 `DELETE_INVALID_XXX `失败的删除作业进行重试。[#37834](https://github.com/apache/doris/pull/37834) - -### 查询性能 - -- 优化由并发列更新和 compaction 引起的慢速列更新问题。[#38487](https://github.com/apache/doris/pull/38487) - -- 当过滤条件中存在 NullLiteral 时,可以将其折叠为 false 并进一步转换为 EmptySet,以减少不必要的数据扫描和计算。[#38135](https://github.com/apache/doris/pull/38135) - -- 提高 `ORDER BY` 全排序的性能。[#38985](https://github.com/apache/doris/pull/38985) - -- 提高倒排索引中字符串处理的性能。[#37395](https://github.com/apache/doris/pull/37395) - -### 查询优化器 - -- 增加了对以分号开头的语句的支持以兼容老优化器。[#39399](https://github.com/apache/doris/pull/39399) - -- 完善了一些聚合函数签名匹配。[#39352](https://github.com/apache/doris/pull/39352) - -- 在 Schema 变更后删除列统计信息并触发自动分析。[#39101](https://github.com/apache/doris/pull/39101) - -- 支持使用 `DROP CACHED STATS table_name` 删除缓存的统计信息。[#39367](https://github.com/apache/doris/pull/39367) - -### Multi Catalog - -- 优化 JDBC Catalog 刷新,减少客户端创建频率。[#40261](https://github.com/apache/doris/pull/40261) - -- 修复 JDBC Catalog 在某些条件下存在的线程泄漏问题。[#39423](https://github.com/apache/doris/pull/39423) - -**致谢** - -@924060929、@BePPPower、@BiteTheDDDDt、@CalvinKirs、@GoGoWen、@HappenLee、@Jibing-Li、@Johnnyssc、@LiBinfeng-01、@Mryange、@SWJTU-ZhangLei、@TangSiyang2001、@Toms1999、@Vallishp、@Yukang-Lian、@airborne12、@amorynan、@bobhan1、@cambyzju、@csun5285、@dataroaring、@eldenmoon、@englefly、@feiniaofeiafei、@hello-stephen、@htyoung、@hubgeter、@justfortaste、@liaoxin01、@liugddx、@liutang123、@luwei16、@mongo360、@morrySnow、@qidaye、@smallx、@sollhui、@starocean999、@w41ter、@xiaokang、@xzj7019、@yujun777、@zclllyybb、@zddr、@zhangstar333、@zhannngchen、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.2.md deleted file mode 100644 index 1c615664f28ac..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.2.md +++ /dev/null @@ -1,192 +0,0 @@ ---- -{ - "title": "Release 2.0.2", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.2 版本已于 2023 年 10 月 6 日正式发布,该版本对多个功能进行了更新优化,旨在更好地满足用户的需求。有 92 位贡献者为 Apache Doris 2.0.2 版本提交了功能优化项以及问题修复,进一步提升了系统的稳定性和性能," -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.2 版本已于 2023 年 10 月 6 日正式发布,该版本对多个功能进行了更新优化,旨在更好地满足用户的需求。有 92 位贡献者为 Apache Doris 2.0.2 版本提交了功能优化项以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**GitHub 下载**:https://github.com/apache/doris/releases/tag/2.0.2-rc05 - -**官网下载页**:https://doris.apache.org/download/ - -## Behavior Changes - -- https://github.com/apache/doris/pull/24679 - - 删除与 lambda 函数语法冲突的 json“->”运算符,可以使用函数 json_extract 代替。 - -- https://github.com/apache/doris/pull/24308 - -将 `metadata_failure_recovery` 从 fe.conf 移动到 start_fe.sh 参数,以避免异常操作。 - -- https://github.com/apache/doris/pull/24207 - -对于普通类型中的 null 值使用 `\n` 来表示,对于复杂类型或嵌套类型的 null 值,跟 JSON 类型保持一致、采取 null 来表示。 - -- https://github.com/apache/doris/pull/23795 -- https://github.com/apache/doris/pull/23784 - -优化 BE 节点 priority_network 配置项的绑定策略,如果用户配置了错误的 priority_network 则直接启动失败,以避免用户错误地认为配置是正确的。如果用户没有配置 priority_network,则仅从 IPv4 列表中选择第一个 IP,而不是从所有 IP 中选择,以避免用户的服务器不支持 IPv4。 - -- https://github.com/apache/doris/pull/17730 - -支持取消正在重试的导入任务,修复取消加载失败的问题。 - -## 功能优化 - -### 易用性提升 - -- https://github.com/apache/doris/pull/23887 - -某些场景下,用户需要向集群中添加一些自定义的库,如 lzo.jar、orai18n.jar 等。在过去的版本中,这些 lib 文件位于 fe/lib 或 be/lib 中,但在升级集群时,lib 库将被新的 lib 库替换,导致所有自定义的 lib 库都会丢失。 - -在新版本中,为 FE 和 BE 添加了新的自定义目录 custom_lib,用户可以在其中放置自定义 lib 文件。 - -- https://github.com/apache/doris/pull/23022 - -支持基于用户角色的权限访问控制,实现了行级细粒度的权限控制策略。 - -### 改进查询优化器 Nereids 统计信息收集 - -- https://github.com/apache/doris/pull/23663 - -在运行 Analysis 任务时禁用 File Cache,Analysis 任务是后台任务,不应影响用户本地 File Cache 数据。 - -- https://github.com/apache/doris/pull/23703 - -在过去版本中,查看列的统计信息时将忽略出现错误的列。 - -在新版本中,当 min 或 max 值未能反序列化时,查看列的统计信息时将使用 N/A 作为 min 或 max 的值并仍显示其余的统计信息,包括 count、null_count、ndv 等。 - -- https://github.com/apache/doris/pull/23965 - -支持 JDBC 外部表的统计信息收集。 - -- https://github.com/apache/doris/pull/24625 - -跳过 `__internal_schema` 和 `information_schema` 上未知列的统计信息检查。 - -### Multi-Catalog 功能优化 - -- https://github.com/apache/doris/pull/24168 - -支持 Hadoop viewfs; - -- https://github.com/apache/doris/pull/22369 - -优化 JDBC Catalog Checksum Replay 和 Range 相关问题; - -- https://github.com/apache/doris/pull/23868 - -优化了 JDBC Catalog 的 Property 检查和错误消息提示。 - -- https://github.com/apache/doris/pull/24242 - -修复了 MaxCompute Catalog Decimal 类型解析问题以及使用对象存储地址错误的问题。 - -- https://github.com/apache/doris/pull/23391 - -支持 Hive Metastore Catalog 的 SQL Cache。 - -- https://github.com/apache/doris/pull/22869 - -提高了 Hive Metastore Catalog 的元数据同步性能。 - -- https://github.com/apache/doris/pull/22702 - -添加 metadata_name_ids 以快速获取 Catalogs、DB、Table,在创建或删除 Catalog 和 Table 时无需 Refresh Catalog,并添加 Profiling 表从而与 MySQL 兼容。 - -### 倒排索引性能优化 - -- https://github.com/apache/doris/pull/23952 - -增加 bkd 索引的查询缓存,通过缓存可以加速在命中 bkd 索引时的查询性能,在高并发场景中效果更为明显; - -- https://github.com/apache/doris/pull/24678 - -提升倒排索引在 Count 算子上的查询性能; - -- https://github.com/apache/doris/pull/24751 - -提升了 Match 算子在未命中索引时的效率,在测试表现中性能最高提升 60 倍; - -- https://github.com/apache/doris/pull/23871 -- https://github.com/apache/doris/pull/24389 - -提升了 MATCH 和 MATCH_ALL 在倒排索引上的查询性能; - -### Array 函数优化 - -- https://github.com/apache/doris/pull/23630 - -优化了老版本查询优化器 Array 函数无法处理 Decimal 类型的问题; - -- https://github.com/apache/doris/pull/24327 - -优化了 `array_union` 数组函数对多个参数的支持; - -- https://github.com/apache/doris/pull/24455 - -支持通过 explode 函数来处理数组嵌套复杂类型; - -## Bug 修复 - - 修复了之前版本存在的部分 Bug,使系统整体稳定性表现得到大幅提升,完整 BugFix 列表请参考 GitHub Commits 记录; - -- https://github.com/apache/doris/pull/23601 -- https://github.com/apache/doris/pull/23630 -- https://github.com/apache/doris/pull/23555 -- https://github.com/apache/doris/pull/17644 -- https://github.com/apache/doris/pull/23779 -- https://github.com/apache/doris/pull/23940 -- https://github.com/apache/doris/pull/23860 -- https://github.com/apache/doris/pull/23973 -- https://github.com/apache/doris/pull/24020 -- https://github.com/apache/doris/pull/24039 -- https://github.com/apache/doris/pull/23958 -- https://github.com/apache/doris/pull/24104 -- https://github.com/apache/doris/pull/24097 -- https://github.com/apache/doris/pull/23852 -- https://github.com/apache/doris/pull/24139 -- https://github.com/apache/doris/pull/24165 -- https://github.com/apache/doris/pull/24164 -- https://github.com/apache/doris/pull/24369 -- https://github.com/apache/doris/pull/24372 -- https://github.com/apache/doris/pull/24381 -- https://github.com/apache/doris/pull/24385 -- https://github.com/apache/doris/pull/24290 -- https://github.com/apache/doris/pull/24207 -- https://github.com/apache/doris/pull/24521 -- https://github.com/apache/doris/pull/24460 -- https://github.com/apache/doris/pull/24568 -- https://github.com/apache/doris/pull/24610 -- https://github.com/apache/doris/pull/24595 -- https://github.com/apache/doris/pull/24616 -- https://github.com/apache/doris/pull/24635 -- https://github.com/apache/doris/pull/24625 -- https://github.com/apache/doris/pull/24572 -- https://github.com/apache/doris/pull/24578 -- https://github.com/apache/doris/pull/23943 -- https://github.com/apache/doris/pull/24697 -- https://github.com/apache/doris/pull/24681 -- https://github.com/apache/doris/pull/24617 -- https://github.com/apache/doris/pull/24692 -- https://github.com/apache/doris/pull/24700 -- https://github.com/apache/doris/pull/24389 -- https://github.com/apache/doris/pull/24698 -- https://github.com/apache/doris/pull/24778 -- https://github.com/apache/doris/pull/24782 -- https://github.com/apache/doris/pull/24800 -- https://github.com/apache/doris/pull/24808 -- https://github.com/apache/doris/pull/24636 -- https://github.com/apache/doris/pull/24981 -- https://github.com/apache/doris/pull/24949 - -## 致谢 - -感谢所有在 2.0.2 版本中参与功能开发与优化以及问题修复的所有贡献者,他们分别是: - -[@adonis0147](https://github.com/adonis0147) [@airborne12](https://github.com/airborne12) [@amorynan](https://github.com/amorynan) [@AshinGau](https://github.com/AshinGau) [@BePPPower](https://github.com/BePPPower) [@BiteTheDDDDt](https://github.com/BiteTheDDDDt) [@bobhan1](https://github.com/bobhan1) [@ByteYue](https://github.com/ByteYue) [@caiconghui](https://github.com/caiconghui) [@CalvinKirs](https://github.com/CalvinKirs) [@cambyzju](https://github.com/cambyzju) [@ChengDaqi2023](https://github.com/ChengDaqi2023) [@ChinaYiGuan](https://github.com/ChinaYiGuan) [@CodeCooker17](https://github.com/CodeCooker17) [@csun5285](https://github.com/csun5285) [@dataroaring](https://github.com/dataroaring) [@deadlinefen](https://github.com/deadlinefen) [@DongLiang-0](https://github.com/DongLiang-0) [@Doris-Extras](https://github.com/Doris-Extras) [@dutyu](https://github.com/dutyu) [@eldenmoon](https://github.com/eldenmoon) [@englefly](https://github.com/englefly) [@freemandealer](https://github.com/freemandealer) [@Gabriel39](https://github.com/Gabriel39) [@gnehil](https://github.com/gnehil) [@GoGoWen](https://github.com/GoGoWen) [@gohalo](https://github.com/gohalo) [@HappenLee](https://github.com/HappenLee) [@hello-stephen](https://github.com/hello-stephen) [@HHoflittlefish777](https://github.com/HHoflittlefish777) [@hubgeter](https://github.com/hubgeter) [@hust-hhb](https://github.com/hust-hhb) [@ixzc](https://github.com/ixzc) [@JackDrogon](https://github.com/JackDrogon) [@jacktengg](https://github.com/jacktengg) [@jackwener](https://github.com/jackwener) [@Jibing-Li](https://github.com/Jibing-Li) [@JNSimba](https://github.com/JNSimba) [@kaijchen](https://github.com/kaijchen) [@kaka11chen](https://github.com/kaka11chen) [@Kikyou1997](https://github.com/Kikyou1997) [@Lchangliang](https://github.com/Lchangliang) [@LemonLiTree](https://github.com/LemonLiTree) [@liaoxin01](https://github.com/liaoxin01) [@LiBinfeng-01](https://github.com/LiBinfeng-01) [@liugddx](https://github.com/liugddx) [@luwei16](https://github.com/luwei16) [@mongo360](https://github.com/mongo360) [@morningman](https://github.com/morningman) [@morrySnow](https://github.com/morrySnow) @mrhhsg @Mryange @mymeiyi @neuyilan @pingchunzhang @platoneko @qidaye @realize096 @RYH61 @shuke987 @sohardforaname @starocean999 @SWJTU-ZhangLei @TangSiyang2001 @Tech-Circle-48 @w41ter @wangbo @wsjz @wuwenchi @wyx123654 @xiaokang @XieJiann @xinyiZzz @XuJianxu @xutaoustc @xy720 @xyfsjq @xzj7019 @yiguolei @yujun777 @Yukang-Lian @Yulei-Yang @zclllyybb @zddr @zhangguoqiang666 @zhangstar333 @ZhangYu0123 @zhannngchen @zxealous @zy-kkk @zzzxl1993 @zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.3.md deleted file mode 100644 index 24e791dc87ea1..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.3.md +++ /dev/null @@ -1,277 +0,0 @@ ---- -{ - "title": "Release 2.0.3", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.3 版本已于 2023 年 12 月 14 日正式发布,该版本对复杂数据类型、统计信息收集、倒排索引、数据湖分析、分布式副本管理等多个功能进行了优化,有 104 位贡献者为 Apache Doris 2.0." -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.3 版本已于 2023 年 12 月 14 日正式发布,该版本对复杂数据类型、统计信息收集、倒排索引、数据湖分析、分布式副本管理等多个功能进行了优化,有 104 位贡献者为 Apache Doris 2.0.3 版本提交了超过 1000 个功能优化项以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**GitHub 下载**:https://github.com/apache/doris/releases - -**官网下载页**:https://doris.apache.org/download/ - - -## 新增特性 - -### 自动统计信息收集 - -统计信息是 CBO 优化器进行代价估算时的依赖,通过收集统计信息有助于优化器了解数据分布特性、估算每个执行计划的成本并选择更优的执行计划,以此大幅提升查询效率。从 2.0.3 版本开始,Apache Doris 开始支持自动统计信息收集,默认为开启状态。 - -在每次导入事务提交后,Apache Doris 将记录导入事务更新的表信息并估算表统计信息的健康度,对于健康度低于配置参数的表会认为统计信息已过时并自动触发表的统计信息收集作业。同时为了降低统计信息作业的资源开销,Apache Doris 会自动采取采样的方式收集统计信息,用户也可以调整参数来采样更多行以获得更准确的数据分布信息。 - -更多信息请参考:[Statistics](../../query-acceleration/optimization-technology-principle/statistics) - - -### 数据湖框架支持复杂数据类型 - -- Java UDF、JDBC catalog、Hudi MOR 表等功能支持复杂数据类型 - - https://github.com/apache/doris/pull/24810 - - https://github.com/apache/doris/pull/26236 - -- Paimon catalog 支持复杂数据类型 - - https://github.com/apache/doris/pull/25364 - -- Paimon catalog 支持 Paimon 0.5 版本 - - https://github.com/apache/doris/pull/24985 - - -### 增加更多内置函数 - -- 新优化器支持 BitmapAgg 函数 - - https://github.com/apache/doris/pull/25508 - -- 支持 SHA 系列摘要函数 - - https://github.com/apache/doris/pull/24342 - -- 聚合函数 min_by 和 max_by 支持 bitmap 数据类型 - - https://github.com/apache/doris/pull/25430 - -- 增加 milliseconds/microseconds_add/sub/diff 函数 - - https://github.com/apache/doris/pull/24114 - -- 增加 json_insert, json_replace, json_set JSON 函数 - - https://github.com/apache/doris/pull/24384 - - -## 改进优化 - -### 性能优化 - -- 在过滤率高的倒排索引 match where 条件和过滤率低的普通 where 条件组合时,大幅降低索引列的 IO -- 优化经过 where 条件过滤后随机读数据的效率 -- 优化在 JSON 数据类型上使用老的 get_json_xx 函数的性能,提升 2-4 倍 -- 支持配置降低读数据线程的优先级,保证写入的 CPU 资源和实时性 -- 增加返回 largeint 的 uuid-numeric 函数,性能比返回 string 的 uuid 函数快 20 倍 -- Case when 的性能提升 3 倍 -- 在存储引擎执行中裁剪不必要的谓词计算 -- 支持 count 算子下推到存储层 -- 优化支持 and or 表达式中包含 nullable 类型的计算性能 -- 支持更多场景下 limit 算子提前到 join 前执行的改写,以提升执行效率 -- 增加消除 inline view 中的无用的 order by 算子,以提升执行效率 -- 优化了部分情况下的基数估计和代价模型的准确性,以提升执行效率 -- 优化了 JDBC catalog 的谓词下推逻辑和大小写逻辑 -- 优化了 file cache 的第一次开启后的读取效率 -- 优化 Hive 表 SQL cache 策略,使用 HMS 中存储的分区更新时间作为 cache 是否失效的判断,提高 cache 命中率 -- 优化了 Merge-on-Write compaction 效率 -- 优化了外表查询的线程分配逻辑,降低内存使用 -- 优化 column reader 的内存使用 - - -### 分布式副本管理改进 - -优化跳过删除分区、colocate group、持续写时均衡失败、冷热分层表不能均衡等; - -### 安全性提升 - -- 审计日志插件的配置使用 token 代替明文密码以增强安全性 - - https://github.com/apache/doris/pull/26278 - -- log4j 配置安全性增强 - - https://github.com/apache/doris/pull/24861 - -- 日志中不显示用户敏感信息 - - https://github.com/apache/doris/pull/26912 - - -## Bugfix 和稳定性提升 - -### 复杂数据类型 - -- 修复了 map/struct 对定长 CHAR(n) 没有正确截断的问题 - - https://github.com/apache/doris/pull/25725 - -- 修复了 struct 嵌套 map/array 写入失败的问题 - - https://github.com/apache/doris/pull/26973 - -- 修复了 count distinct 不支持 array/map/struct 的问题 - - https://github.com/apache/doris/pull/25483 - -- 解决 query 中出现 delete 复杂类型之后,升级过程中出现 BE crash 的问题 - - https://github.com/apache/doris/pull/26006 - -- 修复了 jsonb 在 where 条件中 BE crash 问题 - - https://github.com/apache/doris/pull/27325 - -- 修复了 outer join 中有 array 类型时 BE crash 的问题 - - https://github.com/apache/doris/pull/25669 - -- 修复 orc 格式 decimal 类型读取错误的问题 - - https://github.com/apache/doris/pull/26548 - - https://github.com/apache/doris/pull/25977 - - https://github.com/apache/doris/pull/26633 - -### 倒排索引 - -- 修复了关闭倒排索引查询时 OR NOT 组合 where 条件结果错误的问题 - - https://github.com/apache/doris/pull/26327 - -- 修复了空数组的倒排索引写入时 BE crash 的问题 - - https://github.com/apache/doris/pull/25984 - -- 修复输出为空的情况下 index compaction BE crash 的问题 - - https://github.com/apache/doris/pull/25486 - -- 修复新增列没有写入数据时,增加倒排索引 BE crash 的问题 - - https://github.com/apache/doris/pull/27276 - -- 修复 1.2 版本误建倒排索引后升级 2.0 等情况下倒排索引硬链缺失和泄露的问题 - - https://github.com/apache/doris/pull/26903 - -### 物化视图 -- 修复 group by 语句中包括重复表达式导致 BE crash 的问题 - - https://github.com/apache/doris/pull/27523 - -- 禁止视图创建时 group by 子句中使用 float/doubld 类型 - - https://github.com/apache/doris/pull/25823 - -- 增强支持了 select 查询命中物化视图的功能 - - https://github.com/apache/doris/pull/24691 - -- 修复当使用了表的 alias 时物化视图不能命中的问题 - - https://github.com/apache/doris/pull/25321 - -- 修复了创建物化视图中使用 percentile_approx 的问题 - - https://github.com/apache/doris/pull/26528 - -### 采样查询 - -- 修复 table sample 功能在 partition table 上无法正常工作的问题 - - https://github.com/apache/doris/pull/25912 - -- 修复 table sample 指定 tablet 无法工作的问题 - - https://github.com/apache/doris/pull/25378 - - -### 主键表 - -- 修复基于主键条件更新的空指针异常 - - https://github.com/apache/doris/pull/26881 - -- 修复部分列更新字段名大小写问题 - - https://github.com/apache/doris/pull/27223 - -- 修复 schema change 时 mow 会出现重复 key 的问题 - - https://github.com/apache/doris/pull/25705 - - -### 导入和 Compaction - -- 修复 routine load 一流多表时 unknown slot descriptor 错误 - - https://github.com/apache/doris/pull/25762 - -- 修复内存统计并发访问导致 BE crash 问题 - - https://github.com/apache/doris/pull/27101 - -- 修复重复取消导入导致 BE crash 的问题 - - https://github.com/apache/doris/pull/27111 - -- 修复 broker load 时 broker 连接报错问题 - - https://github.com/apache/doris/pull/26050 - -- 修复 compaction 和 scan 并发下 delete 谓词可能导致查询结果不对的问题 - - https://github.com/apache/doris/pull/24638 - -- 修复 compaction task 存在时打印大量 stacktrace 日志的问题 - - https://github.com/apache/doris/pull/25597 - - -### 数据湖兼容性 - -- 解决 iceberg 表中包含特殊字符导致查询失败的问题 - - https://github.com/apache/doris/pull/27108 - -- 修复 Hive metastore 不同版本的兼容性问题 - - https://github.com/apache/doris/pull/27327 - -- 修复读取 MaxCompute 分区表错误的问题 - - https://github.com/apache/doris/pull/24911 - -- 修复备份到对象存储失败的问题 - - https://github.com/apache/doris/pull/25496 - - https://github.com/apache/doris/pull/25803 - - -### JDBC 外表兼容性 - -- 修复 JDBC catalog 处理 Oracle 日期类型格式错误的问题 - - https://github.com/apache/doris/pull/25487 - -- 修复 JDBC catalog 读取 MySQL 0000-00-00 日期异常的问题 - - https://github.com/apache/doris/pull/26569 - -- 修复从 MariaDB 读取数据时间类型默认值为 current_timestamp 时空指针异常问题 - - https://github.com/apache/doris/pull/25016 - -- 修复 JDBC catalog 处理 bitmap 类型时 BE crash 的问题 - - https://github.com/apache/doris/pull/25034 - - https://github.com/apache/doris/pull/26933 - - -### SQL 规划和优化 - -- 修复了部分场景下分区裁剪错误的问题 - - https://github.com/apache/doris/pull/27047 - - https://github.com/apache/doris/pull/26873 - - https://github.com/apache/doris/pull/25769 - - https://github.com/apache/doris/pull/27636 - -- 修复了部分场景下子查询处理不正确的问题 - - https://github.com/apache/doris/pull/26034 - - https://github.com/apache/doris/pull/25492 - - https://github.com/apache/doris/pull/25955 - - https://github.com/apache/doris/pull/27177 - -- 修复了部分语义解析的错误 - - https://github.com/apache/doris/pull/24928 - - https://github.com/apache/doris/pull/25627 - -- 修复 right outer/anti join 时,有可能丢失数据的问题 - - https://github.com/apache/doris/pull/26529 - -- 修复了谓词被错误的下推穿过聚合算子的问题 - - https://github.com/apache/doris/pull/25525 - -- 修正了部分情况下返回的结果 header 不正确的问题 - - https://github.com/apache/doris/pull/25372 - -- 包含有 nullsafeEquals 表达式 (<=>) 作为连接条件时,可以正确对规划出 hash join - - https://github.com/apache/doris/pull/27127 - -- 修复了 set operation 算子中无法正确列裁剪的问题 - - https://github.com/apache/doris/pull/26884 - - -## 行为变更 - -- 复杂数据类型 array/map/struct 的输出格式改成跟输入格式以及 JSON 规范保持一致,跟之前版本的主要变化是日期和字符串用双引号括起来,array/map 内部的空值显示为 null 而不是 NULL。 - - https://github.com/apache/doris/pull/25946 - -- 默认情况下,当用户属性 `resource_tags.location` 没有设置时,只能使用 default 资源组的节点,而之前版本中可以访问任意节点。 - - https://github.com/apache/doris/pull/25331 - -- 支持 SHOW_VIEW 权限,拥有 SELECT 或 LOAD 权限的用户将不再能够执行 `SHOW CREATE VIEW` 语句,必须单独授予 SHOW_VIEW 权限。 - - https://github.com/apache/doris/pull/25370 - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.4.md deleted file mode 100644 index ffce724a377e9..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.4.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -{ - "title": "Release 2.0.4", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.4 版本已于 2024 年 1 月 26 日正式发布,该版本在新优化器、倒排索引、数据湖等功能上有了进一步的完善与更新,使 Apache Doris 能够适配更广泛的场景。此外,该版本进行了若干的改进与优化,以提供更加稳定高效的性能体验。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.4 版本已于 2024 年 1 月 26 日正式发布,该版本在新优化器、倒排索引、数据湖等功能上有了进一步的完善与更新,使 Apache Doris 能够适配更广泛的场景。此外,该版本进行了若干的改进与优化,以提供更加稳定高效的性能体验。新版本已经上线,欢迎大家下载使用! - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - -## 行为变更 -- 提供了更精确的 Precision 和 Scale 推导,可满足金融场景计算的高要求 - - [https://github.com/apache/doris/pull/28034](https://github.com/apache/doris/pull/28034) -- Drop Policy 支持了 User 和 Role - - [https://github.com/apache/doris/pull/29488](https://github.com/apache/doris/pull/29488) - -## 新功能 -- 新优化器支持了 datev1,datetimev1 及 decimalv2 数据类型 -- 新优化器支持了 ODBC 外表 -- 倒排索引支持了 `lower_case` 和 `ignore_above` 选项 -- 倒排索引支持了 `match_regexp` 和 `match_phrase_prefix` 查询加速 -- 数据湖支持了 Paimon Native Reader -- 数据湖支持读取 LZO 压缩的 Parquet 文件 -- 审计日志支持 `insert into` - -## 改进和优化 -- 对数据均衡、迁移等存储管控进行了改进 -- 对数据冷却策略进行了改进,以节省本地硬盘存储空间 -- 对 ASCII 字符串 substr 进行了优化 -- 针对使用 date 函数查询时的分区裁剪进行了优化 -- 针对优化器自动统计信息收集的可观测性和性能进行了优化 - - -## 致谢 - -感谢 73 位开发者为 Apache Doris 2.0.4 版本做出了重要贡献,正是由于他们的努力,Apache Doris 在性能和稳定性方面取得了显著的进步。 - -airborne12、amorynan、AshinGau、BePPPower、bingquanzhao、BiteTheDDDDt、bobhan1、ByteYue、caiconghui、CalvinKirs、cambyzju、caoliang-web、catpineapple、csun5285、dataroaring、deardeng、dutyu、eldenmoon、englefly、feifeifeimoon、fornaix、Gabriel39、gnehil、HappenLee、hello-stephen、HHoflittlefish777、hubgeter、hust-hhb、ixzc、jacktengg、jackwener、Jibing-Li、kaka11chen、KassieZ、LemonLiTree、liaoxin01、LiBinfeng-01、lihuigang、liugddx、luwei16、morningman、morrySnow、mrhhsg、Mryange、nextdreamblue、Nitin-Kashyap、platoneko、py023、qidaye、shuke987、starocean999、SWJTU-ZhangLei、w41ter、wangbo、wsjz、wuwenchi、Xiaoccer、xiaokang、XieJiann、xingyingone、xinyiZzz、xuwei0912、xy720、xzj7019、yujun777、zclllyybb、zddr、zhangguoqiang666、zhangstar333、zhannngchen、zhiqiang-hhhh、zy-kkk、zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.5.md deleted file mode 100644 index ec7250a6f2933..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.5.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -{ - "title": "Release 2.0.5", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.5 版本已于 2024 年 2 月 27 日正式与大家见面。这次更新带来一系列行为变更和功能更新,并进行了若干的改进与优化,旨在为用户提供更为稳定高效的数据查询与分析体验。新版本已经上线,欢迎大家下载体验!" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.5](https://doris.apache.org/download/) 版本已于 2024 年 2 月 27 日正式与大家见面。这次更新带来一系列行为变更和功能更新,并进行了若干的改进与优化,旨在为用户提供更为稳定高效的数据查询与分析体验。新版本已经上线,欢迎大家下载体验! - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 行为变更 -- `select char(0) = '\0'` 返回 true,跟 MySQL 的行为保持一致 - - https://github.com/apache/doris/pull/30034 -- Export 导出数据支持空表 - - https://github.com/apache/doris/pull/30703 - -## 新功能 -- 利用过滤条件中的 `is null` 谓词,将 OUTER JOIN 转换为 ANTI JOIN -- 增加 `SHOW TABLETS BELONG` 语法用于获取 tablet 属于哪个 table -- InferPredicates 支持 `IN`,例如:`a = b & a in [1, 2] -> b in [1, 2]` -- 支持对物化视图收集统计信息 -- `SHOW PROCESSLIST` 支持输出连接对应的 FE -- Export 导出 CSV 文件支持通过 `with_bom` 参数控制是否带有 Windows BOM - -## 改进和优化 -- 在无统计信息时优化 Query Plan -- 基于 Rollup 的统计信息优化 Query Plan -- 用户停止 Auto Analyze 后尽快停止统计信息收集任务 -- 缓存统计信息收集异常,避免大约太多异常栈 -- 支持在 SQL 中自定使用某个物化视图 -- JDBC Catalog 谓词下推列名字符转义 -- 修复 MySQL Catalog 中 `to_date` 函数下推的问题 -- 优化 JDBC 客户端连接关闭的逻辑,在异常时正常取消查询 -- 优化 JDBC 连接池的参数 -- 通过 HMS API 获取 Hudi 外表的分区信息 -- 优化 Routine Load 的内存占用和错误信息 -- 如果 `max_backup_restore_job_num_per_db` 参数为 0,跳过所有备份恢复任务 - - -## 致谢 -最后,衷心感谢 59 位开发者为 Apache Doris 2.0.5 版本做出了重要贡献: - -airborne12, alexxing662, amorynan, AshinGau, BePPPower, bingquanzhao, BiteTheDDDDt, ByteYue, caiconghui, cambyzju, catpineapple, dataroaring, eldenmoon, Emor-nj, englefly, felixwluo, GoGoWen, HappenLee, hello-stephen, HHoflittlefish777, HowardQin, JackDrogon, jacktengg, jackwener, Jibing-Li, KassieZ, LemonLiTree, liaoxin01, liugddx, LuGuangming, morningman, morrySnow, mrhhsg, Mryange, mymeiyi, nextdreamblue, qidaye, ryanzryu, seawinde,starocean999, TangSiyang2001, vinlee19, w41ter, wangbo, wsjz, wuwenchi, xiaokang, XieJiann, xingyingone, xy720,xzj7019, yujun777, zclllyybb, zhangstar333, zhannngchen, zhiqiang-hhhh, zxealous, zy-kkk, zzzxl1993 - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.6.md deleted file mode 100644 index d591cf9fb4475..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.6.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -{ - "title": "Release 2.0.6", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.6 版本已于 2024 年 3 月 12 日正式与大家见面。本次版本中,有 51 位贡献者提交了约 114 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.6](https://doris.apache.org/download/) 版本已于 2024 年 3 月 12 日正式与大家见面。本次版本中,有 51 位贡献者提交了约 114 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 行为变更 -- 无 - -## 新功能 -- 自动选择物化视图时支持匹配带别名的函数 -- 增加安全下线一个 tablet 副本的命令 -- 外表统计信息增加行数统计缓存 -- 统计信息收集支持 Rollup - -## 改进和优化 -- 使用 protobuf 稳定序列化减少 Tablet Schema 缓存内存占用 -- 提升 `show column stats` 的性能 -- 统计信息收集和优化器支持 Iceberg 和 Paimon 的行数估计 -- JDBC Catalog 支持读取 SQL Server 的 Timestamp 类型 - - -## 致谢 -最后,衷心感谢 51 位开发者为 Apache Doris 2.0.6 版本做出了重要贡献: - -924060929, AshinGau, BePPPower, BiteTheDDDDt, CalvinKirs, cambyzju, deardeng, DongLiang-0, eldenmoon, englefly, feelshana, feiniaofeiafei, felixwluo, HappenLee, hust-hhb, iwanttobepowerful, ixzc, JackDrogon, Jibing-Li, KassieZ, larshelge, liaoxin01, LiBinfeng-01, liutang123, luennng, morningman, morrySnow, mrhhsg, qidaye, starocean999, TangSiyang2001, wangbo, wsjz, wuwenchi, xiaokang, XieJiann, xuwei0912, xy720, xzj7019, yiguolei, yujun777, Yukang-Lian, Yulei-Yang, zclllyybb, zddr, zhangstar333, zhannngchen, zhiqiang-hhhh, zy-kkk, zzzxl1993 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.7.md deleted file mode 100644 index 5024566e0e2f7..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.7.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -{ - "title": "Release 2.0.7", - "language": "zh-CN", - "description": "924060929,airborne12,amorynan,ByteYue,dataroaring,deardeng,feiniaofeiafei,felixwluo,freemandealer,gavinchou,hello-stephen,HHoflittlefish777,jacktengg," -} ---- - -## 1 行为变更 - -- `round` 函数行为跟 MySQL 保持一致,例如 `round(5/2)` 返回 3 而不是 2. - - - https://github.com/apache/doris/pull/31583 - - -- 时间精度转换行为跟 MySQL 保持一致,例如 '2023-10-12 14:31:49.666' 四舍五人到 '2023-10-12 14:31:50' . - - - https://github.com/apache/doris/pull/27965 - -## 2 新功能 - -- 在更多的情况下可以将 OUTER JOIN 转换成 ANTI JOIN 来加速查询 - - - https://github.com/apache/doris/pull/31854 - -- 支持通过 Nginx, HAProxy 等代理连接的 IP 透传 - - - https://github.com/apache/doris/pull/32338 - - -## 3 改进和优化 - -- 通过在 `information_schema` 中增加 DEFAULT_ENCRYPTION 列、增加 `processlist` 表,提升 BI 工具的兼容性 - -- 创建 JDBC Catalog 时默认自动检测连通性 - -- 增强自动恢复提升 Kafka Routine Load 的稳定性 - -- 倒排索引中文分词对英文默认做小写转换 - -- Repeat 函数的重复次数超过限制时报错 - -- 自动跳过 Hive 外表中的隐藏文件和目录 - -- 在某些极端情况下减少 File Meta Cache 避免 OOM - -- 减少 Broker Load 的 jvm 内存占用 - -- 加速带排序的 INSERT INTO SELECT 比如 `INSERT INTO t1 SELECT * FROM t2 ORDER BY k` - - -## 4 致谢 - -924060929,airborne12,amorynan,ByteYue,dataroaring,deardeng,feiniaofeiafei,felixwluo,freemandealer,gavinchou,hello-stephen,HHoflittlefish777,jacktengg,jackwener,jeffreys-cat,Jibing-Li,KassieZ,LiBinfeng-01,luwei16,morningman,mrhhsg,Mryange,nextdreamblue,platoneko,qidaye,rohitrs1983,seawinde,shuke987,starocean999,SWJTU-ZhangLei,w41ter,wsjz,wuwenchi,xiaokang,XieJiann,XuJianxu,yujun777,Yulei-Yang,zhangstar333,zhiqiang-hhhh,zy-kkk,zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.8.md deleted file mode 100644 index 8cbae42964be5..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.8.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -{ - "title": "Release 2.0.8", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.8 版本已于 2024 年 04 月 09 日正式与大家见面。本次版本中,有 35 位贡献者提交了约 65 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.8](https://doris.apache.org/download/) 版本已于 2024 年 04 月 09 日正式与大家见面。本次版本中,有 35 位贡献者提交了约 65 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - -## 1 行为变更 - -由于 `ADMIN SHOW xx` 语句在 MySQL 8.x jdbc driver 不能执行,所以将名字改成 `SHOW xx` - -- https://github.com/apache/doris/pull/29492 - -```sql -ADMIN SHOW CONFIG -> SHOW CONFIG -ADMIN SHOW REPLICA -> SHOW REPLICA -ADMIN DIAGNOSE TABLET -> SHOW TABLET DIAGNOSIS -ADMIN SHOW TABLET -> SHOW TABLET -``` - - -## 2 新功能 - -N/A - - - -## 3 改进和优化 - -- 新优化器支持 TopN 优化中使用倒排索引 - -- 限制统计信息 STRING 长度为 1024 以控制 BE 内存消耗 - -- 修复未创建 JDBC Client 时意外关闭的情况 - -- 接受所有 Iceberg Database,不再做额外的名字检查 - -- 异步更新外表行数统计,避免同步更新带来的 Cache miss 和 Plan 不稳定 - -- 简化 Hive 外表的 isSplitable 方法,避免过多的 Hadoop metric - - - -## 4 致谢 - -924060929, AcKing-Sam, amorynan, AshinGau, BePPPower, BiteTheDDDDt, ByteYue, cambyzju, dongsilun, eldenmoon, feiniaofeiafei, gnehil, Jibing-Li, liaoxin01, luwei16, morningman, morrySnow, mrhhsg, Mryange, nextdreamblue, platoneko, starocean999, SWJTU-ZhangLei, wuwenchi, xiaokang, xinyiZzz, Yukang-Lian, Yulei-Yang, zclllyybb, zddr, zhangstar333, zhiqiang-hhhh, ziyanTOP, zy-kkk, zzzxl1993 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.9.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.9.md deleted file mode 100644 index ce0066034c625..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.0/release-2.0.9.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -{ - "title": "Release 2.0.9", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.9 版本已正式发布。在本次版本中,有 34 位贡献者提交了约 68 个功能改进以及问题修复,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.9](https://doris.apache.org/download/) 版本已正式发布。在本次版本中,有 34 位贡献者提交了约 68 个功能改进以及问题修复,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 1 行为变更 - -无 - -## 2 新功能 - -- 物化视图的 Key 和 Value 列都允许出现谓词 - -- 物化视图支持 `bitmap_union(bitmap_from_array())` - -- 增加一个 FE 配置强制集群中所有表的 Replicate Allocation - -- 新优化器支持日期字面量指定时区 - -- `MATCH_PHRASE` 全文检索支持 slop 参数指定搜索词之间的距离 - -## 3 改进和优化 - -- `first_value` / `last_value` 函数增加第二个参数指定忽略 NULL 值 - -- `LEAD`/ `LAG` 函数的 Offset 参数可以为 0 - -- 调整物化视图匹配的顺序优先利用索引和预聚合加速查询 - -- 优化 TopN 查询 `ORDER BY k LIMIT n` 的性能 - -- 优化 Meta Cache 的性能 - -- 为` delete_bitmap get_agg` 函数增加 Profile 便于性能分析 - -- 增加 FE 参数设置 Autobucket 的最大 Bucket 数 - -## 4 致谢 - -adonis0147, airborne12, amorynan, AshinGau, BePPPower, BiteTheDDDDt, CalvinKirs, cambyzju, csun5285, eldenmoon, englefly, feiniaofeiafei, HHoflittlefish777, htyoung, hust-hhb, jackwener, Jibing-Li, kaijchen, kylinmac, liaoxin01, luwei16, morningman, mrhhsg, qidaye, starocean999, SWJTU-ZhangLei, w41ter, xiaokang, xiedeyantu, xy720, zclllyybb, zhangstar333, zhannngchen, zy-kkk, zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.0.md deleted file mode 100644 index a0a4d220f97f3..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.0.md +++ /dev/null @@ -1,858 +0,0 @@ ---- -{ - "title": "Release 2.1.0", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 3 月 8 日我们引来了 Apache Doris 2.1.0 版本的正式发布,欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 3 月 8 日我们引来了 Apache Doris 2.1.0 版本的正式发布,欢迎大家下载使用。 - -- 在查询性能方面,2.1 系列版本我们着重提升了开箱盲测性能,力争不做调优的情况下取得较好的性能表现,包含了对复杂 SQL 查询性能的进一步提升,在 TPC-DS 1TB 测试数据集上获得超过 100% 的性能提升,查询性能居于业界领先地位。 - -- 在数据湖分析场景,我们进行了大量性能方面的改进、相对于 Trino 和 Spark 分别有 4-6 倍的性能提升,并引入了多 SQL 方言兼容、便于用户可以从原有系统无缝切换至 Apache Doris。在面向数据科学以及其他形式的大规模数据读取场景,我们引入了基于 Arrow Flight 的高速读取接口,数据传输效率提升 100 倍。 - -- 在半结构化数据分析场景,我们引入了全新的 Variant 和 IP 数据类型,完善了一系列分析函数,面向复杂半结构化数据的存储和分析处理更加得心应手。 - -- 在 2.1.0 版本中我们也引入了基于多表的异步物化视图以提升查询性能,支持透明改写加速、自动刷新、外表到内表的物化视图以及物化视图直查,基于这一能力物化视图也可用于数据仓库分层建模、作业调度和数据加工。 - -- 在存储方面,我们引入了自增列、自动分区、MemTable 前移以及服务端攒批的能力,使得大规模数据实时写入的效率更高。 - -- 在负载管理方面,我们进一步完善了 Workload Group 资源组的隔离能力,并增加了运行时查看 SQL 资源用量的能力,进一步提升了多负载场景下的稳定性。 - -在 2.1.0 版本的研发过程中,**有 237 位贡献者为 Apache Doris 带来了接近 6000 个 Commits。** 同时 2.1.0 版本也同样经过了近百家社区用户的大规模打磨,在测试过程中向我们反馈了许多有价值的优化项,在此向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢。后续我们将会持续敏捷发版来响应所有用户对功能和稳定性的更高追求,欢迎大家在使用过程中给予我们更多反馈。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - -## 复杂查询性能提升 100%,TPC-DS 业界领先 - - 在 2.1 系列版本中,我们着重提升了开箱盲测性能,力争不做调优的情况下取得较好的性能表现,包含了对复杂 SQL 查询性能的进一步提升。在此我们以 TPC-DS 1TB 作为性能测试对比的基准,重点对比最新 2.1.0 版本与 2.0.5 版本的性能提升。集群规模均为 1FE、3BE,其中 BE 节点的服务器配置为 48C 192G。从以下测试结果中可以看到: - -- 2.1.0 版本的总查询耗时为 245.7 秒,相较于 2.0.5 版本的 489.6 秒,**性能提升达到 100 %;** - -- 在全部 99 个 SQL 中,有近三分之一的 SQL 查询性能提升达到 2 倍以上,超过 80 个 SQL 都获得显著性能提升; - -- 不论是基础的过滤、排序、聚合,或者复杂的多表关联查询、子查询以及窗口函数计算,2.1.0 版本都有更为明显的性能优势; - -- 2.0.5 版本或 2.1.0 版本,都可以完整执行 TPC-DS 的 99 个查询。 - -![复杂查询性能提升 100%,TPC-DS 业界领先](/images/2.1-Doris-TPC-DS-best-performance.png) - - -以上详细测试结果我们将在后续提交到 Apache Doris 官网文档中,也欢迎所有用户在完成最新版本的部署后进行测试复现。 - -与此同时,我们也对业内多个 OLAP 系统在同等硬件资源和多个测试数据规模下进行了性能测试,不论大宽表场景或多表关联场景,Apache Doris 都具备着极为明显的性能优势。毫无疑问,**Apache Doris 已在业界同类产品中性能居于最领先地位**! - - -### 优化器更智能 - -在 Apache Doris 2.0 版本中我们引入了全新查询优化器,在绝大多数场景无需任何调优即可实现极致的查询性能。而在最新发布的 Apache Doris 2.1 版本中,查询优化器在整体代际更新的基础上,进行了优化规则的扩展和枚举框架的完善,面向复杂分析场景更加得心应手: - -- **优化器基础设施完善**:在多种优化器基础设施方面进行了补充和增强,例如对统计信息推导和代价模型方面的持续改进,使之能够收集更多的特征信息为复杂优化提供基础; - -- **优化规则持续扩展**:得益于丰富的实际场景反馈,新版本中查询优化器增强了包括算子下压在内的许多经典规则,结合上述基础设施扩充而引入的新优化规则,使得新版本的查询优化器能覆盖更广泛的使用场景; - -- **枚举框架进一步优化**:在查询优化器 Cascades 和 DPhyper 两大融合框架的基础上,继续深耕框架能力、优化框架性能,确立了更为清晰的枚举策略,兼顾计划质量和枚举效率,为高性能引擎提供坚实基础。例如将 Cascades 默认枚举表上限从 5 提升到了 8、有效扩大了高质量计划的覆盖范围,同时进一步优化 DPhyper 枚举效率、使之能够枚举出更优计划。 - -### 无统计信息优化 - -针对海量数据规模以及数据湖分析场景下,针对统计信息收集难度高、收集时间久的问题,在 2.1 版本中查询优化器利用多种启发式技术,大大提升了**无统计信息场景下**的计划质量,使得在没有统计信息的场景下也可获得较好的查询计划。同时扩展了 Runtime Filter 的下压场景和自适应能力,在执行过程中能够自适应地动态调整部分表达式谓词,使得 Apache Doris 在不依赖统计信息的情况下也具有优异的性能表现。 - -### Parallel Adaptive Scan 并行自适应扫描 - -在复杂数据分析场景下,每次查询都需要扫描大量的数据进行计算,因此 IO 瓶颈很大程度上决定了查询性能的上限。为了提升 Scan IO 的性能,Apache Doris 采取了并行读取的技术,每个扫描线程读取 1 个或者多个 Tablet(即用户建表时指定的 Bucket),但如若用户建表时指定的 Bucket 数目不合理、那么磁盘扫描线程就无法并行工作,直接影响查询性能。为此,在 2.1 版本中我们引入了 Tablet 内的并行扫描技术,可以将多个 Tablet 进行池化,在磁盘扫描端可以根据行数来拆分多个线程并行扫描(最多支持 48 个线程),从而有效避免分桶数不合理导致的查询性能问题。 - -![Parallel Adaptive Scan 并行自适应扫描](/images/2.1-doris-parallel-adaptive-scan.png) - -因此在 2.1 版本以后,我们建议用户**在建表时设置的分桶数=整个集群磁盘的数量**,在 IO 层面能将整个集群所有的 IO 资源全部利用起来。 - -:::tip -当前 2.1.0 版本的 Parallel Adaptive Scan 只能针对 Unqiue Key 模型的 Merge-on-Write 表以及 Duplicate Key 模型生效,预计在 2.1.1 版本中会增加对 Unique Key 模型 Merge-on-Read 表和 Aggregate Key 模型的支持。 -::: - -### Local Shuffle - -在部分场景下,数据分布不均会导致多个 Instance 的查询执行出现长尾。而为了解决单个 BE 节点上多个 Instance 之间的数据倾斜问题,在 Apache Doris 2.1 版本中我们引入了 Local Shuffle 技术,尽可能将数据打散从而加速查询。例如在某一典型的聚合查询中,数据在经过聚合之前将会通过一个 Local Shuffle 节点被均匀分布在不同的 Pipeline Task 中,如下图所示: - -![Local Shuffle](/images/2.1-doris-local-shuffle.png) - -在具备了 Parallel Adaptive Scan 和 Local Shuffle 能力之后,Apache Doris 能够规避由于分桶数不合理、数据分布不均带来的性能问题。 - -在此我们分别使用 Clickbench(大宽表场景)和 TPC-H(多表 Join 的复杂分析场景)数据集模拟建表分桶不合理的情况,在 Clickbench 数据集中我们建表 Bucket 数量分别设为 1 和 16,在 TPC-H 100G 数据集下我们建表时每个 Partition 的 Bucket 数目分别设为 1 和 16。在开启 Parallel Adaptive Scan 和 Local Shuffle 之后,整体查询性能表现比较平稳,即使不合理的数据分布也能取得优异的性能表现。 - -![Local Shuffle Clickbench and TPCH-100](/images/2.1-doris-clickbench-tpch.png) - -:::note 备注 -参考文档:[Pipeline X 执行引擎](../../query-acceleration/optimization-technology-principle/pipeline-execution-engine) -::: - -## ARM 架构深度适配,性能提升 230% - -在 Apache Doris 2.1 版本中我们针对 ARM 架构进行了深度的适配和指令集优化,可以在 ARM 架构上充分发挥 Apache Doris 的性能优势。相较于 2.0 版本,2.1 版本在 ClickBench、SSB 100G、TPC-H 100G 以及 TPC-DS 1TB 等多个测试数据集中取得了超过 100% 的性能提升。在此我们以大宽表场景的 ClickBench 以及多表关联场景的 TPC-H 为例,集群配置均为 1FE 3BE、BE 节点的服务器配置为 16C 64G 的 ARM 服务器,测试结论如下: - -- 在大宽表场景中,ClickBench 测试数据集 43 个 SQL 的总查询耗时从 102.36 秒降低至 30.73 秒,性能提升超过 230%; - -- 在多表关联场景中,TPC-H 22 个 SQL 的总查询耗时从 174.8 秒降低至 90.4 秒,性能提升 93%; - -## 数据湖分析 - -### 性能提升 - -在 2.1 版本中,我们对数据湖分析方面做了大量改进,包括对 HDFS 和对象存储的 IO 优化、Parquet/ORC 文件格式的读取反序列优化、浮点类型解压优化、谓词下推执行优化、缓存策略以及扫描任务调度策略的优化,以及针对不同数据源的统计信息准确性的提升及更精准的优化器代价模型。基于以上优化,Apache Doris 在数据湖分析场景下的性能得到大幅度提升。 - -![Doris 数据湖分析 - 性能提升](/images/2.1-doris-TPC-DS.png) - -在此我们以 TPC-DS 1TB 场景下进行测试,Apache Doris 2.1 版本和 Trino 435 版本的性能测试结果如下: - -- 在无缓存情况下,Apache Doris 的总体运行耗时间为 717s、Trino 为 1296s,查询耗时降低了 45%,全部 99 条 SQL 中有 80% 比 Trino 更快; - -- 在开启文件缓存功能并命中的情况下,Apache Doris 的总体性能可以进一步提升 2.2 倍以上,**较 Trino 有 4 倍以上的性能提升,全部 99 条 SQL 性能均优于 Trino**。 - -与此同时也在 TPC-DS 10TB 场景下对 Apache Doris 2.1 版本与 Spark 3.5.0 以及 3.3.1 版本进行了性能测试,查询性能分别提升 4.2 倍和 6.1 倍。 - - - -### 高速数据读取,数据传输效率提升 100 倍 - -如今许多大数据系统都采取列式内存数据格式,以 MySQL/JDBC/ODBC 作为与数据库系统交互的主流协议与标准。在数据输出至外部系统的过程中,需要将数据从系统特定的列存格式序列化为 MySQL/JDBC/ODBC 协议的行存格式,再反序列化回客户端的列存格式,这会使数据传输速度大幅降低,在面向数据科学或其他形式的大规模数据读写时,数据传输的效率缺陷愈发明显。 - -作为用于大规模数据处理的列式内存格式,Apache Arrow 提供了高效的数据结构、允许不同系统间更快共享数据。如果源数据库和目标客户端都支持 Apache Arrow 作为列式内存格式,使用 Arrow Flight SQL 协议传输将无需序列化和反序列化数据,消除数据传输中的开销。同时 Arrow Flight 还可以利用多节点和多核架构,通过完全并行化优化吞吐能力。 - -![高速数据读取,数据传输效率提升 100 倍](/images/2.1-doris-arrow-flight.png) - -在过去如果需要采取 Python 读取 Apache Doris 中的数据,需要将 Apache Doris 中列存的 Block 序列化为 MySQL 协议的行存 Bytes,然后在 Python 客户端再反序列化到 Pandas 中,传输过程带来的性能损耗非常大。 - -在 Apache Doris 2.1 版本中,我们提供了基于 Arrow Flight 的 HTTP Data API 高吞吐数据读写接口。相比于过去的 MySQL 协议,使用 Arrow Flight SQL 后,我们在 Apache Doris 中先将列存的 Block 转为同样列存的 Arrow RecordBatch,这一步转换效率非常高、且传输过程中无需再次序列化和反序列化,而后在 Python 客户端再将 Arrow RecordBatch 转到同样列存的 Pandas DataFrame 中,这一步转换同样非常快。通过 Arrow Flight 提供的 Python 客户端 Pandas/Numpy 等数据科学工具,可以快速从 Apache Doris 中读取数据并在本地进行分析。 - -基于此,Apache Doris 可以与整个 AI 和数据科学生态进行良好的整合,这也是未来的重要发展方向。 - -```C++ -conn = flight_sql.connect(uri="grpc://{FE_HOST}:{fe.conf:arrow_flight_sql_port}", db_kwargs={ - adbc_driver_manager.DatabaseOptions.USERNAME.value: "user", - adbc_driver_manager.DatabaseOptions.PASSWORD.value: "pass", - }) -cursor = conn.cursor() -cursor.execute("select * from arrow_flight_sql_test order by k0;") -print(cursor.fetchallarrow().to_pandas()) -``` - -针对常见的数据类型,我们通过不同的 MySQL 客户端进行了对比测试,基于 Arrow Flight SQL 数据传输性能相较于 MySQL 协议提升了近百倍。 - - -![Arrow Flight SQL](/images/2.1-doris-arrow-flight-sql.png) - - -:::note -演示 Demo:https://www.bilibili.com/video/BV1mj421Z7b7/?spm_id_from=333.999.0.0 -::: - -### 其他 - -- Paimon Catalog:Paimon 版本升级至 0.6.0,优化了 Read Optimized 表的读取,在 Paimon 数据充分合并的场景下,可以有 10 倍的性能提升; - -- Iceberg Catalog:Iceberg 版本升级至 1.4.3,同时解决了 AWS S3 认证的若干兼容性问题; - -- Hudi Catalog:Hudi 版本升级至 0.14.1,同时解决了 Hudi Flink Catalog 的若干兼容性问题。 - - -## 多表物化视图 - -作为一种典型的“空间换时间”策略,物化视图通过预先计算和存储 SQL 查询结果,当执行相同查询时可以直接从物化视图表中获取结果,在大幅提升查询性能的同时、更是减少重复计算带来的系统资源消耗。 - -在过去版本中 Apache Doris 提供了强一致的单表物化视图、保证基表和物化视图表的原子性,并支持了查询语句在物化视图上的智能路由。 - -**在 Apache Doris 2.1 版本中,我们引入了全新的异步物化视图,可以基于多表来构建。** 异步物化视图可以全量或者分区增量构建,也可以手动或者周期性地构建刷新数据。在多表关联查询且表数据量较大的场景下,优化器会根据代价模型进行透明改写、并自动寻找最优物化视图来响应查询,**以大幅提升查询性能**。与此同时,也提供了从外表到内表的物化视图以及直查物化视图的能力,基于此特性,**异步物化视图也可用于数据仓库分层建模、作业调度和数据加工**。异步物化视图使用方式如下: - -**表定义:** - -```SQL -use tpch; - -CREATE TABLE IF NOT EXISTS orders ( - o_orderkey integer not null, - o_custkey integer not null, - o_orderstatus char(1) not null, - o_totalprice decimalv3(15,2) not null, - o_orderdate date not null, - o_orderpriority char(15) not null, - o_clerk char(15) not null, - o_shippriority integer not null, - o_comment varchar(79) not null - ) - DUPLICATE KEY(o_orderkey, o_custkey) - PARTITION BY RANGE(o_orderdate)( - FROM ('2023-10-17') TO ('2023-10-20') INTERVAL 1 DAY) - DISTRIBUTED BY HASH(o_orderkey) BUCKETS 3 - PROPERTIES ("replication_num" = "1"); - -insert into orders values - (1, 1, 'ok', 99.5, '2023-10-17', 'a', 'b', 1, 'yy'), - (2, 2, 'ok', 109.2, '2023-10-18', 'c','d',2, 'mm'), - (3, 3, 'ok', 99.5, '2023-10-19', 'a', 'b', 1, 'yy'); - -CREATE TABLE IF NOT EXISTS lineitem ( - l_orderkey integer not null, - l_partkey integer not null, - l_suppkey integer not null, - l_linenumber integer not null, - l_quantity decimalv3(15,2) not null, - l_extendedprice decimalv3(15,2) not null, - l_discount decimalv3(15,2) not null, - l_tax decimalv3(15,2) not null, - l_returnflag char(1) not null, - l_linestatus char(1) not null, - l_shipdate date not null, - l_commitdate date not null, - l_receiptdate date not null, - l_shipinstruct char(25) not null, - l_shipmode char(10) not null, - l_comment varchar(44) not null - ) - DUPLICATE KEY(l_orderkey, l_partkey, l_suppkey, l_linenumber) - PARTITION BY RANGE(l_shipdate) - (FROM ('2023-10-17') TO ('2023-10-20') INTERVAL 1 DAY) - DISTRIBUTED BY HASH(l_orderkey) BUCKETS 3 - PROPERTIES ("replication_num" = "1"); - -insert into lineitem values - (1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-17', '2023-10-17', '2023-10-17', 'a', 'b', 'yyyyyyyyy'), - (2, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-18', '2023-10-18', '2023-10-18', 'a', 'b', 'yyyyyyyyy'), - (3, 2, 3, 6, 7.5, 8.5, 9.5, 10.5, 'k', 'o', '2023-10-19', '2023-10-19', '2023-10-19', 'c', 'd', 'xxxxxxxxx'); - - - CREATE TABLE IF NOT EXISTS partsupp ( - ps_partkey INTEGER NOT NULL, - ps_suppkey INTEGER NOT NULL, - ps_availqty INTEGER NOT NULL, - ps_supplycost DECIMALV3(15,2) NOT NULL, - ps_comment VARCHAR(199) NOT NULL -) -DUPLICATE KEY(ps_partkey, ps_suppkey) -DISTRIBUTED BY HASH(ps_partkey) BUCKETS 3 -PROPERTIES ( - "replication_num" = "1" -) -``` - -**创建物化视图:** - -```SQL -CREATE MATERIALIZED VIEW mv1 - BUILD DEFERRED REFRESH AUTO ON MANUAL - partition by(l_shipdate) - DISTRIBUTED BY RANDOM BUCKETS 2 - PROPERTIES ('replication_num' = '1') - AS - select l_shipdate, o_orderdate, l_partkey, - l_suppkey, sum(o_totalprice) as sum_total - from lineitem - left join orders on lineitem.l_orderkey = orders.o_orderkey - and l_shipdate = o_orderdate - group by - l_shipdate, - o_orderdate, - l_partkey, - l_suppkey; -``` - -**目前异步物化视图已经具备以下功能:** - -- **透明改写加速:**支持常见算子的透明改写,如 Select、Where、Join、Group by、Aggregation 等,可以直接通过建立物化视图,对现有的查询进行加速。例如在 BI 报表场景,某些报表查询延时比较高,就可以通过建立合适的物化视图进行加速。 - -- **自动刷新:**物化视图支持不同刷新策略,如定时刷新和手动刷新,也支持不同的刷新粒度,如全量刷新、分区粒度的增量刷新等。 - -- **外表到内表的物化视图:**可以对存放在 Hive、Hudi、Iceberg 等数据湖系统上的数据建立物化视图,加速对数据湖的访问,也可以通过物化视图的方式将数据湖中的数据同步到 Apache Doris 内表中。 - -- **物化视图直查:**用户也可以将物化视图的构建看做 ETL 的过程,把物化视图看做是 ETL 加工后的结果数据,由于物化视图本身也是一个表,所以用户可以直接查询物化视图。 - -:::note -- 演示 Demo: https://www.bilibili.com/video/BV1s2421T71z/?spm_id_from=333.999.0.0 -- 参考文档:[异步物化视图](../../query-acceleration/materialized-view/async-materialized-view/overview) -::: - -## 存储能力增强 - -### 自增列 AUTO_INCREMENT - -自增列 AUTO_INCREMENT 是 OLTP 数据库中常见的一项功能,提供了一种方便高效的方式来为新插入的数据行自动分配唯一标识符。由于自增列的可用值分配涉及到全局事务,因此在分布式 OLAP 数据库中并不常见。在 Apache Doris 2.1 版本中,我们通过创新性的自增序列预分配策略,提供了高效的自增列实现。基于自增列的唯一性保证,用户可以利用自增列实现高效的字典编码和查询分页。 - -**字典编码:** 在进行 PV/UV 统计或人群圈选等需要精确去重的查询时,可以使用自增列对 UserID 或订单 ID 等字符串值创建字典表,将用户数据批量或者实时写入字典表即可生成字典,根据各种维度的条件对对应的 Bitmap 进行聚合运算; - -```SQL -CREATE TABLE `demo`.`dictionary_tbl` ( - `user_id` varchar(50) NOT NULL, - `aid` BIGINT NOT NULL AUTO_INCREMENT -) ENGINE=OLAP -UNIQUE KEY(`user_id`) -DISTRIBUTED BY HASH(`user_id`) BUCKETS 32 -PROPERTIES ( -"replication_allocation" = "tag.location.default: 3", -"enable_unique_key_merge_on_write" = "true" -); -``` - -**查询分页**:在页面展示数据时,往往需要做分页展示。传统的分页通常使用 SQL 中的 `limit`, `offset` + `order by` 进行查询。在进行深分页查询时,即使查询数据量较少、数据库仍需将全部数据读取至内存进行全量排序,查询效率比较低下。采取自增列可以为每一行生成唯一标识、查询时记住上一页最大唯一标识并用于下一页的查询条件,实现更高效的分页查询。 - -以下表为例,unique_value 是一个唯一值: - -```SQL -CREATE TABLE `demo`.`records_tbl2` ( - `key` int(11) NOT NULL COMMENT "", - `name` varchar(26) NOT NULL COMMENT "", - `address` varchar(41) NOT NULL COMMENT "", - `city` varchar(11) NOT NULL COMMENT "", - `nation` varchar(16) NOT NULL COMMENT "", - `region` varchar(13) NOT NULL COMMENT "", - `phone` varchar(16) NOT NULL COMMENT "", - `mktsegment` varchar(11) NOT NULL COMMENT "", - `unique_value` BIGINT NOT NULL AUTO_INCREMENT -) DUPLICATE KEY (`key`, `name`) -DISTRIBUTED BY HASH(`key`) BUCKETS 10 -PROPERTIES ( - "replication_num" = "3" -); -``` - -在分页展示中,每页展示 100 条数据,使用如下方式获取第一页的数据: - -```SQL -select * from records_tbl2 order by unique_value limit 100; -``` - -通过程序记录下返回结果中`unique_value`中的最大值,假设为 99,则可用如下方式查询第二页的数据: - -```SQL -select * from records_tbl2 where unique_value > 99 order by unique_value limit 100; -``` - -如果要直接查询一个靠后页面的内容,此时不方便直接获取之前页面数据中`unique_value`的最大值时,例如要直接获取第 101 页的内容,则可以使用如下方式进行查询 - -```SQL -select key, name, address, city, nation, region, phone, mktsegment -from records_tbl2, (select unique_value as max_value from records_tbl2 order by uniuqe_value limit 1 offset 9999) as previous_data -where records_tbl2.uniuqe_value > previous_data.max_value -order by unique_value limit 100; -``` - -:::note -演示 Demo:https://www.bilibili.com/video/BV1VC411h7Gr/?spm_id_from=333.999.0.0 -::: - -### 自动分区 Auto Partition - -在 Apache Doris 2.1 版本之前一直采取手动分区的形式,用户需要提前把分区建立好,否则在导入数据过程中会因为找不到对应分区而出错。而自动分区功能支持了在导入数据过程中自动检测分区列的数据对应的分区是否存在。如果不存在,则会自动创建分区并正常进行导入。 - -自动分区功能使用方式如下: - -```SQL -CREATE TABLE `DAILY_TRADE_VALUE` -( - `TRADE_DATE` datev2 NULL COMMENT '交易日期', - `TRADE_ID` varchar(40) NULL COMMENT '交易编号', - ...... -) -UNIQUE KEY(`TRADE_DATE`, `TRADE_ID`) -AUTO PARTITION BY RANGE date_trunc(`TRADE_DATE`, 'year') -( -) -DISTRIBUTED BY HASH(`TRADE_DATE`) BUCKETS 10 -PROPERTIES ( - "replication_num" = "1" -); -``` - -:::caution -注意事项 - -1. 当前自动分区功能仅支持一个分区列,并且分区列必须为 NOT NULL 列; - -2. 自动分区当前已支持 Range 分区和 List 分区,其中 Range 分区函数仅支持 `date_trunc`、分区列仅支持 `DATE` 或者 `DATETIME` 格式;List 分区不支持函数调用,分区列支持 `BOOLEAN、TINYINT、SMALLINT、INT、BIGINT、LARGEINT、DATE、DATETIME、CHAR、VARCHAR` 数据类型,分区值为枚举值; - -3. 使用 List 分区时,一旦分区列的值当前不存在,自动分区功能都会为其创建一个独立的新分区。 -::: - -:::note - -参考文档:[数据划分](../../table-design/data-partitioning/data-distribution) -::: - -### INSERT INTO SELECT 导入性能提升 100% - -`INSERT INTO…SELECT` 语句是 ETL 中最高频使用的操作之一,可以快速完成数据在库表之间的迁移、转换以及清洗合并,提升 `INSERT INTO…SELECT` 性能可以更好满足用户对数据快速提取和分析的需求。在 Apache Doris 2.0 版本中,我们引入了单副本导入功能(Single Replica Load)来减少多副本的重复写入和 Compaction 工作,但是导入性能还存在优化的空间。 - -在 Apache Doris 2.1 版本中,为了进一步提升`INSERT INTO…SELECT` 性能,我们实现了 MemTable 前移以进一步减少导入过程中的开销,能在大多数场景中能在 2.0 版本的基础上取得 100% 的导入性能提升。 - -![INSERT INTO SELECT 导入性能提升 100%](/images/2.1-doris-INSERT-INTO-SELECT.png) - - -MemTable 前移和非前移的流程对比如上图所示,Sink 节点不再发送编码后的 Block,而是在本地处理完 MemTable 将生成的 Segment 数据发给下游节点,减少了数据多次编码的开销,同时使内存反压更准确和及时。此外,我们使用了 Streaming RPC 来替代了 Ping-pong RPC,减少了数据传输过程中的等待。 - -在此我们对 2.1 版本开启 MemTable 前移后的导入性能进行了测试,测试环境如下:1 FE+3 BE、每个节点 16C 64G、3 块高性能云盘(保证磁盘 I/O 不成为瓶颈) - -可以看到在单副本场景下,2.1 版本开启 MemTable 前移后、导入耗时降低至 2.0 版本的 36%,三副本场景下导入耗时降低至 2.0 版本的 54%,整体导入性能提升超过 100%。 - -| INSERT INTO 表 | Doris 2.0 非前移默认 | Doris 2.1MemTable 前移 | -| :------------------- | :------------------- | :--------------------- | -| linitem 1 副本 (38G) | 30.2 s | 11.1 s | -| linitem 3 副本 (38G) | 47.4 s | 25.4 s | - -![INSERT INTO SELECT 导入性能提升 100%](/images/2.1-insert-into-table.png) - -:::note -MemTable 前移在 2.1 版本中默认开启,用户无需修改原有的导入命令即可获得大幅性能提升。如果在使用过程中遇到问题、希望回退到原有的导入方式,可以在 MySQL 连接中设置环境变量 `enable_memtable_on_sink_node=false` 来关闭 MemTable 前移。 -::: - -### 高频实时导入/服务端攒批 Group Commit - -在数据导入过程中,不同批次导入的数据都会写入内存表中,随后在磁盘中上形成一个个 RowSet 文件,每个 Rowset 文件对应一次数据导入版本。后台 Compaction 进程会自动对多个版本的 RowSet 文件进行合并,将多个 RowSet 小文件合并成 RowSet 大文件以优化查询性能以及存储空间,而每一次的 Compaction 进程都会产生对 CPU、内存以及磁盘 IO 资源的消耗。在实际数据写入场景中,写入越实时高频、生成 RowSet 版本数越高、Compaction 所消耗的资源就越大。为了避免高频写入带来的过多资源消耗甚至 OOM,Apache Doris 引入了反压机制,即在版本过多的情况下会返回 -235,并对数据的版本数量进行控制。 - - -![高频实时导入/服务端攒批 Group Commit](/images/2.1-doris-group-commit.png) - -从 Apache Doris 2.1 版本开始,我们引入了服务端攒批 Group Commit,大幅强化了高并发、高频实时写入的能力。 - -顾名思义,Group Commit 会把用户侧的多次写入在 BE 端进行积攒后批量提交。对于用户而言,无需控制写入程序的频率,Doris 会自动把用户提交的多次写入在内部合并为一个版本,从而可以大幅提升用户侧的写入频次。 - -![高频实时导入/服务端攒批 Group Commit](/images/2.1-doris-group-commit-2.png) - -当前 Group Commit 已经支持同步模式 `sync_mode` 和异步模式 `async_mode`。同步模式下会将多个导入在一个事务提交,事务提交后导入返回,在导入完成后数据立即可见。异步模式下数据会先写入 WAL,Apache Doris 会根据负载和表的`group_commit_interval`属性异步提交数据,提交之后数据可见。为了防止 WAL 占用较大的磁盘空间,单次导入数据量较大时,会自动切换为`sync_mode`。 - -我们分别采取 JDBC 和 Stream Load 两种方式对高并发写入场景下 Group Commit(异步模式 `async_mode`)的写入性能进行了测试,测试报告如下: - -- **JDBC 写入**: - - - 集群配置为 1FE 1BE,数据集为 TPC-H SF10 Lineitem 表,总共约 22GB、1.8 亿行; - - - 经测试,在并发数 20、单次 Insert 数据行数 100 行下,导入效率达到 10.69w 行/秒、导入吞吐达 11.46 MB/秒,BE 节点的 CPU 使用率稳定保持在 10%-20%; - -- **Stream Load 写入**: - - - 集群配置为 1FE 3BE,数据集为 httplogs、总共 31GB、2.47 亿行。在未开启 Group Commit 和 开启 Group Commit 的异步模式时,通过设置不同的单并发数据量和并发数,对比数据的写入性能。 - - - 经测试,在并发数 10、单次导入数据量 1 MB 下,未开启 Group Commit 时会提示 -235 错误,开启后可稳定运行且导入效率达 81w 行/秒、导入吞吐达 104 MB/秒;在并发数 10、单次导入数据量 10MB 下,开启 Group Commit 后耗时降低至原先的 55%、导入吞吐提升 79%; - - -:::note -- 演示 Demo:https://www.bilibili.com/video/BV1um411o7Ha/?spm_id_from=333.999.0.0 - -- 参考文档和完整测试报告:[Group Commit](../../data-operate/import/group-commit-manual) - -::: - -## 半结构化数据分析 - -### Variant 数据类型 - -过去 Apache Doris 在应对复杂半结构化数据的存储和分析处理时,一般有两种方式: - -1. 一种方式是用户提前预定好表结构,加工成宽表,在数据进入前将数据解析好,这种方案的优点是写入性能好,查询也不需要解析,但是使用不够灵活、对表结构发起变更增加运维、研发的成本。 - -2. 使用 Doris 中的 JSON 类型、或是存成 JSON String,将原始 JSON 数据不经过加工直接入库,查询的时候,用解析函数处理。优点是不需要额外的数据加工、预定义表结构拍平嵌套结构,运维、研发方便,但存在解析性能以及数据读取效率低下的问题。 - -为了解决上述半结构化数据的挑战,在 Apache Doris 2.1 版本中我们引入全新的数据类型`VARIANT`,支持存储半结构化数据、允许存储包含不同数据类型(如整数、字符串、布尔值等)的复杂数据结构,无需在表结构中提前定义具体的列,其存储和查询与传统的 String、JSONB 等行存类型发生了本质的改变,期望其作为半结构化数据首选数据类型,给用户带来更加高效的数据处理机制。 - -Variant 类型特别适用于处理结构可能随时会发生变化的复杂嵌套结构。在写入过程中,Variant 类型可以自动根据列的结构和类型推断列信息,并将其合并到现有表的 Schema 中,将 JSON 键及其对应的值灵活存储为动态子列。同时,一个表可以同时包含灵活的 Variant 对象列和预先定义类型的更严格的静态列,从而在数据存储、查询上提供了更大的灵活性。除此之外,Variant 类型能够与 Doris 核心特性融合,利用列式存储、向量化引擎、优化器等技术,为用户带来极高性价比的查询性能及存储性能。 - -**使用方式如下:** - -```SQL --- 无索引 -CREATE TABLE IF NOT EXISTS ${table_name} ( - k BIGINT, - v VARIANT -) -table_properties; - --- 在v列创建索引,可选指定分词方式,默认不分词 -CREATE TABLE IF NOT EXISTS ${table_name} ( - k BIGINT, - v VARIANT, - INDEX idx_var(v) USING INVERTED [PROPERTIES("parser" = "english|unicode|chinese")] [COMMENT 'your comment'] -) -table_properties; - --- 查询,使用`[]`形式访问子列 -SELECT v["properties"]["title"] from ${table_name} -``` - -**相比 JSON 类型的优势** - -在 Apache Doris 中 JSON 类型是以二进制 JSONB 格式进行存储,整行 JSON 以行存的形式存储到 Segment 文件中。而 VARIANT 类型在写入的时候进行类型推断,将写入的 JSON 列存化,查询不需要进行解析。此外 Variant 类型针对稀疏场景的 JSON 进行优化,只提取频繁出现的列,稀疏的列会以单独的格式进行存储。 - -为了验证引入 Variant 数据类型后在存储以及查询上所带来的优势,我们基于 ClickBench 测试数据集进行了存储空间和查询性能的测试。 - -在存储空间方面,相同数据采取 Variant 类型,所占用的存储空间跟预定义的静态列的存储空间持平,相比于 JSON 类型则减少了约 65%。在一些低基数场景,由于列存的优势,存储资源的成本效应会更加明显。 - -![相比 JSON 类型的优势](/images/2.1-comparied-to-Json.png) - -在查询性能方面,如下表可知,Variant 类型与预定义静态列的查询性能差异在 10% 左右;**而对于 JSON 类型来说,Variant 类型的热查询速度相比于 JSON 类型提升了 8 倍以上,冷查询有着数量级的提升。**(由于 I/O 原因,JSONB 类型的冷查询大部分超时)。 - -![相比 JSON 类型的优势](/images/2.1-comparied-to-Json-2.png) - - -:::caution -注意事项: - -- 目前 Variant 暂不支持 Aggregate 模型,也不支持将 Variant 类型作为 Unique 或 Duplicate 模型的主键及排序键; - -- 推荐使用 RANDOM 模式或者开启 Group Commit 导入,写入性能更高效; - -- 日期、Decimal 等非标准 JSON 类型尽可能提取出来作为静态字段,性能更好; - -- 二维及其以上的数组以及数组嵌套对象,列存化会被存成 JSONB 编码,性能不如原生数组; - -- 查询过滤、聚合需要带 Cast,存储层会根据存储类型和 Cast 目标类型来提示(hint)存储引擎谓词下推,加速查询。 -::: - -:::note -- 演示 Demo: https://www.bilibili.com/video/BV13u4m1g7ra/?spm_id_from=333.999.0.0 - -- 参考文档:[VARIANT](../../sql-manual/basic-element/sql-data-types/semi-structured/VARIANT) - -::: - -### IP 数据类型 - -在网络流量监控的场景中,IP 地址是一个常见的字段,大量的统计分析基于 IP 地址进行。在 Apache Doris 2.1 版本中,将原生支持 IPv4 和 IPv6 数据类型,用高效的二进制形式存储 IP 数据。相比于使用明文的 IP String,内存和存储空间可节省 60% 左右。 - -同时基于 IP 类型,我们增加了常用的 20 多个 IP 处理函数,如: - -- IPV4_NUM_TO_STRING:将类型为 Int16、Int32、Int64 且大端表示的 IPv4 的地址,返回相应 IPv4 的字符串表现形式; -- IPV4_CIDR_TO_RANGE:接收一个 IPv4 和一个包含 CIDR 的 Int16 值,返回一个结构体,其中包含两个 IPv4 字段分别表示子网的较低范围(min)和较高范围(max); -- INET_ATON:获取包含 IPv4 地址的字符串,格式为 A.B.C.D(点分隔的十进制数字) - -:::note -参考文档:[IPV6](../../sql-manual/basic-element/sql-data-types/ip/IPV6) - -::: - -### 复杂数据类型分析函数完善 - -在 Apache Doris 2.1 版本中我们丰富了行转列和 IN 能支持的数据类型。如: - -- `explode_map`:支持 MAP 类型数据行转列(仅在新优化器中实现) - -支持 Map 类型 Explode 行转列,将 Map 字段的 N 个 Key Value 对展开成 N 行,每行的 Map 字段替换成 Key 和 Value 两个字段。`explode_map` 需要和 Lateral View 一起使用,可以接多个 Lateral View, 结果则是每个 `explode_map` 之后的行数以笛卡尔积的形式展示。 - -具体使用如下: - -```SQL --- 建表语句 - CREATE TABLE `sdu` ( - `id` INT NULL, - `name` TEXT NULL, - `score` MAP NULL -) ENGINE=OLAP -DUPLICATE KEY(`id`) -COMMENT 'OLAP' -DISTRIBUTED BY HASH(`id`) BUCKETS 1 -PROPERTIES ( -"replication_allocation" = "tag.location.default: 1" -); - --- insert 数据 -insert into sdu values (0, "zhangsan", {"Chinese":"80","Math":"60","English":"90"}); -insert into sdu values (1, "lisi", {"null":null}); -insert into sdu values (2, "wangwu", {"Chinese":"88","Math":"90","English":"96"}); -insert into sdu values (3, "lisi2", {null:null}); -insert into sdu values (4, "amory", NULL); - -mysql> select name, course_0, score_0 from sdu lateral view explode_map(score) tmp as course_0,score_0; -+----------+----------+---------+ -| name | course_0 | score_0 | -+----------+----------+---------+ -| zhangsan | Chinese | 80 | -| zhangsan | Math | 60 | -| zhangsan | English | 90 | -| lisi | null | NULL | -| wangwu | Chinese | 88 | -| wangwu | Math | 90 | -| wangwu | English | 96 | -| lisi2 | NULL | NULL | -+----------+----------+---------+ - -mysql> select name, course_0, score_0, course_1, score_1 from sdu lateral view explode_map(score) tmp as course_0,score_0 lateral view explode_map(score) tmp1 as course_1,score_1; -+----------+----------+---------+----------+---------+ -| name | course_0 | score_0 | course_1 | score_1 | -+----------+----------+---------+----------+---------+ -| zhangsan | Chinese | 80 | Chinese | 80 | -| zhangsan | Chinese | 80 | Math | 60 | -| zhangsan | Chinese | 80 | English | 90 | -| zhangsan | Math | 60 | Chinese | 80 | -| zhangsan | Math | 60 | Math | 60 | -| zhangsan | Math | 60 | English | 90 | -| zhangsan | English | 90 | Chinese | 80 | -| zhangsan | English | 90 | Math | 60 | -| zhangsan | English | 90 | English | 90 | -| lisi | null | NULL | null | NULL | -| wangwu | Chinese | 88 | Chinese | 88 | -| wangwu | Chinese | 88 | Math | 90 | -| wangwu | Chinese | 88 | English | 96 | -| wangwu | Math | 90 | Chinese | 88 | -| wangwu | Math | 90 | Math | 90 | -| wangwu | Math | 90 | English | 96 | -| wangwu | English | 96 | Chinese | 88 | -| wangwu | English | 96 | Math | 90 | -| wangwu | English | 96 | English | 96 | -| lisi2 | NULL | NULL | NULL | NULL | -+----------+----------+---------+----------+---------+ -``` - -`explode_map_outer` 和 `explode_outer` 的目的一致,可以将当前 MAP 类型的列中是 NULL 的数据行展示出来。 - -```SQL -mysql> select name, course_0, score_0 from sdu lateral view explode_map_outer(score) tmp as course_0,score_0; -+----------+----------+---------+ -| name | course_0 | score_0 | -+----------+----------+---------+ -| zhangsan | Chinese | 80 | -| zhangsan | Math | 60 | -| zhangsan | English | 90 | -| lisi | null | NULL | -| wangwu | Chinese | 88 | -| wangwu | Math | 90 | -| wangwu | English | 96 | -| lisi2 | NULL | NULL | -| amory | NULL | NULL | -+----------+----------+---------+ -``` - -- 增加 IN 谓词支持 Struct 类型数据的能力(仅在新优化器中实现) - -IN 谓词的左参数支持 `struct() function` 构建的 Struct 类型的数据,也支持 Select 某表中某一列是 Struct 类型的数据,右边的参数支持一个由 `struct() function` 构建的 Struct 类型的数据的数组。IN 谓词支持 Struct 类型可以有效替换 Where 条件中如果需要大量的 or 连词连接的表达式,如: `(a = 1 and b = '2') or (a = 1 and b = '3') or (...)` 可以通过 IN 实现为 `struct(a,b) in (struct(1, '2'), struct(1, '3'), ...)` - -```SQL -mysql> select struct(1,"2") in (struct(1,3), struct(1,"2"), struct(1,1), null); -+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| cast(struct(1, '2') as STRUCT) IN (NULL, cast(struct(1, '2') as STRUCT), cast(struct(1, 1) as STRUCT), cast(struct(1, 3) as STRUCT)) | -+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| 1 | -+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -mysql> select struct(1,"2") not in (struct(1,3), struct(1,"2"), struct(1,1), null); -+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| ( not cast(struct(1, '2') as STRUCT) IN (NULL, cast(struct(1, '2') as STRUCT), cast(struct(1, 1) as STRUCT), cast(struct(1, 3) as STRUCT))) | -+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| 0 | -+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -``` - -- `MAP_AGG`:接收 expr1 作为键,expr2 作为对应的值,返回一个 MAP - -:::note -参考文档:[MAP_AGG](../../sql-manual/sql-functions/aggregate-functions/map-agg.md) -::: - - - -## 负载管理 - -### 资源硬隔离 - -在 Apache Doris 2.0 版本我们引入了 Workload Group,可以实现对 CPU 资源的软限制。Workload Group 软限的优点是可以提升资源的利用率,但同时也会带来查询延迟的不确定性,这对那些期望查询性能稳定性的用户来说是难以接受的。因此在 Apache Doris 2.1 版本中我们对 Workload Group 实现了 CPU 硬限,即无论当前物理机的整体 CPU 是否空闲,配置了硬限的 Group 最大 CPU 用量不能超过配置的值。 - -这意味着不管单机的资源是否充足,该 Workload Group 的最大可用 CPU 资源都是固定的,只要用户的查询负载不发生大的变化,那么查询性能就会相对稳定。由于影响一个查询性能稳定性的因素很多,除了 CPU 之外,内存、IO 以及软件层面的资源竞争也都会产生影响,因此当集群的负载在空闲和满载之间切换时,即使配置了 CPU 的硬限,查询性能的稳定性也会产生波动,但是预期的表现应该是优于软限制。 - -:::caution -注意事项 - -1. Doris 2.0 版本的 CPU 隔离是基于优先级队列实现的,而在 2.1 版本中 Apache Doris 是基于 CGroup 实现了 CPU 资源的隔离,因此从 2.0 版本升级到 2.1 版本时,需要在使用前完成 CGroup 的配置,详细注意事项参考官网文档。 - -2. 目前 Workload Group 支持的工作负载类型包括查询间的隔离以及导入与查询之间的隔离,需要注意的是如果期望对导入负载进行彻底的限制,那么需要开启 MemTable 前移。 - -3. 用户需要通过开关指定当前集群的 CPU 限制模式是软限还是硬限,暂不支持两种模式同时运行,两种模式的切换可以参考官网文档,后续我们也会根据用户的实际需求决定是否要同时支持这两种模式。 -::: - -:::note -- 演示 Demo:https://www.bilibili.com/video/BV1Fz421X7XE/?spm_id_from=333.999.0.0 -- 参考文档:[Workload Group](../../admin-manual/workload-management/workload-group) - -::: - -### TopSQL -:::tip -自 2.1.1 版本之后,active_queries() 已经废弃,TopSQl 主要通过 Doris 内置的系统表实现,参考文档 [工作负载诊断与分析](../../admin-manual/workload-management/analysis-diagnosis.md) -::: - -当集群出现预期外的大查询导致集群整体负载上升、查询可用性下降时,用户难以快速找到这些大查询并进行相应的降级操作。因此在 Apache Doris 2.1 版本中我们支持了运行时查看 SQL 资源用量的功能,具体指标如下: - -```SQL -mysql [(none)]>desc function active_queries(); -+------------------------+--------+------+-------+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+------------------------+--------+------+-------+---------+-------+ -| BeHost | TEXT | No | false | NULL | NONE | -| BePort | BIGINT | No | false | NULL | NONE | -| QueryId | TEXT | No | false | NULL | NONE | -| StartTime | TEXT | No | false | NULL | NONE | -| QueryTimeMs | BIGINT | No | false | NULL | NONE | -| WorkloadGroupId | BIGINT | No | false | NULL | NONE | -| QueryCpuTimeMs | BIGINT | No | false | NULL | NONE | -| ScanRows | BIGINT | No | false | NULL | NONE | -| ScanBytes | BIGINT | No | false | NULL | NONE | -| BePeakMemoryBytes | BIGINT | No | false | NULL | NONE | -| CurrentUsedMemoryBytes | BIGINT | No | false | NULL | NONE | -| ShuffleSendBytes | BIGINT | No | false | NULL | NONE | -| ShuffleSendRows | BIGINT | No | false | NULL | NONE | -| Database | TEXT | No | false | NULL | NONE | -| FrontendInstance | TEXT | No | false | NULL | NONE | -| Sql | TEXT | No | false | NULL | NONE | -+------------------------+--------+------+-------+---------+-------+ -``` - -`active_queries()` 函数记录了查询在各个 BE 上运行时的审计信息,该函数可以当做普通的 Doris 表来看待,支持查询、谓词过滤、排序和 Join 等操作。常用的指标包括 SQL 的运行时间、CPU 时间、单 BE 的峰值内存、Scan 的数据量以及 Shuffle 的数据量,也可以从 BE 的粒度做上卷,查看 SQL 全局的资源用量。 - -需要注意的是这里只显示运行时的 SQL,查询结束的 SQL 不会在这里显示,而是写入审计日志中(目前主要是 fe.audit.log)。常用的 SQL 如下: - -```SQL -查看集群中目前运行时间最久的n个sql -select QueryId,max(QueryTimeMs) as query_time from active_queries() group by QueryId order by query_time desc limit 10; - -查看目前集群中CPU耗时最长的n个sql -select QueryId, sum(QueryCpuTimeMs) as cpu_time from active_queries() group by QueryId order by cpu_time desc limit 10 - -查看目前集群中scan行数最多的n个sql以及他们的运行时间 -select t1.QueryId,t1.scan_rows, t2.query_time from - (select QueryId, sum(ScanRows) as scan_rows from active_queries() group by QueryId order by scan_rows desc limit 10) t1 - left join (select QueryId,max(QueryTimeMs) as query_time from active_queries() group by QueryId) t2 on t1.QueryId = t2.QueryId - -查看目前各个BE的负载情况,按照CPU时间/scan行数/shuffle字节数降序排列 -select BeHost,sum(QueryCpuTimeMs) as query_cpu_time, sum(ScanRows) as scan_rows,sum(ShuffleSendBytes) as shuffle_bytes from active_queries() group by BeHost order by query_cpu_time desc,scan_rows desc ,shuffle_bytes desc limit 10 - -查看单BE峰值内存最高的N个sql -select QueryId,max(BePeakMemoryBytes) as be_peak_mem from active_queries() group by QueryId order by be_peak_mem desc limit 10; -``` - -目前主要展示的负载类型包括 Select 和`Insert Into……Select`,预计在 2.1 版本之上的三位迭代版本中会支持 Stream Load 和 Broker Load 的资源用量展示。 - -:::note -参考文档:[ACTIVE_QUERIES](../../admin-manual/system-tables/information_schema/active_queries) -::: - - -## 其他 - -### Decimal256 - -为了更好的满足金融类或者财务类客户以及一些高端制造业客户对于数字类型进行精确计算的需求,2.1 新版本中提供了更高精度的 Decimal 数据类型,最高支持 76 位有效数字(该类型处于 Experimental 状态,需要手工开启配置项 set enable_decimal256=true 才能使用)。 - -示例: - -```SQL -CREATE TABLE `test_arithmetic_expressions_256` ( - k1 decimal(76, 30), - k2 decimal(76, 30) - ) - DISTRIBUTED BY HASH(k1) - PROPERTIES ( - "replication_num" = "1" - ); - -insert into test_arithmetic_expressions_256 values - (1.000000000000000000000000000001, 9999999999999999999999999999999999999999999998.999999999999999999999999999998), - (2.100000000000000000000000000001, 4999999999999999999999999999999999999999999999.899999999999999999999999999998), - (3.666666666666666666666666666666, 3333333333333333333333333333333333333333333333.333333333333333333333333333333); -``` - -查询语句及结果: - -```SQL -select k1, k2, k1 + k2 a from test_arithmetic_expressions_256 order by 1, 2; -+----------------------------------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| k1 | k2 | a | -+----------------------------------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| 1.000000000000000000000000000001 | 9999999999999999999999999999999999999999999998.999999999999999999999999999998 | 9999999999999999999999999999999999999999999999.999999999999999999999999999999 | -| 2.100000000000000000000000000001 | 4999999999999999999999999999999999999999999999.899999999999999999999999999998 | 5000000000000000000000000000000000000000000001.999999999999999999999999999999 | -| 3.666666666666666666666666666666 | 3333333333333333333333333333333333333333333333.333333333333333333333333333333 | 3333333333333333333333333333333333333333333336.999999999999999999999999999999 | -+----------------------------------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -3 rows in set (0.09 sec) -``` - -:::caution -注意事项 -- Decimal256 类型对于计算 CPU 的消耗更高,因此在性能上会有一些损耗。 -::: - - -### 任务调度 Job Scheduler - -同社区用户多次交流中,我们发现许多场景下用户使用 Apache Doris 时都存在定时调度的需求,例如: - -- 周期性的 Backup; - -- 过期数据定时清理; - -- 周期性的导入任务,如定时通过 Catalog 的方式去进行增量或全量数据同步; - -- 定期 ETL,如部分用户定期从宽表中 Load 数据至指定表、从明细表中定时拉取数据存至聚合表、ODS 层表定时打宽并写入原有宽表更新; - -尽管诸如 Airflow、DolphinScheduler 等可供选择的外部调度系统非常多,但仍面临一致性的问题——在极端情况下,外部调度系统触发 Doris 导入任务并执行成功,因意外情况忽然宕机时,外部调度系统无法正确获取执行结果,会认为此次调度失败,导致触发调度系统的容错机制,通常是重试或者直接失败。而无论采用哪种策略,最终都会导致以下几个情况发生: - -- **资源浪费**:由于调度系统误认为任务失败,可能会重新调度执行已经成功的任务,导致不必要的资源消耗。 - -- **数据重复或丢失**:如果调度系统选择重试导入任务,可能导致数据重复导入,造成数据冗余和不一致。另一方面,如果调度系统直接标记任务为失败,可能导致实际已成功导入的数据被忽略或丢失。 - -- **时间延误**:由于调度系统的容错机制被触发,可能需要进行额外的任务调度和重试,导致整体数据处理时间延长,影响业务效率和响应速度。 - -- **系统稳定性下降**:频繁的重试或直接失败可能导致调度系统和 Doris 的负载增加,进而影响系统的稳定性和性能。 - -因此我们在 Apache Doris 2.1 版本中引入了 Job Scheduler 功能并具备了自行任务调度的能力。Doris Job Scheduler 是根据既定计划运行的任务,用于在特定时间或指定时间间隔触发预定义的操作,从而帮助我们自动执行一些任务。从功能上来讲,它类似于操作系统上的定时任务(如:Linux 中的 cron、Windows 中的计划任务),但 Doris 的 Job 调度可以精确到秒级。对于导入场景,我们能够做到完全的一致性保障。除此之外,Doris 内置的 Jon Scheduler 还具有以下特点: - -1. **高效调度**:Job Scheduler 可以在指定的时间间隔内安排任务和事件,确保数据处理的高效性。采用时间轮算法保证事件能够精准做到秒级触发。 - -2. **灵活调度**:Job Scheduler 提供了多种调度选项,如按 分、小时、天或周的间隔进行调度,同时支持一次性调度以及循环(周期)事件调度,并且周期调度也可以指定开始时间、结束时间。 - -3. **事件池和高性能处理队列**:Job Scheduler 采用 Disruptor 实现高性能的生产消费者模型,最大可能的避免任务执行过载。 - -4. **调度记录可追溯**:Job Scheduler 会存储最新的 Task 执行记录(可配置),通过简单的命令即可查看任务执行记录,确保过程可追溯。 - -5. **高可用**:依托于 Doris 自身的高可用机制,Job 可以很轻松的做到自恢复,高可用。 - -在此我们创建一个定时调度任务作为示例: - -```SQL -// 从 2023-11-17 起每天定时执行 insert语句直到 2038 年结束 -CREATE -JOB e_daily - ON SCHEDULE - EVERY 1 DAY - STARTS '2023-11-17 23:59:00' - ENDS '2038-01-19 03:14:07' - COMMENT 'Saves total number of sessions' - DO - INSERT INTO site_activity.totals (time, total) - SELECT CURRENT_TIMESTAMP, COUNT(*) - FROM site_activity.sessions where create_time >= days_add(now(),-1) ; -``` - -:::caution 注意事项 - -当前 Job Scheduler 仅支持 Insert 内表,参考文档:[CREATE-JOB](../../sql-manual/sql-statements/job/CREATE-JOB) - -::: - -## Behavior Changed - -- Unique Key 模型默认开启 Merge On Write 写时合并,新创建的 Unique Key 模型的表将自动设置 `enable_unique_key_merge_on_write=true`。 - -- 倒排索引 Invert Index 经过一年多时间的打磨,已实现了对原本的位图索引 Bitmap Index 功能和场景的全覆盖,且功能上和性能上都大幅优于原本的位图索引 Bitmap Index,因此从 Apache Doris 2.1 版本起,我们将默认停止对位图索引 Bitmap Index 的支持,已经创建的位图索引保持不变将继续生效,不允许创建新的位图索引,在未来我们将会移除位图索引的相关代码。 - -- `cpu_resource_limit`不再支持,其本身是限制 BE 上 Scanner 线程数目的功能,而 Workload Group 也能支持设置 BE Scanner 线程数目,所以已设置的 `cpu_resource_limit `将失效。 - -- Segment Compaction 主要应对单批次大数据量的导入,可以在同一批次数据中进行多个 Segment 的 Compaction 操作,在 2.1 版本开始 Segment Compaction 将默认开启,`enable_segcompaction` 默认值设置为 True。 - -- Audit Log 插件 - - - 从 2.1 版本开始,Apache Doris 开始内置 Audit Log 审计日志插件,用户只需通过设置全局变量 `enable_audit_plugin` 开启或关闭审计日志功能。 - - - 对于之前已经安装过审计日志插件的用户,升级后可以继续使用原有插件,也可以通过 uninstall 命令卸载原有插件后,使用新的插件。但注意,切换插件后,审计日志表也将切换到新的表中。 - - - 具体可参阅:[审计日志插件](../../admin-manual/audit-plugin.md) - - - - -## 致谢 - -467887319, 924060929, acnot, airborne12, AKIRA, alan_rodriguez, AlexYue, allenhooo, amory, amory, AshinGau, beat4ocean, BePPPower, bigben0204, bingquanzhao, BirdAmosBird, BiteTheDDDDt, bobhan1, caiconghui, camby, camby, CanGuan, caoliang-web, catpineapple, Centurybbx, chen, ChengDaqi2023, ChenyangSunChenyang, Chester, ChinaYiGuan, ChouGavinChou, chunping, colagy, CSTGluigi, czzmmc, daidai, dalong, dataroaring, DeadlineFen, DeadlineFen, deadlinefen, deardeng, didiaode18, DongLiang-0, dong-shuai, Doris-Extras, Dragonliu2018, DrogonJackDrogon, DuanXujianDuan, DuRipeng, dutyu, echo-dundun, ElvinWei, englefly, Euporia, feelshana, feifeifeimoon, feiniaofeiafei, felixwluo, figurant, flynn, fornaix, FreeOnePlus, Gabriel39, gitccl, gnehil, GoGoWen, gohalo, guardcrystal, hammer, HappenLee, HB, hechao, HelgeLarsHelge, herry2038, HeZhangJianHe, HHoflittlefish777, HonestManXin, hongkun-Shao, HowardQin, hqx871, httpshirley, htyoung, huanghaibin, HuJerryHu, HuZhiyuHu, Hyman-zhao, i78086, irenesrl, ixzc, jacktengg, jacktengg, jackwener, jayhua, Jeffrey, jiafeng.zhang, Jibing-Li, JingDas, julic20s, kaijchen, kaka11chen, KassieZ, kindred77, KirsCalvinKirs, KirsCalvinKirs, kkop, koarz, LemonLiTree, LHG41278, liaoxin01, LiBinfeng-01, LiChuangLi, LiDongyangLi, Lightman, lihangyu, lihuigang, LingAdonisLing, liugddx, LiuGuangdongLiu, LiuHongLiu, liuJiwenliu, LiuLijiaLiu, lsy3993, LuGuangmingLu, LuoMetaLuo, luozenglin, Luwei, Luzhijing, lxliyou001, Ma1oneZhang, mch_ucchi, Miaohongkai, morningman, morrySnow, Mryange, mymeiyi, nanfeng, nanfeng, Nitin-Kashyap, PaiVallishPai, Petrichor, plat1ko, py023, q763562998, qidaye, QiHouliangQi, ranxiang327, realize096, rohitrs1983, sdhzwc, seawinde, seuhezhiqiang, seuhezhiqiang, shee, shuke987, shysnow, songguangfan, Stalary, starocean999, SunChenyangSun, sunny, SWJTU-ZhangLei, TangSiyang2001, Tanya-W, taoxutao, Uniqueyou, vhwzIs, walter, walter, wangbo, Wanghuan, wangqt, wangtao, wangtianyi2004, wenluowen, whuxingying, wsjz, wudi, wudongliang, wuwenchihdu, wyx123654, xiangran0327, Xiaocc, XiaoChangmingXiao, xiaokang, XieJiann, Xinxing, xiongjx, xuefengze, xueweizhang, XueYuhai, XuJianxu, xuke-hat, xy, xy720, xyfsjq, xzj7019, yagagagaga, yangshijie, YangYAN, yiguolei, yiguolei, yimeng, YinShaowenYin, Yoko, yongjinhou, ytwp, yuanyuan8983, yujian, yujun777, Yukang-Lian, Yulei-Yang, yuxuan-luo, zclllyybb, ZenoYang, zfr95, zgxme, zhangdong, zhangguoqiang, zhangstar333, zhangstar333, zhangy5, ZhangYu0123, zhannngchen, ZhaoLongZhao, zhaoshuo, zhengyu, zhiqqqq, ZhongJinHacker, ZhuArmandoZhu, zlw5307, ZouXinyiZou, zxealous, zy-kkk, zzwwhh, zzzxl1993, zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.1.md deleted file mode 100644 index 54aa067dffc1c..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.1.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -{ - "title": "Release 2.1.1", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.1 版本已于 2024 年 4 月 3 日正式发布。该版本针对 2.1.0 版本出现的问题进行较为全面的优化,提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.1.1 版本已于 2024 年 4 月 3 日正式发布。该版本针对 2.1.0 版本出现的问题进行较为全面的优化,提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- **立即下载:** https://doris.apache.org/download/ - -- **GitHub Release:** https://github.com/apache/doris/releases - - -## 1 行为变更 - -1. 改变了 Float 类型字段返回值序列化的方式,可以提升大数据量下 Float 返回的性能。 - -- https://github.com/apache/doris/pull/32049 - -2. 将部分 Table Valued Function 变更为系统表 `active_queries()`, `workload_groups()`。 - -- https://github.com/apache/doris/pull/32314 - -3. 由于 `show query``/l``oad profile stmt` 语句在实际用户场景中使用较少,该语句将不再支持与维护。同时该功能在 Pipeline 与 PipelineX 引擎中不支持。 - -- https://github.com/apache/doris/pull/32467 - -4. 升级 Arrow Flight 版本至 15.0.2,同时用户需要使用 ADBC 15.0.2 版本访问 Doris。 - -- https://github.com/apache/doris/pull/32827. - -## 2 升级问题 - -1. 修复了从 2.0.x 滚动升级至 2.1.x 的过程中,部分 BE 节点升级出现 Core 的问题。 - -- https://github.com/apache/doris/pull/32672 - -- https://github.com/apache/doris/pull/32444 - -- https://github.com/apache/doris/pull/32162 - -2. 修复了在 2.0.x 滚动升级至 2.1.x 过程中,使用 JDBC Catalog 会出现 Query 报错的问题。 - -- https://github.com/apache/doris/pull/32618 - -## 3 新功能 - -1. 默认开启列级权限。 - -- https://github.com/apache/doris/pull/32659 - -2. Pipeline 和 PipelineX 引擎能够在 K8S 下准确获取 CPU 核数。 - -- https://github.com/apache/doris/pull/32370 - -3. 支持读取 Parquet INT96 类型 - -- https://github.com/apache/doris/pull/32394 - -4. 支持 IP 透传的协议,以方便在 FE 之前启用代理的同时还能获取客户端准确的 IP 地址,实现白名单权限控制。 - -- https://github.com/apache/doris/pull/32338/files - -5. 增加对 Workload Queue 检测指标。 - -- https://github.com/apache/doris/pull/32259 - -6. 增加系统表 `backend_active_tasks `,以实时监测每个 BE 上活跃任务以及消耗的资源信息。 - -- https://github.com/apache/doris/pull/31945 - -7. 在 Spark Doris Connector 中增加 IPV4 和 IPV6 的支持。 - -- https://github.com/apache/doris/pull/32240 - -8. CCR 支持倒排索引。 - -- https://github.com/apache/doris/pull/32101 - -9. 支持查询 Experimental 的 Session Variable。 - -- https://github.com/apache/doris/pull/31837 - -10. 支持建立 `bitmap_union(bitmap_from_array())` 函数的物化视图。 - --https://github.com/apache/doris/pull/31962 - -11. 支持对 Hive 中 `HIVE_DEFAULT_PARTITION` 分区进行列裁剪。 - -- https://github.com/apache/doris/pull/31736 - -12. 支持 `set variable` 语句中使用函数。 - -- https://github.com/apache/doris/pull/32492 - -13. Arrow 序列化方式增加对 Variant 类型的支持。 - -- https://github.com/apache/doris/pull/32809 - -## 4 改进与优化 - -1. 当系统自动重启或者滚动升级之后,自动启动 Routine Load 导入任务。 - -- https://github.com/apache/doris/pull/32239 - -2. 优化了 Routine Load 任务在各个 BE 上的分布方式,让各个 BE 负载更加均衡。 - -- https://github.com/apache/doris/pull/32021 - -3. 升级 Spark 的版本,解决部分 Spark Load 的安全问题。 - -- https://github.com/apache/doris/pull/30368 - -4. 在冷热分离过程中,自动跳过被删除的 Tablet. - -- https://github.com/apache/doris/pull/32079 - -5. Workload Group 支持对 Routine Load 的资源进行限制。 - -- https://github.com/apache/doris/pull/31671 - -6. 大幅度优化多表物化视图查询改写性能。 - -- https://github.com/apache/doris/pull/31886 - -7. 优化 Broker Load 任务对 FE 的内存使用 - -- https://github.com/apache/doris/pull/31985 - -8. 优化 Partition 的裁剪逻辑。 - -- https://github.com/apache/doris/pull/31970 - -9. 优化 Tablet Schema Cache 对 BE 内存使用。 - -- https://github.com/apache/doris/pull/31141 - -10. 多表物化视图增加更多对 JOIN 类型的支持,包括 INNER JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOIN、LEFT SEMI JOIN、RIGHT SEMI JOIN、LEFT ANTI JOIN、RIGHT ANTI JOIN - -- https://github.com/apache/doris/pull/32909 - -## 5 Bugs 修复 - -1. 修复 TopN 下推导致的问题。 - -- https://github.com/apache/doris/pull/326332. - -2. 修复 JAVA UDF 带来的内存泄露问题。 - -- https://github.com/apache/doris/pull/32630 - -3. 修复 ODBC 表备份恢复问题。 - -- https://github.com/apache/doris/pull/31989 - -4. 修复对 Variant 类型进行运算时常量折叠会导致 BE 出错的问题 - -- https://github.com/apache/doris/pull/32265 - -5. 修复了部分导入任务失败时 Routine Load 卡住的问题。 - -- https://github.com/apache/doris/pull/32638 - -6. 修复 SEMI JOIN 结果不正确的问题。 - -- https://github.com/apache/doris/pull/32477 - -7. 当列的数据为空时,修复建立倒排索引会出错的问题。 - -- https://github.com/apache/doris/pull/32669 - -8. 修复`<=> join` 操作会出现 Core 的问题。 - -- https://github.com/apache/doris/pull/32623 - -9. 修复部分列更新在有 Sequence 列结果准确性的问题。 - -- https://github.com/apache/doris/pull/32574 - -10. 修复 Select Outfile 导出到 Parquet 或者 ORC 格式的列类型映射问题。 - -- https://github.com/apache/doris/pull/32281 - -11. 修复在 Restore 过程中 BE 有时候会 Core 的问题。 - -- https://github.com/apache/doris/pull/32489 - -12. 修复 `array_agg `函数结果不对的问题。 - -- https://github.com/apache/doris/pull/32387 - -13. 使 Variant 类型应当一直是 nullable. - -- https://github.com/apache/doris/pull/32248 - -14. 修复 Schema Change 没有正确处理空 Block 的问题。 - -- https://github.com/apache/doris/pull/32396 - -15. 修复使用 `json_length()` 函数时部分场景会出错的问题。 - -- https://github.com/apache/doris/pull/32145 - -16. 修复 Iceberg 表没有正确处理 Date Cast 转换的问题。 - -- https://github.com/apache/doris/pull/32194 - -17. 修复 Variant 类型建立 Index 时出现的部分 Bug。 - -- https://github.com/apache/doris/pull/31992 - -18. 修复当多个 `map_agg` 函数同时使用时结果不正确的问题。 - -- https://github.com/apache/doris/pull/31928 - -19. 修复 `money_format` 函数的返回结果不正确的问题。 - -- https://github.com/apache/doris/pull/31883 - -20. 修复在高并发的建立链接时部分请求会卡住的问题。 - -- https://github.com/apache/doris/pull/31594 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.10.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.10.md deleted file mode 100644 index 9fc0b400cbd40..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.10.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -{ - "title": "Release 2.1.10", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.10 版本已于 2025 年 05 月 17 日正式发布。 该版本持续在查询执行引擎、湖仓一体等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.10 版本已于 2025 年 05 月 17 日正式发布。** 该版本持续在查询执行引擎、湖仓一体等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。 - -- [立即下载](https://doris.apache.org/download) - -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.10-rc01) - -## 行为变更 - -- DELETE 不再错误的需要目标表的 SELECT_PRIV 权限 [#49794](https://github.com/apache/doris/pull/49794) -- Insert Overwrite 不再限制对同一个表并发只能为 1 [#48673](https://github.com/apache/doris/pull/48673) -- Merge on write unique 表禁止使用时序 compaction [#49905](https://github.com/apache/doris/pull/49905) -- 禁止在 VARIANT 类型上 build index。[#49159](https://github.com/apache/doris/pull/49159) - -## 新功能 - -### 查询执行引擎 - -- 支持了更多的 GEO 类型的计算函数`ST_CONTAINS ` , `ST_INTERSECTS`, `ST_TOUCHES`,`GeometryFromText`,`ST_Intersects`, `ST_Disjoint`, `ST_Touches`。[#49665](https://github.com/apache/doris/pull/49665) [#48695](https://github.com/apache/doris/pull/48695) -- 支持 `years_of_week` 函数。[#48870](https://github.com/apache/doris/pull/48870) - -## 湖仓一体 - -- Hive Catalog 支持 Catalog 级别的分区缓存开关控制 [#50724](https://github.com/apache/doris/pull/50724) - - 更多详情,可参考[文档](https://doris.apache.org/zh-CN/docs/dev/lakehouse/meta-cache#关闭-hive-catalog-元数据缓存) - -## 改进提升 - -### 湖仓一体 - -- Paimon 依赖版本升级到 1.0.1 -- Iceberg 依赖版本升级到 1.6.1 -- 将 Parquet Footer 的内存开销纳入 Memory Tracker 管控,以避免可能的 OOM 问题。[#49037](https://github.com/apache/doris/pull/49037) -- 优化 JDBC Catalog 的谓词下推逻辑,支持 AND/OR 等连接谓词的下推[#50542](https://github.com/apache/doris/pull/50542) -- 预编译版本默认携带 Jindofs 扩展包以支持阿里云 OSS-HDFS 访问。 - -### 半结构化管理 - -- ANY 函数支持 JSON 类型 [#50311](https://github.com/apache/doris/pull/50311) -- JSON_REPLACE,JSON_INSERT,JSON_SET,JSON_ARRAY 函数支持 JSON 数据类型和复杂数据类型[#50308](https://github.com/apache/doris/pull/50308) - -### 查询优化器 - -- 当 in 表达式的 options 多于 `Config.max_distribution_pruner_recursion_depth` 时,不执行分桶裁剪,以提升规划速度 [#49387](https://github.com/apache/doris/pull/49387) - -### 存储管理 - -- 减少日志和改进部分日志。[#47647](https://github.com/apache/doris/pull/47647) [#48523](https://github.com/apache/doris/pull/48523) - -### 其他 - -- 避免 thrift rpc END_OF_FILE 异常 [#49649](https://github.com/apache/doris/pull/49649) - -## Bug 修复 - -### 湖仓一体 - -- 修复某些情况下,在 Hive 侧新建表,Doris 侧无法立即查看到的问题 [#50188](https://github.com/apache/doris/pull/50188) -- 修复某些 Text 格式 Hive 表访问报错 "Storage schema reading not supported" 的 问题 [#50038](https://github.com/apache/doris/pull/50038) - - 查看[文档 get_schema_from_table 详情](https://doris.apache.org/zh-CN/docs/dev/lakehouse/catalogs/hive-catalog?_highlight=get_schema_from_table#语法) -- 修复某些情况下,写入 Hive/Iceberg 表时,元数据提交并发问题 [#49842](https://github.com/apache/doris/pull/49842) -- 修复某些情况下,写入存储在 oss-hdfs 上的 Hive 表失败的问题 [#49754](https://github.com/apache/doris/pull/49754) -- 修复当 Hive 分区键值有逗号的情况下,访问失败的问题 [#49382](https://github.com/apache/doris/pull/49382) -- 修复某些情况下,Paimon 表 Split 分配不均匀的问题 [#50083](https://github.com/apache/doris/pull/50083) -- 修复读取存储在 OSS 上的 Paimon 表时,无法正确处理 Delete 文件的问题 [#49645](https://github.com/apache/doris/pull/49645) -- 修复 MaxCompute Catalog 中,读取高精度 Timestamp 列时无法访问的问题 [#49600](https://github.com/apache/doris/pull/49600) -- 修复某些情况下,删除 Catalog 可能导致部分资源泄露的问题 [#49621](https://github.com/apache/doris/pull/49621) -- 修复某些情况下,读取 LZO 压缩格式的数据失败的问题 [#49538](https://github.com/apache/doris/pull/49538) -- 修复某些情况下,ORC 延迟物化功能导致复杂类型读取错误的问题 [#50136](https://github.com/apache/doris/pull/50136) -- 修复某些情况下,读取 pyorc-0.3 版本产生的 ORC 文件报错的问题 [#50358](https://github.com/apache/doris/pull/50358) -- 修复某些情况下,EXPORT 操作导致元数据死锁的问题 [#50088](https://github.com/apache/doris/pull/50088) - -### 索引 - -- 修复多次添加、删除和重命名列操作后构建倒排索引的错误 [#50056](https://github.com/apache/doris/pull/50056) -- 在 index compaction 中索引对应的列唯一 ID 的校验,避免潜在的数据异常和系统错误 [#47562](https://github.com/apache/doris/pull/47562) - -### 半结构化数据类型 - -- 修复某些情况下,VARIANT 类型转 JSON 类型返回 NULL 错误的结果 [#50180](https://github.com/apache/doris/pull/50180) -- 修复某些情况下,JSONB CAST 导致 crash [#49810](https://github.com/apache/doris/pull/49810) -- 禁止在 VARIANT 类型上 build index [#49159](https://github.com/apache/doris/pull/49159) -- 修复 named_struct 函数 decimal 类型精度正确性 [#48964](https://github.com/apache/doris/pull/48964) - -### 查询优化器 - -- 修复常量折叠中的一些问题 [#49413](https://github.com/apache/doris/pull/49413) [#50425](https://github.com/apache/doris/pull/50425) [#49686](https://github.com/apache/doris/pull/49686) [#49575](https://github.com/apache/doris/pull/49575) [#50142](https://github.com/apache/doris/pull/50142) -- 公共表达式提取在 lambda 表达式上可能工作异常 [#49166](https://github.com/apache/doris/pull/49166) -- 修复消除 group by key 中的常量可能不能正常工作的问题 [#49589](https://github.com/apache/doris/pull/49589) -- 修复在极端场景下,由于统计信息的推导错误,规划无法正常执行的问题 [#49415](https://github.com/apache/doris/pull/49415) -- 修复部分依赖 BE 中元数据的 information_schema 表,不能获取完整数据的问题 [#50721](https://github.com/apache/doris/pull/50721) - -### 查询执行引擎 - -- 修复了找不到 explode_json_array_json_outer 函数的问题。[#50164](https://github.com/apache/doris/pull/50164) -- 修复了 substring_index 不支持动态参数的问题。[#50149](https://github.com/apache/doris/pull/50149) -- 修复了很多 st_contains 函数计算结果不对的问题。[#50115](https://github.com/apache/doris/pull/50115) -- 修复了 array_range 函数可能导致的 core 的问题。[#49993](https://github.com/apache/doris/pull/49993) -- 修复了 date_diff 函数计算结果错误的问题。[#49429](https://github.com/apache/doris/pull/49429) -- 修复了一系列字符串函数在非 ASCII 编码下的乱码或者结果错误的问题。[#49231](https://github.com/apache/doris/pull/49231) [#49846](https://github.com/apache/doris/pull/49846) [#49127](https://github.com/apache/doris/pull/49127) [#40710](https://github.com/apache/doris/pull/40710) - -### 存储管理 - -- 修复某些情况下,动态分区表(Dynamic Partition Table)回放元数据失败的问题[#49569](https://github.com/apache/doris/pull/49569) -- 修复 ARM 下 streamload 可能因为操作序列丢数据的问题 [#48948](https://github.com/apache/doris/pull/48948) -- 修复 full compaction 报错以及可能导致 mow 数据重复的问题 [#49825](https://github.com/apache/doris/pull/49825) [#48958](https://github.com/apache/doris/pull/48958) -- 修复没有持久化分区 Storage Policy 的问题。 [#49721](https://github.com/apache/doris/pull/49721) -- 修复导入之后文件极小概率不存在的问题。[ #50343](https://github.com/apache/doris/pull/50343) -- 修复 CCR 和磁盘均衡并发可能导致的文件找不见问题。[#50663 ](https://github.com/apache/doris/pull/50663) -- 修复备份恢复大快照时可能出现的 connection reset 问题。[#49649](https://github.com/apache/doris/pull/49649) -- 修复 FE Follower 丢失本地备份快照的问题。[#49550](https://github.com/apache/doris/pull/49550) - -### Others - -- 修复某些场景下,审计日志可能丢失的问题 [#50357](https://github.com/apache/doris/pull/50357) -- 修复审计日志中 isQuery 标记可能不正确的问题 [#49959](https://github.com/apache/doris/pull/49959) -- 修复审计日志中部分查询 sqlHash 不正确的问题 [#49984](https://github.com/apache/doris/pull/49984) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.11.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.11.md deleted file mode 100644 index cef144fb064cd..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.11.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -{ - "title": "Release 2.1.11", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 8 月 15 日我们引来了 Apache Doris 2.1.11 版本的正式发布,欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 8 月 15 日我们引来了 Apache Doris 2.1.11 版本的正式发布,欢迎大家下载使用。 - - -## 行为变更 - -- time_series_max_tablet_version_num 控制时序 compaction 策略表的最大版本数目。[#51371](https://github.com/apache/doris/pull/51371) -- 修复冷热分层时 hdfs root_path 没有生效的问题。[#48441](https://github.com/apache/doris/pull/48441) -- 在 新优化器(Nereids)中,当查询时的表达式的深度或宽度超过阈值限制时,无论是否开始查询回退到老优化器,都不会回退。[#52431](https://github.com/apache/doris/pull/52431) -- 统一了开始 unicode 名字与否的名字检查规则,现在非 unicode 名字规则是 unicode 名字规则的严格子集。[#53264](https://github.com/apache/doris/pull/53264) - -## 新功能 - -### 查询执行引擎 - -- 引入系统表 routine_load_job 查看routine load job 信息。[#48963](https://github.com/apache/doris/pull/48963) - -### 查询优化器 - -- 支持了 MySQL 的 GROUP BY 上卷语法 GROUP BY ... WITH ROLLUP。[#51978](https://github.com/apache/doris/pull/51978) - -## 改进提升 - -### 查询优化器 - -- 优化了在聚合模型表和主键模型 mor 表上收集统计信息的性能。[#51675](https://github.com/apache/doris/pull/51675) - -### 异步物化视图 - -- 优化了透明改写的规划性能 [#51309](https://github.com/apache/doris/pull/51309) -- 优化了刷新的性能 [#51493](https://github.com/apache/doris/pull/51493) - -## Bug 修复 - -### 导入 - -- 修复 routineload alter 属性之后 show 展示结果不符合预期的问题 [#53038](https://github.com/apache/doris/pull/53038) - -### 湖仓一体 - -- 修复某些情况读取 iceberg equality delete 数据错误的问题 [#51253](https://github.com/apache/doris/pull/51253) -- 修复iceberg hadoop catalog 在 kerberos 环境下报错的问题 [#50623](https://github.com/apache/doris/pull/50623) [#52149](https://github.com/apache/doris/pull/52149) -- 修复 Kerberos 环境下 Iceberg 表写入事务提交失败的问题 [#51508](https://github.com/apache/doris/pull/51508) -- 修复 Iceberg 表写入事务提交错误的问题 [#52716](https://github.com/apache/doris/pull/52716) -- 修复某些情况下访问 kerberos 环境的 Hudi 表数据报错的问题 [#51713 ](https://github.com/apache/doris/pull/51713) -- SQL Server Catalog 支持识别 IDENTITY 列信息 [#51285](https://github.com/apache/doris/pull/51285) -- 修复某些情况下 Jdbc Catalog 表无法获取行数信息的问题 [#50901](https://github.com/apache/doris/pull/50901) -- 优化 orc zlib 在 x86 环境下的解压性能并修复潜在问题 [#51775](https://github.com/apache/doris/pull/51775) -- 在 Profile 中增加 Parquet/ORC 条件过滤和延迟物化相关的指标 [#51248](https://github.com/apache/doris/pull/51248) -- 优化 ORC Footer 的读取性能 [#51117](https://github.com/apache/doris/pull/51117) -- 修复 Table Valued Function 无法读压缩格式的 json 文件的问题 [#51983](https://github.com/apache/doris/pull/51983) -- 修复某些情况下并发刷新 Catalog 导致元数据不一致的问题 [#51787](https://github.com/apache/doris/pull/51787) - -### 索引 - -- 修复了倒排索引在处理包含 CAST 操作的 IN 谓词时出现的查询错误,避免返回错误的查询结果。[#50860](https://github.com/apache/doris/pull/50860) -- 修复了倒排索引在执行异常情况下的内存泄漏问题。[#52747](https://github.com/apache/doris/pull/52747) - -### 半结构化数据类型 - -- 修复了一些json 函数在null 值情况下结果错误的问题。 -- 修复了一些json 函数相关的bug。[#52543](https://github.com/apache/doris/pull/52543) [#51516](https://github.com/apache/doris/pull/51516) - -### 查询优化器 - -- 修复解析字符串为日期失败时,查询无法继续执行的问题 [#50900](https://github.com/apache/doris/pull/50900) -- 修复了个别场景下常量折叠结果错误的问题 [#51738](https://github.com/apache/doris/pull/51738) -- 修复个别数组函数在遇到 null literal 作为输入时,无法正常规划的问题 [#50899](https://github.com/apache/doris/pull/50899) -- 修复在极端场景下,开启 local shuffle 可能导致结果错误的问题 [#51313](https://github.com/apache/doris/pull/51313) [#52871 ](https://github.com/apache/doris/pull/52871) -- 修复了 replace view 可能导致 desc view 时看不到列信息的问题 [#52043](https://github.com/apache/doris/pull/52043) -- 修复了 prepare command 在非 master FE 节点上有可能无法正确执行的问题 [#52265](https://github.com/apache/doris/pull/52265) - -### 异步物化视图 - -- 修复当基表列的类型变更,可能导致透明改写后查询失败的问题 [#50730](https://github.com/apache/doris/pull/50730) -- 修复了个别场景下,透明改写分区补偿错误的问题 [#51899](https://github.com/apache/doris/pull/51899) [#52218](https://github.com/apache/doris/pull/52218) - -### 查询执行引擎 - -- 修复TopN计算时如果遇到variant 列类型,可能会core的问题。[#52573](https://github.com/apache/doris/pull/52573) -- 修复函数bitmap_from_base64在输入错误数据时会Core的问题。[#53018](https://github.com/apache/doris/pull/53018) -- 修复了bitmap_union 函数在超大数据量时,一些结果错误的问题。[#52033](https://github.com/apache/doris/pull/52033) -- 修复了multi_distinct_group_concat在窗口函数中使用时计算错误的问题。[#51875](https://github.com/apache/doris/pull/51875) -- 修复了array_map 函数,在极端值时可能core的问题。[#51618](https://github.com/apache/doris/pull/51618) [#50913](https://github.com/apache/doris/pull/50913) -- 修复了错误的时区处理的问题。[#51454](https://github.com/apache/doris/pull/51454) - -### Others - -- 修复多语句在主 FE 和非主 FE 行为不一致的问题。[#52632](https://github.com/apache/doris/pull/52632) -- 修复 prepared statment 在非主 FE 报错的问题。[#48689](https://github.com/apache/doris/pull/48689) -- 修复 roolup 操作时可能导致 CCR 中断的问题。[#50830](https://github.com/apache/doris/pull/50830) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.2.md deleted file mode 100644 index cea7345943545..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.2.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -{ - "title": "Release 2.1.2", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.2 版本已于 2024 年 4 月 12 日正式发布。该版本提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.2 版本已于 2024 年 4 月 12 日正式发布**。该版本提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 1 行为变更 - -1. 将 EXPORT 命令中 `data_consistence` 属性的默认值调整为 Partition,这可以使得并发导入的同时做 EXPORT 操作更容易成功。 - -- https://github.com/apache/doris/pull/32830 - -2. 兼容部分 MySQL Connector(如 MySQL.Data for .NET)将 SELECT `@``@autocommit` 的返回值类型变更为 BIGINT。 - -- https://github.com/apache/doris/pull/33282 - -3. Auto Partition 语法变化,详见[文档](../../table-design/data-partitioning/auto-partitioning.md) - -- https://github.com/apache/doris/pull/32737 - -4. Auto Partition 禁止和 Dynamic Partition 同时作用在一张表上 - -- https://github.com/apache/doris/pull/33736 - -## 2 升级问题 - -1. 修复正常 Workload Group 从 2.0 或者更早版本升级到 2.1 时没有默认创建的问题。 - -- https://github.com/apache/doris/pull/33197 - -## 3 新功能 - -1. 增加 processlist 系统表功能,用户可以通过查询系统表获得活跃的链接信息。 - -- https://github.com/apache/doris/pull/32511 - -2. 增加新的表函数 `LOCAL` 以访问部分共享存储上的文件。 - -- https://github.com/apache/doris-website/pull/494 - -## 4 改进与优化 - -1. 跳过部分不必要检查,加速在 K8s 环境下优雅退出的速度。 - -- https://github.com/apache/doris/pull/33212 - -2. 在 Profile 中增加已命中的物化视图信息,能够方便地定位物化视图是否命中。 - -- https://github.com/apache/doris/pull/33137 - -3. 针对 DB2 Catalog,增加测试链接是否通畅的功能,能够在建立 Catalog 时做部分链接检查。 - -- https://github.com/apache/doris/pull/33335 - -4. 增加 DNS Cache,解决 K8s 环境下域名解析较慢,从而影响查询的问题。 - -- https://github.com/apache/doris/pull/32869 - -5. 增加异步刷新 Catalog 中表的行数信息,避免查询抖动。 - -- https://github.com/apache/doris/pull/32997 - -## 5 Bug 修复 - -1. 修复 Iceberg Catalog 中,不支持 Iceberg 自定义属性的问题,例如 "io.manifest.cache-enabled"。 - -- https://github.com/apache/doris/pull/33113 - -2. `LEAD`/`LAG` 函数的 Offset 起始位置可以设置为 0。 - -- https://github.com/apache/doris/pull/33174 - -3. 修复部分导入过程中可能出现的 Timeout 的问题。 - -- https://github.com/apache/doris/pull/33077 - -- https://github.com/apache/doris/pull/33260 - -4. 修复部分 `ARRAY` / `MAP` / `STRUCT` 类型在 Compaction 中引起 Core 的问题。 - -- https://github.com/apache/doris/pull/33130 https://github.com/apache/doris/pull/33295 - -5. 修复查询过程中 Runtime Filter 部分等待超时的问题。 - -- https://github.com/apache/doris/pull/33369 - -6. 修复 `unix_timestamp` 函数在 Auto Partition 中可能导致 Core 的问题。 - -- https://github.com/apache/doris/pull/32871 - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.3.md deleted file mode 100644 index 00293b410269a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.3.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -{ - "title": "Release 2.1.3", - "language": "zh-CN", - "description": "Apache Doris 2.1.3 版本已于 2024 年 5 月 21 日正式发布。该版本更新带来了若干改进项,包括支持向 Hive 回写数据、物化视图、新函数等功能,同时改善权限管理并修复若干问题,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -**Apache Doris 2.1.3 版本已于 2024 年 5 月 21 日正式发布**。该版本更新带来了若干改进项,包括支持向 Hive 回写数据、物化视图、新函数等功能,同时改善权限管理并修复若干问题,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - - -## 功能特性 - -**1. 支持通过 Hive Catalog 向 Hive 表中回写数据** - -从 2.1.3 版本开始,Apache Doris 支持对 Hive 的 DDL 和 DML 操作。用户可以直接通过 Apache Doris 在 Hive 中创建库表,通过执行`INSERT INTO`语句来向 Hive 表中写入数据。通过该功能,用户可以通过 Apache Doris 对 Hive 进行完整的数据查询和写入操作,进一步帮助用户简化湖仓一体架构。 - -参考[文档](../../lakehouse/catalogs/hive-catalog) - - -**2. 支持在异步物化视图之上构建新的异步物化视图** - - -用户可以在异步物化视图之上来创建新的异步物化视图,直接复用计算好的中间结果进行数据加工处理,简化复杂的聚合和计算操作带来的资源消耗和维护成本,进一步加速查询性能、提升数据可用性。 - -**3. 支持通过物化视图嵌套物化视图进行重写** - -物化视图(Materialized View,MV)是用于存储查询结果的数据库对象。现在,Apache Doris 支持通过 MV 嵌套物化视图进行重写,这有助于优化查询性能。 - - -**4. 新增 SHOW VIEWS 语句** - -可以使用`SHOW VIEWS`语句来查询数据库中的视图,有助于更好地管理和理解数据库中的视图对象。 - -**5. Workload Group 支持绑定到特定的 BE 节点** - -Workload Group 可以绑定到特定的 BE 节点,实现查询执行的更精细化控制,以优化资源使用和提高性能。 - -**6. Broker Load 支持压缩的 JSON 格式** - -Broker Load 支持导入压缩的 JSON 格式数据,可以显著减少数据传输的带宽需求、加速数据导入性能。 - -**7. TRUNCATE 函数可以使用列作为 scale 参数** - -TRUNCATE 函数现在可以接受列作为 scale 参数,这使得在处理数值数据时可以更加灵活。 - -**8. 添加新的函数 `uuid_to_int` 和 `int_to_uuid`** - -这两个函数允许用户在 UUID 和整数之间进行转换,对于需要处理 UUID 数据的场景有明显帮助。 - -**9. 添加 `bypass_workload_group` Session Variable 以绕过查询队列** - -会话变量 `bypass_workload_group` 允许某些查询绕过 Workload Group 队列直接执行,这可以用于处理需要快速响应的关键查询。 - -**10. 添加 strcmp 函数** - -strcmp 函数用于比较两个字符串并返回它们的比较结果,帮助文本数据的处理更加简易。 - -**11. 支持 HLL 函数 `hll_from_base64` 和 `hll_to_base64`** - -HLL(HyperLogLog)是一种用于基数估计的算法,以上两个函数允许用户将 HLL 数据从 Base64 编码的字符串中解码,或将 HLL 数据编码为 Base64 字符串,这对于存储和传输 HLL 数据非常有用。 - -## 优化改进 - -**1. 替换 SipHash 为 XXHash 以改善 Shuffle 性能** - -SipHash 和 XXHash 都是哈希函数,但 XXHash 在某些场景下可能提供更快的哈希速度和更好的性能,此优化旨在通过采用 XXHash 来提高数据 Shuffle 过程中的性能。 - -**2. 异步物化视图支持 OLAP 表分区列为可以为 NULL:** - -允许异步物化视图支持 OLAP 表的分区列可以为 NULL,从而增强了数据处理的灵活性。 - -**3. 收集列统计信息时限制最大字符串长度为 1024 以控制 BE 内存使用** - -在收集列统计信息时,限制字符串的长度可以防止过大的数据消耗过多的 BE 内存,有助于保持系统的稳定性和性能。 - -**4. 支持动态删除 Bitmap Cache 以提高性能** - -通过支持动态删除不再需要的 Bitmap Cache,可以释放内存并改善系统性能。 - -**5. 在 ALTER 操作中减少内存使用** - -减少 ALTER 操作中的内存使用,以提高系统资源的利用效率。 - -**6. 支持复杂类型的常量折叠** - -支持 Array/Map/Struct 复杂类型的常量折叠; - -**7. 在 Aggregate Key 聚合模型中增加对 Variant 类型的支持** - -Variant 数据类型能够存储多种数据类型,在此优化中允许对 Variant 类型的数据进行聚合操作,从而增强了半结构化数据分析的灵活性。 - -**8. 在 CCR 中支持新的倒排索引格式** - -**9. 优化嵌套物化视图的重写性能** - -**10. 支持 decimal256 类型的行存格式** - -在行存格式中支持 decimal 256 类型,以以扩展系统对高精度数值数据的处理能力。 - -## 行为变更 - -**1. 授权(Authorization)** - -- **Grant_priv 权限更改**:`Grant_priv`不能再被任意授予。执行 `GRANT` 操作时,用户不仅需要具有`Grant_priv`,还需要具有要授予的权限。例如,如果想要授予对`table1`的 `SELECT` 权限,那么该用户不仅需要具有 `GRANT` 权限,还需要具有对`table1`的 `SELECT` 权限,这增加了权限管理的安全性和一致性。 - -- **Workload Group 和 Resource 的 Usage_priv**:`Usage_priv` 对 Workload Group 和 Resource 的权限不再是全局级别的,而是仅限于 Resource 和 Workload Group 内,权限的授予和使用将更加具体。 - -- **操作的授权**:之前未被授权的操作现在都有了相应的授权,以实现更加细致和全面地操作权限控制。 - -**2. LOG 目录配置** - -FE 和 BE 的日志目录配置现在统一使用`LOG_DIR`环境变量,所有其他不同类型的日志都将以`LOG_DIR`作为根目录进行存储。同时为了保持版本间的兼容性,以前的配置项`sys_log_dir`仍然可以使用。 - -**3. S3 表函数(TVF)** - -由于之前的解析方式在某些情况下可能无法正确识别或处理 S3 的 URL,因此将对象存储路径的解析逻辑进行重构。对于 S3 表函数中的文件路径,需要传递`force_parsing_by_standard_uri`参数来确保被正确解析。 - -## 升级问题 - -由于许多用户将某些关键字用作列名或属性值,因此将如下关键字设置为非保留关键字,允许用户将其用作标识符使用。 - -## 问题修复 - -**1. 修复在腾讯云 COSN 上读取 Hive 表时的无数据错误** - -解决了在腾讯云 COSN 存储上读取 Hive 表时可能遇到的无数据错误,增强了与腾讯云存储服务的兼容性。 - -**2. 修复 milliseconds_diff 函数返回错误结果** - -修复`milliseconds_diff`函数在某些情况下返回错误结果的问题,确保了时间差计算的准确性。 - -**3. 用户定义变量应转发到 Master 节点** - -确保用户定义的变量能够正确地传递到 Master 节点,以便在整个系统中保持一致性和正确的执行逻辑。 - -**4. 修复添加复杂类型列时遇到的 Schema Change 问题** - -在添加复杂类型列时,可能会遇到 Schema Change 问题,此修复确保了 Schema Change 的正确性。 - -5. **修复 FE master 节点更改时 Routine Load 的数据丢失问题** - -`Routine Load`常用于订阅 Kafka 消息队列中的数据,此修复解决了在 FE Master 节点更改时可能导致的数据丢失问题。 - -**6. 修复当找不到 Workload Group 时 Routine Load 失败的问题** - -修复了当`Routine Load`找不到指定 Workload Group 时导致的失败问题。 - -**7. 支持 column string64,以避免在 string size 溢出 unit32 时 Join 失败的问题** - -在某些情况下,字符串的大小可能会超过 unit32 的限制,支持`string64`类型可以确保字符串 JOIN 操作的正确执行。 - -**8. 允许 Hadoop 用户创建 Paimon Catalog** - -允许具有权限的对应 Hadoop 用户来创建 Paimon Catalog。 - -**9. 修复 function_ipxx_cidr 函数与常量参数的问题** - -修复了`function_ipxx_cidr`函数在处理常量参数时可能出现的问题,保证函数执行的正确性。 - -**10. 修复使用 HDFS 进行还原时的文件下载错误** - -解决了在使用 HDFS 进行数据还原时遇到的“failed to download”错误,确保了数据恢复的正确性和可靠性。 - -**11. 修复隐藏列相关的列权限问题** - -在某些情况下,隐藏列的权限设置可能不正确,此修复确保了列权限设置的正确性和安全性。 - -**12. 修复在 K8s 部署中 Arrow Flight 无法获取正确 IP 的问题** - -此修复解决了在 Kubernetes 部署环境中 Arrow Flight 无法正确获取 IP 地址的问题。 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.4.md deleted file mode 100644 index d9320ba302831..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.4.md +++ /dev/null @@ -1,272 +0,0 @@ ---- -{ - "title": "Release 2.1.4", - "language": "zh-CN", - "description": "Apache Doris 2.1.4 版本已于 2024 年 6 月 26 日正式发布。 在 2.1.4 版本中,我们对数据湖分析场景进行了多项功能体验优化,重点修复了旧版本中异常内存占用的问题,同时提交了若干改进项以及问题修复,进一步提升了系统的性能、稳定性及易用性,欢迎大家下载使用。" -} ---- - -**Apache Doris 2.1.4 版本已于 2024 年 6 月 26 日正式发布。** 在 2.1.4 版本中,我们对数据湖分析场景进行了多项功能体验优化,重点修复了旧版本中异常内存占用的问题,同时提交了若干改进项以及问题修复,进一步提升了系统的性能、稳定性及易用性,欢迎大家下载使用。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 行为变更 - -- **通过 Catalog 查询外部表(如 Hive 数据表)时,系统将忽略不存在的文件:** 当从元数据缓存中获取文件列表时,由于缓存更新并非实时,因此可能存在实际的文件列表已删除、而元数据缓存中仍存在该文件的情况。为了避免由于尝试访问不存在的文件而导致的查询错误,系统会忽略这些不存在的文件。 [#35319](https://github.com/apache/doris/pull/35319) - -- 默认情况下,创建 Bitmap Index 不再默认变更为 Inverted Index。该行为由 FE 配置项 `enable_create_bitmap_index_as_inverted_index` 控制,默认为 FALSE。[#35521](https://github.com/apache/doris/pull/35521) - -- 当使用 `--console` 启动 FE、BE 进程时,所有日志将输出到标准输出,并通过前缀区分不同类型的日志。[#35679](https://github.com/apache/doris/pull/35679) - - 关于更多信息,请参考文档: - - - [BE 日志管理](../../admin-manual/log-management/be-log.md) - - - [FE 日志管理](../../admin-manual/log-management/fe-log.md) - -- 如果建表时没有填写表注释,默认注释为空,不再使用表类型作为默认表注释。 [#36025](https://github.com/apache/doris/pull/36025) - -- DECIMALV3 的默认精度从 (9, 0) 调整为 (38,9) ,以和最初发布此功能的版本保持兼容。 [#36316](https://github.com/apache/doris/pull/36316) - -## 新增功能 - -### 查询优化器 - -- **支持 FE 火焰图工具**:在 FE 部署目录 `${DORIS_FE_HOME}/bin` 中会增加`profile_fe.sh` 脚本,可以利用 async-profiler 工具生成 FE 的火焰图,用以发现性能瓶颈点。 - - 关于更多信息,请参考文档:[使用 FE Profiler 生成火焰图](https://doris.apache.org/zh-CN/community/developer-guide/fe-profiler) - -- **支持 SELECT DISTINCT 与聚合函数同时使用**:支持 `SELECT DISTINCT` 与聚合函数同时使用,在一个查询中同时去重和进行聚合操作,如 SUM、MIN/MAX 等。 - -- **支持无 GROUP BY 的单表查询重写**:无 `GROUP BY` 的单表查询重写功能允许数据库优化器在不需要分组的情况下,根据查询的复杂性和数据表的结构,自动选择最佳的执行计划来执行查询,这可以提高查询的性能,减少不必要的资源消耗,并简化查询逻辑。 [#35242](https://github.com/apache/doris/pull/35242). - -- **查询优化器全面支持高并发点查询功能**:在 2.1.4 版本之后,查询优化器全面支持高并发点查询功能,所有符合点查询条件的 SQL 语句会自动走短路径查询,无需用户在客户端额外设置 `set experimental_enable_nereids_planner = false`。 [#36205](https://github.com/apache/doris/pull/36205). - -### 湖仓一体 - -- **支持 Paimon 的原生读取器来处理 Deletion Vector:** Deletion Vector 主要用于标记或追踪哪些数据已被删除或标记为删除,通常应用在需要保留历史数据的场景,基于本优化可以提升大量数据更新或删除时的处理效率。 [#35241](https://github.com/apache/doris/pull/35241) - - 关于更多信息,请参考文档:[数据湖分析 - Paimon](../../lakehouse/catalogs/paimon-catalog) - -- **支持在表值函数(TVF)中使用 Resource**:TVF 功能为 Apache Doris 提供了直接将对象存储或 HDFS 上的文件作为 Table 进行查询分析的能力。通过在 TVF 中引用 Resource,可以避免重复填写连接信息,提升使用体验。 [#35139](https://github.com/apache/doris/pull/35139) - - 关于更多信息,请参考文档:[表函数 - HDFS](../../lakehouse/file-analysis.md) - -- **支持通过 Ranger 插件实现数据脱敏**:开启 Ranger 鉴权功能后,支持使用 Ranger 中的 Data Mask 功能进行数据脱敏。 - - 关于更多信息,请参考文档:[基于 Apache Ranger 的鉴权管理](../../admin-manual/auth/ranger#资源和权限) - -### 异步物化视图 - -- 构建支持内表触发式更新,如果物化视图使用的是内表,如果内表数据发生变化,可以触发物化视图刷新,需要在创建物化视图时指定 REFRESH ON COMMIT。 - -- 支持单表透明改写。 - - 关于更多信息,请参考文档:[查询异步物化视图](../../query-acceleration/materialized-view/async-materialized-view/functions-and-demands.md) - -- 透明改写支持 agg_state, agg_union 类型的聚合上卷,物化视图可以定义为 agg_state 或者 agg_union,查询使用具体的聚合函数,或者使用 agg_merge - - 关于更多信息,请参考文档:[AGG_STATE](../../sql-manual/basic-element/sql-data-types/aggregate/AGG-STATE) - -### 其他 - -- **新增 `replace_empty` 函数**:将字符串中的子字符串进行替换,当旧字符串为空时,会将新字符串插入到原有字符串的每个字符前以及最后。 - - 关于更多信息,请参考文档:[字符串函数 - REPLACE_EMPTY](../../sql-manual/sql-functions/scalar-functions/string-functions/replace-empty) - -- 支持 `show storage policy using` 语句:支持查看所有或指定存储策略关联的表和分区。 - - 关于更多信息,请参考文档:[SQL 语句 - SHOW](../../sql-manual/sql-statements/cluster-management/storage-management/SHOW-STORAGE-POLICY-USING) - -- **支持 BE 侧的 JVM 指标:** 通过在 `be.conf` 配置文件中设置`enable_jvm_monitor=true`,可以启用对 BE 节点 JVM 的监控和指标收集,有助于了解 BE JVM 的资源使用情况,以便进行故障排除和性能优化。 - -## 改进优化 - -- 支持为中文列名创建倒排索引。[#36321](https://github.com/apache/doris/pull/36321) - -- 优化 Segment Cache 所消耗内存的估算准确度,以便能够更快地释放未使用的内存。[#35751](https://github.com/apache/doris/pull/35751) - -- 在使用 Export 功能导出数据时,提前过滤空分区以提升导出效率。[#35542](https://github.com/apache/doris/pull/35542) - -- 优化 Routine Load 任务分配算法以平衡 BE 节点之间的负载压力。[#34778](https://github.com/apache/doris/pull/34778) - -- 在设置错误的会话变量名时,自动识别近似变量值并给出更详细的错误提示。[#35775](https://github.com/apache/doris/pull/35775) - -- 支持将 Java UDF Jar 文件放到 FE 的 `custom_lib` 目录中并默认加载。[#35984](https://github.com/apache/doris/pull/35984) - -- 为审计日志导入作业添加超时的全局变量`audit_plugin_load_timeout` ,以控制在加载审计插件或处理审计日志时允许的最大执行时间。 - -- 优化了异步物化视图透明改写规划的性能。 - -- 当 `INSERT` 源数据为空时,BE 将不会执行任何操作。[#34418](https://github.com/apache/doris/pull/34418) - -- 支持分批获取 Hudi 和 Hive 文件列表,当存在大量数据文件时可以提升数据扫描性能。 [#35107](https://github.com/apache/doris/pull/35107) - - - 120 万文件场景中,获取文件列表的时间由 390 秒缩减到 46 秒。 - -- 创建异步物化视图时,禁止使用动态分区。 - -- 支持检测 Hive 外表分区数据是否和异步物化视图同步。 - -- 允许异步物化视图创建索引。 - -## 缺陷修复 - -### 查询优化器 - -- 修复 SQL Cache 在 `truncate paritition` 后依然返回旧结果的问题。[#34698](https://github.com/apache/doris/pull/34698) - -- 修复从 JSON Cast 到其他类型 Nullable 属性不对的问题。[#34707](https://github.com/apache/doris/pull/34707) - -- 修复偶现的 DATETIMEV2 Literal 化简错误。 [#35153](https://github.com/apache/doris/pull/35153) - -- 修复窗口函数中不能使用 `COUNT(*)` 的问题。[#35220](https://github.com/apache/doris/pull/35220) - -- 修复 `UNION ALL` 下全部是无 `FROM 的 `SELECT` 时,Nullable 属性可能错误的问题。 -[#35074](https://github.com/apache/doris/pull/35074) - -- 修复 `bitmap in join` 和子查询解嵌套无法同时使用的问题。[#35435](https://github.com/apache/doris/pull/35435) - -- 修复在特定情况下过滤条件不能下推到 CTE Producer 导致的性能问题。[#35463](https://github.com/apache/doris/pull/35463) - -- 修复聚合 Combinator 为大写时,无法找到函数的问题。[#35540](https://github.com/apache/doris/pull/35540) - -- 修复窗口函数没有被列裁剪正确裁剪导致的性能问题。[#35504](https://github.com/apache/doris/pull/35504) - -- 修复多个同名不同库的表同时出现在查询中时,可能解析错误导致结果错误的问题。[#35571](https://github.com/apache/doris/pull/35571) - -- 修复对于 Schema 表扫描时,由于生成了 Runtime Filter 导致查询报错的问题。[#35655](https://github.com/apache/doris/pull/35655) - -- 修复关联子查询解嵌套,关联条件被折叠为 Null Literal 导致无法执行的问题。[#35811](https://github.com/apache/doris/pull/35811) - -- 修复规划时,偶现的 Decimal Literal 被错误设置精度的问题。 [#36055](https://github.com/apache/doris/pull/36055) - - -- 修复偶现的多层聚合被合并后规划错误的问题。[#36145](https://github.com/apache/doris/pull/36145) - -- 修复偶现的聚合扩展规划报错输入输出不匹配的问题。[#36207](https://github.com/apache/doris/pull/36207) - -- 修复偶现的 `<=>` 被错误转换为 `=` 的问题。[#36521](https://github.com/apache/doris/pull/36521) - -### 查询执行 - -- 修复 Pipeline 引擎上达到限定的行数且内存没有释放时查询被挂起的问题。 [#35746](https://github.com/apache/doris/pull/35746) - -- 修复当设置 `enable_decimal256 =true` 且查询优化器回退到旧版本时 BE 发生 Core 的问题。[#35731](https://github.com/apache/doris/pull/35731) - -### 物化视图 - -- 修复构建异步物化视图指定 store_row_column 属性,be core 的问题。 - -- 修复构建异步物化视图指定 storage_medium 不生效的问题。 - -- 修复基表删除后,异步物化视图 show partitions 报错的问题。 - -- 修复异步物化视图引起备份恢复异常的问题。 - -- 修复分区改写可能导致错误结果的问题。 - -### 半结构化数据分析 - -- 修复带有空 Key 的 VARIANT 类型发生 Core 的问题。[#35671](https://github.com/apache/doris/pull/35671) - -- Bitmap 索引和 BloomFilter 索引不应支持轻量级索引变更。[#35225](https://github.com/apache/doris/pull/35225) - -### 主键模型 - -- 修复在有部分列更新导入的情况下发生异常重启,可能会产生重复 Key 的问题。[#35678](https://github.com/apache/doris/pull/35678) - -- 修复在内存紧张时发生 Clone 时 BE 可能会发生 Core 的问题。[#34702](https://github.com/apache/doris/pull/34702) - -### 湖仓一体 - -- 修复创建 Hive 表时无法使用完全限定名(如 `ctl.db.tbl`)的问题。 [#34984](https://github.com/apache/doris/pull/34984) - -- 修复 Refresh 操作时 Hive Metastore 连接未关闭的问题。[#35426](https://github.com/apache/doris/pull/35426) - -- 修复从 2.0.x 升级到 2.1.x 时可能的元数据回放问题。 [#35532](https://github.com/apache/doris/pull/35532) - -- 修复 TVF 表函数无法读取空 Snappy 压缩文件的问题。[#34926](https://github.com/apache/doris/pull/34926) - -- 修复无法读取具有无效最小/最大列统计信息的 Parquet 文件的问题。[#35041](https://github.com/apache/doris/pull/35041) - -- 修复 Parquet/ORC Reader 中无法处理带有 null-aware 函数下推谓词的问题。[#35335](https://github.com/apache/doris/pull/35335) - -- 修复创建 Hive 表时分区列顺序的问题。 [#35347](https://github.com/apache/doris/pull/35347) - -- 修复当分区值包含空格时无法将 Hive 表写入 S3 的问题。 [#35645](https://github.com/apache/doris/pull/35645) - -- 修复 Doris 写入 Parquet 格式 Hive 表无法被 Hive 读取的问题。 [#34981](https://github.com/apache/doris/pull/34981) - -- 修复 Hive 表 Schema 变更后无法读取 ORC 文件的问题。[#35583](https://github.com/apache/doris/pull/35583) - -- 修复了部分情况下,启用 Hive Metastore Listener 后 FE 无法启动的问题。[#36533](https://github.com/apache/doris/pull/36533) - -- 修复由 Hadoop FS 缓存引起的 FE OOM 问题。[#36403](https://github.com/apache/doris/pull/36403) - -- 修复写出 Parquet 格式文件写出 Row Group 过小的问题。[#36042](https://github.com/apache/doris/pull/36042) [#36143](https://github.com/apache/doris/pull/36143) - -- 修复 Paimon 表 Schema 变更后无法通过 JNI 读取 Paimon 表的问题。[#35309](https://github.com/apache/doris/pull/35309) - -- 修复 Paimon 表 Schema 变更后由于表字段长度判断错误导致无法读取的问题。 [#36049](https://github.com/apache/doris/pull/36049) - -- 修复了读取 Iceberg 中的时间戳列类型时的时区问题。 [#36435](https://github.com/apache/doris/pull/36435) - -- 修复了 Iceberg 表上的日期时间转换错误和数据路径错误的问题。[#35708](https://github.com/apache/doris/pull/35708) - -- 修复阿里云 OSS Endpoint 不正确的问题。[#34907](https://github.com/apache/doris/pull/34907) - -- 修复了大量文件导致的查询性能下降问题。[#36431](https://github.com/apache/doris/pull/36431) - -- 允许用户定义的属性通过表函数传递给 S3 SDK。[#35515](https://github.com/apache/doris/pull/35515) - -### 数据导入 - -- 修复 `CANCEL LOAD` 命令不生效的问题。[#35352](https://github.com/apache/doris/pull/35352) - -- 修复导入事务 Publish 阶段空指针错误导致导入事务无法完成的问题。[#35977](https://github.com/apache/doris/pull/35977) - -- 修复 bRPC 通过 HTTP 发送大数据文件序列化的问题。 [#36169](https://github.com/apache/doris/pull/36169) - -### 数据管控 - -- 修复了在将 DDL 或 DML 转发到主 FE 后,ConnectionContext 中的资源标签未设置的问题。 [#35618](https://github.com/apache/doris/pull/35618) - -- 修复了在启用 `lower_case_table_names` 时,Restore 表名不正确的问题。 [#35508](https://github.com/apache/doris/pull/35508) - -- 修复了清理无用数据或文件的管理命令不生效的问题。 [#35271](https://github.com/apache/doris/pull/35271) - -- 修复了无法从分区中删除存储策略的问题。[#35874](https://github.com/apache/doris/pull/35874) - -- 修复了向多副本自动分区表导入数据时的数据丢失问题。[#36586](https://github.com/apache/doris/pull/36586) - -- 修复了使用旧优化器查询或插入自动分区表时,表的分区列发生变化的问题。 [#36514](https://github.com/apache/doris/pull/36514) - -### 内存管理 - -- 修复日志中频繁报错 Cgroup meminfo 获取失败的问题。 [#35425](https://github.com/apache/doris/pull/35425) - -- 修复使用 BloomFilter 时 Segment 缓存大小不受控制导致进程内存异常增长的问题。[#34871](https://github.com/apache/doris/pull/34871) - -### 权限 - -- 修复开启表名大小写不敏感后,权限设置无效的问题。[#36557](https://github.com/apache/doris/pull/36557) - -- 修复通过非 Master FE 节点设置 LDAP 密码不生效的问题。[#36598](https://github.com/apache/doris/pull/36598) - -- 修复了无法检查 `SELECT COUNT(*)` 语句授权的问题。[#35465](https://github.com/apache/doris/pull/35465) - -### 其他 - -- 修复 MySQL 连接损坏情况下,客户端 JDBC 程序无法关闭连接的问题。 [#36616](https://github.com/apache/doris/pull/36616) - -- 修改 `SHOW PROCEDURE STATUS` 语句返回值与 MySQL 协议不兼容的问题。[#35350](https://github.com/apache/doris/pull/35350) - -- `libevent` 库强制开启 Keepalive 以解决部分情况下连接泄露的问题。 [#36088](https://github.com/apache/doris/pull/36088) - - -## 致谢 - -@133tosakarin、@924060929、@airborne12、@amorynan、@AshinGau、@BePPPower、@BiteTheDDDDt、@ByteYue、@caiconghui、@CalvinKirs、@cambyzju、@catpineapple、@cjj2010、@csun5285、@DarvenDuan、@dataroaring、@deardeng、@Doris-Extras、@eldenmoon、@englefly、@feiniaofeiafei、@felixwluo、@freemandealer、@Gabriel39、@gavinchou、@GoGoWen、@HappenLee、@hello-stephen、@hubgeter、@hust-hhb、@jacktengg、@jackwener、@jeffreys-cat、@Jibing-Li、@kaijchen、@kaka11chen、@Lchangliang、@liaoxin01、@LiBinfeng-01、@lide-reed、@luennng、@luwei16、@mongo360、@morningman、@morrySnow、@mrhhsg、@Mryange、@mymeiyi、@nextdreamblue、@platoneko、@qidaye、@qzsee、@seawinde、@shuke987、@sollhui、@starocean999、@suxiaogang223、@TangSiyang2001、@Thearas、@Vallishp、@w41ter、@wangbo、@whutpencil、@wsjz、@wuwenchi、@xiaokang、@xiedeyantu、@XieJiann、@xinyiZzz、@XuPengfei-1020、@xy720、@xzj7019、@yiguolei、@yongjinhou、@yujun777、@Yukang-Lian、@Yulei-Yang、@zclllyybb、@zddr、@zfr9527、@zgxme、@zhangbutao、@zhangstar333、@zhannngchen、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.5.md deleted file mode 100644 index fe50a75a5d0a3..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.5.md +++ /dev/null @@ -1,395 +0,0 @@ ---- -{ - "title": "Release 2.1.5", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.5 版本已于 2024 年 7 月 24 日正式发布。2.1.5 版本在湖仓一体、多表物化视图、半结构化数据分析等方面进行了全面更新及改进,同时在倒排索引、查询优化器、查询引擎、存储管理等 10 余方向上完成了若干问题修复,欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.1.5 版本已于 2024 年 7 月 24 日正式发布。2.1.5 版本在湖仓一体、多表物化视图、半结构化数据分析等方面进行了全面更新及改进,同时在倒排索引、查询优化器、查询引擎、存储管理等 10 余方向上完成了若干问题修复,欢迎大家下载使用。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 行为变更 - -- JDBC Catalog 的默认连接池大小从 10 调整为 30。[#37023](https://github.com/apache/doris/pull/37023) - -- 创建 JDBC Catalog 时,参数 `connection_pool_max_size` 的默认值改为 30,以避免高并发场景下连接池耗尽的问题。 - -- 将系统的保留内存的最小值,即 `low water mark` 调整为 `min (6.4G, MemTotal * 5%)`,以更好地防止 BE 出现 OOM 问题。 - -- 修改了单请求多个语句的处理逻辑,当客户端未设置 `CLIENT_MULTI_STATEMENTS` 标志位时,将仅返回最后一个语句的结果,而非所有语句结果。 - -- 不再允许直接更改异步物化视图的数据。[#37129](https://github.com/apache/doris/pull/37129) - -- 增加会话变量 `use_max_length_of_varchar_in_ctas`,用于控制 CTAS 时 VARCHAR 和 CHAR 类型长度的生成行为。默认值是 true。当设置为 false 时,使用推导出的 VARCHAR 长度,而不是使用最大长度。[#37284](https://github.com/apache/doris/pull/37284) - -- 统计信息收集,默认开启了通过文件大小预估 Hive 表行数的功能。[#37694](https://github.com/apache/doris/pull/37694) - -- 默认开启异步物化视图透明改写机制。[#35897](https://github.com/apache/doris/pull/35897) - -- 透明改写利用分区物化视图,如果分物物化视图部分分区失效,默认行为是将所有基础表与物化视图联合,以保证查询数据的正确性。 [#35897](https://github.com/apache/doris/pull/35897) - -## 新功能 - -### 湖仓一体 - -- 会话变量 `read_csv_empty_line_as_null` 用于控制在读取 CSV 格式文件时,是否忽略空行。默认情况下忽略空行,当设置为 true 时,空行将被读取为所有列均为 Null 的行。[#37153](https://github.com/apache/doris/pull/37153) - - - 更多信息,请参考[文档](../../lakehouse/catalogs/hive-catalog)。 - -- 新增兼容 Presto 的复杂类型输出格式。通过设置 `set serde_dialect="presto"`,可以控制复杂类型的输出格式 与 Presto 一致,用于平滑迁移 Presto 业务。[#37253](https://github.com/apache/doris/pull/37253) - -​ - -### 多表物化视图 -- 支持在构建物化视图中使用非确定性函数。[#37651](https://github.com/apache/doris/pull/37651) - -- 支持原子替换异步物化视图定义。[#37147](https://github.com/apache/doris/pull/37147) - -- 支持通过 `show create materialized view` 查看异步物化视图创建语句。 [#37125](https://github.com/apache/doris/pull/37125) - -- 支持对多维聚合查询的透明改写。[#37436](https://github.com/apache/doris/pull/37436) - -- 支持对非聚合物化视图的聚合查询进行透明改写。 [#37497](https://github.com/apache/doris/pull/37497) - -- 支持使用 Key 列,对查询中的 DISTINCT 聚合做透明改写。[#37651](https://github.com/apache/doris/pull/37651) - -- 支持对物化视图进行分区,通过使用 `date_trunc` 对分区进行汇总。[#31812](https://github.com/apache/doris/pull/31812) [#35562](https://github.com/apache/doris/pull/35562) - -- 支持分区表值函数(TVF) [#36479](https://github.com/apache/doris/pull/36479) - -### 半结构化数据分析 - -- 使用 VARIANT 类型的表支持部分列更新。 [#34925](https://github.com/apache/doris/pull/34925) - -- 支持默认开启 PreparedStatement。 [#36581](https://github.com/apache/doris/pull/36581) - -- VARIANT 类型支持导出为 CSV 格式。[#37857](https://github.com/apache/doris/pull/37857) - -- 支持 `explode_json_object` 函数,用于将 JSON Object 行转列。 [#36887](https://github.com/apache/doris/pull/36887) - -- ES Catalog 将 ES 的 NESTED 或者 OBJECT 类型映射成 Doris JSON 类型。[#37101](https://github.com/apache/doris/pull/37101) - -- 默认情况下,对于具有指定分词器的倒排索引,默认开启 `support_phrase` 以提升 `match_phrase` 系列查询性能。[#37949](https://github.com/apache/doris/pull/37949) - -### 查询优化器 - -- 支持 `explain DELETE FROM` 语句。[#37100](https://github.com/apache/doris/pull/37100) - -- 支持常量表达式参数的 Hint 形式。[#37988](https://github.com/apache/doris/pull/37988) - -### 内存管理 - -- 增加了 HTTP API 以清除缓存。 [#36599](https://github.com/apache/doris/pull/36599) - -### 权限管理 - -- 支持对表值函数(TVF)中的资源进行鉴权。 [#37132](https://github.com/apache/doris/pull/37132) - -## 改进提升 - -### 湖仓一体 - -- 将 Paimon 升级至 0.8.1 版本。 - -- 修复在部分情况下,查询 Paimon 表时导致 `org.apache.commons.lang.StringUtils` 的问题。[#37512](https://github.com/apache/doris/pull/37512) - -- 支持腾讯云 LakeFS。 [#36891](https://github.com/apache/doris/pull/36891) - -- 优化了外部表查询时获取文件列表的超时时间。 [#36842](https://github.com/apache/doris/pull/36842) - -- 可通过会话变量 `fetch_splits_max_wait_time_ms` 进行设置 - -- 改进了 SQLServer JDBC Catalog 的默认连接逻辑。 [#36971](https://github.com/apache/doris/pull/36971) - - - 默认情况下,不干预连接加密设置。仅当 `force_sqlserver_jdbc_encrypt_false` 设置为 true 时,才会强制在 JDBC URL 中添加 `encrypt=false` 以减少认证错误,从而提供更灵活的控制加密行为的能力。 - -- Hive 表的 `show create table` 语句增加序列化/反序列化。[#37096](https://github.com/apache/doris/pull/37096) - -- FE 端 Hive 表列表默认缓存时间由 1 天改为 4 小时 - -- 数据导出(Export/Outfile)支持指定 Parquet 和 ORC 的压缩格式。 - - - 更多信息,请参考[文档](../../sql-manual/sql-statements/data-modification/load-and-export/EXPORT.md)。 - -- 当使用 CTAS+TVF 创建表时,TVF 中的分区列将被自动映射为 Varchar(65533)而非 String,以便该分区列能够作为内表的分区列使用。 [#37161](https://github.com/apache/doris/pull/37161) - -- 优化 Hive 写入操作元数据的访问次数。[#37127](https://github.com/apache/doris/pull/37127) - -- ES Catalog 支持将 NESTED/OBJECT 类型映射到 Doris 的 JSON 类型。[#37182](https://github.com/apache/doris/pull/37182) - -- 优化使用低版本 OBJECT 驱动连接 Oracle 时的报错信息。[#37634](https://github.com/apache/doris/pull/37634) - -- 当 Hudi 表 Incremental Read 返回空集时,Doris 同样返回空集而非报错。[#37636](https://github.com/apache/doris/pull/37634) - -- 修复部分情况下内外表关联查询可能导致 FE 超时的问题。[#37757](https://github.com/apache/doris/pull/37757) - -- 修复了在从旧版本升级到新版本时,如果开启了 Hive Metastore Even Listener 情况下,可能出现 FE 元数据回放错误的问题。 [#37757](https://github.com/apache/doris/pull/37757) - - - -### 多表物化视图 - -- 创建异步物化视图时,支持自动选择 Key 列。 [#36601](https://github.com/apache/doris/pull/36601) - -- 异步物化视图分区刷新支持定义中使用 `date_trunc` 函数。[#35562](https://github.com/apache/doris/pull/35562) - -- 嵌套物化视图中,当下层命中聚合上卷改写后,上层现在依然可以继续进行透明改写。 [#37651](https://github.com/apache/doris/pull/37651) - -- 当 Schema Change 不影响异步物化视图数据正确性时,异步物化视图保持可用状态。 [#37122](https://github.com/apache/doris/pull/37122) - -- 提升了透明改写的规划速度。[#37935](https://github.com/apache/doris/pull/37935) - -- 计算异步物化视图可用性时,不再考虑当前的刷新状态。[#36617](https://github.com/apache/doris/pull/36617) - -### 半结构化数据管理 - -- 通过采样优化 DESC 查看 VARIANT 子列的性能。 [#37217](https://github.com/apache/doris/pull/37217) - -- 行存 `page_size` 默认从 4K 调到 16K 压缩率提升 30%,而且支持表级别可配置。 - -- JSON 类型支持 Key 为空的特殊 JSON 数据。 [#36762](https://github.com/apache/doris/pull/36762) - -### 倒排索引 - -- 减少倒排索引 Exists 调用避免对象存储访问延迟。[#36945](https://github.com/apache/doris/pull/36945) - -- 优化倒排索引查询流程额外开销。[#35357](https://github.com/apache/doris/pull/35357) - -- 在物化视图中不创建倒排索引。 [#36869](https://github.com/apache/doris/pull/36869) - -### 查询优化器 - -- 当比较表达式两侧都是 Literal 时,String Literal 会尝试向另一侧的类型转换。 [#36921](https://github.com/apache/doris/pull/36921) - -- 重构了 VARIANT 类型的子路径下推功能,现在可以更好地支持复杂的下推场景。 [#36923](https://github.com/apache/doris/pull/36923) - -- 优化了物化视图代价计算的逻辑,能够更准确的选择代价更低的物化视图。 [#37098](https://github.com/apache/doris/pull/37098) - -- 提升了 SQL 中使用用户变量时的 SQL 缓存规划速度。 [#37119](https://github.com/apache/doris/pull/37119) - -- 优化了 NOT NULL 表达式的估行逻辑,当查询中存在 NOT NULL 时可以获得更好的性能。 [#37498](https://github.com/apache/doris/pull/37498) - -- 优化了 LIKE 表达式的 NULL 拒绝推导逻辑。[#37864](https://github.com/apache/doris/pull/37864) - -- 优化查询指定分区失败时的报错信息,可以更清楚看到是哪个表导致的问题。 [#37280](https://github.com/apache/doris/pull/37280) - -### 查询引擎 - -- 将某些场景下 BITMAP_UNION 算子的性能提升了 3 倍。 - -- 提升 Arrow Flight 在 ARM 环境下的读取性能。 - -- 优化了 `explode`、`explode_map`、`explode_json` 函数的执行性能。 - -### 数据导入 - -- 支持为 `INSERT INTO ... FROM TABLE VALUE FUNCTION` 语句设置 `max_filter_ratio` 参数。 - - - 更多信息,请参考[文档](../../data-operate/import/import-way/insert-into-manual) - -## Bug 修复 - -### 湖仓一体 - -- 修复部分情况下查询 Parquet 格式导致 BE 宕机的问题。[#37086](https://github.com/apache/doris/pull/37086) - -- 修复查询 Parquet 格式,BE 端打印大量日志的问题。[#37012](https://github.com/apache/doris/pull/37012) - -- 修复部分情况下 FE 端重复创建大量 FileSystem 对象的问题。[#37142](https://github.com/apache/doris/pull/37142) - -- 修复部分情况下,写入 Hive 后的事务信息未清理的问题。[#37172](https://github.com/apache/doris/pull/37172) - -- 修复部分情况下,Hive 表写入操作导致线程泄露的问题。[#37247](https://github.com/apache/doris/pull/37247) - -- 修复部分情况下,无法正确获取 Hive Text 格式行列分隔符的问题。[#37188](https://github.com/apache/doris/pull/37188) - -- 修复部分情况下,读取 lz4 压缩块时的并发问题。[#37187](https://github.com/apache/doris/pull/37187) - -- 修复部分情况下,Iceberg 表 `count(*)` 返回错误的问题。[#37810](https://github.com/apache/doris/pull/37810)。 - -- 修复部分情况下,创建基于 MinIO 的 Paimon Catalog 导致 FE 元数据回放错误的问题。[#37249](https://github.com/apache/doris/pull/37249) - -- 修复部分情况下使用 Ranger 创建 Catalog 客户端卡死的问题。 [#37551](https://github.com/apache/doris/pull/37551) - -### 多表物化视图 - -- 修复当基表增加新的分区时,可能导致的分区聚合上卷改写后结果错误的问题。 [#37651](https://github.com/apache/doris/pull/37651) - -- 修复关联的基表分区删除后,物化视图分区状态没有被置为不同步的问题。 [#36602](https://github.com/apache/doris/pull/36602) - -- 修复异步物化视图构建偶现的死锁问题。 [#37133](https://github.com/apache/doris/pull/37133) - -- 修复异步物化视图单次刷新大量分区时偶现的,报错 `nereids cost too much time` 问题。[#37589](https://github.com/apache/doris/pull/37589) - -- 修复创建异步物化视图时,如果最终的 Select List 中存在 Null Literal,则无法创建的问题。[#37281](https://github.com/apache/doris/pull/37281) - -- 修复单表物化视图,如果构建了聚合的物化视图,虽然改写成功,但是 CBO 没有选择的问题。 [#35721](https://github.com/apache/doris/pull/35721) [#36058](https://github.com/apache/doris/pull/36058) - -- 修复 Join 输入都是聚合的情况下,构建分区物化视图,分区推导失败的问题。[#34781](https://github.com/apache/doris/pull/34781) - -### 半结构化数据管理 - -- 修复 VARIANT 在并发/异常数据等特殊情况下的问题。[#37976](https://github.com/apache/doris/pull/37976) [#37839](https://github.com/apache/doris/pull/37839) [#37794](https://github.com/apache/doris/pull/37794) [#37674](https://github.com/apache/doris/pull/37674) [#36997](https://github.com/apache/doris/pull/36997) - -- 修复 VARIANT 用在不支持的 SQL 中 Coredump 的问题。 [#37640](https://github.com/apache/doris/pull/37640) - -- 修复 1.x 版本升级到 2.x 或者更高版本时因为 MAP 数据类型 Coredump 的问题。 [#36937](https://github.com/apache/doris/pull/36937) - -- 修复 ES Catalog 对 Array 的支持。 [#36936](https://github.com/apache/doris/pull/36936) - -### 倒排索引 - -- 修复倒排索引 v2 DROP INDEX 元数据没有删除的问题。 [#37646](https://github.com/apache/doris/pull/37646) - -- 修复字符串长度超过“ignore above”时查询准确性问题。 [#37679](https://github.com/apache/doris/pull/37679) - -- 修复索引大小统计的问题。 [#37232](https://github.com/apache/doris/pull/37232) [#37564](https://github.com/apache/doris/pull/37564) - -### 查询优化器 - -- 修复部分因为保留关键字而导致导入无法执行的问题。[#35938](https://github.com/apache/doris/pull/35938) - -- 修复了在创建表时 CHAR(255) 类型错误的记录为 CHAR(1) 的问题。 [#37671](https://github.com/apache/doris/pull/37671) - -- 修复了在相关子查询中的连接表达式为复杂表达式时返回错误结果的问题。[#37683](https://github.com/apache/doris/pull/37683) - -- 修复了 DECIMAL 类型分桶裁剪有可能错误的问题。[#38013](https://github.com/apache/doris/pull/38013) - -- 修复了部分场景下开启 Pipeline Local Shuffle 后,聚合算子计算结果错误的问题。[#38061](https://github.com/apache/doris/pull/38016) - -- 修复当聚合算子中存在相等的表达式时,可能出现的规划报错问题。[#36622](https://github.com/apache/doris/pull/36622) - -- 修复当聚合算子中存在 Lambda 表达式时,可能出现的规划报错问题。[#37285](https://github.com/apache/doris/pull/37285) - -- 修复了由窗口函数生成的字面量在优化为字面量时类型错误导致无法执行的问题。 [#37283](https://github.com/apache/doris/pull/37283) - -- 修复了聚合函数 `foreach combinator` 错误输出 Null 属性问题。[#37980](https://github.com/apache/doris/pull/37980) - - -- 修复了 acos 函数在参数为超越范围值的字面量时不能规划的问题。[#37996](https://github.com/apache/doris/pull/37996) - -- 修复当查询指定的同步物化视图时,显示指定查询分区导致规划报错的问题。[#36982](https://github.com/apache/doris/pull/36982) - -- 修复了在规划过程中偶尔出现 NPE 的问题。[#38024](https://github.com/apache/doris/pull/38024) - -### 查询引擎 - -- 修复 DELETE WHERE 语句中,在 DECIMAL 数据类型作为条件报错的问题。[#37801](https://github.com/apache/doris/pull/37801) - -- 修复查询执行结束,但是 BE 内存不释放的问题。[#37792](https://github.com/apache/doris/pull/37792) [#37297](https://github.com/apache/doris/pull/37297) - -- 修复在千级别 QPS 场景下,Audit Log 占用 FE 内存太多的问题。https://github.com/apache/doris/pull/37786 - -- 修复 sleep 函数在输入非法值时 BE Core 的问题。[#37681](https://github.com/apache/doris/pull/37681) - -- 修复执行过程中 `sync filter size meet error` 的问题。 [#37103](https://github.com/apache/doris/pull/37103) - -- 修复执行过程中,使用时区时结果不对的问题。[#37062](https://github.com/apache/doris/pull/37062) - -- 修复 `cast string` 到 `int` 时结果不对的问题。 [#36788](https://github.com/apache/doris/pull/36788) - -- 修复 Arrow Flight 协议在开启 Pipelinex 时查询报错的问题。 [#35804](https://github.com/apache/doris/pull/35804) - -- 修复 `cast string to date/datetime` 报错的问题。 [#35637](https://github.com/apache/doris/pull/35637) - -- 修复使用 `<=>` 做大表关联查询时 BE Core 的问题。 [#36263](https://github.com/apache/doris/pull/36263) - -### 存储管理 - -- 修复列更新写入时遇到 DELETE SIGN 数据不可见问题。[#36755](https://github.com/apache/doris/pull/36755) - -- 优化 Schema Change 期间 FE 的内存占用。[#36756](https://github.com/apache/doris/pull/36756) - -- 修复 BE 重启时事务没有 Abort 导致的 BE 下线卡住问题。[#36437](https://github.com/apache/doris/pull/36437) - -- 修复 NOT-NULL 到 NULL 类型变更的偶发报错问题。 [#36389](https://github.com/apache/doris/pull/36389) - -- 优化 BE 宕机时的副本修复调度。 [#36897](https://github.com/apache/doris/pull/36897) - -- 单个 BE 创建 Tablet 时支持 round-robin 选择磁盘。 [#36900](https://github.com/apache/doris/pull/36900) - -- 修复 Publish 慢导致的查询 -230 错误。 [#36222](https://github.com/apache/doris/pull/36222) - -- 优化 Partition Balance 的速度。 [#36976](https://github.com/apache/doris/pull/36976) - -- 使用 FD 数目和内存控制 Segment Cache 避免 FD 不足。 [#37035](https://github.com/apache/doris/pull/37035) - -- 修复 Clone 和 Alter 并发可能导致的副本丢失问题。 [#36858](https://github.com/apache/doris/pull/36858) - -- 修复不能调整列顺序问题。[#37226](https://github.com/apache/doris/pull/37226) - -- 禁止自增列的部分 Schema Change 操作。 [#37331](https://github.com/apache/doris/pull/37331) - -- 修复 Delete 操作报错不准确。 [#37374](https://github.com/apache/doris/pull/37374) - -- BE 侧 Trash 过期时间调整为一天。 [#37409](https://github.com/apache/doris/pull/37409) - -- 优化 Compaction 内存占用和调度。 [#37491](https://github.com/apache/doris/pull/37491) - -- 检查潜在的过大 Backup 导致 FE 重启的问题。[#37466](https://github.com/apache/doris/pull/37466) - -- 恢复动态分区删除策略以及交叉分区的行为到 2.1.3。[#37570](https://github.com/apache/doris/pull/37570) [#37506](https://github.com/apache/doris/pull/37506) - -- 修复 DELETE 谓词重部分 DECIMAL 报错问题。 [#37710](https://github.com/apache/doris/pull/37710) - -### 数据导入 - -- 修复导入时错误处理竞争导致的数据不可见问题。[#36744](https://github.com/apache/doris/pull/36744) - -- Stream Load 导入支持 `hhl_from_base64`。 [#36819](https://github.com/apache/doris/pull/36819) - -- 修复潜在的单表非常多 Tablet 导入失败时可能导致 FE OOM 的问题。 [#36944](https://github.com/apache/doris/pull/36944) - -- 修复 FE 主从切换时自增列可能重复的问题。[#36961](https://github.com/apache/doris/pull/36961) - -- 修复 INSERT INTO SELECT 自增列报错问题。 [#37029](https://github.com/apache/doris/pull/37029) - -- 降低数据下刷线程数,优化内存占用。 [#37092](https://github.com/apache/doris/pull/37092) - -- 优化 Routine Load 任务自动恢复和错误信息。 [#37371](https://github.com/apache/doris/pull/37371) - -- 增加 Routine Load 默认攒批大小。 [#37388](https://github.com/apache/doris/pull/37388) - -- 修复 Routine Load 在 Kafka EOF 过期的任务停止问题。[#37983](https://github.com/apache/doris/pull/37983) - -- 修复一流多表 Coredump。 [#37370](https://github.com/apache/doris/pull/37370) - -- 修复 Group Commit 内存估计不准导致的提前反压问题。[#37379](https://github.com/apache/doris/pull/37379) - -- 优化 Group Commit BE 侧线程占用。 [#37380](https://github.com/apache/doris/pull/37380) - -- 修复数据没有分区时没有错误 URL 的问题。 [#37401](https://github.com/apache/doris/pull/37401) - -- 修复导入时潜在的内存误操作问题。 [#38021](https://github.com/apache/doris/pull/38021) - -### 主键模型 - -- 降低主键表 Compaction 的内存占用。 [#36968](https://github.com/apache/doris/pull/36968) - -- 修复主键副本 Clone 失败时可能的重复数据问题。 [#37229](https://github.com/apache/doris/pull/37229) - -### 内存管理 - -- 修复 Jemalloc Cache 统计不准的问题。[#37464](https://github.com/apache/doris/pull/37464) - -- 修复在 K8s / CGroup 中不能正确获取内存大小的问题。 [#36966](https://github.com/apache/doris/pull/36966) - -### 权限管理 - -- 修复 Table Valued Function 引用 Resource 时没有鉴权的问题。 [#37132](https://github.com/apache/doris/pull/37132) - -- 修复 Show Role 语句中没有 Workload Group 权限的问题。 [#36032](https://github.com/apache/doris/pull/36032) - -- 修复创建 Row Policy 时,同时执行两条语句,导致 FE 重启失败的问题。[#37342](https://github.com/apache/doris/pull/37342) - -- 修复部分情况下,老版本升级后,因为 Row Policy 导致 FE 元数据回放失败的问题。[#37342](https://github.com/apache/doris/pull/37342) - -### 其他 - -- 修复计算节点参与内部表创建的问题。[#37961](https://github.com/apache/doris/pull/37961) - -- 修复 `enable_strong_read_consistency = true` 时从延迟问题。 [#37641](https://github.com/apache/doris/pull/37641) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.6.md deleted file mode 100644 index c5f9ad5712a2a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.6.md +++ /dev/null @@ -1,516 +0,0 @@ ---- -{ - "title": "Release 2.1.6", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.6 版本已于 2024 年 9 月 10 日正式发布。2.1.6 版本在湖仓一体、异步物化视图、半结构化数据管理持续升级改进,同时在查询优化器、执行引擎、存储管理、数据导入与导出以及权限管理等方面完成了若干修复。欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.6 版本已于 2024 年 9 月 10 日正式发布。**2.1.6 版本在湖仓一体、异步物化视图、半结构化数据管理持续升级改进,同时在查询优化器、执行引擎、存储管理、数据导入与导出以及权限管理等方面完成了若干修复。欢迎大家下载使用。 - -- 官网下载:https://doris.apache.org/download - -- GitHub 下载:https://github.com/apache/doris/releases/tag/2.1.6-rc04 - -## 行为变更 - -- 移除 `create repository` 命令中的 `delete_if_exists` 选项。[#38192](https://github.com/apache/doris/pull/38192) - -- 新增会话变量 `enable_prepared_stmt_audit_log`,用于控制 JDBC 预编译语句是否记录审计日志,默认不记录。[#38624](https://github.com/apache/doris/pull/38624) [#39009](https://github.com/apache/doris/pull/39009) - -- 采用文件描述符限制和内存限制来管理 Segment Cache。[#39689](https://github.com/apache/doris/pull/39689) - -- 当 `sys_log_mode` 配置项设置为 `BRIEF` 时,在日志中增加文件位置信息,以提供更详细的上下文。[#39571](https://github.com/apache/doris/pull/39571) - -- 将会话变量 `max_allowed_packet` 的默认值调整为 16MB,提高数据传输限制。[#38697](https://github.com/apache/doris/pull/38697) - -- 在单次请求中,若包含多个 SQL 语句,各语句间必须使用分号进行分隔,以增强语句的清晰度和执行效率。[#38670](https://github.com/apache/doris/pull/38670) - -- 现在支持 SQL 语句以分号开始,提供更灵活的语句书写方式。[#39399](https://github.com/apache/doris/pull/39399) - -- 在执行如 `show create table` 等语句时,类型格式与 MySQL 保持一致,提升与 MySQL 的兼容性。[#38012](https://github.com/apache/doris/pull/38012) - -- 当新优化器规划查询超时后,不再回退到旧优化器,以避免潜在的性能下降问题。[#39499](https://github.com/apache/doris/pull/39499) - -## 新功能 - -### Lakehouse - -- 实现 Iceberg 表的写回功能。 - - - 更多信息,请查看文档数据湖构建-[Iceberg](../../lakehouse/catalogs/iceberg-catalog) - -- 增强 SQL 拦截规则,支持对外表的拦截处理。 - - - 更多信息,请查看文档查询管理-[SQL 拦截](../../admin-manual/workload-management/sql-blocking) - -- 新增系统表`file_cache_statistics`,用于查看 BE 节点的数据缓存性能指标。 - - - 更多信息,请查看文档系统表-[file_cache_statistics](../../admin-manual/system-tables/information_schema/file_cache_statistics) - -### 异步物化视图 - -- 支持在 Insert 中进行透明改写。[#38115](https://github.com/apache/doris/pull/38115) - -- 支持对查询中存在 VARIANT 类型时的透明改写。[#37929](https://github.com/apache/doris/pull/37929) - -### 半结构化数据管理 - -- 支持 ARRAY MAP 类型到 JSON 类型的 CAST 转换功能。[#36548](https://github.com/apache/doris/pull/36548) - -- 引入`json_keys`函数,用于提取 JSON 中的键名。[#36411](https://github.com/apache/doris/pull/36411) - -- 支持在导入 JSON 时指定`json path`$``[#38213](https://github.com/apache/doris/pull/38213) - -- ARRAY / MAP / STRUCT 类型支持`replace_if_not_null`[#38304](https://github.com/apache/doris/pull/38304) - -- 允许调整 ARRAY / MAP / STRUCT 类型的列顺序。[#39210](https://github.com/apache/doris/pull/39210) - -- 新增`multi_match`函数,支持在多个字段中匹配关键词,并利用倒排索引加速查询。[#37722](https://github.com/apache/doris/pull/37722) - -### 查询优化器 - -- 完善 MySQL 协议返回列的信息,包括原始数据库名、表名、列名和别名。[#38126](https://github.com/apache/doris/pull/38126) - -- 增强聚合函数`group_concat`,支持同时使用`order by`和`distinct`进行复杂数据聚合。[#38080](https://github.com/apache/doris/pull/38080) - -- 改进了 SQL 缓存机制,支持通过注释区分不同的查询以复用缓存结果。[#40049](https://github.com/apache/doris/pull/40049) - -- 增强分区裁剪功能,支持在过滤条件中使用`date_trunc`和`date`函数。[#38025](https://github.com/apache/doris/pull/38025) [#38743](https://github.com/apache/doris/pull/38743) - -- 允许在表别名前使用数据库名作为限定名前缀。[#38640](https://github.com/apache/doris/pull/38640) - -- 支持 Hint 格式注释。[#39113](https://github.com/apache/doris/pull/39113) - -### 执行引擎 - -- `Group concat`函数现支持`distinct`和`order by`选项。[#38744](https://github.com/apache/doris/pull/38744) - -### Others - -- 新增系统表`table_properties`,便于用户查看和管理表的各项属性。 - - - 更多信息,请查看文档 [table_properties](../../admin-manual/system-tables/information_schema/table_properties/) -- 新增 FE 中死锁和慢锁检测功能。 - - - 更多信息,请查看文档 [FE 锁管理](../../admin-manual/trouble-shooting/frontend-lock-manager) - -## 改进提升 - -### 湖仓一体 - -- 革新外表元数据缓存机制。 - - - 更多信息,请查看文档 [元数据缓存](../../lakehouse/meta-cache.md) - -- 新增会话变量`keep_carriage_return`,默认关闭。读取 Hive Text 格式表时,默认将`\r\n`与`\n`均视为换行符。[#38099](https://github.com/apache/doris/pull/38099) - -- 优化 Parquet / ORC 文件读写内存统计。[#37257](https://github.com/apache/doris/pull/37257) - -- Paimon 表支持 IN/ NOT IN 谓词下推。[#38390](https://github.com/apache/doris/pull/38390) - -- 升级优化器,支持 Hudi 表的 Time Travel 语法。[#38591](https://github.com/apache/doris/pull/38591) - -- Kerberos 认证流程优化,提升安全认证效率与稳定性。[#37301](https://github.com/apache/doris/pull/37301) - -- 支持 Rename column 操作后读取 Hive 表。[#38809](https://github.com/apache/doris/pull/38809) - -- 提升外表分区列读取性能。[#38810](https://github.com/apache/doris/pull/38810) - -- 优化外表查询规划,优化数据分片合并策略,有效避免小分片对查询性能的影响。[#38964](https://github.com/apache/doris/pull/38964) - -- SHOW CREATE DATABASE / TABLE 新增 Location 等属性展示。[#39644](https://github.com/apache/doris/pull/39644) - -- MaxCompute Catalog 扩展支持复杂类型。[#39822](https://github.com/apache/doris/pull/39822) - -- 优化文件缓存加载策略,通过异步加载方式避免 BE 启动时间过长的问题。[#39036](https://github.com/apache/doris/pull/39036) - -- 升级文件缓存淘汰策略,有效管理长时间占用锁的资源。[#39721](https://github.com/apache/doris/pull/39721) - -### 异步物化视图 - -- 支持小时、周及季度级别的分区上卷构建。[#37678](https://github.com/apache/doris/pull/37678) - -- 基于 Hive 外表的物化视图,在刷新前自动更新元数据缓存,以保证每次刷新可以获取最新数据。[#38212](https://github.com/apache/doris/pull/38212) - -- 通过批量获取元数据,优化存算分离模式下的透明改写规划性能。[#39301 ](https://github.com/apache/doris/pull/39301) - -- 通过禁止重复枚举,进一步提升透明改写的规划性能。[#39541 ](https://github.com/apache/doris/pull/39541) - -- 优化基于 Hive 外表分区刷新物化视图的透明改写性能。[#38525](https://github.com/apache/doris/pull/38525) - -### 半结构化数据管理 - -- 优化 TOPN 查询内存分配,显著提升查询性能。[#37429](https://github.com/apache/doris/pull/37429) - -- 优化倒排索引字符串处理性能。[#37395](https://github.com/apache/doris/pull/37395) - -- 优化倒排索引在 MOW 表中的性能。[#37428](https://github.com/apache/doris/pull/37428) - -- 建表时支持指定行存 `page_size`,以控制压缩效果。[#37145](https://github.com/apache/doris/pull/37145) - -### 查询优化器 - -- 调整 Mark Join 行数估计算法,提高基数估算准确性。[#38270](https://github.com/apache/doris/pull/38270) - -- 优化 Semi / Anti Join 代价估计算法,能够正确选择最佳 Join 顺序。[#37951](https://github.com/apache/doris/pull/37951) - -- 调整部分列无统计信息情况下的过滤估计算法,使估算更精准。[#39592](https://github.com/apache/doris/pull/39592) - -- 改进 Set Operation 算子 Instance 计算逻辑,防止在极端情况下并行度不足的问题。[#39999](https://github.com/apache/doris/pull/39999) - -- 优化 Bucket Shuffle 使用策略,数据打散不充分时也能获得更好的性能。[#36784](https://github.com/apache/doris/pull/36784) - -- 窗口函数数据提前过滤,支持单投影中存在多窗口函数的情况。[#38393](https://github.com/apache/doris/pull/38393) - -- 过滤条件含 `NullLiteral` 时,智能折叠为 False,转换为 `EmptySet`,减少不必要的数据扫描量。[#38135](https://github.com/apache/doris/pull/38135) - -- 扩大谓词推导适用范围,在特定模式的查询下能够大幅减少数据扫描量。[#37314](https://github.com/apache/doris/pull/37314) - -- 在分区裁剪中支持部分短路计算逻辑,以提升分区裁剪性能。在特定场景下,性能提升超过 100%。[#38191](https://github.com/apache/doris/pull/38191) - -- 在用户变量中,支持计算任意的标量函数。[#39144 ](https://github.com/apache/doris/pull/39144) - -- 当查询中存在别名冲突时,报错信息能够保持与 MySQL 一致。[#38104 ](https://github.com/apache/doris/pull/38104) - -### 执行引擎 - -- 实现 AggState 从 2.1 到 3.x 版本的兼容,并解决了 coredump 问题。[#37104](https://github.com/apache/doris/pull/37104) - -- 重构无 Join 操作时的 Local Shuffle 策略选择机制。[#37282](https://github.com/apache/doris/pull/37282) - -- 将内部表查询的 scanner 调整为异步模式,以防止查询内部表时出现卡顿。[#38403](https://github.com/apache/doris/pull/38403) - -- 优化 Join 算子在构建 Hash 表时的 Block Merge 流程。[#37471](https://github.com/apache/doris/pull/37471) - -- 缩短 MultiCast 持有锁的时间。[#37462](https://github.com/apache/doris/pull/37462) - -- 优化 gRPC 的 keepAliveTime 设置并增加了链接监测机制,降低了因 RPC 错误导致的查询失败率。[#37304](https://github.com/apache/doris/pull/37304) - -- 当内存超出限制时,将清理 `jemalloc` 中的所有 Dirty Pages。[#37164](https://github.com/apache/doris/pull/37164) - -- 提升 `aes_encrypt`/`decrypt` 函数对常量类型的处理效率。[#37194](https://github.com/apache/doris/pull/37194) - -- 加快 `json_extract` 函数对常量数据的处理速度。[#36927](https://github.com/apache/doris/pull/36927) - -- 提高 `ParseUrl` 函数处理常量数据的性能。[#36882](https://github.com/apache/doris/pull/36882) - -### 存储管理 - -**备份恢复 / 跨集群同步** - -- Restore 功能现已支持删除多余的 Tablet 和分区选项。[#39363](https://github.com/apache/doris/pull/39363) - -- 在创建 Repository 时,支持检查存储连通性。[#39538](https://github.com/apache/doris/pull/39538) - -- Binlog 支持 Drop 表操作,使 CCR 能够支持 Drop 表的增量同步。[#38541](https://github.com/apache/doris/pull/38541) - -**Compaction** - -- 改进高优 Compaction 任务不受并发控制限制的问题。[#38189](https://github.com/apache/doris/pull/38189) - -- 根据数据特性自动调整 Compaction 的内存消耗。[#37486](https://github.com/apache/doris/pull/37486) - -- 修复顺序数据优化策略可能引发的聚合表或 MOR UNIQUE 表数据准确性问题。[#38299](https://github.com/apache/doris/pull/38299) - -- 优化补副本期间 Compaction 选择 rowset 的策略,以避免触发 -235 错误。[#39262](https://github.com/apache/doris/pull/39262) - -**Merge-on-Write** - -- 解决了列更新和 Compaction 并发时列更新慢的问题。[#38682](https://github.com/apache/doris/pull/38682) - -- 修复一次导入大量数据时,Segcompaction 可能导致 MOW 数据不正确的问题。[#38992](https://github.com/apache/doris/pull/38992) [#39707](https://github.com/apache/doris/pull/39707) - -- 解决 BE 重启后,可能导致列更新数据丢失的问题。[#39035](https://github.com/apache/doris/pull/39035) - -**其他** - -- 增加了 FE 配置,用于控制冷热分层下查询是否优先访问本地数据的副本。[#38322](https://github.com/apache/doris/pull/38322) - -- 解决了过期的 BE 汇报消息未包含新创建 Tablet 的问题。[#38839 ](https://github.com/apache/doris/pull/38839)[#39605](https://github.com/apache/doris/pull/39605) - -- 优化副本调度优先级策略,优先调度缺少数据的副本。[#38884](https://github.com/apache/doris/pull/38884) - -- 对于有未完成 ALTER JOB 的 Tablet,不进行均衡调度。[#39202](https://github.com/apache/doris/pull/39202) - -- List 分区方式的表现支持修改分桶数。[#39688](https://github.com/apache/doris/pull/39688) - -- 优先选择在线的磁盘服务进行查询。[#39654](https://github.com/apache/doris/pull/39654) - -- 改进了同步物化视图的 Base 表不支持删除时的提示信息。[#39857](https://github.com/apache/doris/pull/39857) - -- 改进了单列超过 4G 时的报错信息。[#39897](https://github.com/apache/doris/pull/39897) - -- 修复了 Insert 语句遇到 Plan 错误时未正确中止事务的问题。[#38260](https://github.com/apache/doris/pull/38260) - -- 修复了 SSL 链接关闭时的异常问题。[#38677](https://github.com/apache/doris/pull/38677) - -- 修复了使用 Label 中止事务时未持有表锁的问题。[#38842](https://github.com/apache/doris/pull/38842) - -- 修复了 Gson Pretty 导致 Image 过大的问题。[#39135](https://github.com/apache/doris/pull/39135) - -- 修复了 CREAT TABLE 语句在新优化器下未检查 Bucket 为 0 的问题。[#38999](https://github.com/apache/doris/pull/38999) - -- 修复了 DELETE 条件谓词中包含中文列时报错的问题。[#39500](https://github.com/apache/doris/pull/39500) - -- 修复了分区均衡模式下频繁均衡 Tablet 的问题。[#39606](https://github.com/apache/doris/pull/39606) - -- 修复了分区丢失 Storage Policy 属性的问题。[#39677](https://github.com/apache/doris/pull/39677) - -- 修复了事务内导入多个表时统计信息不正确的问题。[#39548](https://github.com/apache/doris/pull/39548) - -- 修复了 Random 分桶表删除时报错的问题。[#39830](https://github.com/apache/doris/pull/39830) - -- 修复了 UDF 不存在导致 FE 无法启动的问题。[#39868](https://github.com/apache/doris/pull/39868) - -- 修复了 FE 主从 Last Failed Version 不一致的问题。[#39947](https://github.com/apache/doris/pull/39947) - -- 修复了 Schema Change Job 被取消时,相关 Tablet 可能仍处于 Schema Change 状态的问题。[#39327](https://github.com/apache/doris/pull/39327) - -- 修复了单个语句修改类型和列顺序 SC 时出现的报错问题。[#39107](https://github.com/apache/doris/pull/39107) - -### 数据导入 - -- 改进了导入发生 -238 错误时的错误信息提示。[#39182](https://github.com/apache/doris/pull/39182) - -- 实现在 Restore 分区时,其他分区可以同时进行导入。[#39915](https://github.com/apache/doris/pull/39915) - -- 优化了 Group Commit FE 选择 BE 的策略。[#37830](https://github.com/apache/doris/pull/37830) [#39010](https://github.com/apache/doris/pull/39010) - -- 对于一些常见的 Stream Load 错误信息,避免了程序栈的打印,简化了错误处理。[#38418](https://github.com/apache/doris/pull/38418) - -- 改进下线的 BE 可能影响导入出错的问题。[#38256](https://github.com/apache/doris/pull/38256) - -### 权限管理 - -- 优化了开启 Ranger 鉴权插件后的访问性能。[#38575](https://github.com/apache/doris/pull/38575) - -- 优化了 Refresh Catalog / Database / Table 操作的权限策略,用户仅需 SHOW 权限即可执行此操作。[#39008](https://github.com/apache/doris/pull/39008) - -## Bug 修复 - -### 湖仓一体 - -- 修复切换 Catalog 时可能出现的数据库找不到问题。[#38114](https://github.com/apache/doris/pull/38114) - -- 解决了读取 S3 上不存在的数据时出现的异常报错。[#38253](https://github.com/apache/doris/pull/38253) - -- 修正导出操作时,指定异常路径可能导致导出位置异常的问题。[#38602](https://github.com/apache/doris/pull/38602) - -- 修复 Paimon 表时间列时区问题。[#37716](https://github.com/apache/doris/pull/37716) - -- 临时关闭 Parquet PageIndex 功能以避免部分错误行为。 - -- 修复外表查询时,错误选取黑名单中 Backend 节点的问题。[#38984](https://github.com/apache/doris/pull/38984) - -- 解决读取 Parquet Struct 列类型中缺失子列导致查询错误的问题。[#39192](https://github.com/apache/doris/pull/39192) - -- 修复 JDBC Catalog 的谓词下推问题。[#39082](https://github.com/apache/doris/pull/39082) - -- 修正 Parquet 格式读取时,历史格式导致查询结果错误的问题。[#39375](https://github.com/apache/doris/pull/39375) - -- 增强了 Oracle JDBC Catalog 对 OJDBC6 驱动的兼容性。[#39408](https://github.com/apache/doris/pull/39408) - -- 解决了 Refresh Catalog/Database/Table 操作可能导致的 FE 内存泄漏问题。[#39186](https://github.com/apache/doris/pull/39186) [#39871](https://github.com/apache/doris/pull/39871) - -- 修复了 JDBC Catalog 在某些情况下的线程泄漏问题。 [#39666 ](https://github.com/apache/doris/pull/39666)[#39582](https://github.com/apache/doris/pull/39582) - -- 修复开启 Hive Metastore 事件订阅后,可能出现事件处理失败的问题。[#39239](https://github.com/apache/doris/pull/39239) - -- 禁止读取自定义 Escape CHAR 和 NULL Format 的 Hive Text 格式表,防止数据错误。[#39869](https://github.com/apache/doris/pull/39869) - -- 修复某些情况下,无法访问通过 Iceberg API 创建的 Iceberg 表的问题。[#39203](https://github.com/apache/doris/pull/39203) - -- 修复无法读取存储在开启高可用的 HDFS 集群上的 Paimon 表的问题。[#39876](https://github.com/apache/doris/pull/39876) - -- 修复开启文件缓存后,读取 Paimon 表 Deletion Vector 可能导致错误的问题。[#39875](https://github.com/apache/doris/pull/39875) - -- 修复某些情况下读取 Parquet 可能导致死锁的问题 [#39945](https://github.com/apache/doris/pull/39945) - -### 异步物化视图 - -- 修复无法在 Follower FE 上使用 `show create materialized view` 命令的问题。[#38794](https://github.com/apache/doris/pull/38794) - -- 统一异步物化视图在元数据中的对象类型,使其在数据工具中正常显示。[#38797](https://github.com/apache/doris/pull/38797) - -- 修复嵌套异步物化视图总是进行全量刷新的问题。[#38698](https://github.com/apache/doris/pull/38698) - -- 修正 Cancel 任务在重启 FE 后状态可能显示为 running 的问题。 [#39424](https://github.com/apache/doris/pull/39424) - -- 修复错误使用上下文,导致刷新物化视图任务可能非预期失败的问题。[#39690](https://github.com/apache/doris/pull/39690) - -- 修复基于外表创建异步物化视图时,VARCHAR 类型因长度不合理导致写入失败的问题。[#37668](https://github.com/apache/doris/pull/37668) - -- 修复 FE 重启或 Catalog 重建后,基于外表的异步物化视图可能失效的问题。[#39355](https://github.com/apache/doris/pull/39355) - -- 禁止 List 分区的物化视图使用分区上卷,以防止生成错误数据。[#38124](https://github.com/apache/doris/pull/38124) - -- 修复在聚合上卷透明改写时,SELECT List 中存在字面量导致的结果错误问题。[#38958](https://github.com/apache/doris/pull/38958) - -- 修复当查询中存在形如`a = a`的过滤条件时,透明改写可能出错的问题。[#39629](https://github.com/apache/doris/pull/39629) - -- 修复透明改写直查外表无法成功的问题。[#39041](https://github.com/apache/doris/pull/39041) - -### 半结构化数据管理 - -- 删除老优化器上 `PreparedStatement` 的支持。[#39465](https://github.com/apache/doris/pull/39465) - -- 修复 JSON 转义字符处理的问题。[#37251 ](https://github.com/apache/doris/pull/37251) - -- 修复 JSON 字段重复处理的问题。 [#38490](https://github.com/apache/doris/pull/38490) - -- 修复部分 ARRAY MAP 函数的问题。[#39307](https://github.com/apache/doris/pull/39307) [ #39699 ](https://github.com/apache/doris/pull/39699) [#39757](https://github.com/apache/doris/pull/39757) - -- 修复倒排索引查询和 LIKE 查询复杂组合的问题。[#36687](https://github.com/apache/doris/pull/36687) - -### 查询优化器 - -- 修复分区过滤条件中存在 `or` 时,可能导致分区裁剪错误的问题。[#38897 ](https://github.com/apache/doris/pull/38897) - -- 修复存在复杂表达式时,可能导致的分区裁剪错误的问题。[#39298](https://github.com/apache/doris/pull/39298) - -- 修复 AGG_STATE 类型中的子类型,Nullable 可能规划不正确导致执行报错的问题。[#37489](https://github.com/apache/doris/pull/37489) - -- 修复 Set Operation 算子 Nullable 可能规划不正确,导致执行报错的问题。[#39109](https://github.com/apache/doris/pull/39109) - -- 修复 Intersect 算子执行优先级不正确的问题。 [#39095](https://github.com/apache/doris/pull/39095) - -- 修复当查询中存在最大合法日期字面量时,可能出现 NPE 的问题。[#39482](https://github.com/apache/doris/pull/39482) - -- 修复偶现的规划报错,导致的执行时报错 Slot 不合法的问题。[#39640](https://github.com/apache/doris/pull/39640) - -- 修复重复引用 CTE 中的列,可能导致结果缺少部分列数据的问题。[#39850](https://github.com/apache/doris/pull/39850) - -- 修复在查询中存在 CASE WHEN 时,偶现的规划报错问题。[#38491](https://github.com/apache/doris/pull/38491) - -- 修复不能将 IP 类型隐式转换为 STRING 类型的问题。[#39318](https://github.com/apache/doris/pull/39318) - -- 修复在使用多维聚合时,当 SELECT List 中存在相同列和其别名时,可能出现的规划报错问题。[#38166](https://github.com/apache/doris/pull/38166) - -- 修复使用 BE 常量折叠时,处理 BOOLEAN 类型可能不正确的问题。[#39019](https://github.com/apache/doris/pull/39019) - -- 修复在表达式中存在 `default_cluster:` 作为 Database 名称前缀导致的规划报错问题。[#39114](https://github.com/apache/doris/pull/39114) - -- 修复 Insert Into 可能导致的死锁问题。[#38660](https://github.com/apache/doris/pull/38660) - -- 修复没有在规划全过程持有表锁导致可能出现规划报错的问题。 [#38950](https://github.com/apache/doris/pull/38950) - -- 修复创建表时不能正确处理 CHAR(0), VARCHAR(0) 的问题。[#38427](https://github.com/apache/doris/pull/38427) - -- 修复 SHOW CREAT TABLE 可能错误的显示出隐藏列的问题。[#38796](https://github.com/apache/doris/pull/38796) - -- 修复创建表时没有禁止使用和隐藏列同名列的问题。 [#38796](https://github.com/apache/doris/pull/38796) - -- 修复在执行 INSERT INTO AS SELECT 时,如果存在 CTE,偶现的规划报错问题。[#38526](https://github.com/apache/doris/pull/38526) - -- 修复 INSERT INTO VALUES 无法自动填充 NULL 默认值的问题。[#39122](https://github.com/apache/doris/pull/39122) - -- 修复在 DELETE 中使用 CTE,但是没有使用 USING 时,导致的 NPE 问题。[#39379](https://github.com/apache/doris/pull/39379) - -- 修复对随机分布的聚合模型表执行删除操作会失败的问题。[#37985](https://github.com/apache/doris/pull/37985) - -### 执行引擎 - -- 修复多个场景下,Pipeline 执行引擎被卡顿,导致查询不结束的问题。[#38657](https://github.com/apache/doris/pull/38657) [#38206](https://github.com/apache/doris/pull/38206) [#38885](https://github.com/apache/doris/pull/38885) - -- 修复了 NULL 和非 NULL 列在差集计算时导致的 Coredump 问题。[#38737](https://github.com/apache/doris/pull/38737) - -- 修复了 `width_bucket` 函数结果错误的问题。[#37892](https://github.com/apache/doris/pull/37892) - -- 修复了当单行数据很大且返回结果集也很大时(超过 2GB)查询报错的问题。[#37990](https://github.com/apache/doris/pull/37990) - -- 修复了 `stddev` 在 `DecimalV2` 类型下结果错误的问题。[#38731](https://github.com/apache/doris/pull/38731) - -- 修复了 `MULTI_MATCH_ANY` 函数导致的 Coredump 问题。[#37959](https://github.com/apache/doris/pull/37959) - -- 修复了 INSERT OVERWRITE AUTO PARTITION 导致事务回滚的问题。[#38103](https://github.com/apache/doris/pull/38103) - -- 修复了 `convert_tz` 函数结果错误的问题。[#37358](https://github.com/apache/doris/pull/37358) [#38764](https://github.com/apache/doris/pull/38764) - -- 修复了 `collect_set` 函数结合窗口函数使用时 Coredump 的问题。[#38234](https://github.com/apache/doris/pull/38234) - -- 修复了 `mod` 函数在异常输入时导致的 Coredump 问题。[#37999](https://github.com/apache/doris/pull/37999) - -- 修复了多线程下执行相同表达式可能导致 Java UDF 结果错误的问题。[#38612](https://github.com/apache/doris/pull/38612) - -- 修复了 `conv` 函数返回类型错误导致的溢出问题。[#38001](https://github.com/apache/doris/pull/38001) - -- 修复了 `histogram` 函数结果不稳定的问题。[#38608](https://github.com/apache/doris/pull/38608) - -### 存储管理 - -- 修复备份恢复后,写入数据时可能出现不可读的问题。[#38343](https://github.com/apache/doris/pull/38343) - -- 修复跨版本 Restore Version 使用问题。[#38396](https://github.com/apache/doris/pull/38396) - -- 修复 Backup 失败时 Job 没有取消的问题。[#38993](https://github.com/apache/doris/pull/38993) - -- 修复 2.1.4 升级到 2.1.5 CCR 报 NPE,导致 FE 不能启动的问题。[#39910](https://github.com/apache/doris/pull/39910) - -- 修复 Restore 之后视图和物化视图不能使用的问题。[#38072](https://github.com/apache/doris/pull/38072) [#39848](https://github.com/apache/doris/pull/39848) - -### 数据导入 - -**Routine Load** - -- 修复 Routine Load 一流多表可能得内存泄露的问题。 [#38824](https://github.com/apache/doris/pull/38824) - -- 修复 Routine Load 包围符和转义符不生效的问题。[#38825](https://github.com/apache/doris/pull/38825) - -- 修复 Routine Load 任务名包含大写字母时 `show routineload` 结果不正确的问题。[#38826](https://github.com/apache/doris/pull/38826) - -- 修复改变 Routine Load Topic 时没有重置 Offset Cache 的问题。[#38474](https://github.com/apache/doris/pull/38474) - -- 修复并发情况下 `show routineload` 可能触发异常的问题。[#39525](https://github.com/apache/doris/pull/39525) - -- 修复 Routine Load 可能重复导入数据的问题。[#39526](https://github.com/apache/doris/pull/39526) - -**Group Commit** - -- 修复 JDBC 方式下打开 Group Commit 时 setNull 导致的数据报错问题 [#38276](https://github.com/apache/doris/pull/38276) - -- 修复打开 `group commit insert` 发往非 Master FE 时可能导致 NPE 问题 [#38345](https://github.com/apache/doris/pull/38345) - -- 修复 Group Commit 内部写数据错误处理不正确的问题。[#38997](https://github.com/apache/doris/pull/38997) - -- 修复 Group Commit 执行规划失败时可能触发的 Coredump。[#39396](https://github.com/apache/doris/pull/39396) - -**其它** - -- 修复并发导入 Auto Partition 表可能报 Tablet 不存在的问题。[#38793](https://github.com/apache/doris/pull/38793) - -- 修复可能的 Load Stream 泄露问题。[#39039](https://github.com/apache/doris/pull/39039) - -- 修复 INSERT INTO SELECT 没有数据时开启事务的问题。[#39108](https://github.com/apache/doris/pull/39108) - -- 使用 Memtable 前移时忽略单副本导入的配置。[#39154](https://github.com/apache/doris/pull/39154) - -- 修复后台导入 `stream load record` 遇见 Database 删除时异常中止的问题。 [#39527](https://github.com/apache/doris/pull/39527) - -- 修复 Strict Mode 模式下,出现数据错误时错误信息提示不准确的问题。[#39587](https://github.com/apache/doris/pull/39587) - -- 修复 Stream Load 遇见错误数据不返回 Error URL 的问题。[#38417](https://github.com/apache/doris/pull/38417) - -- 修复 Insert Overwrite 和 Auto Partition 配合使用的问题。[#38442](https://github.com/apache/doris/pull/38442) - -- 修复 CSV 遇到行分隔符被包围符包围数据时解析错误的问题。[#38445](https://github.com/apache/doris/pull/38445) - -### 数据导出 - -- 修复导出操作中指定 `delete_existing_files` 属性后,可能会重复删除导出数据的问题。[#39304](https://github.com/apache/doris/pull/39304) - -### 权限管理 - -- 修复创建物化视图时,错误地要求拥有 ALTER TABLE 的权限的问题。[#38011](https://github.com/apache/doris/pull/38011) - -- 修复 `show routine load` 时,Database 显式为空的问题。[#38365](https://github.com/apache/doris/pull/38365) - -- 修复 `create table like` 错误的要求拥有对原表的创建权限的问题。[#37879](https://github.com/apache/doris/pull/37879) - -- 修复赋权操作没有检查对象是否存在的问题。[#39597](https://github.com/apache/doris/pull/39597) - -## 版本升级说明 - -Doris 升级请遵守不要跨两个二位版本升级的原则,依次往后升级。 - -比如从 0.15.x 升级到 2.0.x 版本,则建议先升级至 1.1 最新版本,然后升级到最新的 1.2 版本,最后升级到最新的 2.0 版本,以此类推。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.7.md deleted file mode 100644 index 464d751ac189d..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.7.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -{ - "title": "Release 2.1.7", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.7 版本已于 2024 年 11 月 10 日正式发布。2.1.7 版本持续升级改进,同时在湖仓一体、异步物化视图、半结构化数据管理、查询优化器、执行引擎、存储管理、以及权限管理等方面完成了若干修复。欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.7 版本已于 2024 年 11 月 10 日正式发布。**2.1.7 版本持续升级改进,同时在湖仓一体、异步物化视图、半结构化数据管理、查询优化器、执行引擎、存储管理、以及权限管理等方面完成了若干修复。欢迎大家下载使用。 - -- [立即下载](https://doris.apache.org/download) -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.7-rc03) - -## 行为变更 - -- 以下全局变量会被强制设置到下列默认值 - - enable_nereids_dml: true - - enable_nereids_dml_with_pipeline: true - - enable_nereids_planner: true - - enable_fallback_to_original_planner: true - - enable_pipeline_x_engine: true -- 审计日志增加了新的列 [#42262](https://github.com/apache/doris/pull/42262) - - 更多信息,请参考[管理指南](../../admin-manual/audit-plugin) - -## 新功能 - -### 异步物化视图 - -- 异步物化视图增加了一个属性 use_for_rewrite 用于控制是否参与透明改写 [#40332](https://github.com/apache/doris/pull/40332) - -### 查询执行引擎 - -- 在 Profile 中输出变更的 session variable 列表。[#41016 ](https://github.com/apache/doris/pull/41016) -- 增加了`trim_in`、`ltrim_in` 和 `rtrim_in` 函数的支持。[#42641](https://github.com/apache/doris/pull/42641) -- 增加了一些 URL 函数,包括对 `to``p_level_domain`、`first_significant_subdomain` 、`cut_to_first_significant_subdomain` 支持。[#42916](https://github.com/apache/doris/pull/42916) -- 增加了 `bit_set` 函数。[#42099](https://github.com/apache/doris/pull/42099) -- 增加了`count_substrings` 函数。[#42055](https://github.com/apache/doris/pull/42055) -- 增加 `translate` 和 `url_encode` 函数。[#41051](https://github.com/apache/doris/pull/41051) -- 增加 `normal_cdf`, `to_iso8601`, `from_iso8601_date` 函数。[ #40695](https://github.com/apache/doris/pull/40695) - - -### 存储管理 - -- 增加了 `information_schema.table_options` 和 `information_schema.``table_properties` 系统表,支持查询建表时设置的一些属性。[#34384](https://github.com/apache/doris/pull/34384) - - 更多信息,请参考系统表: - - [table_options](../../admin-manual/system-tables/information_schema/table_options) - - [table_properties](../../admin-manual/system-tables/information_schema/table_properties) -- 支持 `bitmap_empty` 作为默认值。[#40364](https://github.com/apache/doris/pull/40364) -- 增加了一个新的 Session 变量`require_sequence_in_insert` 来控制向 Unique Key 表进行`insert into select` 写入时,是否必须提供 Sequence 列。[#41655](https://github.com/apache/doris/pull/41655) - -### 其他 - -允许在 BE WebUI 页面生成火焰图。[#41044](https://github.com/apache/doris/pull/41044) - -## 改进提升 - -### 湖仓一体 - -- 支持写入数据到 Hive Text 格式表。[#40537](https://github.com/apache/doris/pull/40537) - - 更多信息,请参考[使用 Hive 构建数据湖](../../lakehouse/catalogs/hive-catalog)文档 -- 使用 MaxCompute Open Storage API 访问 MaxCompute 数据。[#41610](https://github.com/apache/doris/pull/41610) - - 更多信息,请参考 [MaxCompute](../../lakehouse/catalogs/maxcompute-catalog) 文档 -- 支持 Paimon DLF Catalog。[#41694](https://github.com/apache/doris/pull/41694) - - 更多信息,请参考 [Paimon Catalog](../../lakehouse/catalogs/paimon-catalog) 文档 -- 新增语法 `table$partitions` 语法支持直接查询 Hive 分区信息 [#41230](https://github.com/apache/doris/pull/41230) - - 更多信息,请参考[通过 Hive 分析数据湖](../../lakehouse/catalogs/hive-catalog)文档 -- 支持 brotli 压缩格式的 Parquet 文件读取。[#42162](https://github.com/apache/doris/pull/42162) -- 支持读取 Parquet 文件中的 DECIMAL 256 类型。[#42241](https://github.com/apache/doris/pull/42241) -- 支持读取 OpenCsvSerde 格式的 Hive 表。[#42939](https://github.com/apache/doris/pull/42939) - -### 异步物化视图 - -- 细化了异步物化视图中构建时锁持有的粒度。[#40402](https://github.com/apache/doris/pull/40402) [#41010](https://github.com/apache/doris/pull/41010) - -### 查询优化器 - -- 优化了极端情况下统计信息收集和使用的准确性,以提升规划稳定性。[#40457](https://github.com/apache/doris/pull/40457) -- 现在可以在更多情况下生成 Runtime Filter,以提升查询性能。 [#40815](https://github.com/apache/doris/pull/40815) -- 提升数值,日期和字符串函数的常量折叠能力,以提升查询性能。[#40820 ](https://github.com/apache/doris/pull/40820) -- 优化了列裁剪的算法,以提升查询性能。[#41548](https://github.com/apache/doris/pull/41548) - -### 查询执行引擎 - -- 支持并行的 Prepare 降低短查询的耗时。[#40270](https://github.com/apache/doris/pull/40270) -- 修正了 Profile 中一些 Counter 的名字,保持跟审计日志一致。[#41993](https://github.com/apache/doris/pull/41993) -- 增加了新的 Local Shuffle 规则,使得部分查询更快。[#40637](https://github.com/apache/doris/pull/40637) - -### 存储管理 - -- Show Partitions 命令支持显示 Commit Version。 [#28274](https://github.com/apache/doris/pull/28274) -- 建表时检查不合理的 Partition EXPR。[#40158](https://github.com/apache/doris/pull/40158) -- 优化 Routine Load EOF 时的调度逻辑。[#40509](https://github.com/apache/doris/pull/40509) -- Routine Load 感知 Schema 变化。[#40508](https://github.com/apache/doris/pull/40508) -- 优化 Routine Load Task 超时逻辑。[#41135](https://github.com/apache/doris/pull/41135) - -### 其他 - -- 支持通过 BE 配置关闭 BRPC 的内置服务端口。[#41047](https://github.com/apache/doris/pull/41047) -- 修复审计日志缺失字段以及重复记录的问题。[#41047](https://github.com/apache/doris/pull/43015) - -## Bug 修复 - -### 湖仓一体 - -- 修复了 INSERT OVERWRITE 的行为跟 Hive 不一致的问题。[#39840](https://github.com/apache/doris/pull/39840) -- 清理临时创建的文件夹,解决 HDFS 上空文件夹太多的问题。[#40424](https://github.com/apache/doris/pull/40424) -- 修复某些情况下,使用 JDBC Catalog 导致 FE 内存泄露的问题。[#40923](https://github.com/apache/doris/pull/40923) -- 修复某些情况下,使用 JDBC Catalog 导致 BE 内存泄露的问题。[#41266](https://github.com/apache/doris/pull/41266) -- 修复某些情况下,读取 Snappy 压缩格式错误的问题。[#40862](https://github.com/apache/doris/pull/40862) -- 修复某些情况下,FE 端 FileSystem 可能泄露的问题。[#41108](https://github.com/apache/doris/pull/41108) -- 修复某些情况下,通过 EXPLAIN VERBOSE 查看外表执行计划可能导致空指针的问题。[#41231](https://github.com/apache/doris/pull/41231) -- 修复无法读取 Paimon parquet 格式表的问题。[#41487](https://github.com/apache/doris/pull/41487) -- 修复 JDBC Oracle Catalog 兼容性改动引入的性能问题。[#41407](https://github.com/apache/doris/pull/41407) -- 禁止下推隐式转换后的谓词条件已解决 JDBC Catalog 某些情况下查询结果不正确的问题。[#42242](https://github.com/apache/doris/pull/42242) -- 修复 External Catalog 中表名大小写访问异常的一些问题。[#42261](https://github.com/apache/doris/pull/42261) - -### 异步物化视图 - -- 修复用户指定的 Start Time 不生效的问题。[#39573](https://github.com/apache/doris/pull/39573) -- 修复嵌套物化视图不刷新的问题。[#40433](https://github.com/apache/doris/pull/40433) -- 修复删除重建基表后,物化视图可能不刷新的问题。[#41762](https://github.com/apache/doris/pull/41762) -- 修复分区补偿改写可能导致结果错误的问题。[#40803](https://github.com/apache/doris/pull/40803) -- 当 `sql_select_limit` 设置时,改写结果可能错误的问题。[#40106](https://github.com/apache/doris/pull/40106) - -### 半结构化管理 - -- 修复了索引文件句柄泄露的问题。[#41915](https://github.com/apache/doris/pull/41915) -- 修复了特殊情况下倒排索引 `count()` 不准确的问题。[#41127](https://github.com/apache/doris/pull/41127) -- 修复了未开启 Light Schema Change 时 Variant 异常的问题。[#40908](https://github.com/apache/doris/pull/40908) -- 修复了 Variant 返回数组时内存泄漏的问题。[#41339](https://github.com/apache/doris/pull/41339) - -### 查询优化器 - -- 修正了外表查询时,可能存在过滤条件 nullable 计算错误,导致执行异常的问题。[#41014](https://github.com/apache/doris/pull/41014) -- 修复范围比较表达式优化可能发生错误的问题。[#41356](https://github.com/apache/doris/pull/41356) - -### 查询执行引擎 - -- `match_regexp` 函数不能正确处理空字符串的问题。[#39503](https://github.com/apache/doris/pull/39503) -- 解决在高并发场景下,Scanner 线程池卡死的问题。[#40495](https://github.com/apache/doris/pull/40495) -- 修复了 `data_floor` 函数结果错误的问题。[#41948](https://github.com/apache/doris/pull/41948) -- 修复了部分场景下,Cancel 消息不正确的问题。[#41798](https://github.com/apache/doris/pull/41798) -- 修复 Arrow Flight 打印太多的 Warn 日志的问题。[#41770] (https://github.com/apache/doris/pull/41770) -- 解决部分场景下 Runtime Filter 发送失败的问题。[#41698](https://github.com/apache/doris/pull/41698) -- 修复了一些系统表查询的时候不能正常结束或者卡住的问题。[#41592](https://github.com/apache/doris/pull/41592) -- 修复了窗口函数结果不正确的问题。[#40761](https://github.com/apache/doris/pull/40761) -- 修复 ENCRYPT 和 DECRYPT 函数导致 BE Core 的问题。[#40726](https://github.com/apache/doris/pull/40726) -- 修复 CONV 函数结果错误的问题。[#40530](https://github.com/apache/doris/pull/40530) - -### 存储管理 - -- Memtable 前移在多副本情况下,有机器宕机时导入失败的问题。[#38003](https://github.com/apache/doris/pull/38003) -- 导入过程中,Memtable 在 Flush 阶段时,统计的内存不准确。[#39536](https://github.com/apache/doris/pull/39536) -- 修复 Memtable 前移多副本容错的问题。[#40477](https://github.com/apache/doris/pull/40477) -- 修复 Memtable 前移 bvar 统计不准的问题。[#40985](https://github.com/apache/doris/pull/40985) -- 修复 s3 Load 进度汇报不准的问题。[#40987](https://github.com/apache/doris/pull/40987) - -### 权限管理 - -- 修复了 SHOW COLUMNS, SHOW SYNC, SHOW DATA FROM DB.TABLE 相关的权限问题。 [#39726](https://github.com/apache/doris/pull/39726) - -### Others - -- 修复 2.0 版本的审计日志插件在 2.1 版本无法使用的问题[#41400](https://github.com/apache/doris/pull/41400) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.8.md deleted file mode 100644 index 24edf0cf49b59..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.8.md +++ /dev/null @@ -1,181 +0,0 @@ ---- -{ - "title": "Release 2.1.8", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.8 版本已于 2025 年 01 月 24 日正式发布。 该版本持续在湖仓一体、异步物化视图、查询优化器与执行引擎、存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.8 版本已于 2025 年 01 月 24 日正式发布。** 该版本持续在湖仓一体、异步物化视图、查询优化器与执行引擎、存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。 - -- [立即下载](https://doris.apache.org/download) - -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.8-rc01) - - -## 行为变更 - -- 当通过 External Catalog 查询表名大小写不敏感的数据源(如 Hive)时,在之前版本中,可以使用任意大小写进行表名查询,但是在 2.1.8版本中,将严格遵循 Doris 自身的表名大小写敏感策略。 -- 添加环境变量 `SKIP_CHECK_ULIMIT` 以跳过 BE 进程内关于 ulimit 值校验检查,仅适用于 Docker 快速启动场景中应用。[#45267](https://github.com/apache/doris/pull/45267) -- 添加 `enable_cooldown_replica_affinity session` 变量控制冷热分层下查询选用副本亲和性 -- FE 添加配置` restore_job_compressed_serialization` 和 `backup_job_compressed_serialization` 用于解决 db tablet 数量非常大情况下备份和恢复操作时 FE OOM 的问题,默认关闭,打开之后无法降级 - -## 新功能 - -- **查询执行引擎:**Arrowflight 协议支持通过负载均衡设备访问 BE。 [#43281](https://github.com/apache/doris/pull/43281) -- **其他:**当前 Lambda 表达式支持捕获外部的列。 [#45186](https://github.com/apache/doris/pull/45186) - -## 改进提升 - -### 湖仓一体 - -- Hudi 版本更新至 0.15,并且优化了 Hudi 表的查询规划性能。 -- 优化了 MaxCompute 分区表的读取性能。 [#45148](https://github.com/apache/doris/pull/45148) -- 支持会话变量 enable_text_validate_utf8,可以忽略 CSV 格式中的 UTF8 编码检测。[#45537](https://github.com/apache/doris/pull/45537) -- 优化在高过滤率情况下,Parquet 文件延迟物化的性能。[#46183](https://github.com/apache/doris/pull/46183) - -### 异步物化视图 - -- 现在支持手动刷新异步物化视图中不存在的分区。[#45290](https://github.com/apache/doris/pull/45290) -- 优化了透明改写规划的性能。[#44786](https://github.com/apache/doris/pull/44786) - -### 查询优化器 - -- 提升了 Runtime Filter 的自适应能力。[#42640](https://github.com/apache/doris/pull/42640) -- 增加了在 MAX / MIN 聚合函数列上的过滤条件生成原始列过滤条件的能力。[#39252](https://github.com/apache/doris/pull/39252) -- 增加了在连接谓词上抽取单测过滤条件的能力。[#38479](https://github.com/apache/doris/pull/38479) -- 优化了谓词推导在集合算子上的能力,可以更好的生成过滤谓词。[#39450](https://github.com/apache/doris/pull/39450) -- 优化了统计信息收集和使用的异常处理能力,避免在收集异常时产生非预期的执行计划。[#43009](https://github.com/apache/doris/pull/43009) [#43776](https://github.com/apache/doris/pull/43776) [#43865](https://github.com/apache/doris/pull/43865) [#42104](https://github.com/apache/doris/pull/42104) [#42399](https://github.com/apache/doris/pull/42399) [#41729](https://github.com/apache/doris/pull/41729) - -### 查询执行引擎 - -- Resource group 支持在当前 group 不可用的时候,降级到别的 Group. [#44255](https://github.com/apache/doris/pull/44255) -- 优化带 limit 的查询执行使其能够更快的结束,避免多余的数据扫描。[#45222](https://github.com/apache/doris/pull/45222) - -### 存储管理 - -- CCR 支持了更加全面的操作,比如 Rename Table,Rename Column,Modify Comment,Drop View,Drop Rollup 等。 -- 提升了 Broker Load 导入进度的准确性和多个压缩文件导入时的性能。 -- 改进了 Routine Load 超时策略、线程池使用以防止 Routine Load 超时失败和影响查询。 - -### 其他 - -- Docker 快速启动镜像支持不设置环境参数直接启动,添加环境变量 `SKIP_CHECK_ULIMIT` 以跳过 `start_be.sh` 脚本以及 BE 进程内关于 `swap`、`max_map_count`、`ulimit` 相关校验检查,仅适用于 Docker 快速启动场景中应用。[#45269](https://github.com/apache/doris/pull/45269) -- 新增 LDAP 配置型 `ldap_group_filter` 用于自定义 Group 过滤。[#43292](https://github.com/apache/doris/pull/43292) -- 优化了使用 Ranger 时的性能。[#41207](https://github.com/apache/doris/pull/41207) -- 修复审计日志中,`scan bytes` 统计不准的问题。[#45167](https://github.com/apache/doris/pull/45167) -- 在 COLUMNS 系统表中能够正确显示列的默认值。[#44849](https://github.com/apache/doris/pull/44849) -- 在 VIEWS 系统表中能够正确显示视图的定义。[#45857](https://github.com/apache/doris/pull/45857) -- 当前,admin 用户不能被删除。[#44751](https://github.com/apache/doris/pull/44751) - -## Bug 修复 - -### 湖仓一体 - -- Hive - - - 修复无法查询 Spark 创建的 Hive 视图的问题。[#43553](https://github.com/apache/doris/pull/43553) - - - 修复无法正确读取某些 Hive Transaction 表的问题。[#45753](https://github.com/apache/doris/pull/45753) - - - 修复 Hive 表分区存在特殊字符时,无法进行正确分区裁剪的问题。[#42906](https://github.com/apache/doris/pull/42906) - -- Iceberg - - - 修复在 Kerberos 认证环境下,无法创建 Iceberg 表的问题。[#43445](https://github.com/apache/doris/pull/43445) - - - 修复某些情况下,Iceberg 表存在 dangling delete 情况下,`count(*)` 查询不准确的问题。[#44039](https://github.com/apache/doris/pull/44039) - - - 修复某些情况下,Iceberg 表列名不匹配导致查询错误的问题[#44470](https://github.com/apache/doris/pull/44470) - - - 修复某些情况下,当 Iceberg 表分区被修改后,无法读取的问题[#45367](https://github.com/apache/doris/pull/45367) - -- Paimon - - - 修复 Paimon Catalog 无法访问阿里云 OSS-HDFS 的问题。[#42585](https://github.com/apache/doris/pull/42585) - -- Hudi - - - 修复某些情况下,Hudi 表分区裁剪失效的问题。[#44669](https://github.com/apache/doris/pull/44669) - -- JDBC - - - 修复某些情况下,开始表名大小写不敏感功能后,使用 JDBC Catalog 无法获取表的问题。 - -- MaxCompute - - - 修复某些情况下,MaxCompute 表分区裁剪失效的问题。[#44508](https://github.com/apache/doris/pull/44508) - -- 其他 - - - 修复某些情况下,Export 任务导致 FE 内存泄露的问题。[#44019](https://github.com/apache/doris/pull/44019) - - - 修复某些情况下,无法使用 HTTPS 协议访问 S3 对象存储的问题。[#44242](https://github.com/apache/doris/pull/44242) - - - 修复某些情况下,Kerberos 认证票据无法自动刷新的问题。[#44916](https://github.com/apache/doris/pull/44916) - - - 修复某些情况下,读取 Hadoop Block 压缩格式文件出错的问题。[#45289](https://github.com/apache/doris/pull/45289) - - - 查询 ORC 格式的数据时,不再下推 CHAR 类型的谓词,以避免可能的结果错误。[#45484](https://github.com/apache/doris/pull/45484) - -### 异步物化视图 - -- 修复了当物化视图定义中存在 CTE 时,无法刷新的问题。[#44857](https://github.com/apache/doris/pull/44857) -- 修复了当基表增加列后,异步物化视图不能命中透明改写的问题。[#44867](https://github.com/apache/doris/pull/44867) -- 修复了当查询中在不同位置包含相同的过滤谓词时,透明改写失败的问题。[#44575](https://github.com/apache/doris/pull/44575) -- 修复了当过滤谓词或连接谓词中使用列的别名时,无法透明改写的问题。[#44779](https://github.com/apache/doris/pull/44779) - -### 索引 - -- 修复倒排索引 Compaction 异常处理的问题 [#45773](https://github.com/apache/doris/pull/45773) -- 修复倒排索引构建因为等锁超时失败的问题 [#43589](https://github.com/apache/doris/pull/43589) -- 修复异常情况下倒排索引写入 Crash 的问题。[#46075](https://github.com/apache/doris/pull/46075) -- 修复 Match 函数特殊参数时空指针的问题 [#45774](https://github.com/apache/doris/pull/45774) -- 修复 VARIANT 倒排索引相关的问题,禁用 VARIANT 使用索引 v1 格式。[#43971](https://github.com/apache/doris/pull/43971) [#45179](https://github.com/apache/doris/pull/45179/) - -- 修复 NGram Bloomfilter Index 设置 `gram_size = 65535` 时 Crash 的问题。[#43654](https://github.com/apache/doris/pull/43654) -- 修复 Bloomfilter Index 计算 DATE 和 DATETIME 不对的问题。[#43622](https://github.com/apache/doris/pull/43622) -- 修复 Drop Coloumn 没有自动 Drop Bloomfilter Index 的问题。[#44478](https://github.com/apache/doris/pull/44478) -- 减少 Bloomfilter Index 写入时的内存占用。[#46047](https://github.com/apache/doris/pull/46047) - -### 半结构化数据类型 - -- 优化内存占用,降低 VARIANT 数据类型的内存消耗。[#43349](https://github.com/apache/doris/pull/43349) [#44585](https://github.com/apache/doris/pull/44585) [#45734](https://github.com/apache/doris/pull/45734) -- 优化 VARIANT Schema Copy 性能。[#45731](https://github.com/apache/doris/pull/45731) -- 自动推断 Tablet Key 时不将 VARIANT 作为 Key。[#44736](https://github.com/apache/doris/pull/44736) -- 修复 VARIANT 从 NOT NULL 改成 NULL 的问题。[#45734](https://github.com/apache/doris/pull/45734) -- 修复 Lambda 函数类型推断错误的问题。[#45798](https://github.com/apache/doris/pull/45798) -- 修复 `ipv6_cidr_to_range` 函数边界条件 Coredump。[#46252](https://github.com/apache/doris/pull/46252) - -### 查询优化器 - -- 修复了潜在的表读锁互斥导致的死锁问题,并优化了锁的使用逻辑[#45045](https://github.com/apache/doris/pull/45045) [#43376](https://github.com/apache/doris/pull/43376) [#44164](https://github.com/apache/doris/pull/44164) [#44967](https://github.com/apache/doris/pull/44967) [#45995](https://github.com/apache/doris/pull/45995) -- 修复了 SQL Cache 功能错误的使用常量折叠导致在使用包含时间格式的函数时结果不正确的问题。[#44631](https://github.com/apache/doris/pull/44631) -- 修复了比较表达式优化,在边缘情况下可能优化错误,导致结果不正确的问题。[#44054](https://github.com/apache/doris/pull/44054) [#44725](https://github.com/apache/doris/pull/44725) [#44922](https://github.com/apache/doris/pull/44922) [#45735](https://github.com/apache/doris/pull/45735) [#45868](https://github.com/apache/doris/pull/45868) -- 修复高并发点查审计日志不正确的问题。[ #43345 ](https://github.com/apache/doris/pull/43345)[#44588](https://github.com/apache/doris/pull/44588) -- 修复高并发点查遇到异常后持续报错的问题。[#44582](https://github.com/apache/doris/pull/44582) -- 修复部分字段 Prepared Statement 不正确的问题。[#45732 ](https://github.com/apache/doris/pull/45732) - -### 查询执行引擎 - -- 修复了正则表达式和 LIKE 函数在特殊字符时结果不对的问题。[#44547](https://github.com/apache/doris/pull/44547) -- 修复 SQL Cache 在切换 DB 的时候结果可能不对的问题。[#44782](https://github.com/apache/doris/pull/44782) -- 修复`cut_ipv6` 函数结果不对的问题。[#43921](https://github.com/apache/doris/pull/43921) -- 修复数值类型到 bool 类型 cast 的问题。[#46275](https://github.com/apache/doris/pull/46275) -- 修复了一系列 Arrow Flight 相关的问题。[#45661](https://github.com/apache/doris/pull/45661) [#45023](https://github.com/apache/doris/pull/45023) [#43960](https://github.com/apache/doris/pull/43960) [#43929](https://github.com/apache/doris/pull/43929) -- 修复了当 hashjoin 的 hash 表超过 4G 时,部分情况结果错误的问题。[#46461](https://github.com/apache/doris/pull/46461/files) -- 修复了 convert_to 函数在中文字符时溢出的问题。[#46505](https://github.com/apache/doris/pull/46405) - -### 存储管理 - -- 修复高并发 DDL 可能导致 FE 启动失败的问题。 -- 修复自增列可能出现重复值的问题。 -- 修复扩容时 Routine Load 不能使用新扩容 BE 的问题。 - -### 权限管理 - -- 修复使用 Ranger 作为鉴权插件时,频繁访问 Ranger 服务的问题[#45645](https://github.com/apache/doris/pull/45645) - -### Others - -- 修复 BE 端开启 `enable_jvm_monitor=true` 后可能导致的内存泄露问题。[#44311](https://github.com/apache/doris/pull/44311) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.9.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.9.md deleted file mode 100644 index 3b41d22567c9f..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v2.1/release-2.1.9.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -{ - "title": "Release 2.1.9", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.9 版本已于 2025 年 04 月 02 日正式发布。 该版本持续在倒排索引、查询优化器与存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.9 版本已于 2025 年 04 月 02 日正式发布。** 该版本持续在倒排索引、查询优化器与存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。 - -- [立即下载](https://doris.apache.org/download) - -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.9-rc02) - - -## 行为变更 - -- Audit Log 中的 SQLHash 现在通过当前执行的 SQL 精确计算,解决了同一请求中所有 SQL 使用相同 SQLHash 的问题。[#48242](https://github.com/apache/doris/pull/48242) -- 查询返回的 ColumnLabelName 与 SQL 中的输入完全一致。[#47093 ](https://github.com/apache/doris/pull/47093) -- 所有在用户属性中设置的变量,优先级均高于 session 级别设置的变量。 [#47185](https://github.com/apache/doris/pull/47185) - -## 新功能 - -### 存储管理 - -- 禁止 rename 分区列。[#47596](https://github.com/apache/doris/pull/47596) - -### 其他 - -- FE 监控指标新增 Catalog、Database、Table 数量指标。[#47891](https://github.com/apache/doris/pull/47891) - -## 改进提升 - -### 倒排索引 - -- VARIANT 类型中的 ARRAY 支持倒排索引。[#47688 ](https://github.com/apache/doris/pull/47688) -- Profile 中展示每个过滤条件的倒排索引性能指标。[#47504](https://github.com/apache/doris/pull/47504) - -### 查询优化器 - -- 支持在聚合查询中使用 `SELECT`` *`,如果下层 relation 仅输出聚合 key 列。[#48006](https://github.com/apache/doris/pull/48006) - -### 存储管理 - -- CCR 优化回收 binlog 效率、小文件传输效率,并增强了混沌环境下的健壮性。[#47547](https://github.com/apache/doris/pull/47547) [#47313 ](https://github.com/apache/doris/pull/47313)[#45061](https://github.com/apache/doris/pull/45061) -- 改进了导入的错误提示,使错误提示更加具体。[#47918](https://github.com/apache/doris/pull/47918) [#47470](https://github.com/apache/doris/pull/47470) - -## Bug 修复 - -### 湖仓一体 - -- 修复 BE 端无法正确配置 krb5.conf 路径的问题。[#47679](https://github.com/apache/doris/pull/47679) -- 禁止 `SELECT ``OUTFILE` 语句重试以避免重复导出数据。[#48095](https://github.com/apache/doris/pull/48095) -- 修复无法通过 JAVA API 访问 Paimon 表的问题。[#47192](https://github.com/apache/doris/pull/47192) -- 修复无法写入存储位置为 `s3a://` 的 Hive 表的问题。[#47162](https://github.com/apache/doris/pull/47162) -- 修复 Catalog 的 Comment 字段没有被持久化的问题。[#46946](https://github.com/apache/doris/pull/46946) -- 修复某些情况下,JDBC BE 端类加载泄漏的问题。[#46912](https://github.com/apache/doris/pull/46912) -- 修复 JDBC Catalog 无法使用高版本 ClickHouse JDBC Driver 的问题。 [#46026](https://github.com/apache/doris/pull/46026) -- 修复某些情况下,读取 Iceberg Position Delete 导致 BE 宕机的问题。[#47977](https://github.com/apache/doris/pull/47977) -- 修复多分区列情况下读取 MaxCompute 表数据错误的问题。[#48325](https://github.com/apache/doris/pull/48325) -- 修复某些情况下读取 Parquet 复杂列类型错误的问题。[#47734](https://github.com/apache/doris/pull/47734) - -### 倒排索引 - -- 修复 ARRAY 类型倒排索引空值处理错误的问题。[#48231](https://github.com/apache/doris/pull/48231) -- 修复对刚刚添加的列执行 `BUILD INDEX` 异常的问题。[#48389](https://github.com/apache/doris/pull/48389) -- 修复特殊字符 UTF8 编码索引被截断导致结果错误的问题。[#48657](https://github.com/apache/doris/pull/48657) - -### 半结构化数据类型 - -- 修复 `array_agg` 函数在特殊情况下 crash 的问题。[#46927](https://github.com/apache/doris/pull/46927) -- 修复 Stream Load 导入 JSON 类型时,chunk 参数设置错误导致 crash 的问题。 [#48196](https://github.com/apache/doris/pull/48196) - -### 查询优化器 - -- 修复时间函数内嵌套 `current_date` 等关键字函数无法的进行常量折叠的问题。[#47288](https://github.com/apache/doris/pull/47288) -- 修复非确定性函数相关的结果错误问题。[#48321](https://github.com/apache/doris/pull/48321) -- 修复当原表有 on update 列属性时,CREATE TABLE LIKE 无法执行的问题。[#48007](https://github.com/apache/doris/pull/48007) -- 修复直查聚合模型表的物化视图可能产生非预期规划报错的问题。[#47658](https://github.com/apache/doris/pull/47658) -- 修复 PrepareStatement 因为内部 ID 溢出导致异常的问题。[#47950](https://github.com/apache/doris/pull/47950) - -### 查询执行引擎 - -- 修复了查询系统表时,可能的查询卡住或者空指针的问题。[#48370](https://github.com/apache/doris/pull/48370) -- LEAD/LAG 函数支持了 DOUBLE 类型。[#47940](https://github.com/apache/doris/pull/47940) -- 修复了 `case when` 条件超过 256 个时,查询报错的问题。[#47179](https://github.com/apache/doris/pull/47179) -- 修复了 `str_to_date` 函数在空格的时候,结果错误的问题。[#48920](https://github.com/apache/doris/pull/48920) -- 修复了`split_part` 函数在常量折叠时遇到 || ,结果错误的问题。[#48910](https://github.com/apache/doris/pull/48910) -- 修复了 `log` 函数结果错误的问题。[#47228](https://github.com/apache/doris/pull/47228) -- 修复了 `array` / `map` 函数在 lambda 表达式中使用时导致的 core 的问题。[#49140](https://github.com/apache/doris/pull/49140) - -### 存储管理 - -- 修复了导入聚合表时,可能的内存写脏问题。[#47523](https://github.com/apache/doris/pull/47523) -- 修复内存紧张时 MoW 导入偶发 coredump 问题。[#47715](https://github.com/apache/doris/pull/47715) -- 修复 MoW 在 BE 重启和 Schema Change 时可能出现重复 key 的问题。[#48056](https://github.com/apache/doris/pull/48056) [#48775](https://github.com/apache/doris/pull/48775) -- 修复 Group Commit 和全局打开列更新以及 memtable 前移时的问题。[#48120](https://github.com/apache/doris/pull/48120) [#47968](https://github.com/apache/doris/pull/47968) - -### 权限管理 - -- 使用 LDAP 时不再会抛出 PartialResultException 异常。[#47858](https://github.com/apache/doris/pull/47858) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.0.md deleted file mode 100644 index b3685f79b2feb..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.0.md +++ /dev/null @@ -1,438 +0,0 @@ ---- -{ - "title": "Release 3.0.0", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,在近期我们迎来了 Apache Doris 3.0 版本的正式发布,欢迎大家下载使用体验!" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,在近期我们迎来了 Apache Doris 3.0 版本的正式发布,欢迎大家下载使用体验! - -**从 3.0 系列版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。基于云原生存算分离的架构,用户可以通过多计算集群实现查询负载间的物理隔离以及读写负载隔离,并借助对象存储或 HDFS 等低成本的共享存储系统来大幅降低存储成本。** - -3.0 版本是 Apache Doris 在湖仓一体演化路线上的重要里程碑版本。在 3.0 版本中 Apache Doris 增加了数据湖写回功能,用户可以在 Apache Doris 中完成多个数据源之间的数据分析、共享、处理、存储操作。结合异步物化视图等能力,Apache Doris 可以作为企业统一的湖仓数据处理引擎,帮助用户更好的管理湖、仓、数据库中的数据。与此同时,3.0 版本引入了 [Trino Connector](https://www.selectdb.com/blog/911) 类型,用户可以快速使用 Trino Connector 来连接或适配更多数据源、并可以利用 Apache Doris 的高性能计算引擎提供比 Trino 更快的数据查询能力。 - -3.0 版本同样对 ETL 批处理场景进行了增强,对`insert into select`、`delete` 和 `update` 操作提供了显式事务支持;对查询执行过程中的可观测性进行了增强。 - -在性能方面,3.0 版本的查询优化器在框架能力、基础设施以及规则扩充等方面做了重要增强,针对更复杂更多样的业务场景提供更极致的优化能力,盲测性能更高。实现了自适应的 Runtime Filter 计算方式,能够在运行时根据数据大小准确估算 Runtime Filter,在大数据量和高压力场景下有更好的性能表现。对异步物化视图的构建能力、透明改写能力以及性能均进行了增强,使得物化视图在查询加速、数据建模等场景具有更好的稳定性和易用性。 - -**在 3.0 版本的研发过程中,有超过 170 名贡献者为 Apache Doris 提交了近 5000 个优化与修复。** 来自飞轮科技、百度、美团、字节跳动、腾讯、阿里、快手、华为、天翼云等企业的贡献者与社区深度共建,贡献了大量来自真实业务场景下测试 Case 来帮助我们持续打磨、共同改进,在此向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - -## 1. 存算分离全新架构 - -从 Apache Doris 3.0 版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。 - -全新存算分离模式对计算与存储进行了解耦,计算节点不再存储主数据,而是引入共享存储层(HDFS 与对象存储)作为统一的数据主存储空间,计算资源和存储资源可以独立扩缩容,为用户带来了多方面价值: - -- **负载隔离**:多个计算集群共享同一份数据,用户可以使用多计算集群对不同业务或者在离线的负载进行隔离; - -- **存储成本大幅降低**:全量数据存储到成本更低且极其可靠的共享存储中,热数据仅在本地 Cache,相比存算一体三副本,存储成本最高下降至原先的 1/10; - -- **计算资源弹性**:数据不保存在计算节点,计算资源可以按照负载需求实现灵活弹性扩缩容,比如单个计算集群的扩缩容或者加减计算集群,弹性带来了资源配置的灵活性以及成本的降低; - -- **系统鲁棒性的提升**:数据存储到共享存储,Doris 不再有多副本一致性的逻辑,会大幅度简化分布式存储带来的复杂度,从而会提升系统的鲁棒性。 - -- **数据共享和克隆的灵活性**:存算分离架构的灵活性不止在一个 Doris 集群内部,在跨 Doris 集群时也应该体现出灵活性,比如 Doris 集群 A 中的库表可以轻量地在 Doris 集群 B 中完成克隆,即只做元数据级别的复制,不做数据的复制。 - -### 1-1. 从存算一体到存算分离 - -在存算一体模式中,Apache Doris 整体由 Frontend(FE)和 Backend(BE)两类进程组成,其中 FE 节点主要负责用户请求接入、查询解析规划、元数据管理和集群管理等相关工作,BE 节点主要负责数据存储和查询计划的执行,多 BE 节点间采取 MPP 分布式计算架构,通过多副本一致性协议来帮助服务的高可用和数据的高可靠。 - -![从存算一体到存算分离](/images/storage-compute-decoupled.PNG) - -新兴云计算基础设施的成熟,无论是公有云、私有云以及基于 K8s 的容器平台,云计算基础设施的革新催生了新的需求,越来越多用户期待 Apache Doris 针对云计算基础设施提供更加深度的适配,以便提供更加灵活强大的弹性能力,因此**飞轮科技团队早在 2022 年基于 Apache Doris 设计并实现了云原生存算分离版本(SelectDB Cloud),在经过数百家企业近两年的大规模生产打磨后,将其贡献回 Apache Doris 社区,即当前 3.0 版本的存算分离模式。** - -在存算分离模式下,Apache Doris 整体架构演化成**元数据层、计算层和共享存储层**三层: - -- **元数据层**:新引入 Meta Service 模块来提供系统的元数据服务,例如库表、Schema、Rowset Meta、事务等信息,是一个可以横向扩展的无状态服务。目前 BE 的 Meta 已经全部进入了 Meta Service,FE 的部分 Meta 已进入 Meta Service,其它 Meta 在后续版本中也会全部进入 Meta Service。 - -- **计算层**:负责执行查询规划,计算节点即无状态的 BE 节点,会缓存一部分 Tablet 元数据和数据到本地以提高查询性能。通过多个无状态的 BE 节点可以组成计算资源集合(即多计算集群),多个计算集群共享一份数据和元数据服务,计算集群支持随时弹性加减节点。 - -- **共享存储层**:数据持久化到共享存储层,目前支持 HDFS 以及 S3、OSS、GCS、Azure Blob、COS、BOS、MinIO 等各类云上兼容 S3 协议的对象存储系统。 - - -### 1-2 设计亮点 - -全新存算分离架构最大的设计亮点在于将 FE 全内存的元数据模式演变成共享的元数据服务,这一方案的优势在于,元数据服务提供了全局一致的状态视图,任何节点可以直接提交写入,不再需要经过 FE 做 Publish。写入时数据进入共享存储,元数据进入元数据服务,**可以有效控制共享存储上的小文件数量,同时单表的实时写入性能和存算一体相差无几,整个系统的写入能力不再受限于单 FE 的处理能力。** - -![Apache Doris 存算分离设计亮点](/images/storage-compute-decoupled-highlight-3.PNG) - -基于全局一致的状态视图,在数据 GC 时,我们采用了设计上容易证明正确性和效率更高的正向数据删除。具体而言,将共享存储中的数据纳入到在共享元数据服务提供的全局一致视图中,数据生成时绑定一个事务,元数据删除时也绑定一个事务,以此可以实现删除和写入不能一起成功,视图中记录了哪些数据需要删除,异步删除过程只需要根据事务记录正向删除数据即可,不需要反向 GC。 - -未来随着 FE 中 Tablet 相关的 Meta 进入共享服务,Doris 集群规模也不再受限于单 FE 内存。基于共享的元数据服务和正向的数据删除技术,在此基础上可以便捷地扩展数据共享、轻量克隆等功能。 - -### 1-3 业界同类方案对比 - -业界还有另一种存算分离架构的设计方案,将数据和 BE 节点的 Meta 存放在共享对象存储或者 HDFS 中,该方案会有如下的问题: - -- **无法承载实时写**:在写入数据时,数据会根据分区分桶规则映射到 Tablet 中并生成 Segment 文件以及 Rowset Meta。在写入阶段会通过 FE 进行两阶段提交(即 Publish),在 BE 节点接到 Publish 请求后再将 Rowset 设置为可见,Publish 是不允许失败的。如果将 Rowset Meta 保存在共享存储中,实时写入过程中的小文件数据是数据文件的三倍,一次写入数据结束后生成 Rowset Meta、一次 Publish 时更改 Rowset Meta 状态。Publish 是由 FE 节点单点驱动的,不论单个表或整个系统的写入能力都受限于 FE 节点。 - - ![Doris 与业界同类方案对比](/images/storage-compute-decoupled-comparison-4.png) - - 在 Apache Doris 3.0 版本正式发版后,我们对该方案实时数据写入性能与 Apache Doris 进行了对比。在此我们在相同计算资源下分别模拟 500 并发任务写入 10000 个 500 行的数据文件和 50 并发任务写入 250 个 20000 行的数据文件,可以看到在 50 并发下 **Apache Doris 存算分离和存算一体模式的微批写入性能基本相当,而该方案写入性能与 Apache Doris 差距达到 100 倍**。在 500 并发下,Apache Doris 存算分离模式性能稍有损耗,但对比该方案仍**有超过 11 倍的巨大优势**。为了保证测试公平性,Apache Doris 并未开启 Group Commit 服务端攒批的能力(该方案不具备此能力),而在开启 Group Commit 后实时写入能力还将进一步增强。 - - ![Doris 与业界同类方案对比](/images/storage-compute-decoupled-comparison-5.png) - - 此外该方案在实时写入方面还存在稳定性和成本问题: - - - 稳定性隐患:小文件数目多会给共享存储特别是 HDFS 带来更大的压力和不稳定隐患。 - - - 对象存储请求费用高:部分公有云对象存储的 Put 和 Delete 收费是 Get 的 10 倍,小文件数目多会导致对象存储请求费用大幅上升,甚至超过存储费用。 - -- **扩展性受限**:FE 的 Meta 是全内存的,存算分离模式下往往会面对更大规模的数据存储,因此当 Tablet 数量超大时(例如超过千万级别),FE 内存的压力较大;整个系统的写入能力受到 FE 单点瓶颈的限制。 - -- **数据删除逻辑隐患**:存算分离架构下数据只有一份,因此数据删除逻辑对于系统的可靠性至关重要。常规的跨系统数据删除做法是对比计算出差集,对于写入过程中的数据依赖超时时间,没办法从机制上 100% 避免删除和写入一起成功,删除和写入一起成功就会丢数据。另外在存储系统有异常时,用于计算差集的输入可能错误,这就可能导致误删除数据。 - -- **数据共享与轻量级克隆**:存算分离架构未来可以借助于架构的灵活性实现数据共享和轻量级数据克隆,降低企业数据管理的负担。如若每个集群是单独的 FE,跨集群克隆数据之后,很难计算出哪些数据没有被引用可以被删除,跨多个集群计算很容易误删数据。 - -与之相比,Doris 3.0 版本将 FE 全内存的元数据模式演变成共享的元数据服务有效地克服了以上问题。 - -### 1-4 查询性能对比 - -由于存算分离模式下数据需要从远端共享存储系统中读取,因此数据传输的主要瓶颈,从存算一体模式下的磁盘 IO 转变为存算分离模式下的网络带宽,在一定程度上会造成性能损耗。 - -为了加速数据访问,Apache Doris 实现了基于本地磁盘的高速缓存机制,并提供 LRU 和 TTL 两种高效的缓存管理策略,并对索引相关的数据进行了优化,旨在最大程度上缓存用户常用数据、提升查询性能。新导入的数据将异步写入缓存中,以加速最新数据的首次访问。如果查询所需数据不在缓存中,系统将从远端存储中读取该数据进内存并同步写入缓存中,以便于后续查询。在涉及多计算集群的应用场景中,Apache Doris 提供缓存预热功能,当新计算集群建立时,用户可以选择对特定的数据(如表或分区)进行预热,以进一步提高查询效率。 - -在此我们分别对存算一体模式和存算分离模式进行了不同缓存下的性能测试,以 TPC-DS 1TB 测试集为例,主要结果如下: - -- 完全命中缓存时(即查询的所有数据均被加载进缓存中)**存算分离模式与存算一体模式查询性能完全持平**; - -- 部分命中缓存时(即测试开始前清空所有缓存,初始状态下缓存中无任何数据,在测试过程中数据被逐渐加载进缓存中,性能随之持续提升)存算分离模式与存算一体模式查询性能基本相当,总体性能损耗约 10% ,这一测试场景也与用户实际应用中最为类似。 - -- 完全未命中任何缓存时(每次执行 SQL 前均清理所有缓存,模拟极端情况)性能损耗约 35%。即使在冷数据读取时存在一定性能损耗,但**相较于业内其他同类系统,存算分离模式下的 Apache Doris 仍有着极为明显的性能优势。** - -![Doris 查询性能对比](/images/storage-compute-decoupled-query-performance-6.png) - -### 1-5 写入性能对比 - -在写入性能方面,我们在相同计算资源下分别模拟了批量导入和高并发实时导入两大场景,存算一体模式和存算分离模式的写入性能对比结论如下: - -- 在批量数据导入场景,导入 TPC-H 1TB 和 TPC-DS 1TB 测试数据集,在存算一体模式采用单副本的情况下,**存算分离模式写入性能较存算一体模式分别提升了 20.05% 和 27.98%**。批量导入时 Segment 文件大小一般会在几十 MB 到上百 MB,存算分离模式会将 Segment 文件切分成多个小文件并发上传到对象存储,因而会带来比写本地磁盘更高的吞吐。实际部署中存算一体模式一般会采用三副本,此时存算分离模式的写入性能优势会更加明显。 - -- 高并发实时导入场景在前文中已介绍,在此不在赘述。 - -![Doris 写入性能对比](/images/storage-compute-decoupled-loading-performance-7.png) - -### 1-6 生产运行经验 - -- 性能:实时数据场景下可以指定 TTL 的 Cache 以及写入时数据进入 Cache,使查询性能达到与存算一体。Compaction 和 Schema Change 后台任务生成的数据根据热度进入 Cache 可以避免查询抖动。 - -- 负载隔离:多计算集群提供了物理层资源隔离,比如不同业务单元适合使用多计算集群隔离。单个计算集群内依然需要使用 Workload Group 对不同的查询做资源的限制和隔离。 - -### 1-7 注意事项 - -- 当前 3.0 版本存算一体模式与存算分离模式不可共存,用户在集群部署时需要指定其中一种模式进行部署。 - -- 存算一体模式的部署和升级可以正常按照官网文档进行,推荐采用 Doris Manager 进行快速部署和集群升级,存算分离模式暂不支持 Doris Manager 部署和升级,后续我们将会持续迭代以实现更好支持。 - -- 暂不支持从 2.1 版本原地升级至 3.0 存算分离模式,需要在存算分离集群部署完成后通过工具进行数据迁移,后续也会支持通过 CCR 能力实现不停服迁移。 - -:::info 备注 - -参考文档:[存算分离](../../compute-storage-decoupled/overview) - -::: - -## 2. 湖仓一体再进化 - -尽管 Apache Doris 定位于实时数据仓库,在以往版本中一直不拘于数据仓库的能力边界,在湖仓一体方向持续发力。而 3.0 版本是 Apache Doris 在湖仓一体路线上的重要里程碑版本,从 3.0 版本开始,Apache Doris 在湖仓一体场景的能力臻于完善。对于湖仓一体,我们认为其最核心的理念即**数据无界、湖仓融合:** - -**数据无界:将 Apache Doris 作为统一查询处理引擎,打破数据在不同系统间的屏障,在数据仓库、数据湖乃至数据流、本地数据文件等所有数据源端都能提供一致且极速的分析处理体验。** - -- **湖仓查询加速**:无需将数据迁移至 Apache Doris,用户便可直接利用 Doris 高效的查询引擎,直接查询 Iceberg、Hudi、Paimon 等数据湖和 Hive 等离线数仓中的数据,实现查询分析的加速。 - -- **联邦分析**:Apache Doris 通过扩展 Catalog 和存储插件,丰富其联邦分析能力,使用户无需将数据物理集中至统一的存储空间,在保持各数据源独立性和隐私性的同时,仅借助 Apache Doris 即可实现多个异构数据源的统一分析,既可以直查外部表以及存储文件、也可以执行内表和外表以及外表相互之间的关联分析,打破数据孤岛、提供全局一致性的数据洞察与分析。 - -- **数据湖构建:** Apache Doris 增加了 Hive、Iceberg 数据写回功能,写回功能支持用户直接通过 Doris 创建 Hive、Iceberg 表,并将数据写入到表中。基于此,用户可以将 Apache Doris 中的内表数据写回离线湖仓,或者对离线湖仓中的数据利用 Apache Doris 进行数据加工后落地回离线湖仓,从而实现更简化和高效的数据湖构建。 - -**湖仓融合:数据湖架构日益复杂,增加了用户技术选型成本与维护成本。同时实现多个系统一致的细粒度权限管控也变得非常困难,实时性也不足。为应对这一挑战,Apache Doris 融入了湖的核心特征,将其打造成一个轻量、高效的原生实时湖仓。** - -- **数据实时更新:** 从 1.2 版本开始 Apache Doris 增强了主键模型,引入 Merge-on-Write,支持实时更新。借助这一特性,上游数据变更可以基于主键进行高频实时数据更新。 - -- **数据科学与 AI 计算支撑:** 从 2.1 版本开始 Apache Doris 借助高效的 Arrow Flight 协议,增强了存储的开放性和对多计算负载的高效支持,这让 Apache Doris 支持数据科学和 AI 计算成为可能。 - -- **半结构化与非结构化数据增强:** Apache Doris 先后引入 Array / Map / Struct / JSON / Variant 等数据类型,未来还会支持向量索引。 - -- **存算分离资源能效提升:** 从 3.0 版本中支持了存算分离模式,进一步提升了资源效率和可扩展性。 - -### 2-1 湖仓查询加速 - -查询加速是湖仓一体化进程中的重要一环。借助 Apache Doris 强大的分布式查询引擎,可以帮助用户对湖仓数据进行快速分析。在 TPC-H 和 TPC-DS 标准测试集上,Apache Doris 的平均查询性能是 Trino/Presto 的 3-5 倍。 - -在 3.0 版本中,我们重点针对用户实际生产环境中的湖仓查询加速场景进行了优化,包括: - -- **更精细的任务拆分策略:** 通过对一致性哈希算法的调整以及引入任务分片权重机制,确保各个节点的查询负载均衡。 - -- **面向多分区、多文件场景的调度优化:** 在大量文件(100 万+)场景下,通过异步、分批获取文件分片的方式,显著降低查询耗时(100s -> 10s),并降低 FE 内存压力。 - -后续我们将进一步针对性的提升真实业务场景下的查询加速性能,提升用户实际感受,构建业界领先的湖仓查询加速引擎。 - -### 2-2 联邦分析 - 更丰富的数据源连接器 - -在之前的版本中,Apache Doris 已经支持了 10 余种主流湖、仓、关系型数据库的连接器。在 3.0 版本中,我们引入了 Trino Connector 兼容框架,极大扩展了 Apache Doris 可连接的数据源。借助该框架,仅需简单适配,用户即可通过 Doris 访问对应的数据源,并利用 Doris 的极速计算引擎进行数据分析。 - -目前 Doris 已完成 Delta Lake、Kudu、BigQuery、Kafka、TPCH、TPCDS 等多种 Connector 的适配,也欢迎所有开发者参考开发指南,为 Apache Doris 适配更多数据源。 - -:::info 备注 -参考文档: - -- [接入 Trino Connector](https://doris.apache.org/zh-CN/community/how-to-contribute/trino-connector-developer-guide) - -- [TPC-H](../../lakehouse/best-practices/tpch) - -- [TPC-DS](../../lakehouse/best-practices/tpcds) - -- [Delta Lake](../../lakehouse/catalogs/delta-lake-catalog) - -- [Kudu](../../lakehouse/catalogs/kudu-catalog) - -- [BigQuery](../../lakehouse/catalogs/bigquery-catalog) -::: - -### 2-3 数据湖构建 - -在 3.0 版本中,Apache Doris 增加了 Hive、Iceberg 数据写回功能。写回功能支持用户直接通过 Doris 创建 Hive、Iceberg 表,并将数据写入到表中。该功能使得 Apache Doris 在湖仓数据处理能力上形成闭环,用户可以在 Apache Doris 中完成多个数据源之间的数据分析、共享、处理、存储操作。 - -在后续的迭代版本中,Apache Doris 将进一步完善对数据湖表格式的支持以及存储 API 开放性。 - -:::info 备注 - -参考文档:[数据湖构建](../../lakehouse/catalogs/hive-catalog) - -::: - -## 3. 半结构化分析全面增强 - -在过去发布的 2.0 和 2.1 版本中,Apache Doris 陆续引入了倒排索引、N-Gram Bloom Filter、Variant 数据类型等重磅特性,支持高性能的全文检索和任意维度分析,对复杂半结构化数据的存储和处理分析更加灵活高效。 - -在 3.0 版本中,我们继续对这一场景能力进行了全面增强,在应对半结构化数据分析和日志检索分析场景的挑战时更加得心应手。 - -Variant 数据类型在经过大规模生产打磨后,已具备充分的稳定性,成为 JSON 数据存储和分析的首选。在 3.0 版本中我们对 Variant 类型进行了多项优化: - -- Variant 数据类型支持创建索引加速查询,包括倒排索引、Bloom Filter 索引以及内置的 ZoneMap 索引; - -- 对于包含 Variant 数据类型的 Unique 模型表,支持灵活的部分列更新; - -- Variant 数据类型支持在存算分离模式上使用,并对其元数据存储进行了优化; - -- 支持将 Variant 数据类型导出成 Parquet、CSV 等格式。 - -倒排索引自 2.0 版本开始被引入起,经历一年多的打磨,目前已具备较高的成熟度,在数百家企业的生产环境中长期运行。在 3.0 版本中,我们对倒排索引进行了多项优化: - -- 通过锁并发等一系列的性能优化,在实时报表分析场景中 Apache Doris 在查询延迟和并发等关键指标已大幅超过 Elasticsearch; - -- 在存算分离模式下优化了索引文件,减少远端存储的调用,大幅优化了索引查询延迟; - -- 增加了对 Array 类型的支持,加速 `array_contains` 查询; - -- 对短语查询系列 `match_phrase_*` 功能进行增强,包括支持词距 slop、短语前缀匹配 `match_phrase_prefix` 等。 - -## 4. ETL 能力持续增强 - -### 4-1. 事务增强 - -数据加工在数据仓库中是一个常见的场景,通常需要多个数据变更作为一个事务。Doris 3.0 对` insert into select`、`delete` 和 `update` 操作提供了显式事务支持。具体的应用场景比如: - -- 事务性要求:例如更新一个时间范围的数据,通常的做法是先删除这个时间范围的数据,然后写入。考虑到数据已经在服务,希望查询时要么看到老的数据要么看到新的数据,因此可以在一个事务中执行 `delete` 和 `insert into select`。 - - ```Java - BEGIN; - DELETE FROM table WHERE date >= "2024-07-01" AND date <= "2024-07-31"; - INSERT INTO table SELECT * FROM stage_table; - COMMIT; - ``` - -- 简化任务失败的处理:例如一个数据加工包含 2 个` insert into select`,在一个事务中去执行,任何一步失败只需要重新开始执行即可。 - - ```Java - BEGIN WITH LABEL label_etl_1; - INSERT INTO table1 SELECT * FROM stage_table1; - INSERT INTO table SELECT * FROM stage_table; - COMMIT; - ``` - -:::info 备注 - -参考文档: - -- [事务](../../data-operate/transaction/) - -- 目前 CCR 暂未支持显示事务同步。 -::: - -### 4-2 可观测性增强 - -- **Profile 实时获取**:在过去,某些复杂查询可能由于 Plan 的原因或者数据的原因,导致计算量特别大,开发者只有在查询结束后才能拿到 Profile 做性能分析以发现问题,有可能对线上系统产生影响。通过 Profile 实时获取,开发者可以在查询的运行过程中实时获取查询执行的 Profile,看到每个算子的执行情况,不需要等到查询执行结束。基于实时 Profile 获取功能,开发者还可以进一步监控每一 ETL 作业的执行进度。 - -- **系统表 backend_active_tasks**:`backend_active_tasks` 系统表提供了每个 Query 在每个 BE 上的实时资源消耗信息,可以通过 SQL 对系统表做分析计算,进而实时获得每个 Query 的资源使用量,有利于用户发现大查询或者不合理的工作负载。 - -## 5. 多表物化视图 - -在 Apache Doris 3.0 版本中,对多表物化视图的构建能力进行了增强并提高稳定性,拓展了透明改写的能力、透明改写性能提升 2 倍,重构了同步物化视图的透明改写逻辑并拓展了透明改写的能力,同时在异步物化视图的易用性上做了增强,让物化视图在查询加速,数据建模等场景更好用、更稳定。 - -### 5-1. 构建刷新功能 - -- 物化视图的支持分区增量更新,大大减少了物化视图的构建成本,并且支持物化视图分区上卷,满足不同粒度的分区刷新物化视图需求。 - -- 支持构建嵌套物化视图,在数据建模场景更好用。 - -- 允许异步物化视图创建索引和指定排序键,命中物化视图后查询速度会提升。 - -- 提高了物化视图 DDL 的易用性,支持物化视图原子替换,可以保证物化视图一直可用的情况下,修改物化视图定义 SQL。 - -- 允许物化视图使用非确定函数,在定时构建 T+1 物化数据的场景更易用。 - -- 新增了触发刷新物化的功能,在使用嵌套物化视图数据建模时,保证数据一致性。 - -- 拓展了可以构建分区物化视图的 SQL 模式,让更多的场景可以使用分区增量更新能力。 - -### 5-2. 构建刷新稳定性 - -- 支持指定物化视图构建时的 Workload Group,限制物化视图构建使用的资源,保障查询的可用资源。 - -### 5-3. 透明改写功能拓展 - -- 支持了更多 Join 类型的改写,并且支持了 Join 衍生改写。当查询和物化视图的 Join 的类型不一致时,如果物化可以提供查询所需的所有数据时,通过在 Join 的外部补偿谓词,也可以进行透明改写。 - -- 增强了聚合改写,支持了更多的聚合函数上卷,并且支持了多维聚合函数 GROUPING SETS、ROLLUP、CUBE 的改写,同时支持了查询包含聚合,物化不包含聚合的改写,可以节省 Join 连接和表达式计算。 - -- 支持了嵌套物化视图的透明改写,在复杂的查询加速场景下,可以借助嵌套物化视图来进行极致加速。 - -- 分区物化视图部分分区失效,支持物化视图 Union All 基表补全数据,增加了分区物化视图的适用范围。 - -### 5-4. 透明改写性能 - -- 持续优化了透明改写的性能,透明改写性能是 2.1.0 版本的两倍。 - -:::info 备注 -参考文档: - -- [异步物化视图概览](../../query-acceleration/materialized-view/async-materialized-view/overview.md) - -- [查询异步物化视图](../../query-acceleration/materialized-view/async-materialized-view/functions-and-demands.md) -::: - -## 6. 性能提升 - -### 6-1. 优化器更智能 - -在 3.0 版本中,查询优化器在框架能力、分布式计划支持、优化器基础设施以及规则扩充等方面做了重要增强,支持更复杂更多样的业务场景、提供更极致的优化能力,对于复杂 SQL 有更高的盲测性能: - -- **更完善的计划枚举能力**:对计划枚举的关键结构 Memo 做了 Projection 规范化重构,不仅提升了 Cascades 框架枚举有效计划的效率和枚举出更优计划的可能性,同时也修复了历史版本 Join Reorder 过程中列裁剪不完全导致的 Join 算子不必要开销等遗留问题,有效提升相应场景下的执行性能。 - -- **更完善的分布式计划支持**:对分布式查询计划做了增强,使得聚合,连接和窗口函数操作能更智能的识别中间运算结果的数据特征,避免无效的数据重分布操作,提升相应场景的性能。同时,3.0 版本中对多副本连续执行模式下的执行性能也进行了优化,使其对数据缓存更友好,相应性能也得到较大提升。 - -- **更完善的优化器基础设施**:在代价模型和统计信息估行方面,3.0 版本也修复了若干重要估行问题,代价模型问题的修复也更加适配执行引擎迭代,使得执行计划相较历史版本更稳定。 - -- **更丰富的 Runtime Filter 计划支持**:3.0 版本在传统 Join Runtime Filter 的基础上,拓展了 TopN Runtime Filter 的能力。典型场景如存在 TopN 算子时,可以生成 TopN 的 Runtime Filter 以获得更好的执行性能。 - -- **更丰富的优化规则库**:持续的增强和迭代基础优化规则库,通过持续不断地业务反馈和内测增强,3.0 版本中加入了如 Intersect Reorder 等典型的优化规则支持,使得优化器的规则成熟度得到了进一步的提升。 - -### 6-2. 自适应 Runtime Filter - -Runtime Filter 是否能够准确生成对查询性能的影响至关重要,在过去 Doris 非常依赖于用户手工设置或者优化器根据统计信息来生成,在某些情况下一旦设置不准确将会带来性能抖动。 - -在 3.0 版本实现了自适应的 Runtime Filter 计算方式,能够在运行时根据数据大小准确估算 Runtime Filter,在大数据量和高压力场景下有更好的性能表现。 - -### 6-3. 函数性能优化 - -- 3.0 版本对数十个函数的向量化实现做了改进,部分常用函数的性能提升 50% 以上。 - -- 对 Nullable 类型数据的聚合计算也做了大量优化,性能提升 30%。 - -### 6-4. 盲测性能进一步提升 - -我们对 3.0 版本与 2.1 版本分别在 TPC-DS 和 TPC-H 测试数据集上进行了盲测性能测试,查询性能分别提升了 7.3% 以及 6.2%。 - -![盲测性能进一步提升](/images/tpc-ds-and-tpc-h.png) - -## 7. 新功能 - -### 7-1. Java UDTF - -从 3.0 版本开始支持增加对 Java UDTF 的支持,主要操作如下: - -- 编写 UDTF:UDTF 和 UDF 函数一样,需要用户自主实现一个 `evaluate` 方法,注意 UDTF 函数的返回值必须是 Array 类型。 - - ```sql - public class UDTFStringTest { - public ArrayList evaluate(String value, String separator) { - if (value == null || separator == null) { - return null; - } else { - return new ArrayList<>(Arrays.asList(value.split(separator))); - } - } - } - ``` - -- 创建 UDTF:这里会默认创建两个对应的函数 `java-utdf`和 `java-utdf_outer`, `outer`的后缀在表函数生成 0 行数据时添加一行`Null`数据。 - - ```sql - CREATE TABLES FUNCTION java-utdf(string, string) RETURNS array PROPERTIES ( - "file"="file:///pathTo/java-udaf.jar", - "symbol"="org.apache.doris.udf.demo.UDTFStringTest", - "always_nullable"="true", - "type"="JAVA_UDF" - ); - ``` - -:::info 备注 -参考文档: [Java UDF - UDTF](../../query-data/udf/java-user-defined-function.md#java-udtf-实例介绍) -::: - -### 7-2 生成列 - -生成列是一种特殊的数据库表列,其值由其他列的值计算而来,而不是直接由用户插入或更新。该功能支持预先计算表达式的结果,并存储在数据库中,适用于需要频繁查询或进行复杂计算的场景。 - -生成列可以在数据导入或更新时自动根据预定义的表达式计算结果,并将这些结果持久化存储。在后续的查询过程中,可以直接访问这些已经计算好的结果,而无需在查询时再进行复杂的计算,从而显著减少查询时的计算负担,提升查询性能。 - -从 3.0 版本开始 Apache Doris 支持生成列功能,创建表时可以指定列为 Generated 列。Generated 列可在写入时,根据定义的表达式,自动获取计算结果。相比于 Default value,可以定义更为复杂的表达式,但不可以显式写入指定的值。 - -:::info 备注 - -参考文档: - -[CREATE TABLE AND GENERATED COLUMN](../../sql-manual/sql-statements/table-and-view/table/CREATE-TABLE.md) -::: - -## 8. 功能改进 - -### 8-1. 同步物化视图 - -重构同步物化视图选择逻辑,将选择逻辑从 RBO 迁移至 CBO,使其与异步物化视图保持一致。 - -此功能默认开启。如遇到问题,可使用开关 `set global enable_sync_mv_cost_based_rewrite = false` 回退到 RBO 模式。 - -### 8-2. Routine Load 导入 - -在之前的版本中,Routine Load 存在部分体验性问题:任务在 BE 节点之间调度不均、调度不及时,配置繁琐、需要同时改 FE 和 BE 的多个配置进行调优,稳定性不够高、重启或升级等都可能导致 Routine Load Job 暂停,需要人工介入才能恢复。我们针对这些问题对 Routine Load 做了大量的优化,使得 Routine Load 更高效、稳定且易用,为用户提供更好的体验。 - -- 资源调度方面,改善了任务在 BE 节点之间的调度均衡性,确保任务能够更加均匀地分配到各个节点。对于发生无法恢复错误的 Job 及时暂停,避免无效调度导致的资源浪费,并改进了调度的及时性,提升了 Routine Load 的导入性能。 - -- 参数配置方面,简化了配置过程,用户在大部分环境下无需修改 FE 和 BE 的配置进行调优。同时引入超时参数自动调整机制,避免集群压力增大时,任务持续超时重试。 - -- 稳定性方面,增强了其在各种异常场景下的稳定性,如 FE 切主、BE 滚动升级、Kafka 集群异常等都能持续稳定的工作。优化了 Auto Resume 机制,使得在故障恢复后 Routine Load 能够自动恢复运行,减少了用户的人工介入。 - -## 9 行为变更 - -- `cpu_resource_limit` 将不再支持,所有的资源隔离方式都依赖 Workload Group 实现。 - -- 从 3.0 版本开始请使用 JDK 17,推荐版本 `jdk-17.0.10_linux-x64_bin.tar.gz`。 - -## 立刻开启 3.0 - -在 3.0 版本正式发布之前,存算分离架构在 SelectDB 数百家企业的生产环境已经得到近两年的大规模打磨,同时来自百度、美团、字节跳动、腾讯、阿里、快手、华为、天翼云等企业多名贡献者与社区深度共建,贡献了大量来自真实业务场景下测试 Case,使得 3.0 版本在功能易用性和系统稳定性得到了有力验证,推荐有存算分离需求的用户下载 3.0 版本进行尝鲜。 - -后续我们也将加快发版迭代节奏,力求给所有用户带来更稳定的版本体验。 - - -## 致谢 - -在此再次向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢: - -@133tosakarin、@390008457、@924060929、@AcKing-Sam、@AshinGau、@BePPPower、@BiteTheDDDDt、@ByteYue、@CSTGluigi、@CalvinKirs、@Ceng23333、@DarvenDuan、@DongLiang-0、@Doris-Extras、@Dragonliu2018、@Emor-nj、@FreeOnePlus、@Gabriel39、@GoGoWen、@HappenLee、@HowardQin、@Hyman-zhao、@INNOCENT-BOY、@JNSimba、@JackDrogon、@Jibing-Li、@KassieZ、@Lchangliang、@LemonLiTree、@LiBinfeng-01、@LompleZ、@M1saka2003、@Mryange、@Nitin-Kashyap、@On-Work-Song、@SWJTU-ZhangLei、@StarryVerse、@TangSiyang2001、@Tech-Circle-48、@Thearas、@Vallishp、@WinkerDu、@XieJiann、@XuJianxu、@XuPengfei-1020、@Yukang-Lian、@Yulei-Yang、@Z-SWEI、@ZhongJinHacker、@adonis0147、@airborne12、@allenhooo、@amorynan、@bingquanzhao、@biohazard4321、@bobhan1、@caiconghui、@cambyzju、@caoliang-web、@catpineapple、@cjj2010、@csun5285、@dataroaring、@deardeng、@dongsilun、@dutyu、@echo-hhj、@eldenmoon、@elvestar、@englefly、@feelshana、@feifeifeimoon、@feiniaofeiafei、@felixwluo、@freemandealer、@gavinchou、@ghkang98、@gnehil、@hechao-ustc、@hello-stephen、@httpshirley、@hubgeter、@hust-hhb、@iszhangpch、@iwanttobepowerful、@ixzc、@jacktengg、@jackwener、@jeffreys-cat、@kaijchen、@kaka11chen、@kindred77、@koarz、@kobe6th、@kylinmac、@larshelge、@liaoxin01、@lide-reed、@liugddx、@liujiwen-up、@liutang123、@lsy3993、@luwei16、@luzhijing、@lxliyou001、@mongo360、@morningman、@morrySnow、@mrhhsg、@my-vegetable-has-exploded、@mymeiyi、@nanfeng1999、@nextdreamblue、@pingchunzhang、@platoneko、@py023、@qidaye、@qzsee、@raboof、@rohitrs1983、@rotkang、@ryanzryu、@seawinde、@shoothzj、@shuke987、@sjyango、@smallhibiscus、@sollhui、@sollhui、@spaces-X、@stalary、@starocean999、@superdiaodiao、@suxiaogang223、@taptao、@vhwzx、@vinlee19、@w41ter、@wangbo、@wangshuo128、@whutpencil、@wsjz、@wuwenchi、@wyxxxcat、@xiaokang、@xiedeyantu、@xiedeyantu、@xingyingone、@xinyiZzz、@xy720、@xzj7019、@yagagagaga、@yiguolei、@yongjinhou、@ytwp、@yuanyuan8983、@yujun777、@yuxuan-luo、@zclllyybb、@zddr、@zfr9527、@zgxme、@zhangbutao、@zhangstar333、@zhannngchen、@zhiqiang-hhhh、@ziyanTOP、@zxealous、@zy-kkk、@zzzxl1993、@zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.1.md deleted file mode 100644 index d39861e89ed80..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.1.md +++ /dev/null @@ -1,575 +0,0 @@ ---- -{ - "title": "Release 3.0.1", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.1 版本已于 2024 年 8 月 23 日正式发布。从 3.0 系列版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。同时在 3.0.1 版本中," -} ---- - -亲爱的社区小伙伴们,Apache Doris 3.0.1 版本已于 2024 年 8 月 23 日正式发布。从 3.0 系列版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。同时在 3.0.1 版本中,Apache Doris 在存算分离、湖仓一体、半结构化数据分析、异步物化视图等方面进行了全面更新与改进,欢迎大家下载使用。 - - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - - -## 行为变更 - -### 查询优化器 - -- 新增变量 `use_max_length_of_varchar_in_ctas`,用于控制在执行 `CREATE TABLE AS SELECT`(CTAS)操作时 VARCHAR 类型的长度行为。此变量默认设置为 true。当设置为 true 时,如果 VARCHAR 类型的列源自一个表,则采用推导长度;否则,使用最大长度。当设置为 false 时,VARCHAR 类型将始终使用推导出的长度。[#37069](https://github.com/apache/doris/pull/37069) - -- 所有的数据类型将以小写形式展示,以保持与 MySQL 格式的兼容性。[#38012](https://github.com/apache/doris/pull/38012) - -- 同一查询请求中的多条查询语句现在必须使用分号分隔。[#38670](https://github.com/apache/doris/pull/38670) - -### 查询执行 - -- 将集群在执行 Shuffle 操作后默认的并行任务数设置为 100,这将提高大型集群中查询的稳定性和并发处理能力。[#38196](https://github.com/apache/doris/pull/38196) - -### 存储 - -- `trash_file_expire_time_sec` 的默认值已从 86400 秒更改为 0 秒,这意味着如果误删除文件并清空了 FE 回收站,数据将无法恢复。 - -- 表属性 `enable_mow_delete_on_delete_predicate`(在版本 3.0.0 中引入)已更名为 `enable_mow_light_delete`。 - -- 显式事务现在被禁止对已写入数据的表执行 Delete 操作。 - -- 禁止对含有自增字段的表进行重量级的 Schema Change 操作。 - -## 新特性 - -### 任务调度 - -- 优化内部调度作业的执行逻辑,取消开始时间和立即执行参数之间的强关联。现在任务在创建时可以指定开始时间或选择立即执行,两者不再冲突,从而提高了调度的灵活性。[#36805](https://github.com/apache/doris/pull/36805) - -### 存算分离 - -- 支持动态更改 File Cache 的使用上限。[#37484](https://github.com/apache/doris/pull/37484) - -- Recycler 现在支持对象存储限速以及服务端限速重试功能。[#37663](https://github.com/apache/doris/pull/37663) [#37680](https://github.com/apache/doris/pull/37680) - -### Lakehouse - -- 新增会话变量 `serde_dialect`,可以设置复杂类型的输出格式。[#37039](https://github.com/apache/doris/pull/37039) - -- SQL 拦截功能现在支持外部表 - - - 更多内容,参考文档[SQL 拦截](../../admin-manual/workload-management/sql-blocking.md) - -- Insert Overwrite 现在支持 Iceberg 表。[#37191](https://github.com/apache/doris/pull/37191) - -### 异步物化视图 - -- 支持按小时级别分区上卷构建。[#37678](https://github.com/apache/doris/pull/37678) - -- 支持原子替换异步物化视图定义语句。[#36749](https://github.com/apache/doris/pull/36749) - -- 透明改写现在支持 Insert 语句。[#38115](https://github.com/apache/doris/pull/38115) - -- 透明改写现在支持 Variant 类型。[#37929](https://github.com/apache/doris/pull/37929) - -### 查询执行 - -- Group Concat 函数现在支持 DISTINCT 和 ORDER BY 选项。[#38744](https://github.com/apache/doris/pull/38744) - -### 半结构化数据管理 - -- ES Catalog 现在将 Elasticsearch 中的 `nested` 或 `object` 类型映射为 Doris 的 JSON 类型。[#37101](https://github.com/apache/doris/pull/37101) - -- 新增 `MULTI_MATCH` 函数,支持在多个字段中匹配关键词,并能利用倒排索引加速搜索。[#37722](https://github.com/apache/doris/pull/37722) - -- 新增 `explode_json_object` 函数,可以将 JSON 数据中的 Object 展开为多行。[#36887](https://github.com/apache/doris/pull/36887) - -- 倒排索引现在支持 Memtable 前移,在多副本写入时只需构建一次索引,减少 CPU 消耗并提升性能。[#35891](https://github.com/apache/doris/pull/35891) - -- 新增 `MATCH_PHRASE` 支持正向词距(slop),例如 `msg MATCH_PHRASE 'a b 2+'` 可以匹配包含词 a 和 b,它们之间的词距不超过两个,并且 a 在 b 的前面;而普通的词距(slop)如果没有最后的加号 `+`,则不保证 a 在 b 的前面。[#36356](https://github.com/apache/doris/pull/36356) - -### 其他 - -- 新增加了 FE 参数 `skip_audit_user_list`,在此配置项中的用户操作将不会被记录到审计日志中。[#38310](https://github.com/apache/doris/pull/38310) - - - 更多内容,参考文档[审计插件](../../admin-manual/audit-plugin/) - -## 改进 - -### 存储 - -- 降低单个 BE 内磁盘间均衡导致写失败的可能性。[#38000](https://github.com/apache/doris/pull/38000) - -- 降低 Memtable Limiter 的内存消耗。[#37511](https://github.com/apache/doris/pull/37511) - -- 在替换分区操作时,将旧分区移动到 FE 回收站。[#36361](https://github.com/apache/doris/pull/36361) - -- 优化了 Compaction 的内存消耗。[#37099](https://github.com/apache/doris/pull/37099) - -- 增加了会话变量以控制 JDBC PreparedStatement 的审计日志,默认不打印。[#38419](https://github.com/apache/doris/pull/38419) - -- 优化了 Group Commit 选择 BE 的逻辑。[#35558](https://github.com/apache/doris/pull/35558) - -- 优化了列更新的性能。[#38487](https://github.com/apache/doris/pull/38487) - -- 优化了 `delete bitmap cache` 的使用。[#38761](https://github.com/apache/doris/pull/38761) - -- 添加了配置以控制冷热分层时查询的亲和性。[#37492](https://github.com/apache/doris/pull/37492) - -### 存算分离 - -- 遇到对象存储服务端限速时,现在会自动重试。[#37199](https://github.com/apache/doris/pull/37199) - -- 适应存算分离模式下 Memtable Flush 的线程数。[#38789](https://github.com/apache/doris/pull/38789) - -- 将 Azure 作为编译选项,以便支持在不支持 Azure 的环境中编译。 - -- 优化了对象存储访问限速的可观测性。[#38294](https://github.com/apache/doris/pull/38294) - -- 允许 File Cache TTL 队列进行 LRU 淘汰,增加了 TTL 队列的可用性。[#37312](https://github.com/apache/doris/pull/37312) - -- 优化了存算分离模式下 Balance Writeeditlog IO 次数。[#37787](https://github.com/apache/doris/pull/37787) - -- 优化了存算分离模式下建表的速度,批量发送创建 Tablet 的请求。[#36786](https://github.com/apache/doris/pull/36786) - -- 通过退避重试的方式,优化了本地 File Cache 可能不一致时导致的读取失败问题。[#38645](https://github.com/apache/doris/pull/38645) - -### Lakehouse - -- 优化了 Parquet/ORC 格式读写操作的内存统计。[#37234](https://github.com/apache/doris/pull/37234) - -- Trino Connector Catalog 现在支持谓词下推。[#37874](https://github.com/apache/doris/pull/37874) - -- 新增会话变量 `enable_count_push_down_for_external_table`,用于控制是否开启外部表的 `count(*)` 下推优化。[#37046](https://github.com/apache/doris/pull/37046) - -- 优化了 Hudi 快照读的读取逻辑,当快照为空时返回空集,与 Spark 行为保持一致。[#37702](https://github.com/apache/doris/pull/37702) - -- 优化了 Hive 表分区列的读取性能。[#37377](https://github.com/apache/doris/pull/37377) - -### 异步物化视图 - -- 透明改写计划速度提升了 20%。[#37197](https://github.com/apache/doris/pull/37197) - -- 如果 Group Key 满足数据唯一性,在透明改写时不再进行上卷,以更好地进行嵌套匹配。[#38387](https://github.com/apache/doris/pull/38387) - -- 透明改写现在可以更好地进行聚合消除,以提高嵌套物化视图的匹配成功率。[#36888](https://github.com/apache/doris/pull/36888) - -### MySQL 兼容性 - -- 现在正确填充了 MySQL 协议中结果列的库名、表名和原始名称。[#38126](https://github.com/apache/doris/pull/38126) - -- 支持了形如 `/*+ func(value) */` 的 Hint 格式。[#37720](https://github.com/apache/doris/pull/37720) - -### 查询优化器 - -- 显著提升了复杂查询的计划速度。[#38317](https://github.com/apache/doris/pull/38317) - -- 根据数据分桶数量,自适应选择是否进行 Bucket Shuffle,以避免极端情况下的性能劣化。[#36784](https://github.com/apache/doris/pull/36784) - -- 优化了 SEMI/ANTI JOIN 的代价估算逻辑。[#37951](https://github.com/apache/doris/pull/37951) [#37060](https://github.com/apache/doris/pull/37060) - -- 支持将 Limit 下推到第一阶段聚合,以提升性能。[#34853](https://github.com/apache/doris/pull/34853) - -- 分区裁剪现在支持过滤条件中包含 `date_trunc` 或 `date` 函数。[#38025](https://github.com/apache/doris/pull/38025) [#38743](https://github.com/apache/doris/pull/38743) - -- SQL 缓存现在支持包含用户变量的查询场景。[#37915](https://github.com/apache/doris/pull/37915) - -- 优化了聚合语义不合法时的错误信息。[#38122](https://github.com/apache/doris/pull/38122) - -### 查询执行 - -- 适配了 AggState 的 2.1 到 3.x 兼容性,并修复了 Coredump 问题。[#37104](https://github.com/apache/doris/pull/37104) - -- 重构了不带 Join 时 Local Shuffle 的策略选择。[#37282](https://github.com/apache/doris/pull/37282) - -- 将内部表查询的 Scanner 修改为异步方式,以防止查询内部表时卡住。[#38403](https://github.com/apache/doris/pull/38403) - -- 优化了 Join 算子构建 Hash 表时的 Block Merge 过程。[#37471](https://github.com/apache/doris/pull/37471) - -- 优化了 MultiCast 持有锁的时间。[#37462](https://github.com/apache/doris/pull/37462) - -- 优化了 gRPC 的 keepAliveTime 并增加了链接监测机制,降低了查询过程中因 RPC 错误导致查询失败的概率。[#37304](https://github.com/apache/doris/pull/37304) - -- 当内存超限时,清理 Jemalloc 中的所有 Dirty Pages。[#37164](https://github.com/apache/doris/pull/37164) - -- 优化了 `aes_encrypt` /`decrypt` 函数对常量类型的处理性能。[#37194](https://github.com/apache/doris/pull/37194) - -- 优化了 `json_extract` 函数对常量数据的处理性能。[#36927](https://github.com/apache/doris/pull/36927) - -- 优化了 `ParseUrl` 函数对常量数据的处理性能。[#36882](https://github.com/apache/doris/pull/36882) - -### 半结构化数据管理 - -- Bitmap 索引现在默认使用反向索引,`enable_create_bitmap_index_as_inverted_index` 默认设置为 true。[#36692](https://github.com/apache/doris/pull/36692) - -- 在存算分离模式下,DESC 现在可以查看 VARIANT 类型的子列。[#38143](https://github.com/apache/doris/pull/38143) - -- 移除了倒排索引查询时检查文件是否存在的步骤,以降低远程存储的访问延迟。[#36945](https://github.com/apache/doris/pull/36945) - -- ARRAY / MAP / STRUCT 复杂类型现在支持 AGG 表的 `replace_if_not_null`。[#38304](https://github.com/apache/doris/pull/38304) - -- 现在支持 JSON 数据的转义字符。[#37176](https://github.com/apache/doris/pull/37176) [#37251](https://github.com/apache/doris/pull/37251) - -- 倒排索引查询现在在 MOW 表上与 Duplicate 表一致。[#37428](https://github.com/apache/doris/pull/37428) - -- 优化了倒排索引加速 IN 查询的性能。[#37395](https://github.com/apache/doris/pull/37395) - -- TOPN 查询时减少了多余的内存分配,以提升性能。[#37429](https://github.com/apache/doris/pull/37429) - -- 当创建带分词的倒排索引时,现在自动开启 `support_phrase` 选项,以加速 `match_phrase` 系列短语查询。[#37949](https://github.com/apache/doris/pull/37949) - -### 其他 - -- Audit Log 现在可以记录 SQL 类型。[#37790](https://github.com/apache/doris/pull/37790) - -- 增加对 `information_schema.processlist` Show All FE 的支持。[#38701](https://github.com/apache/doris/pull/38701) - -- 缓存 Ranger 的 `atamask` 和 `rowpolicy`,以加速查询效率。[#37723](https://github.com/apache/doris/pull/37723) - -- 优化 Job Manager 的元数据管理,在修改元数据后立即释放锁,以减少锁持有时间。[#38162](https://github.com/apache/doris/pull/38162) - -## 缺陷修复 - -### 升级 - -- 修复从 2.1 版本升级时 mtmv load 失败的问题。[#38799](https://github.com/apache/doris/pull/38799) - -- 修复在 2.1 版本升级时找不到 `null_type` 的问题。[#39373](https://github.com/apache/doris/pull/39373) - -- 修复从 2.1 版本升级到 3.0 版本时权限持久化的兼容性问题。[#39288](https://github.com/apache/doris/pull/39288) - -### 导入 - -- 修复 CSV 格式解析中,换行符被包围符包围时解析失败的问题。[#38347](https://github.com/apache/doris/pull/38347) - -- 修复 FE 在转发 Group Commit 时可能出现的异常问题。[#38228](https://github.com/apache/doris/pull/38228) [#38265](https://github.com/apache/doris/pull/38265) - -- Group Commit 现在支持新优化器。[#37002](https://github.com/apache/doris/pull/37002) - -- 修复 JDBC setNull 时 Group Commit 报告数据错误的问题。[#38262](https://github.com/apache/doris/pull/38262) - -- 优化 Group Commit 遇到 `delete bitmap lock` 错误时的重试逻辑。[#37600](https://github.com/apache/doris/pull/37600) - -- 修复 Routine Load 不能使用 CSV 包围符和转义符的问题。[#38402](https://github.com/apache/doris/pull/38402) - -- 修复 Routine Load Job 名字大小写混用时无法显示的问题。[#38523](https://github.com/apache/doris/pull/38523) - -- 优化 FE 主从切换时主动恢复 Routine Load 的逻辑。[#37876](https://github.com/apache/doris/pull/37876) - -- 修复 Kafka 中数据全部过期时 Routine Load 暂停的问题。[#37288](https://github.com/apache/doris/pull/37288) - -- 修复 `show routine load` 返回空结果的问题。[#38199](https://github.com/apache/doris/pull/38199) - -- 修复 Routine Load 多表流式导入时的内存泄露问题。[#38255](https://github.com/apache/doris/pull/38255) - -- 修复 Stream Load 不返回 Error URL 的问题。[#38325](https://github.com/apache/doris/pull/38325) - -- 修复 Load Channel 可能泄露的问题。[#38031](https://github.com/apache/doris/pull/38031) [#37500](https://github.com/apache/doris/pull/37500) - -- 修复导入少于预期的 Segment 时可能不报错的问题。[#36753](https://github.com/apache/doris/pull/36753) - -- 修复 Load Stream 泄露的问题。[#38912](https://github.com/apache/doris/pull/38912) - -- 优化下线节点对导入操作的影响。[#38198](https://github.com/apache/doris/pull/38198) - -- 修复 Insert Into 空数据情况下事务不结束的问题。[#38991](https://github.com/apache/doris/pull/38991) - -### 存储 - -**01 备份与恢复** - -- 修复备份恢复后表无法写入的问题。[#37089](https://github.com/apache/doris/pull/37089) - -- 修复备份恢复后视图中数据库名称错误的问题。[#37412](https://github.com/apache/doris/pull/37412) - -**02 Compaction(压缩)** - -- 修复有序数据压缩时 Cumu Compaction 处理 Delete 错误的的问题。[#38742](https://github.com/apache/doris/pull/38742) - -- 修复顺序压缩优化导致的聚合表重复 Key 问题。[#38224](https://github.com/apache/doris/pull/38224) - -- 修复大宽表下压缩操作导致 Coredump 的问题。[#37960](https://github.com/apache/doris/pull/37960) - -- 修复压缩任务并发统计不准确导致的压缩饥饿问题。[#37318](https://github.com/apache/doris/pull/37318) - -**03 MOW Unique Key(MOW 唯一键)** - -- 解决累计压缩删除 Delete Sign 导致的副本间数据不一致问题。[#37950](https://github.com/apache/doris/pull/37950) - -- 在新的优化器下,MOW Delete 表现在使用部分列更新。[#38751](https://github.com/apache/doris/pull/38751) - -- 修复存算分离下 MOW 表可能出现的重复 Key 问题。[#39018](https://github.com/apache/doris/pull/39018) - -- 修复 MOW Unique 和 Duplicate 表不能修改列顺序的问题。[#37067](https://github.com/apache/doris/pull/37067) - -- 修复 Segcompaction 可能导致的数据正确性问题。[#37760](https://github.com/apache/doris/pull/37760) - -- 修复列更新可能出现的内存泄露问题。[#37706](https://github.com/apache/doris/pull/37706) - -**04 其他** - -- 修复 TOPN 查询可能出现的小概率异常。[#39119](https://github.com/apache/doris/pull/39119) [#39199](https://github.com/apache/doris/pull/39199) - -修复 FE 重启时自增 ID 可能重复的问题。[#37306](https://github.com/apache/doris/pull/37306) - -- 修复 Delete 操作优先级队列可能的排队问题。[#37169](https://github.com/apache/doris/pull/37169) - -- 优化 Delete 重试逻辑。[#37363](https://github.com/apache/doris/pull/37363) - -- 修复新优化器下建表语句中 `bucket = 0` 的问题。[#38971](https://github.com/apache/doris/pull/38971) - -- 修复 FE 生成 Image 失败时错误地报告成功的问题。[#37508](https://github.com/apache/doris/pull/37508) - -- 修复 FE 下线节点时使用错误 nodename 可能导致的 FE 成员不一致问题。[#37987](https://github.com/apache/doris/pull/37987) - -- 修复 CCR 增加分区可能失败的问题。[#37295](https://github.com/apache/doris/pull/37295) - -- 修复倒排索引文件中 `int32` 溢出的问题。[#38891](https://github.com/apache/doris/pull/38891) - -- 修复 TRUNCATE TABLE 失败可能导致 BE 不能下线的问题。[#37334](https://github.com/apache/doris/pull/37334) - -- 修复因空指针导致的 Publish 无法继续的问题。[#37724](https://github.com/apache/doris/pull/37724) [#37531](https://github.com/apache/doris/pull/37531) -- 修复手动触发磁盘迁移时可能出现的 Coredump 问题。[#37712](https://github.com/apache/doris/pull/37712) - -### 存算分离 - -- 修复 `show create table` 可能会展示两次 `file_cache_ttl_seconds` 属性的问题。[#38052](https://github.com/apache/doris/pull/38052) - -- 修复设置 File Cache TTL 后,Segment Footer TTL 未正确设置的问题。[#37485](https://github.com/apache/doris/pull/37485) - -- 修复 File Cache 因大量转换 Cache 类型可能会导致 Coredump 的问题。[#38518](https://github.com/apache/doris/pull/38518) - -- 修复 File Cache 可能会泄漏 fd 的问题。[#38051](https://github.com/apache/doris/pull/38051) - -- 修复 Schema Change Job 覆盖 Compaction Job 导致 Base Tablet Compaction 不能正常完成的问题。[#38210](https://github.com/apache/doris/pull/38210) - -- 修复 Base Compaction Score 因 Data Race 可能会不准确的问题。[#38006](https://github.com/apache/doris/pull/38006) - -- 修复导入返回的错误信息可能不能正确上传到对象存储的问题。[#38359](https://github.com/apache/doris/pull/38359) - -- 修复存算分离模式和存算一体模式 2PC 导入返回信息不一致的问题。[#38076](https://github.com/apache/doris/pull/38076) - -- 修复 File Cache 预热未正确设置 File Size 导致 Coredump 的问题。[#38939](https://github.com/apache/doris/pull/38939) - -- 修复部分列更新没有正确出列 Delete 的问题。[#37151](https://github.com/apache/doris/pull/37151) - -- 修复存算分离模式权限持久化兼容问题。[#38136](https://github.com/apache/doris/pull/38136) [#37708](https://github.com/apache/doris/pull/37708) - -- 修复 Observer 遇到 `-230` 错误没有进行正确重试的问题。[#37625](https://github.com/apache/doris/pull/37625) - -- 修复 `show load` 带条件时没有正确 analyze 的问题。[#37656](https://github.com/apache/doris/pull/37656) - -- 修复存算分离模式下 `show streamload` 导致 BE Coredump 的问题。[#37903](https://github.com/apache/doris/pull/37903) - -- 修复 `copy into` 在严格模式下未正确校验列名的问题。[#37650](https://github.com/apache/doris/pull/37650) - -- 修复一表多流导入没有权限的问题。[#38878](https://github.com/apache/doris/pull/38878) - -- 修复 getVersionUpdateTimeMs 可能会越界的问题。[#38074](https://github.com/apache/doris/pull/38074) - -- 修复 FE Azure Blob List 没有实现正确的问题。[#37986](https://github.com/apache/doris/pull/37986) - -- 修复 Azure Blob 回收时间计算不准确导致不触发回收的问题。[#37535](https://github.com/apache/doris/pull/37535) - -- 修复存算分离模式下倒排索引文件漏删的问题。[#38306](https://github.com/apache/doris/pull/38306) - -### Lakehouse - -- 修复 Oracle Catalog 读取二进制数据的问题。[#37078](https://github.com/apache/doris/pull/37078) - -- 修复多 FE 情况下,获取外表元数据可能导致的死锁问题。[#37756](https://github.com/apache/doris/pull/37756) - -- 修复 JNI Scanner 打开失败导致 BE 节点宕机的问题。[#37697](https://github.com/apache/doris/pull/37697) - -- 修复 Trino Connector Catalog 读取 Date 类型慢的问题。[#37266](https://github.com/apache/doris/pull/37266) - -- 优化 Hive Catalog 的 Kerberos 认证逻辑。[#37301](https://github.com/apache/doris/pull/37301) - -- 修复解析 MinIO 属性时,Region 属性可能解析错误的问题。[#37249](https://github.com/apache/doris/pull/37249) - -- 修复 FE 创建过多的 FileSystem 导致内存泄漏的问题。[#36954](https://github.com/apache/doris/pull/36954) - -- 修复读取 Paimon 时区信息错误的问题。[#37716](https://github.com/apache/doris/pull/37716) - -- 修复 Hive 写回操作可能导致的线程泄漏问题。[#36990](https://github.com/apache/doris/pull/36990) - -- 修复开启 Hive Metastore Event 同步功能导致的空指针问题。[#38421](https://github.com/apache/doris/pull/38421) - -- 修复创建 Catalog 时报错信息不清晰或卡死的情况。[#37551](https://github.com/apache/doris/pull/37551) - -- 修复读取 Hive Text 格式表时与 Hive 行为不一致的问题。[#37638](https://github.com/apache/doris/pull/37638) - -- 修复切换 Catalog 和 Database 逻辑错误的问题。[#37828](https://github.com/apache/doris/pull/37828) - -### MySQL 兼容性 - -- 修复开启 SSL 后,MySQL 协议中某些 Flag 设置不正确的问题。[#38086](https://github.com/apache/doris/pull/38086) - -### 异步物化视图 - -- 修复基表分区数量非常多时可能导致的构建失败问题。[#37589](https://github.com/apache/doris/pull/37589) - -- 修复构建嵌套物化视图时,即使可以进行分区刷新,也错误地进行了全表刷新的问题。[#38698](https://github.com/apache/doris/pull/38698) - -- 修复分区刷新在分析分区依赖时,不能处理同时存在合法和不合法依赖关系的问题。[#38367](https://github.com/apache/doris/pull/38367) - -- 修复最终返回结果包含 NULL Type 导致异步物化视图可能构建失败的问题。[#37019](https://github.com/apache/doris/pull/37019) - -- 当包含同名的同步物化视图和异步物化视图时,透明改写可能出现规划错误。[#37311](https://github.com/apache/doris/pull/37311) - -### 同步物化视图 - -- 现在改写后的同步物化视图也可以正确地进行分区裁剪。[#38527](https://github.com/apache/doris/pull/38527) - -- 同步物化视图改写时,不再选择数据未就绪的同步物化视图。[#38148](https://github.com/apache/doris/pull/38148) - -### 查询优化器 - -- 修复查询和 Delete 等操作同时进行可能导致的死锁问题。[#38660](https://github.com/apache/doris/pull/38660) - -- 修复分桶裁剪在 Decimal 列分桶上可能错误裁剪的问题。[#37889](https://github.com/apache/doris/pull/37889) - -- 修复当 Mark Join 参与 Join Reorder 时,规划可能出现错误的问题。[#39152](https://github.com/apache/doris/pull/39152) - -- 修复关联子查询关联条件不是简单列时,结果错误的问题。[#37644](https://github.com/apache/doris/pull/37644) - -- 修复分区裁剪不能正确处理 or 表达式的问题。[#38897](https://github.com/apache/doris/pull/38897) - -- 修复当进行 JOIN 和 AGG 交换执行顺序的优化时,可能导致的规划报错问题。[#37343](https://github.com/apache/doris/pull/37343) - -- 修复 `str_to_date` 在 DATEV1 类型上进行常量折叠计算错误的问题。[#37360](https://github.com/apache/doris/pull/37360) - -- 修复 ACOS 函数常量折叠返回非 NaN 的问题。[#37932](https://github.com/apache/doris/pull/37932) - -- 修复偶尔出现的规划报错 "The children format needs to be [WhenClause+, DefaultValue?]" 的问题。[#38491](https://github.com/apache/doris/pull/38491) - -- 修复当投影中包含窗口函数,且同时存在一个列的原始列和其别名时,规划可能出现错误的问题。[#38166](https://github.com/apache/doris/pull/38166) - -- 修复当聚合参数中含有 Lambda 表达式,可能导致规划报错的问题。[#37109](https://github.com/apache/doris/pull/37109) - -- 修复在极端情况下可能出现的 Insert 报错:"MultiCastDataSink cannot be cast to DataStreamSink" 的问题。[#38526](https://github.com/apache/doris/pull/38526) - -- 修复创建表时,新优化器对于传入的 `char(0)/varchar(0)` 没有正确处理的问题。[#38427](https://github.com/apache/doris/pull/38427) - -- 修复 `char(255) toSql` 行为不正确的问题。[#37340](https://github.com/apache/doris/pull/37340) - -- 修复 `agg_state `类型内部的 nullable 属性可能规划错误的问题。[#37489](https://github.com/apache/doris/pull/37489) - -- 修复 Mark Join 时行数统计不准确的问题。[#38270](https://github.com/apache/doris/pull/38270) - -### 查询执行 - -- 修复多个场景下,Pipeline 执行引擎被卡住导致查询不结束的问题。[#38657](https://github.com/apache/doris/pull/38657) [#38206](https://github.com/apache/doris/pull/38206) [#38885](https://github.com/apache/doris/pull/38885) [#38151](https://github.com/apache/doris/pull/38151) [#37297](https://github.com/apache/doris/pull/37297) - -- 修复 NULL 和非 NULL 列在差集计算时导致的 Coredump 问题。[#38750](https://github.com/apache/doris/pull/38750) - -- 修复 Delete 语句中 DECIMAL 类型为纯小数时报错的问题。[#37801](https://github.com/apache/doris/pull/37801) - -- 修复 `width_bucket` 函数结果错误的问题。[#37892](https://github.com/apache/doris/pull/37892) - -- 修复当单行数据很大且返回结果集也很大时(超过 2GB)查询报错的问题。[#37990](https://github.com/apache/doris/pull/37990) - -- 修复单副本导入时 rpc 链接没有正确释放导致的 Coredump 问题。[#38087](https://github.com/apache/doris/pull/38087) - -- 修复 `foreach` 函数处理 NULL 导致的 Coredump 问题。[#37349](https://github.com/apache/doris/pull/37349) - -- 修复 stddev 在 DecimalV2 类型下结果错误的问题。[#38731](https://github.com/apache/doris/pull/38731) - -- 修复` bitmap union` 计算性能慢的问题。[#37816](https://github.com/apache/doris/pull/37816) - -- 修复 Profile 中聚合算子的 RowsProduced 没有设置的问题。[#38271](https://github.com/apache/doris/pull/38271) - -- 修复 Hash Join 下计算 Hash 表 Bucket 数目时溢出的问题。[#37193](https://github.com/apache/doris/pull/37193) [#37493](https://github.com/apache/doris/pull/37493) - -- 修复 `jemalloc cache memory tracker` 记录不准确的问题。[#37464](https://github.com/apache/doris/pull/37464) - -- 增加配置项 `enable_stacktrace`,用户可以通过设置此选项来控制 BE 日志中是否输出异常栈。[#37713](https://github.com/apache/doris/pull/37713) - -- 修复 Arrow Flight SQL 在设置 `enable_parallel_result_sink` 为 false 时不能正常工作的问题。[#37779](https://github.com/apache/doris/pull/37779) - -- 修复错误地使用 Colocate Join 的问题。[#37361](https://github.com/apache/doris/pull/37361) [#37729](https://github.com/apache/doris/pull/37729) - -- 修复 `round` 函数在 DECIMAL128 类型上计算溢出的问题。[#37733](https://github.com/apache/doris/pull/37733) [#38106](https://github.com/apache/doris/pull/38106) - -- 修复 `sleep` 函数传参 const 字符串时的 Coredump 问题。[#37681](https://github.com/apache/doris/pull/37681) - -- 增加审计日志的队列长度,解决了数千并发场景下审计日志不能正常记录的问题。[#37786](https://github.com/apache/doris/pull/37786) - -- 修复创建 Workload Group 导致的线程数过多,导致 BE Coredump 的问题。[#38096](https://github.com/apache/doris/pull/38096) - -- 修复 MULTI_MATCH_ANY 函数导致的 Coredump 问题。[#37959](https://github.com/apache/doris/pull/37959) - -- 修复`insert overwrite auto partition `导致事务回滚的问题。[#38103](https://github.com/apache/doris/pull/38103) - -- 修复 TimeUtils formatter 没有使用正确时区的问题。[#37465](https://github.com/apache/doris/pull/37465) - -- 修复 week/yearweek 常量折叠场景下结果错误的问题。[#37376](https://github.com/apache/doris/pull/37376) - -- 修复 `convert_tz` 函数结果错误的问题。[#37358](https://github.com/apache/doris/pull/37358) [#38764](https://github.com/apache/doris/pull/38764) - -- 修复 `collect_set` 函数结合窗口函数使用时 Coredump 的问题。[#38234](https://github.com/apache/doris/pull/38234) - -- 修复 `percentile_approx` 在滚动升级过程中导致的 Coredump 问题。[#39321](https://github.com/apache/doris/pull/39321) - -- 修复 `mod` 函数在异常输入时导致的 Coredump 问题。[#37999](https://github.com/apache/doris/pull/37999) - -- 修复 Broadcast Join 在 probe 开始运行时 Hash Table 构建未完成的问题。[#37643](https://github.com/apache/doris/pull/37643) - -- 修复多线程下执行相同表达式可能导致 Java UDF 结果错误的问题。[#38612](https://github.com/apache/doris/pull/38612) - -- 修复 `conv` 函数返回类型错误导致的溢出问题。[#38001](https://github.com/apache/doris/pull/38001) - -- 修复 `json_replace` 函数返回类型不正确的问题。[#3701](https://github.com/apache/doris/pull/37014) - -- 修复 `percentile` 聚合函数 Nullable 属性设置不合理的问题。[#37330](https://github.com/apache/doris/pull/37330) - -- 修复 `histogram` 函数结果不稳定的问题。[#38608](https://github.com/apache/doris/pull/38608) - -- 修复 Profile 中 Task State 显示不正确的问题。[#38082](https://github.com/apache/doris/pull/38082) - -- 修复系统刚启动时部分 query 被错误取消的问题。[#37662](https://github.com/apache/doris/pull/37662) - -### 半结构化数据管理 - -- 修复时间序列压缩的一些问题。[#39170](https://github.com/apache/doris/pull/39170) [#39176](https://github.com/apache/doris/pull/39176) - -- 修复压缩过程中索引大小统计错误的问题。[#37232](https://github.com/apache/doris/pull/37232) - -- 修复倒排索引对不分词的超长字符串匹配可能不正确的问题。[#37679](https://github.com/apache/doris/pull/37679) [#38218](https://github.com/apache/doris/pull/38218) - -- 修复 `array_range` 和 `array_with_const` 函数在大数据量下内存占用高的问题。[#38284](https://github.com/apache/doris/pull/38284) [#37495](https://github.com/apache/doris/pull/37495) - -- 修复选择 ARRAY / MAP / STRUCT 类型的列时可能出现的 Coredump 问题。[#37936](https://github.com/apache/doris/pull/37936) - -- 修复 Stream Load 指定 jsonpath 时 simdjson 解析错误导致导入失败的问题。[#38490](https://github.com/apache/doris/pull/38490) - -- 修复 JSON 数据中有重复 Key 时处理异常的问题。[#38146](https://github.com/apache/doris/pull/38146) - -- 修复 DROP INDEX 后可能出现查询报错的问题。[#37646](https://github.com/apache/doris/pull/37646) - -- 修复索引压缩时在合并行检查中的错误返回问题。[#38732](https://github.com/apache/doris/pull/38732) - -- 倒排索引 v2 格式现在支持修改列名。[#38079](https://github.com/apache/doris/pull/38079) - -- 修复没有索引时 MATCH 函数匹配空字符串时 Coredump 的问题。[#37947](https://github.com/apache/doris/pull/37947) - -- 修复倒排索引对 NULL 值处理的问题。[#37921](https://github.com/apache/doris/pull/37921) [#37842](https://github.com/apache/doris/pull/37842) [#38741](https://github.com/apache/doris/pull/38741) - -- 修复 FE 重启后 `row_store_page_size` 不正确的问题。[#38240](https://github.com/apache/doris/pull/38240) - -### 其他 - -- 修复时区配置问题,现在默认时区不再固定为 UTC+8,而是从系统配置中获取。[#37294](https://github.com/apache/doris/pull/37294) - -- 修复由于存在多个 JSR 规范实现导致使用 Ranger 时出现的类冲突问题。[#37575](https://github.com/apache/doris/pull/37575) - -- 修复部分 BE 代码中字段可能未初始化的问题。[#37403](https://github.com/apache/doris/pull/37403) - -- 修复 Random Distributed 表 Delete 语句报错的问题。[#37985](https://github.com/apache/doris/pull/37985) - -- 修复创建同步物化视图时错误地需要基表的 `alter_priv` 权限问题。[#38011](https://github.com/apache/doris/pull/38011) - -- 修复当 TVF 中使用了 Resource 时未对 Resource 鉴权的问题。[#36928](https://github.com/apache/doris/pull/36928) - - -## 致谢 - -@133tosakarin、 @924060929、 @AshinGau、 @Baymine、 @BePPPower、 @BiteTheDDDDt、 @ByteYue、 @CalvinKirs、 @Ceng23333、 @DarvenDuan、 @FreeOnePlus、 @Gabriel39、 @HappenLee、 @JNSimba、 @Jibing-Li、 @KassieZ、 @Lchangliang、 @LiBinfeng-01、 @Mryange、 @SWJTU-ZhangLei、 @TangSiyang2001、 @Tech-Circle-48、 @Vallishp、 @Yukang-Lian、 @Yulei-Yang、 @airborne12、 @amorynan、 @bobhan1、 @cambyzju、 @cjj2010、 @csun5285、 @dataroaring、 @deardeng、 @eldenmoon、 @englefly、 @feiniaofeiafei、 @felixwluo、 @freemandealer、 @gavinchou、 @ghkang98、 @hello-stephen、 @hubgeter、 @hust-hhb、 @jacktengg、 @kaijchen、 @kaka11chen、 @keanji-x、 @liaoxin01、 @liutang123、 @luwei16、 @luzhijing、 @lxr599、 @morningman、 @morrySnow、 @mrhhsg、 @mymeiyi、 @platoneko、 @qidaye、 @qzsee、 @seawinde、 @shuke987、 @sollhui、 @starocean999、 @suxiaogang223、 @w41ter、 @wangbo、 @wangshuo128、 @whutpencil、 @wsjz、 @wuwenchi、 @wyxxxcat、 @xiaokang、 @xiedeyantu、 @xinyiZzz、 @xy720、 @xzj7019、 @yagagagaga、 @yiguolei、 @yujun777、 @z404289981、 @zclllyybb、 @zddr、 @zfr9527、 @zhangbutao、 @zhangstar333、 @zhannngchen、 @zhiqiang-hhhh、 @zjj、 @zy-kkk、 @zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.2.md deleted file mode 100644 index 92b773a3d188f..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.2.md +++ /dev/null @@ -1,323 +0,0 @@ ---- -{ - "title": "Release 3.0.2", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.2 版本已于 2024 年 10 月 15 日正式发布。 3.0.2 版本在存算分离、存储、湖仓一体、查询优化器以及执行引擎持续升级改进,欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 3.0.2 版本已于 2024 年 10 月 15 日正式发布。** 3.0.2 版本在存算分离、存储、湖仓一体、查询优化器以及执行引擎持续升级改进,欢迎大家下载使用。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - -## 行为变更 - -### 存储 - -- 限制单个备份任务的 Tablet 数量,避免 FE 内存溢出。[#40518](https://github.com/apache/doris/pull/40518) -- `SHOW PARTITIONS`命令现在显示分区的`CommittedVersion`。[#28274](https://github.com/apache/doris/pull/28274) - -### 其他 - -- `fe.log`的默认打印模式(异步)现在包含文件行号信息。如果遇到因行号输出导致的性能问题,请选择 BRIEF 模式。[#39419](https://github.com/apache/doris/pull/39419) -- 默认将 Session 变量`ENABLE_PREPARED_STMT_AUDIT_LOG` 的值从 `true` 更改为 `false`,不再打印 Prepare 语句的审计日志。[#38865](https://github.com/apache/doris/pull/38865) -- 将 Session 变量 `max_allowed_packet` 的默认值从 1MB 调整为 16MB,与 MySQL 8.4 保持一致。[#38697](https://github.com/apache/doris/pull/38697) -- FE 和 BE 的 JVM 默认使用 UTF-8 字符集。[#39521](https://github.com/apache/doris/pull/39521) - -## 新特性 - -### 存储 - -- 备份和恢复现在支持清除不在备份中的表或分区。[#39028](https://github.com/apache/doris/pull/39028) - -### 存算分离 - -- 支持并行回收多个 Tablet 上的过期数据。[#37630](https://github.com/apache/doris/pull/37630) -- 支持通过`ALTER`语句变更 Storage Vault。[#38685](https://github.com/apache/doris/pull/38685) [#37606](https://github.com/apache/doris/pull/37606) -- 支持单个事务同时导入大量 Tablet(5000+)(实验性功能)。[#38243](https://github.com/apache/doris/pull/38243) -- 支持自动中止因节点重启等原因导致的未决事务,解决未决事务阻塞 Secommission 或 Schema Change 的问题。[#37669](https://github.com/apache/doris/pull/37669) -- 新增 Session 变量 `enable_segment_cache` 控制查询时是否使用 Segment Cache(默认为`true`)。[#37141](https://github.com/apache/doris/pull/37141) -- 解决存算分离模式下进行 Schema Change 时不能大量导入的问题。[#39558](https://github.com/apache/doris/pull/39558) -- 支持在存算分离模式下允许添加多个 Follower 角色的 FE。[#38388](https://github.com/apache/doris/pull/38388) -- 支持在无盘或低性能 HDD 环境下使用内存作为 File Cache 以加速查询。[#38811](https://github.com/apache/doris/pull/38811) - -### Lakehouse - -- 新增 Lakesoul Catalog -- 新增系统表 `catalog_meta_cache_statistics`,用于查看 External Catalog 中各类元数据缓存的使用情况。[#40155](https://github.com/apache/doris/pull/40155) - -### 查询优化器 - -- 支持 `is [not] true/false`表达式。[#38623](https://github.com/apache/doris/pull/38623) - -### 查询执行 - -- 新增 CRC32 函数。[#38204](https://github.com/apache/doris/pull/38204) -- 新增聚合函数 Skew 和 Kurt。[#41277](https://github.com/apache/doris/pull/41277) -- 将 Profile 持久化到 FE 的磁盘中,以保留更多的 Profile。[#33690](https://github.com/apache/doris/pull/33690) -- 新增系统表`workload_group_privileges`以查看 Workload Group 相关的权限信息。[#38436](https://github.com/apache/doris/pull/38436) -- 新增系统表`workload_group_resource_usage`以监控 Workload Group 的资源统计信息。[#39177](https://github.com/apache/doris/pull/39177) -- Workload Group 现在支持限制本地 IO 和远程 IO 的读取。[#39012](https://github.com/apache/doris/pull/39012) -- Workload Group 现在支持 cgroupv2 以限制 CPU 使用。[#39374](https://github.com/apache/doris/pull/39374) -- 新增系统表`information_schema.partitions`以查看一些建表属性。[#40636](https://github.com/apache/doris/pull/40636) - -### 其他 - -- 支持使用`SHOW`语句展示 BE 的配置信息,例如`SHOW BACKEND CONFIG LIKE ${pattern}`。[#36525](https://github.com/apache/doris/pull/36525) - -## 改进与优化 - -### 导入 - -- 优化了 Routine Load 在遇到 Kafka 频繁 EOF 时的导入效率。[#39975](https://github.com/apache/doris/pull/39975) -- Stream Load 结果中增加了读取 HTTP 数据的耗时时间`ReceiveDataTimeMs`,可以快速判断网络原因导致的 Stream Load 慢问题。[#40735](https://github.com/apache/doris/pull/40735) -- 优化了 Routine Load 超时逻辑,避免了倒排和 MOW 写入频繁超时问题。[#40818](https://github.com/apache/doris/pull/40818) - -### 存储 - -- 支持批量添加分区。[#37114](https://github.com/apache/doris/pull/37114) - -### 存算分离 - -- 添加了 meta-service HTTP 接口`/MetaService/http/show_meta_ranges`,便于统计 FDB 中 KV 分布组成。[#39208](https://github.com/apache/doris/pull/39208) -- meta-service/recycler stop 脚本确保进程完全退出后才返回。[#40218](https://github.com/apache/doris/pull/40218) -- 支持使用 Session 变量`version_comment`(Cloud Mode)来显示当前部署模式为存算分离模式。[#38269](https://github.com/apache/doris/pull/38269) -- 修复了提交事务失败时返回的详细消息。[#40584](https://github.com/apache/doris/pull/40584) -- 支持使用一个 meta-service 进程同时提供元数据服务和数据回收服务。[#40223](https://github.com/apache/doris/pull/40223) -- 优化了 file_cache 的默认配置,避免了未设置时可能导致的无法正确运行的问题。[#41421](https://github.com/apache/doris/pull/41421) [#41507](https://github.com/apache/doris/pull/41507) -- 通过批量获取多个 Partition 的 Version 提高了查询性能。[#38949](https://github.com/apache/doris/pull/38949) -- 延迟变更 Tablet 的分布,避免了临时网络抖动引起的查询性能问题。[#40371](https://github.com/apache/doris/pull/40371) -- 优化了 Balance 逻辑中的读写锁。[#40633](https://github.com/apache/doris/pull/40633) -- 提高了 File Cache 在重启/宕机等情况下处理 TTL 文件名的鲁棒性。[#40226](https://github.com/apache/doris/pull/40226) -- 增加了 BE HTTP 接口`/api/file_cache?op=hash`,方便计算 Segment 文件在盘上的 Hash 文件名。[#40831](https://github.com/apache/doris/pull/40831) -- 优化了统一命名,兼容使用 Compute Group 代表 BE 分组(原 Cloud Cluster)。[#40767](https://github.com/apache/doris/pull/40767) -- 优化了主键表计算 Delete Bitmap 时获取锁的等待时间。[#40341](https://github.com/apache/doris/pull/40341) -- 当主键表 Delete Bitmap 数量多时,通过提前合并多个 Delete Bitmap 来优化查询时 CPU 消耗高的问题。[#40204](https://github.com/apache/doris/pull/40204) -- 支持通过 SQL 语句管理存算分离模式下的 FE/BE 节点,隐藏部署存算分离模式时直接和 meta-service 交互的逻辑。[#40264](https://github.com/apache/doris/pull/40264) -- 增加了快速部署 FDB 脚本。[#39803](https://github.com/apache/doris/pull/39803) -- 优化了`SHOW CACHE HOTSPOT`的输出,使其和其他`SHOW`语句的列名风格统一。[#41322](https://github.com/apache/doris/pull/41322) -- 使用 Storage Vault 作为存储后端时,不允许使用`latest_fs()`以规避同个表绑定不同的存储后端。[#40516](https://github.com/apache/doris/pull/40516) -- 优化了 MOW 表导入时计算 Delete Bitmap 的超时策略。[#40562](https://github.com/apache/doris/pull/40562) [#40333](https://github.com/apache/doris/pull/40333) -- 存算分离模式下 be.conf 的 `enable_file_cache` 默认开启。[#41502](https://github.com/apache/doris/pull/41502) - -### Lakehouse - -- 读取 CSV 格式的表时,支持通过会话`keep_carriage_return`设置对`\r`符号的读取行为。[#39980](https://github.com/apache/doris/pull/39980) -- BE 的 JVM 最大内存默认调整为 2GB(仅影响新部署用户)。[#41403](https://github.com/apache/doris/pull/41403) -- Hive Catalog 新增`hive.recursive_directories_table`和`hive.ignore_absent_partitions`属性,用于指定是否递归遍历数据目录,以及是否忽略缺失的分区。[#39494](https://github.com/apache/doris/pull/39494) -- 优化了 Catalog 刷新逻辑,避免了刷新产生大量连接。[#39205](https://github.com/apache/doris/pull/39205) -- `SHOW CREATE DATABASE`和`SHOW CREATE TABLE`针对外部数据源,增加了 Location 信息显示。[#39179](https://github.com/apache/doris/pull/39179) -- 新优化器支持通过`INSERT INTO`命令将数据插入到 JDBC 外表。[#41511](https://github.com/apache/doris/pull/41511) -- MaxCompute Catalog 支持复杂类型。[#39259](https://github.com/apache/doris/pull/39259) -- 优化了外表数据分片的读取合并逻辑。[#38311](https://github.com/apache/doris/pull/38311) -- 优化了外表元数据缓存的一些刷新策略。[#38506](https://github.com/apache/doris/pull/38506) -- Paimon 表支持`IN/NOT IN`谓词下推。[#38390](https://github.com/apache/doris/pull/38390) -- 兼容 Paimon 0.9 版本创建的 Parquet 格式的表。[#41020](https://github.com/apache/doris/pull/41020) - -### 异步物化视图 - -- 构建异步物化视图支持同时使用 Immediate 和 Starttime。[#39573](https://github.com/apache/doris/pull/39573) -- 基于外表的异步物化视图,在刷新物化视图前会刷新外表的元数据缓存,保证基于最新外表数据构建。[#38212](https://github.com/apache/doris/pull/38212) -- 分区增量构建支持按照周和季度粒度上卷。[#39286](https://github.com/apache/doris/pull/39286) - -### 查询优化器 - -- 聚合函数`GROUP_CONCAT`现在支持同时使用`DISTINCT`和`ORDER BY`。[#38080](https://github.com/apache/doris/pull/38080) -- 优化了统计信息的收集、使用,以及估算行数和代价计算的逻辑,现在可以生成更高效稳定的执行计划。 -- 窗口函数分区数据预过滤支持包含多个窗口函数的情况。[#38393](https://github.com/apache/doris/pull/38393) - -### 查询执行 - -- 通过并行运行 Prepare Pipeline Task 来降低查询延时。[#40874](https://github.com/apache/doris/pull/40874) -- 在 Profile 中显示 Catalog 信息。[#38283](https://github.com/apache/doris/pull/38283) -- 优化了`IN`过滤条件的计算性能。[#40917](https://github.com/apache/doris/pull/40917) -- 在 K8S 中支持 cgroupv2 来限制 Doris 的内存使用。[#39256](https://github.com/apache/doris/pull/39256) -- 优化了字符串到 DATETIME 类型的转换性能。[#38385](https://github.com/apache/doris/pull/38385) -- 当字符串是一个小数时,支持将其 CAST 为 INT,这将更兼容 MySQL 的某些行为。[#38847](https://github.com/apache/doris/pull/38847) - -### 半结构化数据管理 - -- 优化了倒排索引匹配的性能。[#41122](https://github.com/apache/doris/pull/41122) -- 暂时禁止在数组上创建带分词的倒排索引。[#39062](https://github.com/apache/doris/pull/39062) -- `explode_json_array`支持二进制 JSON 类型。[#37278](https://github.com/apache/doris/pull/37278) -- IP 数据类型支持 BloomFilter 索引。[#39253](https://github.com/apache/doris/pull/39253) -- IP 数据类型支持行存。[#39258](https://github.com/apache/doris/pull/39258) -- ARRAY、MAP、STRUCT 嵌套数据类型支持 Schema Change。[#39210](https://github.com/apache/doris/pull/39210) -- 创建 MTMV 时遇到 VARIANT 数据类型自动截断 KEY。[#39988](https://github.com/apache/doris/pull/39988) -- 查询时懒加载倒排索引提升性能。[#38979](https://github.com/apache/doris/pull/38979) -- `add inverted index file size for open file`。[#37482](https://github.com/apache/doris/pull/37482) -- Compaction 时减少倒排索引访问对象存储接口提升性能。[#41079](https://github.com/apache/doris/pull/41079) -- 增加了 3 个倒排索引相关的 Query Profile Metric。[#36696](https://github.com/apache/doris/pull/36696) -- 减少非 PreparedStatement SQL 的 Cache 开销提升性能。[#40910](https://github.com/apache/doris/pull/40910) -- 预热缓存支持倒排索引。[#38986](https://github.com/apache/doris/pull/38986) -- 倒排索引写入即缓存。[#39076](https://github.com/apache/doris/pull/39076) - -### 兼容性 - -- 修复了 Thrift ID 在 Master 上与 Branch-2.1 不兼容的问题。[#41057](https://github.com/apache/doris/pull/41057) - -### 其他 - -- BE HTTP API 支持鉴权,需要鉴权时将 `config::enable_all_http_auth` 设置为 true(默认为 false)。[#39577](https://github.com/apache/doris/pull/39577) -- 优化了 REFRESH 操作所需的用户权限。从 ALTER 权限放宽到 SHOW 权限。[#39008](https://github.com/apache/doris/pull/39008) -- 减少了调用 `advanceNextId()` 时 nextId 的范围。[#40160](https://github.com/apache/doris/pull/40160) -- 优化了 Java UDF 的缓存机制。[#40404](https://github.com/apache/doris/pull/40404) - -## 缺陷修复 - -### 导入 - -- 修复了`abortTransaction`没有处理返回码的问题。[#41275](https://github.com/apache/doris/pull/41275) -- 修复了存算分离模式下提交/中止事务失败时未调用`afterCommit/afterAbort`的问题。[#41267](https://github.com/apache/doris/pull/41267) -- 修复了存算分离模式下 Routine Load 修改消费偏移量无法工作的问题。[#39159](https://github.com/apache/doris/pull/39159) -- 修复了获取错误日志文件路径时重复关闭文件的问题。[#41320](https://github.com/apache/doris/pull/41320) -- 修复了存算分离模式下 Routine Load 作业进度缓存不正确的问题。[#39313](https://github.com/apache/doris/pull/39313) -- 修复了存算分离模式下 Routine Load 提交事务失败导致卡住的问题。[#40539](https://github.com/apache/doris/pull/40539) -- 修复了存算分离模式下 Routine Load 一直报数据质量检查错误的问题。[#39790](https://github.com/apache/doris/pull/39790) -- 修复了存算分离模式下 Routine Load 未在提交前事务进行检查的问题。[#39775](https://github.com/apache/doris/pull/39775) -- 修复了存算分离模式下 Routine Load 未在中止事务前进行检查的问题。[#40463](https://github.com/apache/doris/pull/40463) -- 修复了 Cluster Key 不支持某些数据类型的问题。[#38966](https://github.com/apache/doris/pull/38966) -- 修复了事务被重复提交的问题。[#39786](https://github.com/apache/doris/pull/39786) -- 修复了 WAL 在 BE 退出时 Use After Free 的问题。[#33131](https://github.com/apache/doris/pull/33131) -- 修复了存算分离模式下 WAL 回放未跳过已经完成了的导入事务的问题。[#41262](https://github.com/apache/doris/pull/41262) -- 修复了存算分离模式下 Group Commit 选择 BE 的逻辑。[#39986](https://github.com/apache/doris/pull/39986) [#38644](https://github.com/apache/doris/pull/38644) -- 修复了 Insert Into 开启 Group Commit 时 BE 可能 Coredump 的问题。[#39339](https://github.com/apache/doris/pull/39339) -- 修复了 Insert Into 开启 Group Commit 时可能会卡住的问题。[#39391](https://github.com/apache/doris/pull/39391) -- 修复了导入不打开 Group Commit 选项时可能会报找不到表的问题。[#39731](https://github.com/apache/doris/pull/39731) -- 修复了 Tablet 数量太多提交事务超时的问题。[#40031](https://github.com/apache/doris/pull/40031) -- 修复了 Auto Partition 并发 open 的问题。[#38605](https://github.com/apache/doris/pull/38605) -- 修复了导入锁粒度太大的问题。[#40134](https://github.com/apache/doris/pull/40134) -- 修复了 Varchar 长度为 0 导致 Coredump 的问题。[#40940](https://github.com/apache/doris/pull/40940) -- 修复了日志打印的 index ID 值不正确的问题。[#38790](https://github.com/apache/doris/pull/38790) -- 修复了 Memtable 前移未 Close BRPC Streaming 的问题。[#40105](https://github.com/apache/doris/pull/40105) -- 修复了 Memtable 前移 bvar 统计不准确的问题。[#39075](https://github.com/apache/doris/pull/39075) -- 修复了 Memtable 前移多副本容错的问题。[#38003](https://github.com/apache/doris/pull/38003) -- 修复了 Routine Load 一流多表错误计算消息长度的问题。[#40367](https://github.com/apache/doris/pull/40367) -- 修复了 Broker Load 进度汇报不准确的问题。[#40325](https://github.com/apache/doris/pull/40325) -- 修复了 Broker Load 扫描数据量汇报不准确的问题。[#40694](https://github.com/apache/doris/pull/40694) -- 修复了存算分离模式下 Routine Load 并发的问题。[#39242](https://github.com/apache/doris/pull/39242) -- 修复了存算分离模式下 Routine Load Job 被取消的问题。[#39514](https://github.com/apache/doris/pull/39514) -- 修复了删除 Kafka Topic 时进度未被重置的问题。[#38474](https://github.com/apache/doris/pull/38474) -- 修复了 Routine Load 事务状态转换时更新进度的问题。[#39311](https://github.com/apache/doris/pull/39311) -- 修复了 Routine Load 从暂停状态切换到暂停状态的问题。[#40728](https://github.com/apache/doris/pull/40728) -- 修复了 Stream Load 记录因数据库被删除被漏记录的问题。[#39360](https://github.com/apache/doris/pull/39360) - -### 存储 - -- 修复了 Storage Policy 丢失的问题。[#38700](https://github.com/apache/doris/pull/38700) -- 修复了跨版本备份恢复报错的问题。[#38370](https://github.com/apache/doris/pull/38370) -- 修复了 CCR Binlog NPE 问题。[#39909](https://github.com/apache/doris/pull/39909) -- 修复了可能的 MOW 重复 Key 问题。[#41309](https://github.com/apache/doris/pull/41309) [#39791](https://github.com/apache/doris/pull/39791) [#39958](https://github.com/apache/doris/pull/39958) [#38369](https://github.com/apache/doris/pull/38369) [#38331](https://github.com/apache/doris/pull/38331) -- 修复了高频写入场景下备份恢复之后不能写入的问题。[#40118](https://github.com/apache/doris/pull/40118) [#38321](https://github.com/apache/doris/pull/38321) -- 修复了删除空字符串和 Schema Change 交叉可能触发的数据错误问题。[#41064](https://github.com/apache/doris/pull/41064) -- 修复了列更新导致的数据统计不正确问题。[#40880](https://github.com/apache/doris/pull/40880) -- 限制了 Tablet Meta PB 的大小,防止大小过大导致 BE 宕机。[#39455](https://github.com/apache/doris/pull/39455) -- 修复了`begin; insert into values; commit`新优化器可能的列错位问题。[#39295](https://github.com/apache/doris/pull/39295) - -### 存算分离 - -- 修复了存算分离模式下多个 FE 的 Tablet 分布可能不一致的问题。[#41458](https://github.com/apache/doris/pull/41458) -- 修复了 TVF 在多计算组环境下可能不工作的问题。[#39249](https://github.com/apache/doris/pull/39249) -- 修复了存算分离模式 BE 退出时 Compaction 使用了已经释放的资源问题。[#39302](https://github.com/apache/doris/pull/39302) -- 修复了自动启停可能导致 FE replay 卡住的问题。[#40027](https://github.com/apache/doris/pull/40027) -- 修复了 BE 状态和 Meta-Service 中存储的状态不一致的问题。[#40799](https://github.com/apache/doris/pull/40799) -- 修复了 FE->Meta-Service 连接池不能自动过期重连的问题。[#41202](https://github.com/apache/doris/pull/41202) [#40661](https://github.com/apache/doris/pull/40661) -- 修复了 Rebalance 过程中有一些 Tablet 可能会来回进行非预期的 Balance 问题。[#39792](https://github.com/apache/doris/pull/39792) -- 修复了 FE 重启后 Storage Vault 权限丢失的问题。[#40260](https://github.com/apache/doris/pull/40260) -- 修复了 Tablet 行数等统计信息可能因为 FDB Scan Range 分页导致统计不全的问题。[#40494](https://github.com/apache/doris/pull/40494) -- 修复了同个 Label 下关联大量的 Abort 事务导致的性能问题。[#40606](https://github.com/apache/doris/pull/40606) -- 修复了 commit_txn 没有自动重入的问题,保持存算一体和存算分离行为一致。[#39615](https://github.com/apache/doris/pull/39615) -- 修复了 Drop Column 时投影列变多的问题。[#40187](https://github.com/apache/doris/pull/40187) -- 修复了 Delete 语句返回值没有正确处理导致删除之后数据仍可见的问题。[#39428](https://github.com/apache/doris/pull/39428) -- 修复了文件缓存预热时因为 Rowset 元数据竞争导致的 coredump 问题。[#39361](https://github.com/apache/doris/pull/39361) -- 修复了 TTL 缓存开启 LRU 淘汰时会用满整个缓存空间的问题。[#39814](https://github.com/apache/doris/pull/39814) -- 修复了基于 HDFS 存储后端导入 Commit Rowset 失败时临时文件不能回收的问题。[#40215](https://github.com/apache/doris/pull/40215) - -### Lakehouse - -- 修复了一些 JDBC Catalog 谓词下推的问题。[#39064](https://github.com/apache/doris/pull/39064) -- 修复了当 Parquet 格式中 Struct 类型列缺失时无法读取的问题。[#38718](https://github.com/apache/doris/pull/38718) -- 修复了部分情况下 FE 侧 FileSystem 泄露的问题。[#38610](https://github.com/apache/doris/pull/38610) -- 修复了部分情况下 Hive/Iceberg 表写回导致元数据缓存信息不一致的问题。[#40729](https://github.com/apache/doris/pull/40729) -- 修复了部分情况下为外表生成分区 ID 不稳定的问题。[#39325](https://github.com/apache/doris/pull/39325) -- 修复了部分情况下外表查询会选择在黑名单中的 BE 节点的问题。[#39451](https://github.com/apache/doris/pull/39451) -- 优化了分批获取外表分区信息时的超时时间,避免了长时间占用线程。[#39346](https://github.com/apache/doris/pull/39346) -- 修复了部分情况下查询 Hudi 表导致内存泄露的问题。[#41256](https://github.com/apache/doris/pull/41256) -- 修复了部分情况下 JDBC Catalog 可能存在连接池连接泄露的问题。[#39582](https://github.com/apache/doris/pull/39582) -- 修复了部分情况下 JDBC Catalog 可能存在 BE 内存泄露的问题。[#41041](https://github.com/apache/doris/pull/41041) -- 修复了无法查询阿里云 OSS 上 Hudi 数据的问题。[#41316](https://github.com/apache/doris/pull/41316) -- 修复了无法读取 MaxCompute 空分区的问题。[#40046](https://github.com/apache/doris/pull/40046) -- 修复了通过 JDBC Catalog 查询 Oracle 表示性能差的问题。[#41513](https://github.com/apache/doris/pull/41513) -- 修复了开启文件缓存功能后,查询 Paimon 表 Deletion Vector 时 BE 宕机的问题。[#39877](https://github.com/apache/doris/pull/39877) -- 修复了无法访问开启 HA 的 HDFS 集群上 Paimon 表的问题。[#39806](https://github.com/apache/doris/pull/39806) -- 临时关闭了 Parquet 的 Page Index 过滤功能以避免一些潜在问题。[#38691](https://github.com/apache/doris/pull/38691) -- 修复了无法读取 Parquet 文件中 Unsigned 类型的问题。[#39926](https://github.com/apache/doris/pull/39926) -- 修复了部分情况下读取 Parquet 文件可能导致死循环的问题。[#39523](https://github.com/apache/doris/pull/39523) - -### 异步物化视图 - -- 修复了分区构建时,如果两侧有相同的列名,可能选择错误的表跟踪分区的问题。[#40810](https://github.com/apache/doris/pull/40810) -- 修复了透明改写分区补偿可能导致结果错误的问题。[#40803](https://github.com/apache/doris/pull/40803) -- 修复了透明改写在外表不生效的问题。[#38909](https://github.com/apache/doris/pull/38909) -- 修复了嵌套物化视图可能不能正常刷新的问题。[#40433](https://github.com/apache/doris/pull/40433) - -### 同步物化视图 - -- 修复了在 MOW 表上创建同步物化视图可能导致查询结果错误的问题。[#39171](https://github.com/apache/doris/pull/39171) - -### 查询优化器 - -- 修复了升级后原有同步物化视图可能不可用的问题。[#41283](https://github.com/apache/doris/pull/41283) -- 修复了 DATETIME 字面量比较时,没有正确处理毫秒的问题。[#40121](https://github.com/apache/doris/pull/40121) -- 修复了条件函数分区裁剪可能错误的问题。[#39298](https://github.com/apache/doris/pull/39298) -- 修复了存在同步物化视图的 MOW 表无法执行 Delete 的问题。[#39578](https://github.com/apache/doris/pull/39578) -- 修复了 JDBC 外表查询谓词中的 Slot 的 Nullable 可能规划不正确,导致查询报错的问题。[#41014](https://github.com/apache/doris/pull/41014) - -### 查询执行 - -- 修复了 Runtime Filter 在使用过程中导致的内存泄露问题。[#39155](https://github.com/apache/doris/pull/39155) -- 修复了 Window Function 在使用内存特别多的问题。[#39581](https://github.com/apache/doris/pull/39581) -- 修复了一系列滚动升级期间函数兼容性的问题。[#41023](https://github.com/apache/doris/pull/41023) [#40438](https://github.com/apache/doris/pull/40438) [#39648](https://github.com/apache/doris/pull/39648) -- 修复了`encryption_function` 在常量时结果错误的问题。[#40201](https://github.com/apache/doris/pull/40201) -- 修复了单表物化视图导入时报错的问题。[#39061](https://github.com/apache/doris/pull/39061) -- 修复了窗口函数分区结果计算错误的问题。[#39100](https://github.com/apache/doris/pull/39100) [#40761](https://github.com/apache/doris/pull/40761) -- 修复了 TOPN 计算在有 Null 值时计算错误的问题。[#39497](https://github.com/apache/doris/pull/39497) -- 修复了 `map_agg` 函数计算结果错误的问题。[#39743](https://github.com/apache/doris/pull/39743) -- 修复了 Cancel 返回的消息错误的问题。[#38982](https://github.com/apache/doris/pull/38982) -- 修复了 Encrypt 和 Decrypt 函数导致 BE Core 的问题。[#40726](https://github.com/apache/doris/pull/40726) -- 修复了在高并发场景下,过多的 Scanner 导致查询卡住的问题。[#40495](https://github.com/apache/doris/pull/40495) -- Runtime Filter 中支持 TIME 类型。[#38258](https://github.com/apache/doris/pull/38258) -- 修复了 Window Funnel 函数结果错误的问题。[#40960](https://github.com/apache/doris/pull/40960) - -### 半结构化数据管理 - -- 修复了没有索引时 Match 函数报错的问题。[#38989](https://github.com/apache/doris/pull/38989) -- 修复了 ARRAY 数据类型作为 `array_min`/`array_max` 函数参数时 Crash 的问题。[#39492](https://github.com/apache/doris/pull/39492) -- 修复了 `array_enumerate_uniq` 函数 Nullable 的问题。[#38384](https://github.com/apache/doris/pull/38384) -- 修复了添加或删除列时 BloomFilter 索引没有更新的问题。[#38431](https://github.com/apache/doris/pull/38431) -- 修复了 ES-Catalog 解析异常 Array 数据的问题。[#39104](https://github.com/apache/doris/pull/39104) -- 修复了 ES-Catalog 不合理条件下推的问题。[#40111](https://github.com/apache/doris/pull/40111) -- 修复了 `map()`/ `struct()` 函数修改了输入数据导致异常的问题。[#39699](https://github.com/apache/doris/pull/39699) -- 修复了特殊情况下索引 Compaction Crash 的问题。[#40294](https://github.com/apache/doris/pull/40294) -- 修复了 ARRAY 类型倒排索引缺少 Nullbitmap 的问题。[#38907](https://github.com/apache/doris/pull/38907) -- 修复了倒排索引 `count()` 结果的问题。[#41152](https://github.com/apache/doris/pull/41152) -- 修复了 `explode_map` 使用别名时结果正确性问题。[#39757](https://github.com/apache/doris/pull/39757) -- 修复了 VARIANT 类型中异常 JSON 数据无法使用行存的问题。[#39394](https://github.com/apache/doris/pull/39394) -- 修复了 VARIANT 类型中返回 ARRAY 结果时内存泄漏的问题。[#41358](https://github.com/apache/doris/pull/41358) -- 修复了 VARIANT 类型修改列名的问题。[#40320](https://github.com/apache/doris/pull/40320) -- 修复了 VARIANT 类型转成 DECIMAL 类型可能丢失精度的问题。[#39650](https://github.com/apache/doris/pull/39650) -- 修复了 VARIANT 类型 Nullable 处理问题。[#39732](https://github.com/apache/doris/pull/39732) -- 修复了 VARIANT 类型稀疏列读取问题。[#40295](https://github.com/apache/doris/pull/40295) - -### 其他 - -- 修复了新旧 Audit Log Plugin 兼容性问题。[#41401](https://github.com/apache/doris/pull/41401) -- 修复了某些情况下用户能看到他人进程的问题。[#39747](https://github.com/apache/doris/pull/39747) -- 修复了有权限的用户也不能导出的问题。[#38365](https://github.com/apache/doris/pull/38365) -- 修复了 CREATE TABLE LIKE 需要已有表的 CREATE 权限的问题。[#37879](https://github.com/apache/doris/pull/37879) -- 修复了一些功能没有校验权限的问题。[#39726](https://github.com/apache/doris/pull/39726) -- 修复了使用 SSL 连接时未正确关闭连接的问题。[#38587](https://github.com/apache/doris/pull/38587) -- 修复了部分情况下执行 ALTER VIEW 操作导致 FE 无法启动的问题。[#40872](https://github.com/apache/doris/pull/40872) - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.3.md deleted file mode 100644 index b83a0e587836a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.3.md +++ /dev/null @@ -1,209 +0,0 @@ ---- -{ - "title": "Release 3.0.3", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.3 版本已于 2024 年 12 月 02 日正式发布。 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 3.0.3 版本已于 2024 年 12 月 02 日正式发布。** 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - -## 行为变更 - -- 禁止在具有同步物化视图的 MOW 表上进行列更新。[#40190](https://github.com/apache/doris/pull/40190) -- 调整 RoutineLoad 的默认参数以提升导入效率。[#42968](https://github.com/apache/doris/pull/42968) -- 当 StreamLoad 失败时,LoadedRows 的返回值调整为 0。[#41946](https://github.com/apache/doris/pull/41946) [#42291](https://github.com/apache/doris/pull/42291) -- 将 Segment cache 的默认内存限制调整为 5%。[#42308](https://github.com/apache/doris/pull/42308) [#42436](https://github.com/apache/doris/pull/42436) - -## 新特性 - -- 引入 `enable_cooldown_replica_affinity` 会话变量,用以控制冷热分层副本的亲和性。[#42677](https://github.com/apache/doris/pull/42677) - -### Lakehouse - -- 新增 `table$partition` 语法,用于查询 Hive 表的分区信息。[#40774](https://github.com/apache/doris/pull/40774) - - - [查看文档](../../lakehouse/catalogs/hive-catalog) - -- 支持创建 Text 格式的 Hive 表。[#41860](https://github.com/apache/doris/pull/41860) [#42175](https://github.com/apache/doris/pull/42175) - - - [查看文档](../../lakehouse/catalogs/hive-catalog) - -### 异步物化视图 - -- 引入新的物化视图属性 `use_for_rewrite`。当 `use_for_rewrite` 设置为 false 时,物化视图不参与透明改写。[#40332](https://github.com/apache/doris/pull/40332) - -### 查询优化器 - -- 支持关联非聚合子查询。[#42236](https://github.com/apache/doris/pull/42236) - -### 查询执行 - -- 增加了 `ngram_search`、`normal_cdf`、`to_iso8601`、`from_iso8601_date`、`SESSION_USER()`、`last_query_id` 函数。[#38226](https://github.com/apache/doris/pull/38226) [#40695](https://github.com/apache/doris/pull/40695) [#41075](https://github.com/apache/doris/pull/41075) [#41600](https://github.com/apache/doris/pull/41600) [#39575](https://github.com/apache/doris/pull/39575) [#40739](https://github.com/apache/doris/pull/40739) -- `aes_encrypt` 和 `aes_decrypt` 函数支持 GCM 模式。[#40004](https://github.com/apache/doris/pull/40004) -- Profile 中输出变更的会话变量值。[#41016](https://github.com/apache/doris/pull/41016) [#41318](https://github.com/apache/doris/pull/41318) - -### 半结构化数据管理 - -- 新增数组函数 `array_match_all` 和 `array_match_any`。[#40605](https://github.com/apache/doris/pull/40605) [#43514](https://github.com/apache/doris/pull/43514) -- 数组函数 `array_agg` 支持在 ARRAY 中嵌套 ARRAY/MAP/STRUCT。[#42009](https://github.com/apache/doris/pull/42009) -- 新增近似聚合统计函数 `approx_top_k` 和 `approx_top_sum`。[#44082](https://github.com/apache/doris/pull/44082) - -## 改进与优化 - -### 存储 - -- 支持将 `bitmap_empty` 作为默认值。[#40364](https://github.com/apache/doris/pull/40364) -- 引入 `insert_timeout` 会话变量,用以控制 DELETE 语句的超时时间。[#41063](https://github.com/apache/doris/pull/41063) -- 改进部分错误提示信息。[#41048](https://github.com/apache/doris/pull/41048) [#39631](https://github.com/apache/doris/pull/39631) -- 改进副本修复的优先级调度。[#41076](https://github.com/apache/doris/pull/41076) -- 提高了建表时对时区处理的鲁棒性。[#41926](https://github.com/apache/doris/pull/41926) [#42389](https://github.com/apache/doris/pull/42389) -- 在创建表时检查分区表达式的合法性。[#40158](https://github.com/apache/doris/pull/40158) -- 在 DELETE 操作时支持 Unicode 编码的列名。[#39381](https://github.com/apache/doris/pull/39381) - -### 存算分离 - -- 存算分离模式支持 ARM 架构部署。[#42467](https://github.com/apache/doris/pull/42467) [#43377](https://github.com/apache/doris/pull/43377) -- 优化文件缓存的淘汰策略和锁竞争,提高命中率及高并发点查性能。[#42451](https://github.com/apache/doris/pull/42451) [#43201](https://github.com/apache/doris/pull/43201) [#41818](https://github.com/apache/doris/pull/41818) [#43401](https://github.com/apache/doris/pull/43401) -- S3 storage vault 支持 `use_path_style`,解决对象存储使用自定义域名的问题。[#43060](https://github.com/apache/doris/pull/43060) [#43343](https://github.com/apache/doris/pull/43343) [#43330](https://github.com/apache/doris/pull/43330) -- 优化存算分离配置及部署,预防不同模式下的误操作。[#43381](https://github.com/apache/doris/pull/43381) [#43522](https://github.com/apache/doris/pull/43522) [#43434](https://github.com/apache/doris/pull/43434) [#40764](https://github.com/apache/doris/pull/40764) [#43891](https://github.com/apache/doris/pull/43891) -- 优化可观测性,并提供删除指定 segment file cache 的接口。[#38489](https://github.com/apache/doris/pull/38489) [#42896](https://github.com/apache/doris/pull/42896) [#41037](https://github.com/apache/doris/pull/41037) [#43412](https://github.com/apache/doris/pull/43412) -- 优化 Meta-service 运维接口:RPC 限速及修复 tablet 元数据修正。[#42413](https://github.com/apache/doris/pull/42413) [#43884](https://github.com/apache/doris/pull/43884) [#41782](https://github.com/apache/doris/pull/41782) [#43460](https://github.com/apache/doris/pull/43460) - -### Lakehouse - -- Paimon Catalog 支持阿里云 DLF 和 OSS-HDFS 存储。[#41247](https://github.com/apache/doris/pull/41247) [#42585](https://github.com/apache/doris/pull/42585) - - - [查看文档](../../lakehouse/catalogs/paimon-catalog) - -- 支持读取 OpenCSV 格式的 Hive 表。[#42257](https://github.com/apache/doris/pull/42257) [#42942](https://github.com/apache/doris/pull/42942) -- 优化了访问 External Catalog 中 `information_schema.columns` 表的性能。[#41659](https://github.com/apache/doris/pull/41659) [#41962](https://github.com/apache/doris/pull/41962) -- 使用新的 MaxCompute 开放存储 API 访问 MaxCompute 数据源。[#41614](https://github.com/apache/doris/pull/41614) -- 优化了 Paimon 表 JNI 部分的调度策略,使得扫描任务更加均衡。[#43310](https://github.com/apache/doris/pull/43310) -- 优化了 ORC 小文件的读取性能。[#42004](https://github.com/apache/doris/pull/42004) [#43467](https://github.com/apache/doris/pull/43467) -- 支持读取 brotli 压缩格式的 parquet 文件。[#42177](https://github.com/apache/doris/pull/42177) -- 在 `information_schema` 库下新增 `file_cache_statistics` 表,用于查看元数据缓存统计信息。[#42160](https://github.com/apache/doris/pull/42160) - -### 查询优化器 - -- 优化:当查询仅注释不同时,可以复用同一个 SQL Cache。[#40049](https://github.com/apache/doris/pull/40049) -- 优化:提升了在数据频繁更新时统计信息的稳定性。[#43865](https://github.com/apache/doris/pull/43865) [#39788](https://github.com/apache/doris/pull/39788) [#43009](https://github.com/apache/doris/pull/43009) [#40457](https://github.com/apache/doris/pull/40457) [#42409](https://github.com/apache/doris/pull/42409) [#41894](https://github.com/apache/doris/pull/41894) -- 优化:提升常量折叠的稳定性。[#42910](https://github.com/apache/doris/pull/42910) [#41164](https://github.com/apache/doris/pull/41164) [#39723](https://github.com/apache/doris/pull/39723) [#41394](https://github.com/apache/doris/pull/41394) [#42256](https://github.com/apache/doris/pull/42256) [#40441](https://github.com/apache/doris/pull/40441) -- 优化:列裁剪可以生成更优的执行计划。[#41719](https://github.com/apache/doris/pull/41719) [#41548](https://github.com/apache/doris/pull/41548) - -### 查询执行 - -- 优化了 sort 算子的内存使用。[#39306](https://github.com/apache/doris/pull/39306) -- 优化了 ARM 下运算的性能。[#38888](https://github.com/apache/doris/pull/38888) [#38759](https://github.com/apache/doris/pull/38759) -- 优化了一系列函数的计算性能。[#40366](https://github.com/apache/doris/pull/40366) [#40821](https://github.com/apache/doris/pull/40821) [#40670](https://github.com/apache/doris/pull/40670) [#41206](https://github.com/apache/doris/pull/41206) [#40162](https://github.com/apache/doris/pull/40162) -- 使用 SSE 指令优化 `match_ipv6_subnet` 函数的性能。[#38755](https://github.com/apache/doris/pull/38755) -- 在 insert overwrite 时支持自动创建新的分区。[#38628](https://github.com/apache/doris/pull/38628) [#42645](https://github.com/apache/doris/pull/42645) -- 在 Profile 中增加了每个 PipelineTask 的状态。[#42981](https://github.com/apache/doris/pull/42981) -- IP 类型支持 runtime filter。[#39985](https://github.com/apache/doris/pull/39985) - -### 半结构化数据管理 - -- 审计日志中输出 prepared statement 的真实 SQL。[#43321](https://github.com/apache/doris/pull/43321) -- filebeat doris output plugin 支持容错、进度报告等。[#36355](https://github.com/apache/doris/pull/36355) -- 倒排索引查询性能优化。[#41547](https://github.com/apache/doris/pull/41547) [#41585](https://github.com/apache/doris/pull/41585) [#41567](https://github.com/apache/doris/pull/41567) [#41577](https://github.com/apache/doris/pull/41577) [#42060](https://github.com/apache/doris/pull/42060) [#42372](https://github.com/apache/doris/pull/42372) -- 数组函数 `array overlaps` 支持使用倒排索引加速。[#41571](https://github.com/apache/doris/pull/41571) -- IP 函数 `is_ip_address_in_range` 支持使用倒排索引加速。[#41571](https://github.com/apache/doris/pull/41571) -- 优化 VARIANT 数据类型的 CAST 性能。[#41775](https://github.com/apache/doris/pull/41775) [#42438](https://github.com/apache/doris/pull/42438) [#43320](https://github.com/apache/doris/pull/43320) -- 优化 Variant 数据类型的 CPU 资源消耗。[#42856](https://github.com/apache/doris/pull/42856) [#43062](https://github.com/apache/doris/pull/43062) [#43634](https://github.com/apache/doris/pull/43634) -- 优化 Variant 数据类型的元数据和执行内存资源消耗。[#42448](https://github.com/apache/doris/pull/42448) [#43326](https://github.com/apache/doris/pull/43326) [#41482](https://github.com/apache/doris/pull/41482) [#43093](https://github.com/apache/doris/pull/43093) [#43567](https://github.com/apache/doris/pull/43567) [#43620](https://github.com/apache/doris/pull/43620) - -### 权限 - -- LDAP 新增配置项 `ldap_group_filter` 用于自定义过滤 group。[#43292](https://github.com/apache/doris/pull/43292) - -### 其他 - -- FE 监控项中的连接数信息支持按用户分别显示。[#39200](https://github.com/apache/doris/pull/39200) - -## 问题修复 - -### 存储 - -- 修复 IPv6 hostname 使用问题。[#40074](https://github.com/apache/doris/pull/40074) -- 修复 broker/s3 load 进度展示不准确问题。[#43535](https://github.com/apache/doris/pull/43535) -- 修复查询从 FE 可能卡住的问题。[#41303](https://github.com/apache/doris/pull/41303) [#42382](https://github.com/apache/doris/pull/42382) -- 修复异常情况下自增 id 重复的问题。[#43774](https://github.com/apache/doris/pull/43774) [#43983](https://github.com/apache/doris/pull/43983) -- 修复 groupcommit 偶发 NPE 问题。[#43635](https://github.com/apache/doris/pull/43635) -- 修复 auto bucket 计算不准确的问题。[#41675](https://github.com/apache/doris/pull/41675) [#41835](https://github.com/apache/doris/pull/41835) -- 修复 FE 重启时流控多表不能正确规划的问题。[#41677](https://github.com/apache/doris/pull/41677) [#42290](https://github.com/apache/doris/pull/42290) - -### 存算分离 - -- 修复 MOW 主键表 delete bitmap 过大可能导致 coredump 的问题。[#43088](https://github.com/apache/doris/pull/43088) [#43457](https://github.com/apache/doris/pull/43457) [#43479](https://github.com/apache/doris/pull/43479) [#43407](https://github.com/apache/doris/pull/43407) [#43297](https://github.com/apache/doris/pull/43297) [#43613](https://github.com/apache/doris/pull/43613) [#43615](https://github.com/apache/doris/pull/43615) [#43854](https://github.com/apache/doris/pull/43854) [#43968](https://github.com/apache/doris/pull/43968) [#44074](https://github.com/apache/doris/pull/44074) [#41793](https://github.com/apache/doris/pull/41793) [#42142](https://github.com/apache/doris/pull/42142) -- 修复 segment 文件为 5MB 整数倍时上传对象失败的问题。[#43254](https://github.com/apache/doris/pull/43254) -- 修复 aws sdk 默认重试策略不生效的问题。[#43575](https://github.com/apache/doris/pull/43575) [#43648](https://github.com/apache/doris/pull/43648) -- 修复 alter storage vault 时指定错误 type 也能继续执行的问题。[#43489](https://github.com/apache/doris/pull/43489) [#43352](https://github.com/apache/doris/pull/43352) [#43495](https://github.com/apache/doris/pull/43495) -- 修复大事务延迟提交过程中 tablet_id 可能为 0 的问题。[#42043](https://github.com/apache/doris/pull/42043) [#42905](https://github.com/apache/doris/pull/42905) -- 修复常量折叠 RCP 以及 FE 转发 SQL 可能不在预期的计算组执行的问题。[#43110](https://github.com/apache/doris/pull/43110) [#41819](https://github.com/apache/doris/pull/41819) [#41846](https://github.com/apache/doris/pull/41846) -- 修复 meta-service 接收到 RPC 时不严格检查 instance_id 的问题。[#43253](https://github.com/apache/doris/pull/43253) [#43832](https://github.com/apache/doris/pull/43832) -- 修复 FE follower information_schema version 没有及时更新的问题。[#43496](https://github.com/apache/doris/pull/43496) -- 修复 file cache rename 原子性以及指标不准确的问题。[#42869](https://github.com/apache/doris/pull/42869) [#43504](https://github.com/apache/doris/pull/43504) [#43220](https://github.com/apache/doris/pull/43220) - -### Lakehouse - -- 禁止带有隐式转换的谓词条件下推给 JDBC 数据源,避免不一致的查询结果。[#42102](https://github.com/apache/doris/pull/42102) -- 修复 Hive 高版本事务表的一些读取问题。[#42226](https://github.com/apache/doris/pull/42226) -- 修复 Export 命令可能导致死锁的问题。[#43083](https://github.com/apache/doris/pull/43083) [#43402](https://github.com/apache/doris/pull/43402) -- 修复无法查询 Spark 创建的 Hive 视图的问题。[#43552](https://github.com/apache/doris/pull/43552) -- 修复 Hive 分区路径中包含特殊字符导致分区裁剪有误的问题。[#42906](https://github.com/apache/doris/pull/42906) -- 修复 Iceberg Catalog 无法使用 AWS Glue 的问题。[#41084](https://github.com/apache/doris/pull/41084) - -### 异步物化视图 - -- 修复基表重建后,异步物化视图可能无法刷新的问题。[#41762](https://github.com/apache/doris/pull/41762) - -### 查询优化器 - -- 修复使用多列 range 分区时,分区裁剪结果可能有误的问题。[#43332](https://github.com/apache/doris/pull/43332) -- 修复部分 limit offset 场景下计算结果错误的问题。[#42576](https://github.com/apache/doris/pull/42576) - -### 查询执行 - -- 修复 hash join 时 array 类型的大小超过 4G 导致 BE Core 的问题。[#43861](https://github.com/apache/doris/pull/43861) -- 修复 is null 谓词运算部分场景下结果不正确的问题。[#43619](https://github.com/apache/doris/pull/43619) -- 修复 bitmap 类型在 hash join 时输出结果不正确的问题。[#43718](https://github.com/apache/doris/pull/43718) -- 修复一些函数结果计算错误的问题。[#40710](https://github.com/apache/doris/pull/40710) [#39358](https://github.com/apache/doris/pull/39358) [#40929](https://github.com/apache/doris/pull/40929) [#40869](https://github.com/apache/doris/pull/40869) [#40285](https://github.com/apache/doris/pull/40285) [#39891](https://github.com/apache/doris/pull/39891) [#40530](https://github.com/apache/doris/pull/40530) [#41948](https://github.com/apache/doris/pull/41948) [#43588](https://github.com/apache/doris/pull/43588) -- 修复一些 JSON 类型解析的问题。[#39937](https://github.com/apache/doris/pull/39937) -- 修复 varchar 和 char 类型在 runtime filter 运算时的问题。[#43758](https://github.com/apache/doris/pull/43758) [#43919](https://github.com/apache/doris/pull/43919) -- 修复一些 decimal256 在标量函数和聚合函数里使用的问题。[#42136](https://github.com/apache/doris/pull/42136) [#42356](https://github.com/apache/doris/pull/42356) -- 修复 arrow flight 在连接时报 `Reach limit of connections` 错误的问题。[#39127](https://github.com/apache/doris/pull/39127) -- 修复 k8s 环境下,BE 可用内存统计不正确的问题。[#41123](https://github.com/apache/doris/pull/41123) - -### 半结构化数据管理 - -- 调整 `segment_cache_fd_percentage` 和 `inverted_index_fd_number_limit_percent` 的默认值。[#42224](https://github.com/apache/doris/pull/42224 -- logstash 支持 group_commit。[#40450](https://github.com/apache/doris/pull/40450) -- 修复 build index 时 coredump 的问题。[#43246](https://github.com/apache/doris/pull/43246) [#43298](https://github.com/apache/doris/pull/43298) -- 修复 variant index 的问题。[#43375](https://github.com/apache/doris/pull/43375) [#43773](https://github.com/apache/doris/pull/43773) -- 修复后台 compaction 异常情况下可能出现的 fd 和内存泄漏。[#42374](https://github.com/apache/doris/pull/42374) -- 倒排索引 match null 正确返回 null 而不是 false。[#41786](https://github.com/apache/doris/pull/41786) -- 修复 ngram bloomfilter 索引 bf_size 设置为 65536 时 coredump 的问题。[#43645](https://github.com/apache/doris/pull/43645) -- 修复复杂数据类型 JOIN 可能出 coredump 的问题。[#40398](https://github.com/apache/doris/pull/40398) -- 修复 TVF JSON 数据 coredump 的问题。[#43187](https://github.com/apache/doris/pull/43187) -- 修复 bloom filter 计算日期和时间的精度问题。[#43612](https://github.com/apache/doris/pull/43612) -- 修复 IPv6 类型行存 coredump 的问题。[#43251](https://github.com/apache/doris/pull/43251) -- 修复关闭 light_schema_change 时使用 VARIANT 类型 coredump 的问题。[#40908](https://github.com/apache/doris/pull/40908) -- 提升高并发点查的 cache 性能。[#44077](https://github.com/apache/doris/pull/44077) -- 修复删除列时 bloom filter 索引没有同步更新的问题。[#43378](https://github.com/apache/doris/pull/43378) -- 修复 es catalog 在数组和标量混合数据等特殊情况下的不稳定问题。[#40314](https://github.com/apache/doris/pull/40314) [#40385](https://github.com/apache/doris/pull/40385) [#43399](https://github.com/apache/doris/pull/43399) [#40614](https://github.com/apache/doris/pull/40614) -- 修复异常正则匹配导致的 coredump 问题。[#43394](https://github.com/apache/doris/pull/43394) - -### 权限 - -- 修复若干权限授权之后无法正常限制的问题。[#43193](https://github.com/apache/doris/pull/43193) [#41723](https://github.com/apache/doris/pull/41723) [#42107](https://github.com/apache/doris/pull/42107) [#43306](https://github.com/apache/doris/pull/43306) -- 加强若干权限校验。[#40688](https://github.com/apache/doris/pull/40688) [#40533](https://github.com/apache/doris/pull/40533) [#41791](https://github.com/apache/doris/pull/41791) [#42106](https://github.com/apache/doris/pull/42106) - -### 其他 - -- 补充了审计日志表和文件中缺失的审计日志字段。[#43303](https://github.com/apache/doris/pull/43303) - - - [查看文档](../../admin-manual/system-tables/internal_schema/audit_log) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.4.md deleted file mode 100644 index a55e9f8e99a06..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.4.md +++ /dev/null @@ -1,210 +0,0 @@ ---- -{ - "title": "Release 3.0.4", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.4 版本已于 2025 年 02 月 28 日正式发布。 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 3.0.4 版本已于 2025 年 02 月 28 日正式发布。** 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - - -## 行为变更 - -- 在 Audit Log 中,`drop table` 和 `drop database` 语句保持 `force` 标志。 [#43227](https://github.com/apache/doris/pull/43227) - -- 导出数据至 Parquet/ORC 格式时,`bitmap`、`quantile_state` 和 `hll` 类型将以 Binary 格式导出。同时新增支持导出 `jsonb` 和 `variant` 类型,导出格式为 `string`。 [#44041](https://github.com/apache/doris/pull/44041) - - - 更多内容,参考文档:[Export Overview - Apache Doris](https://doris.apache.org/docs/3.0/data-operate/export/export-overview) -- 当通过 External Catalog 查询表名大小写不敏感的数据源(如 Hive)时,在之前版本中,可以使用任意大小写进行表名查询,但是在 3.0.4 版本中,将严格遵循 Doris 自身的表名大小写敏感策略。 -- 将 Hudi JNI Scanner 从 Spark API 替换为 Hadoop API,以增强兼容性。用户可以通过设置会话变量 `set hudi_jni_scanner=spark/hadoop` 进行切换。[#44267](https://github.com/apache/doris/pull/44267) -- 禁止在 Colocate 表中使用 `auto bucket`。 [#44396](https://github.com/apache/doris/pull/44396) -- 为 Catalog 增加 Paimon 缓存,不再进行实时数据查询。 [#44911 ](https://github.com/apache/doris/pull/44911) -- 增大 `max_broker_concurrency` 的默认值,以提升 Broker Load 在大规模数据导入时的性能。 [#44929](https://github.com/apache/doris/pull/44929) -- 将 Auto Partition 分区的 `storage medium` 默认值修改为当前表的 `storage medium` 属性值,而非系统默认值。 [#45955](https://github.com/apache/doris/pull/45955) -- 禁止在修改 Key 列的 Schema Change 执行期间进行列更新。 [#46347](https://github.com/apache/doris/pull/46347) -- 对于包含自增列的 Key 列表,支持在列更新时不提供自增列。 [#44528](https://github.com/apache/doris/pull/44528) -- FE ID 生成器策略切换为与物理时间相关的策略,ID 不再从 10000 开始。 [#44790](https://github.com/apache/doris/pull/44790) -- 在存算分离模式下,Compaction 产生的 stale rowset 默认回收延迟时间减小至 1800 秒,以减少回收间隔。某些极端场景下可能会导致超大查询失败,如遇问题可按需调整。 [#45460](https://github.com/apache/doris/pull/45460) -- 在存算分离模式下禁用 `show cache hotspot` 语句,需直接访问系统表。 [#47332](https://github.com/apache/doris/pull/47332) -- 禁止删除系统创建的 `admin` 用户。 [#44751](https://github.com/apache/doris/pull/44751) - -## 改进优化 - -### 存储 - -- 优化 Routine Load 因 `max_match_interval` 设置过小导致任务频繁超时的问题。 [#46292](https://github.com/apache/doris/pull/46292) -- 提升 Broker Load 在导入多个压缩文件时的性能。 [#43975](https://github.com/apache/doris/pull/43975) -- 增大 `webserver_num_workers` 的默认值以提升 Stream Load 性能。 [#46593](https://github.com/apache/doris/pull/46593) -- 优化 Routine Load 导入任务在 BE 节点扩容时负载不均衡的问题。 [#44798](https://github.com/apache/doris/pull/44798) -- 优化 Routine Load 线程池使用,防止 Routine Load 超时失败影响查询。 [#45039](https://github.com/apache/doris/pull/45039) - -### 存算分离 - -- 加强 Meta-service 的稳定性和可观测性。 [#44036](https://github.com/apache/doris/pull/44036), [#45617](https://github.com/apache/doris/pull/45617), [#45255](https://github.com/apache/doris/pull/45255), [#45068](https://github.com/apache/doris/pull/45068) -- 优化 File Cache,增加提前淘汰策略,减小持锁时间,提升查询性能。 [#47473](https://github.com/apache/doris/pull/47473), [#45678](https://github.com/apache/doris/pull/45678), [#47472](https://github.com/apache/doris/pull/47472) -- 优化 File Cache 初始化检查以及队列转换,提升稳定性。 [#44004](https://github.com/apache/doris/pull/44004), [#44429](https://github.com/apache/doris/pull/44429), [#45057](https://github.com/apache/doris/pull/45057), [#47229](https://github.com/apache/doris/pull/47229) -- 优化 HDFS 数据回收速度。 [#46393](https://github.com/apache/doris/pull/46393) -- 优化超高频导入时 FE 获取计算组可能存在的性能问题。 [#47203](https://github.com/apache/doris/pull/47203) -- 优化存算分离主键表的若干导入相关参数,提升实时高并发导入的稳定性。 [#47295](https://github.com/apache/doris/pull/47295), [#46750](https://github.com/apache/doris/pull/46750), [#46365](https://github.com/apache/doris/pull/46365) - -### Lakehouse - -- 支持读取 Hive Json 格式的表数据。 [#43469](https://github.com/apache/doris/pull/46393) - - - 更多内容,参考文档:[Text/CSV/JSON - Apache Doris](https://doris.apache.org/docs/dev/lakehouse/file-formats/text#json) - -- 支持会话变量 `enable_text_validate_utf8`,可忽略 CSV 格式中的 UTF-8 编码检测。 [#45537](https://github.com/apache/doris/pull/45537) - - - 更多内容,参考文档:[Text/CSV/JSON - Apache Doris](https://doris.apache.org/docs/dev/lakehouse/file-formats/text#character-set) - -- 将 Hudi 版本更新至 0.15,并优化 Hudi 表的查询规划性能。 -- 优化 MaxCompute 分区表的读取性能。 [#45148](https://github.com/apache/doris/pull/45148) -- 优化在高过滤率情况下,Parquet 文件延迟物化的性能。 [#46183](https://github.com/apache/doris/pull/46183) -- 支持 Parquet 复杂类型的延迟物化。 [#44098](https://github.com/apache/doris/pull/44098) -- 优化 ORC 类型的谓词下推逻辑,支持更多谓词条件用于索引过滤。 [#43255](https://github.com/apache/doris/pull/43255) - -### 异步物化视图 - -- 支持更多场景下的聚合上卷改写。 [#44412](https://github.com/apache/doris/pull/44412) - -### 查询优化器 - -- 优化分区裁剪性能。 [#46261](https://github.com/apache/doris/pull/46261) -- 增加利用数据特征消除 `group by` key 的规则。 [#43391](https://github.com/apache/doris/pull/43391) -- 根据目标表的数据量自适应调整 Runtime Filter 的等待时间。 [#42640](https://github.com/apache/doris/pull/42640) -- 优化聚合下压连接的能力,以适应更多场景。 [#43856](https://github.com/apache/doris/pull/43856), [#43380](https://github.com/apache/doris/pull/43380) -- 优化 Limit 下压聚合,以适应更多场景。 [#44042](https://github.com/apache/doris/pull/44042) - -### 其他 - -- 优化 FE、BE、MS 进程启动脚本,使输出内容更明确。 [#45610](https://github.com/apache/doris/pull/45610), [#45490](https://github.com/apache/doris/pull/45490), [#45883](https://github.com/apache/doris/pull/45883) -- `show tables` 显示的表名大小写现在与 MySQL 行为一致。 [#46030](https://github.com/apache/doris/pull/46030) -- `show index` 支持任意目标表类型。 [#45861](https://github.com/apache/doris/pull/45861) -- `information_schema.columns` 支持显示默认值。 [#44849](https://github.com/apache/doris/pull/44849) -- `information_schema.views` 支持显示视图定义。 [#45857](https://github.com/apache/doris/pull/45857) -- 支持 MySQL 协议的 `COM_RESET_CONNECTION` 命令。 [#44747](https://github.com/apache/doris/pull/44747) - -## 缺陷修复 - -### 存储 - -- 修复聚合表模型导入过程中可能出现的内存错误。 [#46997](https://github.com/apache/doris/pull/46997) -- 修复存算分离模式下 FE 主节点重启时导致 Routine Load offset 丢失的问题。 [#46566](https://github.com/apache/doris/pull/46566) -- 修复存算模式下 FE Observer 节点在批量导入场景中的内存泄漏问题。 [#47244](https://github.com/apache/doris/pull/47244) -- 修复 Full Compaction 进行 Order Data Compaction 导致 Cumulative Point 回退的问题。 [#44359](https://github.com/apache/doris/pull/44359) -- 修复 Delete 操作可能导致 Tablet Compaction 短暂无法调度的问题。 [#43466](https://github.com/apache/doris/pull/43466) -- 修复多计算集群时,Schema Change 后 Tablet 状态不正确的问题。 [#45821](https://github.com/apache/doris/pull/45821) -- 修复在有 `sequence_type` 的主键表上进行 Column Rename Schema Change 时可能报 NPE 错误的问题。 [#46906](https://github.com/apache/doris/pull/46906) -- **数据正确性:**修复主键表在部分列更新导入包含 DELETE SIGN 列时的正确性问题。 [#46194](https://github.com/apache/doris/pull/46194) -- 修复主键表 Publish 任务持续卡住时,FE 可能存在内存泄漏的问题。 [#44846](https://github.com/apache/doris/pull/44846) - -### 存算分离 - -- 修复 File Cache 可能导致缓存大小大于表数据大小的问题。 [#46561](https://github.com/apache/doris/pull/46561), [#46390](https://github.com/apache/doris/pull/46390) -- 修复数据上传至 5MB 边界值时可能导致上传失败的问题。 [#47333](https://github.com/apache/doris/pull/47333) -- 修复 Storage Vault 若干 `alter` 相关操作,增加更多参数检查,提升鲁棒性。 [#45155](https://github.com/apache/doris/pull/45155), [#45156](https://github.com/apache/doris/pull/45156), [#46625](https://github.com/apache/doris/pull/46625), [#47078](https://github.com/apache/doris/pull/47078), [#45685](https://github.com/apache/doris/pull/45685), [#46779](https://github.com/apache/doris/pull/46779) -- 修复因 Storage Vault 配置不当导致数据无法回收或回收缓慢的问题。 [#46798](https://github.com/apache/doris/pull/46798), [#47536](https://github.com/apache/doris/pull/47536), [#47475](https://github.com/apache/doris/pull/47475), [#47324](https://github.com/apache/doris/pull/47324), [#45072](https://github.com/apache/doris/pull/45072) -- 修复回收过程中可能卡住导致数据无法及时回收的问题。 [#45760](https://github.com/apache/doris/pull/45760) -- 修复存算分离下 MTTM-230 错误时未正确重试的问题。 [#47370](https://github.com/apache/doris/pull/47370), [#47326](https://github.com/apache/doris/pull/47326) -- 修复存算分离模式下 Decommission BE 时,Group Commit WAL 未回放完成的问题。 [#47187](https://github.com/apache/doris/pull/47187) -- 修复超过 2GB 的 Tablet Meta 导致 MS 不可用的问题。 [#44780](https://github.com/apache/doris/pull/44780) -- **数据正确性**:修复存算分离主键表的两个重复 Key 问题。 [#46039](https://github.com/apache/doris/pull/46039), [#44975](https://github.com/apache/doris/pull/44975) -- 修复存算分离主键表在高频实时导入下,可能因 Delete Bitmap 过大导致 Base Compaction 持续失败的问题。 [#46969](https://github.com/apache/doris/pull/46969) -- 修改 Schema Change 在存算分离主键表上的一些错误重试逻辑,提高 Schema Change 的健壮性。 [#46748](https://github.com/apache/doris/pull/46748) - -### Lakehouse - -#### Hive - -- 修复无法查询 Spark 创建的 Hive 视图的问题。 [#43553](https://github.com/apache/doris/pull/43553) -- 修复无法正确读取某些 Hive Transaction 表的问题。 [#45753](https://github.com/apache/doris/pull/45753) -- 修复 Hive 表分区存在特殊字符时,无法进行正确分区裁剪的问题。 [#42906](https://github.com/apache/doris/pull/42906) - -#### Iceberg - -- 修复在 Kerberos 认证环境下,无法创建 Iceberg 表的问题。 [#43445](https://github.com/apache/doris/pull/43445) -- 修复某些情况下,Iceberg 表存在 dangling delete 情况下,`count*` 查询不准确的问题。 [#44039](https://github.com/apache/doris/pull/44039) -- 修复某些情况下,Iceberg 表列名不匹配导致查询错误的问题。 [#44470](https://github.com/apache/doris/pull/44470) -- 修复某些情况下,Iceberg 表分区被修改后无法读取的问题。 [#45367](https://github.com/apache/doris/pull/45367) - -#### Paimon - -- 修复 Paimon Catalog 无法访问阿里云 OSS-HDFS 的问题。 [#42585](https://github.com/apache/doris/pull/42585) - -#### Hudi - -- 修复某些情况下,Hudi 表分区裁剪失效的问题。 [#44669](https://github.com/apache/doris/pull/44669) - -#### JDBC - -- 修复某些情况下,开启表名大小写不敏感功能后,使用 JDBC Catalog 无法获取表的问题。 - -#### MaxCompute - -- 修复某些情况下,MaxCompute 表分区裁剪失效的问题。 [#44508](https://github.com/apache/doris/pull/44508) - -#### 其他 - -- 修复某些情况下,Export 任务导致 FE 内存泄漏的问题。 [#44019](https://github.com/apache/doris/pull/44019) -- 修复某些情况下,无法使用 HTTPS 协议访问 S3 对象存储的问题。 [#44242](https://github.com/apache/doris/pull/44242) -- 修复某些情况下,Kerberos 认证票据无法自动刷新的问题。 [#44916](https://github.com/apache/doris/pull/44916) -- 修复某些情况下,读取 Hadoop Block 压缩格式文件出错的问题。 [#45289](https://github.com/apache/doris/pull/45289) -- 查询 ORC 格式的数据时,不再下推 CHAR 类型的谓词,以避免可能的结果错误。 [#45484](https://github.com/apache/doris/pull/45484) - -### 异步物化视图 - -- 修复极端场景下查询透明改写可能导致规划或结果错误的问题。 [#44575](https://github.com/apache/doris/pull/44575), [#45744](https://github.com/apache/doris/pull/45744) -- 修复极端场景下异步物化视图调度可能多产生构建任务的问题。 [#46020](https://github.com/apache/doris/pull/46020), [#46280](https://github.com/apache/doris/pull/46280) - -### 查询优化器 - -- 修复部分表达式改写可能产生错误表达式的问题。 [#44770](https://github.com/apache/doris/pull/44770), [#44920](https://github.com/apache/doris/pull/44920), [#45922](https://github.com/apache/doris/pull/45922), [#45596](https://github.com/apache/doris/pull/45596) -- 修复偶现的 SQL Cache 结果错误问题。 [#44782](https://github.com/apache/doris/pull/44782), [#44631](https://github.com/apache/doris/pull/44631), [#46443](https://github.com/apache/doris/pull/46443), [#47266](https://github.com/apache/doris/pull/47266) -- 修复部分场景下 Limit 下压聚合算子可能导致错误结果的问题。 [#45369](https://github.com/apache/doris/pull/45369) -- 修复部分场景下延迟物化优化产生错误执行计划的问题。 [#45693](https://github.com/apache/doris/pull/45693), [#46551](https://github.com/apache/doris/pull/46551) - -### 查询执行 - -- 修复正则表达式和 `like` 函数在特殊字符时结果不正确的问题。 [#44547](https://github.com/apache/doris/pull/44547) -- 修复 SQL Cache 在切换 DB 时结果可能不正确的问题。 [#44782](https://github.com/apache/doris/pull/44782) -- 修复一系列 Arrow Flight 相关问题。 [#45023](https://github.com/apache/doris/pull/45023), [#43929](https://github.com/apache/doris/pull/43929) -- 修复当 HashJoin 的 Hash 表超过 4G 时,部分情况下结果错误的问题。 [#46461](https://github.com/apache/doris/pull/46461) -- 修复 `convert_to` 函数在中文字符时溢出的问题。 [#46405](https://github.com/apache/doris/pull/46405) -- 修复 `group by` 带 Limit 时,在极端情况下结果可能出错的问题。 [#47844](https://github.com/apache/doris/pull/47844) -- 修复访问某些系统表结果可能不正确的问题。 [#47498](https://github.com/apache/doris/pull/47498) -- 修复 `percentile` 函数可能导致系统崩溃的问题。 [#47068](https://github.com/apache/doris/pull/47068) -- 修复单表查询带 Limit 时性能退化的问题。 [#46090](https://github.com/apache/doris/pull/46090) -- 修复 `StDistanceSphere` 和 `StAngleSphere` 函数导致系统崩溃的问题。 [#45508](https://github.com/apache/doris/pull/45508) -- 修复 `map_agg` 结果错误的问题。 [#40454](https://github.com/apache/doris/pull/40454) - -### 半结构化数据管理 - -#### BloomFilter Index - -- 修复 BloomFilter Index 参数过大导致的异常。 [#45780](https://github.com/apache/doris/pull/45780) -- 修复 BloomFilter Index 写入时内存占用过高的问题。 [#45833](https://github.com/apache/doris/pull/45833) -- 修复删除列时 BloomFilter Index 没有正确删除的问题。 [#44361](https://github.com/apache/doris/pull/44361), [#43378](https://github.com/apache/doris/pull/43378) - -#### Inverted Index - -- 修复倒排索引构建过程中偶发崩溃的问题。 [#43246](https://github.com/apache/doris/pull/43246) -- 修复倒排索引合并时,出现次数为 0 的词占用空间的问题。 [#43113](https://github.com/apache/doris/pull/43113) -- 避免 Index Size 统计出现超大异常值。 [#46549](https://github.com/apache/doris/pull/46549) -- 修复 VARIANT 类型字段的倒排索引异常。 [#43375](https://github.com/apache/doris/pull/43375) -- 优化倒排索引的本地缓存局部性,提高缓存命中率。 [#46518](https://github.com/apache/doris/pull/46518) -- 在查询 Profile 中增加倒排索引读远程存储的指标 `NumInvertedIndexRemoteIOTotal`。 [#45675](https://github.com/apache/doris/pull/45675), [#44863](https://github.com/apache/doris/pull/44863) - -#### 其他 - -- 修复 `ipv6_cidr_to_range` 函数在特殊 NULL 数据时崩溃的问题。 [#44700](https://github.com/apache/doris/pull/44700) - -### 权限 - -- 赋予 `CREATE_PRIV` 时,不再检查对应资源是否存在。 [#45125](https://github.com/apache/doris/pull/45125) -- 修复在极端场景下,可能出现的查询有权限的视图,但报错没有视图中引用的表的权限的问题。 [#44621](https://github.com/apache/doris/pull/44621) -- 修复 `use db` 时检查权限时不区分内外 Catalog 的问题。 [#45720](https://github.com/apache/doris/pull/45720) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.5.md deleted file mode 100644 index f05afe0ac1637..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.5.md +++ /dev/null @@ -1,208 +0,0 @@ ---- -{ - "title": "Release 3.0.5", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.5 版本已于 2025 年 04 月 28 日正式发布。 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 3.0.5 版本已于 2025 年 04 月 28 日正式发布。** 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- [GitHub 下载](https://github.com/apache/doris/releases) - -- [官网下载](https://doris.apache.org/download) - - -## 新特性 - -### Lakehouse - -- FE Metrics 新增 Catalog/Database/Table 数量监控指标([#47891](https://github.com/apache/doris/pull/47891)) -- MaxCompute Catalog 支持 Timestamp 类型([#48768](https://github.com/apache/doris/pull/48768)) - -### 查询执行 - -- 新增 URL 处理函数:`top_level_domain`、`first_significant_subdomain`、`cut_to_first_significant_subdomain`([#42488](https://github.com/apache/doris/pull/42488)) -- 新增 `year_of_week` 函数,兼容 Trino 语法实现([#48870](https://github.com/apache/doris/pull/48870)) -- `percentile_array` 函数支持 Float 和 Double 数据类型([#48094](https://github.com/apache/doris/pull/48094)) - -### 存算分离 - -- 支持重命名计算组(Rename Compute Group)([#46221](https://github.com/apache/doris/pull/46221)) - -## 改进 - -### 存储 - -- 优化主键表(MOW)高频导入场景的查询性能([#48968](https://github.com/apache/doris/pull/48968)) -- 优化 Key Range 查询的 Profile 信息展示([#48191](https://github.com/apache/doris/pull/48191)) -- Stream Load 支持 JSON 压缩文件导入([#49044](https://github.com/apache/doris/pull/49044)) -- 优化多个导入场景的错误提示信息([#48436](https://github.com/apache/doris/pull/48436) [#47721](https://github.com/apache/doris/pull/47721) [#47804](https://github.com/apache/doris/pull/47804) [#48638](https://github.com/apache/doris/pull/48638) [#48344](https://github.com/apache/doris/pull/48344) [#49287](https://github.com/apache/doris/pull/49287) [#48009](https://github.com/apache/doris/pull/48009)) -- 新增 Routine Load 多项监控指标([#49045](https://github.com/apache/doris/pull/49045) [#48764](https://github.com/apache/doris/pull/48764)) -- 优化 Routine Load 调度算法,避免单任务异常影响整体调度([#47847](https://github.com/apache/doris/pull/47847)) -- 新增 Routine Load 系统表([#49284](https://github.com/apache/doris/pull/49284)) -- 优化 Compaction 任务生成速度以提升性能([#49547](https://github.com/apache/doris/pull/49547)) - -### 存算分离 - -- 修复多个 File Cache 稳定性及性能问题([#48786](https://github.com/apache/doris/pull/48786) [#48623](https://github.com/apache/doris/pull/48623) [#48687](https://github.com/apache/doris/pull/48687) [#49050](https://github.com/apache/doris/pull/49050) [#48318](https://github.com/apache/doris/pull/48318)) -- 优化 Storage Vault 创建校验逻辑([#48073](https://github.com/apache/doris/pull/48073) [#48369](https://github.com/apache/doris/pull/48369)) - -### Lakehouse - -- 优化 Trino Connector Catalog 的 BE 端 Scanner 关闭逻辑,加速内存释放([#47857](https://github.com/apache/doris/pull/47857)) -- ClickHouse JDBC Catalog 自动兼容新旧版本驱动([#46026](https://github.com/apache/doris/pull/46026)) - -### 异步物化视图 - -- 优化透明改写(Transparent Rewrite)的规划性能([#48782](https://github.com/apache/doris/pull/48782)) -- 优化 `tvf mv_infos` 性能([#47415](https://github.com/apache/doris/pull/47415)) -- 基于外部表的物化视图构建时取消 Catalog 元数据刷新,减少内存占用([#48767](https://github.com/apache/doris/pull/48767)) - -### 查询优化器 - -- 优化 Key 列与分区列的统计信息收集性能([#46534](https://github.com/apache/doris/pull/46534)) -- 查询结果别名与用户输入保持严格一致([#47093](https://github.com/apache/doris/pull/47093)) -- 优化聚合算子中公共子表达式抽取后的列裁剪逻辑([#46627](https://github.com/apache/doris/pull/46627)) -- 增强函数绑定失败及子查询不支持的报错信息([#47919](https://github.com/apache/doris/pull/47919) [#47985](https://github.com/apache/doris/pull/47985)) - -### 半结构化数据管理 - -- `json_object` 函数支持复杂类型参数([#47779](https://github.com/apache/doris/pull/47779)) -- 支持将 UInt128 写入 IPv6 类型([#48802](https://github.com/apache/doris/pull/48802)) -- 支持 VARIANT 类型中 ARRAY 字段的倒排索引([#47688](https://github.com/apache/doris/pull/47688) [#48117](https://github.com/apache/doris/pull/48117)) - -### 权限 - -- 提升 Ranger 鉴权性能([#49352](https://github.com/apache/doris/pull/49352)) - -### 其他 - -- 优化 JVM Metrics 接口性能([#49380](https://github.com/apache/doris/pull/49380)) - -## Bug 修复 - -### 存储 - -- 修复若干极端场景下的数据正确性问题([#48056](https://github.com/apache/doris/pull/48056) [#48399](https://github.com/apache/doris/pull/48399) [#48400](https://github.com/apache/doris/pull/48400) [#48748](https://github.com/apache/doris/pull/48748) [#48775](https://github.com/apache/doris/pull/48775) [#48867](https://github.com/apache/doris/pull/48867) [#49165](https://github.com/apache/doris/pull/49165) [#49193](https://github.com/apache/doris/pull/49193) [#49350](https://github.com/apache/doris/pull/49350) [#49710](https://github.com/apache/doris/pull/49710) [#49825](https://github.com/apache/doris/pull/49825)) -- 修复已完成事务未及时清理的问题([#49564](https://github.com/apache/doris/pull/49564)) -- 部分列更新时 JSONB 类型默认值改用 `{}`([#49066](https://github.com/apache/doris/pull/49066)) -- 修复存算分离主键模型 Compaction 未释放 Delete Bitmap 锁导致导入卡顿的问题([#47766](https://github.com/apache/doris/pull/47766)) -- 修复 ARM 架构下 Stream Load 数据丢失问题([#49666](https://github.com/apache/doris/pull/49666)) -- 修复 Insert Into Select 遇到数据质量错误未返回错误 URL 的问题([#49687](https://github.com/apache/doris/pull/49687)) -- 修复 Routine Load 多表导入时数据质量错误未返回错误 URL 的问题([#49130](https://github.com/apache/doris/pull/49130)) -- 修复 Schema Change 期间 Insert Into Values 导入结果异常问题([#49338](https://github.com/apache/doris/pull/49338)) -- 修复 Tablet Commit 信息上报导致的 Core Dump 问题([#48732](https://github.com/apache/doris/pull/48732)) -- 修复 S3 Load 导入不支持 Azure 中国区域名的问题([#48642](https://github.com/apache/doris/pull/48642)) -- 修复 K8s 环境下 FE 报 "get image failed" 错误([#49072](https://github.com/apache/doris/pull/49072)) -- 优化动态分区调度的 CPU 消耗([#48577](https://github.com/apache/doris/pull/48577)) -- 修复重命名物化视图(MV)导致列异常的问题([#48328](https://github.com/apache/doris/pull/48328)) -- 修复 Schema Change 失败后未释放内存和 File Cache 的问题([#48426](https://github.com/apache/doris/pull/48426)) -- 修复含空分区表的 Base Compaction 失败问题([#49062](https://github.com/apache/doris/pull/49062)) -- 修复复杂类型变更导致的数据正确性问题([#49452](https://github.com/apache/doris/pull/49452)) -- 修复 Cold Compaction 导致 Core Dump 的问题([#48329](https://github.com/apache/doris/pull/48329)) -- 修复存在 Delete 操作时 Cumulative Point 未提升的问题([#47282](https://github.com/apache/doris/pull/47282)) -- 修复大数据量 Full Compaction 内存不足问题([#48958](https://github.com/apache/doris/pull/48958)) - -### 存算分离 - -- 修复 K8s 环境下 File Cache 清除失败问题([#49199](https://github.com/apache/doris/pull/49199)) -- 修复高频导入时读写锁导致的 FE CPU 飙升问题([#48564](https://github.com/apache/doris/pull/48564)) - -### Lakehouse - -**Data Lakes** - -- 修复并发写入 Hive/Iceberg 表可能引发的 BE Core Dump([#49842](https://github.com/apache/doris/pull/49842)) -- 修复 AWS S3 存储的 Hive/Iceberg 表写入失败问题([#47162](https://github.com/apache/doris/pull/47162)) -- 修复 Iceberg Position Deletion 读取结果错误([#47977](https://github.com/apache/doris/pull/47977)) -- 修复腾讯云 COS 无法创建 Iceberg 表的问题([#49885](https://github.com/apache/doris/pull/49885)) -- 修复 Kerberos 认证 HDFS 访问 Paimon 数据失败问题([#47192](https://github.com/apache/doris/pull/47192)) -- 修复 Hudi Jni Scanner 内存泄漏问题([#48955](https://github.com/apache/doris/pull/48955)) -- 修复 MaxCompute Catalog 多分区列表读取错误([#48325](https://github.com/apache/doris/pull/48325)) - -**JDBC** - -- 修复 JDBC Catalog 表行数查询空指针问题([#49442](https://github.com/apache/doris/pull/49442)) -- 修复 OceanBase Oracle 模式连接测试失败([#49442](https://github.com/apache/doris/pull/49442)) -- 修复 JDBC Catalog 并发场景下列类型长度错误([#48541](https://github.com/apache/doris/pull/48541)) -- 修复 JDBC Catalog BE 端 Classloader 泄漏([#46912](https://github.com/apache/doris/pull/46912)) -- 修复 PostgreSQL JDBC Catalog 连接线程泄漏([#49568](https://github.com/apache/doris/pull/49568)) - -**Export** - -- 修复 EXPORT 作业卡在 EXPORTING 状态([#47974](https://github.com/apache/doris/pull/47974)) -- 禁止 OUTFILE 自动重试以防止重复文件导出([#48095](https://github.com/apache/doris/pull/48095)) - -**其他** - -- 修复 FE WebUI 执行 TVF 查询空指针问题([#49213](https://github.com/apache/doris/pull/49213)) -- 修复 Hadoop Libhdfs Thread Local 空指针异常([#48280](https://github.com/apache/doris/pull/48280)) -- 修复 FE 访问 Hadoop Filesystem 报 "Filesystem already closed"([#48351](https://github.com/apache/doris/pull/48351)) -- 修复 Catalog Comment 未持久化问题([#46946](https://github.com/apache/doris/pull/46946)) -- 修复 Parquet 复杂类型读取报错([#47734](https://github.com/apache/doris/pull/47734)) - -### 异步物化视图 - -- 修复极端场景下物化视图构建任务卡顿问题([#48074](https://github.com/apache/doris/pull/48074)) -- 修复嵌套物化视图透明改写失效问题([#48222](https://github.com/apache/doris/pull/48222)) - -### 查询优化器 - -- 修复函数常量折叠计算结果错误([#49225](https://github.com/apache/doris/pull/49225) [#47966](https://github.com/apache/doris/pull/47966) [#49416](https://github.com/apache/doris/pull/49416) [#49087](https://github.com/apache/doris/pull/49087) [#49033](https://github.com/apache/doris/pull/49033) [#49061](https://github.com/apache/doris/pull/49061) [#48895](https://github.com/apache/doris/pull/48895) [#48957](https://github.com/apache/doris/pull/48957) [#47288](https://github.com/apache/doris/pull/47288) [#48641](https://github.com/apache/doris/pull/48641) [#49413](https://github.com/apache/doris/pull/49413) [#48783](https://github.com/apache/doris/pull/48783)) -- 修复嵌套窗口函数使用 ORDER BY 子句意外报错([#48492](https://github.com/apache/doris/pull/48492)) - -### 查询执行 - -- 修复 Pipeline 任务调度导致的卡死/性能问题([#49976](https://github.com/apache/doris/pull/49976) [#49007](https://github.com/apache/doris/pull/49007)) -- 修复 FE 连接失败时的内存越界问题([#48370](https://github.com/apache/doris/pull/48370) [#48313](https://github.com/apache/doris/pull/48313)) -- 修复 Lambda 函数与数组函数共用导致的内存越界([#49140](https://github.com/apache/doris/pull/49140)) -- 修复 String 与 JSONB 类型转换空值导致 BE Core([#49810](https://github.com/apache/doris/pull/49810)) -- 规范 `parse_url` 未定义行为([#49149](https://github.com/apache/doris/pull/49149)) -- 修复 `array_overlap` 函数空值结果异常([#49403](https://github.com/apache/doris/pull/49403)) -- 修复非 ASCII 字符大小写转换错误([#49763](https://github.com/apache/doris/pull/49763)) -- 修复 `percentile` 函数部分场景 BE Core([#48563](https://github.com/apache/doris/pull/48563)) -- 修复多个内存越界问题([#48288](https://github.com/apache/doris/pull/48288) [#49737](https://github.com/apache/doris/pull/49737) [#48018](https://github.com/apache/doris/pull/48018) [#47964](https://github.com/apache/doris/pull/47964)) -- 修复 SET 算子结果错误([#48001](https://github.com/apache/doris/pull/48001)) -- 降低 Arrow Flight 默认线程池大小以避免句柄耗尽([#48530](https://github.com/apache/doris/pull/48530)) -- 修复窗口函数内存越界导致 BE Core([#48458](https://github.com/apache/doris/pull/48458)) - -### 半结构化数据管理 - -- 修复 Transfer-Encoding: chunked 的 Stream Load JSON 导入异常([#48474](https://github.com/apache/doris/pull/48474)) -- 增强 JSONB 格式合法性校验([#48731](https://github.com/apache/doris/pull/48731)) -- 修复 STRUCT 类型字段过多导致的 Crash([#49552](https://github.com/apache/doris/pull/49552)) -- 支持复杂类型 VARCHAR 长度扩展([#48025](https://github.com/apache/doris/pull/48025)) -- 修复 `array_avg` 函数在特定参数下的 Crash([#48691](https://github.com/apache/doris/pull/48691)) -- 修复 VARIANT 类型 `ColumnObject::pop_back` Crash([#48935](https://github.com/apache/doris/pull/48935) [#48978](https://github.com/apache/doris/pull/48978)) -- 禁用 VARIANT 类型的索引构建操作([#49844](https://github.com/apache/doris/pull/49844)) -- 禁用 VARIANT 类型倒排索引 V1 格式([#49890](https://github.com/apache/doris/pull/49890)) -- 修复 VARIANT 多层 CAST 结果错误([#47954](https://github.com/apache/doris/pull/47954)) -- 优化 VARIANT 多子列倒排索引元数据查询性能([#48153](https://github.com/apache/doris/pull/48153)) -- 优化存算分离模式下 VARIANT Schema 内存消耗([#47629](https://github.com/apache/doris/pull/47629) [#48463](https://github.com/apache/doris/pull/48463)) -- 修复 PreparedStatement ID 溢出问题([#48116](https://github.com/apache/doris/pull/48116)) -- 修复行存与 Delete 操作结合问题([#49609](https://github.com/apache/doris/pull/49609)) - -### 倒排索引 - -- 修复 ARRAY 类型倒排索引 Null Bitmap 错误([#48052](https://github.com/apache/doris/pull/48052)) -- 修复 Date/Datetimev1 类型 Bloomfilter 索引比较错误([#47005](https://github.com/apache/doris/pull/47005)) -- 修复 UTF-8 四字节字符截断问题([#48792](https://github.com/apache/doris/pull/48792)) -- 修复新增列后立即创建倒排索引导致丢失的问题([#48547](https://github.com/apache/doris/pull/48547)) -- 修复 ARRAY 倒排索引空数据处理异常([#48264](https://github.com/apache/doris/pull/48264)) -- 修复倒排索引 FE 元数据升级兼容性([#49283](https://github.com/apache/doris/pull/49283)) -- 修复 `match_phrase_prefix` 缓存错误([#46517](https://github.com/apache/doris/pull/46517)) -- 修复 Compaction 后倒排索引 File Cache 未清理([#49738](https://github.com/apache/doris/pull/49738)) - -### 权限 - -- DELETE 操作不再检查 Select_Priv 权限([#49239](https://github.com/apache/doris/pull/49239)) -- 禁止非 root 用户修改 root 权限([#48752](https://github.com/apache/doris/pull/48752)) -- 修复 LDAP 偶发 Partial Result Exception([#47858](https://github.com/apache/doris/pull/47858)) - -### 其他 - -- 修复 JDK17 环境 JAVA_OPTS 识别异常([#48170](https://github.com/apache/doris/pull/48170)) -- 修复 InterruptException 导致 BDB 元数据写入失败([#47874](https://github.com/apache/doris/pull/47874)) -- 优化多语句请求的 SQL Hash 生成([#48242](https://github.com/apache/doris/pull/48242)) -- 用户属性变量优先级高于 Session 变量([#48548](https://github.com/apache/doris/pull/48548)) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.6.md deleted file mode 100644 index dd60fa3ce4d1c..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.6.md +++ /dev/null @@ -1,191 +0,0 @@ ---- -{ - "title": "Release 3.0.6", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.6 版本已于 2025 年 06 月 16 日正式发布。 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 3.0.6 版本已于 2025 年 06 月 16 日正式发布。** 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- [GitHub 下载](https://github.com/apache/doris/releases) - -- [官网下载](https://doris.apache.org/download) - -## 行为变更 - -- **禁止 Unique 表使用时序 Compaction** [#49905](https://github.com/apache/doris/pull/49905) -- **存算分离场景下 Auto Bucket 单分桶容量调整为 10GB** [#50566](https://github.com/apache/doris/pull/50566) - -## 新特性 - -### Lakehouse - -- **支持访问 AWS S3 Table Buckets 中的 Iceberg 表格式** - - 详情请参考[文档:Iceberg on S3 Tables](https://doris.apache.org/docs/dev/lakehouse/catalogs/iceberg-catalog#iceberg-on-s3-tables) - -### 存储 - -- **对象存储访问支持 IAM Role 授权** 适用于导入/导出、备份恢复及存算分离场景 [#50252](https://github.com/apache/doris/pull/50252) [#50682](https://github.com/apache/doris/pull/50682) [#49541](https://github.com/apache/doris/pull/49541) [#49565](https://github.com/apache/doris/pull/49565) [#49422](https://github.com/apache/doris/pull/49422) - - 详情请参考[文档](https://doris.apache.org/zh-CN/docs/3.0/admin-manual/auth/integrations/aws-authentication-and-authorization) - -### 新增函数 - -- `json_extract_no_quotes` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/json-functions/json-extract) -- `unhex_null` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/string-functions/unhex) -- `xpath_string` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/string-functions/xpath-string) -- `str_to_map` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/map-functions/str-to-map) -- `months_between` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/date-time-functions/months-between) -- `next_day` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/date-time-functions/next-day) -- `format_round` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/numeric-functions/format-round) - -## 改进 - -### 导入 - -- **引入黑名单机制**:避免 Routine Load 将元信息分发至不可用 BE 节点 [#50587](https://github.com/apache/doris/pull/50587) -- **提高负载优先级阈值**:`load_task_high_priority_threshold_second` 默认值增大 [#50478](https://github.com/apache/doris/pull/50478) - -### 主键模型 - -- **减少冗余日志输出** [#51093](https://github.com/apache/doris/pull/51093) - -### 存储优化 - -- 精简 Compaction Profile 及日志 [#50950](https://github.com/apache/doris/pull/50950) -- 优化调度策略提升 Compaction 吞吐量 [#49882](https://github.com/apache/doris/pull/49882) [#48759](https://github.com/apache/doris/pull/48759) [#51482](https://github.com/apache/doris/pull/51482) [#50672](https://github.com/apache/doris/pull/50672) [#49953](https://github.com/apache/doris/pull/49953) [#50819](https://github.com/apache/doris/pull/50819) - -### 存算分离 - -- **启动优化**:加速 File Cache 初始化 [#50726](https://github.com/apache/doris/pull/50726) -- **查询加速**:优化 File Cache 查询性能 [#50275](https://github.com/apache/doris/pull/50275) [#50387](https://github.com/apache/doris/pull/50387) [#50555](https://github.com/apache/doris/pull/50555) -- **元数据获取优化**:解决 `get_version` 导致的性能瓶颈 [#51111](https://github.com/apache/doris/pull/51111) [#50439](https://github.com/apache/doris/pull/50439) -- **对象回收加速**:提升存算分离模式垃圾回收效率 [#50037](https://github.com/apache/doris/pull/50037) [#50766](https://github.com/apache/doris/pull/50766) -- **稳定性提升**:优化对象存储重试策略 [#50957](https://github.com/apache/doris/pull/50957) -- **Profile 细化**:增强 Tablet/Segment Footer 维度统计 [#49945](https://github.com/apache/doris/pull/49945) [#50564](https://github.com/apache/doris/pull/50564) [#50326](https://github.com/apache/doris/pull/50326) -- **Schema Change 容错**:默认启用 New Tablet Compaction 规避 -230 错误 [#51070](https://github.com/apache/doris/pull/51070) - -### Lakehouse - -#### Catalog 增强 -- Hive Catalog 支持分区缓存 TTL 控制(`partition.cache.ttl-second`)[#50724](https://github.com/apache/doris/pull/50724) - - 详情参考文档:[元数据缓存](https://doris.apache.org/docs/dev/lakehouse/meta-cache) -- 支持 Hive 表 `skip.header.line.count` 属性 [#49929](https://github.com/apache/doris/pull/49929) -- 兼容 `org.openx.data.jsonserde.JsonSerDe` 格式的 Hive 表 [#49958](https://github.com/apache/doris/pull/49958) - - 详情参考文档:[文本格式](https://doris.apache.org/docs/dev/lakehouse/file-formats/text) -- Paimon 版本升级至 1.0.1 -- Iceberg 版本升级至 1.6.1 - -#### 功能扩展 -- 支持阿里云 OSS-HDFS Root Policy 功能 [#50678](https://github.com/apache/doris/pull/50678) -- 方言兼容:返回 Hive 格式查询结果 [#49931](https://github.com/apache/doris/pull/49931) - -### 异步物化视图 - -- **内存优化**:降低透明改写内存占用 [#48887](https://github.com/apache/doris/pull/48887) - -### 查询优化器 - -- **分桶剪枝性能提升** [#49388](https://github.com/apache/doris/pull/49388) -- **Lambda 表达式增强**:支持引用闭包外部 Slot [#44365](https://github.com/apache/doris/pull/44365) - -### 查询执行 - -- **TopN 查询加速**:优化存算分离场景性能 [#50803](https://github.com/apache/doris/pull/50803) -- **函数扩展**:`substring_index` 支持变量参数 [#50149](https://github.com/apache/doris/pull/50149) -- **地理信息函数**:新增 `ST_CONTAINS`/`ST_INTERSECTS`/`ST_TOUCHES`/`ST_DISJOINT` [#49665](https://github.com/apache/doris/pull/49665) - -### 核心组件 - -- **内存追踪优化**:高并发场景性能提升约 10% [#50462](https://github.com/apache/doris/pull/50462) -- **审计日志增强**:通过 `audit_plugin_max_insert_stmt_length` 限制 INSERT 语句长度 [#51314](https://github.com/apache/doris/pull/51314) - - 详情请参考文档:[审计插件](https://doris.apache.org/docs/3.0/admin-manual/audit-plugin) - - -## 缺陷修复 - -### 导入 - -- 修复 BE 事务清理失败问题 [#50103](https://github.com/apache/doris/pull/50103) -- 优化 Routine Load 任务报错准确性 [#51078](https://github.com/apache/doris/pull/51078) -- 禁止向 `disable_load=true` 节点分发元信息任务 [#50421](https://github.com/apache/doris/pull/50421) -- 修复 FE 重启后消费进度回退 [#50221](https://github.com/apache/doris/pull/50221) -- 修复 Group Commit 与 Schema Change 冲突导致的 Core Dump [#51144](https://github.com/apache/doris/pull/51144) -- 解决 S3 Load 使用 HTTPS 协议报错 [#51246](https://github.com/apache/doris/pull/51246) [#51529](https://github.com/apache/doris/pull/51529) - -### 主键模型 - -- 修复竞争导致的主键重复问题 [#50019](https://github.com/apache/doris/pull/50019) [#50051](https://github.com/apache/doris/pull/50051) [#50106](https://github.com/apache/doris/pull/50106) [#50417](https://github.com/apache/doris/pull/50417) [#50847](https://github.com/apache/doris/pull/50847) [#50974](https://github.com/apache/doris/pull/50974) - -### 存储 - -- 解决 CCR 与磁盘均衡竞争 [#50663](https://github.com/apache/doris/pull/50663) -- 修复默认分区 Key 未持久化问题 [#50489](https://github.com/apache/doris/pull/50489) -- CCR 支持 Rollup 表 [#50337](https://github.com/apache/doris/pull/50337) -- 修复 `cooldown_ttl=0` 边界问题 [#50830](https://github.com/apache/doris/pull/50830) -- 解决数据 GC 与 Publish 竞争导致数据丢失 [#50343](https://github.com/apache/doris/pull/50343) -- 修复 Delete Job 分区剪枝失效 [#50674](https://github.com/apache/doris/pull/50674) - -### 存算分离 - -- 修复 Schema Change 阻塞 Compaction [#50908](https://github.com/apache/doris/pull/50908) -- 解决 `storage_vault_prefix` 为空时对象回收失败 [#50352](https://github.com/apache/doris/pull/50352) -- 修复 Tablet Cache 导致的查询性能问题 [#51193](https://github.com/apache/doris/pull/51193) [#49420](https://github.com/apache/doris/pull/49420) -- 消除残留 Tablet Cache 引起的性能抖动 [#50200](https://github.com/apache/doris/pull/50200) - -### Lakehouse - -#### Export 修复 -- 解决 FE 内存泄漏 [#51171](https://github.com/apache/doris/pull/51171) -- 避免 FE 死锁 [#50088](https://github.com/apache/doris/pull/50088) - -#### Catalog 修复 -- JDBC Catalog 支持组合条件下推 [#50542](https://github.com/apache/doris/pull/50542) -- 修复阿里云 OSS Paimon 表 Deletion Vector 读取 [#49645](https://github.com/apache/doris/pull/49645) -- 支持含逗号的 Hive 表分区值 [#49382](https://github.com/apache/doris/pull/49382) -- 修正 MaxCompute Timestamp 列类型解析 [#49600](https://github.com/apache/doris/pull/49600) -- Trino Catalog 支持显示 `information_schema` 系统表 [#49912](https://github.com/apache/doris/pull/49912) - -#### 文件格式 -- 修复 LZO 压缩格式读取失败 [#49538](https://github.com/apache/doris/pull/49538) -- 兼容旧版 ORC 文件 [#50358](https://github.com/apache/doris/pull/50358) -- 修正 ORC 复杂类型解析错误 [#50136](https://github.com/apache/doris/pull/50136) - -### 异步物化视图 - -- 修复同时指定 `start time` 与立即触发模式时的少刷新问题 [#50624](https://github.com/apache/doris/pull/50624) - -### 查询优化器 - -- 修复 Lambda 表达式改写错误 [#49166](https://github.com/apache/doris/pull/49166) -- 解决 Group By 常量键规划失败 [#49473](https://github.com/apache/doris/pull/49473) -- 修正常量折叠逻辑 [#50142](https://github.com/apache/doris/pull/50142) [#50810](https://github.com/apache/doris/pull/50810) -- 补全系统表信息 [#50721](https://github.com/apache/doris/pull/50721) -- 修复 NULL Literal 创建 View 的列类型错误 [#49881](https://github.com/apache/doris/pull/49881) - -### 查询执行 - -- 解决 JSON 导入非法值导致 BE Core [#50978](https://github.com/apache/doris/pull/50978) -- 修复 Intersect 输入 NULL 常量结果错误 [#50951](https://github.com/apache/doris/pull/50951) -- 修正 Variant 类型谓词错误执行 [#50934](https://github.com/apache/doris/pull/50934) -- 修复 `get_json_string` JSON Path 非法时的结果错误 [#50859](https://github.com/apache/doris/pull/50859) -- 对齐 MySQL 函数行为(JSON_REPLACE/INSERT/SET/ARRAY)[#50308](https://github.com/apache/doris/pull/50308) -- 解决 `array_map` 空参数 Core [#50201](https://github.com/apache/doris/pull/50201) -- 修复 Variant 转 JSONB 异常 Core [#50180](https://github.com/apache/doris/pull/50180) -- 修复 `explode_json_array_json_outer` 函数缺失 [#50164](https://github.com/apache/doris/pull/50164) -- 对齐 `percentile` 与 `percentile_array` 结果 [#49351](https://github.com/apache/doris/pull/49351) -- 优化 UTF8 编码函数行为(url_encode/strright/append_trail_char_if_absent)[#49127](https://github.com/apache/doris/pull/49127) - -### 其他 - -- 修复高并发下审计日志丢失 [#50357](https://github.com/apache/doris/pull/50357) -- 解决动态分区建表导致元数据回放失败 [#49569](https://github.com/apache/doris/pull/49569) -- 避免 Global UDF 重启丢失 [#50279](https://github.com/apache/doris/pull/50279) -- 对齐 MySQL View 元数据返回格式 [#51058](https://github.com/apache/doris/pull/51058) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.7.md deleted file mode 100644 index 0d1b2ace2ad14..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.7.md +++ /dev/null @@ -1,180 +0,0 @@ ---- -{ - "title": "Release 3.0.7", - "language": "zh-CN", - "description": "Apache Doris 3.0.7 版本发布说明,涵盖行为变更、新增查询与半结构化管理特性,以及导入、主键、存储、存算分离、Lakehouse、异步物化视图、查询优化器和倒排索引的性能优化与问题修复。" -} ---- - -## 行为变更 - -- 调整 `show frontends` 和 `show backends` 的权限需求,使其与对应的 RESTful API 保持一致,即需要 `information_schema` 库的 `SELECT_PRIV` 权限 -- 指定 domain 的 admin 和 root 用户不再视为系统用户 -- 存储:单库默认并发事务数调整为 10000 - -## 新特性 - -### 查询优化器 - -- 支持 MySQL 的聚合上卷语法 `GROUP BY ... WITH ROLLUP` - -### 查询执行 - -- 新增数据函数:`cot`/`sec`/`cosec` -- `Like` 语句支持 `escape` 语法 - -### 半结构化数据管理 - -- 通过设置会话变量 `enable_add_index_for_new_data=true`,支持仅对新增数据构建不分词倒排索引和 NGram bloomfilter 索引 - - -## 改进 - -### 导入 - -- 优化 `SHOW CREATE LOAD` 错误信息提示 - -### 主键 - -- 新增 segment key bounds 截断能力,避免单次大导入失败的问题 - -### 存储 - -- 增强 Compaction 和导入数据的可靠性 -- 优化 balance 速度 -- 优化建表速度 -- 优化 compaction 默认参数及可观测性 -- 优化查询报错 -230 的问题 -- 增加系统表 `backend_tablets` -- 优化 Cloud 模式下从 follower 节点查询 `information_schema.tables` 的性能 - -### 存算分离 - -- 增强 Meta-service recycler 可观测性 -- 支持导入 compaction 过程进行跨 compute group 增量预热 -- 优化 Storage vault 连通性检查 -- 支持通过 MS API 更新存储后端信息 - -### Lakehouse - -- 优化 x86 环境下 ORC zlib 的解压性能并修复潜在问题 -- 优化外表读取的默认并发线程数 -- 优化不支持 DDL 操作的 Catalog 的报错信息 - -### 异步物化视图 - -- 优化透明改写规划的性能 - -### 查询优化器 - -- `group_concat` 函数现在允许参数为非字符串类型 -- `sum` 和 `avg` 函数允许参数为非数值类型 -- 扩展 TOP-N 查询延迟物化的支持范围,当查询部分列时也能延迟物化 -- 创建分区时,list 分区允许包含 `MAX_VALUE` -- 优化采样收集聚合模型表统计信息的性能 -- 优化采样收集统计信息时 NDV 值的准确性 - -### 倒排索引 - -- 统一 `show create table` 中倒排索引展示的 properties 顺序 -- 为倒排索引过滤条件新增逐条件的 profile 指标(如命中行数与执行时间),便于性能分析 -- 增强 profile 中倒排索引相关信息展示 - -### 权限 - -- Ranger 支持设置 storage vault 和 compute group 的权限 - -## 缺陷修复 - -### 导入 - -- 修复导入 CSV 文件使用多字符分隔符可能导致的正确性问题 -- 修复修改任务属性后显示 `ROUTINE LOAD` 任务结果不正确的问题 -- 修复主节点重启或 Leader 切换后一流多表导入计划失效的问题 -- 修复 `ROUTINE LOAD` 任务因找不到可用 BE 节点导致所有调度任务阻塞的问题 -- 修复 `runningTxnIds` 并发读写冲突问题 - -### 主键 - -- 优化 mow 表在高频并发导入下的导入性能 -- mow 表 full compaction 释放被删除数据的空间 -- 修复 mow 表在极端场景下可能出现的导入失败问题 -- 优化 mow 表 compaction 性能 -- 修复 mow 表在有并发导入和 sc 时可能的正确性问题 -- 修复 mow 空表执行 schema change 可能导致导入卡住或 schema change 失败的问题 -- 修复 mow delete bitmap cache 内存泄漏问题 -- 修复 mow 表在 sc 后可能的正确性问题 - -### 存储 - -- 修复 compaction 导致的 clone 过程 missing rowset 问题 -- 修复 autobucket 计算 size 不准确及默认值问题 -- 修复分桶列可能导致的正确性问题 -- 修复单列表不能 rename 的问题 -- 修复 memtable 可能的内存泄漏问题 -- 修复空表事务写对不支持行为的报错不统一问题 - -### 存算分离 - -- File cache 相关修复 -- 修复 schema 过程中 cumulative point 可能回滚的问题 -- 修复后台任务影响自动重启的问题 -- 修复 azure 环境中数据回收过程未处理的异常问题 -- 修复单 rowset 做 compaction 未及时清理 file cache 的问题 - -### Lakehouse - -- 修复 Kerberos 环境下 Iceberg 表写入事务提交失败的问题 -- 修复 kerberos 环境下查询 hudi 的问题 -- 修复多 Catalog 情况下潜在的死锁问题 -- 修复某些情况下并发刷新 Catalog 导致元数据不一致的问题 -- 修复 ORC footer 某些情况下会被多次读取的问题 -- 修复 Table Valued Function 无法读取压缩格式 json 文件的问题 -- SQL Server Catalog 支持识别 IDENTITY 列信息 -- SQL Convertor 支持指定多个 url 以实现高可用 - -### 异步物化视图 - -- 修复当查询被优化为空集结果时,可能错误进行分区补偿的问题 - -### 查询优化器 - -- 修复 `sql_select_limit` 以外的影响 DML 执行结果的问题 -- 修复开始 local shuffle 时,物化的 CTE 在极端情况下可能执行报错的问题 -- 修复 prepare 的 insert 语句无法在非 master 节点执行的问题 -- 修复 `cast ipv4` 到 string 的结果错误问题 - -### 权限 - -- 当一个用户拥有多个角色时,会合并多个角色的权限后再执行鉴权 - -### 查询执行 - -- 修复部分 json 函数问题 -- 修复异步线程池满时可能导致 BE Core 的问题 -- 修复 `hll_to_base64` 结果不正确的问题 -- 修复 `decimal256` 转换为 float 时结果错误的问题 -- 修复两处内存泄漏问题 -- 修复 `bitmap_from_base64` 导致的 be core 问题 -- 修复 `array_map` 函数可能导致的 be core 问题 -- 修复 `split_by_regexp` 函数可能的错误问题 -- 修复超大数据量下 `bitmap_union` 函数可能的结果错误问题 -- 修复 `format round` 函数在部分边界值下可能 core 的问题 - -### 倒排索引 - -- 修复倒排索引在异常情况下产生的内存泄漏问题 -- 修复写入和查询空索引文件时报错的问题 -- 捕获倒排索引字符串读取中的 IO 异常,避免因异常导致进程崩溃 - -### 复杂数据类型 - -- 修复 Variant Nested 嵌套数据类型冲突时可能导致的类型推断错误 -- 修复 `map` 函数参数类型推导错误 -- 修复 jsonpath 中指定 `'$.'` 作为 path 导致数据错误变为 NULL 的问题 -- 修复 Variant 的子字段包含 `.` 时,序列化格式无法还原的问题 - -### 其他 - -- 修复 auditlog 表 IP 字段长度不足的问题 -- 修复 SQL 解析错误时,审计日志中记录的 query id 为上一次执行查询的 query id 的问题 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.8.md deleted file mode 100644 index c35ff71b16e6a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.0/release-3.0.8.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -{ - "title": "Release 3.0.8", - "language": "zh-CN", - "description": "schema-change" -} ---- - -## 行为变更 - -- 当使用 ranger / LDAP 时,不再禁止在 Doris 中创建用户 [#50139](https://github.com/apache/doris/pull/50139) -- variant 在默认情况下会关闭 nested 属性,若需在建表时开启,需先在 session variable 中执行以下命令:`set enable_variant_flatten_nested = true`[#54413](https://github.com/apache/doris/pull/54413) - -## 新特性 - -### 查询优化器 - -- 支持 MySQL 的 GROUP BY WITH ORDER 语法 [#53037](https://github.com/apache/doris/pull/53037) - - -## 改进 - -### 导入 - -- 优化内存不足时的下刷策略 ([#52906](https://github.com/apache/doris/pull/52906), [#53909](https://github.com/apache/doris/pull/53909), [#42649](https://github.com/apache/doris/pull/42649), [#54517](https://github.com/apache/doris/pull/54517)) -- S3 Load 和 TVF 支持无 AK/SK 访问公开可读的对象 ([#53592](https://github.com/apache/doris/pull/53592), [#54040](https://github.com/apache/doris/pull/54040)) - -### 存算分离 - -- 当缓存空间充足时,base compaction 生成的 rowset 可以写入文件缓存 ([#53801](https://github.com/apache/doris/pull/53801), [#54693](https://github.com/apache/doris/pull/54693)) -- 优化 `ALTER STORAGE VAULT` 命令,`type`属性可以自动推导,无需显式制定 ([#54394](https://github.com/apache/doris/pull/54394), [#54475](https://github.com/apache/doris/pull/54475)) - - -### 查询优化器 - -- 点查查询会被规划为只有一个 fragment,以提升点查的执行速度 [#53541](https://github.com/apache/doris/pull/53541) - -### 查询执行 - -- 提升 unique key 表在点查时的性能 [#53948](https://github.com/apache/doris/pull/53948) - -### 倒排索引 - -- 优化不分词索引写入时常见默认分词器的额外资源消耗 [#54666](https://github.com/apache/doris/pull/54666) - - -## 缺陷修复 - -### 导入 - -- 修复在使用多字符列分隔符时,`enclose` 解析错误的问题 ([#54581](https://github.com/apache/doris/pull/54581), [#55052](https://github.com/apache/doris/pull/55052)) -- 修复 S3 Load 进度更新不及时的问题 ([#54606](https://github.com/apache/doris/pull/54606), [#54790](https://github.com/apache/doris/pull/54790)) -- 修复 JSON 格式布尔类型加载到 INT 列时的错误 ([#54397](https://github.com/apache/doris/pull/54397), [#54640](https://github.com/apache/doris/pull/54640)) -- 修复 Stream Load 缺失错误 URL 返回的问题 ([#54115](https://github.com/apache/doris/pull/54115), [#54266](https://github.com/apache/doris/pull/54266)) -- 修复在 schema change 抛出异常后 group commit 被阻塞的问题 [#54312](https://github.com/apache/doris/pull/54312) - -### Lakehouse - -- 修复部分情况下使用 JDBC SQL 透传解析失败的问题 [#54077](https://github.com/apache/doris/pull/54077) -- 修复写入 decimal 分区的 iceberg 表失败的问题 [#54557](https://github.com/apache/doris/pull/54557) -- 修复某些情况下 Hudi 表 Timestamp 类型分区列查询失败的问题 [#53791](https://github.com/apache/doris/pull/53791) - -### 查询优化器 - -- 修复在部分自关联场景中,错误使用 colocate join 的问题 [#54323](https://github.com/apache/doris/pull/54323) -- 修复 select distinct 与窗口函数一起使用时可能导致的结果错误 [#54133](https://github.com/apache/doris/pull/54133) -- 当 lambda 表达式出现在非预期位置时,提供更友好的报错 [#53657](https://github.com/apache/doris/pull/53657) - -### 权限 - -- 修复查询外部视图时,错误检查视图中基表权限的问题 [#53786](https://github.com/apache/doris/pull/53786) - -### 查询执行 - -- 修复 IPV6 类型不能解析 IPV4 类型数据的问题 [#54391](https://github.com/apache/doris/pull/54391) -- 修复 IPV6 类型解析时出现栈溢出的错误 [#53713](https://github.com/apache/doris/pull/53713) - - -### 复杂数据类型 - -- BE 支持启动时选择符合指令集的 simdjson parser [#52732](https://github.com/apache/doris/pull/52732) -- 修复 variant nested 数据类型在数据类型冲突情况下导致的错误类型推断 [#53083](https://github.com/apache/doris/pull/53083) -- 修复 variant nested 顶层嵌套 array 数据默认值填充问题 [#54396](https://github.com/apache/doris/pull/54396) -- 禁止 variant 类型在 cloud 上 build index [#54777](https://github.com/apache/doris/pull/54777) -- 修复 variant 创建倒排索引后写入不符合索引条件的数据时生成空索引文件的问题 [#53814](https://github.com/apache/doris/pull/53814) - -### 其他 - -**schema-change** - -- 修复在清理失败的 SC 任务时新 tablet 为空的问题 ([#53952](https://github.com/apache/doris/pull/53952), [#54064](https://github.com/apache/doris/pull/54064)) -- 按原有顺序重建 bucket 列 ([#54024](https://github.com/apache/doris/pull/54024), [#54072](https://github.com/apache/doris/pull/54072), [#54109](https://github.com/apache/doris/pull/54109)) -- 禁止删除 bucket 列 [#54037](https://github.com/apache/doris/pull/54037) -- 网络错误时支持自动重试 ([#54419](https://github.com/apache/doris/pull/54419), [#54488](https://github.com/apache/doris/pull/54488)) -- 避免在 `tabletInvertedIndex` 上的死锁 ([#54197](https://github.com/apache/doris/pull/54197), [#54996](https://github.com/apache/doris/pull/54996)) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.1/release-3.1.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.1/release-3.1.0.md deleted file mode 100644 index 16f22fc6a4562..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.1/release-3.1.0.md +++ /dev/null @@ -1,647 +0,0 @@ ---- -{ - "title": "Release 3.1.0", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,近期我们迎来了 Apache Doris 3.1 版本的正式发布,欢迎大家下载使用体验。" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,近期我们迎来了 Apache Doris 3.1 版本的正式发布,欢迎大家下载使用体验。 - -3.1 版本是 Apache Doris 在**半结构化分析**上的一个里程碑版本。在 VARIANT 类型上,3.1 版本新增了稀疏列能力,使得 VARIANT 可以轻松应对数万子列的场景。同时,在 VARIANT 类型上引入了模板化 schema 能力,让 VARIANT 类型在关键路径上,查询更快、索引更稳、成本可控,同时不丢失灵活性。在倒排索引能力上,3.1 版本引入了 index v3 版本的索引格式,相比较于 v2 版本存储空间节省可达 20%。同时,支持了更为丰富的分词手段,提供了三种全新的分词器:ICU Tokenizer、IK Tokenizer 和 Basic Tokenizer。还进一步支持了自定义分词器,可以突破内置分词器的局限性,根据业务场景定制,显著提升搜索召回率。 - -3.1 版本同样在**湖仓一体**上有了显著的增强。在 3.1 版本中,Apache Doris 将异步物化视图中的分区构建和透明改写分区补偿,这两项重要能力引入数据湖中,在湖和仓中间架起一座重要的桥梁。3.1 版本还扩充了对 iceberg 和 paimon 特性的支持范围。另外,通过引入动态分区裁剪和批量分片执行在特定场景下提升了数据湖查询的性能多达 40%,并显著降低了 FE 的内存占用。同时 3.1 版本还重构了各个数据源的连接属性,不仅能够以更加清晰的方式对接各类元数据服务和数据存储系统,同时还支持了更加丰富的连接能力。 - -3.1 版本 Apache Doris 持续打磨**存储引擎**。提供了全新的数据更新方式 —— 灵活列更新。在部分列更新的基础上,进一步放开限制。在一次导入中对于每一行可以更新不同的列。另外,在存算分离场景下,优化了 MOW 表部分链路的锁获取逻辑和使用范围,提升高并发导入场景的使用体验。 - -在性能方面,3.1 着重优化了**分区裁剪的能力和规划性能**。在数万分区和复杂分区过滤表达式的场景下,能够显著提升查询性能并降低资源消耗。同时,3.1 还在优化器中全面引入了基于数据特征的优化手段,在特定场景下可以获得超过 10 倍的性能提升。 - -**在 3.1 版本的研发过程中,有超过 90 名贡献者为 Apache Doris 提交了 1000+ 个优化与修复。** 在此向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢。 - -- [GitHub 下载](https://github.com/apache/doris/releases) - -- [官网下载](https://doris.apache.org/download) - -## 一、VARIANT 半结构化查询华丽变身 - -### 存储能力质变:稀疏列与子列 Vertical Compaction,轻松支持数万子列 - -传统 OLAP 面对“超宽表/超多列”(上千到上万)常遇到元数据膨胀、合并放大与查询退化;Doris 3.1 通过 VARIANT 的稀疏子列与子列级 Vertical Compaction,将可维护的列数上限抬升到数万级。 - -通过对存储层的深入优化,Variant 给用户带来以下收益: - -- 稳定支撑“上千 - 数万”子列(列式存储),查询/合并延迟更平滑。 -- 元数据与索引可控,避免指数级膨胀。 -- 实测可进行 10,000+ 子列提取(列式存储),Compaction 效率顺畅。 - -**超多列的适用场景:** - -- 车联网/IoT 遥测:设备型号多、传感器维度动态增减。 -- 营销自动化/CRM:事件/用户属性持续扩展(如自定义 event/property)。 -- 广告/埋点事件:海量可选 properties,字段稀疏且不断演进。 -- 安全审计/日志:不同源日志字段各异,需按模式聚合检索。 -- 电商商品属性:类目跨度大,商品属性高度可变。 - -**实现原理** - -- 稀疏子列(Sparse Subcolumns):按 JSON Key 频次排序,只提取 Top-N 高频子列入“真列式”;长尾保持在稀疏列存储,避免无序扩张。 -- 子列级 Vertical Compaction:对 VARIANT 子列应用 Vertical Compaction,分组合并、内存占用更小;合并时动态识别并固化热点路径,进一步降低合并开销。 -- 优化值填充默认值效率,按 batch 的方式进行批量填充(减少虚函数开销)。 -- 通过 LRU 机制减少内存中列存储相关元数据缓存内存开销。 - -**如何开启与使用** - -新增列级别控制 Variant 参数,列属性(Properties): - -`variant_max_subcolumns_count`:默认是`0`,表明不开启稀疏列能力,设置成特定值后将会提取 Top-N 高频的 JSON key 作为列式存储,余下的列进入稀疏列存储。 - -```SQL --- Enable sparse subcolumns and cap hot subcolumn count -CREATE TABLE IF NOT EXISTS tbl ( - k BIGINT, - v VARIANT< - properties("variant_max_subcolumns_count" = "2048") -- pick top-2048 hot keys - > -) DUPLICATE KEY(k); -``` - -### 模板化 Schema(Schema Template) - 变化中的不变量 - -一句话总结:模板化 Schema 让“常变”的 JSON 在关键路径上“变得可预期”:查询更快、索引更稳、成本可控,同时不丢失灵活性。 - -使用模板化的 Schema,将会给使用 Variant 数据类型带来以下收益: - -- 类型稳定:关键子路径类型可在 DDL 中固定,避免类型漂移引发的查询报错、索引失效与隐式转换开销。 -- 检索更快更准:为不同子路径定制倒排策略(分词/非分词、解析器、短语搜索等),常用查询延迟更低、命中更稳定。 -- 索引与成本可控:不再“整列统一继承索引”(2.1 的做法易膨胀),而是“按子路径精细化配置”,显著降低索引数量、写放大与存储成本。 -- 可维护/可协作:等同给 JSON 加“数据契约”,跨团队语义一致;类型与索引状态更可观测,问题更易定位。 -- 演进友好:核心高频路径模板化并可选建索引,长尾字段继续保持灵活扩展,不牺牲可扩展性。 - -**如何开启与使用** - -- 显式声明结构,指定类型:在`VARIANT<...>`中预定义常用子路径与类型(含通配),例如`'a' : int, 'c.d' : text, 'array_int_*' : array`。 -- 配置索引,针对同一 VARIANT 列的不同子路径配置不同索引策略(field_pattern、解析器、分词、短语搜索等),差异化提升检索效率,可用通配符批量匹配。 -- 新增列级别控制 Variant 参数,列属性(Properties):`variant_enable_typed_paths_to_sparse`:默认是`false`,表明预定义的列不会进入稀疏列, `true` 开启后预定义类型路径也会进入稀疏存储(用于避免匹配过多列后导致的列数膨胀) - -示例 1:schema 定义 + 单列多索引 - -```SQL --- Common properties: field_pattern (target subpath), analyzer, parser, support_phrase, etc. -CREATE TABLE IF NOT EXISTS tbl ( - k BIGINT, - v VARIANT<'content' : STRING>, -- specify concrete type for subcolumn 'content' - INDEX idx_tokenized(v) USING INVERTED PROPERTIES("parser" = "english", "field_pattern" = "content"), -- tokenized inverted index for 'content' with english parser - INDEX idx_v(v) USING INVERTED PROPERTIES("field_pattern" = "content") -- non-tokenized inverted index for 'content' -); - --- v.content will have both a tokenized (english) inverted index and a non-tokenized inverted index - --- Use tokenized index -SELECT * FROM tbl WHERE v['content'] MATCH 'Doris'; - --- Use non-tokenized index -SELECT * FROM tbl WHERE v['content'] = 'Doris'; -``` - -示例 2:通配符批量处理符合模式的列 - -```SQL --- Use wildcard-typed subpaths with per-pattern indexes -CREATE TABLE IF NOT EXISTS tbl2 ( - k BIGINT, - v VARIANT< - 'pattern1_*' : STRING, -- batch-typing: all subpaths matching pattern1_* are STRING - 'pattern2_*' : BIGINT, -- batch-typing: all subpaths matching pattern2_* are BIGINT - properties("variant_max_subcolumns_count" = "2048") -- enable sparse subcolumns; keep top-2048 hot keys - >, - INDEX idx_p1 (v) USING INVERTED - PROPERTIES("field_pattern"="pattern1_*", "parser" = "english"), -- tokenized inverted index for pattern1_* with english parser - INDEX idx_p2 (v) USING INVERTED - PROPERTIES("field_pattern"="pattern2_*") -- non-tokenized inverted index for pattern2_* -) DUPLICATE KEY(k); -``` - -示例 3:允许预定义类型的列进入稀疏列 - -```SQL --- Allow predefined typed paths to participate in sparse extraction -CREATE TABLE IF NOT EXISTS tbl3 ( - k BIGINT, - v VARIANT< - 'message*' : STRING, -- batch-typing: all subpaths matching prefix 'message*' are STRING - properties( - "variant_max_subcolumns_count" = "2048", -- enable sparse subcolumns; keep top-2048 hot keys - "variant_enable_typed_paths_to_sparse" = "true" -- include typed (predefined) paths as sparse candidates (default: false) - ) - > -) DUPLICATE KEY(k); -``` - -## 二、索引架构全面进化 - -### 倒排索引存储格式 V3 - 性能和功能的双重提升 - -**相比 V2 进一步优化存储** - -索引文件更小,减少磁盘占用和 I/O 开销,以 httplogs 与 logsbench 两个测试集测试结果来看,存储空间最大可以通过 V3 节省 20%,适合大规模文本数据、日志分析场景。 - -![倒排索引存储格式 V3 - 性能和功能的双重提升](/images/release-3.1/index-optimization-1.PNG) - -**核心改进** - -- **引入倒排索引 ZSTD 词典压缩**:采用 ZSTD 压缩算法对倒排索引内的词典文件进行压缩,通过 index properties 中的 `dict_compression` 开启。 -- **新增倒排索引位置信息压缩**:支持对倒排索引中为每个 term 即词元记录的位置信息进行编码压缩,进一步减少倒排索引空间占用。 - -**使用方式** - -```SQL --- 建表时启用V3格式 -CREATE TABLE example_table ( - content TEXT, - INDEX content_idx (content) USING INVERTED - PROPERTIES("parser" = "english", "dict_compression" = "true") -) ENGINE=OLAP -PROPERTIES ("inverted_index_storage_format" = "V3"); -``` - -### 倒排索引 - 分词器灵活多样好用易用 - -#### 新增三种常用分词器 - -进一步提升用户在不同场景下的分词需求: - -**ICU Tokenizer** - -- **实现**:ICU(International Components for Unicode) -- **适用场景**:包含复杂文字系统的国际化文本,特别适合多语言混合文档。 -- **示例**: - - ```SQL - SELECT TOKENIZE('مرحبا بالعالم Hello 世界', '"parser"="icu"'); - -- 结果:["مرحبا", "بالعالم", "Hello", "世界"] - - SELECT TOKENIZE('มนไมเปนไปตามความตองการ', '"parser"="icu"'); - -- 结果:["มน", "ไมเปน", "ไป", "ตาม", "ความ", "ตองการ"] - ``` - -**IK Tokenizer** - -- **实现**:IK Analyzer(中文分词器),基于算法的高级中文分词,结合词典和统计模型 -- **适用场景**:对分词质量要求较高的中文文本处理 -- **模式**: - - **ik_smart**:智能模式,词少且更长,语义集中,适合精确搜索 - - **ik_max_word**:最细粒度模式,更多短词,覆盖更全面,适合召回搜索 -- **示例**: - - ```SQL - -- 智能模式 - SELECT TOKENIZE('中华人民共和国国歌', '"parser"="ik","parser_mode"="ik_smart"'); - -- 结果:["中华人民共和国", "国歌"] - - -- 最细粒度模式 - SELECT TOKENIZE('中华人民共和国国歌', '"parser"="ik","parser_mode"="ik_max_word"'); - -- 结果:["中华人民共和国", "中华人民", "中华", "华人", "人民共和国", "人民", "共和国", "共和", "国歌"] - ``` - -**Basic Tokenizer** - -- **实现**:简单规则的自定义分词器,基础分词,采用字符类型识别进行分词 -- **适用场景**:简单场景、对性能要求极高的场景 -- **分词规则**: - - 连续的字母数字字符作为一个词(word tokens) - - 中文字符单独分词(每个汉字一个 token) - - 忽略标点符号、空格和特殊符号 -- **示例**: - - ```SQL - -- 英文文本分词 - SELECT TOKENIZE('Hello World! This is a test.', '"parser"="basic"'); - -- 结果:["hello", "world", "this", "is", "a", "test"] - - -- 中文文本分词 - SELECT TOKENIZE('你好世界', '"parser"="basic"'); - -- 结果:["你", "好", "世", "界"] - - -- 混合语言分词 - SELECT TOKENIZE('Hello 你好 World 世界', '"parser"="basic"'); - -- 结果:["hello", "你", "好", "world", "世", "界"] - - -- 包含数字和特殊字符 - SELECT TOKENIZE('GET /images/hm_bg.jpg HTTP/1.0', '"parser"="basic"'); - -- 结果:["get", "images", "hm", "bg", "jpg", "http", "1", "0"] - - -- 处理长数字序列 - SELECT TOKENIZE('12345678901234567890', '"parser"="basic"'); - -- 结果:["12345678901234567890"] - ``` - -#### 自定义分词 - -推出自定义分词功能,方便用户根据自身分词需求,进行 DIY 组合,进一步提高文本检索召回率。自定义分词可以突破内置分词的局限,根据特定需求组合字符过滤器、分词器和词元过滤器,精细定义文本如何被切分成可搜索的词项,这直接决定了搜索结果的相关性与数据分析的准确性。 - -![自定义分词](/images/release-3.1/index-optimization-2.PNG) - -**使用场景举例** - -- **问题** - -使用默认 unicode 分词器时,电话号码"13891972631"被当作完整 token,无法支持前缀搜索如"138"。 - -- **解决方案** - - **创建分词器(tokenizer)** - - 使用 Edge N-gram 自定义分词器: - ```SQL - CREATE INVERTED INDEX TOKENIZER IF NOT EXISTS edge_ngram_phone_tokenizer - PROPERTIES - ( - "type" = "edge_ngram", - "min_gram" = "3", - "max_gram" = "10", - "token_chars" = "digit" - ); - ``` - - - - **创建分析器(analyzer)** - - ```SQL - CREATE INVERTED INDEX ANALYZER IF NOT EXISTS phone_prefix_analyzer - PROPERTIES - ( - "tokenizer" = "edge_ngram_phone_tokenizer" - ); - ``` - - - **创建表指定 analyzer** - ```SQL - CREATE TABLE customer_contacts ( - id bigint NOT NULL AUTO_INCREMENT(1), - phone text NULL, - INDEX idx_phone (phone) USING INVERTED PROPERTIES( - "analyzer" = "phone_prefix_analyzer" - ) - ) ENGINE=OLAP - DUPLICATE KEY(id) - DISTRIBUTED BY RANDOM BUCKETS 1 - PROPERTIES ("replication_allocation" = "tag.location.default: 1"); - ``` - - - **查看分词效果** - ```SQL - SELECT tokenize('13891972631', '"analyzer"="phone_prefix_analyzer"'); - +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | tokenize('13891972631', '"analyzer"="phone_prefix_analyzer"') | - +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | [{ - "token": "138" - }, { - "token": "1389" - }, { - "token": "13891" - }, { - "token": "138919" - }, { - "token": "1389197" - }, { - "token": "13891972" - }, { - "token": "138919726" - }, { - "token": "1389197263" - }] | - +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - ``` - - - **文本搜索效果** - ```SQL - SELECT * FROM customer_contacts_optimized WHERE phone MATCH '138'; - +------+-------------+ - | id | phone | - +------+-------------+ - | 1 | 13891972631 | - | 2 | 13812345678 | - +------+-------------+ - SELECT * FROM customer_contacts_optimized WHERE phone MATCH '1389'; - +------+-------------+ - | id | phone | - +------+-------------+ - | 1 | 13891972631 | - | 2 | 13812345678 | - +------+-------------+ - 2 rows in set (0.043 sec) - ``` - -通过 Edge N-gram 分词器,一个电话号码被拆分成多个前缀 token,实现了灵活的前缀匹配搜索。 - -## 三、湖仓一体能力再跃新高 - -### 异步物化视图全面支持数据湖 - -在 3.1 版本中,异步物化视图再次进化,现在可以完整支持 Paimon / Iceberg / Hudi 的分区增量构建和分区透明改写。Doris 自 2.1 版本支持异步物化视图功能开始。经过多个版本的迭代。已经支持了非常多有价值的特性。包括: - -![异步物化视图全面支持数据湖](/images/release-3.1/lakehouse.PNG) - -3.1 版本则重点打磨湖仓一体方向上的功能,全面支持主流的数据湖表格式 Paimon / Iceberg / Hudi 的分区刷新,和透明改写时的外部数据源分区补偿。使其成为联通湖和仓之间的高速公路。具体支持范围详见下表: - -![异步物化视图全面支持数据湖](/images/release-3.1/lakehouse-2.PNG) - -### Iceberg / Paimon 能力全面扩充 - -#### Iceberg - -3.1.0 版本针对 Iceberg 表格式上做出多项优化和能力增强,紧密推进与 Iceberg 最新特性的融合。 - -**支持 Branch / Tag 完整生命周期管理** - -从 3.1.0 开始,Doris 原生支持 Iceberg Branch & Tag 的创建、删除、读取与写入操作。该功能能够让用户像 Git 一样操作和管理 Iceberg 表数据。这一能力为 Iceberg 表格式的多版本并行管理、灰度测试、环境隔离等业务场景提供了原生的支持,无需额外引擎或自定义逻辑。 - -```SQL --- 创建分支 -ALTER TABLE iceberg_tbl CREATE BRANCH b1; --- 写入数据到指定分支 -INSERT INTO iceberg_tbl@branch(b1) values(1, 2); --- 查询指定分支 -SELECT * FROM iceberg_tbl@branch(b1); -``` - -**丰富的 Iceberg 系统表支持** - -3.1.0 新增对 Iceberg `$entries`, `$files`, `$history`, `$manifests`, `$refs`, `$snapshots` 等系统表的支持,可用 `SELECT * FROM iceberg_table$history`、`…$refs` 等语句直接查询 Iceberg 的底层 metadata、snapshot 列表、分支/标签信息等,从而深入了解数据文件的组织结构、快照的变更历史以及分支的映射情况。这种能力大大提升了 Iceberg 元数据的可观测性,使得问题定位、调优分析和治理决策更加直观、透明。 - -如通过系统表查看 delete file 数量: - -```SQL -SELECT - CASE - WHEN content = 0 THEN 'DataFile' - WHEN content = 1 THEN 'PositionDeleteFile' - WHEN content = 2 THEN 'EqualityDeleteFile' - ELSE 'Unknown' - END AS ContentType, - COUNT(*) AS FileNum, - SUM(file_size_in_bytes) AS SizeInBytes, - SUM(record_count) AS Records -FROM - iceberg_table$files -GROUP BY - ContentType; - -+--------------------+---------+-------------+---------+ -| ContentType | FileNum | SizeInBytes | Records | -+--------------------+---------+-------------+---------+ -| EqualityDeleteFile | 2787 | 1432518 | 27870 | -| DataFile | 2787 | 4062416 | 38760 | -| PositionDeleteFile | 11 | 36608 | 10890 | -+--------------------+---------+-------------+---------+ -``` - -**Iceberg 视图查询** - -3.1.0 版本新增对 Iceberg 逻辑视图的访问和查询。该功能进一步提升了 Doris 对 Iceberg 功能的完善程度。在后续 3 位版本迭代中,我们将进一步支持 Iceberg View 的 SQL 方言转换能力。 - -**通过 ALTER 语句修改 Iceberg 表结构** - -3.1.0 支持通过 `ALTER TABLE` 语句对 Iceberg 表进行字段的新增、删除、重命名和重排序操作。该功能进一步完善了 Doris 对 Iceberg 表的管理能力,无需再借助 Spark 等第三方引擎进行 Iceberg 表管理。 - -```SQL -ALTER TABLE iceberg_table -ADD COLUMN new_col int; -``` - -同时,在 3.1.0 版本中,Iceberg 的依赖版本升级到 1.9.2,以便更好的支持 Iceberg 的新的功能。在后续 3.1 的迭代版本中,我们将进一步增强 Iceberg 的表管理能力,包括数据合并、分支演进等能力。 - -详情参考[文档](https://doris.apache.org/docs/lakehouse/catalogs/iceberg-catalog) - -#### Paimon - -3.1.0 版本针对 Paimon 表格式,结合用户实际场景,进行了多项功能更新和能力增强。 - -**支持 Paimon Batch Incremental Query** - -3.1.0 版本支持读取 Paimon 表指定的两个快照之间的增量数据。该功能增强了用户对 Paimon 表增量数据的访问能力。尤其是在增量物化视图构建方面,基于此功能实现了 Paimon 表的增量聚合物化视图能力。详见物化视图方面的说明。 - -```SQL -SELECT * FROM paimon_tbl@incr('startSnapshotId'='2', 'endSnapshotId'='5'); -``` - -**支持 Branch / Tag 读取** - -从 3.1.0 开始,Doris 支持对 Paimon 表的 Branch / Tag 进行读取,帮助用户更灵活的访问多版本的 Paimon 数据。 - -```SQL -SELECT * FROM paimon_tbl@branch(branch1); -SELECT * FROM paimon_tbl@tag(tag1); -``` - -**丰富的 Paimon 系统表支持** - -同 Iceberg 一样,3.1.0 新增对 Paimon `$files`, `$partitions`, `$manifests`, `$tags`, `$snapshots` 等系统表的支持,可用 `SELECT * FROM partition_table$files` 等语句直接查询 Paimon 的底层元数据信息。更方便用户对 Paimon 表进行探测、调试和优化。 - -如我们可以通过系统表统计分区新增数据文件: - -```SQL -SELECT - partition, - COUNT(*) AS new_file_count, - SUM(file_size_in_bytes)/1024/1024 AS new_total_size_mb -FROM my_table$files -WHERE creation_time >= DATE_SUB(NOW(), INTERVAL 3 DAY) -GROUP BY partition -ORDER BY new_total_size_mb DESC; -``` - -在 3.1.0 版本中,Paimon 的依赖版本升级到 1.1.1,以便更好的支持 Paimon 的新的功能。 - -详情参考[文档](https://doris.apache.org/docs/lakehouse/catalogs/paimon-catalog) - -### 数据湖查询性能更上一层楼 - -3.1.0 版本,针对数据湖表格式的查询性能进行了多项深度优化,旨在实际生产环境下,为用户提供更加稳定、高效的数据湖分析能力。 - -**动态分区裁剪** - -动态分区裁剪功能,能够在多表关联查询场景下,根据右表数据生成分区列谓词,并对左表数据进行运行时的分区剪枝,从而减少数据 IO,提升查询性能。在 3.0 版本中,Doris 已经支持了 Hive 表的动态分区裁剪功能。在 3.1.0 版本中,这个功能进一步扩充到了 Iceberg、Paimon 和 Hudi 表上。在测试场景下,针对选择率较高的查询,**可以提升 30%-40% 的性能。** - -**批量分片执行** - -当湖表的数据分片较多时,如果 FE 进行规划并将所有分片信息一次性组装完成发送给 BE,那么可能造成 FE 内存消耗过大以及处理实际过长的问题。尤其是在查询大数据量表时,会导致规划部分的资源开销大耗时长。批量分片执行功能,通过分批次生产数据分片信息,并且边生产变执行,能够有效缓解 FE 的内存开销,同时能够让分片信息的生产和执行并行执行,提升整体的执行效率。在 3.0 版本中,Doris 已经支持了 Hive 表上的该功能。在 3.1.0 版本中,进一步增加了对 Iceberg 表的批量分片执行支持。在大数据量测试场景下,可以显著降低 FE 的内存开销和查询规划时间。 - -### 联邦分析 - 连接器更好用更多样 - -3.1 版本重构了各个数据源的连接属性,不仅能够以更加清晰的方式对接各类元数据服务和数据存储系统,同时还支持了更加丰富的连接能力。 - -**Iceberg Rest Catalog** - -3.1 版本进一步增强了对 Iceberg Rest Catalog 的支持。不仅支持了包括 Unity、Polaris、Gravitino、Glue 等多种 Iceberg Rest Catalog 后端实现,同时支持了 vended credentials 功能,能够更加安全、灵活的管理访问凭证。目前支持 AWS 平台,后续小版本迭代中将陆续支持 GCP、Azure 等云平台的凭证管理。 - -详情参考[文档](https://doris.apache.org/docs/lakehouse/metastores/iceberg-rest) - -**支持 Paimon Rest Catalog** - -3.1.0 版本中支持基于阿里云 DLF 的 Paimon Rest Catalog,可以直接访问新版本 DLF 管理的 Paimon 表数据。 - -详情参考[文档](https://doris.apache.org/docs/lakehouse/best-practices/doris-dlf-paimon) - -**多 Kerberos 环境支持** - -3.1 版本允许用户在同一个 Doris 集群内访问不同的 Kerberos 认证环境。不同的 Kerberos 环境可能采用不同的 KDC 服务、Principal 以及对应的 Keytab。新版本允许针对不同的 Catalog,配置不同的 Kerberos 认证信息,并且相互之间不受干扰。该功能极大的方便了拥有多套 Kerberos 认证环境的用户,可以使用 Doris 进行统一的访问管理。 - -详情参考[文档](https://doris.apache.org/docs/lakehouse/storages/hdfs#kerberos-authentication) - -**多 Hadoop 环境支持** - -在之前的版本中,Doris 只允许用户在 conf 目录下放置一套 hadoop 集群的配置文件(hive-site.xml,hdfs-site.xml 等)。如果用户有多套不同的 Hadoop 环境和配置,则无法支持。新版本运行用户为不同的 Catalog 指定不同的 Hadoop 配置文件,帮助用户更灵活的管理外部数据源。 - -详情参考[文档](https://doris.apache.org/docs/lakehouse/storages/hdfs#kerberos-authentication) - -## 四、存储层构持续打磨 - -在 3.1 版本中,我们对存储层也进行了持续的打磨,性能和稳定性都有了显著的提升。 - -### 灵活列更新 - 数据更新全新体验 - -此前 Doris 的部分列更新功能要求一次导入中每一行必须更新相同的列。在一些场景下,源端系统输出的记录往往只包含主键和被更新的列,不同行更新的列可能不同。为了解决这种需求,Doris 引入了 **灵活列更新** 功能,使用灵活列更新可以大幅简化用户侧按列攒数据的工作以及提升写入性能。 - -**使用方式** - -- 创建 **Merge-on-Write Unique 表** 时,在表属性中开启: -- `"enable_unique_key_skip_bitmap_column" = "true"` -- 在导入时指定导入模式: -- `unique_key_update_mode: UPDATE_FLEXIBLE_COLUMNS` -- Doris 会自动完成灵活列更新与数据补齐。 - -**示例** 支持在一次导入中对不同记录更新不同的列,例如: - -- 删除某行(`DORIS_DELETE_SIGN`) -- 更新部分列(如 `v1`、`v2`、`v5` 等) -- 插入新行(仅提供主键和被更新列,其他列使用默认值或补齐历史值) - -**效果** - -- 在测试环境下(1 FE + 4 BE,16C 64GB,3 亿行 101 列数据,3 副本行存表): - - 每次导入 20,000 行,仅更新 1 列(需补齐 99 列) - - 单并发导入性能可达 **10.4k 行/s** - - 单机资源占用:CPU ~60%,内存 ~30GB,读 IOPS ~7.5k/s,写 IOPS ~5k/s - -### 存算分离 mow 锁优化 - -在存算分离场景下,MOW 表更新 Delete Bitmap 需要获取分布式锁 `delete_bitmap_update_lock`。原有实现中,导入、Compaction 和 Schema Change 会竞争该锁,容易在高并发导入场景下导致长时间等待甚至失败。 - -本次优化包括两方面: - -**减少 Compaction 持锁时间** - -- 通过引入新的 `mow_tablet_compaction_key`,避免多个 Compaction/Schema Change 任务在更新 `initiators` 列表时产生不必要的事务冲突。 -- 在多 Tablet 高并发导入测试中,导入提交事务的 **p99 平均耗时从 1.68 分钟降低到 49.4 秒**,大幅降低了事务提交延迟。 -- 新增配置项 `delete_bitmap_lock_v2_white_list`,支持为指定仓库开启该优化。 - -**降低导入事务长尾延迟** - -- 增加 FE 配置 `mow_load_force_take_ms_lock_threshold_ms`,当导入事务等待锁超过阈值时,将强制获取分布式锁,避免长时间饥饿。 -- 在高并发导入测试下,该优化显著减少了导入事务的长尾延迟。 - -## 五、查询性能提升 - -### 分区裁剪性能和适用范围提升 - -Doris 支持数据按照分区组织,这些分区可以独立存储、独立查询、独立管理。通过分区,可以提升查询性能、优化数据管理,并降低资源消耗。在查询过程中,通过使用过滤条件,提前过滤无需查询的分区,可以显著提升查询性能,降低系统资源消耗。在日志数据分析系统,风控系统等使用场景中,单表可能存在万级别甚至十万级别的分区数量,而通常单词查询,只会命中百级别以下的分区数据。对于在这类数据上的查询,能否分区裁剪,对于查询性能的影响十分显著。 - -在 3.1 版本中,Doris 通过引入一系列的优化,显著提升了分区裁剪的性能和适用范围,包括 - -- 分区裁剪二分查找。对于在时间列上的分区,通过将分区按照列值排序,将分区裁剪的计算从线性遍历,改为二分查找。在使用 DATETIME 类型作为分区字段,13.6 万分区数的场景下。实测分区裁剪的耗时,从 724ms 提升到 43ms。提升超过 16 倍。 -- 增加大量单调函数参与分区裁剪。在实际的使用场景中,在时间分区列上的过滤条件,通常不是简单的逻辑比较,而是在分区列上包含时间函数计算的复杂表达式。如:`to_date(time_stamp) > '2022-12-22`',`date_format(timestamp,'%Y-%m-%d %H:%i:%s') > '2022-12-22 11:00:00'`等。Doris 在 3.1 版本中引入了函数单调特性描述,当函数为单调函数时,可以通过计算分区边界值是否可以被裁剪得知整个分区是否可以被裁剪。在 3.1 版本中,已经支持了 CAST 和 25 个常见的时间相关的函数。可以覆盖绝大多数常见的时间类型分区列上的过滤条件。 -- 此外,3.1 版本中,还对分区裁剪的全路径代码做了许多代码级别的详细优化,减少了不必要开销。 - -### 洞察数据特征 - 获得性能 10 倍的潜力 - -在 3.1 中,优化器可以更聪明的使用数据特征对查询进行优化。优化器会执行计划树种各个节点的收集唯一性(Unique)、均一性(Uniform),等值集(Equal Set)等数据特征,并推导列之间的函数依赖关系。当在特定的节点,数据符合特定特征时,可以移除不必要的连接、聚合或排序计算,显著提升查询性能。 - -在针对特定优化构建的测试用例下,利用数据特征可以获得超过 10 倍的性能提升,详见下表: - -![洞察数据特征 - 获得性能 10 倍的潜力](/images/release-3.1/query-performance.PNG) - -## 六、功能改进 - -### 半结构化 - -**VARIANT** - -- 新增 `variant_type(x)`函数:返回 Variant 子 field 对应的“当前实际类型”。 -- 新增 ComputeSignature/Helper,增强函数参数/返回类型推断能力。 - -**STRUCT** - -- 支持使用 Schema Change 为 STRUCT 类型增加子列 - -### 湖仓一体 - -- 支持在 Catalog 级别设置元数据缓存策略,如缓存过期时间等。帮助用户根据需求灵活调整数据时效性和元数据访问性能。详情参考[文档](https://doris.apache.org/docs/lakehouse/meta-cache) -- 支持 `FILE()` 表函数(Table Valued Function),该表函数是原有的 `S3()`,`HDFS()`,`LOCAL()`表函数的集合,方便用户使用和理解。 - - -### 聚合算子能力增强 - -在 3.1 版本中,优化器重点增强了聚合算子。支持了两个使用较为广泛的能力。 - -**非标 GROUP BY 支持** - -对于标准的聚合查询,要求聚合输出的标量表达式,其本身或其子树必须是聚合键。但在 MySQL 中,当设置了 SQL_MODE 不包含 "ONLY_FULL_GROUP_BY" 时,则没有次限制。详见 [MySQL 文档](https://dev.mysql.com/doc/refman/8.4/en/sql-mode.html#sqlmode_only_full_group_by) - -此时,此列输出的值为聚合键对应多行中的任意一行计算的值。举例如下: - -```SQL --- 非标 GROUP BY -SELECT c1, c2 FROM t GROUP BY c1 --- 等价于 -SELECT c1, any_value(c2) FROM t GROUP BY c1 -``` - -在 3.1 版本中。Doris 在 SQL_MODE 中默认开启 "ONLY_FULL_GROUP_BY" ,即和之前的行为保持一致。如果需要使用非标 GROUP BY 功能。则可以通过如下设置开启: - -```SQL -set sql_mode = replace(@@sql_mode, 'ONLY_FULL_GROUP_BY', ''); -``` - -**多 distinct 聚合支持** - -在之前的版本中,如果聚合查询中,包含多个 distinct 聚合函数,且他们的参数不一致。同时聚合函数的 distinct 语义和非 distinct 语义不一致,且不是以下之一,则 Doris 无法执行查询: - -- 单参数的 COUNT -- SUM -- AVG -- GROUP_CONCAT - -在 3.1 版本中,Doris 对此方面进行了加强。现在这些查询可以正常执行并获取结果。例如: - -```SQL -SELECT count(DISTINCT c1,c2), count(DISTINCT c2,c3), count(DISTINCT c3) FROM t; -``` - -### 连接协议增强 - -- 开启 Proxy Protocol 协议后,依然可以通过非该协议的客户端连接。该改进在负载均衡 IP 透传场景下,方便用户更灵活的连接 Doris。 -- 查询 VIEW 时,JDBC 的元数据接口 ResultSetMetaData#getColumnName 可以正确的返回 VIEW 中的列名 - -## 七、行为变更 - -### VARIANT - -- `variant_max_subcolumns_count` 约束 - - 同一张表中,所有 Variant 列的 `variant_max_subcolumns_count` 必须“要么全为 0,要么全为 > 0”。混用会在建表 / Schema Change 时报错。 -- 新的 Variant 读写/serde 与 Compaction 路径对旧数据兼容。老版本 Variant 升级上来查询格式会产生差异(比如多一些空格、或是`。`分隔符导致层级构建,产生额外的层级) -- 创建 Variant 倒排索引,如果数据中所有字段不符合索引条件也会生成空索引文件,属预期行为 - -### 权限 - -- show transcation 的权限需求从拥有 ADMIN_PRIV 权限,变更为拥有导入对应数据库的 LOAD_PRIV 权限 -- 统一了 SHOW FRONTENDS / BACKENDS 和 NODE Restful API 的权限。现在这些接口的权限需求为拥有 information_schema 库的 SELECT_PRIV 权限。 - -## 立刻开启 3.1 - -在 3.1 版本正式发布之前,半结构化和数据湖的多个能力已经经过真实线上场景的验证,并获得了符合预期的性能提升。推荐有相应能力需求的用户下载尝鲜。 - -## 致谢 - -在此,再次向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢: - -@924060929 @airborne12 @amorynan @BePPPower @BiteTheDDDDt @bobhan1 @CalvinKirs @cambyzju @cjj2010 @csun5285 @DarvenDuan @dataroaring @deardeng @dtkavin @dwdwqfwe @eldenmoon @englefly @feifeifeimoon @feiniaofeiafei @felixwluo @freemandealer @Gabriel39 @gavinchou @ghkang98 @gnehil @gohalo @HappenLee @heguanhui @hello-stephen @HonestManXin @htyoung @hubgeter @hust-hhb @jacktengg @jeffreys-cat @Jibing-Li @JNSimba @kaijchen @kaka11chen @KeeProMise @koarz @liaoxin01 @liujiwen-up @liutang123 @luwei16 @MoanasDaddyXu @morningman @morrySnow @mrhhsg @Mryange @mymeiyi @nsivarajan @qidaye @qzsee @Ryan19929 @seawinde @shuke987 @sollhui @starocean999 @suxiaogang223 @SWJTU-ZhangLei @TangSiyang2001 @Vallishp @vinlee19 @w41ter @wangbo @wenzhenghu @wumeibanfa @wuwenchi @wyxxxcat @xiedeyantu @xinyiZzz @XLPE @XnY-wei @XueYuhai @xy720 @yagagagaga @Yao-MR @yiguolei @yoock @yujun777 @Yukang-Lian @Yulei-Yang @yx-keith @Z-SWEI @zclllyybb @zddr @zfr9527 @zgxme @zhangm365 @zhangstar333 @zhaorongsheng @zhiqiang-hhhh @zy-kkk @zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.1/release-3.1.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.1/release-3.1.1.md deleted file mode 100644 index 4927b1c1d2cd9..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.1/release-3.1.1.md +++ /dev/null @@ -1,242 +0,0 @@ ---- -{ - "title": "Release 3.1.1", - "language": "zh-CN", - "description": "Apache Doris 3.1.1 是一个维护版本,重点在于关键性错误修复、性能优化和稳定性提升。此版本包含大量针对数据合并(compaction)、数据导入、查询处理和云功能的修复,使其在生产环境中更加稳健可靠。" -} ---- - -## 概述 - -Apache Doris 3.1.1 是一个维护版本,重点在于关键性错误修复、性能优化和稳定性提升。此版本包含大量针对数据合并(compaction)、数据导入、查询处理和云功能的修复,使其在生产环境中更加稳健可靠。 - -## 新特性 - -### 核心功能 - -- **`[feature](function)`** 支持 `count_substrings` 函数([#42055](https://github.com/apache/doris/pull/42055), [#55847](https://github.com/apache/doris/pull/55847)) - - -### 数据集成与存储 - -- **`[feat](hdfs)`** 新增 HDFS 高可用(HA)配置验证([#55675](https://github.com/apache/doris/pull/55675), [#55764](https://github.com/apache/doris/pull/55764)) -- **`[feat](checker)`** 为校验器增加 Tablet 统计键一致性检查([#54754](https://github.com/apache/doris/pull/54754), [#55663](https://github.com/apache/doris/pull/55663)) -- **`[feat](outfile)`** 在 `outfile` 和导出中支持 CSV 格式的压缩类型([#55392](https://github.com/apache/doris/pull/55392), [#55561](https://github.com/apache/doris/pull/55561)) -- **`[feat](cloud)`** 支持云环境下 Group Commit Stream Load 的 BE 转发模式([#55326](https://github.com/apache/doris/pull/55326), [#55527](https://github.com/apache/doris/pull/55527)) - - -### 性能与优化 - -- **`[support](orc)`** 支持 ORC 文件元数据缓存([#54591](https://github.com/apache/doris/pull/54591), [#55584](https://github.com/apache/doris/pull/55584)) -- **`[Exec](vec)`** 支持使用 SIMD 计算 KNN 距离([#55275](https://github.com/apache/doris/pull/55275)) - - -## 改进 - -### 性能优化 - -- **`[opt](cloud)`** 减少元数据服务中空 Rowset 带来的压力([#54395](https://github.com/apache/doris/pull/54395), [#55171](https://github.com/apache/doris/pull/55171), [#55604](https://github.com/apache/doris/pull/55604), [#55742](https://github.com/apache/doris/pull/55742), [#55837](https://github.com/apache/doris/pull/55837), [#55934](https://github.com/apache/doris/pull/55934)) -- **`[Opt](mow)`** 优化 MOW 导入性能和 CPU 使用率([#55073](https://github.com/apache/doris/pull/55073), [#55733](https://github.com/apache/doris/pull/55733), [#55771](https://github.com/apache/doris/pull/55771), [#55767](https://github.com/apache/doris/pull/55767)) -- **`[opt](hive)`** 将 `hive.recursive_directories` 默认值设为 true([#55737](https://github.com/apache/doris/pull/55737), [#55905](https://github.com/apache/doris/pull/55905)) -- **`[opt](recycler)`** 避免频繁发起 `Aws::Internal::GetEC2MetadataClient` HTTP 请求([#55546](https://github.com/apache/doris/pull/55546), [#55682](https://github.com/apache/doris/pull/55682)) -- **`[opt](mow)`** 不再捕获调用栈以降低 CPU 开销([#55368](https://github.com/apache/doris/pull/55368), [#55526](https://github.com/apache/doris/pull/55526)) -- **`[opt](txn lazy commit)`** 使临时 Rowset 批量转换逻辑更具自适应性([#55035](https://github.com/apache/doris/pull/55035), [#55573](https://github.com/apache/doris/pull/55573)) -- **`[opt](nereids)`** 优化将大字符串转换为复杂类型时的性能([#55476](https://github.com/apache/doris/pull/55476), [#55521](https://github.com/apache/doris/pull/55521)) -- **`[opt](nereids)`** 支持简化字符串范围([#55378](https://github.com/apache/doris/pull/55378), [#55456](https://github.com/apache/doris/pull/55456)) -- **`[opt](nereids)`** 优化窗口函数的规范化逻辑([#54947](https://github.com/apache/doris/pull/54947), [#55046](https://github.com/apache/doris/pull/55046)) -- **`[opt](nereids)`** 当 OLAP 表具有自动分区时,优化 INSERT 命令的并行度([#54983](https://github.com/apache/doris/pull/54983), [#55030](https://github.com/apache/doris/pull/55030)) - - -### 系统增强 - -- **`[enhancement](Log)`** 将部分日志级别从 info 调整为 debug([#55808](https://github.com/apache/doris/pull/55808), [#55841](https://github.com/apache/doris/pull/55841)) -- **`[enhancement](filecache)`** 支持多个缓存实例之间并行清理缓存([#55259](https://github.com/apache/doris/pull/55259), [#55437](https://github.com/apache/doris/pull/55437)) -- **`[enhancement](sc)`** 禁止对隐藏列执行 Schema Change([#53376](https://github.com/apache/doris/pull/53376), [#55385](https://github.com/apache/doris/pull/55385)) -- **`[enhancement](backup)`** 在备份过程中正确处理已被删除的表和分区([#52935](https://github.com/apache/doris/pull/52935), [#54989](https://github.com/apache/doris/pull/54989)) -- **`[enhancement](cloud)`** 修复从 Doris 2.1 版本恢复到 3.1 版本时的云恢复问题([#55110](https://github.com/apache/doris/pull/55110)) -- **`[enhancement](type)`** 支持 time 与 datetime 类型之间的相互转换([#53734](https://github.com/apache/doris/pull/53734), [#54985](https://github.com/apache/doris/pull/54985)) - - -### 基础设施改进 - -- **`[refactor](credential)`** 使用统一架构重构临时凭证系统([#55912](https://github.com/apache/doris/pull/55912)) -- **`[refactor](cloud)`** 将云恢复中创建 Tablet 的 RPC 拆分为多个批次([#55691](https://github.com/apache/doris/pull/55691)) -- **`[opt](editlog)`** 在 FE 异常时增加跳过某些 editlog 异常的能力([#54090](https://github.com/apache/doris/pull/54090), [#55204](https://github.com/apache/doris/pull/55204)) - - -## 关键性错误修复 - -### 合并与存储 - -- **`[fix](sc)`** 对于版本号 ≤ alter_version 的空 Rowset,跳过版本空洞填充([#56209](https://github.com/apache/doris/pull/56209), [#56212](https://github.com/apache/doris/pull/56212)) -- **`[fix](compaction)`** 修复合并后输入 Rowset 被过早驱逐,导致查询失败的问题([#55382](https://github.com/apache/doris/pull/55382), [#55966](https://github.com/apache/doris/pull/55966)) -- **`[fix](compaction)`** 使创建 Tablet 操作具有幂等性,从而保证合并任务的幂等性([#56061](https://github.com/apache/doris/pull/56061), [#56108](https://github.com/apache/doris/pull/56108)) -- **`[fix](compaction)`** 在段合并(segcompaction)中使用 Rowset 元数据文件系统,并增加 RPC 客户端就绪检查([#55951](https://github.com/apache/doris/pull/55951), [#55988](https://github.com/apache/doris/pull/55988)) -- **`[fix](compaction)`** 在合并过程中跳过合并分数为 0 的 Tablet([#55550](https://github.com/apache/doris/pull/55550), [#55570](https://github.com/apache/doris/pull/55570)) - - -### 查询处理与函数 - -- **`[fix](fold constant)`** `abs` 函数的返回类型应与参数类型一致([#56190](https://github.com/apache/doris/pull/56190), [#56210](https://github.com/apache/doris/pull/56210)) -- **`[fix](fold constant)`** 当 float/double 值为 NaN 时,不在 BE 端进行常量折叠([#55425](https://github.com/apache/doris/pull/55425), [#55874](https://github.com/apache/doris/pull/55874)) -- **`[Fix](function)`** 修复 `unix_timestamp` 函数返回的小数位数错误([#55013](https://github.com/apache/doris/pull/55013), [#55962](https://github.com/apache/doris/pull/55962)) -- **`[fix](nereids)`** 修复因精度丢失或空值转换导致的比较谓词简化错误([#55884](https://github.com/apache/doris/pull/55884), [#56110](https://github.com/apache/doris/pull/56110)) -- **`[fix](nereids)`** 修复在 Join 重排时抛出“eq 函数不存在”异常的执行错误([#54953](https://github.com/apache/doris/pull/54953), [#55667](https://github.com/apache/doris/pull/55667)) -- **`[fix](nereids)`** 修复窗口表达式别名复用时的表达式 ID 错误([#55286](https://github.com/apache/doris/pull/55286), [#55486](https://github.com/apache/doris/pull/55486)) -- **`[fix](nereids)`** 在与 `count()` 聚合函数比较时,使用 bigint 字面量而非 int([#55545](https://github.com/apache/doris/pull/55545), [#55590](https://github.com/apache/doris/pull/55590)) -- **`[fix](nereids)`** 在生成巨大表达式时停止合并投影([#55293](https://github.com/apache/doris/pull/55293), [#55519](https://github.com/apache/doris/pull/55519)) - - -### 数据加载与导入 - -- **`[fix](load)`** 修复 S3 导入连接检查失败的问题([#56123](https://github.com/apache/doris/pull/56123)) -- **`[fix](load)`** 修复已完成导入任务进度显示不正确的问题([#55509](https://github.com/apache/doris/pull/55509), [#55530](https://github.com/apache/doris/pull/55530)) -- **`[fix](load)`** 修复特定导入错误场景导致 BE 崩溃(core dump)的问题([#55500](https://github.com/apache/doris/pull/55500)) -- **`[fix](load)`** 修复 Routine Load 任务因 MEM_LIMIT_EXCEED 失败后无法再次调度的问题([#55481](https://github.com/apache/doris/pull/55481), [#55616](https://github.com/apache/doris/pull/55616)) - - -### 云与分布式功能 - -- **`[fix](cloud)`** 在 `replayUpdateCloudReplica` 中移除无用的表锁([#55579](https://github.com/apache/doris/pull/55579), [#55955](https://github.com/apache/doris/pull/55955)) -- **`[fix](cloud)`** `calc_sync_versions` 应考虑全量合并(full compaction)([#55630](https://github.com/apache/doris/pull/55630), [#55710](https://github.com/apache/doris/pull/55710)) -- **`[fix](warmup)`** 修复 `CloudTablet::complete_rowset_segment_warmup` 导致的崩溃问题([#55932](https://github.com/apache/doris/pull/55932)) - - -### 数据库操作 - -- **`[fix](database)`** 修复重命名数据库与创建表之间的竞态条件([#55054](https://github.com/apache/doris/pull/55054), [#55991](https://github.com/apache/doris/pull/55991)) -- **`[fix](create table)`** 并发重命名数据库会导致建表及重放失败([#54614](https://github.com/apache/doris/pull/54614), [#56039](https://github.com/apache/doris/pull/56039)) -- **`[fix](table)`** 将删除 editlog 操作移至表锁内执行([#55705](https://github.com/apache/doris/pull/55705), [#55947](https://github.com/apache/doris/pull/55947)) -- **`[fix](schema change)`** 启用轻量级 Schema Change 后,Tablet 列未被重建([#55909](https://github.com/apache/doris/pull/55909), [#55939](https://github.com/apache/doris/pull/55939)) - - -### 数据类型与序列化 - -- **`[fix](variant)`** 修复将空值序列化为 JSON 字符串时的处理逻辑([#55876](https://github.com/apache/doris/pull/55876), [#56138](https://github.com/apache/doris/pull/56138)) -- **`[fix](variant)`** 修复稀疏列为空时的兼容性错误([#55817](https://github.com/apache/doris/pull/55817)) -- **`[fix](variant)`** 增强 Variant 类型的 `max_sparse_column_statistics_size` 配置([#55124](https://github.com/apache/doris/pull/55124), [#55752](https://github.com/apache/doris/pull/55752)) - - -### 外部数据源 - -- **`[fix](paimon)`** 修复 Paimon 原生读取器未使用延迟物化(late materialization)的问题([#55894](https://github.com/apache/doris/pull/55894), [#55917](https://github.com/apache/doris/pull/55917)) -- **`[fix](paimon)`** 通过在缓存键中加入 `dlf.catalog.id` 修复 Paimon DLF Catalog 缓存问题([#55875](https://github.com/apache/doris/pull/55875), [#55888](https://github.com/apache/doris/pull/55888)) -- **`[fix](paimon)`** 修复 Paimon 到 Doris 类型映射中 CHAR/VARCHAR 字段过大的处理问题([#55051](https://github.com/apache/doris/pull/55051), [#55531](https://github.com/apache/doris/pull/55531)) -- **`[fix](maxcompute)`** 修复在下推 MaxCompute 谓词时因表列不存在而抛出 NereidsException 的问题([#55635](https://github.com/apache/doris/pull/55635), [#55746](https://github.com/apache/doris/pull/55746)) -- **`[fix](maxcompute)`** 修复国际用户无法访问 MaxCompute Catalog 的问题([#55256](https://github.com/apache/doris/pull/55256), [#55560](https://github.com/apache/doris/pull/55560)) -- **`[fix](hudi)`** 修复查询仅需分区列(无数据字段)的 Hudi JNI 表时的问题([#55466](https://github.com/apache/doris/pull/55466), [#55662](https://github.com/apache/doris/pull/55662)) -- **`[fix](hive)`** 修复查询 `NULL DEFINED AS ''` 的 Hive Text 表时的问题([#55626](https://github.com/apache/doris/pull/55626), [#55661](https://github.com/apache/doris/pull/55661)) -- **`[fix](iceberg)`** 为元数据扫描器补充缺失的 `iceberg-aws` 依赖([#55741](https://github.com/apache/doris/pull/55741), [#55743](https://github.com/apache/doris/pull/55743)) -- **`[fix](iceberg rest)`** 使用 Iceberg 默认值刷新 OAuth2 Token([#55578](https://github.com/apache/doris/pull/55578), [#55624](https://github.com/apache/doris/pull/55624)) - - -### 内存与资源管理 - -- **`[fix](memtracker)`** 内存未被 MemTracker 正确追踪的问题([#55796](https://github.com/apache/doris/pull/55796), [#55823](https://github.com/apache/doris/pull/55823)) -- **`[fix](mow)`** 修复 `BaseTablet::get_rowset_by_ids()` 中 MOW 导致的崩溃([#55539](https://github.com/apache/doris/pull/55539), [#55601](https://github.com/apache/doris/pull/55601)) -- **`[fix](mow)`** 修复 MOW 聚合缓存版本检查问题([#55330](https://github.com/apache/doris/pull/55330), [#55475](https://github.com/apache/doris/pull/55475)) -- **`[fix](move-memtable)`** 修复因错误跳过段而引起的段数量不匹配问题([#55092](https://github.com/apache/doris/pull/55092), [#55471](https://github.com/apache/doris/pull/55471)) -- **`[fix](filecache)`** 云模式下段缓存不再限制文件描述符数量([#55610](https://github.com/apache/doris/pull/55610), [#55638](https://github.com/apache/doris/pull/55638)) - - -### 安全与加密 - -- **`[fix](tde)`** 修正加密密钥版本的显示([#56092](https://github.com/apache/doris/pull/56092), [#56068](https://github.com/apache/doris/pull/56068)) -- **`[fix](tde)`** 修复与透明数据加密(TDE)相关的问题([#55692](https://github.com/apache/doris/pull/55692)) - - -### 其他修复 - -- **`[fix](mtmv)`** 修复当分区表没有分区时 MTMV 无法刷新的问题([#55468](https://github.com/apache/doris/pull/55468), [#56085](https://github.com/apache/doris/pull/56085)) -- **`[fix](plugin)`** 修复插件目录的兼容性问题([#56060](https://github.com/apache/doris/pull/56060)) -- **`[fix](http stream)`** HTTP 流式接口在 SQL 解析失败时应抛出异常([#55863](https://github.com/apache/doris/pull/55863), [#55891](https://github.com/apache/doris/pull/55891)) -- **`[fix](backup)`** 支持备份元数据/作业信息超过 2GB([#55608](https://github.com/apache/doris/pull/55608), [#55867](https://github.com/apache/doris/pull/55867)) -- **`[fix](mysql protocol)`** 转发到 Master 时正确设置更多语句存在标志([#55711](https://github.com/apache/doris/pull/55711), [#55871](https://github.com/apache/doris/pull/55871)) -- **`[fix](connection)`** 修复因超时断开连接时未清理会话相关数据的问题([#55008](https://github.com/apache/doris/pull/55008), [#55809](https://github.com/apache/doris/pull/55809), [#55396](https://github.com/apache/doris/pull/55396)) -- **`[fix](wal)`** 执行失败时重放 WAL 中止事务失败的问题([#55881](https://github.com/apache/doris/pull/55881), [#55924](https://github.com/apache/doris/pull/55924)) -- **`[fix](restore)`** 清理已恢复的表/分区/资源以降低开销([#55757](https://github.com/apache/doris/pull/55757), [#55784](https://github.com/apache/doris/pull/55784)) -- **`[fix](index)`** 移除未使用的更新索引([#55514](https://github.com/apache/doris/pull/55514), [#55704](https://github.com/apache/doris/pull/55704)) -- **`[fix](txn lazy commit)`** 修复事务延迟提交与 Schema Change 冲突的问题([#55349](https://github.com/apache/doris/pull/55349), [#55701](https://github.com/apache/doris/pull/55701)) -- **`[fix](qe)`** 修复 SSL 模式下的查询错误([#53134](https://github.com/apache/doris/pull/53134), [#55628](https://github.com/apache/doris/pull/55628)) -- **`[fix](catalog)`** 使用位与操作替代 `Math.abs` 以确保生成非负 ID([#55183](https://github.com/apache/doris/pull/55183), [#55689](https://github.com/apache/doris/pull/55689)) -- **`[fix](function)`** 修复 `array_agg_foreach` 函数结果错误的问题([#55075](https://github.com/apache/doris/pull/55075), [#55420](https://github.com/apache/doris/pull/55420)) - - -## 基础设施与开发 - -### 构建与依赖 - -- **`[chore](build)`** 优化构建脚本([#56027](https://github.com/apache/doris/pull/56027), [#56028](https://github.com/apache/doris/pull/56028)) -- **`[chore](thirdparty)`** 将 aws-sdk-cpp 从 1.11.119 升级至 1.11.219([#54780](https://github.com/apache/doris/pull/54780), [#54971](https://github.com/apache/doris/pull/54971)) -- **`[chore](build)`** 更新带 OpenSSL 的 libevent 依赖([#54652](https://github.com/apache/doris/pull/54652), [#54857](https://github.com/apache/doris/pull/54857)) -- **`[chore](config)`** 添加 `brpc::usercode_in_pthread` 配置以支持 ASAN([#54656](https://github.com/apache/doris/pull/54656), [#54829](https://github.com/apache/doris/pull/54829)) - - -### 测试与质量 - -- **`[chore](case)`** 修复若干失败的测试用例([#56140](https://github.com/apache/doris/pull/56140), [#56167](https://github.com/apache/doris/pull/56167)) -- **`[fix](case)`** 修复若干失败的测试用例([#56019](https://github.com/apache/doris/pull/56019), [#56035](https://github.com/apache/doris/pull/56035)) -- **`[fix](test)`** 修改回归测试以提高稳定性并调整预期日志级别([#55169](https://github.com/apache/doris/pull/55169), [#55898](https://github.com/apache/doris/pull/55898)) -- **`[fix](case)`** 修复若干失败的测试用例([#55739](https://github.com/apache/doris/pull/55739), [#55769](https://github.com/apache/doris/pull/55769)) -- **`[fix](case)`** 修复回归测试用例:cse.groovy([#53434](https://github.com/apache/doris/pull/53434), [#55897](https://github.com/apache/doris/pull/55897)) -- **`[fix](cases)`** 修复 `test_hudi_snapshot` 测试失败问题([#55761](https://github.com/apache/doris/pull/55761), [#55791](https://github.com/apache/doris/pull/55791)) -- **`[fix](case)`** 修复若干失败的测试用例([#55811](https://github.com/apache/doris/pull/55811), [#55835](https://github.com/apache/doris/pull/55835)) -- **`[fix](case)`** 等待 MV 任务时应只关注最新任务([#55802](https://github.com/apache/doris/pull/55802), [#55830](https://github.com/apache/doris/pull/55830)) -- **`[fix](case)`** 修复 Variant 构建索引的测试用例([#55613](https://github.com/apache/doris/pull/55613), [#55648](https://github.com/apache/doris/pull/55648)) -- **`[Fix](case)`** 修复 show data p2 测试用例([#55449](https://github.com/apache/doris/pull/55449), [#55494](https://github.com/apache/doris/pull/55494)) -- **`[fix](test)`** 修复异步物化视图的 `show create table` 显示失败问题([#55278](https://github.com/apache/doris/pull/55278), [#55480](https://github.com/apache/doris/pull/55480)) -- **`[fix](test)`** 在云模式下跳过部分测试([#55448](https://github.com/apache/doris/pull/55448), [#55535](https://github.com/apache/doris/pull/55535)) -- **`[Fix](case)`** 修复若干测试用例([#55606](https://github.com/apache/doris/pull/55606), [#55656](https://github.com/apache/doris/pull/55656)) -- **`[test](export)`** 为包含表达式的导出用例增加并行度测试([#55636](https://github.com/apache/doris/pull/55636), [#55659](https://github.com/apache/doris/pull/55659)) -- **`[test](iceberg)`** 新增 Polaris 测试([#55484](https://github.com/apache/doris/pull/55484), [#55557](https://github.com/apache/doris/pull/55557)) -- **`[test](nereids)`** 为 SQL 缓存/有序分区缓存增加单元测试([#55520](https://github.com/apache/doris/pull/55520), [#55536](https://github.com/apache/doris/pull/55536)) -- **`[test](docker)`** 适配 HMS 和 GCS 上的 Paimon([#55473](https://github.com/apache/doris/pull/55473), [#55512](https://github.com/apache/doris/pull/55512)) -- **`[test](warmup)`** 修复不稳定的周期性预热测试用例([#55365](https://github.com/apache/doris/pull/55365), [#55453](https://github.com/apache/doris/pull/55453)) - - -### 安全与配置 - -- **`[chore](sk)`** 对日志中的 `secret key` 进行加密,并隐藏 `access key`([#55241](https://github.com/apache/doris/pull/55241), [#55619](https://github.com/apache/doris/pull/55619)) -- **`[chore](security)`** `user_files_secure_path` 配置项运行时不可更改([#55395](https://github.com/apache/doris/pull/55395), [#55504](https://github.com/apache/doris/pull/55504)) -- **`[chore](tablet)`** `ignore_load_tablet_failure` 默认值设为 true([#55109](https://github.com/apache/doris/pull/55109), [#55441](https://github.com/apache/doris/pull/55441)) - - -### 云基础设施 - -- **`[chore](cloud)`** 更新构建和启动脚本([#56031](https://github.com/apache/doris/pull/56031), [#56064](https://github.com/apache/doris/pull/56064)) -- **`[chore](cloud)`** 支持在事务提交时上报冲突范围([#55340](https://github.com/apache/doris/pull/55340), [#55714](https://github.com/apache/doris/pull/55714)) -- **`[chore](recycler)`** 改进回收器(recycler)指标([#55455](https://github.com/apache/doris/pull/55455), [#55479](https://github.com/apache/doris/pull/55479)) -- **`[chore](logs)`** 打印导出任务拆分 Tablet ID 的日志([#55170](https://github.com/apache/doris/pull/55170), [#55646](https://github.com/apache/doris/pull/55646)) - - -### 第三方与补丁 - -- **`[thirdparty](patch)`** BRPC 强制所有连接使用 SSL([#55658](https://github.com/apache/doris/pull/55658), [#55696](https://github.com/apache/doris/pull/55696)) -- **`[thirdparty](patch)`** 修复启用 SSL 时 BRPC 崩溃的问题([#55649](https://github.com/apache/doris/pull/55649), [#55695](https://github.com/apache/doris/pull/55695)) -- **`[fix](docker)`** 将 Kafka Docker 镜像更新为内部源([#55460](https://github.com/apache/doris/pull/55460), [#55487](https://github.com/apache/doris/pull/55487)) - - -### CI 与性能 - -- **`[ci](perf)`** 更新目标分支的 Docker 镜像引用([#55511](https://github.com/apache/doris/pull/55511)) - - -## 行为变更 - -### 配置变更 - -- **`[opt](hive)`** `hive.recursive_directories` 默认值变更为 `true` -- **`[chore](tablet)`** `ignore_load_tablet_failure` 默认值变更为 `true` -- **`[chore](security)`** `user_files_secure_path` 配置项运行时不可再修改 - - -### 安全增强 - -- **`[chore](sk)`** 为提升安全性,日志中 secret key 现已加密,access key 已隐藏 - - -## 兼容性说明 - -- 本版本与 Apache Doris 3.1.0 保持向后兼容 -- 云恢复功能现已支持从 Doris 2.1 版本迁移至 3.1 版本 -- 增强了 time 与 datetime 类型之间的类型转换支持 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.1/release-3.1.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.1/release-3.1.2.md deleted file mode 100644 index 1a049f9332511..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.1/release-3.1.2.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -{ - "title": "Release 3.1.2", - "language": "zh-CN", - "description": "Apache Doris 3.1.2 版本发布说明,重点介绍存储压缩、云与对象存储、数据湖、Java UDF 等新功能,以及查询执行、存储层优化和多项数据湖、查询引擎与导入相关缺陷修复。" -} ---- - - -## 新功能 - - ### 存储与压缩 - - - **可配置的表压缩类型** —— 支持为每张表单独指定压缩算法。[#56276](https://github.com/apache/doris/pull/56276) - - **自适应压缩写缓存** —— 在基础压缩(base compaction)行集(rowset)刷写过程中动态调整写缓存策略。[#56278](https://github.com/apache/doris/pull/56278) - - ### 云与对象存储 - - - **云模式查询新鲜度控制** —— 新增用户自定义的数据延迟与一致性之间的容忍度配置。[#56390](https://github.com/apache/doris/pull/56390) - - **放宽对象存储端点验证** —— 支持私有或自定义存储端点。[#56641](https://github.com/apache/doris/pull/56641) - - ### 数据湖(Datalake) - - - **支持通过数据湖** **VPC** **端点(**`dlf/datalake-vpc`)访问 OSS**。[#56476](https://github.com/apache/doris/pull/56476) - - **AWS Glue Catalog** 现支持通过 IAM AssumeRole 访问 S3。[#57036](https://github.com/apache/doris/pull/57036) - - **S3 客户端** 已更新为使用 `CustomAwsCredentialsProviderChain`,以改进凭证管理。[#56943](https://github.com/apache/doris/pull/56943) - - ### 功能增强 - - - **Java** **UDF** 现支持 IP 类型。[#56346](https://github.com/apache/doris/pull/56346) - - **BE REST** **API** 新增 `RunningTasks` 输出项,用于任务监控。[#56781](https://github.com/apache/doris/pull/56781) - - **事务监控** 新增 BRPC 写放大(write-amplification)指标。[#56832](https://github.com/apache/doris/pull/56832) - - ## 优化 - - ### 查询执行与优化器 - - - **`COUNT(\*)`** 优化** —— 自动选择最小的列以减少扫描负载。[#56483](https://github.com/apache/doris/pull/56483) - - **压缩过程** 跳过空行集,以提升吞吐量。[#56768](https://github.com/apache/doris/pull/56768) - - **预热(Warmup)统计信息** 新增“跳过的行集”指标,提升可观测性。[#56373](https://github.com/apache/doris/pull/56373) - - ### 存储层 - - - **为稀疏列新增 Variant 列缓存**,以加速读取。[#56730](https://github.com/apache/doris/pull/56730) - - **段(Segment)页脚** 现已缓存在索引页缓存(Index Page Cache)中,以降低延迟。[#56459](https://github.com/apache/doris/pull/56459) - - **回收器(Recycler)** 支持并行清理任务,提高吞吐量。[#56573](https://github.com/apache/doris/pull/56573) - - ### 数据湖 - - - **改进 Paimon 时间旅行(Time Travel)功能**,并修复了模式(schema)不匹配问题。[#56338](https://github.com/apache/doris/pull/56338) - - **优化 Iceberg 扫描错误信息**,并支持嵌套命名空间。[#56370](https://github.com/apache/doris/pull/56370), [#57035](https://github.com/apache/doris/pull/57035) - - **移除旧版 DLF Catalog 属性**。[#56196](https://github.com/apache/doris/pull/56196), [#56505](https://github.com/apache/doris/pull/56505) - - **JSON** **导入** 默认采用逐行解析模式(row-by-row parsing mode)处理基于行的数据。[#56736](https://github.com/apache/doris/pull/56736) - - ## 缺陷修复 - - ### 数据湖 - - - 修复 **Iceberg 系统表类加载器(classloader)错误**。[#56220](https://github.com/apache/doris/pull/56220) - - 修复 **Iceberg 分区表在无分区值时失败的问题**。[#57043](https://github.com/apache/doris/pull/57043) - - 修复 **S3A Catalog 未正确使用 IAM AssumeRole 配置文件的问题**。[#56250](https://github.com/apache/doris/pull/56250) - - 为多配置对象存储 Catalog **禁用 Hadoop FileSystem 缓存**。[#57153](https://github.com/apache/doris/pull/57153) - - ### 查询执行与 SQL 引擎 - - - 修复 `COUNT` 下推逻辑错误。[#56482](https://github.com/apache/doris/pull/56482) - - 修复 `UNION` 本地 shuffle 行为异常。[#56556](https://github.com/apache/doris/pull/56556) - - 修复 OLAP 存储类型中 `IN` 谓词导致的崩溃问题。[#56834](https://github.com/apache/doris/pull/56834) - - 修复 `datetimev1` 类型下 `timestampdiff` 计算错误。[#56893](https://github.com/apache/doris/pull/56893) - - 修复 `explode()` 函数导致的崩溃问题。[#57002](https://github.com/apache/doris/pull/57002) - - ### 存储与导入 - - - 修复源文件不存在时 S3 导入检查失败的问题。[#56376](https://github.com/apache/doris/pull/56376) - - 修复 FileCache 清理时崩溃的问题。[#56584](https://github.com/apache/doris/pull/56584) - - 修复 MOW 压缩模式下删除位图(delete bitmap)未被清除的问题。[#56785](https://github.com/apache/doris/pull/56785) - - 修复小文件使用 Outfile 的 bz2 压缩时失败的问题。[#57041](https://github.com/apache/doris/pull/57041) - - ### 云与回收机制 - - - 修复预热(Warmup)跳过多段(multi-segment)行集的问题。[#56680](https://github.com/apache/doris/pull/56680) - - 修复 CloudTablet 预热过程中因引用捕获导致的 core dump 问题。[#56627](https://github.com/apache/doris/pull/56627) - - 修复回收器(Recycler)清理任务中的空指针崩溃问题。[#56773](https://github.com/apache/doris/pull/56773) - - 修复云模式下未捕获的分区边界错误。[#56968](https://github.com/apache/doris/pull/56968) - - ### 系统及其他 - - - 修复 FE 中 Prometheus 指标格式错误的问题。[#57082](https://github.com/apache/doris/pull/57082) - - 修复 FE 重启后自增列值不正确的问题。[#57118](https://github.com/apache/doris/pull/57118) - - 修复 `SHOW CREATE VIEW` 语句缺失列定义的问题。[#57045](https://github.com/apache/doris/pull/57045) - - 修复 HDFS Reader 在采样 Profile 数据时崩溃的问题。[#56950](https://github.com/apache/doris/pull/56950) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.1/release-3.1.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.1/release-3.1.3.md deleted file mode 100644 index c93769af1cb93..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.1/release-3.1.3.md +++ /dev/null @@ -1,122 +0,0 @@ ---- -{ - "title": "Release 3.1.3", - "language": "zh-CN", - "description": "Apache Doris 3.1.3 带来了以下主要改进:" -} ---- - -## 新功能 - -### 存储与文件系统 - -- 升级 **libhdfs 至 3.4.2**([#57638](https://github.com/apache/doris/pull/57638)) -- 为 **S3 Reader** 增加 `TotalGetRequestTime` 性能指标([#57636](https://github.com/apache/doris/pull/57636)) - -### Catalog - -- 支持 **MaxCompute Catalog(project-schema-table 模式)**([#57286](https://github.com/apache/doris/pull/57286)) -- 支持 **Azure Blob Storage**([#57219](https://github.com/apache/doris/pull/57219)) -- 支持 **在转换方言后的 SQL 执行错误后,重试原始 SQL**([#57498](https://github.com/apache/doris/pull/57498)) - -### 云模式 - -- 支持 **balance sync 热身机制**([#57666](https://github.com/apache/doris/pull/57666)) -- 支持 **同一集群内 BE 间的 peer cache 读取**([#57672](https://github.com/apache/doris/pull/57672)) - -### SQL 引擎与优化器 - -- 在生成执行计划前检查 **SQL 正则屏蔽规则**([#57706](https://github.com/apache/doris/pull/57706)) -- **EXPLODE 函数** 支持 **struct 类型展开**([#57827](https://github.com/apache/doris/pull/57827)) - -## 优化 - -### 查询执行与优化器 - -- 优化 **variant 类型仅含 NULL 值时的 cast 性能**([#57161](https://github.com/apache/doris/pull/57161)) -- 优化 **FROM_UNIXTIME 函数性能**([#57573](https://github.com/apache/doris/pull/57573)) -- 改进 **优雅下线行为与查询重试逻辑**([#57805](https://github.com/apache/doris/pull/57805)) - -### 存储与 Compaction - -- **MergeIO 读取切片大小** 支持配置化([#57159](https://github.com/apache/doris/pull/57159)) -- 为冷数据 **Compaction 增加评分阈值**([#57217](https://github.com/apache/doris/pull/57217)) -- 为小内存任务保护机制增加 **可配置阈值**([#56994](https://github.com/apache/doris/pull/56994)) -- 优化 **jemalloc 配置**,减少缺页中断([#57152](https://github.com/apache/doris/pull/57152)) - -### 云模式 - -- 暴露 **云端 rebalance 指标**([#57352](https://github.com/apache/doris/pull/57352)) -- 优化 **warm-up 任务创建逻辑**([#57865](https://github.com/apache/doris/pull/57865)) -- 提升 **warm-up 与 peer read 效率**([#57554](https://github.com/apache/doris/pull/57554),[#57807](https://github.com/apache/doris/pull/57807)) - -### 索引与搜索 - -- 支持 **自定义分词器(char_filter、basic 和 ICU tokenizer)**([#57137](https://github.com/apache/doris/pull/57137)) -- 自定义分词器支持 **内置 analyzer 名称**([#57727](https://github.com/apache/doris/pull/57727)) - -## Bug 修复 - -### 存储与文件 I/O - -- 修复 **添加 key 列时 segcompaction 崩溃问题**([#57212](https://github.com/apache/doris/pull/57212)) -- 修复 **Parquet RLE_DICTIONARY 解码性能问题**([#57614](https://github.com/apache/doris/pull/57614)) -- 修复 **schema change 表达式缓存误用问题**([#57517](https://github.com/apache/doris/pull/57517)) -- 使用 **ForkJoinPool 重构 tablet report 实现**([#57927](https://github.com/apache/doris/pull/57927)) - -### 云模式 - -- 修复 **pipeline 任务数量计算错误**([#57261](https://github.com/apache/doris/pull/57261)) -- 修复 **rebalance 残留指标未清理问题**([#57438](https://github.com/apache/doris/pull/57438)) -- 在 rebalance 未初始化时 **跳过 tablet report**([#57393](https://github.com/apache/doris/pull/57393)) -- 修复 **domain 用户默认集群上报错误**([#57555](https://github.com/apache/doris/pull/57555)) -- 修复 **私有 endpoint 配置错误**([#57675](https://github.com/apache/doris/pull/57675)) -- 修复 **peer read 错误与线程处理问题**([#57910](https://github.com/apache/doris/pull/57910),[#57807](https://github.com/apache/doris/pull/57807)) -- 修复 **filecache 指标与 microbench 问题**([#57535](https://github.com/apache/doris/pull/57535),[#57536](https://github.com/apache/doris/pull/57536)) - -### Catalog - -- 修复 **MaxCompute 谓词下推空指针错误**([#57567](https://github.com/apache/doris/pull/57567)) -- 修复 **Iceberg client.region 与 REST 认证问题**([#57539](https://github.com/apache/doris/pull/57539)) -- 修复 **Iceberg Catalog NPE 与查询异常**([#57796](https://github.com/apache/doris/pull/57796),[#57790](https://github.com/apache/doris/pull/57790)) -- 修复 **Paimon S3 前缀与配置不一致问题**([#57526](https://github.com/apache/doris/pull/57526)) -- 修复 **JDBC Catalog** **`zeroDateTimeBehavior`** **参数兼容性问题**([#57731](https://github.com/apache/doris/pull/57731)) -- 修复 **Parquet Schema 分析错误**([#57500](https://github.com/apache/doris/pull/57500)) -- 修复 **Parquet 所有 row group 被过滤问题**([#57646](https://github.com/apache/doris/pull/57646)) -- 修复 **CSV 读取 escape=enclose 时的结果错误**([#57762](https://github.com/apache/doris/pull/57762)) -- 防止 **Catalog 被误删出刷新队列**([#57671](https://github.com/apache/doris/pull/57671)) -- 修复 **max_meta_object_cache_num 必须大于 0 的配置问题**([#57793](https://github.com/apache/doris/pull/57793)) - -### SQL 引擎与优化器 - -- 修复 **FROM_UNIXTIME + decimal 常量折叠错误**([#57606](https://github.com/apache/doris/pull/57606)) -- 修复 **MV 重写在 group sets + filter 下失败问题**([#57674](https://github.com/apache/doris/pull/57674)) -- 修复 **prepare statement 仅 explain SQL 的问题**([#57504](https://github.com/apache/doris/pull/57504)) -- 在 **Profile.releaseMemory()** 中释放物理计划内存([#57316](https://github.com/apache/doris/pull/57316)) -- 修复 **group sets 下聚合消除错误**([#57885](https://github.com/apache/doris/pull/57885)) -- 修复 **LargeInt 溢出(max_value+1)问题**([#57351](https://github.com/apache/doris/pull/57351)) -- 修复 **decimal256 转 float 溢出问题**([#57503](https://github.com/apache/doris/pull/57503)) - -### 网络与平台 - -- 修复 **MySQL SSL unwrap 无限循环问题**([#57599](https://github.com/apache/doris/pull/57599)) -- 禁用 **MySQL TLS renegotiation**([#57748](https://github.com/apache/doris/pull/57748)) -- 修复 **uint128 构造未对齐问题**([#57430](https://github.com/apache/doris/pull/57430)) -- 修复 **JNI 本地/全局引用泄漏**([#57597](https://github.com/apache/doris/pull/57597)) -- **Scanner.close()** 增加线程安全保护([#57644](https://github.com/apache/doris/pull/57644)) -- 修复 **Exchange 节点空指针导致的崩溃问题**([#57698](https://github.com/apache/doris/pull/57698)) - -## 杂项 - -- 废弃 **LakeSoul 外部 Catalog 支持**([#57163](https://github.com/apache/doris/pull/57163)) - -## 总结 - -Apache Doris **3.1.3** 带来了以下主要改进: - -- **存储兼容性增强**(支持 Azure Blob、Hadoop 3.4.2、S3 性能指标) -- **云端性能与可靠性提升**(warm-up、rebalance、peer cache) -- **SQL 优化器稳定性增强** -- **依赖升级与安全性改进** - -本次版本显著提升了 Doris 在 **稳定性、性能与云原生融合能力** 方面的整体表现 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.1/release-3.1.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.1/release-3.1.4.md deleted file mode 100644 index 3353ae9e39867..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/releasenotes/v3.1/release-3.1.4.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -{ - "title": "Release 3.1.4", - "language": "zh-CN", - "description": "Apache Doris 3.1.4 版本正式发布。本次更新在查询优化、数据湖分析、存算分离和系统安全方面带来多项功能增强与性能提升。同时,修复了物化视图、数据导入和文件缓存等多个关键问题,提升了系统的整体稳定性。" -} ---- - -# 3.1.4 release note - -## 新功能(New Features) - -### 查询与优化器 - -- 支持 Dereference Expression(解引用表达式)[#58550](https://github.com/apache/doris/pull/58550) - -### 数据湖 - -- Catalog 支持通过 `AwsCredentialsProviderChain` 加载凭证 [#59054](https://github.com/apache/doris/pull/59054) -- 支持将 `credentials_provider_type` 传递给 BE 用于 S3 访问 [#59158](https://github.com/apache/doris/pull/59158) -- 支持 Elasticsearch flatten 类型 [#58793](https://github.com/apache/doris/pull/58793) - -### 查询审计与可观测性 - -- 支持在审计日志中对 SQL 进行加密存储 [#58508](https://github.com/apache/doris/pull/58508) -- QueryPlanAction 支持将表查询计划中的 SQL 写入审计日志 [#59121](https://github.com/apache/doris/pull/59121) -- 为 Nereids 解析的语句生成 SQL Digest [#59215](https://github.com/apache/doris/pull/59215) - -## 优化(Optimizations & Improvements) - -### 查询优化器 - -- 调整类型推导与强制转换(coercion)行为,提升表达式一致性 [#57961](https://github.com/apache/doris/pull/57961) -- 防止分析任务污染列统计信息缓存,提升统计准确性 [#58742](https://github.com/apache/doris/pull/58742) -- 优化多 distinct 聚合函数的拆分执行能力 [#58973](https://github.com/apache/doris/pull/58973) -- 优化 Join / Set / CTE / 谓词下推规则,避免不必要的执行计划复杂化 [#58664](https://github.com/apache/doris/pull/58664), [#59141](https://github.com/apache/doris/pull/59141), [#59151](https://github.com/apache/doris/pull/59151) - -### 数据湖 - -- 加速 Hive 分区裁剪与写入性能,显著降低大分区表写入延迟 [#58886](https://github.com/apache/doris/pull/58886), [#58932](https://github.com/apache/doris/pull/58932) -- Iceberg 支持忽略 dangling delete 以提升 count 下推能力 [#59069](https://github.com/apache/doris/pull/59069) -- Iceberg REST Catalog 增强连通性检测与网络超时控制 [#58433](https://github.com/apache/doris/pull/58433), [#58434](https://github.com/apache/doris/pull/58434) -- Paimon 增量查询行为与 Spark 对齐(单 snapshot 场景) [#58253](https://github.com/apache/doris/pull/58253) - -### 存算分离 - -- 支持动态修改 tablet rebalancer 配置,提升云环境运维灵活性 [#58376](https://github.com/apache/doris/pull/58376) -- 优化存算分离场景下 TopN 查询,避免不必要的远程广播读 [#58112](https://github.com/apache/doris/pull/58112), [#58155](https://github.com/apache/doris/pull/58155) -- 提升升级过程中的 tablet 性能一致性,降低热点节点风险 [#58247](https://github.com/apache/doris/pull/58247) -- Schema Change 过程自适应 File Cache,降低大表变更对缓存命中率的影响 [#58622](https://github.com/apache/doris/pull/58622) -- 在 Profile 中增加下载等待时间指标,提升 IO 排查能力 [#58870](https://github.com/apache/doris/pull/58870) -- File Cache 增强调试能力,支持 LRU Dump [#58871](https://github.com/apache/doris/pull/58871) - -### 安全与稳定性 - -- Glue Catalog 强制使用 HTTPS,提升外部 Catalog 安全性 [#58366](https://github.com/apache/doris/pull/58366) -- Create Stage 增加 SSRF 安全校验 [#58874](https://github.com/apache/doris/pull/58874) - -## Bug 修复 - -### 查询优化器 - -- 修复 TopN / Limit / Join 规则在特定场景下可能触发的死循环问题 [#58697](https://github.com/apache/doris/pull/58697) -- 修复聚合、窗口函数、Repeat、类型转换等逻辑错误 [#58080](https://github.com/apache/doris/pull/58080), [#58114](https://github.com/apache/doris/pull/58114), [#58330](https://github.com/apache/doris/pull/58330), [#58548](https://github.com/apache/doris/pull/58548) - -### 物化视图 - -- 禁止在 MOW 表上创建包含 value 列条件的非法物化视图 [#57937](https://github.com/apache/doris/pull/57937) - -### 导入 - -- 修复 JSON Reader 多次调用导致的未定义行为,避免潜在数据错误 [#58192](https://github.com/apache/doris/pull/58192) -- 修复 Broker Load 中 `COLUMNS FROM PATH` 相关行为异常 [#58351](https://github.com/apache/doris/pull/58351), [#58904](https://github.com/apache/doris/pull/58904) -- 修复 Group Commit 在节点下线或退役场景下的异常行为 [#59118](https://github.com/apache/doris/pull/59118) -- 修复 Load / Delete / Partial Update 在部分边界条件下失败的问题 [#58553](https://github.com/apache/doris/pull/58553), [#58230](https://github.com/apache/doris/pull/58230), [#59096](https://github.com/apache/doris/pull/59096) - -### 存算分离 - -- 修复存算分离场景下 Tablet Drop、Compaction、首次启动慢等稳定性问题 [#58157](https://github.com/apache/doris/pull/58157), [#58195](https://github.com/apache/doris/pull/58195), [#58761](https://github.com/apache/doris/pull/58761) -- 修复 File Cache 在异常或 BE 宕机场景下可能导致的崩溃与资源泄漏问题 [#58196](https://github.com/apache/doris/pull/58196), [#58819](https://github.com/apache/doris/pull/58819), [#59058](https://github.com/apache/doris/pull/59058) -- 修复 Compaction 后 Segment Footer Cache 未清理导致的读行为异常问题 [#59185](https://github.com/apache/doris/pull/59185) -- 修复 Copy Into 在 ORC / Parquet 格式下执行失败的问题 [#58551](https://github.com/apache/doris/pull/58551) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/all-release.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/all-release.md deleted file mode 100644 index 88aafa417c697..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/all-release.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -{ - "title": "最新发布", - "language": "zh-CN", - "description": "本文列出了近一年内所有已发布的 Apache Doris 版本,按发布时间倒序呈现。" -} ---- - -本文列出了近一年内所有已发布的 Apache Doris 版本,按发布时间倒序呈现。 - - - -:::tip 最新发布 -🎉 4.0.4 版本已于 2026 年 3 月 11 日正式发布,详情可查看[版本发布](../releasenotes/v4.0/release-4.0.4)。新版本通过 AI 与搜索能力的深度融合、离线计算的稳定性提升、性能与易用性的双重优化,进一步拓宽了数据库的应用边界,可更好地支撑企业从传统 BI 分析到 AI 智能检索、从实时查询到大规模离线批处理的全场景数据分析需求。无论是互联网、金融、零售等行业的实时报表、用户行为分析,还是政务、医疗领域的文档检索、大规模数据批处理,新版本 Doris 都将为用户提供更高效、更可靠的数据分析体验。 -
- -🎉 3.1.4 版本已于 2025 年 12 月 19 日正式发布,详情可查看[版本发布](../releasenotes/v3.1/release-3.1.4)。Apache Doris 3.1 是半结构化分析领域的里程碑,引入了稀疏列和模板化 schema,显著提升了查询和索引性能。它还显著增强了湖仓一体能力,通过异步物化视图和优化连接属性,实现了数据湖和数据仓的无缝集成。新版本在存储引擎上提供了灵活列更新,并通过分区裁剪和基于数据特征的优化器,实现了查询性能的巨大飞跃。 -
- -🎉 3.0.8 版本已于 2025 年 09 月 19 日正式发布,详情可查看[版本发布](../releasenotes/v3.0/release-3.0.8)。从 3.0 版本开始,Apache Doris 除了支持计算存储一体模式外,还支持计算存储分离模式进行集群部署。借助将计算和存储层解耦的云原生架构,用户可以在多个计算集群之间实现查询负载的物理隔离,以及读写负载的隔离。 - -
- -🎉 2.1.11 版本现已于 2025 年 08 月 15 日正式发布,详情可查看[版本发布](../releasenotes/v2.1/release-2.1.11)。子查询性能方面 2.1 版本开箱即用查询的性能提高了 100%;在数据湖分析场景方面,相对于 Trino 和 Spark 分别有 4-6 倍性能提升;在半结构化数据分析场景中提供了强有力的支持,包括新的 Variant 类型和一系列分析函数。此外,2.1 版本起支持异步物化视图以加速查询,优化了大规模实时写入,并通过稳定性和运行时 SQL 资源跟踪改进了工作负载管理。 - -::: - -
- -- [2026-03-11, Apache Doris 4.0.4 版本发布](../releasenotes/v4.0/release-4.0.4.md) - -- [2026-02-02, Apache Doris 4.0.3 版本发布](../releasenotes/v4.0/release-4.0.3.md) - -- [2025-12-29, Apache Doris 3.1.4 版本发布](../releasenotes/v3.1/release-3.1.4.md) - -- [2025-12-15, Apache Doris 4.0.2 版本发布](../releasenotes/v4.0/release-4.0.2.md) - -- [2025-11-24, Apache Doris 3.1.3 版本发布](../releasenotes/v3.1/release-3.1.3.md) - -- [2025-11-08, Apache Doris 4.0.1 版本发布](../releasenotes/v4.0/release-4.0.1.md) - -- [2025-10-27, Apache Doris 3.1.2 版本发布](../releasenotes/v3.1/release-3.1.2.md) - -- [2025-10-14, Apache Doris 4.0.0 版本发布](../releasenotes/v4.0/release-4.0.0.md) - -- [2025-09-26, Apache Doris 3.1.1 版本发布](../releasenotes/v3.1/release-3.1.1.md) - -- [2025-09-19, Apache Doris 3.0.8 版本发布](../releasenotes/v3.0/release-3.0.8.md) - -- [2025-09-04, Apache Doris 3.1.0 版本发布](../releasenotes/v3.1/release-3.1.0.md) - -- [2025-08-25, Apache Doris 3.0.7 版本发布](../releasenotes/v3.0/release-3.0.7.md) - -- [2025-08-15, Apache Doris 2.1.11 版本发布](../releasenotes/v2.1/release-2.1.11.md) - -- [2025-06-16, Apache Doris 3.0.6 版本发布](../releasenotes/v3.0/release-3.0.6.md) - -- [2025-05-17, Apache Doris 2.1.10 版本发布](../releasenotes/v2.1/release-2.1.10.md) - -- [2025-04-28, Apache Doris 3.0.5 版本发布](../releasenotes/v3.0/release-3.0.5.md) - -- [2025-04-02, Apache Doris 2.1.9 版本发布](../releasenotes/v2.1/release-2.1.9.md) - -- [2025-02-28, Apache Doris 3.0.4 版本发布](../releasenotes/v3.0/release-3.0.4.md) - -- [2025-01-24, Apache Doris 2.1.8 版本发布](../releasenotes/v2.1/release-2.1.8.md) - -- [2024-12-02, Apache Doris 3.0.3 版本发布](../releasenotes/v3.0/release-3.0.3.md) - -- [2024-11-10, Apache Doris 2.1.7 版本发布](../releasenotes/v2.1/release-2.1.7.md) - -- [2024-10-15, Apache Doris 3.0.2 版本发布](../releasenotes/v3.0/release-3.0.2.md) - -- [2024-09-30, Apache Doris 2.0.15 版本发布](../releasenotes/v2.0/release-2.0.15.md) - -- [2024-09-10, Apache Doris 2.1.6 版本发布](../releasenotes/v2.1/release-2.1.6.md) - -- [2024-08-23, Apache Doris 3.0.1 版本发布](../releasenotes/v3.0/release-3.0.1.md) - -- [2024-07-24, Apache Doris 2.1.5 版本发布](../releasenotes/v2.1/release-2.1.5.md) - -- [2024-07-17, Apache Doris 2.0.13 版本发布](../releasenotes/v2.0/release-2.0.13.md) - -- [2024-06-27, Apache Doris 2.0.12 版本发布](../releasenotes/v2.0/release-2.0.12.md) - -- [2024-06-26, Apache Doris 2.1.4 版本发布](../releasenotes/v2.1/release-2.1.4.md) - -- [2024-06-05, Apache Doris 2.0.11 版本发布](../releasenotes/v2.0/release-2.0.11.md) - -- [2024-05-21, Apache Doris 2.1.3 版本发布](../releasenotes/v2.1/release-2.1.3.md) - -- [2024-05-16, Apache Doris 2.0.10 版本发布](../releasenotes/v2.0/release-2.0.10.md) - -- [2024-04-23, Apache Doris 2.0.9 版本发布](../releasenotes/v2.0/release-2.0.9.md) - -- [2024-04-12, Apache Doris 2.1.2 版本发布](../releasenotes/v2.1/release-2.1.2.md) - -- [2024-04-09, Apache Doris 2.0.8 版本发布](../releasenotes/v2.0/release-2.0.8.md) - -- [2024-04-03, Apache Doris 2.1.1 版本发布](../releasenotes/v2.1/release-2.1.1.md) - -- [2024-03-26, Apache Doris 2.0.7 版本发布](../releasenotes/v2.0/release-2.0.7.md) - -- [2024-03-12, Apache Doris 2.1.0 版本发布](../releasenotes/v2.1/release-2.1.0.md) - -- [2024-03-11, Apache Doris 2.0.6 版本发布](../releasenotes/v2.0/release-2.0.6.md) - -- [2024-02-28, Apache Doris 2.0.5 版本发布](../releasenotes/v2.0/release-2.0.5.md) - -- [2024-01-26, Apache Doris 2.0.4 版本发布](../releasenotes/v2.0/release-2.0.4.md) - - - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.0.md deleted file mode 100644 index 502cdc294dda0..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.0.md +++ /dev/null @@ -1,375 +0,0 @@ ---- -{ - "title": "Release 1.1.0", - "language": "zh-CN", - "description": "在 1.1 版本中,我们实现了计算层和存储层的全面向量化、正式将向量化执行引擎作为稳定功能进行全面启用,所有查询默认通过向量化执行引擎来执行,性能较之前版本有 3-5 倍的巨大提升;增加了直接访问 Apache Iceberg 外部表的能力," -} ---- - -在 1.1 版本中,**我们实现了计算层和存储层的全面向量化、正式将向量化执行引擎作为稳定功能进行全面启用**,所有查询默认通过向量化执行引擎来执行,**性能较之前版本有 3-5 倍的巨大提升**;增加了直接访问 Apache Iceberg 外部表的能力,支持对 Doris 和 Iceberg 中的数据进行联邦查询,**扩展了 Apache Doris 在数据湖上的分析能力**;在原有的 LZ4 基础上增加了 ZSTD 压缩算法,进一步提升了数据压缩率;**修复了诸多之前版本存在的性能与稳定性问题**,使系统稳定性得到大幅提升。欢迎大家下载使用。 - -## 升级说明 - -### 向量化执行引擎默认开启 - -在 Apache Doris 1.0 版本中,我们引入了向量化执行引擎作为实验性功能。用户需要在执行 SQL 查询手工开启,通过 `set batch_size = 4096` 和 `set enable_vectorized_engine = true `配置 session 变量来开启向量化执行引擎。 - -在 1.1 版本中,我们正式将向量化执行引擎作为稳定功能进行了全面启用,session 变量`enable_vectorized_engine` 默认设置为 true,无需用户手工开启,所有查询默认通过向量化执行引擎来执行。 - -### BE 二进制文件更名 - -BE 二进制文件从原有的 palo_be 更名为 doris_be,如果您以前依赖进程名称进行集群管理和其他操作,请注意修改相关脚本。 - -### Segment 存储格式升级 - -Apache Doris 早期版本的存储格式为 Segment V1,在 0.12 版本中我们实现了新的存储格式 Segment V2,引入了 Bitmap 索引、内存表、Page Cache、字典压缩以及延迟物化等诸多特性。从 0.13 版本开始,新建表的默认存储格式为 Segment V2,与此同时也保留了对 Segment V1 格式的兼容。 - -为了保证代码结构的可维护性、降低冗余历史代码带来的额外学习及开发成本,我们决定从下一个版本起不再支持 Segment v1 存储格式,预计在 Apache Doris 1.2 版本中将删除这部分代码。 - - -### 正常升级 - -正常升级操作请按照官网上的集群升级文档进行滚动升级即可。 - -[https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade](https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade) - -## 重要功能 - -### 支持数据随机分布 [实验性功能] [#8259](https://github.com/apache/doris/pull/8259) [#8041](https://github.com/apache/doris/pull/8041) - -在某些场景中(例如日志分析类场景),用户可能无法找到一个合适的分桶键来避免数据倾斜,因此需要由系统提供额外的分布方式来解决数据倾斜的问题。 - -因此通过在建表时可以不指定具体分桶键,选择使用随机分布对数据进行分桶`DISTRIBUTED BY random BUCKETS number`,数据导入时将会随机写入单个 Tablet,以减少加载过程中的数据扇出,并减少资源开销、提升系统稳定性。 - -### 支持创建 Iceberg 外部表 [实验性功能] [#7391](https://github.com/apache/doris/pull/7391) [#7981](https://github.com/apache/doris/pull/7981) [#8179](https://github.com/apache/doris/pull/8179) - -Iceberg 外部表为 Apache Doris 提供了直接访问存储在 Iceberg 数据的能力。通过 Iceberg 外部表可以实现对本地存储和 Iceberg 存储的数据进行联邦查询,省去繁琐的数据加载工作、简化数据分析的系统架构,并进行更复杂的分析操作。 - -在 1.1 版本中,Apache Doris 支持了创建 Iceberg 外部表并查询数据,并支持通过 REFRESH 命令实现 Iceberg 数据库中所有表 Schema 的自动同步。 - -### 增加 ZSTD 压缩算法 [#8923](https://github.com/apache/doris/pull/8923) [#9747](https://github.com/apache/doris/pull/9747) - -目前 Apache Doris 中数据压缩方法是系统统一指定的,默认为 LZ4。针对部分对数据存储成本敏感的场景,例如日志类场景,原有的数据压缩率需求无法得到满足。 - -在 1.1 版本中,用户建表时可以在表属性中设置`"compression"="zstd"` 将压缩方法指定为 ZSTD。在 25GB 1.1 亿行的文本日志测试数据中,**最高获得了近 10 倍的压缩率、较原有压缩率提升了 53%,从磁盘读取数据并进行解压缩的速度提升了 30%** 。 - -## 功能优化 - -### **更全面的向量化支持** - -在 1.1 版本中,我们实现了计算层和存储层的全面向量化,包括: - -- 实现了所有内置函数的向量化 - -- 存储层实现向量化,并支持了低基数字符串列的字典优化 - -- 优化并解决了向量化引擎的大量性能和稳定性问题。 - -我们对 Apache Doris 1.1 版本与 0.15 版本分别在 SSB 和 TPC-H 标准测试数据集上进行了性能测试: - -- 在 SSB 测试数据集的全部 13 个 SQL 上,1.1 版本均优于 0.15 版本,整体性能约提升了 3 倍,解决了 1.0 版本中存在的部分场景性能劣化问题; - -- 在 TPC-H 测试数据集的全部 22 个 SQL 上,1.1 版本均优于 0.15 版本,整体性能约提升了 4.5 倍,部分场景性能达到了十余倍的提升; - -![release-note-1.1.0-SSB](/images/release-note-1.1.0-SSB.png) - -

SSB 测试数据集

- -![release-note-1.1.0-TPC-H](/images/release-note-1.1.0-TPC-H.png) - -

TPC-H 测试数据集

- -**性能测试报告:** - -[https://doris.apache.org/zh-CN/docs/benchmark/ssb](https://doris.apache.org/zh-CN/docs/benchmark/ssb) - -[https://doris.apache.org/zh-CN/docs/benchmark/tpch](https://doris.apache.org/zh-CN/docs/benchmark/tpch) - -### Compaction 逻辑优化与实时性保证 [#10153](https://github.com/apache/doris/pull/10153) - -在 Apache Doris 中每次 Commit 都会产生一个数据版本,在高并发写入场景下,容易出现因数据版本过多且 Compaction 不及时而导致的 -235 错误,同时查询性能也会随之下降。 - -在 1.1 版本中我们引入了 QuickCompaction,增加了主动触发式的 Compaction 检查,在数据版本增加的时候主动触发 Compaction,同时通过提升分片元信息扫描的能力,快速发现数据版本过多的分片并触发 Compaction。通过主动式触发加被动式扫描的方式,彻底解决数据合并的实时性问题。 - -同时,针对高频的小文件 Cumulative Compaction,实现了 Compaction 任务的调度隔离,防止重量级的 Base Compaction 对新增数据的合并造成影响。 - -最后,针对小文件合并,优化了小文件合并的策略,采用梯度合并的方式,每次参与合并的文件都属于同一个数据量级,防止大小差别很大的版本进行合并,逐渐有层次的合并,减少单个文件参与合并的次数,能够大幅地节省系统的 CPU 消耗。 - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a6d5c50f16a048f3ab27357bc97b7461~tplv-k3u1fbpfcp-zoom-1.image) - -在数据上游维持每秒 10w 的写入频率时(20 个并发写入任务、每个作业 5000 行、Checkpoint 间隔 1s),1.1 版本表现如下: - -- 数据快速合并:Tablet 数据版本维持在 50 以下,Compaction Score 稳定。相较于之前版本高并发写入时频繁出现的 -235 问题,**Compaction 合并效率有 10 倍以上的提升**。 - - - -- CPU 资源消耗显著降低:针对小文件 Compaction 进行了策略优化,在上述高并发写入场景下,**CPU 资源消耗降低 25%** ; - - - -- 查询耗时稳定:提升了数据整体有序性,大幅降低查询耗时的波动性,**高并发写入时的查询耗时与仅查询时持平**,查询性能较之前版本**有 3-4 倍提升**。 - -![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1c79ee9efba0416d81cc7bed1a349fdf~tplv-k3u1fbpfcp-zoom-1.image) - -### Parquet 和 ORC 文件的读取效率优化 [#9472](https://github.com/apache/doris/pull/9472) - -通过调整 Arrow 参数,利用 Arrow 的多线程读取能力来加速 Arrow 对每个 row_group 的读取,并修改成 SPSC 模型,通过预取来降低等待网络的代价。优化前后对 Parquet 文件导入的性能有 4 ~ 5 倍的提升。 - -### 更安全的元数据 Checkpoint [#9180](https://github.com/apache/doris/pull/9180) [#9192](https://github.com/apache/doris/pull/9192) - -通过对元数据检查点后生成的 image 文件进行双重检查和保留历史 image 文件的功能,解决了 image 文件错误导致的元数据损坏问题。 - -## Bug 修复 - -### 修复由于缺少数据版本而无法查询数据的问题。(严重)[#9267](https://github.com/apache/doris/pull/9267) [#9266](https://github.com/apache/doris/pull/9266) - -问题描述:`failed to initialize storage reader. tablet=924991.xxxx, res=-214, backend=xxxx` - -该问题是在版本 1.0 中引入的,可能会导致多个副本的数据版本丢失。 - -### 解决了资源隔离对加载任务的资源使用限制无效的问题(中等)[#9492](https://github.com/apache/doris/pull/9492) - -在 1.1 版本中,Broker Load 和 Routine Load 将使用具有指定资源标记的 BE 节点进行加载。 - -### 修复使用 HTTP BRPC 超过 2GB 传输网络数据包导致数据传输错误的问题(中等)[#9770](https://github.com/apache/doris/pull/9770) - -在以前的版本中,当通过 BRPC 在后端之间传输的数据超过 2GB 时,可能会导致数据传输错误。 - -## 其他 - -### 禁用 Mini Load - -Mini Load 与 Stream Load 的导入实现方式完全一致,都是通过 HTTP 协议提交和传输数据,在导入功能支持上 Stream Load 更加完备。 - -在 1.1 版本中,默认情况下 Mini Load 接口 `/_load` 将处于禁用状态,请统一使用 Stream Load 来替换 Mini Load。您也可以通过关闭 FE 配置项 `disable_mini_load` 来重新启用 Mini Load 接口。在版本 1.2 中,将彻底删除 Mini Load。 - -### 完全禁用 SegmentV1 存储格式 - -在 1.1 版本中将不再允许新创建 SegmentV1 存储格式的数据,现有数据仍可以继续正常访问。 - -您可以使用 ADMIN SHOW TABLET STORAGE FORMAT 语句检查集群中是否仍然存在 SegmentV1 格式的数据,如果存在请务必通过数据转换命令转换为 SegmentV2。 - -在 Apache Doris 1.2 版本中不再支持对 Segment V1 数据的访问,同时 Segment V1 代码将被彻底删除。 - -### 限制 String 类型的最大长度 [#8567](https://github.com/apache/doris/pull/8567) - -String 类型是 Apache Doris 在 0.15 版本中引入的新数据类型,在过去 String 类型的最大长度允许为 2GB。 - -在 1.1 版本中,我们将 String 类型的最大长度限制为 1 MB,超过此长度的字符串无法再写入,同时不再支持将 String 类型用作表的 Key 列、分区列以及分桶列。 - -已写入的字符串类型可以正常访问。 - -### 修复 fastjson 相关漏洞 [#9763](https://github.com/apache/doris/pull/9763) - -对 Canal 版本进行更新以修复 fastjson 安全漏洞 - -### 添加了 ADMIN DIAGNOSE TABLET 命令 [#8839](https://github.com/apache/doris/pull/8839) - -通过 ADMIN DIAGNOSE TABLET tablet_id 命令可以快速诊断指定 Tablet 的问题。 - -## 下载使用 - -### 下载链接 - -[https://doris.apache.org/zh-CN/download](https://doris.apache.org/zh-CN/download) - -### 升级说明 - -您可以从 Apache Doris 1.0 Release 版本和 1.0.x 发行版本升级到 1.1 Release 版本,升级过程请官网参考文档。如果您当前是 0.15 Release 版本或 0.15.x 发行版本,可跳过 1.0 版本直接升级至 1.1。 - -[https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade](https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/upgrade - -### 意见反馈 - -如果您遇到任何使用上的问题,欢迎随时通过 GitHub Discussion 论坛或者 Dev 邮件组与我们取得联系。 - -GitHub 论坛:[https://github.com/apache/incubator-doris/discussions](https://github.com/apache/incubator-doris/discussions) - -Dev 邮件组:dev@doris.apache.org - -## 致谢 - -Apache Doris 1.1 Release 版本的发布离不开所有社区用户的支持,在此向所有参与版本设计、开发、测试、讨论的社区贡献者们表示感谢,他们分别是: - -``` - -@adonis0147 - -@airborne12 - -@amosbird - -@aopangzi - -@arthuryangcs - -@awakeljw - -@BePPPower - -@BiteTheDDDDt - -@bridgeDream - -@caiconghui - -@cambyzju - -@ccoffline - -@chenlinzhong - -@daikon12 - -@DarvenDuan - -@dataalive - -@dataroaring - -@deardeng - -@Doris-Extras - -@emerkfu - -@EmmyMiao87 - -@englefly - -@Gabriel39 - -@GoGoWen - -@gtchaos - -@HappenLee - -@hello-stephen - -@Henry2SS - -@hewei-nju - -@hf200012 - -@jacktengg - -@jackwener - -@Jibing-Li - -@JNSimba - -@kangshisen - -@Kikyou1997 - -@kylinmac - -@Lchangliang - -@leo65535 - -@liaoxin01 - -@liutang123 - -@lovingfeel - -@luozenglin - -@luwei16 - -@luzhijing - -@mklzl - -@morningman - -@morrySnow - -@nextdreamblue - -@Nivane - -@pengxiangyu - -@qidaye - -@qzsee - -@SaintBacchus - -@SleepyBear96 - -@smallhibiscus - -@spaces-X - -@stalary - -@starocean999 - -@steadyBoy - -@SWJTU-ZhangLei - -@Tanya-W - -@tarepanda1024 - -@tianhui5 - -@Userwhite - -@wangbo - -@wangyf0555 - -@weizuo93 - -@whutpencil - -@wsjz - -@wunan1210 - -@xiaokang - -@xinyiZzz - -@xlwh - -@xy720 - -@yangzhg - -@Yankee24 - -@yiguolei - -@yinzhijian - -@yixiutt - -@zbtzbtzbt - -@zenoyang - -@zhangstar333 - -@zhangyifan27 - -@zhannngchen - -@zhengshengjun - -@zhengshiJ - -@zingdle - -@zuochunwei - -@zy-kkk -``` diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.1.md deleted file mode 100644 index 9528987f322bc..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.1.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -{ - "title": "Release 1.1.1", - "language": "zh-CN", - "description": "在 1.1.0 版本的向量化执行引擎中 ODBC Sink 是不支持的,而这一功能在之前版本的行存引擎是支持的,因此在 1.1.1 版本中我们重新完善了这一功能。" -} ---- - -## 新增功能 - -### 向量化执行引擎支持 ODBC Sink。 - -在 1.1.0 版本的向量化执行引擎中 ODBC Sink 是不支持的,而这一功能在之前版本的行存引擎是支持的,因此在 1.1.1 版本中我们重新完善了这一功能。 - -### 增加简易版 MemTracker - -MemTracker 是一个用于分析内存使用情况的统计工具,在 1.1.0 版本的向量化执行引擎中,由于 BE 侧没有 MemTracker,可能出现因内存失控导致的 OOM 问题。在 1.1.1 版本中,BE 侧增加了一个简易版 MemTracker,可以帮助控制内存,并在内存超出时取消查询。 - -完整版 MemTracker 将在 1.1.2 版本中正式发布。 - - -## 改进 - -### 支持在 Page Cache 中缓存解压后数据。 - -在 Page Cache 中有些数据是用 bitshuffle 编码方式压缩的,在查询过程中需要花费大量的时间来解压。在 1.1.1 版本中,Doris 将缓存解压由 bitshuffle 编码的数据以加速查询,我们发现在 ssb-flat 的一些查询中,可以减少 30% 的延时。 - -## Bug 修复 - -### 修复无法从 1.0 版本进行滚动升级的问题。 - -这个问题是在 1.1.0 版本中出现的,当升级 BE 而不升级 FE 时,可能会导致 BE Core。 - -如果你遇到这个问题,你可以尝试用 [#10833](https://github.com/apache/doris/pull/10833) 来修复它。 - -### 修复某些查询不能回退到非向量化引擎的问题,并导致 BE Core。 - -目前,向量化执行引擎不能处理所有的 SQL 查询,一些查询(如 left outer join)将使用非向量化引擎来运行。但部分场景在 1.1.0 版本中未被覆盖到,这可能导致 BE 挂掉。 - -### 修复 Compaction 不能正常工作导致的 -235 错误。 - -在 Unique Key 模型中,当一个 Rowset 有多个 Segment 时,在做 Compaction 过程中由于没有正确的统计行数,会导致 Compaction 失败并且产生 Tablet 版本过多而导致的 -235 错误。 - -### 修复查询过程中出现的部分 Segment fault。 - -[#10961](https://github.com/apache/doris/pull/10961) -[#10954](https://github.com/apache/doris/pull/10954) -[#10962](https://github.com/apache/doris/pull/10962) - -# 致谢 - -感谢所有参与贡献 1.1.1 版本的开发者: - -``` -@jacktengg -@mrhhsg -@xinyiZzz -@yixiutt -@starocean999 -@morrySnow -@morningman -@HappenLee -``` \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.2.md deleted file mode 100644 index 088729a604170..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.2.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -{ - "title": "Release 1.1.2", - "language": "zh-CN", - "description": "在 Apache Doris 1.1.2 版本中,我们引入了新的 Memtracker、极大程度上避免 OOM 类问题的发生,提升了向量化执行引擎在多数查询场景的性能表现,修复了诸多导致 BE 和 FE 发生异常的问题,优化了在湖仓联邦查询场景的部分体验问题并提升访问外部数据的性能。" -} ---- - -在 Apache Doris 1.1.2 版本中,我们引入了新的 Memtracker、极大程度上避免 OOM 类问题的发生,提升了向量化执行引擎在多数查询场景的性能表现,修复了诸多导致 BE 和 FE 发生异常的问题,优化了在湖仓联邦查询场景的部分体验问题并提升访问外部数据的性能。 - -相较于 1.1.1 版本,在 1.1.2 版本中有超过 170 个 Issue 和性能优化项被合入,系统稳定性和性能都得到进一步加强。与此同时,1.1.2 版本还将作为 Apache Doris 首个 LTS(Long-term Support)长周期支持版本,后续长期维护和支持,推荐所有用户下载和升级。 - -# 新增功能 - -### MemTracker - -MemTracker 是一个用于分析内存使用情况的统计工具,在 1.1.1 版本中我们引入了简易版 Memtracker 用以控制 BE 侧内存。在 1.1.2 版本中,我们引入了新的 MemTracker,在向量化执行引擎和非向量化执行引擎中都更为准确。 - -### 增加展示和取消正在执行 Query 的 API - -`GET /rest/v2/manager/query/current_queries` - -`GET /rest/v2/manager/query/kill/{query_id}` - -具体使用参考文档 [Query Profile Action](https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/manager/query-profile-action?_highlight=current&_highlight=query#request) - -### 支持读写 Emoji 表情通过 ODBC 外表 - - -# 优化改进 - -### 数据湖相关改进 - -- 扫描 HDFS ORC 文件时性能提升约 300%。[#11501](https://github.com/apache/doris/pull/11501) - -- 查询 Iceberg 表支持 HDFS 的 HA 模式。 - -- 支持查询由 [Apache Tez](https://tez.apache.org/) 创建的 Hive 数据 - -- 添加阿里云 OSS 作为 Hive 外部支持 - -### 在 Spark Load 中增加对 String 字符串类型和 Text 文本类型的支持 - - -### 在非向量化引擎支持复用 Block,在某些场景中有 50% 性能提升。[#11392](https://github.com/apache/doris/pull/11392) - -### 提升 Like 和正则表达式的性能 - -### 禁用 TCMalloc 的 aggressive_memory_decommit。 - -在查询或导入时将会有 40% 性能提升,也可以在配置文件中通过 `tc_enable_aggressive_memory_decommit`来修改 - -# Bug Fix - -### 修复部分可能导致 FE 失败或者数据损坏的问题 - -- 在 HA 环境中,BDBJE 将保留尽可能多的文件,通过增加配置 `bdbje_reserved_disk_bytes `以避免产生太多的 BDBJE 文件,BDBJE 日志只有在接近磁盘限制时才会删除。 - -- 修复了 BDBJE 中的重要错误,该错误将导致 FE 副本无法正确启动或数据损坏。 - -### 修复 FE 在查询过程中会在 waitFor_rpc 上 Hang 住以及 BE 在高并发情况下会 Hang 住的问题。 - -[#12459](https://github.com/apache/doris/pull/12459) [#12458](https://github.com/apache/doris/pull/12458) [#12392](https://github.com/apache/doris/pull/12392) - -### 修复向量化执行引擎查询时得到错误结果的问题。 - -[#11754](https://github.com/apache/doris/pull/11754) [#11694](https://github.com/apache/doris/pull/11694) - -### 修复许多 Planner 导致 BE Core 或者处于不正常状态的问题。 - -[#12080](https://github.com/apache/doris/pull/12080) [#12075](https://github.com/apache/doris/pull/12075) [#12040](https://github.com/apache/doris/pull/12040) [#12003](https://github.com/apache/doris/pull/12003) [#12007](https://github.com/apache/doris/pull/12007) [#11971](https://github.com/apache/doris/pull/11971) [#11933](https://github.com/apache/doris/pull/11933) [#11861](https://github.com/apache/doris/pull/11861) [#11859](https://github.com/apache/doris/pull/11859) [#11855](https://github.com/apache/doris/pull/11855) [#11837](https://github.com/apache/doris/pull/11837) [#11834](https://github.com/apache/doris/pull/11834) [#11821](https://github.com/apache/doris/pull/11821) [#11782](https://github.com/apache/doris/pull/11782) [#11723](https://github.com/apache/doris/pull/11723) [#11569](https://github.com/apache/doris/pull/11569) - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.3.md deleted file mode 100644 index 43b3411405206..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.3.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -{ - "title": "Release 1.1.3", - "language": "zh-CN", - "description": "作为 1.1.2 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.3 版本中,有超过 80 个 Issue 或性能优化项被合入,优化了在导入或查询过程中的内存控制," -} ---- - -作为 1.1.2 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.3 版本中,有超过 80 个 Issue 或性能优化项被合入,优化了在导入或查询过程中的内存控制,修复了许多导致 BE Core 以及产生错误查询结果的问题,系统稳定性和性能得以进一步加强,推荐所有用户下载和使用。 - -# 新增功能 - -- 在 ODBC 表中支持 SQLServer 和 PostgreSQL 的转义标识符。 - -- 支持使用 Parquet 作为导出文件格式。 - -# 优化改进 - -- 优化了 Flush 策略以及避免过多 Segment 小文件。 [#12706](https://github.com/apache/doris/pull/12706) [#12716](https://github.com/apache/doris/pull/12716) - -- 重构 Runtime Filter 以减少初始准备时间。 [#13127](https://github.com/apache/doris/pull/13127) - -- 修复了若干个在查询或导入过程中的内存控制问题。 [#12682](https://github.com/apache/doris/pull/12682) [#12688](https://github.com/apache/doris/pull/12688) [#12708](https://github.com/apache/doris/pull/12708) [#12776](https://github.com/apache/doris/pull/12776) [#12782](https://github.com/apache/doris/pull/12782) [#12791](https://github.com/apache/doris/pull/12791) [#12794](https://github.com/apache/doris/pull/12794) [#12820](https://github.com/apache/doris/pull/12820) [#12932](https://github.com/apache/doris/pull/12932) [#12954](https://github.com/apache/doris/pull/12954) [#12951](https://github.com/apache/doris/pull/12951) - -# Bug 修复 - -- 修复了 largeint 类型在 Compaction 过程中导致 Core 的问题。 [#10094](https://github.com/apache/doris/pull/10094) - -- 修复了 Grouping set 导致 BE Core 或者返回错误结果的问题。 [#12313](https://github.com/apache/doris/pull/12313) - -- 修复了使用 orthogonal_bitmap_union_count 函数时执行计划 PREAGGREGATION 显示错误的问题。 [#12581](https://github.com/apache/doris/pull/12581) - -- 修复了 Level1Iterator 未被释放导致的内存泄漏问题。 [#12592](https://github.com/apache/doris/pull/12592) - -- 修复了当 2 BE 且存在 Colocation 表时通过 Decommission 下线节点失败的问题。 [#12644](https://github.com/apache/doris/pull/12644) - -- 修复了 TBrokerOpenReaderResponse 过大时导致堆栈缓冲区溢出而导致的 BE Core 问题。 [#12658](https://github.com/apache/doris/pull/12658) - -- 修复了出现 -238 错误时 BE 节点可能 OOM 的问题。 [#12666](https://github.com/apache/doris/pull/12666) - -- 修复了 LEAD() 函数错误子表达式的问题。 [#12587](https://github.com/apache/doris/pull/12587) - -- 修复了行存代码中相关查询失败的问题。 [#12712](https://github.com/apache/doris/pull/12712) - -- 修复了 curdate()/current_date() 函数产生错误结果的问题。 [#12720](https://github.com/apache/doris/pull/12720) - -- 修复了 lateral View explode_split 函数出现错误结果的问题。 [#13643](https://github.com/apache/doris/pull/13643) - -- 修复了两张相同表中 Bucket Shuffle Join 计划错误的问题。 [#12930](https://github.com/apache/doris/pull/12930) - -- 修复了更新或导入过程中 Tablet 版本可能错误的问题。 [#13070](https://github.com/apache/doris/pull/13070) - -- 修复了在加密函数下使用 Broker 导入数据时 BE 可能发生 Core 的问题。 [#13009](https://github.com/apache/doris/pull/13009) - -# 升级说明 - -默认情况下禁用 PageCache 和 ChunkAllocator 以减少内存使用,用户可以通过修改配置项 `disable_storage_page_cache` 和 `chunk_reserved_bytes_limit` 来重新启用。 - -Storage Page Cache 和 Chunk Allocator 分别缓存用户数据块和内存预分配。 - -这两个功能会占用一定比例的内存,并且不会释放。这部分内存占用无法灵活调配,导致在某些场景下,因这部分内存占用而导致其他任务内存不足,影响系统稳定性和可用性。因此我们在 1.1.3 版本中默认关闭了这两个功能。 - -但在某些延迟敏感的报表场景下,关闭该功能可能会导致查询延迟增加。如用户担心升级后该功能对业务造成影响,可以通过在 be.conf 中增加以下参数以保持和之前版本行为一致。 - -``` -disable_storage_page_cache=false -chunk_reserved_bytes_limit=10% -``` - -* `disable_storage_page_cache`:是否关闭 Storage Page Cache。1.1.2(含)之前的版本,默认是 false,即打开。1.1.3 版本默认为 true,即关闭。 -* `chunk_reserved_bytes_limit`:Chunk allocator 预留内存大小。1.1.2(含)之前的版本,默认是整体内存的 10%。1.1.3 版本默认为 209715200(200MB)。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.4.md deleted file mode 100644 index a9d871366d124..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.4.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -{ - "title": "Release 1.1.4", - "language": "zh-CN", - "description": "作为 1.1 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.4 版本中,Doris 团队修复了自 1.1.3 版本以来的约 60 个 Issue 或性能优化项。改进了 Spark Load 的使用体验," -} ---- - -作为 1.1 LTS(Long-term Support,长周期支持)版本基础之上的 Bugfix 版本,在 Apache Doris 1.1.4 版本中,Doris 团队修复了自 1.1.3 版本以来的约 60 个 Issue 或性能优化项。改进了 Spark Load 的使用体验,优化了诸多内存以及 BE 异常宕机的问题,系统稳定性和性能得以进一步加强,推荐所有用户下载和使用。 - -# 新增功能 - -- Broker Load 支持 华为云 OBS 对象存储。[#13523](https://github.com/apache/doris/pull/13523) - -- Spark Load 支持 Parquet 和 Orc 文件。[#13438](https://github.com/apache/doris/pull/13438) - - -# 优化改进 - -- 禁用 Metric Hook 中的互斥量,其将影响数据导入过程中的查询性能。 [#10941](https://github.com/apache/doris/pull/10941) - - -# Bug 修复 - -- 修复了当 Spark Load 加载文件时 Where 条件不生效的问题。 [#13804](https://github.com/apache/doris/pull/13804) - -- 修复了 If 函数存在 Nullable 列时开启向量化返回错误结果的问题。 [#13779](https://github.com/apache/doris/pull/13779) - -- 修复了在使用 Anti Join 和其他 Join 谓词时产生错误结果的问题。 [#13743](https://github.com/apache/doris/pull/13743) - -- 修复了当调用函数 concat(ifnull) 时 BE 宕机的问题。 [#13693](https://github.com/apache/doris/pull/13693) - -- 修复了 group by 语句中存在函数时 planner 错误的问题。 [#13613](https://github.com/apache/doris/pull/13613) - -- 修复了 lateral view 语句不能正确识别表名和列名的问题。 [#13600](https://github.com/apache/doris/pull/13600) - -- 修复了使用物化视图和表别名时出现未知列的问题。 [#13605](https://github.com/apache/doris/pull/13605) - -- 修复了 JSONReader 无法释放值和解析 allocator 内存的问题。 [#13513](https://github.com/apache/doris/pull/13513) - -- 修复了当 enable_vectorized_alter_table 为 true 时允许使用 to_bitmap() 对负值列创建物化视图的问题。 [#13448](https://github.com/apache/doris/pull/13448) - -- 修复了函数 from_date_format_str 中微秒数丢失的问题。 [#13446](https://github.com/apache/doris/pull/13446) - -- 修复了排序 exprs 的 nullability 属性在使用子 smap 信息进行替换后可能不正确的问题。 [#13328](https://github.com/apache/doris/pull/13328) - -- 修复了 case when 有 1000 个条件时出现 Core 的问题。 [#13315](https://github.com/apache/doris/pull/13315) - -- 修复了 Stream Load 导入数据时最后一行数据丢失的问题。 [#13066](https://github.com/apache/doris/pull/13066) - -- 恢复表或分区的副本数与备份前相同。 [#11942](https://github.com/apache/doris/pull/11942) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.5.md deleted file mode 100644 index 2268f4d24f625..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.1/release-1.1.5.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -{ - "title": "Release 1.1.5", - "language": "zh-CN", - "description": "在 1.1.5 版本中,Doris 团队已经修复了自 1.1.4 版本发布以来约 36 个问题或性能改进项。同时,1.1.5 版本也是作为 1.1 LTS 版本的错误修复版本,建议所有用户升级到这个版本。" -} ---- - -在 1.1.5 版本中,Doris 团队已经修复了自 1.1.4 版本发布以来约 36 个问题或性能改进项。同时,1.1.5 版本也是作为 1.1 LTS 版本的错误修复版本,建议所有用户升级到这个版本。 - - -# Behavior Changes - - -当别名与原始列名相同时,例如 "select year(birthday) as birthday",在 group by、order by、having 子句中使用别名时将与 MySQL 中保持一致,Group by 和 having 将首先使用原始列,order by 将首先使用别名。这里可能会对用户带来疑惑,因此建议最好不要使用与原始列名相同的别名。 - -# Features - -支持 Hash 函数 murmur_hash3_64。[#14636](https://github.com/apache/doris/pull/14636) - -# Improvements - -为日期函数 convert_tz 添加时区缓存以提高性能。[#14616](https://github.com/apache/doris/pull/14616) - -当调用 show 子句时,按 tablename 对结果进行排序。 [#14492](https://github.com/apache/doris/pull/14492) - -# Bug Fix - -修复 if 语句中带有常量时导致 BE 可能 Coredump 的问题。[#14858](https://github.com/apache/doris/pull/14858) - -修复 ColumnVector::insert_date_column 可能崩溃的问题 [#14839](https://github.com/apache/doris/pull/14839) - -更新 high_priority_flush_thread_num_per_store 默认值为 6,将提高负载性能。 [#14775](https://github.com/apache/doris/pull/14775) - -优化 quick compaction core。 [#14731](https://github.com/apache/doris/pull/14731) - -修复分区列非 duplicate key 时 Spark Load 抛出 IndexOutOfBounds 错误的问题。 - [#14661](https://github.com/apache/doris/pull/14661) - -修正 VCollectorIterator 中的内存泄漏问题。 [#14549](https://github.com/apache/doris/pull/14549) - -修复了存在 Sequence 列时可能存在的建表问题。 [#14511](https://github.com/apache/doris/pull/14511) - -使用 avg rowset 来计算批量大小,而不是使用 total_bytes,因为它要花费大量的 Cpu。 [#14273](https://github.com/apache/doris/pull/14273) - -修复了 right outer join 可能导致 core 的问题。[#14821](https://github.com/apache/doris/pull/14821) - -优化了 TCMalloc gc 的策略。 [#14777](https://github.com/apache/doris/pull/14777) [#14738](https://github.com/apache/doris/pull/14738) [#14374](https://github.com/apache/doris/pull/14374) - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.0.md deleted file mode 100644 index 428bad6d91ed2..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.0.md +++ /dev/null @@ -1,603 +0,0 @@ ---- -{ - "title": "Release 1.2.0", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,再一次经历数月的等候后,我们很高兴地宣布,Apache Doris 于 2022 年 12 月 7 日迎来 1.2.0 Release 版本的正式发布!有近 118 位 Contributor 为 Apache Doris 提交了超 2400 项优化和修复," -} ---- - -亲爱的社区小伙伴们,再一次经历数月的等候后,我们很高兴地宣布,Apache Doris 于 2022 年 12 月 7 日迎来 1.2.0 Release 版本的正式发布!有近 118 位 Contributor 为 Apache Doris 提交了超 2400 项优化和修复,感谢每一位让 Apache Doris 更好的你! - -自从社区正式确立 LTS 版本管理机制后,在 1.1.x 系列版本中不再合入大的功能,仅提供问题修复和稳定性改进,力求满足更多社区用户在稳定性方面的高要求。而在综合考虑版本迭代节奏和用户需求后,我们决定将众多新特性在 1.2 版本中发布,这无疑承载了众多社区用户和开发者的深切期盼,同时这也是一场厚积而薄发后的全面进化! - -在 1.2 版本中,我们实现了全面的向量化、**实现多场景查询性能 3-11 倍的提升**,在 Unique Key 模型上实现了 Merge-on-Write 的数据更新模式、**数据高频更新时查询性能提升达 3-6 倍**,增加了 Multi-Catalog 多源数据目录、**提供了无缝接入 Hive、ES、Hudi、Iceberg 等外部数据源的能力**,引入了 Light Schema Change 轻量表结构变更、**实现毫秒级的 Schema Change 操作并可以借助 Flink CDC 自动同步上游数据库的 DML 和 DDL 操作**,以 JDBC 外部表替换了过去的 ODBC 外部表,支持了 Java UDF 和 Romote UDF 以及 Array 数组类型和 JSONB 类型,修复了诸多之前版本的性能和稳定性问题,推荐大家下载和使用! - -# 下载安装 -GitHub 下载:[https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - -官网下载页:[https://doris.apache.org/download](https://doris.apache.org/download) - -源码地址:[https://github.com/apache/doris/releases/tag/1.2.0-rc04](https://github.com/apache/doris/releases/tag/1.2.0-rc04) - -### 下载说明: - -由于 Apache 服务器文件大小限制,官网下载页的 1.2.0 版本的二进制程序分为三个包: - -1. apache-doris-fe - -2. apache-doris-be - -3. apache-doris-java-udf-jar-with-dependencies - -其中新增的 `apache-doris-java-udf-jar-with-dependencies` 包用于支持 1.2.0 版本中的 JDBC 外表和 JAVA UDF。下载后,需要将其中的 `java-udf-jar-with-dependencies.jar` 文件放到 `be/lib` 目录下,方可启动 BE,否则无法启动成功。 - -### 部署说明: - -从历史版本升级到 1.2.0 版本,需完整更新 fe、be 下的 bin 和 lib 目录。 - -其他升级注意事项,请完整阅读本发版通告最后一节“升级注意事项”以及安装部署文档 [https://doris.apache.org/zh-CN/docs/dev/install/install-deploy](https://doris.apache.org/zh-CN/docs/dev/install/install-deploy) 和集群升级文档 [https://doris.apache.org/zh-CN/docs/dev/admin-manual/cluster-management/upgrade](https://doris.apache.org/zh-CN/docs/dev/admin-manual/cluster-management/upgrade) - -# 重要更新 - -### 1. 全面向量化支持,性能大幅提升 - -在 Apache Doris 1.2.0 版本中,系统所有模块都实现了向量化,包括数据导入、Schema Change、Compaction、数据导出、UDF 等。新版向量化执行引擎具备了完整替换原有非向量化引擎的能力,后续我们也将考虑在未来版本中去除原有非向量化引擎的代码。 - -与此同时,在全面向量化的基础上,我们对数据扫描、谓词计算、Aggregation 算子、HashJoin 算子、算子之间 Shuffle 效率等进行了全链路的优化,使得查询性能有了大幅提升。 - -我们对 Apache Doris 1.2.0 新版本进行了多个标准测试集的测试,同时选择了 1.1.3 版本和 0.15.0 版本作为对比参照项。经测,1.2.0 **在 SSB-Flat 宽表场景上相对 1.1.3 版本整体性能提升了近 4 倍、相对于 0.15.0 版本性能提升了近 10 倍,在 TPC-H 多表关联场景上较 1.1.3 版本上有近 3 倍的提升、较 0.15.0 版本性能至少提升了 11 倍。** - -![ssb_flat](/images/ssb_flat.png) - -![tpch](/images/tpch.png) - -同时,我们将 1.2.0 版本的测试数据提交到了全球知名的数据库测试排行榜 ClickBench,在最新的排行榜中,Apache Doris 1.2.0 新版本取得了通用机型(c6a.4xlarge, 500gb gp2)下**查询性能 Cold Run 第二和 Hot Run 第三的醒目成绩,共有 8 个 SQL 刷新榜单最佳成绩、成为新的性能标杆**。导入性能方面,1.2.0 新版本数据写入效率在同机型所有产品中位列第一,压缩前 70G 数据写入仅耗时 415s、单节点写入速度超过 170 MB/s,在实现极致查询性能的同时也保证了高效的写入效率! - -![coldrun](/images/coldrun.png) - -![hotrun](/images/hotrun.png) - -### 2. 在 Unique Key 模型上实现了 Merge-on-Write 的数据更新模式 - -在过去版本中,Apache Doris 主要是通过 Unique Key 数据模型来实现数据实时更新的。但由于采用的是 Merge-on-Read 的实现方式,查询存在着效率瓶颈,有大量非必要的 CPU 计算资源消耗和 IO 开销,且可能将出现查询性能抖动等问题。 - -在 1.2.0 版本中,我们在原有的 Unique Key 数据模型上,增加了 Merge-on-Write 的数据更新模式。该模式在数据写入时即对需要删除或更新的数据进行标记,始终保证有效的主键只出现在一个文件中(即在写入的时候保证了主键的唯一性),不需要在读取的时候通过归并排序来对主键进行去重,这对于高频写入的场景来说,大大减少了查询执行时的额外消耗。此外还能够支持谓词下推,并能够很好利用 Doris 丰富的索引,在数据 IO 层面就能够进行充分的数据裁剪,大大减少数据的读取量和计算量,因此在很多场景的查询中都有非常明显的性能提升。 - -在比较有代表性的 SSB-Flat 数据集上,通过模拟多个持续导入场景,**新版本的大部分查询取得了 3-6 倍的性能提升**。 - -![mergeonwrite_ssb](/images/mergeonwrite_ssb.png) - -使用场景:所有对主键唯一性有需求,需要频繁进行实时 Upsert 更新的用户建议打开。 - -使用说明:作为新的 Feature 默认关闭,用户可以通过在建表时添加下面的 Property 来开启: - -``` -“enable_unique_key_merge_on_write” = “true” -``` - -另外新版本 Merge-on-Write 数据更新模式与旧版本 Merge-on-Read 实现方式存在差异,因此已经创建的 Unique Key 表无法直接通过 Alter Table 添加 Property 来支持,只能在新建表的时候指定。如果用户需要将旧表转换到新表,可以使用 `insert into new_table select * from old_table` 的方式来实现。 - -### 3. Multi Catalog 多源数据目录 - -Multi-Catalog 多源数据目录功能的目标在于能够帮助用户更方便对接外部数据目录,以增强 Apache Doris 的数据湖分析和联邦数据查询能力。 - -在过去版本中,当我们需要对接外部数据源时,只能在 Database 或 Table 层级对接。当外部数据目录 Schema 发生变化、或者外部数据目录的 Database 或 Table 非常多时,需要用户手工进行一一映射,维护量非常大。1.2.0 版本新增的多源数据目录功能为 Apache Doris 提供了快速接入外部数据源进行访问的能力,用户可以通过 `CREATE CATALOG` 命令连接到外部数据源,Doris 会自动映射外部数据源的库、表信息。之后,用户就可以像访问普通表一样,对这些外部数据源中的数据进行访问,避免了之前用户需要对每张表手动建立外表映射的复杂操作。 - -目前能支持以下数据源: - -1. Hive Metastore:可以访问包括 Hive、Iceberg、Hudi 在内的数据表,也可对接兼容 Hive Metastore 的数据源,如阿里云的 DataLake Formation,同时支持 HDFS 和对象存储上的数据访问。 - -2. Elasticsearch:访问 ES 数据源。 - -3. JDBC:支持通过 JDBC 访问 MySQL 数据源。 - -注:相应的权限层级也会自动变更,详见“升级注意事项”部分 - -文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog) - -### 4. 轻量表结构变更 Light Schema Change - -在过去版本中,Schema Change 是一项相对消耗比较大的工作,需要对数据文件进行修改,在集群规模和表数据量较大时执行效率会明显降低。同时由于是异步作业,当上游 Schema 发生变更时,需要停止数据同步任务并手动执行 Schema Change,增加开发和运维成本的同时还可能造成消费数据的积压。 - -在 1.2.0 新版本中,对数据表的加减列操作,不再需要同步更改数据文件,仅需在 FE 中更新元数据即可,从而实现毫秒级的 Schema Change 操作,且存在导入任务时效率的提升更为显著。与此同时,使得 Apache Doris 在面对上游数据表维度变化时,可以更加快速稳定实现表结构同步,保证系统的高效且平稳运转。如用户可以通过 Flink CDC,可实现上游数据库到 Doris 的 DML 和 DDL 同步,进一步提升了实时数仓数据处理和分析链路的时效性与便捷性。 - -![lightschemachange_compare.png](/images/lightschemachange_compare.png) - -使用说明:作为新的 Feature 默认关闭,用户可以通过在建表时添加下面的 Property 来开启: - -``` -"light_schema_change" = "true" -``` - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -### 5. JDBC 外部表 - -在过去版本中,Apache Doris 提供了 ODBC 外部表的方式来访问 MySQL、Oracle、SQL Server、PostgreSQL 等数据源,但由于 ODBC 驱动版本问题可能造成系统的不稳定。相对于 ODBC,JDBC 接口更为统一且支持数据库众多,因此在 1.2.0 版本中我们实现了 JDBC 外部表以替换原有的 ODBC 外部表。在新版本中,用户可以通过 JDBC 连接支持 JDBC 协议的外部数据源, - -当前已适配的数据源包括: - -- MySQL -- PostgreSQL -- Oracle -- SQLServer -- ClickHouse - -更多数据源的适配已经在规划之中,原则上任何支持 JDBC 协议访问的数据库均能通过 JDBC 外部表的方式来访问。而之前的 ODBC 外部表功能将会在后续的某个版本中移除,还请尽量切换到 JDBC 外表功能。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc) - -### 6. JAVA UDF - -在过去版本中,Apache Doris 提供了 C++ 语言的原生 UDF,便于用户通过自己编写自定义函数来满足特定场景的分析需求。但由于原生 UDF 与 Doris 代码耦合度高、当 UDF 出现错误时可能会影响集群稳定性,且只支持 C++ 语言,对于熟悉 Hive、Spark 等大数据技术栈的用户而言存在较高门槛,因此在 1.2.0 新版本我们增加了 Java 语言的自定义函数,支持通过 Java 编写 UDF/UDAF,方便用户在 Java 生态中使用。同时,通过堆外内存、Zero Copy 等技术,使得跨语言的数据访问效率大幅提升。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/ecosystem/udf/java-user-defined-function](https://doris.apache.org/zh-CN/docs/dev/ecosystem/udf/java-user-defined-function) - -示例:[https://github.com/apache/doris/tree/master/samples/doris-demo](https://github.com/apache/doris/tree/master/samples/doris-demo) - -### 7. Remote UDF - -远程 UDF 支持通过 RPC 的方式访问远程用户自定义函数服务,从而彻底消除用户编写 UDF 的语言限制,用户可以使用任意编程语言实现自定义函数,完成复杂的数据分析工作。 - -文档:[https://doris.apache.org/zh-CN/docs/ecosystem/udf/remote-user-defined-function](https://doris.apache.org/zh-CN/docs/ecosystem/udf/remote-user-defined-function) - -示例:[https://github.com/apache/doris/tree/master/samples/doris-demo](https://github.com/apache/doris/tree/master/samples/doris-demo) - -### 8. Array/JSONB 复合数据类型 - -- Array 类型 - -支持了数组类型,同时也支持多级嵌套的数组类型。在一些用户画像,标签等场景,可以利用 Array 类型更好的适配业务场景。同时在新版本中,我们也实现了大量数组相关的函数,以更好的支持该数据类型在实际场景中的应用。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/ARRAY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/ARRAY) - -相关函数:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/array-functions/array](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/array-functions/array) - -- JSONB 类型 - -支持二进制的 JSON 数据类型 JSONB。该类型提供更紧凑的 JSONB 编码格式,同时提供在编码格式上的数据访问,相比于使用字符串存储的 JSON 数据,有数倍的性能提升。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/JSONB](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/JSONB) - -相关函数:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/json-functions/jsonb_parse](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/json-functions/jsonb_parse) - -### 9. DateV2/DatatimeV2 新版日期/日期时间数据类型 - -支持 DateV2 日期类型和 DatetimeV2 日期时间类型,相较于原有的 Date 和 Datetime 效率更高且支持最多到微秒的时间精度,建议使用新版日期类型。 - -文档:[https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATETIMEV2](https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATETIMEV2) - - [https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATEV2](https://doris.apache.org/zh-CN/docs/1.2/sql-manual/sql-reference/Data-Types/DATEV2) - -影响范围: - 1. 用户需要在建表时指定 DateV2 和 DatetimeV2,原有表的 Date 以及 Datetime 不受影响。 - 2. Datev2 和 Datetimev2 在与原来的 Date 和 Datetime 做计算时(例如等值连接),原有类型会被 cast 成新类型做计算 - 3. Example 参考文档中说明 - -### 10. 全新内存管理框架 - -在 Apache Doris 1.2.0 版本中我们增加了全新的内存跟踪器(Memory Tracker),用以记录 Doris BE 进程内存使用,包括查询、导入、Compaction、Schema Change 等任务生命周期中使用的内存以及各项缓存。通过 Memory Tracker 实现了更加精细的内存监控和控制,大大减少了因内存超限导致的 OOM 问题,使系统稳定性进一步得到提升。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/memory-management/memory-tracker](https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/memory-management/memory-tracker) - -### 11. Table Valued Function 表函数 - -增加了 Table Valued Function(TVF,表函数),TVF 可以视作一张普通的表,可以出现在 SQL 中所有“表”可以出现的位置,让用户像访问关系表格式数据一样,读取或访问来自 HDFS 或 S3 上的文件内容, - -例如使用 S3 TVF 实现对象存储上的数据导入: -``` -insert into tbl select * from s3("s3://bucket/file.*", "ak" = "xx", "sk" = "xxx") where c1 > 2; -``` - -或者直接查询 HDFS 上的数据文件: -``` -insert into tbl select * from hdfs("hdfs://bucket/file.*") where c1 > 2; -``` -TVF 可以帮助用户充分利用 SQL 丰富的表达能力,灵活处理各类数据。 - -文档: -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/s3](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/s3) - -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/hdfs](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/table-functions/hdfs) - -# 更多功能 - -### 1. 更便捷的分区创建方式 - -支持通过 `FROM TO` 命令创建一个时间范围内的多个分区。 - -文档搜索“MULTI RANGE”: -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -示例: -``` -// 根据时间date 创建分区,支持多个批量逻辑和单独创建分区的混合使用 - -PARTITION BY RANGE(event_day)( - FROM ("2000-11-14") TO ("2021-11-14") INTERVAL 1 YEAR, - FROM ("2021-11-14") TO ("2022-11-14") INTERVAL 1 MONTH, - FROM ("2022-11-14") TO ("2023-01-03") INTERVAL 1 WEEK, - FROM ("2023-01-03") TO ("2023-01-14") INTERVAL 1 DAY, - PARTITION p_20230114 VALUES [('2023-01-14'), ('2023-01-15')) -) -``` -``` -// 根据时间datetime 创建分区 -PARTITION BY RANGE(event_time)( - FROM ("2023-01-03 12") TO ("2023-01-14 22") INTERVAL 1 HOUR -) -``` - -### 2. 列重命名 - -对于开启了 Light Schema Change 的表,支持对列进行重命名。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-RENAME ](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-RENAME ) - -### 3. 更丰富权限管理 - -- 支持行级权限 - -可以通过 `CREATE ROW POLICY` 命令创建行级权限。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-POLICY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-POLICY) - -- 支持指定密码强度、过期时间等。 - -- 支持在多次失败登录后锁定账户。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Account-Management-Statements/ALTER-USER](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Account-Management-Statements/ALTER-USER) - -### 4. 导入相关 - -- CSV 导入支持带 header 的 CSV 文件。 - -在文档中搜索 `csv_with_names`:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD/](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD/) - -- Stream Load 新增 `hidden_columns`,可以显式指定 delete flag 列和 sequence 列。 - -在文档中搜索 `hidden_columns`:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/STREAM-LOAD) - -- Spark Load 支持 Parquet 和 ORC 文件导入。 -- 支持清理已完成的导入的 Label - 文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CLEAN-LABEL](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CLEAN-LABEL) - -- 支持通过状态批量取消导入作业 -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CANCEL-LOAD](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/CANCEL-LOAD) - -- Broker Load 新增支持阿里云 OSS,腾讯 CHDFS 和华为云 OBS。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/advanced/broker](https://doris.apache.org/zh-CN/docs/dev/advanced/broker) - -- 支持通过 hive-site.xml 文件配置访问 HDFS。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/config/config-dir](https://doris.apache.org/zh-CN/docs/dev/admin-manual/config/config-dir) - -### 5. 支持通过 `SHOW CATALOG RECYCLE BIN` 功能查看回收站中的内容。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Show-Statements/SHOW-CATALOG-RECYCLE-BIN](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Show-Statements/SHOW-CATALOG-RECYCLE-BIN) - -### 6. 支持 `SELECT * EXCEPT` 语法。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/data-table/basic-usage](https://doris.apache.org/zh-CN/docs/dev/data-table/basic-usage) - -### 7. OUTFILE 支持 ORC 格式导出,并且支持多字节分隔符。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE) - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE) - -### 8. 支持通过配置修改可保存的 Query Profile 的数量。 - -文档搜索 FE 配置项:`max_query_profile_num` - -### 9. DELETE 语句支持 IN 谓词条件。并且支持分区裁剪。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/DELETE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/DELETE) - -### 10. 时间列的默认值支持使用 `CURRENT_TIMESTAMP` - -文档中搜索 "CURRENT_TIMESTAMP":[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -### 11. 添加两张系统表:backends、rowsets - -backends 是 Doris 中内置系统表,存放在 information_schema 数据库下,通过该系统表可以查看当前 Doris 集群中的 BE 节点信息。 - -rowsets 是 Doris 中内置系统表,存放在 information_schema 数据库下,通过该系统表可以查看 Doris 集群中各个 BE 节点当前 rowsets 情况。 - -文档: - -[https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/backends](https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/backends) - -[https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/rowsets](https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/rowsets) - -### 12. 备份恢复 - - - Restore 作业支持 `reserve_replica` 参数,使得恢复后的表的副本数和备份时一致。 - - Restore 作业支持 `reserve_dynamic_partition_enable` 参数,使得恢复后的表保持动态分区开启状态。 - - 文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/RESTORE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/RESTORE) - - - 支持通过内置的 libhdfs 进行备份恢复操作,不再依赖 broker。 - - 文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/CREATE-REPOSITORY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/CREATE-REPOSITORY) - -### 13. 支持同机多磁盘之间的数据均衡 - -文档: - -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-REBALANCE-DISK](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-REBALANCE-DISK) - -[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-CANCEL-REBALANCE-DISK](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-CANCEL-REBALANCE-DISK) - -### 14. Routine Load 支持订阅 Kerberos 认证的 Kafka 服务。 - -文档中搜索 kerberos:[https://doris.apache.org/zh-CN/docs/dev/data-operate/import/import-way/routine-load-manual](https://doris.apache.org/zh-CN/docs/dev/data-operate/import/import-way/routine-load-manual) - -### 15. New built-in-function 新增内置函数 - - 新增以下内置函数: - - - cbrt - - sequence_match/sequence_count - - mask/mask_first_n/mask_last_n - - elt - - any/any_value - - group_bitmap_xor - - ntile - - nvl - - uuid - - initcap - - regexp_replace_one/regexp_extract_all - - multi_search_all_positions/multi_match_any - - domain/domain_without_www/protocol - - running_difference - - bitmap_hash64 - - murmur_hash3_64 - - to_monday - - not_null_or_empty - - window_funnel - - outer combine - 以及所有 Array 函数 - -# 升级注意事项 - -### FE 元数据版本变更【重要】 - -FE Meta Version 由 107 变更为 114,因此从 1.1.x 以及更早版本升级至 1.2.0 版本后,不可回滚到之前版本。 -升级过程中,建议通过灰度升级的方式,先升级部分节点并观察业务运行情况,以降低升级风险,若执行非法的回滚操作将可能导致数据丢失与损坏。 - -### 行为改变 - -- 权限层级变更。 - - 因为引入了 Catalog 层级,所以相应的用户权限层级也会自动变更。规则如下: - - - GlobalPrivs 和 ResourcePrivs 保持不变 - - 新增 CatalogPrivs 层级。 - - 原 DatabasePrivs 层级增加 internal 前缀(表示 internal catalog 中的 db) - - 原 TablePrivs 层级增加 internal 前缀(表示 internal catalog 中的 tbl) -- GroupBy 和 Having 子句中,优先使用列名而不是别名进行匹配。 -- 不再支持创建以 "mv_" 开头的列。"mv_" 是物化视图中的保留关键词 -- 移除了 order by 语句默认添加的 65535 行的 Limit 限制,并增加 Session 变量 `default_order_by_limit` 可以自定配置这个限制。 -- "Create Table As Select" 生成的表,所有字符串列统一使用 String 类型,不再区分 varchar/char/string -- audit log 中,移除 db 和 user 名称前的 `default_cluster` 字样。 -- audit log 中增加 sql digest 字段 -- union 子句总 order by 逻辑变动。新版本中,order by 子句将在 union 执行完成后执行,除非通过括号进行显式的关联。 -- 进行 decommission 操作时,会忽略回收站中的 tablet,确保 decomission 能够完成。 -- Decimal 的返回结果将按照原始列中声明的精度进行显示,或者按照显式指定的 cast 函数中的精度进行展示。 -- 列名的长度限制由 64 变更为 256 -- FE 配置项变动 - - 默认开启 `enable_vectorized_load` 参数。 - - 增大了 `create_table_timeout` 值。建表操作的默认超时时间将增大。 - - 修改 `stream_load_default_timeout_second` 默认值为 3 天。 - - 修改`alter_table_timeout_second` 的默认值为 一个月。 - - 增加参数 `max_replica_count_when_schema_change` 用于限制 alter 作业中涉及的 replica 数量,默认为 100000。 - - 添加 `disable_iceberg_hudi_table`。默认禁用了 iceberg 和 hudi 外表,推荐使用 multi catalog 功能。 -- BE 配置项变动 - - 移除了 `disable_stream_load_2pc` 参数。2PC 的 stream load 可直接使用。 - - 修改`tablet_rowset_stale_sweep_time_sec` ,从 1800 秒修改为 300 秒。 -- Session 变量变动 - - 修改变量 `enable_insert_strict` 默认为 true。这会导致一些之前可以执行,但是插入了非法值的 insert 操作,不再能够执行。 - - 修改变量 `enable_local_exchange` 默认为 true - - 默认通过 lz4 压缩进行数据传输,通过变量 `fragment_transmission_compression_codec` 控制 - - 增加 `skip_storage_engine_merge` 变量,用于调试 unique 或 agg 模型的数据 - 文档:https://doris.apache.org/zh-CN/docs/dev/advanced/variables -- BE 启动脚本会通过 `/proc/sys/vm/max_map_count` 检查数值是否大于 200W,否则启动失败。 -- 移除了 mini load 接口 - -### 升级过程中需注意 - -1. 升级准备 - - 需替换:lib, bin 目录(start/stop 脚本均有修改) - - BE 也需要配置 JAVA_HOME,已支持 JDBC Table 和 Java UDF。 - - fe.conf 中默认 JVM Xmx 参数修改为 8GB。 - -2. 升级过程中可能的错误 - - repeat 函数不可使用并报错:`vectorized repeat function cannot be executed`,可以在升级前先关闭向量化执行引擎。 - - schema change 失败并报错:`desc_tbl is not set. Maybe the FE version is not equal to the BE` - - 向量化 hash join 不可使用并报错。`vectorized hash join cannot be executed`。可以在升级前先关闭向量化执行引擎。 - -以上错误在完全升级后会恢复正常。 - -### 性能影响 - -- 默认使用 JeMalloc 作为新版本 BE 的内存分配器,替换 TcMalloc。 - -JeMalloc 相比 TcMalloc 使用的内存更少、高并发场景性能更高,但在内存充足的性能测试时,TcMalloc 比 JeMalloc 性能高 5%-10%,详细测试见:https://github.com/apache/doris/pull/12496 - -- tablet sink 中的 batch size 修改为至少 8K。 -- 默认关闭 Page Cache 和 减少 Chunk Allocator 预留内存大小 - -Page Cache 和 Chunk Allocator 分别缓存用户数据块和内存预分配,这两个功能会占用一定比例的内存并且不会释放。由于这部分内存占用无法灵活调配,导致在某些场景下可能因这部分内存占用而导致其他任务内存不足,影响系统稳定性和可用性,因此新版本中默认关闭了这两个功能。 - -但在某些延迟敏感的报表场景下,关闭该功能可能会导致查询延迟增加。如用户担心升级后该功能对业务造成影响,可以通过在 be.conf 中增加以下参数以保持和之前版本行为一致。 -``` -disable_storage_page_cache=false -chunk_reserved_bytes_limit=10% -``` - -### API 变化 - -- BE 的 http api 错误返回信息,由 `{"status": "Fail", "msg": "xxx"}` 变更为更具体的 ``{"status": "Not found", "msg": "Tablet not found. tablet_id=1202"}`` - -- `SHOW CREATE TABLE` 中,comment 的内容由双引号包裹变为单引号包裹 - -- 支持普通用户通过 http 命令获取 query profile。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/manager/query-profile-action](https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/manager/query-profile-action) - -- 优化了 sequence 列的指定方式,可以直接指定列名。 - -文档:[https://doris.apache.org/zh-CN/docs/dev/data-operate/update-delete/sequence-column-manual](https://doris.apache.org/zh-CN/docs/dev/data-operate/update-delete/sequence-column-manual) - -- `show backends` 和 `show tablets` 返回结果中,增加远端存储的空间使用情况 (#11450) -- 移除了 Num-Based Compaction 相关代码 (#13409) -- 重构了 BE 的错误码机制,部分返回的错误信息会发生变化 (#8855) - -# 其他 - -- 支持 Docker 官方镜像。 -- 支持在 MacOS(x86/M1) 和 ubuntu-22.04 上编译 Doris -- 支持进行 image 文件的校验。 - -文档搜索“--image”:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/metadata-operation](https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/metadata-operation) -- 脚本相关 - - FE、BE 的 stop 脚本支持通过 `--grace` 参数退出 FE、BE(使用 kill -15 信号代替 kill -9) - - FE start 脚本支持通过 --version 查看当前 FE 版本 (#11563) -- 支持通过 `ADMIN COPY TABLET` 命令获取某个 tablet 的数据和相关建表语句,用于本地问题调试 - -文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET) - -- 支持通过 http api,获取一个 SQL 语句相关的 建表语句,用于本地问题复现 - -文档:[https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/query-schema-action](https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/fe/query-schema-action) - -- 支持建表时关闭这个表的 compaction 功能,用于测试 - -文档中搜索 "disble_auto_compaction":[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE) - -# 致谢 - -Apache Doris 1.2.0 版本的发布离不开所有社区用户的支持,在此向所有参与版本设计、开发、测试、讨论的社区贡献者们表示感谢,他们分别是(首字母排序): - -``` -@924060929 -@a19920714liou -@adonis0147 -@Aiden-Dong -@aiwenmo -@AshinGau -@b19mud -@BePPPower -@BiteTheDDDDt -@bridgeDream -@ByteYue -@caiconghui -@CalvinKirs -@cambyzju -@caoliang-web -@carlvinhust2012 -@catpineapple -@ccoffline -@chenlinzhong -@chovy-3012 -@coderjiang -@cxzl25 -@dataalive -@dataroaring -@dependabot -@dinggege1024 -@DongLiang-0 -@Doris-Extras -@eldenmoon -@EmmyMiao87 -@englefly -@FreeOnePlus -@Gabriel39 -@gaodayue -@geniusjoe -@gj-zhang -@gnehil -@GoGoWen -@HappenLee -@hello-stephen -@Henry2SS -@hf200012 -@huyuanfeng2018 -@jacktengg -@jackwener -@jeffreys-cat -@Jibing-Li -@JNSimba -@Kikyou1997 -@Lchangliang -@LemonLiTree -@lexoning -@liaoxin01 -@lide-reed -@link3280 -@liutang123 -@liuyaolin -@LOVEGISER -@lsy3993 -@luozenglin -@luzhijing -@madongz -@morningman -@morningman-cmy -@morrySnow -@mrhhsg -@Myasuka -@myfjdthink -@nextdreamblue -@pan3793 -@pangzhili -@pengxiangyu -@platoneko -@qidaye -@qzsee -@SaintBacchus -@SeekingYang -@smallhibiscus -@sohardforaname -@song7788q -@spaces-X -@ssusieee -@stalary -@starocean999 -@SWJTU-ZhangLei -@TaoZex -@timelxy -@Wahno -@wangbo -@wangshuo128 -@wangyf0555 -@weizhengte -@weizuo93 -@wsjz -@wunan1210 -@xhmz -@xiaokang -@xiaokangguo -@xinyiZzz -@xy720 -@yangzhg -@Yankee24 -@yeyudefeng -@yiguolei -@yinzhijian -@yixiutt -@yuanyuan8983 -@zbtzbtzbt -@zenoyang -@zhangboya1 -@zhangstar333 -@zhannngchen -@ZHbamboo -@zhengshiJ -@zhenhb -@zhqu1148980644 -@zuochunwei -@zy-kkk -``` diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.1.md deleted file mode 100644 index 1f438d4137a68..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.1.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -{ - "title": "Release 1.2.1", - "language": "zh-CN", - "description": "在 1.2.1 版本中,Doris 团队已经修复了自 1.2.0 版本发布以来约 200 个问题或性能改进项。同时,1.2.1 版本也作为 1.2 的第一个迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。" -} ---- - -在 1.2.1 版本中,Doris 团队已经修复了自 1.2.0 版本发布以来约 200 个问题或性能改进项。同时,1.2.1 版本也作为 1.2 的第一个迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - - -# 优化改进 - -### 支持高精度小数 DecimalV3 - -支持精度更高和性能更好的 DecimalV3,相较于过去版本具有以下优势: - -- 可表示范围更大,取值范围都进行了明显扩充,有效数字范围 [1,38]。 - -- 性能更高,根据不同精度,占用存储空间可自适应调整。 - -- 支持更完备的精度推演,对于不同的表达式,应用不同的精度推演规则对结果的精度进行推演。 - -[DecimalV3](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/DECIMALV3) - -### 支持 Iceberg V2 - -支持 Iceberg V2 (仅支持 Position Delete,Equality Delete 会在后续版本支持),可以通过 Multi-Catalog 功能访问 Iceberg V2 格式的表。 - - -### 支持 OR 条件转 IN - -支持将 where 条件表达式后的 or 条件转换成 in 条件,在部分场景中可以提升执行效率。 [#15437](https://github.com/apache/doris/pull/15437) [#12872](https://github.com/apache/doris/pull/12872) - - -### 优化 JSONB 类型的导入和查询性能 - -优化 JSONB 类型的导入和查询性能,在测试数据上约有 70% 的性能提升。 [#15219](https://github.com/apache/doris/pull/15219) [#15219](https://github.com/apache/doris/pull/15219) - -### Stream load 支持带引号的 CSV 数据 - -通过导入任务参数 `trim_double_quotes` 来控制,默认值为 false,为 true 时表示裁剪掉 CSV 文件每个字段最外层的双引号。 [#15241](https://github.com/apache/doris/pull/15241) - -### Broker 支持腾讯云 CHDFS 和 百度云 BOS、AFS - -可以通过 Broker 访问存储在腾讯云 CHDFS 和 百度智能云 BOS、AFS 上的数据。 [#15297](https://github.com/apache/doris/pull/15297) [#15448](https://github.com/apache/doris/pull/15448) - -### 新增函数 - -新增函数 `substring_index`。 [#15373](https://github.com/apache/doris/pull/15373) - - - -# 问题修复 - -- 修复部分情况下,从 1.1.x 版本升级到 1.2.0 版本后,用户权限信息丢失的问题。 [#15144](https://github.com/apache/doris/pull/15144) - -- 修复使用 date/datetimev2 类型进行分区时,分区值错误的问题。 [#15094](https://github.com/apache/doris/pull/15094) - -- 修复部分已发布功能的 Bug,具体列表可参阅:[PR List](https://github.com/apache/doris/pulls?q=is%3Apr+label%3Adev%2F1.2.1-merged+is%3Aclosed) - - -# 升级注意事项 - -### 已知问题 - -- 请勿使用 JDK11 作为 BE 的运行时 JDK,会导致 BE Crash。 - -- 该版本对 csv 格式的读取性能有下降,会影响 csv 格式的导入和读取效率,我们会在下一个三位版本尽快修复 - -### 行为改变 - -- BE 配置项 `high_priority_flush_thread_num_per_store` 默认值由 1 改成 6,以提升 Routine Load 的写入效率。[#14775](https://github.com/apache/doris/pull/14775) - -- FE 配置项 `enable_new_load_scan_node` 默认值改为 true,将使用新的 File Scan Node 执行导入任务,对用户无影响。 [#14808](https://github.com/apache/doris/pull/14808) - -- 删除 FE 配置项 `enable_multi_catalog`,默认开启 Multi-Catalog 功能。 - -- 默认强制开启向量化执行引擎。会话变量 `enable_vectorized_engine` 将不再生效,如需重新生效,需将 FE 配置项 `disable_enable_vectorized_engine` 设为 false,并重启 FE。 [#15213](https://github.com/apache/doris/pull/15213) - -# 致谢 - -有 45 位贡献者参与到 1.2.1 版本的开发与完善中,感谢他们的付出,他们分别是: - -@adonis0147 - -@AshinGau - -@BePPPower - -@BiteTheDDDDt - -@ByteYue - -@caiconghui - -@cambyzju - -@chenlinzhong - -@dataroaring - -@Doris-Extras - -@dutyu - -@eldenmoon - -@englefly - -@freemandealer - -@Gabriel39 - -@HappenLee - -@Henry2SS - -@hf200012 - -@jacktengg - -@Jibing-Li - -@Kikyou1997 - -@liaoxin01 - -@luozenglin - -@morningman - -@morrySnow - -@mrhhsg - -@nextdreamblue - -@qidaye - -@spaces-X - -@starocean999 - -@wangshuo128 - -@weizuo93 - -@wsjz - -@xiaokang - -@xinyiZzz - -@xutaoustc - -@yangzhg - -@yiguolei - -@yixiutt - -@Yulei-Yang - -@yuxuan-luo - -@zenoyang - -@zhangstar333 - -@zhannngchen - -@zhengshengjun - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.2.md deleted file mode 100644 index 1d53fae90fee5..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.2.md +++ /dev/null @@ -1,242 +0,0 @@ ---- -{ - "title": "Release 1.2.2", - "language": "zh-CN", - "description": "在 1.2.2 版本中,Doris 团队已经修复了自 1.2.1 版本发布以来超过 200 个问题或性能改进项。同时,1.2.2 版本也作为 1.2.1 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。" -} ---- - -在 1.2.2 版本中,Doris 团队已经修复了自 1.2.1 版本发布以来超过 200 个问题或性能改进项。同时,1.2.2 版本也作为 1.2.1 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - - -# New Feature - -### 数据湖分析 - -- **支持自动同步 Hive Metastore 元数据信息。** 默认情况下外部数据源的元数据变更,如创建或删除表、加减列等操作不会同步给 Doris,用户需要使用 `REFRESH CATALOG` 命令手动刷新元数据。在 1.2.2 版本中支持自动刷新 Hive Metastore 元数据信息,通过让 FE 节点定时读取 HMS 的 notification event 来感知 Hive 表元数据的变更情况。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/) - -- **支持读取 Iceberg Snapshot 以及查询 Snapshot 历史。** 在执行 Iceberg 数据写入时,每一次写操作都会产生一个新的快照。默认情况下通过 Apache Doris 读取 Iceberg 表仅会读取最新版本的快照。在 1.2.2 版本中可以使用 `FOR TIME AS OF` 和 `FOR VERSION AS OF` 语句,根据快照 ID 或者快照产生的时间读取历史版本的数据,也可以使用 iceberg_meta 表函数查询指定表的快照信息。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg) - -- JDBC Catalog 支持 PostgreSQL、Clickhouse、Oracle、SQLServer。 - -- **JDBC Catalog 支持 insert into 操作。** 在 Doris 中建立 JDBC Catalog 后,可以通过 insert into 语句直接写入数据,也可以将 Doris 执行完查询之后的结果写入 JDBC Catalog,或者是从一个 JDBC 外表将数据导入另一个 JDBC 外表。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/) - - -### 自动分桶推算 - -支持通过 `DISTRIBUTED BY HASH(……) BUCKETS AUTO` 语句设置自动分桶,系统帮助用户设定以及伸缩不同分区的分桶数,使分桶数保持在一个相对合适的范围内。 - -参考文档:[https://mp.weixin.qq.com/s/DSyZGJtjQZUYUsvfK0IcCg](https://mp.weixin.qq.com/s/DSyZGJtjQZUYUsvfK0IcCg) - - -### 新增函数 - -增加归类分析函数 `width_bucket` 。 - -参考文档:[https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/width-bucket/#description](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/width-bucket/#description) - - -# Behavior Changes - -### 默认情况下禁用 BE 的 Page Cache - -关闭此配置以优化内存使用并降低内存 OOM 的风险,但有可能增加一些小查询的查询延迟。如果您对查询延迟敏感,或者具有高并发小查询场景,可以配置 `disable_storage_page_cache=false` 以再次启用 Page Cache。 - -### 增加新 Session 变量 `group_by_and_having_use_alias_first` - -用于控制 group by 和 having 语句是否优先使用列的别名,而非从 From 语句里寻找列的名字,默认为 false。 - -# Improvement - -### Compaction 优化 - -- **支持 Vetical Compaction**。在过去版本中,宽列场景 Compaction 往往会带来大量的内存开销。在 1.2.2 版本中,Vertical Compaction 采用了按列组的方式进行数据合并,单次合并只需要加载部分列的数据,能够极大减少合并过程中的内存占用。在实际测试中,Vertical compaction 使用内存仅为原有 compaction 算法的 1/10,同时 Compaction 速率提升 15%。 - -- 支持 **Segment Compaction**。在过去版本中,当用户大数据量高频导入时可能会遇到 -238 以及 -235 问题,Segment Compaction 允许在导入数据的同时进行数据的合并,以有效控制 Segment 文件的数量,提升高频导入的系统稳定性。 - -参考文档:[https://doris.apache.org/docs/dev/advanced/best-practice/compaction](https://doris.apache.org/docs/dev/advanced/best-practice/compaction) - - -### 数据湖分析 - -- Hive Catalog 支持访问 Hive 1/2/3 版本。 - -- Hive Catalog 可以使用 Broker 访问数据存储在 JuiceFS 的 Hive。 - -- Iceberg Catalog 支持 Hive Metastore 和 Rest 作为元数据服务。 - -- ES Catalog 支持 元数据字段 _id 列映射。 - -参考文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/hive](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/hive) - -- 优化 Iceberg V2 表有大量删除行诗时的读取性能。 - -- 支持读取 Schema Evolution 后 Iceberg 表。 - -- Parquet Reader 正确处理列名大小写。 - - -### 其他 - -- 支持访问 Hadoop KMS 加密的 HDFS。 - -- 支持取消正在执行的导出任务。 - -参考文档:[https://doris.apache.org/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/CANCEL-EXPORT](https://doris.apache.org/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/CANCEL-EXPORT) - -- 将`explode_split` 函数执行效率优化 1 倍。 - -- 将 nullable 列的读取性能优化 3 倍。 - -- 优化 Memtracker 的部分问题,提高内存管理精度,优化内存应用。 - - -# BugFix - -- 修复了使用 Doris-Flink-Connector 导入数据时的内存泄漏问题;[#16430](https://github.com/apache/doris/pull/16430) - -- 修复了 BE 可能的线程调度问题,并减少了 BE 线程耗尽导致的 Fragment_sent_timeout。 - -- 修复了 datetimev2/decivalv3 的部分正确性和精度问题。 - -- 修复了 Light Schema Change 功能的各种已知问题。 - -- 修复了 bitmap 类型 Runtime Filter 的各种数据正确性问题。 - -- 修复了 1.2.1 版本中引入的 CSV 读取性能差的问题。 - -- 修复了 Spark Load 数据下载阶段导致的 BE OOM 问题。 - -- 修复了从 1.1.x 版升级到 1.2.x 版时可能出现的元数据兼容性问题。 - -- 修复了创建 JDBC Catalog 时的元数据问题。 - -- 修复了由于导入操作导致的 CPU 使用率高的问题。 - -- 修复了大量失败 Broker Load 作业导致的 FE OOM 问题。 - -- 修复了加载浮点类型时精度丢失的问题。 - -- 修复了 Stream Load 使用两阶段提交时出现的内存泄漏问题。 - -# 其他 - -添加指标以查看 BE 上的 Rowset 和 Segment 总数字 `doris_be_all_rowsets_num` 和 `doris_be_all_segments_num` - -# 致谢 - -有 53 位贡献者参与到 1.2.2 版本的开发与完善中,感谢他们的付出,他们分别是: - -@adonis0147 - -@AshinGau - -@BePPPower - -@BiteTheDDDDt - -@ByteYue - -@caiconghui - -@cambyzju - -@chenlinzhong - -@DarvenDuan - -@dataroaring - -@Doris-Extras - -@dutyu - -@englefly - -@freemandealer - -@Gabriel39 - -@HappenLee - -@Henry2SS - -@htyoung - -@isHuangXin - -@JackDrogon - -@jacktengg - -@Jibing-Li - -@kaka11chen - -@Kikyou1997 - -@Lchangliang - -@LemonLiTree - -@liaoxin01 - -@liqing-coder - -@luozenglin - -@morningman - -@morrySnow - -@mrhhsg - -@nextdreamblue - -@qidaye - -@qzsee - -@spaces-X - -@stalary - - -@starocean999 - -@weizuo93 - -@wsjz - -@xiaokang - -@xinyiZzz - -@xy720 - -@yangzhg - -@yiguolei - -@yixiutt - -@Yukang-Lian - -@Yulei-Yang - -@zclllyybb - -@zddr - -@zhangstar333 - -@zhannngchen - -@zy-kkk - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.3.md deleted file mode 100644 index 787dde46d247a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.3.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -{ - "title": "Release 1.2.3", - "language": "zh-CN", - "description": "在 1.2.3 版本中,Doris 团队已经修复了自 1.2.2 版本发布以来超过 200 个问题或性能改进项。同时,1.2.3 版本也作为 1.2.2 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。" -} ---- - -在 1.2.3 版本中,Doris 团队已经修复了自 1.2.2 版本发布以来超过 200 个问题或性能改进项。同时,1.2.3 版本也作为 1.2.2 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - - -# Improvement - -### JDBC Catalog - -- 支持通过 JDBC Catalog 连接到另一个 Doris 数据库。 - -目前 JDBC Catalog 连接 Doris 只支持用 5.x 版本的 JDBC jar 包。如果使用 8.x JDBC jar 包可能会出现列类型无法匹配问题。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/#doris](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/#doris) - -- 支持通过参数 `only_specified_database` 来同步指定的数据库。 - -- 支持通过 `lower_case_table_names` 参数控制是否以小写形式同步表名,解决表名区分大小写的问题。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc) - -- 优化 JDBC Catalog 的读取性能。 - -### Elasticsearch Catalog - -- 支持 Array 类型映射。 - -- 支持通过 `like_push_down` 属性下推 like 表达式来控制 ES 集群的 CPU 开销。 - -参考文档:[https://doris.apache.org/docs/dev/lakehouse/multi-catalog/es](https://doris.apache.org/docs/dev/lakehouse/multi-catalog/es) - -### Hive Catalog - -- 支持 Hive 表默认分区 `__Hive_default_partition__`。 - -- Hive Metastore 元数据自动同步支持压缩格式的通知事件。 - -### 动态分区优化 - -- 支持通过 storage_medium 参数来控制创建动态分区的默认存储介质。 - -参考文档:[https://doris.apache.org/docs/dev/advanced/partition/dynamic-partition](https://doris.apache.org/docs/dev/advanced/partition/dynamic-partition) - - -### 优化 BE 的线程模型 - -- 优化 BE 的线程模型,以避免频繁创建和销毁线程所带来的稳定性问题。 - -# Bug 修复 - -- 修复了部分 Unique Key 模型 Merge-on-Write 表的问题; - -- 修复了部分 Compaction 相关问题; - -- 修复了部分 Delete 语句导致的数据问题; - -- 修复了部分 Query 执行问题; - -- 修复了在某些操作系统上使用 JDBC Catalog 导致 BE 宕机的问题; - -- 修复了部分 Multi-Catalog 的问题; - -- 修复了部分内存统计和优化问题; - -- 修复了部分 DecimalV3 和 date/datetimev2 的相关问题。 - -- 修复了部分导入过程中的稳定性问题; - -- 修复了部分 Light Schema Change 的问题; - -- 修复了使用 `datetime` 类型创建批处理分区的问题; - -- 修复了 Broker Load 大数据量导入失败而导致的 FE 内存使用过高的问题; - -- 修复了删除表后无法取消 Stream Load 的问题; - -- 修复了某些情况下查询 `information_schema` 超时的问题; - -- 修复了使用 `select outfile` 并发数据导出导致 BE 宕机的问题; - -- 修复了事务性插入操作导致内存泄漏的问题; - -- 修复了部分查询和导入 Profile 的问题,并支持通过 FE web ui 直接下载 Profile 文件; - -- 修复了 BE Tablet GC 线程导致 IO 负载过高的问题; - -- 修复了 Kafka Routine Load 中提交 Offset 不准确的问题。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.4.md deleted file mode 100644 index bbc7c5bb42d75..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.4.md +++ /dev/null @@ -1,159 +0,0 @@ ---- -{ - "title": "Release 1.2.4", - "language": "zh-CN", - "description": "在 1.2.4 版本中,Doris 团队已经修复了自 1.2.3 版本发布以来近 150 个问题或性能改进项。同时,1.2.4 版本也作为 1.2.3 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。" -} ---- - -在 1.2.4 版本中,Doris 团队已经修复了自 1.2.3 版本发布以来近 150 个问题或性能改进项。同时,1.2.4 版本也作为 1.2.3 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - -# Behavior Changed - -- 针对 Date/DatetimeV2 和 DecimalV3 类型,在 `DESCRIBLE` 和 `SHOW CREATE TABLE` 语句的结果中,将不再显示为 Date/DatetimeV2 或 DecimalV3,而直接显示为 Date/Datetime 或 Decimal。 - - 这个改动用于兼容部分 BI 系统。如果想查看列的实际类型,可以通过 `DESCRIBE ALL` 语句查看。 - -- 查询 `information_schema` 库中的表时,默认不再返回 External Catalog 中的元信息。 - - 这个改动避免了因 External Catalog 的连接问题导致的 information_schema 库不可查的问题,从而解决部分 BI 系统与 Doris 配合使用的问题。可以通过 FE 的配置项 `infodb_support_ext_catalog `控制,默认为 false,即不返回 External Catalog 中的元信息。 - -# Improvement - -### JDBC Catalog - -- 支持通过 JDBC Catalog 连接其他 Trino/Presto 集群 - -​ 参考文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#trino](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#trino) - -- JDBC Catalog 连接 Clickhouse 数据源支持 Array 类型映射 - -​ 参考文档:[https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#clickhouse](https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/jdbc#clickhouse) - -### Spark Load - -- Spark Load 支持 Resource Manager HA 相关配置 - -​ 参考 PR: [https://github.com/apache/doris/pull/15000](https://github.com/apache/doris/pull/15000) - -# Bug Fixes - -- 修复 Hive Catalog 的若干连通性问题。 - -- 修复 Hudi Catalog 的若干问题。 - -- 优化 JDBC Catalog 的连接池,避免过多的连接。 - -- 修复通过 JDBC Catalog 从另一个 Doris 集群导入数据是会发生 OOM 的问题。 - -- 修复若干查询和导入的规划问题。 - -- 修复 Unique Key Merge-On-Write 表的若干问题。 - -- 修复若干 BDBJE 问题,解决某些情况下 FE 元数据异常的问题。 - -- 修复 `CREATE VIEW` 语句不支持 Table Valued Function 的问题。 - -- 修复若干内存统计的问题。 - -- 修复读取 Parquet/ORC 表的若干问题。 - -- 修复 DecimalV3 的若干问题。 - -- 修复 `SHOW QUERY/LOAD PROFILE` 的若干问题。 - -# 致谢 - -有 47 位贡献者参与到 1.2.4 的完善和发布中,感谢他们的辛劳付出: - -@zy-kkk - -@zhannngchen - -@zhangstar333 - -@yixiutt - -@yiguolei - -@xinyiZzz - -@xiaokang - -@wsjz - -@wangbo - -@starocean999 - -@sohardforaname - -@siriume - -@pingchunzhang - -@nextdreamblue - -@mymeiyi - -@mrhhsg - -@morrySnow - -@morningman - -@luwei16 - -@luozenglin - -@liujinhui1994 - -@liaoxin01 - -@kaka11chen - -@jeffreys-cat - -@jacktengg - -@gavinchou - -@dutyu - -@dataroaring - -@chenlinzhong - -@caoliang-web - -@cambyzju - -@adonis0147 - -@Yulei-Yang - -@Yukang-Lian - -@SWJTU-ZhangLei - -@Kikyou1997 - -@Jibing-Li - -@JackDrogon - -@HappenLee - -@GoGoWen - -@Gabriel39 - -@Doris-Extras - -@CalvinKirs - -@Cai-Yao - -@ByteYue - -@BiteTheDDDDt - -@BePPPower diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.5.md deleted file mode 100644 index 0ccdd8c136aa0..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.5.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -{ - "title": "Release 1.2.5", - "language": "zh-CN", - "description": "在 1.2.5 版本中,Doris 团队已经修复了自 1.2.4 版本发布以来近 210 个问题或性能改进项。同时,1.2.5 版本也作为 1.2.4 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。" -} ---- - -在 1.2.5 版本中,Doris 团队已经修复了自 1.2.4 版本发布以来近 210 个问题或性能改进项。同时,1.2.5 版本也作为 1.2.4 的迭代版本,具备更高的稳定性,建议所有用户升级到这个版本。 - -# Behavior Changed - -- BE 启动脚本会检查系统的最大文件句柄数需大于等于 65536,否则启动失败。 - -- BE 配置项 `enable_quick_compaction` 默认设为 true。即默认开启 Quick Compaction 功能。该功能用于优化大批量导入情况下的小文件问题。 - -- 修改表的动态分区属性后,将不再立即生效,而是统一等待下一次动态分区表的任务调度,以避免一些死锁问题。 - -# Improvement - -- 优化 bthread 和 pthread 的使用,减少查询过程中的 RPC 阻塞问题。 - -- FE 前端页面的 Profile 页面增加下载 Profile 的按钮。 - -- 新增 FE 配置 `recover_with_skip_missing_version`,用于在某些故障情况下,查询跳过有问题的数据副本。 - -- 行级权限功能支持 Catalog 外表。 - -- Hive Catalog 支持 BE 端自动刷新 kerberos 票据,无需手动刷新。 - -- JDBC Catalog 支持通过 MySQL/ClickHouse 系统库(`information_schema`)下的表。 - -# Bug Fixes - -- 修复低基数列优化导致的查询结果不正确的问题 - -- 修复若干访问 HDFS 的认证和兼容性问题。 - -- 修复若干浮点和 decimal 类型的问题。 - -- 修复若干 date/datetimev2 类型的问题。 - -- 修复若干查询执行和规划的问题。 - -- 修复 JDBC Catalog 的若干问题。 - -- 修复 Hive Catalog 的若干查询相关问题,以及 Hive Metastore 元数据同步的问题。 - -- 修复 `show load profile` 结果不正确的问题。 - -- 修复若干内存相关问题。 - -- 修复 `CREATE TABLE AS SELECT` 功能的若干问题。 - -- 修复 JSONB 类型在不支持 avx2 的机型上导致 BE 宕机的问题。 - -- 修复动态分区的若干问题。 - -- 修复 TopN 查询优化的若干问题。 - -- 修复 Unique Key Merge-on-Write 表模型的若干问题。 - - -# 致谢 - -有 58 贡献者参与到 1.2.5 的完善和发布中,感谢他们的辛劳付出: - -@adonis0147 - -@airborne12 - -@AshinGau - -@BePPPower - -@BiteTheDDDDt - -@caiconghui - -@CalvinKirs - -@cambyzju - -@caoliang-web - -@dataroaring - -@Doris-Extras - -@dujl - -@dutyu - -@fsilent - -@Gabriel39 - -@gitccl - -@gnehil - -@GoGoWen - -@gongzexin - -@HappenLee - -@herry2038 - -@jacktengg - -@Jibing-Li - -@kaka11chen - -@Kikyou1997 - -@LemonLiTree - -@liaoxin01 - -@LiBinfeng-01 - -@luwei16 - -@Moonm3n - -@morningman - -@mrhhsg - -@Mryange - -@nextdreamblue - -@nsnhuang - -@qidaye - -@Shoothzj - -@sohardforaname - -@stalary - -@starocean999 - -@SWJTU-ZhangLei - -@wsjz - -@xiaokang - -@xinyiZzz - -@yangzhg - -@yiguolei - -@yixiutt - -@yujun777 - -@Yulei-Yang - -@yuxuan-luo - -@zclllyybb - -@zddr - -@zenoyang - -@zhangstar333 - -@zhannngchen - -@zxealous - -@zy-kkk - -@zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.6.md deleted file mode 100644 index e8f9ef0fa9be2..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.6.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -{ - "title": "Release 1.2.6", - "language": "zh-CN", - "description": "感谢以下开发者在 Apache Doris 1.2.6 版本中所做的贡献;" -} ---- - -# Behavior Changed - -- 新增 BE 配置项 `allow_invalid_decimalv2_triteral` 以控制是否可以导入超过小数精度的 Decimal 类型数据,用于兼容之前的逻辑。 - -# Bug Fixes - -## 查询 - -- 修复了部分查询计划的问题; -- 支持会话变量 `sql_select_limit` 和 `have_query_cache` 用于与老版本的 MySQL 客户端兼容; -- 优化 Cold Run 查询性能; -- 修复 Expr Context 类内存泄漏的问题; -- 修复 `explode_split` 函数在某些情况下执行错误的问题。 - -## Multi Catalog - -- 修复了同步 Hive 元数据时 FE 回放元数据日志失败的问题; -- 修复了 `refresh catalog` 操作可能导致 FE OOM 的问题; -- 修复了 JDBC Catalog 无法正确处理 `0000-00-00` 日期格式的问题; -- 修复了 kerberos ticket 无法自动刷新的问题; -- 优化了 Hive Partition 裁剪性能; -- 修复 JDBC Catalog 中 Trino 和 Presto 不一致的行为; -- 修复了在某些环境中无法使用 HDFS 短路读取来提高查询效率的问题; -- 修复无法读取 CHDFS Iceberg 表的问题。 - -## 存储 - -- 修复 Merge-on-Write 表中删除 bitmap 逻辑计算错误的问题; -- 修复了若干 BE 内存问题; -- 修复了表数据 Snappy 压缩的问题; -- 修复 jemalloc 在某些情况下可能导致 BE 崩溃的问题。 - -## 其他 - -- 修复了部分 Java UDF 相关问题; -- 修复了 `recover table` 操作错误地触发动态分区创建的问题; -- 修复了通过 Broker Load 导入 orc 文件时的时区问题; -- 修复新添加的 `PERCENT` 关键字导致 Routine Load 作业的回放元数据失败的问题; -- 修复了 `truncate` 操作无法作用于非分区表的问题; -- 修复了由于 `show snapshot` 操作导致 MySQL 连接丢失的问题; -- 优化锁逻辑以降低创建表时发生锁超时错误的概率; -- 优化了导入发生错误时的报错信息。 - -# 致谢 - -感谢以下开发者在 Apache Doris 1.2.6 版本中所做的贡献; - -@amorynan - -@BiteTheDDDDt - -@caoliang-web - -@dataroaring - -@Doris-Extras - -@dutyu - -@Gabriel39 - -@HHoflittlefish777 - -@htyoung - -@jacktengg - -@jeffreys-cat - -@kaijchen - -@kaka11chen - -@Kikyou1997 - -@KnightLiJunLong - -@liaoxin01 - -@LiBinfeng-01 - -@morningman - -@mrhhsg - -@sohardforaname - -@starocean999 - -@vinlee19 - -@wangbo - -@wsjz - -@xiaokang - -@xinyiZzz - -@yiguolei - -@yujun777 - -@Yulei-Yang - -@zhangstar333 - -@zy-kkk diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.7.md deleted file mode 100644 index ef1edae8b9325..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.7.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -{ - "title": "Release 1.2.7", - "language": "zh-CN", - "description": "-添加了 havequerycache 变量以保证与 MySQL 生态系统兼容。 -添加 enablestrong consistencyread 以支持会话之间的强一致性读取。 -FE 指标支持用户级的查询计数器。" -} ---- - -# Bugfix - -- 修复了一些查询问题。 -- 修复了一些存储问题。 -- 修复一些小数精度问题。 -- 修复由无效的 sql_select_limit 会话变量值引起的查询错误。 -- 修复了无法使用 hdfs 短路读取的问题。 -- 修复了腾讯云 cosn 无法访问的问题。 -- 修复了一些 Hive Catalog kerberos 访问的问题。 -- 修复 Stream load Profile 无法使用的问题。 -- 修复 Promethus 监控参数格式问题。 -- 修复了创建大量 Tablet 时建表超时的问题。 - - -# 最新特性 - -- Unique Key 模型支持将数组类型作为 Key 列; --添加了 have_query_cache 变量以保证与 MySQL 生态系统兼容。 --添加 enable_strong _consistency_read 以支持会话之间的强一致性读取。 --FE 指标支持用户级的查询计数器。 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.8.md deleted file mode 100644 index f8162c2bf055f..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v1.2/release-1.2.8.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -{ - "title": "Release 1.2.8", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 1.2.8 版本已于 2024 年 3 月 09 日正式与大家见面。该版本对多个功能进行了更新优化,旨在更好地满足用户的需求,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 1.2.8](https://doris.apache.org/download/) 版本已于 2024 年 3 月 09 日正式与大家见面。该版本对多个功能进行了更新优化,旨在更好地满足用户的需求,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 改进和优化 -- 修复若干查询执行的问题 -- 修复若干 Spark Load 相关的问题 -- 修复若干 Parquet/ORC 文件读取的问题。 -- 修复 Broker 进行因为 "FileSystem closed" 错误导致运行失败的问题。 -- 修复若干 Broker Load 相关的问题。 -- 修复若干 CTAS 操作相关的问题。 -- 修复若干备份恢复功能相关的问题。 -- 修复若干导出(Export/Outfile)相关的问题。 -- 修复 `replayEraseTable` 方法导致 FE 无法启动的问题。 -- 优化 Iceberg Catalog 元数据缓存的性能。 -- Audit Log 中新增 Catalog 列。 - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.0.md deleted file mode 100644 index 3913072e474db..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.0.md +++ /dev/null @@ -1,204 +0,0 @@ ---- -{ - "title": "Release 2.0.0", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 Release 版本已于 2023 年 8 月 11 日正式发布,有超过 275 位贡献者为 Apache Doris 提交了超过 4100 个优化与修复。" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 Release 版本已于 2023 年 8 月 11 日正式发布,有超过 275 位贡献者为 Apache Doris 提交了超过 4100 个优化与修复。 - -在 2.0.0 版本中,Apache Doris 在标准 Benchmark 数据集上盲测查询性能得到超过 10 倍的提升、在日志分析和湖仓一体场景能力得到全面加强、数据更新效率和写入效率都更加高效稳定、支持了更加完善的多租户和资源隔离机制、在资源弹性与存算分离方向踏上了新的台阶、增加了一系列面向企业用户的易用性特性。在经过近半年的开发、测试与稳定性调优后,这一版本已经正式稳定可用,欢迎大家下载使用! - -> 下载链接:[https://doris.apache.org/download](https://doris.apache.org/download) -> -> GitHub 源码:[https://github.com/apache/doris/tree/2.0.0-rc04](https://github.com/apache/doris/tree/2.0.0-rc04) - - -## 盲测性能 10 倍以上提升! - -在 Apache Doris 2.0.0 版本中,我们引入了全新查询优化器和自适应的并行执行模型,结合存储层、执行层以及执行算子上的一系列性能优化手段,实现了盲测性能 10 倍以上的提升。以 SSB-Flat 和 TPC-H 标准测试数据集为例,在相同的集群和机器配置下,新版本宽表场景盲测较之前版本性能提升 10 倍、多表关联场景盲测提升了 13 倍,实现了巨大的性能飞跃。 - -### 更智能的全新查询优化器 - -全新查询优化器采取了更先进的 Cascades 框架、使用了更丰富的统计信息、实现了更智能化的自适应调优,在绝大多数场景无需任何调优和 SQL 改写即可实现极致的查询性能,同时对复杂 SQL 支持得更加完备、可完整支持 TPC-DS 全部 99 个 SQL。通过全新查询优化器,我们可以胜任更多真实业务场景的挑战,减少因人工调优带来的人力消耗,真正助力业务提效。 - -以 TPC-H 为例,全新优化器在未进行任何手工调优和 SQL 改写的情况下,绝大多数 SQL 仍领先于旧优化器手工调优后的性能表现!而在超过百家 2.0 版本提前体验用户的真实业务场景中,绝大多数原始 SQL 执行效率得以极大提升! - -参考文档:[更智能的全新查询优化器](../../query-acceleration/optimization-technology-principle/query-optimizer.md) - -如何开启:`SET enable_nereids_planner=true` 在 Apache Doris 2.0-beta 版本中全新查询优化器已经默认开启 - -### 倒排索引支持 - -在 2.0.0 版本中我们对现有的索引结构进行了丰富,引入了倒排索引来应对多维度快速检索的需求,在关键字模糊查询、等值查询和范围查询等场景中均取得了显著的查询性能和并发能力提升。 - -在此以某头部手机厂商的用户行为分析场景为例,在之前的版本中,随着并发量的上升、查询耗时逐步提升,性能下降趋势比较明显。而在 2.0.0 版本开启倒排索引后,随着并发量的提升查询性能始终保持在毫秒级。在同等查询并发量的情况下,2.0.0 版本在该用户行为分析场景中并发查询性能提升了 5-90 倍! - - -### 点查询并发能力提升 20 倍 - -在银行交易流水单号查询、保险代理人保单查询、电商历史订单查询、快递运单号查询等 Data Serving 场景,会面临大量一线业务人员及 C 端用户基于主键 ID 检索整行数据的需求,同时在用户画像、实时风控等场景中还会面对机器大规模的程序化查询,在过去此类需求往往需要引入 Apache HBase 等 KV 系统来应对点查询、Redis 作为缓存层来分担高并发带来的系统压力。 -对于基于列式存储引擎构建的 Apache Doris 而言,此类的点查询在数百列宽表上将会放大随机读取 IO,并且查询优化器和执行引擎对于此类简单 SQL 的解析、分发也将带来不必要的额外开销,负责 SQL 解析的 FE 模块往往会成为限制并发的瓶颈,因此需要更高效简洁的执行方式。 - -在 Apache Doris 2.0.0 版本,我们引入了全新的行列混合存储以及行级 Cache,使得单次读取整行数据时效率更高、大大减少磁盘访问次数,同时引入了点查询短路径优化、跳过执行引擎并直接使用快速高效的读路径来检索所需的数据,并引入了预处理语句复用执行 SQL 解析来减少 FE 开销。 - -通过以上一系列优化,Apache Doris 2.0.0 版本在并发能力上实现了数量级的提升,实现了单节点 30000 QPS 的并发表现,较过去版本点查询并发能力提升超 20 倍! - -基于以上能力,Apache Doris 可以更好应对高并发数据服务场景的需求,替代 HBase 在此类场景中的能力,减少复杂技术栈带来的维护成本以及数据的冗余存储。 - -### 自适应的并行执行模型 - -在实现极速分析体验的同时,为了保证多个混合分析负载的执行效率以及查询的稳定性,在 2.0.0 版本中我们引入了 Pipeline 执行模型作为查询执行引擎。在 Pipeline 执行引擎中,查询的执行是由数据来驱动控制流变化的,各个查询执行过程之中的阻塞算子被拆分成不同 Pipeline,各个 Pipeline 能否获取执行线程调度执行取决于前置数据是否就绪,实现了阻塞操作的异步化、可以更加灵活地管理系统资源,同时减少了线程频繁创建和销毁带来的开销,并提升了 Apache Doris 对于 CPU 的利用效率。因此 Apache Doris 在混合负载场景中的查询性能和稳定性都得到了全面提升。 - -参考文档:[查询执行引擎](../../query-acceleration/optimization-technology-principle/pipeline-execution-engine.md) - -如何开启:` Set enable_pipeline_engine = true ` -- 该功能在 Apache Doris 2.0 版本中将默认开启,BE 在进行查询执行时默认将 SQL 的执行模型转变 Pipeline 的执行方式。 -- `parallel_pipeline_task_num`代表了 SQL 查询进行查询并发的 Pipeline Task 数目。Apache Doris 默认配置为`0`,此时 Apache Doris 会自动感知每个 BE 的 CPU 核数并把并发度设置为 CPU 核数的一半,用户也可以根据自己的实际情况进行调整。 -- 对于从老版本升级的用户,系统自动将该参数设置成老版本中`parallel_fragment_exec_instance_num`的值。 - -## 更统一多样的分析场景 - -作为最初诞生于报表分析场景的 OLAP 系统,Apache Doris 在这一擅长领域中做到了极致,凭借自身优异的分析性能和极简的使用体验收获到了众多用户的认可,在诸如实时看板(Dashboard)、实时大屏、业务报表、管理驾驶舱等实时报表场景以及自助 BI 平台、用户行为分析等即席查询场景获得了极为广泛的运用。 - -而随着用户规模的极速扩张,越来越多用户开始希望通过 Apache Doris 来简化现有的繁重大数据技术栈,减少多套系统带来的使用及运维成本。因此 Apache Doris 也在不断拓展应用场景的边界,从过去的实时报表和 Ad-hoc 等典型 OLAP 场景到湖仓一体、ELT/ETL、日志检索与分析、高并发 Data Serving 等更多业务场景,而日志检索分析、湖仓一体也是我们在 Apache Doris 最新版本中的重要突破。 - -### 10 倍以上性价比的日志检索分析平台 - -在 Apache Doris 2.0.0 版本中,我们提供了原生的半结构化数据支持,在已有的 JSON、Array 基础之上增加了复杂类型 Map,并基于 Light Schema Change 功能实现了 Schema Evolution。与此同时,2.0.0 版本新引入的倒排索引和高性能文本分析算法全面加强了 Apache Doris 在日志检索分析场景的能力,可以支持更高效的任意维度分析和全文检索。结合过去在大规模数据写入和低成本存储等方面的优势,相对于业内常见的日志分析解决方案,基于 Apache Doris 构建的新一代日志检索分析平台实现了 10 倍以上的性价比提升。 - -### 湖仓一体 - -在 Apache Doris 1.2 版本中,我们引入了 Multi-Catalog 功能,支持了多种异构数据源的元数据自动映射与同步,实现了便捷的元数据和数据打通。在 2.0.0 版本中,我们进一步对湖仓一体进行了加强,引入了更多数据源,并针对用户的实际生产环境做了诸多性能优化,在真实工作负载情况下查询性能得到大幅提升。 - -在数据源方面,Apache Doris 2.0.0 版本支持了 Hudi Copy-on-Write 表的 Snapshot Query 以及 Merge-on-Read 表的 Read Optimized Query,截止目前已经支持了 Hive、Hudi、Iceberg、Paimon、MaxCompute、Elasticsearch、Trino、ClickHouse 等数十种数据源,几乎支持了所有开放湖仓格式和 Metastore。同时还支持通过 Apache Range 对 Hive Catalog 进行鉴权,可以无缝对接用户现有的权限系统。同时还支持可扩展的鉴权插件,为任意 Catalog 实现自定义的鉴权方式。 - -在性能方面,利用 Apache Doris 自身高效的分布式执行框架、向量化执行引擎以及查询优化器,结合 2.0 版本中对于小文件和宽表的读取优化、本地文件 Cache、ORC/Parquet 文件读取效率优化、弹性计算节点以及外表的统计信息收集,Apaceh Doris 在 TPC-H 场景下查询 Hive 外部表相较于 Presto/Trino 性能提升 3-5 倍。 - -通过这一系列优化,Apache Doris 湖仓一体的能力得到极大拓展,在如下场景可以更好发挥其优异的分析能力: - -- 湖仓查询加速:为数据湖、Elasticsearch 以及各类关系型数据库提供优秀的查询加速能力,相比 Hive、Presto、Spark 等查询引擎实现数倍的性能提升。 - -- 数据导入与集成:基于可扩展的连接框架,增强 Apache Doris 在数据集成方面的能力,让数据更便捷的被消费和处理。用户可以通过 Apache Doris 对上游的多种数据源进行统一的增量、全量同步,并利用 Apache Doris 的数据处理能力对数据进行加工和展示,也可以将加工后的数据写回到数据源,或提供给下游系统进行消费。 - -- 统一数据分析网关:利用 Apache Doris 构建完善可扩展的数据源连接框架,支持用户将这些外部数据源统一到 Doris 的元数据映射结构上,当用户通过 Doris 查询这些外部数据源时,能够提供一致的查询体验。 - -## 高效的数据更新 - -在实时分析场景中,数据更新是非常普遍的需求。用户不仅希望能够实时查询最新数据,也希望能够对数据进行灵活的实时更新。典型场景如电商订单分析、物流运单分析、用户画像等,需要支持数据更新类型包括整行更新、部分列更新、按条件进行批量更新或删除以及整表或者整个分区的重写(inser overwrite)。 - -高效的数据更新一直是大数据分析领域的痛点,离线数据仓库 hive 通常只支持分区级别的数据更新,而 Hudi 和 Iceberg 等数据湖,虽然支持 Record 级别更新,但是通常采用 Merge-on-Read 或 Copy-on-Write 的方式,仅适合低频批量更新而不适合实时高频更新。 - -在 Apache Doris 1.2 版本,我们在 Unique Key 主键模型实现了 Merge-on-Write 的数据更新模式,数据在写入阶段就能完成所有的数据合并工作,因此查询性能得到 5-10 倍的提升。在 Apache Doris 2.0 版本我们进一步加强了数据更新能力,主要包括: - -- 对写入性能进行了大幅优化,高并发写入和混合负载写入场景的稳定性也显著提升。例如在单 Tablet 7GB 的重复导入测试中,数据导入的耗时从约 30 分钟缩短到了 90s,写入效率提升 20 倍;以某头部支付产品的场景压测为例,在 20 个并行写入任务下可以达到 30 万条每秒的写入吞吐,并且持续写入十几个小时后仍然表现非常稳定。 - -- 支持部分列更新功能。在 2.0.0 版本之前 Apache Doris 仅支持通过 Aggregate Key 聚合模型的 Replace_if_not_null 进行部分列更新,在 2.0.0 版本中我们增加了 Unique Key 主键模型的部分列更新,在多张上游源表同时写入一张宽表时,无需由 Flink 进行多流 Join 打宽,直接写入宽表即可,减少了计算资源的消耗并大幅降低了数据处理链路的复杂性。同时在面对画像场景的实时标签列更新、订单场景的状态更新时,直接更新指定的列即可,较过去更为便捷。 - -- 支持复杂条件更新和条件删除。在 2.0.0 版本之前 Unique Key 主键模型仅支持简单 Update 和 Delete 操作,在 2.0.0 版本中我们基于 Merge-on-Write 实现了复杂条件的数据更新和删除,并且执行效率更加高效。基于以上优化,Apache Doris 对于各类数据更新需求都有完备的能力支持! - -## 更加高效稳定的数据写入 - -### 导入性能进一步提升 - -聚焦于实时分析,我们在过去的几个版本中在不断增强实时分析能力,其中端到端的数据实时写入能力是优化的重要方向,在 Apache Doris 2.0 版本中,我们进一步强化了这一能力。通过 Memtable 不使用 Skiplist、并行下刷、单副本导入等优化,使得导入性能有了大幅提升: - -- 使用 Stream Load 对 TPC-H 144G lineitem 表原始数据进行三副本导入 48 buckets Duplicate 表,吞吐量提升 100%。 -- 使用 Stream Load 对 TPC-H 144G lineitem 表原始数据进行三副本导入 48 buckets Unique Key 表,吞吐量提升 200%。 -- 使用 insert into select 对 TPC-H 144G lineitem 表进行导入 48 buckets Duplicate 表,吞吐量提升 50%。 -- 使用 insert into select 对 TPC-H 144G lineitem 表进行导入 48 buckets Unique Key 表,吞吐提升 150%。 - - -### 数据高频写入更稳定 - -在高频数据写入过程中,小文件合并和写放大问题以及随之而来的磁盘 I/O 和 CPU 资源开销是制约系统稳定性的关键,因此在 2.0 版本中我们引入了 Vertical Compaction 以及 Segment Compaction,用以彻底解决 Compaction 内存问题以及写入过程中的 Segment 文件过多问题,资源消耗降低 90%,速度提升 50%,内存占用仅为原先的 10%。 - - -### 数据表结构自动同步 - -在过去版本中我们引入了毫秒级别的 Schema Change,而在最新版本 Flink-Doris-Connector 中,我们实现了从 MySQL 等关系型数据库到 Apache Doris 的一键整库同步。在实际测试中单个同步任务可以承载数千张表的实时并行写入,从此彻底告别过去繁琐复杂的同步流程,通过简单命令即可实现上游业务数据库的表结构及数据同步。同时当上游数据结构发生变更时,也可以自动捕获 Schema 变更并将 DDL 动态同步到 Doris 中,保证业务的无缝运行。 - -## 更加完善的多租户资源隔离 - -多租户与资源隔离的主要目的是为了保证高负载时避免相互发生资源抢占,Apache Doris 在过去版本中推出了资源组(Resource Group)的硬隔离方案,通过对同一个集群内部的 BE 打上标签,标签相同的 BE 会组成一个资源组。数据入库时会按照资源组配置将数据副本写入到不同的资源组中,查询时按照资源组的划分使用对应资源组上的计算资源进行计算,例如将读、写流量放在不同的副本上从而实现读写分离,或者将在线与离线业务划分在不同的资源组、避免在离线分析任务之间的资源抢占。 - -资源组这一硬隔离方案可以有效避免多业务间的资源抢占,但在实际业务场景中可能会存在某些资源组紧张而某些资源组空闲的情况发生,这时需要有更加灵活的方式进行空闲资源的共享,以降低资源空置率。因此在 2.0.0 版本中我们增加了 Workload Group 资源软限制的方案,通过对 Workload 进行分组管理,以保证内存和 CPU 资源的灵活调配和管控。 - -通过将 Query 与 Workload Group 相关联,可以限制单个 Query 在 BE 节点上的 CPU 和内存资源的百分比,并可以配置开启资源组的内存软限制。当集群资源紧张时,将自动 Kill 组内占用内存最大的若干个查询任务以减缓集群压力。当集群资源空闲时,一旦 Workload Group 使用资源超过预设值时,多个 Workload 将共享集群可用空闲资源并自动突破阈值,继续使用系统内存以保证查询任务的稳定执行。Workload Group 还支持设置优先级,通过预先设置的优先级进行资源分配管理,来确定哪些任务可正常获得资源,哪些任务只能获取少量或没有资源。 - -与此同时,在 Workload Group 中我们还引入了查询排队的功能,在创建 Workload Group 时可以设置最大查询数,超出最大并发的查询将会进行队列中等待执行,以此来缓解高负载下系统的压力。 - -## 极致弹性与存算分离 - -过去 Apache Doris 凭借在易用性方面的诸多设计帮助用户大幅节约了计算与存储资源成本,而面向未来的云原生架构,我们已经走出了坚实的一步。 - -从降本增效的趋势出发,用户对于计算和存储资源的需求可以概括为以下几方面: - -- 计算资源弹性:面对业务计算高峰时可以快速进行资源扩展提升效率,在计算低谷时可以快速缩容以降低成本; - -- 存储成本更低:面对海量数据可以引入更为廉价的存储介质以降低成本,同时存储与计算单独设置、相互不干预; - -- 业务负载隔离:不同的业务负载可以使用独立的计算资源,避免相互资源抢占; - -- 数据管控统一:统一 Catalog、统一管理数据,可以更加便捷地分析数据。 - -存算一体的架构在弹性需求不强的场景具有简单和易于维护的优势,但是在弹性需求较强的场景有一定的局限。而存算分离的架构本质是解决资源弹性的技术手段,在资源弹性方面有着更为明显的优势,但对于存储具有更高的稳定性要求,而存储的稳定性又会进一步影响到 OLAP 的稳定性以及业务的存续性,因此也引入了 Cache 管理、计算资源管理、垃圾数据回收等一系列机制。 - -而在与 Apache Doris 社区广大用户的交流中,我们发现用户对于存算分离的需求可以分为以下三类: - -- 目前选择简单易用的存算一体架构,暂时没有资源弹性的需求; - -- 欠缺稳定的大规模存储,要求在 Apache Doris 原有基础上提供弹性、负载隔离以及低成本; - -- 有稳定的大规模存储,要求极致弹性架构、解决资源快速伸缩的问题,因此也需要更为彻底的存算分离架构; - -为了满足前两类用户的需求,Apache Doris 2.0 版本中提供了可以兼容升级的存算分离方案: -第一种,计算节点。2.0 版本中我们引入了无状态的计算节点 Compute Node,专门用于数据湖分析。相对于原本存储计算一体的混合节点,Compute Node 不保存任何数据,在集群扩缩容时无需进行数据分片的负载均衡,因此在数据湖分析这种具有明显高峰的场景中可以灵活扩容、快速加入集群分摊计算压力。同时由于用户数据往往存储在 HDFS/S3 等远端存储中,执行查询时查询任务会优先调度到 Compute Node 执行,以避免内表与外表查询之间的计算资源抢占。 - -第二种,冷热数据分层。在存储方面,冷热数据往往面临不同频次的查询和响应速度要求,因此通常可以将冷数据存储在成本更低的存储介质中。在过去版本中 Apache Doris 支持对表分区进行生命周期管理,通过后台任务将热数据从 SSD 自动冷却到 HDD,但 HDD 上的数据是以多副本的方式存储的,并没有做到最大程度的成本节约,因此对于冷数据存储成本仍然有较大的优化空间。在 Apache Doris 2.0 版本中推出了冷热数据分层功能,冷热数据分层功能使 Apache Doris 可以将冷数据下沉到存储成本更加低廉的对象存储中,同时冷数据在对象存储上的保存方式也从多副本变为单副本,存储成本进一步降至原先的三分之一,同时也减少了因存储附加的计算资源成本和网络开销成本。通过实际测算,存储成本最高可以降低超过 70%! - -面对更加彻底的存储计算分离需求,飞轮科技(SelectDB)技术团队设计并实现了全新的云原生存算分离架构(SelectDB Cloud),近一年来经历了大量企业客户的大规模使用,在性能、功能成熟度、系统稳定性等方面经受了真实生产环境的考验。在 Apache Doris 2.0.0 版本发布之际,飞轮科技宣布将这一经过大规模打磨后的成熟架构贡献至 Apache Doris 社区。这一工作预计将于 2023 年 10 月前后完成,届时全部存算分离的代码都将会提交到 Apache Doris 社区主干分支中,预计在 9 月广大社区用户就可以提前体验到基于存算分离架构的预览版本。 - -## 易用性进一步提升 - -除了以上功能需求外,在 Apache Doris 还增加了许多面向企业级特性的体验改进: - -### 支持 Kubernetes 容器化部署 - -在过去 Apache Doris 是基于 IP 通信的,在 K8s 环境部署时由于宿主机故障发生 Pod IP 漂移将导致集群不可用,在 2.0 版本中我们支持了 FQDN,使得 Apache Doris 可以在无需人工干预的情况下实现节点自愈,因此可以更好应对 K8s 环境部署以及灵活扩缩容。 - -### 跨集群数据复制 - -在 Apache Doris 2.0.0 版本中,我们可以通过 CCR 的功能在库/表级别将源集群的数据变更同步到目标集群,可根据场景精细控制同步范围;用户也可以根据需求灵活选择全量或者增量同步,有效提升了数据同步的灵活性和效率;此外 Dors CCR 还支持 DDL 同步,源集群执行的 DDL 语句可以自动同步到目标集群,从而保证了数据的一致性。Doris CCR 配置和使用也非常简单,简单操作即可快速完成跨集群数据复制。基于 Doris CCR 优异的能力,可以更好实现读写负载分离以及多机房备份,并可以更好支持不同场景的跨集群复制需求。 - -## 其他升级注意事项 - -- 1.2-lts 需要停机升级到 2.0.0,2.0-alpha 需要停机升级到 2.0.0 -- 查询优化器开关默认开启 `enable_nereids_planner=true`; -- 系统中移除了非向量化代码,所以 `enable_vectorized_engine` 参数将不再生效; -- 新增参数 `enable_single_replica_compaction`; -- 默认使用 datev2, datetimev2, decimalv3 来创建表,不支持 datev1,datetimev1,decimalv2 创建表; -- 在 JDBC 和 Iceberg Catalog 中默认使用 decimalv3; -- date type 新增 AGG_STATE; -- backend 表去掉 cluster 列; -- 为了与 BI 工具更好兼容,在 show create table 时,将 datev2 和 datetimev2 显示为 date 和 datetime。 -- 在 BE 启动脚本中增加了 max_openfiles 和 swap 的检查,所以如果系统配置不合理,be 有可能会启动失败; -- 禁止在 localhost 访问 FE 时无密码登录; -- 当系统中存在 Multi-Catalog 时,查询 information schema 的数据默认只显示 internal catalog 的数据; -- 限制了表达式树的深度,默认为 200; -- array string 返回值 单引号变双引号; -- 对 Doris 的进程名重命名为 DorisFE 和 DorisBE; -- AES 和 SM4 加解密函数的两参数版本行为变化,详见[对应函数文档](../../sql-manual/sql-functions/scalar-functions/encrypt-digest-functions/sm4-encrypt.md) - -## 正式踏上 2.0 之旅 - -在 Apache Doris 2.0.0 版本发布过程中,我们邀请了数百家企业参与新版本的打磨,力求为所有用户提供性能更佳、稳定性更高、易用性更好的数据分析体验。后续我们将会持续敏捷发版来响应所有用户对功能和稳定性的更高追求,预计 2.0 系列的第一个迭代版本 2.0.1 将于 8 月下旬发布,9 月会进一步发布 2.0.2 版本。在快速 Bugfix 的同时,也会不断将一些最新特性加入到新版本中。9 月份我们还将发布 2.1 版本的尝鲜版本,会增加一系列呼声已久的新能力,包括 Variant 可变数据类型以更好满足半结构化数据 Schema Free 的分析需求,多表物化视图,在导入性能方面持续优化、增加新的更加简洁的数据导入方式,通过自动攒批实现更加实时的数据写入,复合数据类型的嵌套能力等。 - -期待 Apache Doris 2.0 版本的正式发布为更多社区用户提供实时统一的分析体验,我们也相信 Apache Doris 2.0 版本会成为您在实时分析场景中的最理想选择。 - -## 致谢 - -再次向所有参与 Apache Doris 2.0.0 版本开发和测试的贡献者们表示最衷心的感谢,他们分别是: - -0xflotus、1330571、15767714253、924060929、ArmandoZ、AshinGau、BBB-source、BePPPower、Bears0haunt、BiteTheDDDDt、ByteYue、Cai-Yao、CalvinKirs、Centurybbx、ChaseHuangxu、CodeCooker17、DarvenDua、Dazhuwei、DongLiang-0、EvanTheBoy、FreeOnePlus、Gabriel39、GoGoWen、HHoflittlefish777、HackToday、HappenLee、Henry2SS、HonestManXin、JNSimba、JackDrogon、Jake-00、Jenson97Jibing-Li、Johnnyssc、JoverZhang、KassieZ、Kikyou1997、Larborator、Lchangliang、LemonLiTree、LiBinfeng-01、MRYOG、Mellorsssss、Moonm3n、Mryange、Myasuka、NetShrimp06、Reminiscent、SWJTU-ZhangLei、SaintBacchus、ShaoStaticTiger、Shoothzj、SilasKenneth、TangSiyang2001、Tanya-W、TeslaCN、TsukiokaKogane、UnicornLee、WinkerDu、WuWQ98、Xiaoccer、XieJiann、Yanko-7、Yukang-Lian、Yulei-Yang、ZI-MA、ZashJie、ZhangYu0123、Zhiyu-h、adonis0147、airborne12、alissa-tung、amorynan、beijita、bigben0204、bin41215、bingquanzhao、bobhan1、bowenliang123、brody715、caiconghui、cambyzju、caoliang-web、catpineapple、chenlinzhong、cjq9458、cnissnzg、colagy、csun5285、czzmmc、dataroaring、davidshtian、deadlinefen、deardeng、didiaode18、dong-shuai、dujl、dutyu、echo-hhj、eldenmoon、englefly、figurant、fornaix、fracly、freemandealer、fsilent、fuchanghai、gavinchou、git-hulk、gitccl、gnehil、guoxiaolongzte、gwxog、hailin0、hanyisong、haochengxia、haohuaijin、hechao-ustc、hello-stephen、herry2038、hey-hoho、hf200012、hqx871、httpshirley、htyoung、hubgeter、hufengkai、hust-hhb、isHuangXin、ixzc、jacktengg、jackwener、jeffreys-cat、jiugem、jixxiong、kaijchen、kaka11chen、levy5307、lexluo09、liangjiawei1110、liaoxin01、liugddx、liujinhui1994、liujiwen-up、liutang123、liuxinzero07、liwei9902、lljqy、lsy3993、luozenglin、luwei16、luzhijing、lvshaokang、maochongxin、meredith620、mklzl、mongo360、morningman、morrySnow、mrhhsg、myfjdthink、mymeiyi、nanfeng1999、neuyilan、nextdreamblue、niebayes、nikam14、pengxiangyu、pingchunzhang、platoneko、q763562998、qidaye、qzsee、reswqa、sepastian、shenxingwuying、shuke987、shysnow、siriume、sjyago、skyhitnow、smallhibiscus、sohardforaname、spaces-X、stalary、starocean999、superspeedone、taomengen、tarepanda1024、timyuer、ucasfl、vinlee19、wangbo、wanghuan2054、wangshuo128、wangtianyi2004、wangyf0555、wangyujia2023、web-flow、weizhengte、weizuo93、whutpencil、wsjz、wuwenchi、wzymumon、xiaojunjie、xiaokang、xiedeyantu、xinyiZzz、xuqinghuang、xutaoustc、xy720、xzj7019、ya-dao、yagagagaga、yangzhg、yiguolei、yimeng、yinzhijian、yixiutt、yongjinhou、youtNa、yuanyuan8983、yujian225、yujun777、yuxuan-luo、yz-jayhua、zbtzbtzbt、zclllyybb、zddr、zenoyang、zgxme、zhangguoqiang666、zhangstar333、zhangy5、zhannngchen、zhbinbin、zhengshengjun、zhengshiJ、zwuis、zxealous、zy-kkk、zzzxl1993、zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.1.md deleted file mode 100644 index 21414d0b47167..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.1.md +++ /dev/null @@ -1,140 +0,0 @@ ---- -{ - "title": "Release 2.0.1", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.1 Release 版本已于 2023 年 9 月 4 日正式发布,有超过 71 位贡献者为 Apache Doris 提交了超过 380 个优化与修复。" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.1 Release 版本已于 2023 年 9 月 4 日正式发布,有超过 71 位贡献者为 Apache Doris 提交了超过 380 个优化与修复。 - -# 行为变更 -- 将 varchar 默认长度 1 修改为 65533 - -# 功能改进 - -### Array 和 Map 数据类型的功能优化及稳定性改进 - -- [https://github.com/apache/doris/pull/22793](https://github.com/apache/doris/pull/22793) -- [https://github.com/apache/doris/pull/22927](https://github.com/apache/doris/pull/22927) -- [https://github.com/apache/doris/pull/22738](https://github.com/apache/doris/pull/22738) -- [https://github.com/apache/doris/pull/22347](https://github.com/apache/doris/pull/22347) -- [https://github.com/apache/doris/pull/23250](https://github.com/apache/doris/pull/23250) -- [https://github.com/apache/doris/pull/22300](https://github.com/apache/doris/pull/22300) - -### 倒排索引的查询性能优化 - -- [https://github.com/apache/doris/pull/22836](https://github.com/apache/doris/pull/22836) -- [https://github.com/apache/doris/pull/23381](https://github.com/apache/doris/pull/23381) -- [https://github.com/apache/doris/pull/23389](https://github.com/apache/doris/pull/23389) -- [https://github.com/apache/doris/pull/22570](https://github.com/apache/doris/pull/22570) - -### bitmap、like、scan、agg 等执行性能优化 - -- [https://github.com/apache/doris/pull/23172](https://github.com/apache/doris/pull/23172) -- [https://github.com/apache/doris/pull/23495](https://github.com/apache/doris/pull/23495) -- [https://github.com/apache/doris/pull/23476](https://github.com/apache/doris/pull/23476) -- [https://github.com/apache/doris/pull/23396](https://github.com/apache/doris/pull/23396) -- [https://github.com/apache/doris/pull/23182](https://github.com/apache/doris/pull/23182) -- [https://github.com/apache/doris/pull/22216](https://github.com/apache/doris/pull/22216) - -### CCR 的功能优化与稳定性提升 - -- [https://github.com/apache/doris/pull/22447](https://github.com/apache/doris/pull/22447) -- [https://github.com/apache/doris/pull/22559](https://github.com/apache/doris/pull/22559) -- [https://github.com/apache/doris/pull/22173](https://github.com/apache/doris/pull/22173) -- [https://github.com/apache/doris/pull/22678](https://github.com/apache/doris/pull/22678) - -### Merge-on-Write 主键表的能力增强 - -- [https://github.com/apache/doris/pull/22282](https://github.com/apache/doris/pull/22282) -- [https://github.com/apache/doris/pull/22984](https://github.com/apache/doris/pull/22984) -- [https://github.com/apache/doris/pull/21933](https://github.com/apache/doris/pull/21933) -- [https://github.com/apache/doris/pull/22874](https://github.com/apache/doris/pull/22874) - - -### 表状态和统计信息的功能优化 - -- [https://github.com/apache/doris/pull/22658](https://github.com/apache/doris/pull/22658) -- [https://github.com/apache/doris/pull/22211](https://github.com/apache/doris/pull/22211) -- [https://github.com/apache/doris/pull/22775](https://github.com/apache/doris/pull/22775) -- [https://github.com/apache/doris/pull/22896](https://github.com/apache/doris/pull/22896) -- [https://github.com/apache/doris/pull/22788](https://github.com/apache/doris/pull/22788) -- [https://github.com/apache/doris/pull/22882](https://github.com/apache/doris/pull/22882) - - -### Multi-Catalog 的功能优化及稳定性改进 - -- [https://github.com/apache/doris/pull/22949](https://github.com/apache/doris/pull/22949) -- [https://github.com/apache/doris/pull/22923](https://github.com/apache/doris/pull/22923) -- [https://github.com/apache/doris/pull/22336](https://github.com/apache/doris/pull/22336) -- [https://github.com/apache/doris/pull/22915](https://github.com/apache/doris/pull/22915) -- [https://github.com/apache/doris/pull/23056](https://github.com/apache/doris/pull/23056) -- [https://github.com/apache/doris/pull/23297](https://github.com/apache/doris/pull/23297) -- [https://github.com/apache/doris/pull/23279](https://github.com/apache/doris/pull/23279) - - -# 问题修复 - -修复了若干个 2.0.0 版本中的问题,使系统稳定性得到进一步提升 - -- [https://github.com/apache/doris/pull/22673](https://github.com/apache/doris/pull/22673) -- [https://github.com/apache/doris/pull/22656](https://github.com/apache/doris/pull/22656) -- [https://github.com/apache/doris/pull/22892](https://github.com/apache/doris/pull/22892) -- [https://github.com/apache/doris/pull/22959](https://github.com/apache/doris/pull/22959) -- [https://github.com/apache/doris/pull/22902](https://github.com/apache/doris/pull/22902) -- [https://github.com/apache/doris/pull/22976](https://github.com/apache/doris/pull/22976) -- [https://github.com/apache/doris/pull/22734](https://github.com/apache/doris/pull/22734) -- [https://github.com/apache/doris/pull/22840](https://github.com/apache/doris/pull/22840) -- [https://github.com/apache/doris/pull/23008](https://github.com/apache/doris/pull/23008) -- [https://github.com/apache/doris/pull/23003](https://github.com/apache/doris/pull/23003) -- [https://github.com/apache/doris/pull/22966](https://github.com/apache/doris/pull/22966) -- [https://github.com/apache/doris/pull/22965](https://github.com/apache/doris/pull/22965) -- [https://github.com/apache/doris/pull/22784](https://github.com/apache/doris/pull/22784) -- [https://github.com/apache/doris/pull/23049](https://github.com/apache/doris/pull/23049) -- [https://github.com/apache/doris/pull/23084](https://github.com/apache/doris/pull/23084) -- [https://github.com/apache/doris/pull/22947](https://github.com/apache/doris/pull/22947) -- [https://github.com/apache/doris/pull/22919](https://github.com/apache/doris/pull/22919) -- [https://github.com/apache/doris/pull/22979](https://github.com/apache/doris/pull/22979) -- [https://github.com/apache/doris/pull/23096](https://github.com/apache/doris/pull/23096) -- [https://github.com/apache/doris/pull/23113](https://github.com/apache/doris/pull/23113) -- [https://github.com/apache/doris/pull/23062](https://github.com/apache/doris/pull/23062) -- [https://github.com/apache/doris/pull/22918](https://github.com/apache/doris/pull/22918) -- [https://github.com/apache/doris/pull/23026](https://github.com/apache/doris/pull/23026) -- [https://github.com/apache/doris/pull/23175](https://github.com/apache/doris/pull/23175) -- [https://github.com/apache/doris/pull/23167](https://github.com/apache/doris/pull/23167) -- [https://github.com/apache/doris/pull/23015](https://github.com/apache/doris/pull/23015) -- [https://github.com/apache/doris/pull/23165](https://github.com/apache/doris/pull/23165) -- [https://github.com/apache/doris/pull/23264](https://github.com/apache/doris/pull/23264) -- [https://github.com/apache/doris/pull/23246](https://github.com/apache/doris/pull/23246) -- [https://github.com/apache/doris/pull/23198](https://github.com/apache/doris/pull/23198) -- [https://github.com/apache/doris/pull/23221](https://github.com/apache/doris/pull/23221) -- [https://github.com/apache/doris/pull/23277](https://github.com/apache/doris/pull/23277) -- [https://github.com/apache/doris/pull/23249](https://github.com/apache/doris/pull/23249) -- [https://github.com/apache/doris/pull/23272](https://github.com/apache/doris/pull/23272) -- [https://github.com/apache/doris/pull/23383](https://github.com/apache/doris/pull/23383) -- [https://github.com/apache/doris/pull/23372](https://github.com/apache/doris/pull/23372) -- [https://github.com/apache/doris/pull/23399](https://github.com/apache/doris/pull/23399) -- [https://github.com/apache/doris/pull/23295](https://github.com/apache/doris/pull/23295) -- [https://github.com/apache/doris/pull/23446](https://github.com/apache/doris/pull/23446) -- [https://github.com/apache/doris/pull/23406](https://github.com/apache/doris/pull/23406) -- [https://github.com/apache/doris/pull/23387](https://github.com/apache/doris/pull/23387) -- [https://github.com/apache/doris/pull/23421](https://github.com/apache/doris/pull/23421) -- [https://github.com/apache/doris/pull/23456](https://github.com/apache/doris/pull/23456) -- [https://github.com/apache/doris/pull/23361](https://github.com/apache/doris/pull/23361) -- [https://github.com/apache/doris/pull/23402](https://github.com/apache/doris/pull/23402) -- [https://github.com/apache/doris/pull/23369](https://github.com/apache/doris/pull/23369) -- [https://github.com/apache/doris/pull/23245](https://github.com/apache/doris/pull/23245) -- [https://github.com/apache/doris/pull/23532](https://github.com/apache/doris/pull/23532) -- [https://github.com/apache/doris/pull/23529](https://github.com/apache/doris/pull/23529) -- [https://github.com/apache/doris/pull/23601](https://github.com/apache/doris/pull/23601) - -优化改进及修复问题的完整列表请在 GitHub 按照标签 dev/2.0.1-merged 进行筛选即可。 - - -# 致谢 - -向所有参与 Apache Doris 2.0.1 版本开发和测试的贡献者们表示最衷心的感谢,他们分别是: - -adonis0147、airborne12、amorynan、AshinGau、BePPPower、BiteTheDDDDt、bobhan1、ByteYue、caiconghui、CalvinKirs、csun5285、DarvenDuan、deadlinefen、DongLiang-0、Doris-Extras、dutyu、englefly、freemandealer、Gabriel39、GoGoWen、HappenLee、hello-stephen、HHoflittlefish777、hubgeter、hust-hhb、JackDrogon、jacktengg、jackwener、Jibing-Li、kaijchen、kaka11chen、Kikyou1997、Lchangliang、LemonLiTree、liaoxin01、LiBinfeng-01、lsy3993、luozenglin、morningman、morrySnow、mrhhsg、Mryange、mymeiyi、shuke987、sohardforaname、starocean999、TangSiyang2001、Tanya-W、ucasfl、vinlee19、wangbo -wsjz、wuwenchi、xiaokang、XieJiann、xinyiZzz、yujun777、Yukang-Lian、Yulei-Yang、zclllyybb、zddr、zenoyang、zgxme、zhangguoqiang666、zhangstar333、zhannngchen、zhiqiang-hhhh、zxealous、zy-kkk、zzzxl1993、zzzzzzzs \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.10.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.10.md deleted file mode 100644 index de7089152b366..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.10.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -{ - "title": "Release 2.0.10", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.10 版本已于 2024 年 5 月 16 日正式与大家见面,该版本提交了 83 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**[Apache Doris 2.0.10](https://doris.apache.org/download/) 版本已于 2024 年 5 月 16 日正式与大家见面**,该版本提交了 83 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 改进和优化 - -- 增加了`read_only`和`super_read_only`变量以保持和 MySQL 兼容 - -- 仅在 IO_ERROR 的错误才把数据目录加入 Broken List,防止 fd 超限等错误导致误加入 - -- 基于外表 CTAS 创建新表时,把 `VARCHAR` 类型转成 `STRING` 类型 - -- 支持把 Paimon 的 `ROW` 类型映射成 Doris 的 `STRUCT` 类型 - -- 在创建 Tablet 选择数据盘时,允许存在少量的倾斜 - -- 对 `set replica drop` 命令记录 Editlog,以防止在 Follower 节点执行命令后,其状态显示不正确 - -- Schema Change 内存自适应避免内存超限 - -- 倒排索引中 Unicode 分词器可以配置不使用停用词 - - -## 致谢 - -@airborne12, @BePPPower, @ByteYue, @CalvinKirs, @cambyzju, @csun5285, @dataroaring, @deardeng, @DongLiang-0, @eldenmoon, @felixwluo, @HappenLee, @hubgeter, @jackwener, @kaijchen, @kaka11chen, @Lchangliang, @liaoxin01, @LiBinfeng-01, @luennng, @morningman, @morrySnow, @Mryange, @nextdreamblue, @qidaye, @starocean999, @suxiaogang223, @SWJTU-ZhangLei, @w41ter, @xiaokang, @xy720, @yujun777, @Yukang-Lian, @zhangstar333, @zxealous, @zy-kkk, @zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.11.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.11.md deleted file mode 100644 index b2e735dfc9f9a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.11.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -{ - "title": "Release 2.0.11", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.11 版本已于 2024 年 6 月 5 日正式与大家见面,该版本提交了 123 个改进项以及问题修复,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.11](https://doris.apache.org/download/) 版本已于 2024 年 6 月 5 日正式与大家见面,该版本提交了 123 个改进项以及问题修复,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - - -## 1 行为变更 - -由于倒排索引已经成熟稳定,可以替换老的 `BITMAP INDEX`,因此后续新建 `BITMAP INDEX` 会自动切换成 `INVERTED INDEX`,而已经创建的 `BITMAP INDEX` 保持不变。整个切换过程对用户无感知,写入和查询没有变化,此外用户可以修改 FE 配置 `enable_create_bitmap_index_as_inverted_index = false` 来关闭该自动切换。[#35528](https://github.com/apache/doris/pull/35528) - - - -## 2 改进和优化 - -- 为 JSON 和 TIME 添加 Trino JDBC Catalog 类型映射。 - -- 在无法转移到(非)主节点时,FE 退出以防止未知状态和过多日志。 - -- 在删除统计表时写入审计日志。 - -- 如果表只进行了部分分析,忽略最小/最大列统计以避免低效的查询计划。 - -- 支持集合操作减法,例如 `set1 - set2`。 - -- 使用 concat(col, pattern_str) 改进 LIKE 和 REGEXP 子句的性能,例如:`col1 LIKE concat('%', col2, '%')`。 - -- 添加查询选项以支持短路查询,保证升级兼容性。 - - - -## 3 致谢 - -@924060929、@airborne12、@AshinGau、@BePPPower、@BiteTheDDDDt、@ByteYue、@CalvinKirs、@cambyzju、@csun5285、@dataroaring、@eldenmoon、@englefly、@feiniaofeiafei、@Gabriel39、@GoGoWen、@HHoflittlefish777、@hubgeter、@jacktengg、@jackwener、@jeffreys-cat、@Jibing-Li、@kaka11chen、@kobe6th、@LiBinfeng-01、@mongo360、@morningman、@morrySnow、@mrhhsg、@Mryange、@nextdreamblue、@qidaye、@sjyango、@starocean999、@SWJTU-ZhangLei、@w41ter、@wangbo、@wsjz、@wuwenchi、@xiaokang、@XieJiann、@xy720、@yujun777、@Yukang-Lian、@Yulei-Yang、@zclllyybb、@zddr、@zhangstar333、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.12.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.12.md deleted file mode 100644 index cdb156515c2a8..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.12.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -{ - "title": "Release 2.0.12", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.12 版本已于 2024 年 6 月 27 日正式与大家见面,该版本提交了 99 个改进项以及问题修复,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.12](https://doris.apache.org/download/) 版本已于 2024 年 6 月 27 日正式与大家见面,该版本提交了 99 个改进项以及问题修复,欢迎大家下载体验。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 行为变更 - -- 不再将建表的默认注释设置为表的类型,而是改成默认为空,比如 COMMENT 'OLAP' 变成 COMMENT '',这样对于依赖注释的 BI 软件更加友好。 [#35855](https://github.com/apache/doris/pull/35855) - -- 将 `@@autocommit` 变量的类型从 `BOOLEAN` 改成 `BIGINT`,以免有些 MySQL 客户端(比如.NET MySQL.Data)报错。 [#33282](https://github.com/apache/doris/pull/33282) - - -## 改进优化 - -- 删除 `disable_nested_complex_type` 参数,默认允许创建嵌套的 `ARRAY` `MAP` `STRUCT` 类型。[#36255](https://github.com/apache/doris/pull/36255) - -- HMS Catalog 支持 `SHOW CREATE DATABASE` 命令。[ #28145](https://github.com/apache/doris/pull/28145) - -- 在 Query Profile 中增加更多倒排索引的指标。[#36545](https://github.com/apache/doris/pull/36545) - -- 跨集群数据复制(CCR)支持倒排索引 [#31743](https://github.com/apache/doris/pull/31743) - -## 致谢 - -@amorynan、@BiteTheDDDDt、@cambyzju、@caoliang-web、@dataroaring、@eldenmoon、@feiniaofeiafei、@felixwluo、@gavinchou、@HappenLee、@hello-stephen、@jacktengg、@Jibing-Li、@Johnnyssc、@liaoxin01、@LiBinfeng-01、@luwei16、@mongo360、@morningman、@morrySnow、@mrhhsg、@Mryange、@mymeiyi、@qidaye、@qzsee、@starocean999、@w41ter、@wangbo、@wsjz、@wuwenchi、@xiaokang、@XuPengfei-1020、@xy720、@yongjinhou、@yujun777、@Yukang-Lian、@Yulei-Yang、@zclllyybb、@zddr、@zhannngchen、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.13.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.13.md deleted file mode 100644 index cff0b70ecc89b..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.13.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -{ - "title": "Release 2.0.13", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.13 版本已于 2024 年 7 月 16 日正式与大家见面,该版本提交了 112 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.13 版本已于 2024 年 7 月 16 日正式与大家见面,该版本提交了 112 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -[快速下载](https://doris.apache.org/download/) - -## 行为变更 - -仅在客户端启用了 `CLIENT_MULTI_STATEMENTS` 设置时,SQL 输入才会被视为多条语句,从而增强了与 MySQL 的兼容性。[#36759](https://github.com/apache/doris/pull/36759) - -## 新增功能 - -- 新增了 BE 配置 `allow_zero_date`,允许使用全零的日期。设置为 `false` 时,`0000-00-00` 会被解析为 `NULL`;设置为 `true` 时,会被解析为 `0000-01-01`。默认值为 `false`,以保持与之前行为的一致性。[#34961](https://github.com/apache/doris/pull/34961) - -- `LogicalWindow` 和 `LogicalPartitionTopN` 现在支持多字段谓词下推,以提升性能。[#36828](https://github.com/apache/doris/pull/36828) - -- ES Catalog 现在将 ES 的 `nested` 或 `object` 类型映射到 Doris 的 `JSON` 类型。[#37101](https://github.com/apache/doris/pull/37101) - -## 改进和优化 - -- `LIMIT` 查询现在会更早地停止读取数据,以减少资源消耗并提升性能。[#36535](https://github.com/apache/doris/pull/36535) - -- 现在支持具有空键的特殊 JSON 数据。[#36762](https://github.com/apache/doris/pull/36762) - -- 改进了 Routine Load 的稳定性和可用性,包括负载均衡、自动恢复、异常处理以及更友好的错误消息。[#36450](https://github.com/apache/doris/pull/36450) [#35376](https://github.com/apache/doris/pull/35376) [#35266](https://github.com/apache/doris/pull/35266) [#33372](https://github.com/apache/doris/pull/33372) [#32282](https://github.com/apache/doris/pull/32282) [#32046](https://github.com/apache/doris/pull/32046) [#32021](https://github.com/apache/doris/pull/32021) [#31846](https://github.com/apache/doris/pull/31846) [#31273](https://github.com/apache/doris/pull/31273) - -- 对 BE 的硬盘选择策略和速度进行了优化。[#36826](https://github.com/apache/doris/pull/36826) [#36795](https://github.com/apache/doris/pull/36795) [#36509](https://github.com/apache/doris/pull/36509) - -- 改进了 JDBC Catalog 的稳定性和可用性,包括加密、线程池连接数配置以及更友好的错误消息。[#36940](https://github.com/apache/doris/pull/36940) [#36720](https://github.com/apache/doris/pull/36720) [#30880](https://github.com/apache/doris/pull/30880) [#35692](https://github.com/apache/doris/pull/35692) - -## 致谢 - -@DarvenDuan、@Gabriel39、@Jibing-Li、@Johnnyssc、@Lchangliang、@LiBinfeng-01、@SWJTU-ZhangLei、@Thearas、@Yukang-Lian、@Yulei-Yang、@airborne12、@amorynan、@bobhan1、@cambyzju、@csun5285、@dataroaring、@deardeng、@eldenmoon、@englefly、@feiniaofeiafei、@hello-stephen、@jacktengg、@kaijchen、@liutang123、@luwei16、@morningman、@morrySnow、@mrhhsg、@mymeiyi、@platoneko、@qidaye、@sollhui、@starocean999、@w41ter、@xiaokang、@xy720、@yujun777、@zclllyybb \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.14.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.14.md deleted file mode 100644 index 4674088f07bae..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.14.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -{ - "title": "Release 2.0.14", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.14 版本已于 2024 年 8 月 6 日正式与大家见面,该版本提交了 110 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.14 版本已于 2024 年 8 月 6 日正式与大家见面,该版本提交了 110 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - - -## 1 新功能 - -- 增加获取最近一个查询 Profile 的 REST 接口 `curl http://user:password@127.0.0.1:8030/api/profile/text` 。[#38268](https://github.com/apache/doris/pull/38268) - -## 2 改进和优化 - -- 优化 MOW 表带有 Sequence 列的主键点查性能。[#38287](https://github.com/apache/doris/pull/38287) - -- 优化倒排索引在查询条件很多时的性能。[#35346](https://github.com/apache/doris/pull/35346) - -- 创建带分词的倒排索引时,自动开启 `support_phrase` 选项加速 `match_phrase` 系列短语查询。[#37949](https://github.com/apache/doris/pull/37949) - -- 支持简化的 SQL Hint,例如 `SELECT /*+ query_timeout(3000) */ * FROM t;`。[#37720](https://github.com/apache/doris/pull/37720) - -- 读对象存储遇到 429 错误时自动重试提升稳定性。[#35396](https://github.com/apache/doris/pull/35396) - -- LEFT SEMI / ANTI JOIN 在匹配到符合的数据行时,终止后续的匹配执行提升性能。[#34703](https://github.com/apache/doris/pull/34703) - -- 避免非法数据返回 MySQL 结果时出发 coredump。[#28069](https://github.com/apache/doris/pull/28069) - -- 输出类型名字时统一使用小写,保持跟 MySQL 兼容对 BI 工具更加友好。[#38521](https://github.com/apache/doris/pull/38521) - - -## 致谢 - -@924060929、@BiteTheDDDDt、@ByteYue、@CalvinKirs、@GoGoWen、@HappenLee、@Jibing-Li、@Lchangliang、@LiBinfeng-01、@Mryange、@XieJiann、@Yukang-Lian、@Yulei-Yang、@airborne12、@amorynan、@biohazard4321、@cambyzju、@csun5285、@eldenmoon、@englefly、@freemandealer、@hello-stephen、@hubgeter、@kaijchen、@liaoxin01、@luwei16、@morningman、@morrySnow、@mymeiyi、@qidaye、@sollhui、@starocean999、@w41ter、@wuwenchi、@xiaokang、@xy720、@yujun777、@zclllyybb、@zddr、@zhangstar333、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.15.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.15.md deleted file mode 100644 index 3ab116804eae8..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.15.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -{ - "title": "Release 2.0.15", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.15 版本已于 2024 年 9 月 30 日正式与大家见面,该版本提交了 157 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.15 版本已于 2024 年 9 月 30 日正式与大家见面,该版本提交了 157 个改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- 立即下载:https://doris.apache.org/download - -- GitHub 下载:https://github.com/apache/doris/releases/tag/2.0.15 - - -## 行为变更 - -无 - -## 新功能 - -- 恢复功能现在支持删除冗余的表块和分区选项。[#39028](https://github.com/apache/doris/pull/39028) - -- 支持 JSON 函数 `json_search`。[#40948](https://github.com/apache/doris/pull/40948) - -## 改进与优化 - -### 稳定性 - -- 添加了 FE 配置 `abort_txn_after_lost_heartbeat_time_second`,用于设置事务中止时间。[#28662](https://github.com/apache/doris/pull/28662) - -- BE 失去心跳信号超过 1 分钟后中止事务,而不是 5 秒,以避免事务中止过于敏感。[#22781](https://github.com/apache/doris/pull/22781) - -- 延迟调度例行加载的 EOF 任务,以避免过多的小事务。[#39975](https://github.com/apache/doris/pull/39975) - -- 优先从在线磁盘服务进行查询,以提高稳健性。[#39467](https://github.com/apache/doris/pull/39467) - -- 在非严格模式的部分更新中,如果行的删除标志已标记,则跳过检查新插入的行。[#40322](https://github.com/apache/doris/pull/40322) - -- 为防止 FE 内存不足,限制备份任务中的表块数量,默认值为 300,000。[#39987](https://github.com/apache/doris/pull/39987) - -- ARRAY MAP STRUCT 类型支持 `REPLACE_IF_NOT_NULL`。[#38304](https://github.com/apache/doris/pull/38304) - -- 对非 `DELETE_INVALID_XXX `失败的删除作业进行重试。[#37834](https://github.com/apache/doris/pull/37834) - -### 查询性能 - -- 优化由并发列更新和 compaction 引起的慢速列更新问题。[#38487](https://github.com/apache/doris/pull/38487) - -- 当过滤条件中存在 NullLiteral 时,可以将其折叠为 false 并进一步转换为 EmptySet,以减少不必要的数据扫描和计算。[#38135](https://github.com/apache/doris/pull/38135) - -- 提高 `ORDER BY` 全排序的性能。[#38985](https://github.com/apache/doris/pull/38985) - -- 提高倒排索引中字符串处理的性能。[#37395](https://github.com/apache/doris/pull/37395) - -### 查询优化器 - -- 增加了对以分号开头的语句的支持以兼容老优化器。[#39399](https://github.com/apache/doris/pull/39399) - -- 完善了一些聚合函数签名匹配。[#39352](https://github.com/apache/doris/pull/39352) - -- 在 Schema 变更后删除列统计信息并触发自动分析。[#39101](https://github.com/apache/doris/pull/39101) - -- 支持使用 `DROP CACHED STATS table_name` 删除缓存的统计信息。[#39367](https://github.com/apache/doris/pull/39367) - -### Multi Catalog - -- 优化 JDBC Catalog 刷新,减少客户端创建频率。[#40261](https://github.com/apache/doris/pull/40261) - -- 修复 JDBC Catalog 在某些条件下存在的线程泄漏问题。[#39423](https://github.com/apache/doris/pull/39423) - -**致谢** - -@924060929、@BePPPower、@BiteTheDDDDt、@CalvinKirs、@GoGoWen、@HappenLee、@Jibing-Li、@Johnnyssc、@LiBinfeng-01、@Mryange、@SWJTU-ZhangLei、@TangSiyang2001、@Toms1999、@Vallishp、@Yukang-Lian、@airborne12、@amorynan、@bobhan1、@cambyzju、@csun5285、@dataroaring、@eldenmoon、@englefly、@feiniaofeiafei、@hello-stephen、@htyoung、@hubgeter、@justfortaste、@liaoxin01、@liugddx、@liutang123、@luwei16、@mongo360、@morrySnow、@qidaye、@smallx、@sollhui、@starocean999、@w41ter、@xiaokang、@xzj7019、@yujun777、@zclllyybb、@zddr、@zhangstar333、@zhannngchen、@zy-kkk、@zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.2.md deleted file mode 100644 index 1c615664f28ac..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.2.md +++ /dev/null @@ -1,192 +0,0 @@ ---- -{ - "title": "Release 2.0.2", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.2 版本已于 2023 年 10 月 6 日正式发布,该版本对多个功能进行了更新优化,旨在更好地满足用户的需求。有 92 位贡献者为 Apache Doris 2.0.2 版本提交了功能优化项以及问题修复,进一步提升了系统的稳定性和性能," -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.2 版本已于 2023 年 10 月 6 日正式发布,该版本对多个功能进行了更新优化,旨在更好地满足用户的需求。有 92 位贡献者为 Apache Doris 2.0.2 版本提交了功能优化项以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**GitHub 下载**:https://github.com/apache/doris/releases/tag/2.0.2-rc05 - -**官网下载页**:https://doris.apache.org/download/ - -## Behavior Changes - -- https://github.com/apache/doris/pull/24679 - - 删除与 lambda 函数语法冲突的 json“->”运算符,可以使用函数 json_extract 代替。 - -- https://github.com/apache/doris/pull/24308 - -将 `metadata_failure_recovery` 从 fe.conf 移动到 start_fe.sh 参数,以避免异常操作。 - -- https://github.com/apache/doris/pull/24207 - -对于普通类型中的 null 值使用 `\n` 来表示,对于复杂类型或嵌套类型的 null 值,跟 JSON 类型保持一致、采取 null 来表示。 - -- https://github.com/apache/doris/pull/23795 -- https://github.com/apache/doris/pull/23784 - -优化 BE 节点 priority_network 配置项的绑定策略,如果用户配置了错误的 priority_network 则直接启动失败,以避免用户错误地认为配置是正确的。如果用户没有配置 priority_network,则仅从 IPv4 列表中选择第一个 IP,而不是从所有 IP 中选择,以避免用户的服务器不支持 IPv4。 - -- https://github.com/apache/doris/pull/17730 - -支持取消正在重试的导入任务,修复取消加载失败的问题。 - -## 功能优化 - -### 易用性提升 - -- https://github.com/apache/doris/pull/23887 - -某些场景下,用户需要向集群中添加一些自定义的库,如 lzo.jar、orai18n.jar 等。在过去的版本中,这些 lib 文件位于 fe/lib 或 be/lib 中,但在升级集群时,lib 库将被新的 lib 库替换,导致所有自定义的 lib 库都会丢失。 - -在新版本中,为 FE 和 BE 添加了新的自定义目录 custom_lib,用户可以在其中放置自定义 lib 文件。 - -- https://github.com/apache/doris/pull/23022 - -支持基于用户角色的权限访问控制,实现了行级细粒度的权限控制策略。 - -### 改进查询优化器 Nereids 统计信息收集 - -- https://github.com/apache/doris/pull/23663 - -在运行 Analysis 任务时禁用 File Cache,Analysis 任务是后台任务,不应影响用户本地 File Cache 数据。 - -- https://github.com/apache/doris/pull/23703 - -在过去版本中,查看列的统计信息时将忽略出现错误的列。 - -在新版本中,当 min 或 max 值未能反序列化时,查看列的统计信息时将使用 N/A 作为 min 或 max 的值并仍显示其余的统计信息,包括 count、null_count、ndv 等。 - -- https://github.com/apache/doris/pull/23965 - -支持 JDBC 外部表的统计信息收集。 - -- https://github.com/apache/doris/pull/24625 - -跳过 `__internal_schema` 和 `information_schema` 上未知列的统计信息检查。 - -### Multi-Catalog 功能优化 - -- https://github.com/apache/doris/pull/24168 - -支持 Hadoop viewfs; - -- https://github.com/apache/doris/pull/22369 - -优化 JDBC Catalog Checksum Replay 和 Range 相关问题; - -- https://github.com/apache/doris/pull/23868 - -优化了 JDBC Catalog 的 Property 检查和错误消息提示。 - -- https://github.com/apache/doris/pull/24242 - -修复了 MaxCompute Catalog Decimal 类型解析问题以及使用对象存储地址错误的问题。 - -- https://github.com/apache/doris/pull/23391 - -支持 Hive Metastore Catalog 的 SQL Cache。 - -- https://github.com/apache/doris/pull/22869 - -提高了 Hive Metastore Catalog 的元数据同步性能。 - -- https://github.com/apache/doris/pull/22702 - -添加 metadata_name_ids 以快速获取 Catalogs、DB、Table,在创建或删除 Catalog 和 Table 时无需 Refresh Catalog,并添加 Profiling 表从而与 MySQL 兼容。 - -### 倒排索引性能优化 - -- https://github.com/apache/doris/pull/23952 - -增加 bkd 索引的查询缓存,通过缓存可以加速在命中 bkd 索引时的查询性能,在高并发场景中效果更为明显; - -- https://github.com/apache/doris/pull/24678 - -提升倒排索引在 Count 算子上的查询性能; - -- https://github.com/apache/doris/pull/24751 - -提升了 Match 算子在未命中索引时的效率,在测试表现中性能最高提升 60 倍; - -- https://github.com/apache/doris/pull/23871 -- https://github.com/apache/doris/pull/24389 - -提升了 MATCH 和 MATCH_ALL 在倒排索引上的查询性能; - -### Array 函数优化 - -- https://github.com/apache/doris/pull/23630 - -优化了老版本查询优化器 Array 函数无法处理 Decimal 类型的问题; - -- https://github.com/apache/doris/pull/24327 - -优化了 `array_union` 数组函数对多个参数的支持; - -- https://github.com/apache/doris/pull/24455 - -支持通过 explode 函数来处理数组嵌套复杂类型; - -## Bug 修复 - - 修复了之前版本存在的部分 Bug,使系统整体稳定性表现得到大幅提升,完整 BugFix 列表请参考 GitHub Commits 记录; - -- https://github.com/apache/doris/pull/23601 -- https://github.com/apache/doris/pull/23630 -- https://github.com/apache/doris/pull/23555 -- https://github.com/apache/doris/pull/17644 -- https://github.com/apache/doris/pull/23779 -- https://github.com/apache/doris/pull/23940 -- https://github.com/apache/doris/pull/23860 -- https://github.com/apache/doris/pull/23973 -- https://github.com/apache/doris/pull/24020 -- https://github.com/apache/doris/pull/24039 -- https://github.com/apache/doris/pull/23958 -- https://github.com/apache/doris/pull/24104 -- https://github.com/apache/doris/pull/24097 -- https://github.com/apache/doris/pull/23852 -- https://github.com/apache/doris/pull/24139 -- https://github.com/apache/doris/pull/24165 -- https://github.com/apache/doris/pull/24164 -- https://github.com/apache/doris/pull/24369 -- https://github.com/apache/doris/pull/24372 -- https://github.com/apache/doris/pull/24381 -- https://github.com/apache/doris/pull/24385 -- https://github.com/apache/doris/pull/24290 -- https://github.com/apache/doris/pull/24207 -- https://github.com/apache/doris/pull/24521 -- https://github.com/apache/doris/pull/24460 -- https://github.com/apache/doris/pull/24568 -- https://github.com/apache/doris/pull/24610 -- https://github.com/apache/doris/pull/24595 -- https://github.com/apache/doris/pull/24616 -- https://github.com/apache/doris/pull/24635 -- https://github.com/apache/doris/pull/24625 -- https://github.com/apache/doris/pull/24572 -- https://github.com/apache/doris/pull/24578 -- https://github.com/apache/doris/pull/23943 -- https://github.com/apache/doris/pull/24697 -- https://github.com/apache/doris/pull/24681 -- https://github.com/apache/doris/pull/24617 -- https://github.com/apache/doris/pull/24692 -- https://github.com/apache/doris/pull/24700 -- https://github.com/apache/doris/pull/24389 -- https://github.com/apache/doris/pull/24698 -- https://github.com/apache/doris/pull/24778 -- https://github.com/apache/doris/pull/24782 -- https://github.com/apache/doris/pull/24800 -- https://github.com/apache/doris/pull/24808 -- https://github.com/apache/doris/pull/24636 -- https://github.com/apache/doris/pull/24981 -- https://github.com/apache/doris/pull/24949 - -## 致谢 - -感谢所有在 2.0.2 版本中参与功能开发与优化以及问题修复的所有贡献者,他们分别是: - -[@adonis0147](https://github.com/adonis0147) [@airborne12](https://github.com/airborne12) [@amorynan](https://github.com/amorynan) [@AshinGau](https://github.com/AshinGau) [@BePPPower](https://github.com/BePPPower) [@BiteTheDDDDt](https://github.com/BiteTheDDDDt) [@bobhan1](https://github.com/bobhan1) [@ByteYue](https://github.com/ByteYue) [@caiconghui](https://github.com/caiconghui) [@CalvinKirs](https://github.com/CalvinKirs) [@cambyzju](https://github.com/cambyzju) [@ChengDaqi2023](https://github.com/ChengDaqi2023) [@ChinaYiGuan](https://github.com/ChinaYiGuan) [@CodeCooker17](https://github.com/CodeCooker17) [@csun5285](https://github.com/csun5285) [@dataroaring](https://github.com/dataroaring) [@deadlinefen](https://github.com/deadlinefen) [@DongLiang-0](https://github.com/DongLiang-0) [@Doris-Extras](https://github.com/Doris-Extras) [@dutyu](https://github.com/dutyu) [@eldenmoon](https://github.com/eldenmoon) [@englefly](https://github.com/englefly) [@freemandealer](https://github.com/freemandealer) [@Gabriel39](https://github.com/Gabriel39) [@gnehil](https://github.com/gnehil) [@GoGoWen](https://github.com/GoGoWen) [@gohalo](https://github.com/gohalo) [@HappenLee](https://github.com/HappenLee) [@hello-stephen](https://github.com/hello-stephen) [@HHoflittlefish777](https://github.com/HHoflittlefish777) [@hubgeter](https://github.com/hubgeter) [@hust-hhb](https://github.com/hust-hhb) [@ixzc](https://github.com/ixzc) [@JackDrogon](https://github.com/JackDrogon) [@jacktengg](https://github.com/jacktengg) [@jackwener](https://github.com/jackwener) [@Jibing-Li](https://github.com/Jibing-Li) [@JNSimba](https://github.com/JNSimba) [@kaijchen](https://github.com/kaijchen) [@kaka11chen](https://github.com/kaka11chen) [@Kikyou1997](https://github.com/Kikyou1997) [@Lchangliang](https://github.com/Lchangliang) [@LemonLiTree](https://github.com/LemonLiTree) [@liaoxin01](https://github.com/liaoxin01) [@LiBinfeng-01](https://github.com/LiBinfeng-01) [@liugddx](https://github.com/liugddx) [@luwei16](https://github.com/luwei16) [@mongo360](https://github.com/mongo360) [@morningman](https://github.com/morningman) [@morrySnow](https://github.com/morrySnow) @mrhhsg @Mryange @mymeiyi @neuyilan @pingchunzhang @platoneko @qidaye @realize096 @RYH61 @shuke987 @sohardforaname @starocean999 @SWJTU-ZhangLei @TangSiyang2001 @Tech-Circle-48 @w41ter @wangbo @wsjz @wuwenchi @wyx123654 @xiaokang @XieJiann @xinyiZzz @XuJianxu @xutaoustc @xy720 @xyfsjq @xzj7019 @yiguolei @yujun777 @Yukang-Lian @Yulei-Yang @zclllyybb @zddr @zhangguoqiang666 @zhangstar333 @ZhangYu0123 @zhannngchen @zxealous @zy-kkk @zzzxl1993 @zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.3.md deleted file mode 100644 index 24e791dc87ea1..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.3.md +++ /dev/null @@ -1,277 +0,0 @@ ---- -{ - "title": "Release 2.0.3", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.3 版本已于 2023 年 12 月 14 日正式发布,该版本对复杂数据类型、统计信息收集、倒排索引、数据湖分析、分布式副本管理等多个功能进行了优化,有 104 位贡献者为 Apache Doris 2.0." -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.3 版本已于 2023 年 12 月 14 日正式发布,该版本对复杂数据类型、统计信息收集、倒排索引、数据湖分析、分布式副本管理等多个功能进行了优化,有 104 位贡献者为 Apache Doris 2.0.3 版本提交了超过 1000 个功能优化项以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**GitHub 下载**:https://github.com/apache/doris/releases - -**官网下载页**:https://doris.apache.org/download/ - - -## 新增特性 - -### 自动统计信息收集 - -统计信息是 CBO 优化器进行代价估算时的依赖,通过收集统计信息有助于优化器了解数据分布特性、估算每个执行计划的成本并选择更优的执行计划,以此大幅提升查询效率。从 2.0.3 版本开始,Apache Doris 开始支持自动统计信息收集,默认为开启状态。 - -在每次导入事务提交后,Apache Doris 将记录导入事务更新的表信息并估算表统计信息的健康度,对于健康度低于配置参数的表会认为统计信息已过时并自动触发表的统计信息收集作业。同时为了降低统计信息作业的资源开销,Apache Doris 会自动采取采样的方式收集统计信息,用户也可以调整参数来采样更多行以获得更准确的数据分布信息。 - -更多信息请参考:[Statistics](../../query-acceleration/optimization-technology-principle/statistics) - - -### 数据湖框架支持复杂数据类型 - -- Java UDF、JDBC catalog、Hudi MOR 表等功能支持复杂数据类型 - - https://github.com/apache/doris/pull/24810 - - https://github.com/apache/doris/pull/26236 - -- Paimon catalog 支持复杂数据类型 - - https://github.com/apache/doris/pull/25364 - -- Paimon catalog 支持 Paimon 0.5 版本 - - https://github.com/apache/doris/pull/24985 - - -### 增加更多内置函数 - -- 新优化器支持 BitmapAgg 函数 - - https://github.com/apache/doris/pull/25508 - -- 支持 SHA 系列摘要函数 - - https://github.com/apache/doris/pull/24342 - -- 聚合函数 min_by 和 max_by 支持 bitmap 数据类型 - - https://github.com/apache/doris/pull/25430 - -- 增加 milliseconds/microseconds_add/sub/diff 函数 - - https://github.com/apache/doris/pull/24114 - -- 增加 json_insert, json_replace, json_set JSON 函数 - - https://github.com/apache/doris/pull/24384 - - -## 改进优化 - -### 性能优化 - -- 在过滤率高的倒排索引 match where 条件和过滤率低的普通 where 条件组合时,大幅降低索引列的 IO -- 优化经过 where 条件过滤后随机读数据的效率 -- 优化在 JSON 数据类型上使用老的 get_json_xx 函数的性能,提升 2-4 倍 -- 支持配置降低读数据线程的优先级,保证写入的 CPU 资源和实时性 -- 增加返回 largeint 的 uuid-numeric 函数,性能比返回 string 的 uuid 函数快 20 倍 -- Case when 的性能提升 3 倍 -- 在存储引擎执行中裁剪不必要的谓词计算 -- 支持 count 算子下推到存储层 -- 优化支持 and or 表达式中包含 nullable 类型的计算性能 -- 支持更多场景下 limit 算子提前到 join 前执行的改写,以提升执行效率 -- 增加消除 inline view 中的无用的 order by 算子,以提升执行效率 -- 优化了部分情况下的基数估计和代价模型的准确性,以提升执行效率 -- 优化了 JDBC catalog 的谓词下推逻辑和大小写逻辑 -- 优化了 file cache 的第一次开启后的读取效率 -- 优化 Hive 表 SQL cache 策略,使用 HMS 中存储的分区更新时间作为 cache 是否失效的判断,提高 cache 命中率 -- 优化了 Merge-on-Write compaction 效率 -- 优化了外表查询的线程分配逻辑,降低内存使用 -- 优化 column reader 的内存使用 - - -### 分布式副本管理改进 - -优化跳过删除分区、colocate group、持续写时均衡失败、冷热分层表不能均衡等; - -### 安全性提升 - -- 审计日志插件的配置使用 token 代替明文密码以增强安全性 - - https://github.com/apache/doris/pull/26278 - -- log4j 配置安全性增强 - - https://github.com/apache/doris/pull/24861 - -- 日志中不显示用户敏感信息 - - https://github.com/apache/doris/pull/26912 - - -## Bugfix 和稳定性提升 - -### 复杂数据类型 - -- 修复了 map/struct 对定长 CHAR(n) 没有正确截断的问题 - - https://github.com/apache/doris/pull/25725 - -- 修复了 struct 嵌套 map/array 写入失败的问题 - - https://github.com/apache/doris/pull/26973 - -- 修复了 count distinct 不支持 array/map/struct 的问题 - - https://github.com/apache/doris/pull/25483 - -- 解决 query 中出现 delete 复杂类型之后,升级过程中出现 BE crash 的问题 - - https://github.com/apache/doris/pull/26006 - -- 修复了 jsonb 在 where 条件中 BE crash 问题 - - https://github.com/apache/doris/pull/27325 - -- 修复了 outer join 中有 array 类型时 BE crash 的问题 - - https://github.com/apache/doris/pull/25669 - -- 修复 orc 格式 decimal 类型读取错误的问题 - - https://github.com/apache/doris/pull/26548 - - https://github.com/apache/doris/pull/25977 - - https://github.com/apache/doris/pull/26633 - -### 倒排索引 - -- 修复了关闭倒排索引查询时 OR NOT 组合 where 条件结果错误的问题 - - https://github.com/apache/doris/pull/26327 - -- 修复了空数组的倒排索引写入时 BE crash 的问题 - - https://github.com/apache/doris/pull/25984 - -- 修复输出为空的情况下 index compaction BE crash 的问题 - - https://github.com/apache/doris/pull/25486 - -- 修复新增列没有写入数据时,增加倒排索引 BE crash 的问题 - - https://github.com/apache/doris/pull/27276 - -- 修复 1.2 版本误建倒排索引后升级 2.0 等情况下倒排索引硬链缺失和泄露的问题 - - https://github.com/apache/doris/pull/26903 - -### 物化视图 -- 修复 group by 语句中包括重复表达式导致 BE crash 的问题 - - https://github.com/apache/doris/pull/27523 - -- 禁止视图创建时 group by 子句中使用 float/doubld 类型 - - https://github.com/apache/doris/pull/25823 - -- 增强支持了 select 查询命中物化视图的功能 - - https://github.com/apache/doris/pull/24691 - -- 修复当使用了表的 alias 时物化视图不能命中的问题 - - https://github.com/apache/doris/pull/25321 - -- 修复了创建物化视图中使用 percentile_approx 的问题 - - https://github.com/apache/doris/pull/26528 - -### 采样查询 - -- 修复 table sample 功能在 partition table 上无法正常工作的问题 - - https://github.com/apache/doris/pull/25912 - -- 修复 table sample 指定 tablet 无法工作的问题 - - https://github.com/apache/doris/pull/25378 - - -### 主键表 - -- 修复基于主键条件更新的空指针异常 - - https://github.com/apache/doris/pull/26881 - -- 修复部分列更新字段名大小写问题 - - https://github.com/apache/doris/pull/27223 - -- 修复 schema change 时 mow 会出现重复 key 的问题 - - https://github.com/apache/doris/pull/25705 - - -### 导入和 Compaction - -- 修复 routine load 一流多表时 unknown slot descriptor 错误 - - https://github.com/apache/doris/pull/25762 - -- 修复内存统计并发访问导致 BE crash 问题 - - https://github.com/apache/doris/pull/27101 - -- 修复重复取消导入导致 BE crash 的问题 - - https://github.com/apache/doris/pull/27111 - -- 修复 broker load 时 broker 连接报错问题 - - https://github.com/apache/doris/pull/26050 - -- 修复 compaction 和 scan 并发下 delete 谓词可能导致查询结果不对的问题 - - https://github.com/apache/doris/pull/24638 - -- 修复 compaction task 存在时打印大量 stacktrace 日志的问题 - - https://github.com/apache/doris/pull/25597 - - -### 数据湖兼容性 - -- 解决 iceberg 表中包含特殊字符导致查询失败的问题 - - https://github.com/apache/doris/pull/27108 - -- 修复 Hive metastore 不同版本的兼容性问题 - - https://github.com/apache/doris/pull/27327 - -- 修复读取 MaxCompute 分区表错误的问题 - - https://github.com/apache/doris/pull/24911 - -- 修复备份到对象存储失败的问题 - - https://github.com/apache/doris/pull/25496 - - https://github.com/apache/doris/pull/25803 - - -### JDBC 外表兼容性 - -- 修复 JDBC catalog 处理 Oracle 日期类型格式错误的问题 - - https://github.com/apache/doris/pull/25487 - -- 修复 JDBC catalog 读取 MySQL 0000-00-00 日期异常的问题 - - https://github.com/apache/doris/pull/26569 - -- 修复从 MariaDB 读取数据时间类型默认值为 current_timestamp 时空指针异常问题 - - https://github.com/apache/doris/pull/25016 - -- 修复 JDBC catalog 处理 bitmap 类型时 BE crash 的问题 - - https://github.com/apache/doris/pull/25034 - - https://github.com/apache/doris/pull/26933 - - -### SQL 规划和优化 - -- 修复了部分场景下分区裁剪错误的问题 - - https://github.com/apache/doris/pull/27047 - - https://github.com/apache/doris/pull/26873 - - https://github.com/apache/doris/pull/25769 - - https://github.com/apache/doris/pull/27636 - -- 修复了部分场景下子查询处理不正确的问题 - - https://github.com/apache/doris/pull/26034 - - https://github.com/apache/doris/pull/25492 - - https://github.com/apache/doris/pull/25955 - - https://github.com/apache/doris/pull/27177 - -- 修复了部分语义解析的错误 - - https://github.com/apache/doris/pull/24928 - - https://github.com/apache/doris/pull/25627 - -- 修复 right outer/anti join 时,有可能丢失数据的问题 - - https://github.com/apache/doris/pull/26529 - -- 修复了谓词被错误的下推穿过聚合算子的问题 - - https://github.com/apache/doris/pull/25525 - -- 修正了部分情况下返回的结果 header 不正确的问题 - - https://github.com/apache/doris/pull/25372 - -- 包含有 nullsafeEquals 表达式 (<=>) 作为连接条件时,可以正确对规划出 hash join - - https://github.com/apache/doris/pull/27127 - -- 修复了 set operation 算子中无法正确列裁剪的问题 - - https://github.com/apache/doris/pull/26884 - - -## 行为变更 - -- 复杂数据类型 array/map/struct 的输出格式改成跟输入格式以及 JSON 规范保持一致,跟之前版本的主要变化是日期和字符串用双引号括起来,array/map 内部的空值显示为 null 而不是 NULL。 - - https://github.com/apache/doris/pull/25946 - -- 默认情况下,当用户属性 `resource_tags.location` 没有设置时,只能使用 default 资源组的节点,而之前版本中可以访问任意节点。 - - https://github.com/apache/doris/pull/25331 - -- 支持 SHOW_VIEW 权限,拥有 SELECT 或 LOAD 权限的用户将不再能够执行 `SHOW CREATE VIEW` 语句,必须单独授予 SHOW_VIEW 权限。 - - https://github.com/apache/doris/pull/25370 - - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.4.md deleted file mode 100644 index ffce724a377e9..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.4.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -{ - "title": "Release 2.0.4", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.4 版本已于 2024 年 1 月 26 日正式发布,该版本在新优化器、倒排索引、数据湖等功能上有了进一步的完善与更新,使 Apache Doris 能够适配更广泛的场景。此外,该版本进行了若干的改进与优化,以提供更加稳定高效的性能体验。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.0.4 版本已于 2024 年 1 月 26 日正式发布,该版本在新优化器、倒排索引、数据湖等功能上有了进一步的完善与更新,使 Apache Doris 能够适配更广泛的场景。此外,该版本进行了若干的改进与优化,以提供更加稳定高效的性能体验。新版本已经上线,欢迎大家下载使用! - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - -## 行为变更 -- 提供了更精确的 Precision 和 Scale 推导,可满足金融场景计算的高要求 - - [https://github.com/apache/doris/pull/28034](https://github.com/apache/doris/pull/28034) -- Drop Policy 支持了 User 和 Role - - [https://github.com/apache/doris/pull/29488](https://github.com/apache/doris/pull/29488) - -## 新功能 -- 新优化器支持了 datev1,datetimev1 及 decimalv2 数据类型 -- 新优化器支持了 ODBC 外表 -- 倒排索引支持了 `lower_case` 和 `ignore_above` 选项 -- 倒排索引支持了 `match_regexp` 和 `match_phrase_prefix` 查询加速 -- 数据湖支持了 Paimon Native Reader -- 数据湖支持读取 LZO 压缩的 Parquet 文件 -- 审计日志支持 `insert into` - -## 改进和优化 -- 对数据均衡、迁移等存储管控进行了改进 -- 对数据冷却策略进行了改进,以节省本地硬盘存储空间 -- 对 ASCII 字符串 substr 进行了优化 -- 针对使用 date 函数查询时的分区裁剪进行了优化 -- 针对优化器自动统计信息收集的可观测性和性能进行了优化 - - -## 致谢 - -感谢 73 位开发者为 Apache Doris 2.0.4 版本做出了重要贡献,正是由于他们的努力,Apache Doris 在性能和稳定性方面取得了显著的进步。 - -airborne12、amorynan、AshinGau、BePPPower、bingquanzhao、BiteTheDDDDt、bobhan1、ByteYue、caiconghui、CalvinKirs、cambyzju、caoliang-web、catpineapple、csun5285、dataroaring、deardeng、dutyu、eldenmoon、englefly、feifeifeimoon、fornaix、Gabriel39、gnehil、HappenLee、hello-stephen、HHoflittlefish777、hubgeter、hust-hhb、ixzc、jacktengg、jackwener、Jibing-Li、kaka11chen、KassieZ、LemonLiTree、liaoxin01、LiBinfeng-01、lihuigang、liugddx、luwei16、morningman、morrySnow、mrhhsg、Mryange、nextdreamblue、Nitin-Kashyap、platoneko、py023、qidaye、shuke987、starocean999、SWJTU-ZhangLei、w41ter、wangbo、wsjz、wuwenchi、Xiaoccer、xiaokang、XieJiann、xingyingone、xinyiZzz、xuwei0912、xy720、xzj7019、yujun777、zclllyybb、zddr、zhangguoqiang666、zhangstar333、zhannngchen、zhiqiang-hhhh、zy-kkk、zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.5.md deleted file mode 100644 index ec7250a6f2933..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.5.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -{ - "title": "Release 2.0.5", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.5 版本已于 2024 年 2 月 27 日正式与大家见面。这次更新带来一系列行为变更和功能更新,并进行了若干的改进与优化,旨在为用户提供更为稳定高效的数据查询与分析体验。新版本已经上线,欢迎大家下载体验!" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.5](https://doris.apache.org/download/) 版本已于 2024 年 2 月 27 日正式与大家见面。这次更新带来一系列行为变更和功能更新,并进行了若干的改进与优化,旨在为用户提供更为稳定高效的数据查询与分析体验。新版本已经上线,欢迎大家下载体验! - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 行为变更 -- `select char(0) = '\0'` 返回 true,跟 MySQL 的行为保持一致 - - https://github.com/apache/doris/pull/30034 -- Export 导出数据支持空表 - - https://github.com/apache/doris/pull/30703 - -## 新功能 -- 利用过滤条件中的 `is null` 谓词,将 OUTER JOIN 转换为 ANTI JOIN -- 增加 `SHOW TABLETS BELONG` 语法用于获取 tablet 属于哪个 table -- InferPredicates 支持 `IN`,例如:`a = b & a in [1, 2] -> b in [1, 2]` -- 支持对物化视图收集统计信息 -- `SHOW PROCESSLIST` 支持输出连接对应的 FE -- Export 导出 CSV 文件支持通过 `with_bom` 参数控制是否带有 Windows BOM - -## 改进和优化 -- 在无统计信息时优化 Query Plan -- 基于 Rollup 的统计信息优化 Query Plan -- 用户停止 Auto Analyze 后尽快停止统计信息收集任务 -- 缓存统计信息收集异常,避免大约太多异常栈 -- 支持在 SQL 中自定使用某个物化视图 -- JDBC Catalog 谓词下推列名字符转义 -- 修复 MySQL Catalog 中 `to_date` 函数下推的问题 -- 优化 JDBC 客户端连接关闭的逻辑,在异常时正常取消查询 -- 优化 JDBC 连接池的参数 -- 通过 HMS API 获取 Hudi 外表的分区信息 -- 优化 Routine Load 的内存占用和错误信息 -- 如果 `max_backup_restore_job_num_per_db` 参数为 0,跳过所有备份恢复任务 - - -## 致谢 -最后,衷心感谢 59 位开发者为 Apache Doris 2.0.5 版本做出了重要贡献: - -airborne12, alexxing662, amorynan, AshinGau, BePPPower, bingquanzhao, BiteTheDDDDt, ByteYue, caiconghui, cambyzju, catpineapple, dataroaring, eldenmoon, Emor-nj, englefly, felixwluo, GoGoWen, HappenLee, hello-stephen, HHoflittlefish777, HowardQin, JackDrogon, jacktengg, jackwener, Jibing-Li, KassieZ, LemonLiTree, liaoxin01, liugddx, LuGuangming, morningman, morrySnow, mrhhsg, Mryange, mymeiyi, nextdreamblue, qidaye, ryanzryu, seawinde,starocean999, TangSiyang2001, vinlee19, w41ter, wangbo, wsjz, wuwenchi, xiaokang, XieJiann, xingyingone, xy720,xzj7019, yujun777, zclllyybb, zhangstar333, zhannngchen, zhiqiang-hhhh, zxealous, zy-kkk, zzzxl1993 - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.6.md deleted file mode 100644 index d591cf9fb4475..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.6.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -{ - "title": "Release 2.0.6", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.6 版本已于 2024 年 3 月 12 日正式与大家见面。本次版本中,有 51 位贡献者提交了约 114 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.6](https://doris.apache.org/download/) 版本已于 2024 年 3 月 12 日正式与大家见面。本次版本中,有 51 位贡献者提交了约 114 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 行为变更 -- 无 - -## 新功能 -- 自动选择物化视图时支持匹配带别名的函数 -- 增加安全下线一个 tablet 副本的命令 -- 外表统计信息增加行数统计缓存 -- 统计信息收集支持 Rollup - -## 改进和优化 -- 使用 protobuf 稳定序列化减少 Tablet Schema 缓存内存占用 -- 提升 `show column stats` 的性能 -- 统计信息收集和优化器支持 Iceberg 和 Paimon 的行数估计 -- JDBC Catalog 支持读取 SQL Server 的 Timestamp 类型 - - -## 致谢 -最后,衷心感谢 51 位开发者为 Apache Doris 2.0.6 版本做出了重要贡献: - -924060929, AshinGau, BePPPower, BiteTheDDDDt, CalvinKirs, cambyzju, deardeng, DongLiang-0, eldenmoon, englefly, feelshana, feiniaofeiafei, felixwluo, HappenLee, hust-hhb, iwanttobepowerful, ixzc, JackDrogon, Jibing-Li, KassieZ, larshelge, liaoxin01, LiBinfeng-01, liutang123, luennng, morningman, morrySnow, mrhhsg, qidaye, starocean999, TangSiyang2001, wangbo, wsjz, wuwenchi, xiaokang, XieJiann, xuwei0912, xy720, xzj7019, yiguolei, yujun777, Yukang-Lian, Yulei-Yang, zclllyybb, zddr, zhangstar333, zhannngchen, zhiqiang-hhhh, zy-kkk, zzzxl1993 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.7.md deleted file mode 100644 index 5024566e0e2f7..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.7.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -{ - "title": "Release 2.0.7", - "language": "zh-CN", - "description": "924060929,airborne12,amorynan,ByteYue,dataroaring,deardeng,feiniaofeiafei,felixwluo,freemandealer,gavinchou,hello-stephen,HHoflittlefish777,jacktengg," -} ---- - -## 1 行为变更 - -- `round` 函数行为跟 MySQL 保持一致,例如 `round(5/2)` 返回 3 而不是 2. - - - https://github.com/apache/doris/pull/31583 - - -- 时间精度转换行为跟 MySQL 保持一致,例如 '2023-10-12 14:31:49.666' 四舍五人到 '2023-10-12 14:31:50' . - - - https://github.com/apache/doris/pull/27965 - -## 2 新功能 - -- 在更多的情况下可以将 OUTER JOIN 转换成 ANTI JOIN 来加速查询 - - - https://github.com/apache/doris/pull/31854 - -- 支持通过 Nginx, HAProxy 等代理连接的 IP 透传 - - - https://github.com/apache/doris/pull/32338 - - -## 3 改进和优化 - -- 通过在 `information_schema` 中增加 DEFAULT_ENCRYPTION 列、增加 `processlist` 表,提升 BI 工具的兼容性 - -- 创建 JDBC Catalog 时默认自动检测连通性 - -- 增强自动恢复提升 Kafka Routine Load 的稳定性 - -- 倒排索引中文分词对英文默认做小写转换 - -- Repeat 函数的重复次数超过限制时报错 - -- 自动跳过 Hive 外表中的隐藏文件和目录 - -- 在某些极端情况下减少 File Meta Cache 避免 OOM - -- 减少 Broker Load 的 jvm 内存占用 - -- 加速带排序的 INSERT INTO SELECT 比如 `INSERT INTO t1 SELECT * FROM t2 ORDER BY k` - - -## 4 致谢 - -924060929,airborne12,amorynan,ByteYue,dataroaring,deardeng,feiniaofeiafei,felixwluo,freemandealer,gavinchou,hello-stephen,HHoflittlefish777,jacktengg,jackwener,jeffreys-cat,Jibing-Li,KassieZ,LiBinfeng-01,luwei16,morningman,mrhhsg,Mryange,nextdreamblue,platoneko,qidaye,rohitrs1983,seawinde,shuke987,starocean999,SWJTU-ZhangLei,w41ter,wsjz,wuwenchi,xiaokang,XieJiann,XuJianxu,yujun777,Yulei-Yang,zhangstar333,zhiqiang-hhhh,zy-kkk,zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.8.md deleted file mode 100644 index 8cbae42964be5..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.8.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -{ - "title": "Release 2.0.8", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.8 版本已于 2024 年 04 月 09 日正式与大家见面。本次版本中,有 35 位贡献者提交了约 65 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.8](https://doris.apache.org/download/) 版本已于 2024 年 04 月 09 日正式与大家见面。本次版本中,有 35 位贡献者提交了约 65 个功能改进以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - -## 1 行为变更 - -由于 `ADMIN SHOW xx` 语句在 MySQL 8.x jdbc driver 不能执行,所以将名字改成 `SHOW xx` - -- https://github.com/apache/doris/pull/29492 - -```sql -ADMIN SHOW CONFIG -> SHOW CONFIG -ADMIN SHOW REPLICA -> SHOW REPLICA -ADMIN DIAGNOSE TABLET -> SHOW TABLET DIAGNOSIS -ADMIN SHOW TABLET -> SHOW TABLET -``` - - -## 2 新功能 - -N/A - - - -## 3 改进和优化 - -- 新优化器支持 TopN 优化中使用倒排索引 - -- 限制统计信息 STRING 长度为 1024 以控制 BE 内存消耗 - -- 修复未创建 JDBC Client 时意外关闭的情况 - -- 接受所有 Iceberg Database,不再做额外的名字检查 - -- 异步更新外表行数统计,避免同步更新带来的 Cache miss 和 Plan 不稳定 - -- 简化 Hive 外表的 isSplitable 方法,避免过多的 Hadoop metric - - - -## 4 致谢 - -924060929, AcKing-Sam, amorynan, AshinGau, BePPPower, BiteTheDDDDt, ByteYue, cambyzju, dongsilun, eldenmoon, feiniaofeiafei, gnehil, Jibing-Li, liaoxin01, luwei16, morningman, morrySnow, mrhhsg, Mryange, nextdreamblue, platoneko, starocean999, SWJTU-ZhangLei, wuwenchi, xiaokang, xinyiZzz, Yukang-Lian, Yulei-Yang, zclllyybb, zddr, zhangstar333, zhiqiang-hhhh, ziyanTOP, zy-kkk, zzzxl1993 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.9.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.9.md deleted file mode 100644 index ce0066034c625..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.0/release-2.0.9.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -{ - "title": "Release 2.0.9", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.0.9 版本已正式发布。在本次版本中,有 34 位贡献者提交了约 68 个功能改进以及问题修复,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,[Apache Doris 2.0.9](https://doris.apache.org/download/) 版本已正式发布。在本次版本中,有 34 位贡献者提交了约 68 个功能改进以及问题修复,欢迎大家下载体验。 - -**官网下载:** [https://doris.apache.org/download/](https://doris.apache.org/download/) - -**GitHub 下载:** [https://github.com/apache/doris/releases](https://github.com/apache/doris/releases) - - -## 1 行为变更 - -无 - -## 2 新功能 - -- 物化视图的 Key 和 Value 列都允许出现谓词 - -- 物化视图支持 `bitmap_union(bitmap_from_array())` - -- 增加一个 FE 配置强制集群中所有表的 Replicate Allocation - -- 新优化器支持日期字面量指定时区 - -- `MATCH_PHRASE` 全文检索支持 slop 参数指定搜索词之间的距离 - -## 3 改进和优化 - -- `first_value` / `last_value` 函数增加第二个参数指定忽略 NULL 值 - -- `LEAD`/ `LAG` 函数的 Offset 参数可以为 0 - -- 调整物化视图匹配的顺序优先利用索引和预聚合加速查询 - -- 优化 TopN 查询 `ORDER BY k LIMIT n` 的性能 - -- 优化 Meta Cache 的性能 - -- 为` delete_bitmap get_agg` 函数增加 Profile 便于性能分析 - -- 增加 FE 参数设置 Autobucket 的最大 Bucket 数 - -## 4 致谢 - -adonis0147, airborne12, amorynan, AshinGau, BePPPower, BiteTheDDDDt, CalvinKirs, cambyzju, csun5285, eldenmoon, englefly, feiniaofeiafei, HHoflittlefish777, htyoung, hust-hhb, jackwener, Jibing-Li, kaijchen, kylinmac, liaoxin01, luwei16, morningman, mrhhsg, qidaye, starocean999, SWJTU-ZhangLei, w41ter, xiaokang, xiedeyantu, xy720, zclllyybb, zhangstar333, zhannngchen, zy-kkk, zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.0.md deleted file mode 100644 index 49a0a549aa786..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.0.md +++ /dev/null @@ -1,859 +0,0 @@ ---- -{ - "title": "Release 2.1.0", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 3 月 8 日我们引来了 Apache Doris 2.1.0 版本的正式发布,欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 3 月 8 日我们引来了 Apache Doris 2.1.0 版本的正式发布,欢迎大家下载使用。 - -- 在查询性能方面,2.1 系列版本我们着重提升了开箱盲测性能,力争不做调优的情况下取得较好的性能表现,包含了对复杂 SQL 查询性能的进一步提升,在 TPC-DS 1TB 测试数据集上获得超过 100% 的性能提升,查询性能居于业界领先地位。 - -- 在数据湖分析场景,我们进行了大量性能方面的改进、相对于 Trino 和 Spark 分别有 4-6 倍的性能提升,并引入了多 SQL 方言兼容、便于用户可以从原有系统无缝切换至 Apache Doris。在面向数据科学以及其他形式的大规模数据读取场景,我们引入了基于 Arrow Flight 的高速读取接口,数据传输效率提升 100 倍。 - -- 在半结构化数据分析场景,我们引入了全新的 Variant 和 IP 数据类型,完善了一系列分析函数,面向复杂半结构化数据的存储和分析处理更加得心应手。 - -- 在 2.1.0 版本中我们也引入了基于多表的异步物化视图以提升查询性能,支持透明改写加速、自动刷新、外表到内表的物化视图以及物化视图直查,基于这一能力物化视图也可用于数据仓库分层建模、作业调度和数据加工。 - -- 在存储方面,我们引入了自增列、自动分区、MemTable 前移以及服务端攒批的能力,使得大规模数据实时写入的效率更高。 - -- 在负载管理方面,我们进一步完善了 Workload Group 资源组的隔离能力,并增加了运行时查看 SQL 资源用量的能力,进一步提升了多负载场景下的稳定性。 - -在 2.1.0 版本的研发过程中,**有 237 位贡献者为 Apache Doris 带来了接近 6000 个 Commits。** 同时 2.1.0 版本也同样经过了近百家社区用户的大规模打磨,在测试过程中向我们反馈了许多有价值的优化项,在此向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢。后续我们将会持续敏捷发版来响应所有用户对功能和稳定性的更高追求,欢迎大家在使用过程中给予我们更多反馈。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - -## 复杂查询性能提升 100%,TPC-DS 业界领先 - - 在 2.1 系列版本中,我们着重提升了开箱盲测性能,力争不做调优的情况下取得较好的性能表现,包含了对复杂 SQL 查询性能的进一步提升。在此我们以 TPC-DS 1TB 作为性能测试对比的基准,重点对比最新 2.1.0 版本与 2.0.5 版本的性能提升。集群规模均为 1FE、3BE,其中 BE 节点的服务器配置为 48C 192G。从以下测试结果中可以看到: - -- 2.1.0 版本的总查询耗时为 245.7 秒,相较于 2.0.5 版本的 489.6 秒,**性能提升达到 100 %;** - -- 在全部 99 个 SQL 中,有近三分之一的 SQL 查询性能提升达到 2 倍以上,超过 80 个 SQL 都获得显著性能提升; - -- 不论是基础的过滤、排序、聚合,或者复杂的多表关联查询、子查询以及窗口函数计算,2.1.0 版本都有更为明显的性能优势; - -- 2.0.5 版本或 2.1.0 版本,都可以完整执行 TPC-DS 的 99 个查询。 - -![复杂查询性能提升 100%,TPC-DS 业界领先](/images/2.1-Doris-TPC-DS-best-performance.png) - - -以上详细测试结果我们将在后续提交到 Apache Doris 官网文档中,也欢迎所有用户在完成最新版本的部署后进行测试复现。 - -与此同时,我们也对业内多个 OLAP 系统在同等硬件资源和多个测试数据规模下进行了性能测试,不论大宽表场景或多表关联场景,Apache Doris 都具备着极为明显的性能优势。毫无疑问,**Apache Doris 已在业界同类产品中性能居于最领先地位**! - - -### 优化器更智能 - -在 Apache Doris 2.0 版本中我们引入了全新查询优化器,在绝大多数场景无需任何调优即可实现极致的查询性能。而在最新发布的 Apache Doris 2.1 版本中,查询优化器在整体代际更新的基础上,进行了优化规则的扩展和枚举框架的完善,面向复杂分析场景更加得心应手: - -- **优化器基础设施完善**:在多种优化器基础设施方面进行了补充和增强,例如对统计信息推导和代价模型方面的持续改进,使之能够收集更多的特征信息为复杂优化提供基础; - -- **优化规则持续扩展**:得益于丰富的实际场景反馈,新版本中查询优化器增强了包括算子下压在内的许多经典规则,结合上述基础设施扩充而引入的新优化规则,使得新版本的查询优化器能覆盖更广泛的使用场景; - -- **枚举框架进一步优化**:在查询优化器 Cascades 和 DPhyper 两大融合框架的基础上,继续深耕框架能力、优化框架性能,确立了更为清晰的枚举策略,兼顾计划质量和枚举效率,为高性能引擎提供坚实基础。例如将 Cascades 默认枚举表上限从 5 提升到了 8、有效扩大了高质量计划的覆盖范围,同时进一步优化 DPhyper 枚举效率、使之能够枚举出更优计划。 - -### 无统计信息优化 - -针对海量数据规模以及数据湖分析场景下,针对统计信息收集难度高、收集时间久的问题,在 2.1 版本中查询优化器利用多种启发式技术,大大提升了**无统计信息场景下**的计划质量,使得在没有统计信息的场景下也可获得较好的查询计划。同时扩展了 Runtime Filter 的下压场景和自适应能力,在执行过程中能够自适应地动态调整部分表达式谓词,使得 Apache Doris 在不依赖统计信息的情况下也具有优异的性能表现。 - -### Parallel Adaptive Scan 并行自适应扫描 - -在复杂数据分析场景下,每次查询都需要扫描大量的数据进行计算,因此 IO 瓶颈很大程度上决定了查询性能的上限。为了提升 Scan IO 的性能,Apache Doris 采取了并行读取的技术,每个扫描线程读取 1 个或者多个 Tablet(即用户建表时指定的 Bucket),但如若用户建表时指定的 Bucket 数目不合理、那么磁盘扫描线程就无法并行工作,直接影响查询性能。为此,在 2.1 版本中我们引入了 Tablet 内的并行扫描技术,可以将多个 Tablet 进行池化,在磁盘扫描端可以根据行数来拆分多个线程并行扫描(最多支持 48 个线程),从而有效避免分桶数不合理导致的查询性能问题。 - -![Parallel Adaptive Scan 并行自适应扫描](/images/2.1-doris-parallel-adaptive-scan.png) - -因此在 2.1 版本以后,我们建议用户**在建表时设置的分桶数=整个集群磁盘的数量**,在 IO 层面能将整个集群所有的 IO 资源全部利用起来。 - -:::tip -当前 2.1.0 版本的 Parallel Adaptive Scan 只能针对 Unqiue Key 模型的 Merge-on-Write 表以及 Duplicate Key 模型生效,预计在 2.1.1 版本中会增加对 Unique Key 模型 Merge-on-Read 表和 Aggregate Key 模型的支持。 -::: - -### Local Shuffle - -在部分场景下,数据分布不均会导致多个 Instance 的查询执行出现长尾。而为了解决单个 BE 节点上多个 Instance 之间的数据倾斜问题,在 Apache Doris 2.1 版本中我们引入了 Local Shuffle 技术,尽可能将数据打散从而加速查询。例如在某一典型的聚合查询中,数据在经过聚合之前将会通过一个 Local Shuffle 节点被均匀分布在不同的 Pipeline Task 中,如下图所示: - -![Local Shuffle](/images/2.1-doris-local-shuffle.png) - -在具备了 Parallel Adaptive Scan 和 Local Shuffle 能力之后,Apache Doris 能够规避由于分桶数不合理、数据分布不均带来的性能问题。 - -在此我们分别使用 Clickbench(大宽表场景)和 TPC-H(多表 Join 的复杂分析场景)数据集模拟建表分桶不合理的情况,在 Clickbench 数据集中我们建表 Bucket 数量分别设为 1 和 16,在 TPC-H 100G 数据集下我们建表时每个 Partition 的 Bucket 数目分别设为 1 和 16。在开启 Parallel Adaptive Scan 和 Local Shuffle 之后,整体查询性能表现比较平稳,即使不合理的数据分布也能取得优异的性能表现。 - -![Local Shuffle Clickbench and TPCH-100](/images/2.1-doris-clickbench-tpch.png) - -:::note 备注 -参考文档:[Pipeline X 执行引擎](../../query-acceleration/optimization-technology-principle/pipeline-execution-engine.md) -::: - -## ARM 架构深度适配,性能提升 230% - -在 Apache Doris 2.1 版本中我们针对 ARM 架构进行了深度的适配和指令集优化,可以在 ARM 架构上充分发挥 Apache Doris 的性能优势。相较于 2.0 版本,2.1 版本在 ClickBench、SSB 100G、TPC-H 100G 以及 TPC-DS 1TB 等多个测试数据集中取得了超过 100% 的性能提升。在此我们以大宽表场景的 ClickBench 以及多表关联场景的 TPC-H 为例,集群配置均为 1FE 3BE、BE 节点的服务器配置为 16C 64G 的 ARM 服务器,测试结论如下: - -- 在大宽表场景中,ClickBench 测试数据集 43 个 SQL 的总查询耗时从 102.36 秒降低至 30.73 秒,性能提升超过 230%; - -- 在多表关联场景中,TPC-H 22 个 SQL 的总查询耗时从 174.8 秒降低至 90.4 秒,性能提升 93%; - -## 数据湖分析 - -### 性能提升 - -在 2.1 版本中,我们对数据湖分析方面做了大量改进,包括对 HDFS 和对象存储的 IO 优化、Parquet/ORC 文件格式的读取反序列优化、浮点类型解压优化、谓词下推执行优化、缓存策略以及扫描任务调度策略的优化,以及针对不同数据源的统计信息准确性的提升及更精准的优化器代价模型。基于以上优化,Apache Doris 在数据湖分析场景下的性能得到大幅度提升。 - -![Doris 数据湖分析 - 性能提升](/images/2.1-doris-TPC-DS.png) - -在此我们以 TPC-DS 1TB 场景下进行测试,Apache Doris 2.1 版本和 Trino 435 版本的性能测试结果如下: - -- 在无缓存情况下,Apache Doris 的总体运行耗时间为 717s、Trino 为 1296s,查询耗时降低了 45%,全部 99 条 SQL 中有 80% 比 Trino 更快; - -- 在开启文件缓存功能并命中的情况下,Apache Doris 的总体性能可以进一步提升 2.2 倍以上,**较 Trino 有 4 倍以上的性能提升,全部 99 条 SQL 性能均优于 Trino**。 - -与此同时也在 TPC-DS 10TB 场景下对 Apache Doris 2.1 版本与 Spark 3.5.0 以及 3.3.1 版本进行了性能测试,查询性能分别提升 4.2 倍和 6.1 倍。 - - - -### 高速数据读取,数据传输效率提升 100 倍 - -如今许多大数据系统都采取列式内存数据格式,以 MySQL/JDBC/ODBC 作为与数据库系统交互的主流协议与标准。在数据输出至外部系统的过程中,需要将数据从系统特定的列存格式序列化为 MySQL/JDBC/ODBC 协议的行存格式,再反序列化回客户端的列存格式,这会使数据传输速度大幅降低,在面向数据科学或其他形式的大规模数据读写时,数据传输的效率缺陷愈发明显。 - -作为用于大规模数据处理的列式内存格式,Apache Arrow 提供了高效的数据结构、允许不同系统间更快共享数据。如果源数据库和目标客户端都支持 Apache Arrow 作为列式内存格式,使用 Arrow Flight SQL 协议传输将无需序列化和反序列化数据,消除数据传输中的开销。同时 Arrow Flight 还可以利用多节点和多核架构,通过完全并行化优化吞吐能力。 - -![高速数据读取,数据传输效率提升 100 倍](/images/2.1-doris-arrow-flight.png) - -在过去如果需要采取 Python 读取 Apache Doris 中的数据,需要将 Apache Doris 中列存的 Block 序列化为 MySQL 协议的行存 Bytes,然后在 Python 客户端再反序列化到 Pandas 中,传输过程带来的性能损耗非常大。 - -在 Apache Doris 2.1 版本中,我们提供了基于 Arrow Flight 的 HTTP Data API 高吞吐数据读写接口。相比于过去的 MySQL 协议,使用 Arrow Flight SQL 后,我们在 Apache Doris 中先将列存的 Block 转为同样列存的 Arrow RecordBatch,这一步转换效率非常高、且传输过程中无需再次序列化和反序列化,而后在 Python 客户端再将 Arrow RecordBatch 转到同样列存的 Pandas DataFrame 中,这一步转换同样非常快。通过 Arrow Flight 提供的 Python 客户端 Pandas/Numpy 等数据科学工具,可以快速从 Apache Doris 中读取数据并在本地进行分析。 - -基于此,Apache Doris 可以与整个 AI 和数据科学生态进行良好的整合,这也是未来的重要发展方向。 - -```C++ -conn = flight_sql.connect(uri="grpc://{FE_HOST}:{fe.conf:arrow_flight_sql_port}", db_kwargs={ - adbc_driver_manager.DatabaseOptions.USERNAME.value: "user", - adbc_driver_manager.DatabaseOptions.PASSWORD.value: "pass", - }) -cursor = conn.cursor() -cursor.execute("select * from arrow_flight_sql_test order by k0;") -print(cursor.fetchallarrow().to_pandas()) -``` - -针对常见的数据类型,我们通过不同的 MySQL 客户端进行了对比测试,基于 Arrow Flight SQL 数据传输性能相较于 MySQL 协议提升了近百倍。 - - -![Arrow Flight SQL](/images/2.1-doris-arrow-flight-sql.png) - - -:::note -演示 Demo:https://www.bilibili.com/video/BV1mj421Z7b7/?spm_id_from=333.999.0.0 -::: - -### 其他 - -- Paimon Catalog:Paimon 版本升级至 0.6.0,优化了 Read Optimized 表的读取,在 Paimon 数据充分合并的场景下,可以有 10 倍的性能提升; - -- Iceberg Catalog:Iceberg 版本升级至 1.4.3,同时解决了 AWS S3 认证的若干兼容性问题; - -- Hudi Catalog:Hudi 版本升级至 0.14.1,同时解决了 Hudi Flink Catalog 的若干兼容性问题。 - - -## 多表物化视图 - -作为一种典型的“空间换时间”策略,物化视图通过预先计算和存储 SQL 查询结果,当执行相同查询时可以直接从物化视图表中获取结果,在大幅提升查询性能的同时、更是减少重复计算带来的系统资源消耗。 - -在过去版本中 Apache Doris 提供了强一致的单表物化视图、保证基表和物化视图表的原子性,并支持了查询语句在物化视图上的智能路由。 - -**在 Apache Doris 2.1 版本中,我们引入了全新的异步物化视图,可以基于多表来构建。** 异步物化视图可以全量或者分区增量构建,也可以手动或者周期性地构建刷新数据。在多表关联查询且表数据量较大的场景下,优化器会根据代价模型进行透明改写、并自动寻找最优物化视图来响应查询,**以大幅提升查询性能**。与此同时,也提供了从外表到内表的物化视图以及直查物化视图的能力,基于此特性,**异步物化视图也可用于数据仓库分层建模、作业调度和数据加工**。异步物化视图使用方式如下: - -**表定义:** - -```SQL -use tpch; - -CREATE TABLE IF NOT EXISTS orders ( - o_orderkey integer not null, - o_custkey integer not null, - o_orderstatus char(1) not null, - o_totalprice decimalv3(15,2) not null, - o_orderdate date not null, - o_orderpriority char(15) not null, - o_clerk char(15) not null, - o_shippriority integer not null, - o_comment varchar(79) not null - ) - DUPLICATE KEY(o_orderkey, o_custkey) - PARTITION BY RANGE(o_orderdate)( - FROM ('2023-10-17') TO ('2023-10-20') INTERVAL 1 DAY) - DISTRIBUTED BY HASH(o_orderkey) BUCKETS 3 - PROPERTIES ("replication_num" = "1"); - -insert into orders values - (1, 1, 'ok', 99.5, '2023-10-17', 'a', 'b', 1, 'yy'), - (2, 2, 'ok', 109.2, '2023-10-18', 'c','d',2, 'mm'), - (3, 3, 'ok', 99.5, '2023-10-19', 'a', 'b', 1, 'yy'); - -CREATE TABLE IF NOT EXISTS lineitem ( - l_orderkey integer not null, - l_partkey integer not null, - l_suppkey integer not null, - l_linenumber integer not null, - l_quantity decimalv3(15,2) not null, - l_extendedprice decimalv3(15,2) not null, - l_discount decimalv3(15,2) not null, - l_tax decimalv3(15,2) not null, - l_returnflag char(1) not null, - l_linestatus char(1) not null, - l_shipdate date not null, - l_commitdate date not null, - l_receiptdate date not null, - l_shipinstruct char(25) not null, - l_shipmode char(10) not null, - l_comment varchar(44) not null - ) - DUPLICATE KEY(l_orderkey, l_partkey, l_suppkey, l_linenumber) - PARTITION BY RANGE(l_shipdate) - (FROM ('2023-10-17') TO ('2023-10-20') INTERVAL 1 DAY) - DISTRIBUTED BY HASH(l_orderkey) BUCKETS 3 - PROPERTIES ("replication_num" = "1"); - -insert into lineitem values - (1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-17', '2023-10-17', '2023-10-17', 'a', 'b', 'yyyyyyyyy'), - (2, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-18', '2023-10-18', '2023-10-18', 'a', 'b', 'yyyyyyyyy'), - (3, 2, 3, 6, 7.5, 8.5, 9.5, 10.5, 'k', 'o', '2023-10-19', '2023-10-19', '2023-10-19', 'c', 'd', 'xxxxxxxxx'); - - - CREATE TABLE IF NOT EXISTS partsupp ( - ps_partkey INTEGER NOT NULL, - ps_suppkey INTEGER NOT NULL, - ps_availqty INTEGER NOT NULL, - ps_supplycost DECIMALV3(15,2) NOT NULL, - ps_comment VARCHAR(199) NOT NULL -) -DUPLICATE KEY(ps_partkey, ps_suppkey) -DISTRIBUTED BY HASH(ps_partkey) BUCKETS 3 -PROPERTIES ( - "replication_num" = "1" -) -``` - -**创建物化视图:** - -```SQL -CREATE MATERIALIZED VIEW mv1 - BUILD DEFERRED REFRESH AUTO ON MANUAL - partition by(l_shipdate) - DISTRIBUTED BY RANDOM BUCKETS 2 - PROPERTIES ('replication_num' = '1') - AS - select l_shipdate, o_orderdate, l_partkey, - l_suppkey, sum(o_totalprice) as sum_total - from lineitem - left join orders on lineitem.l_orderkey = orders.o_orderkey - and l_shipdate = o_orderdate - group by - l_shipdate, - o_orderdate, - l_partkey, - l_suppkey; -``` - -**目前异步物化视图已经具备以下功能:** - -- **透明改写加速:**支持常见算子的透明改写,如 Select、Where、Join、Group by、Aggregation 等,可以直接通过建立物化视图,对现有的查询进行加速。例如在 BI 报表场景,某些报表查询延时比较高,就可以通过建立合适的物化视图进行加速。 - -- **自动刷新:**物化视图支持不同刷新策略,如定时刷新和手动刷新,也支持不同的刷新粒度,如全量刷新、分区粒度的增量刷新等。 - -- **外表到内表的物化视图:**可以对存放在 Hive、Hudi、Iceberg 等数据湖系统上的数据建立物化视图,加速对数据湖的访问,也可以通过物化视图的方式将数据湖中的数据同步到 Apache Doris 内表中。 - -- **物化视图直查:**用户也可以将物化视图的构建看做 ETL 的过程,把物化视图看做是 ETL 加工后的结果数据,由于物化视图本身也是一个表,所以用户可以直接查询物化视图。 - -:::note -- 演示 Demo: https://www.bilibili.com/video/BV1s2421T71z/?spm_id_from=333.999.0.0 -- 参考文档:[异步物化视图](../../query-acceleration/materialized-view/async-materialized-view/overview) -::: - -## 存储能力增强 - -### 自增列 AUTO_INCREMENT - -自增列 AUTO_INCREMENT 是 OLTP 数据库中常见的一项功能,提供了一种方便高效的方式来为新插入的数据行自动分配唯一标识符。由于自增列的可用值分配涉及到全局事务,因此在分布式 OLAP 数据库中并不常见。在 Apache Doris 2.1 版本中,我们通过创新性的自增序列预分配策略,提供了高效的自增列实现。基于自增列的唯一性保证,用户可以利用自增列实现高效的字典编码和查询分页。 - -**字典编码:** 在进行 PV/UV 统计或人群圈选等需要精确去重的查询时,可以使用自增列对 UserID 或订单 ID 等字符串值创建字典表,将用户数据批量或者实时写入字典表即可生成字典,根据各种维度的条件对对应的 Bitmap 进行聚合运算; - -```SQL -CREATE TABLE `demo`.`dictionary_tbl` ( - `user_id` varchar(50) NOT NULL, - `aid` BIGINT NOT NULL AUTO_INCREMENT -) ENGINE=OLAP -UNIQUE KEY(`user_id`) -DISTRIBUTED BY HASH(`user_id`) BUCKETS 32 -PROPERTIES ( -"replication_allocation" = "tag.location.default: 3", -"enable_unique_key_merge_on_write" = "true" -); -``` - -**查询分页**:在页面展示数据时,往往需要做分页展示。传统的分页通常使用 SQL 中的 `limit`, `offset` + `order by` 进行查询。在进行深分页查询时,即使查询数据量较少、数据库仍需将全部数据读取至内存进行全量排序,查询效率比较低下。采取自增列可以为每一行生成唯一标识、查询时记住上一页最大唯一标识并用于下一页的查询条件,实现更高效的分页查询。 - -以下表为例,unique_value 是一个唯一值: - -```SQL -CREATE TABLE `demo`.`records_tbl2` ( - `key` int(11) NOT NULL COMMENT "", - `name` varchar(26) NOT NULL COMMENT "", - `address` varchar(41) NOT NULL COMMENT "", - `city` varchar(11) NOT NULL COMMENT "", - `nation` varchar(16) NOT NULL COMMENT "", - `region` varchar(13) NOT NULL COMMENT "", - `phone` varchar(16) NOT NULL COMMENT "", - `mktsegment` varchar(11) NOT NULL COMMENT "", - `unique_value` BIGINT NOT NULL AUTO_INCREMENT -) DUPLICATE KEY (`key`, `name`) -DISTRIBUTED BY HASH(`key`) BUCKETS 10 -PROPERTIES ( - "replication_num" = "3" -); -``` - -在分页展示中,每页展示 100 条数据,使用如下方式获取第一页的数据: - -```SQL -select * from records_tbl2 order by unique_value limit 100; -``` - -通过程序记录下返回结果中`unique_value`中的最大值,假设为 99,则可用如下方式查询第二页的数据: - -```SQL -select * from records_tbl2 where unique_value > 99 order by unique_value limit 100; -``` - -如果要直接查询一个靠后页面的内容,此时不方便直接获取之前页面数据中`unique_value`的最大值时,例如要直接获取第 101 页的内容,则可以使用如下方式进行查询 - -```SQL -select key, name, address, city, nation, region, phone, mktsegment -from records_tbl2, (select unique_value as max_value from records_tbl2 order by uniuqe_value limit 1 offset 9999) as previous_data -where records_tbl2.uniuqe_value > previous_data.max_value -order by unique_value limit 100; -``` - -:::note -演示 Demo:https://www.bilibili.com/video/BV1VC411h7Gr/?spm_id_from=333.999.0.0 -::: - -### 自动分区 Auto Partition - -在 Apache Doris 2.1 版本之前一直采取手动分区的形式,用户需要提前把分区建立好,否则在导入数据过程中会因为找不到对应分区而出错。而自动分区功能支持了在导入数据过程中自动检测分区列的数据对应的分区是否存在。如果不存在,则会自动创建分区并正常进行导入。 - -自动分区功能使用方式如下: - -```SQL -CREATE TABLE `DAILY_TRADE_VALUE` -( - `TRADE_DATE` datev2 NULL COMMENT '交易日期', - `TRADE_ID` varchar(40) NULL COMMENT '交易编号', - ...... -) -UNIQUE KEY(`TRADE_DATE`, `TRADE_ID`) -AUTO PARTITION BY RANGE date_trunc(`TRADE_DATE`, 'year') -( -) -DISTRIBUTED BY HASH(`TRADE_DATE`) BUCKETS 10 -PROPERTIES ( - "replication_num" = "1" -); -``` - -:::caution -注意事项 - -1. 当前自动分区功能仅支持一个分区列,并且分区列必须为 NOT NULL 列; - -2. 自动分区当前已支持 Range 分区和 List 分区,其中 Range 分区函数仅支持 `date_trunc`、分区列仅支持 `DATE` 或者 `DATETIME` 格式;List 分区不支持函数调用,分区列支持 `BOOLEAN、TINYINT、SMALLINT、INT、BIGINT、LARGEINT、DATE、DATETIME、CHAR、VARCHAR` 数据类型,分区值为枚举值; - -3. 使用 List 分区时,一旦分区列的值当前不存在,自动分区功能都会为其创建一个独立的新分区。 -::: - -:::note - -参考文档:[数据划分](../../table-design/data-partitioning/data-distribution) -::: - -### INSERT INTO SELECT 导入性能提升 100% - -`INSERT INTO…SELECT` 语句是 ETL 中最高频使用的操作之一,可以快速完成数据在库表之间的迁移、转换以及清洗合并,提升 `INSERT INTO…SELECT` 性能可以更好满足用户对数据快速提取和分析的需求。在 Apache Doris 2.0 版本中,我们引入了单副本导入功能(Single Replica Load)来减少多副本的重复写入和 Compaction 工作,但是导入性能还存在优化的空间。 - -在 Apache Doris 2.1 版本中,为了进一步提升`INSERT INTO…SELECT` 性能,我们实现了 MemTable 前移以进一步减少导入过程中的开销,能在大多数场景中能在 2.0 版本的基础上取得 100% 的导入性能提升。 - -![INSERT INTO SELECT 导入性能提升 100%](/images/2.1-doris-INSERT-INTO-SELECT.png) - - -MemTable 前移和非前移的流程对比如上图所示,Sink 节点不再发送编码后的 Block,而是在本地处理完 MemTable 将生成的 Segment 数据发给下游节点,减少了数据多次编码的开销,同时使内存反压更准确和及时。此外,我们使用了 Streaming RPC 来替代了 Ping-pong RPC,减少了数据传输过程中的等待。 - -在此我们对 2.1 版本开启 MemTable 前移后的导入性能进行了测试,测试环境如下:1 FE+3 BE、每个节点 16C 64G、3 块高性能云盘(保证磁盘 I/O 不成为瓶颈) - -可以看到在单副本场景下,2.1 版本开启 MemTable 前移后、导入耗时降低至 2.0 版本的 36%,三副本场景下导入耗时降低至 2.0 版本的 54%,整体导入性能提升超过 100%。 - -| INSERT INTO 表 | Doris 2.0 非前移默认 | Doris 2.1MemTable 前移 | -| :------------------- | :------------------- | :--------------------- | -| linitem 1 副本 (38G) | 30.2 s | 11.1 s | -| linitem 3 副本 (38G) | 47.4 s | 25.4 s | - -![INSERT INTO SELECT 导入性能提升 100%](/images/2.1-insert-into-table.png) - -:::note -MemTable 前移在 2.1 版本中默认开启,用户无需修改原有的导入命令即可获得大幅性能提升。如果在使用过程中遇到问题、希望回退到原有的导入方式,可以在 MySQL 连接中设置环境变量 `enable_memtable_on_sink_node=false` 来关闭 MemTable 前移。 -::: - -### 高频实时导入/服务端攒批 Group Commit - -在数据导入过程中,不同批次导入的数据都会写入内存表中,随后在磁盘中上形成一个个 RowSet 文件,每个 Rowset 文件对应一次数据导入版本。后台 Compaction 进程会自动对多个版本的 RowSet 文件进行合并,将多个 RowSet 小文件合并成 RowSet 大文件以优化查询性能以及存储空间,而每一次的 Compaction 进程都会产生对 CPU、内存以及磁盘 IO 资源的消耗。在实际数据写入场景中,写入越实时高频、生成 RowSet 版本数越高、Compaction 所消耗的资源就越大。为了避免高频写入带来的过多资源消耗甚至 OOM,Apache Doris 引入了反压机制,即在版本过多的情况下会返回 -235,并对数据的版本数量进行控制。 - - -![高频实时导入/服务端攒批 Group Commit](/images/2.1-doris-group-commit.png) - -从 Apache Doris 2.1 版本开始,我们引入了服务端攒批 Group Commit,大幅强化了高并发、高频实时写入的能力。 - -顾名思义,Group Commit 会把用户侧的多次写入在 BE 端进行积攒后批量提交。对于用户而言,无需控制写入程序的频率,Doris 会自动把用户提交的多次写入在内部合并为一个版本,从而可以大幅提升用户侧的写入频次。 - -![高频实时导入/服务端攒批 Group Commit](/images/2.1-doris-group-commit-2.png) - -当前 Group Commit 已经支持同步模式 `sync_mode` 和异步模式 `async_mode`。同步模式下会将多个导入在一个事务提交,事务提交后导入返回,在导入完成后数据立即可见。异步模式下数据会先写入 WAL,Apache Doris 会根据负载和表的`group_commit_interval`属性异步提交数据,提交之后数据可见。为了防止 WAL 占用较大的磁盘空间,单次导入数据量较大时,会自动切换为`sync_mode`。 - -我们分别采取 JDBC 和 Stream Load 两种方式对高并发写入场景下 Group Commit(异步模式 `async_mode`)的写入性能进行了测试,测试报告如下: - -- **JDBC 写入**: - - - 集群配置为 1FE 1BE,数据集为 TPC-H SF10 Lineitem 表,总共约 22GB、1.8 亿行; - - - 经测试,在并发数 20、单次 Insert 数据行数 100 行下,导入效率达到 10.69w 行/秒、导入吞吐达 11.46 MB/秒,BE 节点的 CPU 使用率稳定保持在 10%-20%; - -- **Stream Load 写入**: - - - 集群配置为 1FE 3BE,数据集为 httplogs、总共 31GB、2.47 亿行。在未开启 Group Commit 和 开启 Group Commit 的异步模式时,通过设置不同的单并发数据量和并发数,对比数据的写入性能。 - - - 经测试,在并发数 10、单次导入数据量 1 MB 下,未开启 Group Commit 时会提示 -235 错误,开启后可稳定运行且导入效率达 81w 行/秒、导入吞吐达 104 MB/秒;在并发数 10、单次导入数据量 10MB 下,开启 Group Commit 后耗时降低至原先的 55%、导入吞吐提升 79%; - - -:::note -- 演示 Demo:https://www.bilibili.com/video/BV1um411o7Ha/?spm_id_from=333.999.0.0 - -- 参考文档和完整测试报告:[Group Commit](../../data-operate/import/group-commit-manual) - -::: - -## 半结构化数据分析 - -### Variant 数据类型 - -过去 Apache Doris 在应对复杂半结构化数据的存储和分析处理时,一般有两种方式: - -1. 一种方式是用户提前预定好表结构,加工成宽表,在数据进入前将数据解析好,这种方案的优点是写入性能好,查询也不需要解析,但是使用不够灵活、对表结构发起变更增加运维、研发的成本。 - -2. 使用 Doris 中的 JSON 类型、或是存成 JSON String,将原始 JSON 数据不经过加工直接入库,查询的时候,用解析函数处理。优点是不需要额外的数据加工、预定义表结构拍平嵌套结构,运维、研发方便,但存在解析性能以及数据读取效率低下的问题。 - -为了解决上述半结构化数据的挑战,在 Apache Doris 2.1 版本中我们引入全新的数据类型`VARIANT`,支持存储半结构化数据、允许存储包含不同数据类型(如整数、字符串、布尔值等)的复杂数据结构,无需在表结构中提前定义具体的列,其存储和查询与传统的 String、JSONB 等行存类型发生了本质的改变,期望其作为半结构化数据首选数据类型,给用户带来更加高效的数据处理机制。 - -Variant 类型特别适用于处理结构可能随时会发生变化的复杂嵌套结构。在写入过程中,Variant 类型可以自动根据列的结构和类型推断列信息,并将其合并到现有表的 Schema 中,将 JSON 键及其对应的值灵活存储为动态子列。同时,一个表可以同时包含灵活的 Variant 对象列和预先定义类型的更严格的静态列,从而在数据存储、查询上提供了更大的灵活性。除此之外,Variant 类型能够与 Doris 核心特性融合,利用列式存储、向量化引擎、优化器等技术,为用户带来极高性价比的查询性能及存储性能。 - -**使用方式如下:** - -```SQL --- 无索引 -CREATE TABLE IF NOT EXISTS ${table_name} ( - k BIGINT, - v VARIANT -) -table_properties; - --- 在v列创建索引,可选指定分词方式,默认不分词 -CREATE TABLE IF NOT EXISTS ${table_name} ( - k BIGINT, - v VARIANT, - INDEX idx_var(v) USING INVERTED [PROPERTIES("parser" = "english|unicode|chinese")] [COMMENT 'your comment'] -) -table_properties; - --- 查询,使用`[]`形式访问子列 -SELECT v["properties"]["title"] from ${table_name} -``` - -**相比 JSON 类型的优势** - -在 Apache Doris 中 JSON 类型是以二进制 JSONB 格式进行存储,整行 JSON 以行存的形式存储到 Segment 文件中。而 VARIANT 类型在写入的时候进行类型推断,将写入的 JSON 列存化,查询不需要进行解析。此外 Variant 类型针对稀疏场景的 JSON 进行优化,只提取频繁出现的列,稀疏的列会以单独的格式进行存储。 - -为了验证引入 Variant 数据类型后在存储以及查询上所带来的优势,我们基于 ClickBench 测试数据集进行了存储空间和查询性能的测试。 - -在存储空间方面,相同数据采取 Variant 类型,所占用的存储空间跟预定义的静态列的存储空间持平,相比于 JSON 类型则减少了约 65%。在一些低基数场景,由于列存的优势,存储资源的成本效应会更加明显。 - -![相比 JSON 类型的优势](/images/2.1-comparied-to-Json.png) - -在查询性能方面,如下表可知,Variant 类型与预定义静态列的查询性能差异在 10% 左右;**而对于 JSON 类型来说,Variant 类型的热查询速度相比于 JSON 类型提升了 8 倍以上,冷查询有着数量级的提升。**(由于 I/O 原因,JSONB 类型的冷查询大部分超时)。 - -![相比 JSON 类型的优势](/images/2.1-comparied-to-Json-2.png) - - -:::caution -注意事项: - -- 目前 Variant 暂不支持 Aggregate 模型,也不支持将 Variant 类型作为 Unique 或 Duplicate 模型的主键及排序键; - -- 推荐使用 RANDOM 模式或者开启 Group Commit 导入,写入性能更高效; - -- 日期、Decimal 等非标准 JSON 类型尽可能提取出来作为静态字段,性能更好; - -- 二维及其以上的数组以及数组嵌套对象,列存化会被存成 JSONB 编码,性能不如原生数组; - -- 查询过滤、聚合需要带 Cast,存储层会根据存储类型和 Cast 目标类型来提示(hint)存储引擎谓词下推,加速查询。 -::: - -:::note -- 演示 Demo: https://www.bilibili.com/video/BV13u4m1g7ra/?spm_id_from=333.999.0.0 - -- 参考文档:[VARIANT](../../sql-manual/basic-element/sql-data-types/semi-structured/VARIANT) - -::: - -### IP 数据类型 - -在网络流量监控的场景中,IP 地址是一个常见的字段,大量的统计分析基于 IP 地址进行。在 Apache Doris 2.1 版本中,将原生支持 IPv4 和 IPv6 数据类型,用高效的二进制形式存储 IP 数据。相比于使用明文的 IP String,内存和存储空间可节省 60% 左右。 - -同时基于 IP 类型,我们增加了常用的 20 多个 IP 处理函数,如: - -- IPV4_NUM_TO_STRING:将类型为 Int16、Int32、Int64 且大端表示的 IPv4 的地址,返回相应 IPv4 的字符串表现形式; -- IPV4_CIDR_TO_RANGE:接收一个 IPv4 和一个包含 CIDR 的 Int16 值,返回一个结构体,其中包含两个 IPv4 字段分别表示子网的较低范围(min)和较高范围(max); -- INET_ATON:获取包含 IPv4 地址的字符串,格式为 A.B.C.D(点分隔的十进制数字) - -:::note -参考文档:[IPV6](../../sql-manual/basic-element/sql-data-types/ip/IPV6) - -::: - -### 复杂数据类型分析函数完善 - -在 Apache Doris 2.1 版本中我们丰富了行转列和 IN 能支持的数据类型。如: - -- `explode_map`:支持 MAP 类型数据行转列(仅在新优化器中实现) - -支持 Map 类型 Explode 行转列,将 Map 字段的 N 个 Key Value 对展开成 N 行,每行的 Map 字段替换成 Key 和 Value 两个字段。`explode_map` 需要和 Lateral View 一起使用,可以接多个 Lateral View, 结果则是每个 `explode_map` 之后的行数以笛卡尔积的形式展示。 - -具体使用如下: - -```SQL --- 建表语句 - CREATE TABLE `sdu` ( - `id` INT NULL, - `name` TEXT NULL, - `score` MAP NULL -) ENGINE=OLAP -DUPLICATE KEY(`id`) -COMMENT 'OLAP' -DISTRIBUTED BY HASH(`id`) BUCKETS 1 -PROPERTIES ( -"replication_allocation" = "tag.location.default: 1" -); - --- insert 数据 -insert into sdu values (0, "zhangsan", {"Chinese":"80","Math":"60","English":"90"}); -insert into sdu values (1, "lisi", {"null":null}); -insert into sdu values (2, "wangwu", {"Chinese":"88","Math":"90","English":"96"}); -insert into sdu values (3, "lisi2", {null:null}); -insert into sdu values (4, "amory", NULL); - -mysql> select name, course_0, score_0 from sdu lateral view explode_map(score) tmp as course_0,score_0; -+----------+----------+---------+ -| name | course_0 | score_0 | -+----------+----------+---------+ -| zhangsan | Chinese | 80 | -| zhangsan | Math | 60 | -| zhangsan | English | 90 | -| lisi | null | NULL | -| wangwu | Chinese | 88 | -| wangwu | Math | 90 | -| wangwu | English | 96 | -| lisi2 | NULL | NULL | -+----------+----------+---------+ - -mysql> select name, course_0, score_0, course_1, score_1 from sdu lateral view explode_map(score) tmp as course_0,score_0 lateral view explode_map(score) tmp1 as course_1,score_1; -+----------+----------+---------+----------+---------+ -| name | course_0 | score_0 | course_1 | score_1 | -+----------+----------+---------+----------+---------+ -| zhangsan | Chinese | 80 | Chinese | 80 | -| zhangsan | Chinese | 80 | Math | 60 | -| zhangsan | Chinese | 80 | English | 90 | -| zhangsan | Math | 60 | Chinese | 80 | -| zhangsan | Math | 60 | Math | 60 | -| zhangsan | Math | 60 | English | 90 | -| zhangsan | English | 90 | Chinese | 80 | -| zhangsan | English | 90 | Math | 60 | -| zhangsan | English | 90 | English | 90 | -| lisi | null | NULL | null | NULL | -| wangwu | Chinese | 88 | Chinese | 88 | -| wangwu | Chinese | 88 | Math | 90 | -| wangwu | Chinese | 88 | English | 96 | -| wangwu | Math | 90 | Chinese | 88 | -| wangwu | Math | 90 | Math | 90 | -| wangwu | Math | 90 | English | 96 | -| wangwu | English | 96 | Chinese | 88 | -| wangwu | English | 96 | Math | 90 | -| wangwu | English | 96 | English | 96 | -| lisi2 | NULL | NULL | NULL | NULL | -+----------+----------+---------+----------+---------+ -``` - -`explode_map_outer` 和 `explode_outer` 的目的一致,可以将当前 MAP 类型的列中是 NULL 的数据行展示出来。 - -```SQL -mysql> select name, course_0, score_0 from sdu lateral view explode_map_outer(score) tmp as course_0,score_0; -+----------+----------+---------+ -| name | course_0 | score_0 | -+----------+----------+---------+ -| zhangsan | Chinese | 80 | -| zhangsan | Math | 60 | -| zhangsan | English | 90 | -| lisi | null | NULL | -| wangwu | Chinese | 88 | -| wangwu | Math | 90 | -| wangwu | English | 96 | -| lisi2 | NULL | NULL | -| amory | NULL | NULL | -+----------+----------+---------+ -``` - -- 增加 IN 谓词支持 Struct 类型数据的能力(仅在新优化器中实现) - -IN 谓词的左参数支持 `struct() function` 构建的 Struct 类型的数据,也支持 Select 某表中某一列是 Struct 类型的数据,右边的参数支持一个由 `struct() function` 构建的 Struct 类型的数据的数组。IN 谓词支持 Struct 类型可以有效替换 Where 条件中如果需要大量的 or 连词连接的表达式,如: `(a = 1 and b = '2') or (a = 1 and b = '3') or (...)` 可以通过 IN 实现为 `struct(a,b) in (struct(1, '2'), struct(1, '3'), ...)` - -```SQL -mysql> select struct(1,"2") in (struct(1,3), struct(1,"2"), struct(1,1), null); -+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| cast(struct(1, '2') as STRUCT) IN (NULL, cast(struct(1, '2') as STRUCT), cast(struct(1, 1) as STRUCT), cast(struct(1, 3) as STRUCT)) | -+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| 1 | -+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -mysql> select struct(1,"2") not in (struct(1,3), struct(1,"2"), struct(1,1), null); -+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| ( not cast(struct(1, '2') as STRUCT) IN (NULL, cast(struct(1, '2') as STRUCT), cast(struct(1, 1) as STRUCT), cast(struct(1, 3) as STRUCT))) | -+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| 0 | -+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -``` - -- `MAP_AGG`:接收 expr1 作为键,expr2 作为对应的值,返回一个 MAP - -:::note -参考文档:[MAP_AGG](../../sql-manual/sql-functions/aggregate-functions/map-agg.md) -::: - - - -## 负载管理 - -### 资源硬隔离 - -在 Apache Doris 2.0 版本我们引入了 Workload Group,可以实现对 CPU 资源的软限制。Workload Group 软限的优点是可以提升资源的利用率,但同时也会带来查询延迟的不确定性,这对那些期望查询性能稳定性的用户来说是难以接受的。因此在 Apache Doris 2.1 版本中我们对 Workload Group 实现了 CPU 硬限,即无论当前物理机的整体 CPU 是否空闲,配置了硬限的 Group 最大 CPU 用量不能超过配置的值。 - -这意味着不管单机的资源是否充足,该 Workload Group 的最大可用 CPU 资源都是固定的,只要用户的查询负载不发生大的变化,那么查询性能就会相对稳定。由于影响一个查询性能稳定性的因素很多,除了 CPU 之外,内存、IO 以及软件层面的资源竞争也都会产生影响,因此当集群的负载在空闲和满载之间切换时,即使配置了 CPU 的硬限,查询性能的稳定性也会产生波动,但是预期的表现应该是优于软限制。 - -:::caution -注意事项 - -1. Doris 2.0 版本的 CPU 隔离是基于优先级队列实现的,而在 2.1 版本中 Apache Doris 是基于 CGroup 实现了 CPU 资源的隔离,因此从 2.0 版本升级到 2.1 版本时,需要在使用前完成 CGroup 的配置,详细注意事项参考官网文档。 - -2. 目前 Workload Group 支持的工作负载类型包括查询间的隔离以及导入与查询之间的隔离,需要注意的是如果期望对导入负载进行彻底的限制,那么需要开启 MemTable 前移。 - -3. 用户需要通过开关指定当前集群的 CPU 限制模式是软限还是硬限,暂不支持两种模式同时运行,两种模式的切换可以参考官网文档,后续我们也会根据用户的实际需求决定是否要同时支持这两种模式。 -::: - -:::note -- 演示 Demo:https://www.bilibili.com/video/BV1Fz421X7XE/?spm_id_from=333.999.0.0 -- 参考文档:[Workload Group](../../admin-manual/workload-management/workload-group) - -::: - -### TopSQL - -:::tip -自 2.1.1 版本之后,active_queries() 已经废弃,TopSQl 主要通过 Doris 内置的系统表实现,参考文档 [工作负载诊断与分析](../../admin-manual/workload-management/analysis-diagnosis.md) -::: - -当集群出现预期外的大查询导致集群整体负载上升、查询可用性下降时,用户难以快速找到这些大查询并进行相应的降级操作。因此在 Apache Doris 2.1 版本中我们支持了运行时查看 SQL 资源用量的功能,具体指标如下: - -```SQL -mysql [(none)]>desc function active_queries(); -+------------------------+--------+------+-------+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+------------------------+--------+------+-------+---------+-------+ -| BeHost | TEXT | No | false | NULL | NONE | -| BePort | BIGINT | No | false | NULL | NONE | -| QueryId | TEXT | No | false | NULL | NONE | -| StartTime | TEXT | No | false | NULL | NONE | -| QueryTimeMs | BIGINT | No | false | NULL | NONE | -| WorkloadGroupId | BIGINT | No | false | NULL | NONE | -| QueryCpuTimeMs | BIGINT | No | false | NULL | NONE | -| ScanRows | BIGINT | No | false | NULL | NONE | -| ScanBytes | BIGINT | No | false | NULL | NONE | -| BePeakMemoryBytes | BIGINT | No | false | NULL | NONE | -| CurrentUsedMemoryBytes | BIGINT | No | false | NULL | NONE | -| ShuffleSendBytes | BIGINT | No | false | NULL | NONE | -| ShuffleSendRows | BIGINT | No | false | NULL | NONE | -| Database | TEXT | No | false | NULL | NONE | -| FrontendInstance | TEXT | No | false | NULL | NONE | -| Sql | TEXT | No | false | NULL | NONE | -+------------------------+--------+------+-------+---------+-------+ -``` - -`active_queries()` 函数记录了查询在各个 BE 上运行时的审计信息,该函数可以当做普通的 Doris 表来看待,支持查询、谓词过滤、排序和 Join 等操作。常用的指标包括 SQL 的运行时间、CPU 时间、单 BE 的峰值内存、Scan 的数据量以及 Shuffle 的数据量,也可以从 BE 的粒度做上卷,查看 SQL 全局的资源用量。 - -需要注意的是这里只显示运行时的 SQL,查询结束的 SQL 不会在这里显示,而是写入审计日志中(目前主要是 fe.audit.log)。常用的 SQL 如下: - -```SQL -查看集群中目前运行时间最久的n个sql -select QueryId,max(QueryTimeMs) as query_time from active_queries() group by QueryId order by query_time desc limit 10; - -查看目前集群中CPU耗时最长的n个sql -select QueryId, sum(QueryCpuTimeMs) as cpu_time from active_queries() group by QueryId order by cpu_time desc limit 10 - -查看目前集群中scan行数最多的n个sql以及他们的运行时间 -select t1.QueryId,t1.scan_rows, t2.query_time from - (select QueryId, sum(ScanRows) as scan_rows from active_queries() group by QueryId order by scan_rows desc limit 10) t1 - left join (select QueryId,max(QueryTimeMs) as query_time from active_queries() group by QueryId) t2 on t1.QueryId = t2.QueryId - -查看目前各个BE的负载情况,按照CPU时间/scan行数/shuffle字节数降序排列 -select BeHost,sum(QueryCpuTimeMs) as query_cpu_time, sum(ScanRows) as scan_rows,sum(ShuffleSendBytes) as shuffle_bytes from active_queries() group by BeHost order by query_cpu_time desc,scan_rows desc ,shuffle_bytes desc limit 10 - -查看单BE峰值内存最高的N个sql -select QueryId,max(BePeakMemoryBytes) as be_peak_mem from active_queries() group by QueryId order by be_peak_mem desc limit 10; -``` - -目前主要展示的负载类型包括 Select 和`Insert Into……Select`,预计在 2.1 版本之上的三位迭代版本中会支持 Stream Load 和 Broker Load 的资源用量展示。 - -:::note -参考文档:[ACTIVE_QUERIES](../../admin-manual/system-tables/information_schema/active_queries) -::: - - -## 其他 - -### Decimal256 - -为了更好的满足金融类或者财务类客户以及一些高端制造业客户对于数字类型进行精确计算的需求,2.1 新版本中提供了更高精度的 Decimal 数据类型,最高支持 76 位有效数字(该类型处于 Experimental 状态,需要手工开启配置项 set enable_decimal256=true 才能使用)。 - -示例: - -```SQL -CREATE TABLE `test_arithmetic_expressions_256` ( - k1 decimal(76, 30), - k2 decimal(76, 30) - ) - DISTRIBUTED BY HASH(k1) - PROPERTIES ( - "replication_num" = "1" - ); - -insert into test_arithmetic_expressions_256 values - (1.000000000000000000000000000001, 9999999999999999999999999999999999999999999998.999999999999999999999999999998), - (2.100000000000000000000000000001, 4999999999999999999999999999999999999999999999.899999999999999999999999999998), - (3.666666666666666666666666666666, 3333333333333333333333333333333333333333333333.333333333333333333333333333333); -``` - -查询语句及结果: - -```SQL -select k1, k2, k1 + k2 a from test_arithmetic_expressions_256 order by 1, 2; -+----------------------------------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| k1 | k2 | a | -+----------------------------------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| 1.000000000000000000000000000001 | 9999999999999999999999999999999999999999999998.999999999999999999999999999998 | 9999999999999999999999999999999999999999999999.999999999999999999999999999999 | -| 2.100000000000000000000000000001 | 4999999999999999999999999999999999999999999999.899999999999999999999999999998 | 5000000000000000000000000000000000000000000001.999999999999999999999999999999 | -| 3.666666666666666666666666666666 | 3333333333333333333333333333333333333333333333.333333333333333333333333333333 | 3333333333333333333333333333333333333333333336.999999999999999999999999999999 | -+----------------------------------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -3 rows in set (0.09 sec) -``` - -:::caution -注意事项 -- Decimal256 类型对于计算 CPU 的消耗更高,因此在性能上会有一些损耗。 -::: - - -### 任务调度 Job Scheduler - -同社区用户多次交流中,我们发现许多场景下用户使用 Apache Doris 时都存在定时调度的需求,例如: - -- 周期性的 Backup; - -- 过期数据定时清理; - -- 周期性的导入任务,如定时通过 Catalog 的方式去进行增量或全量数据同步; - -- 定期 ETL,如部分用户定期从宽表中 Load 数据至指定表、从明细表中定时拉取数据存至聚合表、ODS 层表定时打宽并写入原有宽表更新; - -尽管诸如 Airflow、DolphinScheduler 等可供选择的外部调度系统非常多,但仍面临一致性的问题——在极端情况下,外部调度系统触发 Doris 导入任务并执行成功,因意外情况忽然宕机时,外部调度系统无法正确获取执行结果,会认为此次调度失败,导致触发调度系统的容错机制,通常是重试或者直接失败。而无论采用哪种策略,最终都会导致以下几个情况发生: - -- **资源浪费**:由于调度系统误认为任务失败,可能会重新调度执行已经成功的任务,导致不必要的资源消耗。 - -- **数据重复或丢失**:如果调度系统选择重试导入任务,可能导致数据重复导入,造成数据冗余和不一致。另一方面,如果调度系统直接标记任务为失败,可能导致实际已成功导入的数据被忽略或丢失。 - -- **时间延误**:由于调度系统的容错机制被触发,可能需要进行额外的任务调度和重试,导致整体数据处理时间延长,影响业务效率和响应速度。 - -- **系统稳定性下降**:频繁的重试或直接失败可能导致调度系统和 Doris 的负载增加,进而影响系统的稳定性和性能。 - -因此我们在 Apache Doris 2.1 版本中引入了 Job Scheduler 功能并具备了自行任务调度的能力。Doris Job Scheduler 是根据既定计划运行的任务,用于在特定时间或指定时间间隔触发预定义的操作,从而帮助我们自动执行一些任务。从功能上来讲,它类似于操作系统上的定时任务(如:Linux 中的 cron、Windows 中的计划任务),但 Doris 的 Job 调度可以精确到秒级。对于导入场景,我们能够做到完全的一致性保障。除此之外,Doris 内置的 Jon Scheduler 还具有以下特点: - -1. **高效调度**:Job Scheduler 可以在指定的时间间隔内安排任务和事件,确保数据处理的高效性。采用时间轮算法保证事件能够精准做到秒级触发。 - -2. **灵活调度**:Job Scheduler 提供了多种调度选项,如按 分、小时、天或周的间隔进行调度,同时支持一次性调度以及循环(周期)事件调度,并且周期调度也可以指定开始时间、结束时间。 - -3. **事件池和高性能处理队列**:Job Scheduler 采用 Disruptor 实现高性能的生产消费者模型,最大可能的避免任务执行过载。 - -4. **调度记录可追溯**:Job Scheduler 会存储最新的 Task 执行记录(可配置),通过简单的命令即可查看任务执行记录,确保过程可追溯。 - -5. **高可用**:依托于 Doris 自身的高可用机制,Job 可以很轻松的做到自恢复,高可用。 - -在此我们创建一个定时调度任务作为示例: - -```SQL -// 从 2023-11-17 起每天定时执行 insert语句直到 2038 年结束 -CREATE -JOB e_daily - ON SCHEDULE - EVERY 1 DAY - STARTS '2023-11-17 23:59:00' - ENDS '2038-01-19 03:14:07' - COMMENT 'Saves total number of sessions' - DO - INSERT INTO site_activity.totals (time, total) - SELECT CURRENT_TIMESTAMP, COUNT(*) - FROM site_activity.sessions where create_time >= days_add(now(),-1) ; -``` - -:::caution 注意事项 - -当前 Job Scheduler 仅支持 Insert 内表,参考文档:[CREATE-JOB](../../sql-manual/sql-statements/job/CREATE-JOB) - -::: - -## Behavior Changed - -- Unique Key 模型默认开启 Merge On Write 写时合并,新创建的 Unique Key 模型的表将自动设置 `enable_unique_key_merge_on_write=true`。 - -- 倒排索引 Invert Index 经过一年多时间的打磨,已实现了对原本的位图索引 Bitmap Index 功能和场景的全覆盖,且功能上和性能上都大幅优于原本的位图索引 Bitmap Index,因此从 Apache Doris 2.1 版本起,我们将默认停止对位图索引 Bitmap Index 的支持,已经创建的位图索引保持不变将继续生效,不允许创建新的位图索引,在未来我们将会移除位图索引的相关代码。 - -- `cpu_resource_limit`不再支持,其本身是限制 BE 上 Scanner 线程数目的功能,而 Workload Group 也能支持设置 BE Scanner 线程数目,所以已设置的 `cpu_resource_limit `将失效。 - -- Segment Compaction 主要应对单批次大数据量的导入,可以在同一批次数据中进行多个 Segment 的 Compaction 操作,在 2.1 版本开始 Segment Compaction 将默认开启,`enable_segcompaction` 默认值设置为 True。 - -- Audit Log 插件 - - - 从 2.1 版本开始,Apache Doris 开始内置 Audit Log 审计日志插件,用户只需通过设置全局变量 `enable_audit_plugin` 开启或关闭审计日志功能。 - - - 对于之前已经安装过审计日志插件的用户,升级后可以继续使用原有插件,也可以通过 uninstall 命令卸载原有插件后,使用新的插件。但注意,切换插件后,审计日志表也将切换到新的表中。 - - - 具体可参阅:[审计日志插件](../../admin-manual/audit-plugin.md) - - - - -## 致谢 - -467887319, 924060929, acnot, airborne12, AKIRA, alan_rodriguez, AlexYue, allenhooo, amory, amory, AshinGau, beat4ocean, BePPPower, bigben0204, bingquanzhao, BirdAmosBird, BiteTheDDDDt, bobhan1, caiconghui, camby, camby, CanGuan, caoliang-web, catpineapple, Centurybbx, chen, ChengDaqi2023, ChenyangSunChenyang, Chester, ChinaYiGuan, ChouGavinChou, chunping, colagy, CSTGluigi, czzmmc, daidai, dalong, dataroaring, DeadlineFen, DeadlineFen, deadlinefen, deardeng, didiaode18, DongLiang-0, dong-shuai, Doris-Extras, Dragonliu2018, DrogonJackDrogon, DuanXujianDuan, DuRipeng, dutyu, echo-dundun, ElvinWei, englefly, Euporia, feelshana, feifeifeimoon, feiniaofeiafei, felixwluo, figurant, flynn, fornaix, FreeOnePlus, Gabriel39, gitccl, gnehil, GoGoWen, gohalo, guardcrystal, hammer, HappenLee, HB, hechao, HelgeLarsHelge, herry2038, HeZhangJianHe, HHoflittlefish777, HonestManXin, hongkun-Shao, HowardQin, hqx871, httpshirley, htyoung, huanghaibin, HuJerryHu, HuZhiyuHu, Hyman-zhao, i78086, irenesrl, ixzc, jacktengg, jacktengg, jackwener, jayhua, Jeffrey, jiafeng.zhang, Jibing-Li, JingDas, julic20s, kaijchen, kaka11chen, KassieZ, kindred77, KirsCalvinKirs, KirsCalvinKirs, kkop, koarz, LemonLiTree, LHG41278, liaoxin01, LiBinfeng-01, LiChuangLi, LiDongyangLi, Lightman, lihangyu, lihuigang, LingAdonisLing, liugddx, LiuGuangdongLiu, LiuHongLiu, liuJiwenliu, LiuLijiaLiu, lsy3993, LuGuangmingLu, LuoMetaLuo, luozenglin, Luwei, Luzhijing, lxliyou001, Ma1oneZhang, mch_ucchi, Miaohongkai, morningman, morrySnow, Mryange, mymeiyi, nanfeng, nanfeng, Nitin-Kashyap, PaiVallishPai, Petrichor, plat1ko, py023, q763562998, qidaye, QiHouliangQi, ranxiang327, realize096, rohitrs1983, sdhzwc, seawinde, seuhezhiqiang, seuhezhiqiang, shee, shuke987, shysnow, songguangfan, Stalary, starocean999, SunChenyangSun, sunny, SWJTU-ZhangLei, TangSiyang2001, Tanya-W, taoxutao, Uniqueyou, vhwzIs, walter, walter, wangbo, Wanghuan, wangqt, wangtao, wangtianyi2004, wenluowen, whuxingying, wsjz, wudi, wudongliang, wuwenchihdu, wyx123654, xiangran0327, Xiaocc, XiaoChangmingXiao, xiaokang, XieJiann, Xinxing, xiongjx, xuefengze, xueweizhang, XueYuhai, XuJianxu, xuke-hat, xy, xy720, xyfsjq, xzj7019, yagagagaga, yangshijie, YangYAN, yiguolei, yiguolei, yimeng, YinShaowenYin, Yoko, yongjinhou, ytwp, yuanyuan8983, yujian, yujun777, Yukang-Lian, Yulei-Yang, yuxuan-luo, zclllyybb, ZenoYang, zfr95, zgxme, zhangdong, zhangguoqiang, zhangstar333, zhangstar333, zhangy5, ZhangYu0123, zhannngchen, ZhaoLongZhao, zhaoshuo, zhengyu, zhiqqqq, ZhongJinHacker, ZhuArmandoZhu, zlw5307, ZouXinyiZou, zxealous, zy-kkk, zzwwhh, zzzxl1993, zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.1.md deleted file mode 100644 index 54aa067dffc1c..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.1.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -{ - "title": "Release 2.1.1", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.1 版本已于 2024 年 4 月 3 日正式发布。该版本针对 2.1.0 版本出现的问题进行较为全面的优化,提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.1.1 版本已于 2024 年 4 月 3 日正式发布。该版本针对 2.1.0 版本出现的问题进行较为全面的优化,提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- **立即下载:** https://doris.apache.org/download/ - -- **GitHub Release:** https://github.com/apache/doris/releases - - -## 1 行为变更 - -1. 改变了 Float 类型字段返回值序列化的方式,可以提升大数据量下 Float 返回的性能。 - -- https://github.com/apache/doris/pull/32049 - -2. 将部分 Table Valued Function 变更为系统表 `active_queries()`, `workload_groups()`。 - -- https://github.com/apache/doris/pull/32314 - -3. 由于 `show query``/l``oad profile stmt` 语句在实际用户场景中使用较少,该语句将不再支持与维护。同时该功能在 Pipeline 与 PipelineX 引擎中不支持。 - -- https://github.com/apache/doris/pull/32467 - -4. 升级 Arrow Flight 版本至 15.0.2,同时用户需要使用 ADBC 15.0.2 版本访问 Doris。 - -- https://github.com/apache/doris/pull/32827. - -## 2 升级问题 - -1. 修复了从 2.0.x 滚动升级至 2.1.x 的过程中,部分 BE 节点升级出现 Core 的问题。 - -- https://github.com/apache/doris/pull/32672 - -- https://github.com/apache/doris/pull/32444 - -- https://github.com/apache/doris/pull/32162 - -2. 修复了在 2.0.x 滚动升级至 2.1.x 过程中,使用 JDBC Catalog 会出现 Query 报错的问题。 - -- https://github.com/apache/doris/pull/32618 - -## 3 新功能 - -1. 默认开启列级权限。 - -- https://github.com/apache/doris/pull/32659 - -2. Pipeline 和 PipelineX 引擎能够在 K8S 下准确获取 CPU 核数。 - -- https://github.com/apache/doris/pull/32370 - -3. 支持读取 Parquet INT96 类型 - -- https://github.com/apache/doris/pull/32394 - -4. 支持 IP 透传的协议,以方便在 FE 之前启用代理的同时还能获取客户端准确的 IP 地址,实现白名单权限控制。 - -- https://github.com/apache/doris/pull/32338/files - -5. 增加对 Workload Queue 检测指标。 - -- https://github.com/apache/doris/pull/32259 - -6. 增加系统表 `backend_active_tasks `,以实时监测每个 BE 上活跃任务以及消耗的资源信息。 - -- https://github.com/apache/doris/pull/31945 - -7. 在 Spark Doris Connector 中增加 IPV4 和 IPV6 的支持。 - -- https://github.com/apache/doris/pull/32240 - -8. CCR 支持倒排索引。 - -- https://github.com/apache/doris/pull/32101 - -9. 支持查询 Experimental 的 Session Variable。 - -- https://github.com/apache/doris/pull/31837 - -10. 支持建立 `bitmap_union(bitmap_from_array())` 函数的物化视图。 - --https://github.com/apache/doris/pull/31962 - -11. 支持对 Hive 中 `HIVE_DEFAULT_PARTITION` 分区进行列裁剪。 - -- https://github.com/apache/doris/pull/31736 - -12. 支持 `set variable` 语句中使用函数。 - -- https://github.com/apache/doris/pull/32492 - -13. Arrow 序列化方式增加对 Variant 类型的支持。 - -- https://github.com/apache/doris/pull/32809 - -## 4 改进与优化 - -1. 当系统自动重启或者滚动升级之后,自动启动 Routine Load 导入任务。 - -- https://github.com/apache/doris/pull/32239 - -2. 优化了 Routine Load 任务在各个 BE 上的分布方式,让各个 BE 负载更加均衡。 - -- https://github.com/apache/doris/pull/32021 - -3. 升级 Spark 的版本,解决部分 Spark Load 的安全问题。 - -- https://github.com/apache/doris/pull/30368 - -4. 在冷热分离过程中,自动跳过被删除的 Tablet. - -- https://github.com/apache/doris/pull/32079 - -5. Workload Group 支持对 Routine Load 的资源进行限制。 - -- https://github.com/apache/doris/pull/31671 - -6. 大幅度优化多表物化视图查询改写性能。 - -- https://github.com/apache/doris/pull/31886 - -7. 优化 Broker Load 任务对 FE 的内存使用 - -- https://github.com/apache/doris/pull/31985 - -8. 优化 Partition 的裁剪逻辑。 - -- https://github.com/apache/doris/pull/31970 - -9. 优化 Tablet Schema Cache 对 BE 内存使用。 - -- https://github.com/apache/doris/pull/31141 - -10. 多表物化视图增加更多对 JOIN 类型的支持,包括 INNER JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOIN、LEFT SEMI JOIN、RIGHT SEMI JOIN、LEFT ANTI JOIN、RIGHT ANTI JOIN - -- https://github.com/apache/doris/pull/32909 - -## 5 Bugs 修复 - -1. 修复 TopN 下推导致的问题。 - -- https://github.com/apache/doris/pull/326332. - -2. 修复 JAVA UDF 带来的内存泄露问题。 - -- https://github.com/apache/doris/pull/32630 - -3. 修复 ODBC 表备份恢复问题。 - -- https://github.com/apache/doris/pull/31989 - -4. 修复对 Variant 类型进行运算时常量折叠会导致 BE 出错的问题 - -- https://github.com/apache/doris/pull/32265 - -5. 修复了部分导入任务失败时 Routine Load 卡住的问题。 - -- https://github.com/apache/doris/pull/32638 - -6. 修复 SEMI JOIN 结果不正确的问题。 - -- https://github.com/apache/doris/pull/32477 - -7. 当列的数据为空时,修复建立倒排索引会出错的问题。 - -- https://github.com/apache/doris/pull/32669 - -8. 修复`<=> join` 操作会出现 Core 的问题。 - -- https://github.com/apache/doris/pull/32623 - -9. 修复部分列更新在有 Sequence 列结果准确性的问题。 - -- https://github.com/apache/doris/pull/32574 - -10. 修复 Select Outfile 导出到 Parquet 或者 ORC 格式的列类型映射问题。 - -- https://github.com/apache/doris/pull/32281 - -11. 修复在 Restore 过程中 BE 有时候会 Core 的问题。 - -- https://github.com/apache/doris/pull/32489 - -12. 修复 `array_agg `函数结果不对的问题。 - -- https://github.com/apache/doris/pull/32387 - -13. 使 Variant 类型应当一直是 nullable. - -- https://github.com/apache/doris/pull/32248 - -14. 修复 Schema Change 没有正确处理空 Block 的问题。 - -- https://github.com/apache/doris/pull/32396 - -15. 修复使用 `json_length()` 函数时部分场景会出错的问题。 - -- https://github.com/apache/doris/pull/32145 - -16. 修复 Iceberg 表没有正确处理 Date Cast 转换的问题。 - -- https://github.com/apache/doris/pull/32194 - -17. 修复 Variant 类型建立 Index 时出现的部分 Bug。 - -- https://github.com/apache/doris/pull/31992 - -18. 修复当多个 `map_agg` 函数同时使用时结果不正确的问题。 - -- https://github.com/apache/doris/pull/31928 - -19. 修复 `money_format` 函数的返回结果不正确的问题。 - -- https://github.com/apache/doris/pull/31883 - -20. 修复在高并发的建立链接时部分请求会卡住的问题。 - -- https://github.com/apache/doris/pull/31594 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.10.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.10.md deleted file mode 100644 index 9fc0b400cbd40..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.10.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -{ - "title": "Release 2.1.10", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.10 版本已于 2025 年 05 月 17 日正式发布。 该版本持续在查询执行引擎、湖仓一体等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.10 版本已于 2025 年 05 月 17 日正式发布。** 该版本持续在查询执行引擎、湖仓一体等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。 - -- [立即下载](https://doris.apache.org/download) - -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.10-rc01) - -## 行为变更 - -- DELETE 不再错误的需要目标表的 SELECT_PRIV 权限 [#49794](https://github.com/apache/doris/pull/49794) -- Insert Overwrite 不再限制对同一个表并发只能为 1 [#48673](https://github.com/apache/doris/pull/48673) -- Merge on write unique 表禁止使用时序 compaction [#49905](https://github.com/apache/doris/pull/49905) -- 禁止在 VARIANT 类型上 build index。[#49159](https://github.com/apache/doris/pull/49159) - -## 新功能 - -### 查询执行引擎 - -- 支持了更多的 GEO 类型的计算函数`ST_CONTAINS ` , `ST_INTERSECTS`, `ST_TOUCHES`,`GeometryFromText`,`ST_Intersects`, `ST_Disjoint`, `ST_Touches`。[#49665](https://github.com/apache/doris/pull/49665) [#48695](https://github.com/apache/doris/pull/48695) -- 支持 `years_of_week` 函数。[#48870](https://github.com/apache/doris/pull/48870) - -## 湖仓一体 - -- Hive Catalog 支持 Catalog 级别的分区缓存开关控制 [#50724](https://github.com/apache/doris/pull/50724) - - 更多详情,可参考[文档](https://doris.apache.org/zh-CN/docs/dev/lakehouse/meta-cache#关闭-hive-catalog-元数据缓存) - -## 改进提升 - -### 湖仓一体 - -- Paimon 依赖版本升级到 1.0.1 -- Iceberg 依赖版本升级到 1.6.1 -- 将 Parquet Footer 的内存开销纳入 Memory Tracker 管控,以避免可能的 OOM 问题。[#49037](https://github.com/apache/doris/pull/49037) -- 优化 JDBC Catalog 的谓词下推逻辑,支持 AND/OR 等连接谓词的下推[#50542](https://github.com/apache/doris/pull/50542) -- 预编译版本默认携带 Jindofs 扩展包以支持阿里云 OSS-HDFS 访问。 - -### 半结构化管理 - -- ANY 函数支持 JSON 类型 [#50311](https://github.com/apache/doris/pull/50311) -- JSON_REPLACE,JSON_INSERT,JSON_SET,JSON_ARRAY 函数支持 JSON 数据类型和复杂数据类型[#50308](https://github.com/apache/doris/pull/50308) - -### 查询优化器 - -- 当 in 表达式的 options 多于 `Config.max_distribution_pruner_recursion_depth` 时,不执行分桶裁剪,以提升规划速度 [#49387](https://github.com/apache/doris/pull/49387) - -### 存储管理 - -- 减少日志和改进部分日志。[#47647](https://github.com/apache/doris/pull/47647) [#48523](https://github.com/apache/doris/pull/48523) - -### 其他 - -- 避免 thrift rpc END_OF_FILE 异常 [#49649](https://github.com/apache/doris/pull/49649) - -## Bug 修复 - -### 湖仓一体 - -- 修复某些情况下,在 Hive 侧新建表,Doris 侧无法立即查看到的问题 [#50188](https://github.com/apache/doris/pull/50188) -- 修复某些 Text 格式 Hive 表访问报错 "Storage schema reading not supported" 的 问题 [#50038](https://github.com/apache/doris/pull/50038) - - 查看[文档 get_schema_from_table 详情](https://doris.apache.org/zh-CN/docs/dev/lakehouse/catalogs/hive-catalog?_highlight=get_schema_from_table#语法) -- 修复某些情况下,写入 Hive/Iceberg 表时,元数据提交并发问题 [#49842](https://github.com/apache/doris/pull/49842) -- 修复某些情况下,写入存储在 oss-hdfs 上的 Hive 表失败的问题 [#49754](https://github.com/apache/doris/pull/49754) -- 修复当 Hive 分区键值有逗号的情况下,访问失败的问题 [#49382](https://github.com/apache/doris/pull/49382) -- 修复某些情况下,Paimon 表 Split 分配不均匀的问题 [#50083](https://github.com/apache/doris/pull/50083) -- 修复读取存储在 OSS 上的 Paimon 表时,无法正确处理 Delete 文件的问题 [#49645](https://github.com/apache/doris/pull/49645) -- 修复 MaxCompute Catalog 中,读取高精度 Timestamp 列时无法访问的问题 [#49600](https://github.com/apache/doris/pull/49600) -- 修复某些情况下,删除 Catalog 可能导致部分资源泄露的问题 [#49621](https://github.com/apache/doris/pull/49621) -- 修复某些情况下,读取 LZO 压缩格式的数据失败的问题 [#49538](https://github.com/apache/doris/pull/49538) -- 修复某些情况下,ORC 延迟物化功能导致复杂类型读取错误的问题 [#50136](https://github.com/apache/doris/pull/50136) -- 修复某些情况下,读取 pyorc-0.3 版本产生的 ORC 文件报错的问题 [#50358](https://github.com/apache/doris/pull/50358) -- 修复某些情况下,EXPORT 操作导致元数据死锁的问题 [#50088](https://github.com/apache/doris/pull/50088) - -### 索引 - -- 修复多次添加、删除和重命名列操作后构建倒排索引的错误 [#50056](https://github.com/apache/doris/pull/50056) -- 在 index compaction 中索引对应的列唯一 ID 的校验,避免潜在的数据异常和系统错误 [#47562](https://github.com/apache/doris/pull/47562) - -### 半结构化数据类型 - -- 修复某些情况下,VARIANT 类型转 JSON 类型返回 NULL 错误的结果 [#50180](https://github.com/apache/doris/pull/50180) -- 修复某些情况下,JSONB CAST 导致 crash [#49810](https://github.com/apache/doris/pull/49810) -- 禁止在 VARIANT 类型上 build index [#49159](https://github.com/apache/doris/pull/49159) -- 修复 named_struct 函数 decimal 类型精度正确性 [#48964](https://github.com/apache/doris/pull/48964) - -### 查询优化器 - -- 修复常量折叠中的一些问题 [#49413](https://github.com/apache/doris/pull/49413) [#50425](https://github.com/apache/doris/pull/50425) [#49686](https://github.com/apache/doris/pull/49686) [#49575](https://github.com/apache/doris/pull/49575) [#50142](https://github.com/apache/doris/pull/50142) -- 公共表达式提取在 lambda 表达式上可能工作异常 [#49166](https://github.com/apache/doris/pull/49166) -- 修复消除 group by key 中的常量可能不能正常工作的问题 [#49589](https://github.com/apache/doris/pull/49589) -- 修复在极端场景下,由于统计信息的推导错误,规划无法正常执行的问题 [#49415](https://github.com/apache/doris/pull/49415) -- 修复部分依赖 BE 中元数据的 information_schema 表,不能获取完整数据的问题 [#50721](https://github.com/apache/doris/pull/50721) - -### 查询执行引擎 - -- 修复了找不到 explode_json_array_json_outer 函数的问题。[#50164](https://github.com/apache/doris/pull/50164) -- 修复了 substring_index 不支持动态参数的问题。[#50149](https://github.com/apache/doris/pull/50149) -- 修复了很多 st_contains 函数计算结果不对的问题。[#50115](https://github.com/apache/doris/pull/50115) -- 修复了 array_range 函数可能导致的 core 的问题。[#49993](https://github.com/apache/doris/pull/49993) -- 修复了 date_diff 函数计算结果错误的问题。[#49429](https://github.com/apache/doris/pull/49429) -- 修复了一系列字符串函数在非 ASCII 编码下的乱码或者结果错误的问题。[#49231](https://github.com/apache/doris/pull/49231) [#49846](https://github.com/apache/doris/pull/49846) [#49127](https://github.com/apache/doris/pull/49127) [#40710](https://github.com/apache/doris/pull/40710) - -### 存储管理 - -- 修复某些情况下,动态分区表(Dynamic Partition Table)回放元数据失败的问题[#49569](https://github.com/apache/doris/pull/49569) -- 修复 ARM 下 streamload 可能因为操作序列丢数据的问题 [#48948](https://github.com/apache/doris/pull/48948) -- 修复 full compaction 报错以及可能导致 mow 数据重复的问题 [#49825](https://github.com/apache/doris/pull/49825) [#48958](https://github.com/apache/doris/pull/48958) -- 修复没有持久化分区 Storage Policy 的问题。 [#49721](https://github.com/apache/doris/pull/49721) -- 修复导入之后文件极小概率不存在的问题。[ #50343](https://github.com/apache/doris/pull/50343) -- 修复 CCR 和磁盘均衡并发可能导致的文件找不见问题。[#50663 ](https://github.com/apache/doris/pull/50663) -- 修复备份恢复大快照时可能出现的 connection reset 问题。[#49649](https://github.com/apache/doris/pull/49649) -- 修复 FE Follower 丢失本地备份快照的问题。[#49550](https://github.com/apache/doris/pull/49550) - -### Others - -- 修复某些场景下,审计日志可能丢失的问题 [#50357](https://github.com/apache/doris/pull/50357) -- 修复审计日志中 isQuery 标记可能不正确的问题 [#49959](https://github.com/apache/doris/pull/49959) -- 修复审计日志中部分查询 sqlHash 不正确的问题 [#49984](https://github.com/apache/doris/pull/49984) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.11.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.11.md deleted file mode 100644 index cef144fb064cd..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.11.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -{ - "title": "Release 2.1.11", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 8 月 15 日我们引来了 Apache Doris 2.1.11 版本的正式发布,欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 8 月 15 日我们引来了 Apache Doris 2.1.11 版本的正式发布,欢迎大家下载使用。 - - -## 行为变更 - -- time_series_max_tablet_version_num 控制时序 compaction 策略表的最大版本数目。[#51371](https://github.com/apache/doris/pull/51371) -- 修复冷热分层时 hdfs root_path 没有生效的问题。[#48441](https://github.com/apache/doris/pull/48441) -- 在 新优化器(Nereids)中,当查询时的表达式的深度或宽度超过阈值限制时,无论是否开始查询回退到老优化器,都不会回退。[#52431](https://github.com/apache/doris/pull/52431) -- 统一了开始 unicode 名字与否的名字检查规则,现在非 unicode 名字规则是 unicode 名字规则的严格子集。[#53264](https://github.com/apache/doris/pull/53264) - -## 新功能 - -### 查询执行引擎 - -- 引入系统表 routine_load_job 查看routine load job 信息。[#48963](https://github.com/apache/doris/pull/48963) - -### 查询优化器 - -- 支持了 MySQL 的 GROUP BY 上卷语法 GROUP BY ... WITH ROLLUP。[#51978](https://github.com/apache/doris/pull/51978) - -## 改进提升 - -### 查询优化器 - -- 优化了在聚合模型表和主键模型 mor 表上收集统计信息的性能。[#51675](https://github.com/apache/doris/pull/51675) - -### 异步物化视图 - -- 优化了透明改写的规划性能 [#51309](https://github.com/apache/doris/pull/51309) -- 优化了刷新的性能 [#51493](https://github.com/apache/doris/pull/51493) - -## Bug 修复 - -### 导入 - -- 修复 routineload alter 属性之后 show 展示结果不符合预期的问题 [#53038](https://github.com/apache/doris/pull/53038) - -### 湖仓一体 - -- 修复某些情况读取 iceberg equality delete 数据错误的问题 [#51253](https://github.com/apache/doris/pull/51253) -- 修复iceberg hadoop catalog 在 kerberos 环境下报错的问题 [#50623](https://github.com/apache/doris/pull/50623) [#52149](https://github.com/apache/doris/pull/52149) -- 修复 Kerberos 环境下 Iceberg 表写入事务提交失败的问题 [#51508](https://github.com/apache/doris/pull/51508) -- 修复 Iceberg 表写入事务提交错误的问题 [#52716](https://github.com/apache/doris/pull/52716) -- 修复某些情况下访问 kerberos 环境的 Hudi 表数据报错的问题 [#51713 ](https://github.com/apache/doris/pull/51713) -- SQL Server Catalog 支持识别 IDENTITY 列信息 [#51285](https://github.com/apache/doris/pull/51285) -- 修复某些情况下 Jdbc Catalog 表无法获取行数信息的问题 [#50901](https://github.com/apache/doris/pull/50901) -- 优化 orc zlib 在 x86 环境下的解压性能并修复潜在问题 [#51775](https://github.com/apache/doris/pull/51775) -- 在 Profile 中增加 Parquet/ORC 条件过滤和延迟物化相关的指标 [#51248](https://github.com/apache/doris/pull/51248) -- 优化 ORC Footer 的读取性能 [#51117](https://github.com/apache/doris/pull/51117) -- 修复 Table Valued Function 无法读压缩格式的 json 文件的问题 [#51983](https://github.com/apache/doris/pull/51983) -- 修复某些情况下并发刷新 Catalog 导致元数据不一致的问题 [#51787](https://github.com/apache/doris/pull/51787) - -### 索引 - -- 修复了倒排索引在处理包含 CAST 操作的 IN 谓词时出现的查询错误,避免返回错误的查询结果。[#50860](https://github.com/apache/doris/pull/50860) -- 修复了倒排索引在执行异常情况下的内存泄漏问题。[#52747](https://github.com/apache/doris/pull/52747) - -### 半结构化数据类型 - -- 修复了一些json 函数在null 值情况下结果错误的问题。 -- 修复了一些json 函数相关的bug。[#52543](https://github.com/apache/doris/pull/52543) [#51516](https://github.com/apache/doris/pull/51516) - -### 查询优化器 - -- 修复解析字符串为日期失败时,查询无法继续执行的问题 [#50900](https://github.com/apache/doris/pull/50900) -- 修复了个别场景下常量折叠结果错误的问题 [#51738](https://github.com/apache/doris/pull/51738) -- 修复个别数组函数在遇到 null literal 作为输入时,无法正常规划的问题 [#50899](https://github.com/apache/doris/pull/50899) -- 修复在极端场景下,开启 local shuffle 可能导致结果错误的问题 [#51313](https://github.com/apache/doris/pull/51313) [#52871 ](https://github.com/apache/doris/pull/52871) -- 修复了 replace view 可能导致 desc view 时看不到列信息的问题 [#52043](https://github.com/apache/doris/pull/52043) -- 修复了 prepare command 在非 master FE 节点上有可能无法正确执行的问题 [#52265](https://github.com/apache/doris/pull/52265) - -### 异步物化视图 - -- 修复当基表列的类型变更,可能导致透明改写后查询失败的问题 [#50730](https://github.com/apache/doris/pull/50730) -- 修复了个别场景下,透明改写分区补偿错误的问题 [#51899](https://github.com/apache/doris/pull/51899) [#52218](https://github.com/apache/doris/pull/52218) - -### 查询执行引擎 - -- 修复TopN计算时如果遇到variant 列类型,可能会core的问题。[#52573](https://github.com/apache/doris/pull/52573) -- 修复函数bitmap_from_base64在输入错误数据时会Core的问题。[#53018](https://github.com/apache/doris/pull/53018) -- 修复了bitmap_union 函数在超大数据量时,一些结果错误的问题。[#52033](https://github.com/apache/doris/pull/52033) -- 修复了multi_distinct_group_concat在窗口函数中使用时计算错误的问题。[#51875](https://github.com/apache/doris/pull/51875) -- 修复了array_map 函数,在极端值时可能core的问题。[#51618](https://github.com/apache/doris/pull/51618) [#50913](https://github.com/apache/doris/pull/50913) -- 修复了错误的时区处理的问题。[#51454](https://github.com/apache/doris/pull/51454) - -### Others - -- 修复多语句在主 FE 和非主 FE 行为不一致的问题。[#52632](https://github.com/apache/doris/pull/52632) -- 修复 prepared statment 在非主 FE 报错的问题。[#48689](https://github.com/apache/doris/pull/48689) -- 修复 roolup 操作时可能导致 CCR 中断的问题。[#50830](https://github.com/apache/doris/pull/50830) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.2.md deleted file mode 100644 index cea7345943545..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.2.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -{ - "title": "Release 2.1.2", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.2 版本已于 2024 年 4 月 12 日正式发布。该版本提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.2 版本已于 2024 年 4 月 12 日正式发布**。该版本提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 1 行为变更 - -1. 将 EXPORT 命令中 `data_consistence` 属性的默认值调整为 Partition,这可以使得并发导入的同时做 EXPORT 操作更容易成功。 - -- https://github.com/apache/doris/pull/32830 - -2. 兼容部分 MySQL Connector(如 MySQL.Data for .NET)将 SELECT `@``@autocommit` 的返回值类型变更为 BIGINT。 - -- https://github.com/apache/doris/pull/33282 - -3. Auto Partition 语法变化,详见[文档](../../table-design/data-partitioning/auto-partitioning.md) - -- https://github.com/apache/doris/pull/32737 - -4. Auto Partition 禁止和 Dynamic Partition 同时作用在一张表上 - -- https://github.com/apache/doris/pull/33736 - -## 2 升级问题 - -1. 修复正常 Workload Group 从 2.0 或者更早版本升级到 2.1 时没有默认创建的问题。 - -- https://github.com/apache/doris/pull/33197 - -## 3 新功能 - -1. 增加 processlist 系统表功能,用户可以通过查询系统表获得活跃的链接信息。 - -- https://github.com/apache/doris/pull/32511 - -2. 增加新的表函数 `LOCAL` 以访问部分共享存储上的文件。 - -- https://github.com/apache/doris-website/pull/494 - -## 4 改进与优化 - -1. 跳过部分不必要检查,加速在 K8s 环境下优雅退出的速度。 - -- https://github.com/apache/doris/pull/33212 - -2. 在 Profile 中增加已命中的物化视图信息,能够方便地定位物化视图是否命中。 - -- https://github.com/apache/doris/pull/33137 - -3. 针对 DB2 Catalog,增加测试链接是否通畅的功能,能够在建立 Catalog 时做部分链接检查。 - -- https://github.com/apache/doris/pull/33335 - -4. 增加 DNS Cache,解决 K8s 环境下域名解析较慢,从而影响查询的问题。 - -- https://github.com/apache/doris/pull/32869 - -5. 增加异步刷新 Catalog 中表的行数信息,避免查询抖动。 - -- https://github.com/apache/doris/pull/32997 - -## 5 Bug 修复 - -1. 修复 Iceberg Catalog 中,不支持 Iceberg 自定义属性的问题,例如 "io.manifest.cache-enabled"。 - -- https://github.com/apache/doris/pull/33113 - -2. `LEAD`/`LAG` 函数的 Offset 起始位置可以设置为 0。 - -- https://github.com/apache/doris/pull/33174 - -3. 修复部分导入过程中可能出现的 Timeout 的问题。 - -- https://github.com/apache/doris/pull/33077 - -- https://github.com/apache/doris/pull/33260 - -4. 修复部分 `ARRAY` / `MAP` / `STRUCT` 类型在 Compaction 中引起 Core 的问题。 - -- https://github.com/apache/doris/pull/33130 https://github.com/apache/doris/pull/33295 - -5. 修复查询过程中 Runtime Filter 部分等待超时的问题。 - -- https://github.com/apache/doris/pull/33369 - -6. 修复 `unix_timestamp` 函数在 Auto Partition 中可能导致 Core 的问题。 - -- https://github.com/apache/doris/pull/32871 - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.3.md deleted file mode 100644 index 6af9601c65f5b..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.3.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -{ - "title": "Release 2.1.3", - "language": "zh-CN", - "description": "Apache Doris 2.1.3 版本已于 2024 年 5 月 21 日正式发布。该版本更新带来了若干改进项,包括支持向 Hive 回写数据、物化视图、新函数等功能,同时改善权限管理并修复若干问题,进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -**Apache Doris 2.1.3 版本已于 2024 年 5 月 21 日正式发布**。该版本更新带来了若干改进项,包括支持向 Hive 回写数据、物化视图、新函数等功能,同时改善权限管理并修复若干问题,进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - - -## 功能特性 - -**1. 支持通过 Hive Catalog 向 Hive 表中回写数据** - -从 2.1.3 版本开始,Apache Doris 支持对 Hive 的 DDL 和 DML 操作。用户可以直接通过 Apache Doris 在 Hive 中创建库表,通过执行`INSERT INTO`语句来向 Hive 表中写入数据。通过该功能,用户可以通过 Apache Doris 对 Hive 进行完整的数据查询和写入操作,进一步帮助用户简化湖仓一体架构。 - -参考[文档](../../lakehouse/catalogs/hive-catalog) - - -**2. 支持在异步物化视图之上构建新的异步物化视图** - - -用户可以在异步物化视图之上来创建新的异步物化视图,直接复用计算好的中间结果进行数据加工处理,简化复杂的聚合和计算操作带来的资源消耗和维护成本,进一步加速查询性能、提升数据可用性。 - -**3. 支持通过物化视图嵌套物化视图进行重写** - -物化视图(Materialized View,MV)是用于存储查询结果的数据库对象。现在,Apache Doris 支持通过 MV 嵌套物化视图进行重写,这有助于优化查询性能。 - - -**4. 新增 SHOW VIEWS 语句** - -可以使用`SHOW VIEWS`语句来查询数据库中的视图,有助于更好地管理和理解数据库中的视图对象。 - -**5. Workload Group 支持绑定到特定的 BE 节点** - -Workload Group 可以绑定到特定的 BE 节点,实现查询执行的更精细化控制,以优化资源使用和提高性能。 - -**6. Broker Load 支持压缩的 JSON 格式** - -Broker Load 支持导入压缩的 JSON 格式数据,可以显著减少数据传输的带宽需求、加速数据导入性能。 - -**7. TRUNCATE 函数可以使用列作为 scale 参数** - -TRUNCATE 函数现在可以接受列作为 scale 参数,这使得在处理数值数据时可以更加灵活。 - -**8. 添加新的函数 `uuid_to_int` 和 `int_to_uuid`** - -这两个函数允许用户在 UUID 和整数之间进行转换,对于需要处理 UUID 数据的场景有明显帮助。 - -**9. 添加 `bypass_workload_group` Session Variable 以绕过查询队列** - -会话变量 `bypass_workload_group` 允许某些查询绕过 Workload Group 队列直接执行,这可以用于处理需要快速响应的关键查询。 - -**10. 添加 strcmp 函数** - -strcmp 函数用于比较两个字符串并返回它们的比较结果,帮助文本数据的处理更加简易。 - -**11. 支持 HLL 函数 `hll_from_base64` 和 `hll_to_base64`** - -HLL(HyperLogLog)是一种用于基数估计的算法,以上两个函数允许用户将 HLL 数据从 Base64 编码的字符串中解码,或将 HLL 数据编码为 Base64 字符串,这对于存储和传输 HLL 数据非常有用。 - -## 优化改进 - -**1. 替换 SipHash 为 XXHash 以改善 Shuffle 性能** - -SipHash 和 XXHash 都是哈希函数,但 XXHash 在某些场景下可能提供更快的哈希速度和更好的性能,此优化旨在通过采用 XXHash 来提高数据 Shuffle 过程中的性能。 - -**2. 异步物化视图支持 OLAP 表分区列为可以为 NULL:** - -允许异步物化视图支持 OLAP 表的分区列可以为 NULL,从而增强了数据处理的灵活性。 - -**3. 收集列统计信息时限制最大字符串长度为 1024 以控制 BE 内存使用** - -在收集列统计信息时,限制字符串的长度可以防止过大的数据消耗过多的 BE 内存,有助于保持系统的稳定性和性能。 - -**4. 支持动态删除 Bitmap Cache 以提高性能** - -通过支持动态删除不再需要的 Bitmap Cache,可以释放内存并改善系统性能。 - -**5. 在 ALTER 操作中减少内存使用** - -减少 ALTER 操作中的内存使用,以提高系统资源的利用效率。 - -**6. 支持复杂类型的常量折叠** - -支持 Array/Map/Struct 复杂类型的常量折叠; - -**7. 在 Aggregate Key 聚合模型中增加对 Variant 类型的支持** - -Variant 数据类型能够存储多种数据类型,在此优化中允许对 Variant 类型的数据进行聚合操作,从而增强了半结构化数据分析的灵活性。 - -**8. 在 CCR 中支持新的倒排索引格式** - -**9. 优化嵌套物化视图的重写性能** - -**10. 支持 decimal256 类型的行存格式** - -在行存格式中支持 decimal 256 类型,以以扩展系统对高精度数值数据的处理能力。 - -## 行为变更 - -**1. 授权(Authorization)** - -- **Grant_priv 权限更改**:`Grant_priv`不能再被任意授予。执行 `GRANT` 操作时,用户不仅需要具有`Grant_priv`,还需要具有要授予的权限。例如,如果想要授予对`table1`的 `SELECT` 权限,那么该用户不仅需要具有 `GRANT` 权限,还需要具有对`table1`的 `SELECT` 权限,这增加了权限管理的安全性和一致性。 - -- **Workload Group 和 Resource 的 Usage_priv**:`Usage_priv` 对 Workload Group 和 Resource 的权限不再是全局级别的,而是仅限于 Resource 和 Workload Group 内,权限的授予和使用将更加具体。 - -- **操作的授权**:之前未被授权的操作现在都有了相应的授权,以实现更加细致和全面地操作权限控制。 - -**2. LOG 目录配置** - -FE 和 BE 的日志目录配置现在统一使用`LOG_DIR`环境变量,所有其他不同类型的日志都将以`LOG_DIR`作为根目录进行存储。同时为了保持版本间的兼容性,以前的配置项`sys_log_dir`仍然可以使用。 - -**3. S3 表函数(TVF)** - -由于之前的解析方式在某些情况下可能无法正确识别或处理 S3 的 URL,因此将对象存储路径的解析逻辑进行重构。对于 S3 表函数中的文件路径,需要传递`force_parsing_by_standard_uri`参数来确保被正确解析。 - -## 升级问题 - -由于许多用户将某些关键字用作列名或属性值,因此将如下关键字设置为非保留关键字,允许用户将其用作标识符使用。 - -## 问题修复 - -**1. 修复在腾讯云 COSN 上读取 Hive 表时的无数据错误** - -解决了在腾讯云 COSN 存储上读取 Hive 表时可能遇到的无数据错误,增强了与腾讯云存储服务的兼容性。 - -**2. 修复 milliseconds_diff 函数返回错误结果** - -修复`milliseconds_diff`函数在某些情况下返回错误结果的问题,确保了时间差计算的准确性。 - -**3. 用户定义变量应转发到 Master 节点** - -确保用户定义的变量能够正确地传递到 Master 节点,以便在整个系统中保持一致性和正确的执行逻辑。 - -**4. 修复添加复杂类型列时遇到的 Schema Change 问题** - -在添加复杂类型列时,可能会遇到 Schema Change 问题,此修复确保了 Schema Change 的正确性。 - -5. **修复 FE master 节点更改时 Routine Load 的数据丢失问题** - -`Routine Load`常用于订阅 Kafka 消息队列中的数据,此修复解决了在 FE Master 节点更改时可能导致的数据丢失问题。 - -**6. 修复当找不到 Workload Group 时 Routine Load 失败的问题** - -修复了当`Routine Load`找不到指定 Workload Group 时导致的失败问题。 - -**7. 支持 column string64,以避免在 string size 溢出 unit32 时 Join 失败的问题** - -在某些情况下,字符串的大小可能会超过 unit32 的限制,支持`string64`类型可以确保字符串 JOIN 操作的正确执行。 - -**8. 允许 Hadoop 用户创建 Paimon Catalog** - -允许具有权限的对应 Hadoop 用户来创建 Paimon Catalog。 - -**9. 修复 function_ipxx_cidr 函数与常量参数的问题** - -修复了`function_ipxx_cidr`函数在处理常量参数时可能出现的问题,保证函数执行的正确性。 - -**10. 修复使用 HDFS 进行还原时的文件下载错误** - -解决了在使用 HDFS 进行数据还原时遇到的“failed to download”错误,确保了数据恢复的正确性和可靠性。 - -**11. 修复隐藏列相关的列权限问题** - -在某些情况下,隐藏列的权限设置可能不正确,此修复确保了列权限设置的正确性和安全性。 - -**12. 修复在 K8s 部署中 Arrow Flight 无法获取正确 IP 的问题** - -此修复解决了在 Kubernetes 部署环境中 Arrow Flight 无法正确获取 IP 地址的问题。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.4.md deleted file mode 100644 index 2c7c1290ab5b9..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.4.md +++ /dev/null @@ -1,272 +0,0 @@ ---- -{ - "title": "Release 2.1.4", - "language": "zh-CN", - "description": "Apache Doris 2.1.4 版本已于 2024 年 6 月 26 日正式发布。 在 2.1.4 版本中,我们对数据湖分析场景进行了多项功能体验优化,重点修复了旧版本中异常内存占用的问题,同时提交了若干改进项以及问题修复,进一步提升了系统的性能、稳定性及易用性,欢迎大家下载使用。" -} ---- - -**Apache Doris 2.1.4 版本已于 2024 年 6 月 26 日正式发布。** 在 2.1.4 版本中,我们对数据湖分析场景进行了多项功能体验优化,重点修复了旧版本中异常内存占用的问题,同时提交了若干改进项以及问题修复,进一步提升了系统的性能、稳定性及易用性,欢迎大家下载使用。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 行为变更 - -- **通过 Catalog 查询外部表(如 Hive 数据表)时,系统将忽略不存在的文件:** 当从元数据缓存中获取文件列表时,由于缓存更新并非实时,因此可能存在实际的文件列表已删除、而元数据缓存中仍存在该文件的情况。为了避免由于尝试访问不存在的文件而导致的查询错误,系统会忽略这些不存在的文件。 [#35319](https://github.com/apache/doris/pull/35319) - -- 默认情况下,创建 Bitmap Index 不再默认变更为 Inverted Index。该行为由 FE 配置项 `enable_create_bitmap_index_as_inverted_index` 控制,默认为 FALSE。[#35521](https://github.com/apache/doris/pull/35521) - -- 当使用 `--console` 启动 FE、BE 进程时,所有日志将输出到标准输出,并通过前缀区分不同类型的日志。[#35679](https://github.com/apache/doris/pull/35679) - - 关于更多信息,请参考文档: - - - [BE 日志管理](../../admin-manual/log-management/be-log.md) - - - [FE 日志管理](../../admin-manual/log-management/fe-log.md) - -- 如果建表时没有填写表注释,默认注释为空,不再使用表类型作为默认表注释。 [#36025](https://github.com/apache/doris/pull/36025) - -- DECIMALV3 的默认精度从 (9, 0) 调整为 (38,9) ,以和最初发布此功能的版本保持兼容。 [#36316](https://github.com/apache/doris/pull/36316) - -## 新增功能 - -### 查询优化器 - -- **支持 FE 火焰图工具**:在 FE 部署目录 `${DORIS_FE_HOME}/bin` 中会增加`profile_fe.sh` 脚本,可以利用 async-profiler 工具生成 FE 的火焰图,用以发现性能瓶颈点。 - - 关于更多信息,请参考文档:[使用 FE Profiler 生成火焰图](https://doris.apache.org/zh-CN/community/developer-guide/fe-profiler) - -- **支持 SELECT DISTINCT 与聚合函数同时使用**:支持 `SELECT DISTINCT` 与聚合函数同时使用,在一个查询中同时去重和进行聚合操作,如 SUM、MIN/MAX 等。 - -- **支持无 GROUP BY 的单表查询重写**:无 `GROUP BY` 的单表查询重写功能允许数据库优化器在不需要分组的情况下,根据查询的复杂性和数据表的结构,自动选择最佳的执行计划来执行查询,这可以提高查询的性能,减少不必要的资源消耗,并简化查询逻辑。 [#35242](https://github.com/apache/doris/pull/35242). - -- **查询优化器全面支持高并发点查询功能**:在 2.1.4 版本之后,查询优化器全面支持高并发点查询功能,所有符合点查询条件的 SQL 语句会自动走短路径查询,无需用户在客户端额外设置 `set experimental_enable_nereids_planner = false`。 [#36205](https://github.com/apache/doris/pull/36205). - -### 湖仓一体 - -- **支持 Paimon 的原生读取器来处理 Deletion Vector:** Deletion Vector 主要用于标记或追踪哪些数据已被删除或标记为删除,通常应用在需要保留历史数据的场景,基于本优化可以提升大量数据更新或删除时的处理效率。 [#35241](https://github.com/apache/doris/pull/35241) - - 关于更多信息,请参考文档:[数据湖分析 - Paimon](../../lakehouse/catalogs/paimon-catalog) - -- **支持在表值函数(TVF)中使用 Resource**:TVF 功能为 Apache Doris 提供了直接将对象存储或 HDFS 上的文件作为 Table 进行查询分析的能力。通过在 TVF 中引用 Resource,可以避免重复填写连接信息,提升使用体验。 [#35139](https://github.com/apache/doris/pull/35139) - - 关于更多信息,请参考文档:[表函数 - HDFS](../../lakehouse/storages/hdfs.md) - -- **支持通过 Ranger 插件实现数据脱敏**:开启 Ranger 鉴权功能后,支持使用 Ranger 中的 Data Mask 功能进行数据脱敏。 - - 关于更多信息,请参考文档:[基于 Apache Ranger 的鉴权管理](../../admin-manual/auth/ranger#资源和权限) - -### 异步物化视图 - -- 构建支持内表触发式更新,如果物化视图使用的是内表,如果内表数据发生变化,可以触发物化视图刷新,需要在创建物化视图时指定 REFRESH ON COMMIT。 - -- 支持单表透明改写。 - - 关于更多信息,请参考文档:[查询异步物化视图](../../query-acceleration/materialized-view/async-materialized-view/functions-and-demands.md) - -- 透明改写支持 agg_state, agg_union 类型的聚合上卷,物化视图可以定义为 agg_state 或者 agg_union,查询使用具体的聚合函数,或者使用 agg_merge - - 关于更多信息,请参考文档:[AGG_STATE](../../sql-manual/basic-element/sql-data-types/aggregate/AGG-STATE) - -### 其他 - -- **新增 `replace_empty` 函数**:将字符串中的子字符串进行替换,当旧字符串为空时,会将新字符串插入到原有字符串的每个字符前以及最后。 - - 关于更多信息,请参考文档:[字符串函数 - REPLACE_EMPTY](../../sql-manual/sql-functions/scalar-functions/string-functions/replace-empty) - -- 支持 `show storage policy using` 语句:支持查看所有或指定存储策略关联的表和分区。 - - 关于更多信息,请参考文档:[SQL 语句 - SHOW](../../sql-manual/sql-statements/cluster-management/storage-management/SHOW-STORAGE-POLICY-USING) - -- **支持 BE 侧的 JVM 指标:** 通过在 `be.conf` 配置文件中设置`enable_jvm_monitor=true`,可以启用对 BE 节点 JVM 的监控和指标收集,有助于了解 BE JVM 的资源使用情况,以便进行故障排除和性能优化。 - -## 改进优化 - -- 支持为中文列名创建倒排索引。[#36321](https://github.com/apache/doris/pull/36321) - -- 优化 Segment Cache 所消耗内存的估算准确度,以便能够更快地释放未使用的内存。[#35751](https://github.com/apache/doris/pull/35751) - -- 在使用 Export 功能导出数据时,提前过滤空分区以提升导出效率。[#35542](https://github.com/apache/doris/pull/35542) - -- 优化 Routine Load 任务分配算法以平衡 BE 节点之间的负载压力。[#34778](https://github.com/apache/doris/pull/34778) - -- 在设置错误的会话变量名时,自动识别近似变量值并给出更详细的错误提示。[#35775](https://github.com/apache/doris/pull/35775) - -- 支持将 Java UDF Jar 文件放到 FE 的 `custom_lib` 目录中并默认加载。[#35984](https://github.com/apache/doris/pull/35984) - -- 为审计日志导入作业添加超时的全局变量`audit_plugin_load_timeout` ,以控制在加载审计插件或处理审计日志时允许的最大执行时间。 - -- 优化了异步物化视图透明改写规划的性能。 - -- 当 `INSERT` 源数据为空时,BE 将不会执行任何操作。[#34418](https://github.com/apache/doris/pull/34418) - -- 支持分批获取 Hudi 和 Hive 文件列表,当存在大量数据文件时可以提升数据扫描性能。 [#35107](https://github.com/apache/doris/pull/35107) - - - 120 万文件场景中,获取文件列表的时间由 390 秒缩减到 46 秒。 - -- 创建异步物化视图时,禁止使用动态分区。 - -- 支持检测 Hive 外表分区数据是否和异步物化视图同步。 - -- 允许异步物化视图创建索引。 - -## 缺陷修复 - -### 查询优化器 - -- 修复 SQL Cache 在 `truncate paritition` 后依然返回旧结果的问题。[#34698](https://github.com/apache/doris/pull/34698) - -- 修复从 JSON Cast 到其他类型 Nullable 属性不对的问题。[#34707](https://github.com/apache/doris/pull/34707) - -- 修复偶现的 DATETIMEV2 Literal 化简错误。 [#35153](https://github.com/apache/doris/pull/35153) - -- 修复窗口函数中不能使用 `COUNT(*)` 的问题。[#35220](https://github.com/apache/doris/pull/35220) - -- 修复 `UNION ALL` 下全部是无 `FROM 的 `SELECT` 时,Nullable 属性可能错误的问题。 -[#35074](https://github.com/apache/doris/pull/35074) - -- 修复 `bitmap in join` 和子查询解嵌套无法同时使用的问题。[#35435](https://github.com/apache/doris/pull/35435) - -- 修复在特定情况下过滤条件不能下推到 CTE Producer 导致的性能问题。[#35463](https://github.com/apache/doris/pull/35463) - -- 修复聚合 Combinator 为大写时,无法找到函数的问题。[#35540](https://github.com/apache/doris/pull/35540) - -- 修复窗口函数没有被列裁剪正确裁剪导致的性能问题。[#35504](https://github.com/apache/doris/pull/35504) - -- 修复多个同名不同库的表同时出现在查询中时,可能解析错误导致结果错误的问题。[#35571](https://github.com/apache/doris/pull/35571) - -- 修复对于 Schema 表扫描时,由于生成了 Runtime Filter 导致查询报错的问题。[#35655](https://github.com/apache/doris/pull/35655) - -- 修复关联子查询解嵌套,关联条件被折叠为 Null Literal 导致无法执行的问题。[#35811](https://github.com/apache/doris/pull/35811) - -- 修复规划时,偶现的 Decimal Literal 被错误设置精度的问题。 [#36055](https://github.com/apache/doris/pull/36055) - - -- 修复偶现的多层聚合被合并后规划错误的问题。[#36145](https://github.com/apache/doris/pull/36145) - -- 修复偶现的聚合扩展规划报错输入输出不匹配的问题。[#36207](https://github.com/apache/doris/pull/36207) - -- 修复偶现的 `<=>` 被错误转换为 `=` 的问题。[#36521](https://github.com/apache/doris/pull/36521) - -### 查询执行 - -- 修复 Pipeline 引擎上达到限定的行数且内存没有释放时查询被挂起的问题。 [#35746](https://github.com/apache/doris/pull/35746) - -- 修复当设置 `enable_decimal256 =true` 且查询优化器回退到旧版本时 BE 发生 Core 的问题。[#35731](https://github.com/apache/doris/pull/35731) - -### 物化视图 - -- 修复构建异步物化视图指定 store_row_column 属性,be core 的问题。 - -- 修复构建异步物化视图指定 storage_medium 不生效的问题。 - -- 修复基表删除后,异步物化视图 show partitions 报错的问题。 - -- 修复异步物化视图引起备份恢复异常的问题。 - -- 修复分区改写可能导致错误结果的问题。 - -### 半结构化数据分析 - -- 修复带有空 Key 的 VARIANT 类型发生 Core 的问题。[#35671](https://github.com/apache/doris/pull/35671) - -- Bitmap 索引和 BloomFilter 索引不应支持轻量级索引变更。[#35225](https://github.com/apache/doris/pull/35225) - -### 主键模型 - -- 修复在有部分列更新导入的情况下发生异常重启,可能会产生重复 Key 的问题。[#35678](https://github.com/apache/doris/pull/35678) - -- 修复在内存紧张时发生 Clone 时 BE 可能会发生 Core 的问题。[#34702](https://github.com/apache/doris/pull/34702) - -### 湖仓一体 - -- 修复创建 Hive 表时无法使用完全限定名(如 `ctl.db.tbl`)的问题。 [#34984](https://github.com/apache/doris/pull/34984) - -- 修复 Refresh 操作时 Hive Metastore 连接未关闭的问题。[#35426](https://github.com/apache/doris/pull/35426) - -- 修复从 2.0.x 升级到 2.1.x 时可能的元数据回放问题。 [#35532](https://github.com/apache/doris/pull/35532) - -- 修复 TVF 表函数无法读取空 Snappy 压缩文件的问题。[#34926](https://github.com/apache/doris/pull/34926) - -- 修复无法读取具有无效最小/最大列统计信息的 Parquet 文件的问题。[#35041](https://github.com/apache/doris/pull/35041) - -- 修复 Parquet/ORC Reader 中无法处理带有 null-aware 函数下推谓词的问题。[#35335](https://github.com/apache/doris/pull/35335) - -- 修复创建 Hive 表时分区列顺序的问题。 [#35347](https://github.com/apache/doris/pull/35347) - -- 修复当分区值包含空格时无法将 Hive 表写入 S3 的问题。 [#35645](https://github.com/apache/doris/pull/35645) - -- 修复 Doris 写入 Parquet 格式 Hive 表无法被 Hive 读取的问题。 [#34981](https://github.com/apache/doris/pull/34981) - -- 修复 Hive 表 Schema 变更后无法读取 ORC 文件的问题。[#35583](https://github.com/apache/doris/pull/35583) - -- 修复了部分情况下,启用 Hive Metastore Listener 后 FE 无法启动的问题。[#36533](https://github.com/apache/doris/pull/36533) - -- 修复由 Hadoop FS 缓存引起的 FE OOM 问题。[#36403](https://github.com/apache/doris/pull/36403) - -- 修复写出 Parquet 格式文件写出 Row Group 过小的问题。[#36042](https://github.com/apache/doris/pull/36042) [#36143](https://github.com/apache/doris/pull/36143) - -- 修复 Paimon 表 Schema 变更后无法通过 JNI 读取 Paimon 表的问题。[#35309](https://github.com/apache/doris/pull/35309) - -- 修复 Paimon 表 Schema 变更后由于表字段长度判断错误导致无法读取的问题。 [#36049](https://github.com/apache/doris/pull/36049) - -- 修复了读取 Iceberg 中的时间戳列类型时的时区问题。 [#36435](https://github.com/apache/doris/pull/36435) - -- 修复了 Iceberg 表上的日期时间转换错误和数据路径错误的问题。[#35708](https://github.com/apache/doris/pull/35708) - -- 修复阿里云 OSS Endpoint 不正确的问题。[#34907](https://github.com/apache/doris/pull/34907) - -- 修复了大量文件导致的查询性能下降问题。[#36431](https://github.com/apache/doris/pull/36431) - -- 允许用户定义的属性通过表函数传递给 S3 SDK。[#35515](https://github.com/apache/doris/pull/35515) - -### 数据导入 - -- 修复 `CANCEL LOAD` 命令不生效的问题。[#35352](https://github.com/apache/doris/pull/35352) - -- 修复导入事务 Publish 阶段空指针错误导致导入事务无法完成的问题。[#35977](https://github.com/apache/doris/pull/35977) - -- 修复 bRPC 通过 HTTP 发送大数据文件序列化的问题。 [#36169](https://github.com/apache/doris/pull/36169) - -### 数据管控 - -- 修复了在将 DDL 或 DML 转发到主 FE 后,ConnectionContext 中的资源标签未设置的问题。 [#35618](https://github.com/apache/doris/pull/35618) - -- 修复了在启用 `lower_case_table_names` 时,Restore 表名不正确的问题。 [#35508](https://github.com/apache/doris/pull/35508) - -- 修复了清理无用数据或文件的管理命令不生效的问题。 [#35271](https://github.com/apache/doris/pull/35271) - -- 修复了无法从分区中删除存储策略的问题。[#35874](https://github.com/apache/doris/pull/35874) - -- 修复了向多副本自动分区表导入数据时的数据丢失问题。[#36586](https://github.com/apache/doris/pull/36586) - -- 修复了使用旧优化器查询或插入自动分区表时,表的分区列发生变化的问题。 [#36514](https://github.com/apache/doris/pull/36514) - -### 内存管理 - -- 修复日志中频繁报错 Cgroup meminfo 获取失败的问题。 [#35425](https://github.com/apache/doris/pull/35425) - -- 修复使用 BloomFilter 时 Segment 缓存大小不受控制导致进程内存异常增长的问题。[#34871](https://github.com/apache/doris/pull/34871) - -### 权限 - -- 修复开启表名大小写不敏感后,权限设置无效的问题。[#36557](https://github.com/apache/doris/pull/36557) - -- 修复通过非 Master FE 节点设置 LDAP 密码不生效的问题。[#36598](https://github.com/apache/doris/pull/36598) - -- 修复了无法检查 `SELECT COUNT(*)` 语句授权的问题。[#35465](https://github.com/apache/doris/pull/35465) - -### 其他 - -- 修复 MySQL 连接损坏情况下,客户端 JDBC 程序无法关闭连接的问题。 [#36616](https://github.com/apache/doris/pull/36616) - -- 修改 `SHOW PROCEDURE STATUS` 语句返回值与 MySQL 协议不兼容的问题。[#35350](https://github.com/apache/doris/pull/35350) - -- `libevent` 库强制开启 Keepalive 以解决部分情况下连接泄露的问题。 [#36088](https://github.com/apache/doris/pull/36088) - - -## 致谢 - -@133tosakarin、@924060929、@airborne12、@amorynan、@AshinGau、@BePPPower、@BiteTheDDDDt、@ByteYue、@caiconghui、@CalvinKirs、@cambyzju、@catpineapple、@cjj2010、@csun5285、@DarvenDuan、@dataroaring、@deardeng、@Doris-Extras、@eldenmoon、@englefly、@feiniaofeiafei、@felixwluo、@freemandealer、@Gabriel39、@gavinchou、@GoGoWen、@HappenLee、@hello-stephen、@hubgeter、@hust-hhb、@jacktengg、@jackwener、@jeffreys-cat、@Jibing-Li、@kaijchen、@kaka11chen、@Lchangliang、@liaoxin01、@LiBinfeng-01、@lide-reed、@luennng、@luwei16、@mongo360、@morningman、@morrySnow、@mrhhsg、@Mryange、@mymeiyi、@nextdreamblue、@platoneko、@qidaye、@qzsee、@seawinde、@shuke987、@sollhui、@starocean999、@suxiaogang223、@TangSiyang2001、@Thearas、@Vallishp、@w41ter、@wangbo、@whutpencil、@wsjz、@wuwenchi、@xiaokang、@xiedeyantu、@XieJiann、@xinyiZzz、@XuPengfei-1020、@xy720、@xzj7019、@yiguolei、@yongjinhou、@yujun777、@Yukang-Lian、@Yulei-Yang、@zclllyybb、@zddr、@zfr9527、@zgxme、@zhangbutao、@zhangstar333、@zhannngchen、@zhiqiang-hhhh、@zy-kkk、@zzzxl1993 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.5.md deleted file mode 100644 index d44dfa26a26eb..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.5.md +++ /dev/null @@ -1,395 +0,0 @@ ---- -{ - "title": "Release 2.1.5", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.5 版本已于 2024 年 7 月 24 日正式发布。2.1.5 版本在湖仓一体、多表物化视图、半结构化数据分析等方面进行了全面更新及改进,同时在倒排索引、查询优化器、查询引擎、存储管理等 10 余方向上完成了若干问题修复,欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,Apache Doris 2.1.5 版本已于 2024 年 7 月 24 日正式发布。2.1.5 版本在湖仓一体、多表物化视图、半结构化数据分析等方面进行了全面更新及改进,同时在倒排索引、查询优化器、查询引擎、存储管理等 10 余方向上完成了若干问题修复,欢迎大家下载使用。 - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - -## 行为变更 - -- JDBC Catalog 的默认连接池大小从 10 调整为 30。[#37023](https://github.com/apache/doris/pull/37023) - -- 创建 JDBC Catalog 时,参数 `connection_pool_max_size` 的默认值改为 30,以避免高并发场景下连接池耗尽的问题。 - -- 将系统的保留内存的最小值,即 `low water mark` 调整为 `min (6.4G, MemTotal * 5%)`,以更好地防止 BE 出现 OOM 问题。 - -- 修改了单请求多个语句的处理逻辑,当客户端未设置 `CLIENT_MULTI_STATEMENTS` 标志位时,将仅返回最后一个语句的结果,而非所有语句结果。 - -- 不再允许直接更改异步物化视图的数据。[#37129](https://github.com/apache/doris/pull/37129) - -- 增加会话变量 `use_max_length_of_varchar_in_ctas`,用于控制 CTAS 时 VARCHAR 和 CHAR 类型长度的生成行为。默认值是 true。当设置为 false 时,使用推导出的 VARCHAR 长度,而不是使用最大长度。[#37284](https://github.com/apache/doris/pull/37284) - -- 统计信息收集,默认开启了通过文件大小预估 Hive 表行数的功能。[#37694](https://github.com/apache/doris/pull/37694) - -- 默认开启异步物化视图透明改写机制。[#35897](https://github.com/apache/doris/pull/35897) - -- 透明改写利用分区物化视图,如果分物物化视图部分分区失效,默认行为是将所有基础表与物化视图联合,以保证查询数据的正确性。 [#35897](https://github.com/apache/doris/pull/35897) - -## 新功能 - -### 湖仓一体 - -- 会话变量 `read_csv_empty_line_as_null` 用于控制在读取 CSV 格式文件时,是否忽略空行。默认情况下忽略空行,当设置为 true 时,空行将被读取为所有列均为 Null 的行。[#37153](https://github.com/apache/doris/pull/37153) - - - 更多信息,请参考[文档](https://doris.apache.org/docs/lakehouse/datalake-analytics/hive?_highlight=compress_type)。 - -- 新增兼容 Presto 的复杂类型输出格式。通过设置 `set serde_dialect="presto"`,可以控制复杂类型的输出格式 与 Presto 一致,用于平滑迁移 Presto 业务。[#37253](https://github.com/apache/doris/pull/37253) - -​ - -### 多表物化视图 -- 支持在构建物化视图中使用非确定性函数。[#37651](https://github.com/apache/doris/pull/37651) - -- 支持原子替换异步物化视图定义。[#37147](https://github.com/apache/doris/pull/37147) - -- 支持通过 `show create materialized view` 查看异步物化视图创建语句。 [#37125](https://github.com/apache/doris/pull/37125) - -- 支持对多维聚合查询的透明改写。[#37436](https://github.com/apache/doris/pull/37436) - -- 支持对非聚合物化视图的聚合查询进行透明改写。 [#37497](https://github.com/apache/doris/pull/37497) - -- 支持使用 Key 列,对查询中的 DISTINCT 聚合做透明改写。[#37651](https://github.com/apache/doris/pull/37651) - -- 支持对物化视图进行分区,通过使用 `date_trunc` 对分区进行汇总。[#31812](https://github.com/apache/doris/pull/31812) [#35562](https://github.com/apache/doris/pull/35562) - -- 支持分区表值函数(TVF) [#36479](https://github.com/apache/doris/pull/36479) - -### 半结构化数据分析 - -- 使用 VARIANT 类型的表支持部分列更新。 [#34925](https://github.com/apache/doris/pull/34925) - -- 支持默认开启 PreparedStatement。 [#36581](https://github.com/apache/doris/pull/36581) - -- VARIANT 类型支持导出为 CSV 格式。[#37857](https://github.com/apache/doris/pull/37857) - -- 支持 `explode_json_object` 函数,用于将 JSON Object 行转列。 [#36887](https://github.com/apache/doris/pull/36887) - -- ES Catalog 将 ES 的 NESTED 或者 OBJECT 类型映射成 Doris JSON 类型。[#37101](https://github.com/apache/doris/pull/37101) - -- 默认情况下,对于具有指定分词器的倒排索引,默认开启 `support_phrase` 以提升 `match_phrase` 系列查询性能。[#37949](https://github.com/apache/doris/pull/37949) - -### 查询优化器 - -- 支持 `explain DELETE FROM` 语句。[#37100](https://github.com/apache/doris/pull/37100) - -- 支持常量表达式参数的 Hint 形式。[#37988](https://github.com/apache/doris/pull/37988) - -### 内存管理 - -- 增加了 HTTP API 以清除缓存。 [#36599](https://github.com/apache/doris/pull/36599) - -### 权限管理 - -- 支持对表值函数(TVF)中的资源进行鉴权。 [#37132](https://github.com/apache/doris/pull/37132) - -## 改进提升 - -### 湖仓一体 - -- 将 Paimon 升级至 0.8.1 版本。 - -- 修复在部分情况下,查询 Paimon 表时导致 `org.apache.commons.lang.StringUtils` 的问题。[#37512](https://github.com/apache/doris/pull/37512) - -- 支持腾讯云 LakeFS。 [#36891](https://github.com/apache/doris/pull/36891) - -- 优化了外部表查询时获取文件列表的超时时间。 [#36842](https://github.com/apache/doris/pull/36842) - -- 可通过会话变量 `fetch_splits_max_wait_time_ms` 进行设置 - -- 改进了 SQLServer JDBC Catalog 的默认连接逻辑。 [#36971](https://github.com/apache/doris/pull/36971) - - - 默认情况下,不干预连接加密设置。仅当 `force_sqlserver_jdbc_encrypt_false` 设置为 true 时,才会强制在 JDBC URL 中添加 `encrypt=false` 以减少认证错误,从而提供更灵活的控制加密行为的能力。 - -- Hive 表的 `show create table` 语句增加序列化/反序列化。[#37096](https://github.com/apache/doris/pull/37096) - -- FE 端 Hive 表列表默认缓存时间由 1 天改为 4 小时 - -- 数据导出(Export/Outfile)支持指定 Parquet 和 ORC 的压缩格式。 - - - 更多信息,请参考[文档](../../sql-manual/sql-statements/data-modification/load-and-export/EXPORT.md)。 - -- 当使用 CTAS+TVF 创建表时,TVF 中的分区列将被自动映射为 Varchar(65533)而非 String,以便该分区列能够作为内表的分区列使用。 [#37161](https://github.com/apache/doris/pull/37161) - -- 优化 Hive 写入操作元数据的访问次数。[#37127](https://github.com/apache/doris/pull/37127) - -- ES Catalog 支持将 NESTED/OBJECT 类型映射到 Doris 的 JSON 类型。[#37182](https://github.com/apache/doris/pull/37182) - -- 优化使用低版本 OBJECT 驱动连接 Oracle 时的报错信息。[#37634](https://github.com/apache/doris/pull/37634) - -- 当 Hudi 表 Incremental Read 返回空集时,Doris 同样返回空集而非报错。[#37636](https://github.com/apache/doris/pull/37634) - -- 修复部分情况下内外表关联查询可能导致 FE 超时的问题。[#37757](https://github.com/apache/doris/pull/37757) - -- 修复了在从旧版本升级到新版本时,如果开启了 Hive Metastore Even Listener 情况下,可能出现 FE 元数据回放错误的问题。 [#37757](https://github.com/apache/doris/pull/37757) - - - -### 多表物化视图 - -- 创建异步物化视图时,支持自动选择 Key 列。 [#36601](https://github.com/apache/doris/pull/36601) - -- 异步物化视图分区刷新支持定义中使用 `date_trunc` 函数。[#35562](https://github.com/apache/doris/pull/35562) - -- 嵌套物化视图中,当下层命中聚合上卷改写后,上层现在依然可以继续进行透明改写。 [#37651](https://github.com/apache/doris/pull/37651) - -- 当 Schema Change 不影响异步物化视图数据正确性时,异步物化视图保持可用状态。 [#37122](https://github.com/apache/doris/pull/37122) - -- 提升了透明改写的规划速度。[#37935](https://github.com/apache/doris/pull/37935) - -- 计算异步物化视图可用性时,不再考虑当前的刷新状态。[#36617](https://github.com/apache/doris/pull/36617) - -### 半结构化数据管理 - -- 通过采样优化 DESC 查看 VARIANT 子列的性能。 [#37217](https://github.com/apache/doris/pull/37217) - -- 行存 `page_size` 默认从 4K 调到 16K 压缩率提升 30%,而且支持表级别可配置。 - -- JSON 类型支持 Key 为空的特殊 JSON 数据。 [#36762](https://github.com/apache/doris/pull/36762) - -### 倒排索引 - -- 减少倒排索引 Exists 调用避免对象存储访问延迟。[#36945](https://github.com/apache/doris/pull/36945) - -- 优化倒排索引查询流程额外开销。[#35357](https://github.com/apache/doris/pull/35357) - -- 在物化视图中不创建倒排索引。 [#36869](https://github.com/apache/doris/pull/36869) - -### 查询优化器 - -- 当比较表达式两侧都是 Literal 时,String Literal 会尝试向另一侧的类型转换。 [#36921](https://github.com/apache/doris/pull/36921) - -- 重构了 VARIANT 类型的子路径下推功能,现在可以更好地支持复杂的下推场景。 [#36923](https://github.com/apache/doris/pull/36923) - -- 优化了物化视图代价计算的逻辑,能够更准确的选择代价更低的物化视图。 [#37098](https://github.com/apache/doris/pull/37098) - -- 提升了 SQL 中使用用户变量时的 SQL 缓存规划速度。 [#37119](https://github.com/apache/doris/pull/37119) - -- 优化了 NOT NULL 表达式的估行逻辑,当查询中存在 NOT NULL 时可以获得更好的性能。 [#37498](https://github.com/apache/doris/pull/37498) - -- 优化了 LIKE 表达式的 NULL 拒绝推导逻辑。[#37864](https://github.com/apache/doris/pull/37864) - -- 优化查询指定分区失败时的报错信息,可以更清楚看到是哪个表导致的问题。 [#37280](https://github.com/apache/doris/pull/37280) - -### 查询引擎 - -- 将某些场景下 BITMAP_UNION 算子的性能提升了 3 倍。 - -- 提升 Arrow Flight 在 ARM 环境下的读取性能。 - -- 优化了 `explode`、`explode_map`、`explode_json` 函数的执行性能。 - -### 数据导入 - -- 支持为 `INSERT INTO ... FROM TABLE VALUE FUNCTION` 语句设置 `max_filter_ratio` 参数。 - - - 更多信息,请参考[文档](../../data-operate/import/import-way/insert-into-manual) - -## Bug 修复 - -### 湖仓一体 - -- 修复部分情况下查询 Parquet 格式导致 BE 宕机的问题。[#37086](https://github.com/apache/doris/pull/37086) - -- 修复查询 Parquet 格式,BE 端打印大量日志的问题。[#37012](https://github.com/apache/doris/pull/37012) - -- 修复部分情况下 FE 端重复创建大量 FileSystem 对象的问题。[#37142](https://github.com/apache/doris/pull/37142) - -- 修复部分情况下,写入 Hive 后的事务信息未清理的问题。[#37172](https://github.com/apache/doris/pull/37172) - -- 修复部分情况下,Hive 表写入操作导致线程泄露的问题。[#37247](https://github.com/apache/doris/pull/37247) - -- 修复部分情况下,无法正确获取 Hive Text 格式行列分隔符的问题。[#37188](https://github.com/apache/doris/pull/37188) - -- 修复部分情况下,读取 lz4 压缩块时的并发问题。[#37187](https://github.com/apache/doris/pull/37187) - -- 修复部分情况下,Iceberg 表 `count(*)` 返回错误的问题。[#37810](https://github.com/apache/doris/pull/37810)。 - -- 修复部分情况下,创建基于 MinIO 的 Paimon Catalog 导致 FE 元数据回放错误的问题。[#37249](https://github.com/apache/doris/pull/37249) - -- 修复部分情况下使用 Ranger 创建 Catalog 客户端卡死的问题。 [#37551](https://github.com/apache/doris/pull/37551) - -### 多表物化视图 - -- 修复当基表增加新的分区时,可能导致的分区聚合上卷改写后结果错误的问题。 [#37651](https://github.com/apache/doris/pull/37651) - -- 修复关联的基表分区删除后,物化视图分区状态没有被置为不同步的问题。 [#36602](https://github.com/apache/doris/pull/36602) - -- 修复异步物化视图构建偶现的死锁问题。 [#37133](https://github.com/apache/doris/pull/37133) - -- 修复异步物化视图单次刷新大量分区时偶现的,报错 `nereids cost too much time` 问题。[#37589](https://github.com/apache/doris/pull/37589) - -- 修复创建异步物化视图时,如果最终的 Select List 中存在 Null Literal,则无法创建的问题。[#37281](https://github.com/apache/doris/pull/37281) - -- 修复单表物化视图,如果构建了聚合的物化视图,虽然改写成功,但是 CBO 没有选择的问题。 [#35721](https://github.com/apache/doris/pull/35721) [#36058](https://github.com/apache/doris/pull/36058) - -- 修复 Join 输入都是聚合的情况下,构建分区物化视图,分区推导失败的问题。[#34781](https://github.com/apache/doris/pull/34781) - -### 半结构化数据管理 - -- 修复 VARIANT 在并发/异常数据等特殊情况下的问题。[#37976](https://github.com/apache/doris/pull/37976) [#37839](https://github.com/apache/doris/pull/37839) [#37794](https://github.com/apache/doris/pull/37794) [#37674](https://github.com/apache/doris/pull/37674) [#36997](https://github.com/apache/doris/pull/36997) - -- 修复 VARIANT 用在不支持的 SQL 中 Coredump 的问题。 [#37640](https://github.com/apache/doris/pull/37640) - -- 修复 1.x 版本升级到 2.x 或者更高版本时因为 MAP 数据类型 Coredump 的问题。 [#36937](https://github.com/apache/doris/pull/36937) - -- 修复 ES Catalog 对 Array 的支持。 [#36936](https://github.com/apache/doris/pull/36936) - -### 倒排索引 - -- 修复倒排索引 v2 DROP INDEX 元数据没有删除的问题。 [#37646](https://github.com/apache/doris/pull/37646) - -- 修复字符串长度超过“ignore above”时查询准确性问题。 [#37679](https://github.com/apache/doris/pull/37679) - -- 修复索引大小统计的问题。 [#37232](https://github.com/apache/doris/pull/37232) [#37564](https://github.com/apache/doris/pull/37564) - -### 查询优化器 - -- 修复部分因为保留关键字而导致导入无法执行的问题。[#35938](https://github.com/apache/doris/pull/35938) - -- 修复了在创建表时 CHAR(255) 类型错误的记录为 CHAR(1) 的问题。 [#37671](https://github.com/apache/doris/pull/37671) - -- 修复了在相关子查询中的连接表达式为复杂表达式时返回错误结果的问题。[#37683](https://github.com/apache/doris/pull/37683) - -- 修复了 DECIMAL 类型分桶裁剪有可能错误的问题。[#38013](https://github.com/apache/doris/pull/38013) - -- 修复了部分场景下开启 Pipeline Local Shuffle 后,聚合算子计算结果错误的问题。[#38061](https://github.com/apache/doris/pull/38016) - -- 修复当聚合算子中存在相等的表达式时,可能出现的规划报错问题。[#36622](https://github.com/apache/doris/pull/36622) - -- 修复当聚合算子中存在 Lambda 表达式时,可能出现的规划报错问题。[#37285](https://github.com/apache/doris/pull/37285) - -- 修复了由窗口函数生成的字面量在优化为字面量时类型错误导致无法执行的问题。 [#37283](https://github.com/apache/doris/pull/37283) - -- 修复了聚合函数 `foreach combinator` 错误输出 Null 属性问题。[#37980](https://github.com/apache/doris/pull/37980) - - -- 修复了 acos 函数在参数为超越范围值的字面量时不能规划的问题。[#37996](https://github.com/apache/doris/pull/37996) - -- 修复当查询指定的同步物化视图时,显示指定查询分区导致规划报错的问题。[#36982](https://github.com/apache/doris/pull/36982) - -- 修复了在规划过程中偶尔出现 NPE 的问题。[#38024](https://github.com/apache/doris/pull/38024) - -### 查询引擎 - -- 修复 DELETE WHERE 语句中,在 DECIMAL 数据类型作为条件报错的问题。[#37801](https://github.com/apache/doris/pull/37801) - -- 修复查询执行结束,但是 BE 内存不释放的问题。[#37792](https://github.com/apache/doris/pull/37792) [#37297](https://github.com/apache/doris/pull/37297) - -- 修复在千级别 QPS 场景下,Audit Log 占用 FE 内存太多的问题。https://github.com/apache/doris/pull/37786 - -- 修复 sleep 函数在输入非法值时 BE Core 的问题。[#37681](https://github.com/apache/doris/pull/37681) - -- 修复执行过程中 `sync filter size meet error` 的问题。 [#37103](https://github.com/apache/doris/pull/37103) - -- 修复执行过程中,使用时区时结果不对的问题。[#37062](https://github.com/apache/doris/pull/37062) - -- 修复 `cast string` 到 `int` 时结果不对的问题。 [#36788](https://github.com/apache/doris/pull/36788) - -- 修复 Arrow Flight 协议在开启 Pipelinex 时查询报错的问题。 [#35804](https://github.com/apache/doris/pull/35804) - -- 修复 `cast string to date/datetime` 报错的问题。 [#35637](https://github.com/apache/doris/pull/35637) - -- 修复使用 `<=>` 做大表关联查询时 BE Core 的问题。 [#36263](https://github.com/apache/doris/pull/36263) - -### 存储管理 - -- 修复列更新写入时遇到 DELETE SIGN 数据不可见问题。[#36755](https://github.com/apache/doris/pull/36755) - -- 优化 Schema Change 期间 FE 的内存占用。[#36756](https://github.com/apache/doris/pull/36756) - -- 修复 BE 重启时事务没有 Abort 导致的 BE 下线卡住问题。[#36437](https://github.com/apache/doris/pull/36437) - -- 修复 NOT-NULL 到 NULL 类型变更的偶发报错问题。 [#36389](https://github.com/apache/doris/pull/36389) - -- 优化 BE 宕机时的副本修复调度。 [#36897](https://github.com/apache/doris/pull/36897) - -- 单个 BE 创建 Tablet 时支持 round-robin 选择磁盘。 [#36900](https://github.com/apache/doris/pull/36900) - -- 修复 Publish 慢导致的查询 -230 错误。 [#36222](https://github.com/apache/doris/pull/36222) - -- 优化 Partition Balance 的速度。 [#36976](https://github.com/apache/doris/pull/36976) - -- 使用 FD 数目和内存控制 Segment Cache 避免 FD 不足。 [#37035](https://github.com/apache/doris/pull/37035) - -- 修复 Clone 和 Alter 并发可能导致的副本丢失问题。 [#36858](https://github.com/apache/doris/pull/36858) - -- 修复不能调整列顺序问题。[#37226](https://github.com/apache/doris/pull/37226) - -- 禁止自增列的部分 Schema Change 操作。 [#37331](https://github.com/apache/doris/pull/37331) - -- 修复 Delete 操作报错不准确。 [#37374](https://github.com/apache/doris/pull/37374) - -- BE 侧 Trash 过期时间调整为一天。 [#37409](https://github.com/apache/doris/pull/37409) - -- 优化 Compaction 内存占用和调度。 [#37491](https://github.com/apache/doris/pull/37491) - -- 检查潜在的过大 Backup 导致 FE 重启的问题。[#37466](https://github.com/apache/doris/pull/37466) - -- 恢复动态分区删除策略以及交叉分区的行为到 2.1.3。[#37570](https://github.com/apache/doris/pull/37570) [#37506](https://github.com/apache/doris/pull/37506) - -- 修复 DELETE 谓词重部分 DECIMAL 报错问题。 [#37710](https://github.com/apache/doris/pull/37710) - -### 数据导入 - -- 修复导入时错误处理竞争导致的数据不可见问题。[#36744](https://github.com/apache/doris/pull/36744) - -- Stream Load 导入支持 `hhl_from_base64`。 [#36819](https://github.com/apache/doris/pull/36819) - -- 修复潜在的单表非常多 Tablet 导入失败时可能导致 FE OOM 的问题。 [#36944](https://github.com/apache/doris/pull/36944) - -- 修复 FE 主从切换时自增列可能重复的问题。[#36961](https://github.com/apache/doris/pull/36961) - -- 修复 INSERT INTO SELECT 自增列报错问题。 [#37029](https://github.com/apache/doris/pull/37029) - -- 降低数据下刷线程数,优化内存占用。 [#37092](https://github.com/apache/doris/pull/37092) - -- 优化 Routine Load 任务自动恢复和错误信息。 [#37371](https://github.com/apache/doris/pull/37371) - -- 增加 Routine Load 默认攒批大小。 [#37388](https://github.com/apache/doris/pull/37388) - -- 修复 Routine Load 在 Kafka EOF 过期的任务停止问题。[#37983](https://github.com/apache/doris/pull/37983) - -- 修复一流多表 Coredump。 [#37370](https://github.com/apache/doris/pull/37370) - -- 修复 Group Commit 内存估计不准导致的提前反压问题。[#37379](https://github.com/apache/doris/pull/37379) - -- 优化 Group Commit BE 侧线程占用。 [#37380](https://github.com/apache/doris/pull/37380) - -- 修复数据没有分区时没有错误 URL 的问题。 [#37401](https://github.com/apache/doris/pull/37401) - -- 修复导入时潜在的内存误操作问题。 [#38021](https://github.com/apache/doris/pull/38021) - -### 主键模型 - -- 降低主键表 Compaction 的内存占用。 [#36968](https://github.com/apache/doris/pull/36968) - -- 修复主键副本 Clone 失败时可能的重复数据问题。 [#37229](https://github.com/apache/doris/pull/37229) - -### 内存管理 - -- 修复 Jemalloc Cache 统计不准的问题。[#37464](https://github.com/apache/doris/pull/37464) - -- 修复在 K8s / CGroup 中不能正确获取内存大小的问题。 [#36966](https://github.com/apache/doris/pull/36966) - -### 权限管理 - -- 修复 Table Valued Function 引用 Resource 时没有鉴权的问题。 [#37132](https://github.com/apache/doris/pull/37132) - -- 修复 Show Role 语句中没有 Workload Group 权限的问题。 [#36032](https://github.com/apache/doris/pull/36032) - -- 修复创建 Row Policy 时,同时执行两条语句,导致 FE 重启失败的问题。[#37342](https://github.com/apache/doris/pull/37342) - -- 修复部分情况下,老版本升级后,因为 Row Policy 导致 FE 元数据回放失败的问题。[#37342](https://github.com/apache/doris/pull/37342) - -### 其他 - -- 修复计算节点参与内部表创建的问题。[#37961](https://github.com/apache/doris/pull/37961) - -- 修复 `enable_strong_read_consistency = true` 时从延迟问题。 [#37641](https://github.com/apache/doris/pull/37641) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.6.md deleted file mode 100644 index c5f9ad5712a2a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.6.md +++ /dev/null @@ -1,516 +0,0 @@ ---- -{ - "title": "Release 2.1.6", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.6 版本已于 2024 年 9 月 10 日正式发布。2.1.6 版本在湖仓一体、异步物化视图、半结构化数据管理持续升级改进,同时在查询优化器、执行引擎、存储管理、数据导入与导出以及权限管理等方面完成了若干修复。欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.6 版本已于 2024 年 9 月 10 日正式发布。**2.1.6 版本在湖仓一体、异步物化视图、半结构化数据管理持续升级改进,同时在查询优化器、执行引擎、存储管理、数据导入与导出以及权限管理等方面完成了若干修复。欢迎大家下载使用。 - -- 官网下载:https://doris.apache.org/download - -- GitHub 下载:https://github.com/apache/doris/releases/tag/2.1.6-rc04 - -## 行为变更 - -- 移除 `create repository` 命令中的 `delete_if_exists` 选项。[#38192](https://github.com/apache/doris/pull/38192) - -- 新增会话变量 `enable_prepared_stmt_audit_log`,用于控制 JDBC 预编译语句是否记录审计日志,默认不记录。[#38624](https://github.com/apache/doris/pull/38624) [#39009](https://github.com/apache/doris/pull/39009) - -- 采用文件描述符限制和内存限制来管理 Segment Cache。[#39689](https://github.com/apache/doris/pull/39689) - -- 当 `sys_log_mode` 配置项设置为 `BRIEF` 时,在日志中增加文件位置信息,以提供更详细的上下文。[#39571](https://github.com/apache/doris/pull/39571) - -- 将会话变量 `max_allowed_packet` 的默认值调整为 16MB,提高数据传输限制。[#38697](https://github.com/apache/doris/pull/38697) - -- 在单次请求中,若包含多个 SQL 语句,各语句间必须使用分号进行分隔,以增强语句的清晰度和执行效率。[#38670](https://github.com/apache/doris/pull/38670) - -- 现在支持 SQL 语句以分号开始,提供更灵活的语句书写方式。[#39399](https://github.com/apache/doris/pull/39399) - -- 在执行如 `show create table` 等语句时,类型格式与 MySQL 保持一致,提升与 MySQL 的兼容性。[#38012](https://github.com/apache/doris/pull/38012) - -- 当新优化器规划查询超时后,不再回退到旧优化器,以避免潜在的性能下降问题。[#39499](https://github.com/apache/doris/pull/39499) - -## 新功能 - -### Lakehouse - -- 实现 Iceberg 表的写回功能。 - - - 更多信息,请查看文档数据湖构建-[Iceberg](../../lakehouse/catalogs/iceberg-catalog) - -- 增强 SQL 拦截规则,支持对外表的拦截处理。 - - - 更多信息,请查看文档查询管理-[SQL 拦截](../../admin-manual/workload-management/sql-blocking) - -- 新增系统表`file_cache_statistics`,用于查看 BE 节点的数据缓存性能指标。 - - - 更多信息,请查看文档系统表-[file_cache_statistics](../../admin-manual/system-tables/information_schema/file_cache_statistics) - -### 异步物化视图 - -- 支持在 Insert 中进行透明改写。[#38115](https://github.com/apache/doris/pull/38115) - -- 支持对查询中存在 VARIANT 类型时的透明改写。[#37929](https://github.com/apache/doris/pull/37929) - -### 半结构化数据管理 - -- 支持 ARRAY MAP 类型到 JSON 类型的 CAST 转换功能。[#36548](https://github.com/apache/doris/pull/36548) - -- 引入`json_keys`函数,用于提取 JSON 中的键名。[#36411](https://github.com/apache/doris/pull/36411) - -- 支持在导入 JSON 时指定`json path`$``[#38213](https://github.com/apache/doris/pull/38213) - -- ARRAY / MAP / STRUCT 类型支持`replace_if_not_null`[#38304](https://github.com/apache/doris/pull/38304) - -- 允许调整 ARRAY / MAP / STRUCT 类型的列顺序。[#39210](https://github.com/apache/doris/pull/39210) - -- 新增`multi_match`函数,支持在多个字段中匹配关键词,并利用倒排索引加速查询。[#37722](https://github.com/apache/doris/pull/37722) - -### 查询优化器 - -- 完善 MySQL 协议返回列的信息,包括原始数据库名、表名、列名和别名。[#38126](https://github.com/apache/doris/pull/38126) - -- 增强聚合函数`group_concat`,支持同时使用`order by`和`distinct`进行复杂数据聚合。[#38080](https://github.com/apache/doris/pull/38080) - -- 改进了 SQL 缓存机制,支持通过注释区分不同的查询以复用缓存结果。[#40049](https://github.com/apache/doris/pull/40049) - -- 增强分区裁剪功能,支持在过滤条件中使用`date_trunc`和`date`函数。[#38025](https://github.com/apache/doris/pull/38025) [#38743](https://github.com/apache/doris/pull/38743) - -- 允许在表别名前使用数据库名作为限定名前缀。[#38640](https://github.com/apache/doris/pull/38640) - -- 支持 Hint 格式注释。[#39113](https://github.com/apache/doris/pull/39113) - -### 执行引擎 - -- `Group concat`函数现支持`distinct`和`order by`选项。[#38744](https://github.com/apache/doris/pull/38744) - -### Others - -- 新增系统表`table_properties`,便于用户查看和管理表的各项属性。 - - - 更多信息,请查看文档 [table_properties](../../admin-manual/system-tables/information_schema/table_properties/) -- 新增 FE 中死锁和慢锁检测功能。 - - - 更多信息,请查看文档 [FE 锁管理](../../admin-manual/trouble-shooting/frontend-lock-manager) - -## 改进提升 - -### 湖仓一体 - -- 革新外表元数据缓存机制。 - - - 更多信息,请查看文档 [元数据缓存](../../lakehouse/meta-cache.md) - -- 新增会话变量`keep_carriage_return`,默认关闭。读取 Hive Text 格式表时,默认将`\r\n`与`\n`均视为换行符。[#38099](https://github.com/apache/doris/pull/38099) - -- 优化 Parquet / ORC 文件读写内存统计。[#37257](https://github.com/apache/doris/pull/37257) - -- Paimon 表支持 IN/ NOT IN 谓词下推。[#38390](https://github.com/apache/doris/pull/38390) - -- 升级优化器,支持 Hudi 表的 Time Travel 语法。[#38591](https://github.com/apache/doris/pull/38591) - -- Kerberos 认证流程优化,提升安全认证效率与稳定性。[#37301](https://github.com/apache/doris/pull/37301) - -- 支持 Rename column 操作后读取 Hive 表。[#38809](https://github.com/apache/doris/pull/38809) - -- 提升外表分区列读取性能。[#38810](https://github.com/apache/doris/pull/38810) - -- 优化外表查询规划,优化数据分片合并策略,有效避免小分片对查询性能的影响。[#38964](https://github.com/apache/doris/pull/38964) - -- SHOW CREATE DATABASE / TABLE 新增 Location 等属性展示。[#39644](https://github.com/apache/doris/pull/39644) - -- MaxCompute Catalog 扩展支持复杂类型。[#39822](https://github.com/apache/doris/pull/39822) - -- 优化文件缓存加载策略,通过异步加载方式避免 BE 启动时间过长的问题。[#39036](https://github.com/apache/doris/pull/39036) - -- 升级文件缓存淘汰策略,有效管理长时间占用锁的资源。[#39721](https://github.com/apache/doris/pull/39721) - -### 异步物化视图 - -- 支持小时、周及季度级别的分区上卷构建。[#37678](https://github.com/apache/doris/pull/37678) - -- 基于 Hive 外表的物化视图,在刷新前自动更新元数据缓存,以保证每次刷新可以获取最新数据。[#38212](https://github.com/apache/doris/pull/38212) - -- 通过批量获取元数据,优化存算分离模式下的透明改写规划性能。[#39301 ](https://github.com/apache/doris/pull/39301) - -- 通过禁止重复枚举,进一步提升透明改写的规划性能。[#39541 ](https://github.com/apache/doris/pull/39541) - -- 优化基于 Hive 外表分区刷新物化视图的透明改写性能。[#38525](https://github.com/apache/doris/pull/38525) - -### 半结构化数据管理 - -- 优化 TOPN 查询内存分配,显著提升查询性能。[#37429](https://github.com/apache/doris/pull/37429) - -- 优化倒排索引字符串处理性能。[#37395](https://github.com/apache/doris/pull/37395) - -- 优化倒排索引在 MOW 表中的性能。[#37428](https://github.com/apache/doris/pull/37428) - -- 建表时支持指定行存 `page_size`,以控制压缩效果。[#37145](https://github.com/apache/doris/pull/37145) - -### 查询优化器 - -- 调整 Mark Join 行数估计算法,提高基数估算准确性。[#38270](https://github.com/apache/doris/pull/38270) - -- 优化 Semi / Anti Join 代价估计算法,能够正确选择最佳 Join 顺序。[#37951](https://github.com/apache/doris/pull/37951) - -- 调整部分列无统计信息情况下的过滤估计算法,使估算更精准。[#39592](https://github.com/apache/doris/pull/39592) - -- 改进 Set Operation 算子 Instance 计算逻辑,防止在极端情况下并行度不足的问题。[#39999](https://github.com/apache/doris/pull/39999) - -- 优化 Bucket Shuffle 使用策略,数据打散不充分时也能获得更好的性能。[#36784](https://github.com/apache/doris/pull/36784) - -- 窗口函数数据提前过滤,支持单投影中存在多窗口函数的情况。[#38393](https://github.com/apache/doris/pull/38393) - -- 过滤条件含 `NullLiteral` 时,智能折叠为 False,转换为 `EmptySet`,减少不必要的数据扫描量。[#38135](https://github.com/apache/doris/pull/38135) - -- 扩大谓词推导适用范围,在特定模式的查询下能够大幅减少数据扫描量。[#37314](https://github.com/apache/doris/pull/37314) - -- 在分区裁剪中支持部分短路计算逻辑,以提升分区裁剪性能。在特定场景下,性能提升超过 100%。[#38191](https://github.com/apache/doris/pull/38191) - -- 在用户变量中,支持计算任意的标量函数。[#39144 ](https://github.com/apache/doris/pull/39144) - -- 当查询中存在别名冲突时,报错信息能够保持与 MySQL 一致。[#38104 ](https://github.com/apache/doris/pull/38104) - -### 执行引擎 - -- 实现 AggState 从 2.1 到 3.x 版本的兼容,并解决了 coredump 问题。[#37104](https://github.com/apache/doris/pull/37104) - -- 重构无 Join 操作时的 Local Shuffle 策略选择机制。[#37282](https://github.com/apache/doris/pull/37282) - -- 将内部表查询的 scanner 调整为异步模式,以防止查询内部表时出现卡顿。[#38403](https://github.com/apache/doris/pull/38403) - -- 优化 Join 算子在构建 Hash 表时的 Block Merge 流程。[#37471](https://github.com/apache/doris/pull/37471) - -- 缩短 MultiCast 持有锁的时间。[#37462](https://github.com/apache/doris/pull/37462) - -- 优化 gRPC 的 keepAliveTime 设置并增加了链接监测机制,降低了因 RPC 错误导致的查询失败率。[#37304](https://github.com/apache/doris/pull/37304) - -- 当内存超出限制时,将清理 `jemalloc` 中的所有 Dirty Pages。[#37164](https://github.com/apache/doris/pull/37164) - -- 提升 `aes_encrypt`/`decrypt` 函数对常量类型的处理效率。[#37194](https://github.com/apache/doris/pull/37194) - -- 加快 `json_extract` 函数对常量数据的处理速度。[#36927](https://github.com/apache/doris/pull/36927) - -- 提高 `ParseUrl` 函数处理常量数据的性能。[#36882](https://github.com/apache/doris/pull/36882) - -### 存储管理 - -**备份恢复 / 跨集群同步** - -- Restore 功能现已支持删除多余的 Tablet 和分区选项。[#39363](https://github.com/apache/doris/pull/39363) - -- 在创建 Repository 时,支持检查存储连通性。[#39538](https://github.com/apache/doris/pull/39538) - -- Binlog 支持 Drop 表操作,使 CCR 能够支持 Drop 表的增量同步。[#38541](https://github.com/apache/doris/pull/38541) - -**Compaction** - -- 改进高优 Compaction 任务不受并发控制限制的问题。[#38189](https://github.com/apache/doris/pull/38189) - -- 根据数据特性自动调整 Compaction 的内存消耗。[#37486](https://github.com/apache/doris/pull/37486) - -- 修复顺序数据优化策略可能引发的聚合表或 MOR UNIQUE 表数据准确性问题。[#38299](https://github.com/apache/doris/pull/38299) - -- 优化补副本期间 Compaction 选择 rowset 的策略,以避免触发 -235 错误。[#39262](https://github.com/apache/doris/pull/39262) - -**Merge-on-Write** - -- 解决了列更新和 Compaction 并发时列更新慢的问题。[#38682](https://github.com/apache/doris/pull/38682) - -- 修复一次导入大量数据时,Segcompaction 可能导致 MOW 数据不正确的问题。[#38992](https://github.com/apache/doris/pull/38992) [#39707](https://github.com/apache/doris/pull/39707) - -- 解决 BE 重启后,可能导致列更新数据丢失的问题。[#39035](https://github.com/apache/doris/pull/39035) - -**其他** - -- 增加了 FE 配置,用于控制冷热分层下查询是否优先访问本地数据的副本。[#38322](https://github.com/apache/doris/pull/38322) - -- 解决了过期的 BE 汇报消息未包含新创建 Tablet 的问题。[#38839 ](https://github.com/apache/doris/pull/38839)[#39605](https://github.com/apache/doris/pull/39605) - -- 优化副本调度优先级策略,优先调度缺少数据的副本。[#38884](https://github.com/apache/doris/pull/38884) - -- 对于有未完成 ALTER JOB 的 Tablet,不进行均衡调度。[#39202](https://github.com/apache/doris/pull/39202) - -- List 分区方式的表现支持修改分桶数。[#39688](https://github.com/apache/doris/pull/39688) - -- 优先选择在线的磁盘服务进行查询。[#39654](https://github.com/apache/doris/pull/39654) - -- 改进了同步物化视图的 Base 表不支持删除时的提示信息。[#39857](https://github.com/apache/doris/pull/39857) - -- 改进了单列超过 4G 时的报错信息。[#39897](https://github.com/apache/doris/pull/39897) - -- 修复了 Insert 语句遇到 Plan 错误时未正确中止事务的问题。[#38260](https://github.com/apache/doris/pull/38260) - -- 修复了 SSL 链接关闭时的异常问题。[#38677](https://github.com/apache/doris/pull/38677) - -- 修复了使用 Label 中止事务时未持有表锁的问题。[#38842](https://github.com/apache/doris/pull/38842) - -- 修复了 Gson Pretty 导致 Image 过大的问题。[#39135](https://github.com/apache/doris/pull/39135) - -- 修复了 CREAT TABLE 语句在新优化器下未检查 Bucket 为 0 的问题。[#38999](https://github.com/apache/doris/pull/38999) - -- 修复了 DELETE 条件谓词中包含中文列时报错的问题。[#39500](https://github.com/apache/doris/pull/39500) - -- 修复了分区均衡模式下频繁均衡 Tablet 的问题。[#39606](https://github.com/apache/doris/pull/39606) - -- 修复了分区丢失 Storage Policy 属性的问题。[#39677](https://github.com/apache/doris/pull/39677) - -- 修复了事务内导入多个表时统计信息不正确的问题。[#39548](https://github.com/apache/doris/pull/39548) - -- 修复了 Random 分桶表删除时报错的问题。[#39830](https://github.com/apache/doris/pull/39830) - -- 修复了 UDF 不存在导致 FE 无法启动的问题。[#39868](https://github.com/apache/doris/pull/39868) - -- 修复了 FE 主从 Last Failed Version 不一致的问题。[#39947](https://github.com/apache/doris/pull/39947) - -- 修复了 Schema Change Job 被取消时,相关 Tablet 可能仍处于 Schema Change 状态的问题。[#39327](https://github.com/apache/doris/pull/39327) - -- 修复了单个语句修改类型和列顺序 SC 时出现的报错问题。[#39107](https://github.com/apache/doris/pull/39107) - -### 数据导入 - -- 改进了导入发生 -238 错误时的错误信息提示。[#39182](https://github.com/apache/doris/pull/39182) - -- 实现在 Restore 分区时,其他分区可以同时进行导入。[#39915](https://github.com/apache/doris/pull/39915) - -- 优化了 Group Commit FE 选择 BE 的策略。[#37830](https://github.com/apache/doris/pull/37830) [#39010](https://github.com/apache/doris/pull/39010) - -- 对于一些常见的 Stream Load 错误信息,避免了程序栈的打印,简化了错误处理。[#38418](https://github.com/apache/doris/pull/38418) - -- 改进下线的 BE 可能影响导入出错的问题。[#38256](https://github.com/apache/doris/pull/38256) - -### 权限管理 - -- 优化了开启 Ranger 鉴权插件后的访问性能。[#38575](https://github.com/apache/doris/pull/38575) - -- 优化了 Refresh Catalog / Database / Table 操作的权限策略,用户仅需 SHOW 权限即可执行此操作。[#39008](https://github.com/apache/doris/pull/39008) - -## Bug 修复 - -### 湖仓一体 - -- 修复切换 Catalog 时可能出现的数据库找不到问题。[#38114](https://github.com/apache/doris/pull/38114) - -- 解决了读取 S3 上不存在的数据时出现的异常报错。[#38253](https://github.com/apache/doris/pull/38253) - -- 修正导出操作时,指定异常路径可能导致导出位置异常的问题。[#38602](https://github.com/apache/doris/pull/38602) - -- 修复 Paimon 表时间列时区问题。[#37716](https://github.com/apache/doris/pull/37716) - -- 临时关闭 Parquet PageIndex 功能以避免部分错误行为。 - -- 修复外表查询时,错误选取黑名单中 Backend 节点的问题。[#38984](https://github.com/apache/doris/pull/38984) - -- 解决读取 Parquet Struct 列类型中缺失子列导致查询错误的问题。[#39192](https://github.com/apache/doris/pull/39192) - -- 修复 JDBC Catalog 的谓词下推问题。[#39082](https://github.com/apache/doris/pull/39082) - -- 修正 Parquet 格式读取时,历史格式导致查询结果错误的问题。[#39375](https://github.com/apache/doris/pull/39375) - -- 增强了 Oracle JDBC Catalog 对 OJDBC6 驱动的兼容性。[#39408](https://github.com/apache/doris/pull/39408) - -- 解决了 Refresh Catalog/Database/Table 操作可能导致的 FE 内存泄漏问题。[#39186](https://github.com/apache/doris/pull/39186) [#39871](https://github.com/apache/doris/pull/39871) - -- 修复了 JDBC Catalog 在某些情况下的线程泄漏问题。 [#39666 ](https://github.com/apache/doris/pull/39666)[#39582](https://github.com/apache/doris/pull/39582) - -- 修复开启 Hive Metastore 事件订阅后,可能出现事件处理失败的问题。[#39239](https://github.com/apache/doris/pull/39239) - -- 禁止读取自定义 Escape CHAR 和 NULL Format 的 Hive Text 格式表,防止数据错误。[#39869](https://github.com/apache/doris/pull/39869) - -- 修复某些情况下,无法访问通过 Iceberg API 创建的 Iceberg 表的问题。[#39203](https://github.com/apache/doris/pull/39203) - -- 修复无法读取存储在开启高可用的 HDFS 集群上的 Paimon 表的问题。[#39876](https://github.com/apache/doris/pull/39876) - -- 修复开启文件缓存后,读取 Paimon 表 Deletion Vector 可能导致错误的问题。[#39875](https://github.com/apache/doris/pull/39875) - -- 修复某些情况下读取 Parquet 可能导致死锁的问题 [#39945](https://github.com/apache/doris/pull/39945) - -### 异步物化视图 - -- 修复无法在 Follower FE 上使用 `show create materialized view` 命令的问题。[#38794](https://github.com/apache/doris/pull/38794) - -- 统一异步物化视图在元数据中的对象类型,使其在数据工具中正常显示。[#38797](https://github.com/apache/doris/pull/38797) - -- 修复嵌套异步物化视图总是进行全量刷新的问题。[#38698](https://github.com/apache/doris/pull/38698) - -- 修正 Cancel 任务在重启 FE 后状态可能显示为 running 的问题。 [#39424](https://github.com/apache/doris/pull/39424) - -- 修复错误使用上下文,导致刷新物化视图任务可能非预期失败的问题。[#39690](https://github.com/apache/doris/pull/39690) - -- 修复基于外表创建异步物化视图时,VARCHAR 类型因长度不合理导致写入失败的问题。[#37668](https://github.com/apache/doris/pull/37668) - -- 修复 FE 重启或 Catalog 重建后,基于外表的异步物化视图可能失效的问题。[#39355](https://github.com/apache/doris/pull/39355) - -- 禁止 List 分区的物化视图使用分区上卷,以防止生成错误数据。[#38124](https://github.com/apache/doris/pull/38124) - -- 修复在聚合上卷透明改写时,SELECT List 中存在字面量导致的结果错误问题。[#38958](https://github.com/apache/doris/pull/38958) - -- 修复当查询中存在形如`a = a`的过滤条件时,透明改写可能出错的问题。[#39629](https://github.com/apache/doris/pull/39629) - -- 修复透明改写直查外表无法成功的问题。[#39041](https://github.com/apache/doris/pull/39041) - -### 半结构化数据管理 - -- 删除老优化器上 `PreparedStatement` 的支持。[#39465](https://github.com/apache/doris/pull/39465) - -- 修复 JSON 转义字符处理的问题。[#37251 ](https://github.com/apache/doris/pull/37251) - -- 修复 JSON 字段重复处理的问题。 [#38490](https://github.com/apache/doris/pull/38490) - -- 修复部分 ARRAY MAP 函数的问题。[#39307](https://github.com/apache/doris/pull/39307) [ #39699 ](https://github.com/apache/doris/pull/39699) [#39757](https://github.com/apache/doris/pull/39757) - -- 修复倒排索引查询和 LIKE 查询复杂组合的问题。[#36687](https://github.com/apache/doris/pull/36687) - -### 查询优化器 - -- 修复分区过滤条件中存在 `or` 时,可能导致分区裁剪错误的问题。[#38897 ](https://github.com/apache/doris/pull/38897) - -- 修复存在复杂表达式时,可能导致的分区裁剪错误的问题。[#39298](https://github.com/apache/doris/pull/39298) - -- 修复 AGG_STATE 类型中的子类型,Nullable 可能规划不正确导致执行报错的问题。[#37489](https://github.com/apache/doris/pull/37489) - -- 修复 Set Operation 算子 Nullable 可能规划不正确,导致执行报错的问题。[#39109](https://github.com/apache/doris/pull/39109) - -- 修复 Intersect 算子执行优先级不正确的问题。 [#39095](https://github.com/apache/doris/pull/39095) - -- 修复当查询中存在最大合法日期字面量时,可能出现 NPE 的问题。[#39482](https://github.com/apache/doris/pull/39482) - -- 修复偶现的规划报错,导致的执行时报错 Slot 不合法的问题。[#39640](https://github.com/apache/doris/pull/39640) - -- 修复重复引用 CTE 中的列,可能导致结果缺少部分列数据的问题。[#39850](https://github.com/apache/doris/pull/39850) - -- 修复在查询中存在 CASE WHEN 时,偶现的规划报错问题。[#38491](https://github.com/apache/doris/pull/38491) - -- 修复不能将 IP 类型隐式转换为 STRING 类型的问题。[#39318](https://github.com/apache/doris/pull/39318) - -- 修复在使用多维聚合时,当 SELECT List 中存在相同列和其别名时,可能出现的规划报错问题。[#38166](https://github.com/apache/doris/pull/38166) - -- 修复使用 BE 常量折叠时,处理 BOOLEAN 类型可能不正确的问题。[#39019](https://github.com/apache/doris/pull/39019) - -- 修复在表达式中存在 `default_cluster:` 作为 Database 名称前缀导致的规划报错问题。[#39114](https://github.com/apache/doris/pull/39114) - -- 修复 Insert Into 可能导致的死锁问题。[#38660](https://github.com/apache/doris/pull/38660) - -- 修复没有在规划全过程持有表锁导致可能出现规划报错的问题。 [#38950](https://github.com/apache/doris/pull/38950) - -- 修复创建表时不能正确处理 CHAR(0), VARCHAR(0) 的问题。[#38427](https://github.com/apache/doris/pull/38427) - -- 修复 SHOW CREAT TABLE 可能错误的显示出隐藏列的问题。[#38796](https://github.com/apache/doris/pull/38796) - -- 修复创建表时没有禁止使用和隐藏列同名列的问题。 [#38796](https://github.com/apache/doris/pull/38796) - -- 修复在执行 INSERT INTO AS SELECT 时,如果存在 CTE,偶现的规划报错问题。[#38526](https://github.com/apache/doris/pull/38526) - -- 修复 INSERT INTO VALUES 无法自动填充 NULL 默认值的问题。[#39122](https://github.com/apache/doris/pull/39122) - -- 修复在 DELETE 中使用 CTE,但是没有使用 USING 时,导致的 NPE 问题。[#39379](https://github.com/apache/doris/pull/39379) - -- 修复对随机分布的聚合模型表执行删除操作会失败的问题。[#37985](https://github.com/apache/doris/pull/37985) - -### 执行引擎 - -- 修复多个场景下,Pipeline 执行引擎被卡顿,导致查询不结束的问题。[#38657](https://github.com/apache/doris/pull/38657) [#38206](https://github.com/apache/doris/pull/38206) [#38885](https://github.com/apache/doris/pull/38885) - -- 修复了 NULL 和非 NULL 列在差集计算时导致的 Coredump 问题。[#38737](https://github.com/apache/doris/pull/38737) - -- 修复了 `width_bucket` 函数结果错误的问题。[#37892](https://github.com/apache/doris/pull/37892) - -- 修复了当单行数据很大且返回结果集也很大时(超过 2GB)查询报错的问题。[#37990](https://github.com/apache/doris/pull/37990) - -- 修复了 `stddev` 在 `DecimalV2` 类型下结果错误的问题。[#38731](https://github.com/apache/doris/pull/38731) - -- 修复了 `MULTI_MATCH_ANY` 函数导致的 Coredump 问题。[#37959](https://github.com/apache/doris/pull/37959) - -- 修复了 INSERT OVERWRITE AUTO PARTITION 导致事务回滚的问题。[#38103](https://github.com/apache/doris/pull/38103) - -- 修复了 `convert_tz` 函数结果错误的问题。[#37358](https://github.com/apache/doris/pull/37358) [#38764](https://github.com/apache/doris/pull/38764) - -- 修复了 `collect_set` 函数结合窗口函数使用时 Coredump 的问题。[#38234](https://github.com/apache/doris/pull/38234) - -- 修复了 `mod` 函数在异常输入时导致的 Coredump 问题。[#37999](https://github.com/apache/doris/pull/37999) - -- 修复了多线程下执行相同表达式可能导致 Java UDF 结果错误的问题。[#38612](https://github.com/apache/doris/pull/38612) - -- 修复了 `conv` 函数返回类型错误导致的溢出问题。[#38001](https://github.com/apache/doris/pull/38001) - -- 修复了 `histogram` 函数结果不稳定的问题。[#38608](https://github.com/apache/doris/pull/38608) - -### 存储管理 - -- 修复备份恢复后,写入数据时可能出现不可读的问题。[#38343](https://github.com/apache/doris/pull/38343) - -- 修复跨版本 Restore Version 使用问题。[#38396](https://github.com/apache/doris/pull/38396) - -- 修复 Backup 失败时 Job 没有取消的问题。[#38993](https://github.com/apache/doris/pull/38993) - -- 修复 2.1.4 升级到 2.1.5 CCR 报 NPE,导致 FE 不能启动的问题。[#39910](https://github.com/apache/doris/pull/39910) - -- 修复 Restore 之后视图和物化视图不能使用的问题。[#38072](https://github.com/apache/doris/pull/38072) [#39848](https://github.com/apache/doris/pull/39848) - -### 数据导入 - -**Routine Load** - -- 修复 Routine Load 一流多表可能得内存泄露的问题。 [#38824](https://github.com/apache/doris/pull/38824) - -- 修复 Routine Load 包围符和转义符不生效的问题。[#38825](https://github.com/apache/doris/pull/38825) - -- 修复 Routine Load 任务名包含大写字母时 `show routineload` 结果不正确的问题。[#38826](https://github.com/apache/doris/pull/38826) - -- 修复改变 Routine Load Topic 时没有重置 Offset Cache 的问题。[#38474](https://github.com/apache/doris/pull/38474) - -- 修复并发情况下 `show routineload` 可能触发异常的问题。[#39525](https://github.com/apache/doris/pull/39525) - -- 修复 Routine Load 可能重复导入数据的问题。[#39526](https://github.com/apache/doris/pull/39526) - -**Group Commit** - -- 修复 JDBC 方式下打开 Group Commit 时 setNull 导致的数据报错问题 [#38276](https://github.com/apache/doris/pull/38276) - -- 修复打开 `group commit insert` 发往非 Master FE 时可能导致 NPE 问题 [#38345](https://github.com/apache/doris/pull/38345) - -- 修复 Group Commit 内部写数据错误处理不正确的问题。[#38997](https://github.com/apache/doris/pull/38997) - -- 修复 Group Commit 执行规划失败时可能触发的 Coredump。[#39396](https://github.com/apache/doris/pull/39396) - -**其它** - -- 修复并发导入 Auto Partition 表可能报 Tablet 不存在的问题。[#38793](https://github.com/apache/doris/pull/38793) - -- 修复可能的 Load Stream 泄露问题。[#39039](https://github.com/apache/doris/pull/39039) - -- 修复 INSERT INTO SELECT 没有数据时开启事务的问题。[#39108](https://github.com/apache/doris/pull/39108) - -- 使用 Memtable 前移时忽略单副本导入的配置。[#39154](https://github.com/apache/doris/pull/39154) - -- 修复后台导入 `stream load record` 遇见 Database 删除时异常中止的问题。 [#39527](https://github.com/apache/doris/pull/39527) - -- 修复 Strict Mode 模式下,出现数据错误时错误信息提示不准确的问题。[#39587](https://github.com/apache/doris/pull/39587) - -- 修复 Stream Load 遇见错误数据不返回 Error URL 的问题。[#38417](https://github.com/apache/doris/pull/38417) - -- 修复 Insert Overwrite 和 Auto Partition 配合使用的问题。[#38442](https://github.com/apache/doris/pull/38442) - -- 修复 CSV 遇到行分隔符被包围符包围数据时解析错误的问题。[#38445](https://github.com/apache/doris/pull/38445) - -### 数据导出 - -- 修复导出操作中指定 `delete_existing_files` 属性后,可能会重复删除导出数据的问题。[#39304](https://github.com/apache/doris/pull/39304) - -### 权限管理 - -- 修复创建物化视图时,错误地要求拥有 ALTER TABLE 的权限的问题。[#38011](https://github.com/apache/doris/pull/38011) - -- 修复 `show routine load` 时,Database 显式为空的问题。[#38365](https://github.com/apache/doris/pull/38365) - -- 修复 `create table like` 错误的要求拥有对原表的创建权限的问题。[#37879](https://github.com/apache/doris/pull/37879) - -- 修复赋权操作没有检查对象是否存在的问题。[#39597](https://github.com/apache/doris/pull/39597) - -## 版本升级说明 - -Doris 升级请遵守不要跨两个二位版本升级的原则,依次往后升级。 - -比如从 0.15.x 升级到 2.0.x 版本,则建议先升级至 1.1 最新版本,然后升级到最新的 1.2 版本,最后升级到最新的 2.0 版本,以此类推。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.7.md deleted file mode 100644 index 464d751ac189d..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.7.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -{ - "title": "Release 2.1.7", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.7 版本已于 2024 年 11 月 10 日正式发布。2.1.7 版本持续升级改进,同时在湖仓一体、异步物化视图、半结构化数据管理、查询优化器、执行引擎、存储管理、以及权限管理等方面完成了若干修复。欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.7 版本已于 2024 年 11 月 10 日正式发布。**2.1.7 版本持续升级改进,同时在湖仓一体、异步物化视图、半结构化数据管理、查询优化器、执行引擎、存储管理、以及权限管理等方面完成了若干修复。欢迎大家下载使用。 - -- [立即下载](https://doris.apache.org/download) -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.7-rc03) - -## 行为变更 - -- 以下全局变量会被强制设置到下列默认值 - - enable_nereids_dml: true - - enable_nereids_dml_with_pipeline: true - - enable_nereids_planner: true - - enable_fallback_to_original_planner: true - - enable_pipeline_x_engine: true -- 审计日志增加了新的列 [#42262](https://github.com/apache/doris/pull/42262) - - 更多信息,请参考[管理指南](../../admin-manual/audit-plugin) - -## 新功能 - -### 异步物化视图 - -- 异步物化视图增加了一个属性 use_for_rewrite 用于控制是否参与透明改写 [#40332](https://github.com/apache/doris/pull/40332) - -### 查询执行引擎 - -- 在 Profile 中输出变更的 session variable 列表。[#41016 ](https://github.com/apache/doris/pull/41016) -- 增加了`trim_in`、`ltrim_in` 和 `rtrim_in` 函数的支持。[#42641](https://github.com/apache/doris/pull/42641) -- 增加了一些 URL 函数,包括对 `to``p_level_domain`、`first_significant_subdomain` 、`cut_to_first_significant_subdomain` 支持。[#42916](https://github.com/apache/doris/pull/42916) -- 增加了 `bit_set` 函数。[#42099](https://github.com/apache/doris/pull/42099) -- 增加了`count_substrings` 函数。[#42055](https://github.com/apache/doris/pull/42055) -- 增加 `translate` 和 `url_encode` 函数。[#41051](https://github.com/apache/doris/pull/41051) -- 增加 `normal_cdf`, `to_iso8601`, `from_iso8601_date` 函数。[ #40695](https://github.com/apache/doris/pull/40695) - - -### 存储管理 - -- 增加了 `information_schema.table_options` 和 `information_schema.``table_properties` 系统表,支持查询建表时设置的一些属性。[#34384](https://github.com/apache/doris/pull/34384) - - 更多信息,请参考系统表: - - [table_options](../../admin-manual/system-tables/information_schema/table_options) - - [table_properties](../../admin-manual/system-tables/information_schema/table_properties) -- 支持 `bitmap_empty` 作为默认值。[#40364](https://github.com/apache/doris/pull/40364) -- 增加了一个新的 Session 变量`require_sequence_in_insert` 来控制向 Unique Key 表进行`insert into select` 写入时,是否必须提供 Sequence 列。[#41655](https://github.com/apache/doris/pull/41655) - -### 其他 - -允许在 BE WebUI 页面生成火焰图。[#41044](https://github.com/apache/doris/pull/41044) - -## 改进提升 - -### 湖仓一体 - -- 支持写入数据到 Hive Text 格式表。[#40537](https://github.com/apache/doris/pull/40537) - - 更多信息,请参考[使用 Hive 构建数据湖](../../lakehouse/catalogs/hive-catalog)文档 -- 使用 MaxCompute Open Storage API 访问 MaxCompute 数据。[#41610](https://github.com/apache/doris/pull/41610) - - 更多信息,请参考 [MaxCompute](../../lakehouse/catalogs/maxcompute-catalog) 文档 -- 支持 Paimon DLF Catalog。[#41694](https://github.com/apache/doris/pull/41694) - - 更多信息,请参考 [Paimon Catalog](../../lakehouse/catalogs/paimon-catalog) 文档 -- 新增语法 `table$partitions` 语法支持直接查询 Hive 分区信息 [#41230](https://github.com/apache/doris/pull/41230) - - 更多信息,请参考[通过 Hive 分析数据湖](../../lakehouse/catalogs/hive-catalog)文档 -- 支持 brotli 压缩格式的 Parquet 文件读取。[#42162](https://github.com/apache/doris/pull/42162) -- 支持读取 Parquet 文件中的 DECIMAL 256 类型。[#42241](https://github.com/apache/doris/pull/42241) -- 支持读取 OpenCsvSerde 格式的 Hive 表。[#42939](https://github.com/apache/doris/pull/42939) - -### 异步物化视图 - -- 细化了异步物化视图中构建时锁持有的粒度。[#40402](https://github.com/apache/doris/pull/40402) [#41010](https://github.com/apache/doris/pull/41010) - -### 查询优化器 - -- 优化了极端情况下统计信息收集和使用的准确性,以提升规划稳定性。[#40457](https://github.com/apache/doris/pull/40457) -- 现在可以在更多情况下生成 Runtime Filter,以提升查询性能。 [#40815](https://github.com/apache/doris/pull/40815) -- 提升数值,日期和字符串函数的常量折叠能力,以提升查询性能。[#40820 ](https://github.com/apache/doris/pull/40820) -- 优化了列裁剪的算法,以提升查询性能。[#41548](https://github.com/apache/doris/pull/41548) - -### 查询执行引擎 - -- 支持并行的 Prepare 降低短查询的耗时。[#40270](https://github.com/apache/doris/pull/40270) -- 修正了 Profile 中一些 Counter 的名字,保持跟审计日志一致。[#41993](https://github.com/apache/doris/pull/41993) -- 增加了新的 Local Shuffle 规则,使得部分查询更快。[#40637](https://github.com/apache/doris/pull/40637) - -### 存储管理 - -- Show Partitions 命令支持显示 Commit Version。 [#28274](https://github.com/apache/doris/pull/28274) -- 建表时检查不合理的 Partition EXPR。[#40158](https://github.com/apache/doris/pull/40158) -- 优化 Routine Load EOF 时的调度逻辑。[#40509](https://github.com/apache/doris/pull/40509) -- Routine Load 感知 Schema 变化。[#40508](https://github.com/apache/doris/pull/40508) -- 优化 Routine Load Task 超时逻辑。[#41135](https://github.com/apache/doris/pull/41135) - -### 其他 - -- 支持通过 BE 配置关闭 BRPC 的内置服务端口。[#41047](https://github.com/apache/doris/pull/41047) -- 修复审计日志缺失字段以及重复记录的问题。[#41047](https://github.com/apache/doris/pull/43015) - -## Bug 修复 - -### 湖仓一体 - -- 修复了 INSERT OVERWRITE 的行为跟 Hive 不一致的问题。[#39840](https://github.com/apache/doris/pull/39840) -- 清理临时创建的文件夹,解决 HDFS 上空文件夹太多的问题。[#40424](https://github.com/apache/doris/pull/40424) -- 修复某些情况下,使用 JDBC Catalog 导致 FE 内存泄露的问题。[#40923](https://github.com/apache/doris/pull/40923) -- 修复某些情况下,使用 JDBC Catalog 导致 BE 内存泄露的问题。[#41266](https://github.com/apache/doris/pull/41266) -- 修复某些情况下,读取 Snappy 压缩格式错误的问题。[#40862](https://github.com/apache/doris/pull/40862) -- 修复某些情况下,FE 端 FileSystem 可能泄露的问题。[#41108](https://github.com/apache/doris/pull/41108) -- 修复某些情况下,通过 EXPLAIN VERBOSE 查看外表执行计划可能导致空指针的问题。[#41231](https://github.com/apache/doris/pull/41231) -- 修复无法读取 Paimon parquet 格式表的问题。[#41487](https://github.com/apache/doris/pull/41487) -- 修复 JDBC Oracle Catalog 兼容性改动引入的性能问题。[#41407](https://github.com/apache/doris/pull/41407) -- 禁止下推隐式转换后的谓词条件已解决 JDBC Catalog 某些情况下查询结果不正确的问题。[#42242](https://github.com/apache/doris/pull/42242) -- 修复 External Catalog 中表名大小写访问异常的一些问题。[#42261](https://github.com/apache/doris/pull/42261) - -### 异步物化视图 - -- 修复用户指定的 Start Time 不生效的问题。[#39573](https://github.com/apache/doris/pull/39573) -- 修复嵌套物化视图不刷新的问题。[#40433](https://github.com/apache/doris/pull/40433) -- 修复删除重建基表后,物化视图可能不刷新的问题。[#41762](https://github.com/apache/doris/pull/41762) -- 修复分区补偿改写可能导致结果错误的问题。[#40803](https://github.com/apache/doris/pull/40803) -- 当 `sql_select_limit` 设置时,改写结果可能错误的问题。[#40106](https://github.com/apache/doris/pull/40106) - -### 半结构化管理 - -- 修复了索引文件句柄泄露的问题。[#41915](https://github.com/apache/doris/pull/41915) -- 修复了特殊情况下倒排索引 `count()` 不准确的问题。[#41127](https://github.com/apache/doris/pull/41127) -- 修复了未开启 Light Schema Change 时 Variant 异常的问题。[#40908](https://github.com/apache/doris/pull/40908) -- 修复了 Variant 返回数组时内存泄漏的问题。[#41339](https://github.com/apache/doris/pull/41339) - -### 查询优化器 - -- 修正了外表查询时,可能存在过滤条件 nullable 计算错误,导致执行异常的问题。[#41014](https://github.com/apache/doris/pull/41014) -- 修复范围比较表达式优化可能发生错误的问题。[#41356](https://github.com/apache/doris/pull/41356) - -### 查询执行引擎 - -- `match_regexp` 函数不能正确处理空字符串的问题。[#39503](https://github.com/apache/doris/pull/39503) -- 解决在高并发场景下,Scanner 线程池卡死的问题。[#40495](https://github.com/apache/doris/pull/40495) -- 修复了 `data_floor` 函数结果错误的问题。[#41948](https://github.com/apache/doris/pull/41948) -- 修复了部分场景下,Cancel 消息不正确的问题。[#41798](https://github.com/apache/doris/pull/41798) -- 修复 Arrow Flight 打印太多的 Warn 日志的问题。[#41770] (https://github.com/apache/doris/pull/41770) -- 解决部分场景下 Runtime Filter 发送失败的问题。[#41698](https://github.com/apache/doris/pull/41698) -- 修复了一些系统表查询的时候不能正常结束或者卡住的问题。[#41592](https://github.com/apache/doris/pull/41592) -- 修复了窗口函数结果不正确的问题。[#40761](https://github.com/apache/doris/pull/40761) -- 修复 ENCRYPT 和 DECRYPT 函数导致 BE Core 的问题。[#40726](https://github.com/apache/doris/pull/40726) -- 修复 CONV 函数结果错误的问题。[#40530](https://github.com/apache/doris/pull/40530) - -### 存储管理 - -- Memtable 前移在多副本情况下,有机器宕机时导入失败的问题。[#38003](https://github.com/apache/doris/pull/38003) -- 导入过程中,Memtable 在 Flush 阶段时,统计的内存不准确。[#39536](https://github.com/apache/doris/pull/39536) -- 修复 Memtable 前移多副本容错的问题。[#40477](https://github.com/apache/doris/pull/40477) -- 修复 Memtable 前移 bvar 统计不准的问题。[#40985](https://github.com/apache/doris/pull/40985) -- 修复 s3 Load 进度汇报不准的问题。[#40987](https://github.com/apache/doris/pull/40987) - -### 权限管理 - -- 修复了 SHOW COLUMNS, SHOW SYNC, SHOW DATA FROM DB.TABLE 相关的权限问题。 [#39726](https://github.com/apache/doris/pull/39726) - -### Others - -- 修复 2.0 版本的审计日志插件在 2.1 版本无法使用的问题[#41400](https://github.com/apache/doris/pull/41400) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.8.md deleted file mode 100644 index 353d3a0b267e6..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.8.md +++ /dev/null @@ -1,180 +0,0 @@ ---- -{ - "title": "Release 2.1.8", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.8 版本已于 2025 年 01 月 24 日正式发布。 该版本持续在湖仓一体、异步物化视图、查询优化器与执行引擎、存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.8 版本已于 2025 年 01 月 24 日正式发布。** 该版本持续在湖仓一体、异步物化视图、查询优化器与执行引擎、存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。 - -- [立即下载](https://doris.apache.org/download) - -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.8-rc01) - - -## 行为变更 - -- 添加环境变量 `SKIP_CHECK_ULIMIT` 以跳过 BE 进程内关于 ulimit 值校验检查,仅适用于 Docker 快速启动场景中应用。[#45267](https://github.com/apache/doris/pull/45267) -- 添加 `enable_cooldown_replica_affinity session` 变量控制冷热分层下查询选用副本亲和性 -- FE 添加配置` restore_job_compressed_serialization` 和 `backup_job_compressed_serialization` 用于解决 db tablet 数量非常大情况下备份和恢复操作时 FE OOM 的问题,默认关闭,打开之后无法降级 - -## 新功能 - -- **查询执行引擎:**Arrowflight 协议支持通过负载均衡设备访问 BE。 [#43281](https://github.com/apache/doris/pull/43281) -- **其他:**当前 Lambda 表达式支持捕获外部的列。 [#45186](https://github.com/apache/doris/pull/45186) - -## 改进提升 - -### 湖仓一体 - -- Hudi 版本更新至 0.15,并且优化了 Hudi 表的查询规划性能。 -- 优化了 MaxCompute 分区表的读取性能。 [#45148](https://github.com/apache/doris/pull/45148) -- 支持会话变量 enable_text_validate_utf8,可以忽略 CSV 格式中的 UTF8 编码检测。[#45537](https://github.com/apache/doris/pull/45537) -- 优化在高过滤率情况下,Parquet 文件延迟物化的性能。[#46183](https://github.com/apache/doris/pull/46183) - -### 异步物化视图 - -- 现在支持手动刷新异步物化视图中不存在的分区。[#45290](https://github.com/apache/doris/pull/45290) -- 优化了透明改写规划的性能。[#44786](https://github.com/apache/doris/pull/44786) - -### 查询优化器 - -- 提升了 Runtime Filter 的自适应能力。[#42640](https://github.com/apache/doris/pull/42640) -- 增加了在 MAX / MIN 聚合函数列上的过滤条件生成原始列过滤条件的能力。[#39252](https://github.com/apache/doris/pull/39252) -- 增加了在连接谓词上抽取单测过滤条件的能力。[#38479](https://github.com/apache/doris/pull/38479) -- 优化了谓词推导在集合算子上的能力,可以更好的生成过滤谓词。[#39450](https://github.com/apache/doris/pull/39450) -- 优化了统计信息收集和使用的异常处理能力,避免在收集异常时产生非预期的执行计划。[#43009](https://github.com/apache/doris/pull/43009) [#43776](https://github.com/apache/doris/pull/43776) [#43865](https://github.com/apache/doris/pull/43865) [#42104](https://github.com/apache/doris/pull/42104) [#42399](https://github.com/apache/doris/pull/42399) [#41729](https://github.com/apache/doris/pull/41729) - -### 查询执行引擎 - -- Resource group 支持在当前 group 不可用的时候,降级到别的 Group. [#44255](https://github.com/apache/doris/pull/44255) -- 优化带 limit 的查询执行使其能够更快的结束,避免多余的数据扫描。[#45222](https://github.com/apache/doris/pull/45222) - -### 存储管理 - -- CCR 支持了更加全面的操作,比如 Rename Table,Rename Column,Modify Comment,Drop View,Drop Rollup 等。 -- 提升了 Broker Load 导入进度的准确性和多个压缩文件导入时的性能。 -- 改进了 Routine Load 超时策略、线程池使用以防止 Routine Load 超时失败和影响查询。 - -### 其他 - -- Docker 快速启动镜像支持不设置环境参数直接启动,添加环境变量 `SKIP_CHECK_ULIMIT` 以跳过 `start_be.sh` 脚本以及 BE 进程内关于 `swap`、`max_map_count`、`ulimit` 相关校验检查,仅适用于 Docker 快速启动场景中应用。[#45269](https://github.com/apache/doris/pull/45269) -- 新增 LDAP 配置型 `ldap_group_filter` 用于自定义 Group 过滤。[#43292](https://github.com/apache/doris/pull/43292) -- 优化了使用 Ranger 时的性能。[#41207](https://github.com/apache/doris/pull/41207) -- 修复审计日志中,`scan bytes` 统计不准的问题。[#45167](https://github.com/apache/doris/pull/45167) -- 在 COLUMNS 系统表中能够正确显示列的默认值。[#44849](https://github.com/apache/doris/pull/44849) -- 在 VIEWS 系统表中能够正确显示视图的定义。[#45857](https://github.com/apache/doris/pull/45857) -- 当前,admin 用户不能被删除。[#44751](https://github.com/apache/doris/pull/44751) - -## Bug 修复 - -### 湖仓一体 - -- Hive - - - 修复无法查询 Spark 创建的 Hive 视图的问题。[#43553](https://github.com/apache/doris/pull/43553) - - - 修复无法正确读取某些 Hive Transaction 表的问题。[#45753](https://github.com/apache/doris/pull/45753) - - - 修复 Hive 表分区存在特殊字符时,无法进行正确分区裁剪的问题。[#42906](https://github.com/apache/doris/pull/42906) - -- Iceberg - - - 修复在 Kerberos 认证环境下,无法创建 Iceberg 表的问题。[#43445](https://github.com/apache/doris/pull/43445) - - - 修复某些情况下,Iceberg 表存在 dangling delete 情况下,`count(*)` 查询不准确的问题。[#44039](https://github.com/apache/doris/pull/44039) - - - 修复某些情况下,Iceberg 表列名不匹配导致查询错误的问题[#44470](https://github.com/apache/doris/pull/44470) - - - 修复某些情况下,当 Iceberg 表分区被修改后,无法读取的问题[#45367](https://github.com/apache/doris/pull/45367) - -- Paimon - - - 修复 Paimon Catalog 无法访问阿里云 OSS-HDFS 的问题。[#42585](https://github.com/apache/doris/pull/42585) - -- Hudi - - - 修复某些情况下,Hudi 表分区裁剪失效的问题。[#44669](https://github.com/apache/doris/pull/44669) - -- JDBC - - - 修复某些情况下,开始表名大小写不敏感功能后,使用 JDBC Catalog 无法获取表的问题。 - -- MaxCompute - - - 修复某些情况下,MaxCompute 表分区裁剪失效的问题。[#44508](https://github.com/apache/doris/pull/44508) - -- 其他 - - - 修复某些情况下,Export 任务导致 FE 内存泄露的问题。[#44019](https://github.com/apache/doris/pull/44019) - - - 修复某些情况下,无法使用 HTTPS 协议访问 S3 对象存储的问题。[#44242](https://github.com/apache/doris/pull/44242) - - - 修复某些情况下,Kerberos 认证票据无法自动刷新的问题。[#44916](https://github.com/apache/doris/pull/44916) - - - 修复某些情况下,读取 Hadoop Block 压缩格式文件出错的问题。[#45289](https://github.com/apache/doris/pull/45289) - - - 查询 ORC 格式的数据时,不再下推 CHAR 类型的谓词,以避免可能的结果错误。[#45484](https://github.com/apache/doris/pull/45484) - -### 异步物化视图 - -- 修复了当物化视图定义中存在 CTE 时,无法刷新的问题。[#44857](https://github.com/apache/doris/pull/44857) -- 修复了当基表增加列后,异步物化视图不能命中透明改写的问题。[#44867](https://github.com/apache/doris/pull/44867) -- 修复了当查询中在不同位置包含相同的过滤谓词时,透明改写失败的问题。[#44575](https://github.com/apache/doris/pull/44575) -- 修复了当过滤谓词或连接谓词中使用列的别名时,无法透明改写的问题。[#44779](https://github.com/apache/doris/pull/44779) - -### 索引 - -- 修复倒排索引 Compaction 异常处理的问题 [#45773](https://github.com/apache/doris/pull/45773) -- 修复倒排索引构建因为等锁超时失败的问题 [#43589](https://github.com/apache/doris/pull/43589) -- 修复异常情况下倒排索引写入 Crash 的问题。[#46075](https://github.com/apache/doris/pull/46075) -- 修复 Match 函数特殊参数时空指针的问题 [#45774](https://github.com/apache/doris/pull/45774) -- 修复 VARIANT 倒排索引相关的问题,禁用 VARIANT 使用索引 v1 格式。[#43971](https://github.com/apache/doris/pull/43971) [#45179](https://github.com/apache/doris/pull/45179/) - -- 修复 NGram Bloomfilter Index 设置 `gram_size = 65535` 时 Crash 的问题。[#43654](https://github.com/apache/doris/pull/43654) -- 修复 Bloomfilter Index 计算 DATE 和 DATETIME 不对的问题。[#43622](https://github.com/apache/doris/pull/43622) -- 修复 Drop Coloumn 没有自动 Drop Bloomfilter Index 的问题。[#44478](https://github.com/apache/doris/pull/44478) -- 减少 Bloomfilter Index 写入时的内存占用。[#46047](https://github.com/apache/doris/pull/46047) - -### 半结构化数据类型 - -- 优化内存占用,降低 VARIANT 数据类型的内存消耗。[#43349](https://github.com/apache/doris/pull/43349) [#44585](https://github.com/apache/doris/pull/44585) [#45734](https://github.com/apache/doris/pull/45734) -- 优化 VARIANT Schema Copy 性能。[#45731](https://github.com/apache/doris/pull/45731) -- 自动推断 Tablet Key 时不将 VARIANT 作为 Key。[#44736](https://github.com/apache/doris/pull/44736) -- 修复 VARIANT 从 NOT NULL 改成 NULL 的问题。[#45734](https://github.com/apache/doris/pull/45734) -- 修复 Lambda 函数类型推断错误的问题。[#45798](https://github.com/apache/doris/pull/45798) -- 修复 `ipv6_cidr_to_range` 函数边界条件 Coredump。[#46252](https://github.com/apache/doris/pull/46252) - -### 查询优化器 - -- 修复了潜在的表读锁互斥导致的死锁问题,并优化了锁的使用逻辑[#45045](https://github.com/apache/doris/pull/45045) [#43376](https://github.com/apache/doris/pull/43376) [#44164](https://github.com/apache/doris/pull/44164) [#44967](https://github.com/apache/doris/pull/44967) [#45995](https://github.com/apache/doris/pull/45995) -- 修复了 SQL Cache 功能错误的使用常量折叠导致在使用包含时间格式的函数时结果不正确的问题。[#44631](https://github.com/apache/doris/pull/44631) -- 修复了比较表达式优化,在边缘情况下可能优化错误,导致结果不正确的问题。[#44054](https://github.com/apache/doris/pull/44054) [#44725](https://github.com/apache/doris/pull/44725) [#44922](https://github.com/apache/doris/pull/44922) [#45735](https://github.com/apache/doris/pull/45735) [#45868](https://github.com/apache/doris/pull/45868) -- 修复高并发点查审计日志不正确的问题。[ #43345 ](https://github.com/apache/doris/pull/43345)[#44588](https://github.com/apache/doris/pull/44588) -- 修复高并发点查遇到异常后持续报错的问题。[#44582](https://github.com/apache/doris/pull/44582) -- 修复部分字段 Prepared Statement 不正确的问题。[#45732 ](https://github.com/apache/doris/pull/45732) - -### 查询执行引擎 - -- 修复了正则表达式和 LIKE 函数在特殊字符时结果不对的问题。[#44547](https://github.com/apache/doris/pull/44547) -- 修复 SQL Cache 在切换 DB 的时候结果可能不对的问题。[#44782](https://github.com/apache/doris/pull/44782) -- 修复`cut_ipv6` 函数结果不对的问题。[#43921](https://github.com/apache/doris/pull/43921) -- 修复数值类型到 bool 类型 cast 的问题。[#46275](https://github.com/apache/doris/pull/46275) -- 修复了一系列 Arrow Flight 相关的问题。[#45661](https://github.com/apache/doris/pull/45661) [#45023](https://github.com/apache/doris/pull/45023) [#43960](https://github.com/apache/doris/pull/43960) [#43929](https://github.com/apache/doris/pull/43929) -- 修复了当 hashjoin 的 hash 表超过 4G 时,部分情况结果错误的问题。[#46461](https://github.com/apache/doris/pull/46461/files) -- 修复了 convert_to 函数在中文字符时溢出的问题。[#46505](https://github.com/apache/doris/pull/46405) - -### 存储管理 - -- 修复高并发 DDL 可能导致 FE 启动失败的问题。 -- 修复自增列可能出现重复值的问题。 -- 修复扩容时 Routine Load 不能使用新扩容 BE 的问题。 - -### 权限管理 - -- 修复使用 Ranger 作为鉴权插件时,频繁访问 Ranger 服务的问题[#45645](https://github.com/apache/doris/pull/45645) - -### Others - -- 修复 BE 端开启 `enable_jvm_monitor=true` 后可能导致的内存泄露问题。[#44311](https://github.com/apache/doris/pull/44311) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.9.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.9.md deleted file mode 100644 index 3b41d22567c9f..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v2.1/release-2.1.9.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -{ - "title": "Release 2.1.9", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 2.1.9 版本已于 2025 年 04 月 02 日正式发布。 该版本持续在倒排索引、查询优化器与存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 2.1.9 版本已于 2025 年 04 月 02 日正式发布。** 该版本持续在倒排索引、查询优化器与存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。 - -- [立即下载](https://doris.apache.org/download) - -- [GitHub 下载](https://github.com/apache/doris/releases/tag/2.1.9-rc02) - - -## 行为变更 - -- Audit Log 中的 SQLHash 现在通过当前执行的 SQL 精确计算,解决了同一请求中所有 SQL 使用相同 SQLHash 的问题。[#48242](https://github.com/apache/doris/pull/48242) -- 查询返回的 ColumnLabelName 与 SQL 中的输入完全一致。[#47093 ](https://github.com/apache/doris/pull/47093) -- 所有在用户属性中设置的变量,优先级均高于 session 级别设置的变量。 [#47185](https://github.com/apache/doris/pull/47185) - -## 新功能 - -### 存储管理 - -- 禁止 rename 分区列。[#47596](https://github.com/apache/doris/pull/47596) - -### 其他 - -- FE 监控指标新增 Catalog、Database、Table 数量指标。[#47891](https://github.com/apache/doris/pull/47891) - -## 改进提升 - -### 倒排索引 - -- VARIANT 类型中的 ARRAY 支持倒排索引。[#47688 ](https://github.com/apache/doris/pull/47688) -- Profile 中展示每个过滤条件的倒排索引性能指标。[#47504](https://github.com/apache/doris/pull/47504) - -### 查询优化器 - -- 支持在聚合查询中使用 `SELECT`` *`,如果下层 relation 仅输出聚合 key 列。[#48006](https://github.com/apache/doris/pull/48006) - -### 存储管理 - -- CCR 优化回收 binlog 效率、小文件传输效率,并增强了混沌环境下的健壮性。[#47547](https://github.com/apache/doris/pull/47547) [#47313 ](https://github.com/apache/doris/pull/47313)[#45061](https://github.com/apache/doris/pull/45061) -- 改进了导入的错误提示,使错误提示更加具体。[#47918](https://github.com/apache/doris/pull/47918) [#47470](https://github.com/apache/doris/pull/47470) - -## Bug 修复 - -### 湖仓一体 - -- 修复 BE 端无法正确配置 krb5.conf 路径的问题。[#47679](https://github.com/apache/doris/pull/47679) -- 禁止 `SELECT ``OUTFILE` 语句重试以避免重复导出数据。[#48095](https://github.com/apache/doris/pull/48095) -- 修复无法通过 JAVA API 访问 Paimon 表的问题。[#47192](https://github.com/apache/doris/pull/47192) -- 修复无法写入存储位置为 `s3a://` 的 Hive 表的问题。[#47162](https://github.com/apache/doris/pull/47162) -- 修复 Catalog 的 Comment 字段没有被持久化的问题。[#46946](https://github.com/apache/doris/pull/46946) -- 修复某些情况下,JDBC BE 端类加载泄漏的问题。[#46912](https://github.com/apache/doris/pull/46912) -- 修复 JDBC Catalog 无法使用高版本 ClickHouse JDBC Driver 的问题。 [#46026](https://github.com/apache/doris/pull/46026) -- 修复某些情况下,读取 Iceberg Position Delete 导致 BE 宕机的问题。[#47977](https://github.com/apache/doris/pull/47977) -- 修复多分区列情况下读取 MaxCompute 表数据错误的问题。[#48325](https://github.com/apache/doris/pull/48325) -- 修复某些情况下读取 Parquet 复杂列类型错误的问题。[#47734](https://github.com/apache/doris/pull/47734) - -### 倒排索引 - -- 修复 ARRAY 类型倒排索引空值处理错误的问题。[#48231](https://github.com/apache/doris/pull/48231) -- 修复对刚刚添加的列执行 `BUILD INDEX` 异常的问题。[#48389](https://github.com/apache/doris/pull/48389) -- 修复特殊字符 UTF8 编码索引被截断导致结果错误的问题。[#48657](https://github.com/apache/doris/pull/48657) - -### 半结构化数据类型 - -- 修复 `array_agg` 函数在特殊情况下 crash 的问题。[#46927](https://github.com/apache/doris/pull/46927) -- 修复 Stream Load 导入 JSON 类型时,chunk 参数设置错误导致 crash 的问题。 [#48196](https://github.com/apache/doris/pull/48196) - -### 查询优化器 - -- 修复时间函数内嵌套 `current_date` 等关键字函数无法的进行常量折叠的问题。[#47288](https://github.com/apache/doris/pull/47288) -- 修复非确定性函数相关的结果错误问题。[#48321](https://github.com/apache/doris/pull/48321) -- 修复当原表有 on update 列属性时,CREATE TABLE LIKE 无法执行的问题。[#48007](https://github.com/apache/doris/pull/48007) -- 修复直查聚合模型表的物化视图可能产生非预期规划报错的问题。[#47658](https://github.com/apache/doris/pull/47658) -- 修复 PrepareStatement 因为内部 ID 溢出导致异常的问题。[#47950](https://github.com/apache/doris/pull/47950) - -### 查询执行引擎 - -- 修复了查询系统表时,可能的查询卡住或者空指针的问题。[#48370](https://github.com/apache/doris/pull/48370) -- LEAD/LAG 函数支持了 DOUBLE 类型。[#47940](https://github.com/apache/doris/pull/47940) -- 修复了 `case when` 条件超过 256 个时,查询报错的问题。[#47179](https://github.com/apache/doris/pull/47179) -- 修复了 `str_to_date` 函数在空格的时候,结果错误的问题。[#48920](https://github.com/apache/doris/pull/48920) -- 修复了`split_part` 函数在常量折叠时遇到 || ,结果错误的问题。[#48910](https://github.com/apache/doris/pull/48910) -- 修复了 `log` 函数结果错误的问题。[#47228](https://github.com/apache/doris/pull/47228) -- 修复了 `array` / `map` 函数在 lambda 表达式中使用时导致的 core 的问题。[#49140](https://github.com/apache/doris/pull/49140) - -### 存储管理 - -- 修复了导入聚合表时,可能的内存写脏问题。[#47523](https://github.com/apache/doris/pull/47523) -- 修复内存紧张时 MoW 导入偶发 coredump 问题。[#47715](https://github.com/apache/doris/pull/47715) -- 修复 MoW 在 BE 重启和 Schema Change 时可能出现重复 key 的问题。[#48056](https://github.com/apache/doris/pull/48056) [#48775](https://github.com/apache/doris/pull/48775) -- 修复 Group Commit 和全局打开列更新以及 memtable 前移时的问题。[#48120](https://github.com/apache/doris/pull/48120) [#47968](https://github.com/apache/doris/pull/47968) - -### 权限管理 - -- 使用 LDAP 时不再会抛出 PartialResultException 异常。[#47858](https://github.com/apache/doris/pull/47858) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.0.md deleted file mode 100644 index 2794f2ac5c2d7..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.0.md +++ /dev/null @@ -1,434 +0,0 @@ ---- -{ - "title": "Release 3.0.0", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,在近期我们迎来了 Apache Doris 3.0 版本的正式发布,欢迎大家下载使用体验!" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,在近期我们迎来了 Apache Doris 3.0 版本的正式发布,欢迎大家下载使用体验! - -**从 3.0 系列版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。基于云原生存算分离的架构,用户可以通过多计算集群实现查询负载间的物理隔离以及读写负载隔离,并借助对象存储或 HDFS 等低成本的共享存储系统来大幅降低存储成本。** - -3.0 版本是 Apache Doris 在湖仓一体演化路线上的重要里程碑版本。在 3.0 版本中 Apache Doris 增加了数据湖写回功能,用户可以在 Apache Doris 中完成多个数据源之间的数据分析、共享、处理、存储操作。结合异步物化视图等能力,Apache Doris 可以作为企业统一的湖仓数据处理引擎,帮助用户更好的管理湖、仓、数据库中的数据。与此同时,3.0 版本引入了 [Trino Connector](https://www.selectdb.com/blog/911) 类型,用户可以快速使用 Trino Connector 来连接或适配更多数据源、并可以利用 Apache Doris 的高性能计算引擎提供比 Trino 更快的数据查询能力。 - -3.0 版本同样对 ETL 批处理场景进行了增强,对`insert into select`、`delete` 和 `update` 操作提供了显式事务支持;对查询执行过程中的可观测性进行了增强。 - -在性能方面,3.0 版本的查询优化器在框架能力、基础设施以及规则扩充等方面做了重要增强,针对更复杂更多样的业务场景提供更极致的优化能力,盲测性能更高。实现了自适应的 Runtime Filter 计算方式,能够在运行时根据数据大小准确估算 Runtime Filter,在大数据量和高压力场景下有更好的性能表现。对异步物化视图的构建能力、透明改写能力以及性能均进行了增强,使得物化视图在查询加速、数据建模等场景具有更好的稳定性和易用性。 - -**在 3.0 版本的研发过程中,有超过 170 名贡献者为 Apache Doris 提交了近 5000 个优化与修复。** 来自飞轮科技、百度、美团、字节跳动、腾讯、阿里、快手、华为、天翼云等企业的贡献者与社区深度共建,贡献了大量来自真实业务场景下测试 Case 来帮助我们持续打磨、共同改进,在此向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - -## 1. 存算分离全新架构 - -从 Apache Doris 3.0 版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。 - -全新存算分离模式对计算与存储进行了解耦,计算节点不再存储主数据,而是引入共享存储层(HDFS 与对象存储)作为统一的数据主存储空间,计算资源和存储资源可以独立扩缩容,为用户带来了多方面价值: - -- **负载隔离**:多个计算集群共享同一份数据,用户可以使用多计算集群对不同业务或者在离线的负载进行隔离; - -- **存储成本大幅降低**:全量数据存储到成本更低且极其可靠的共享存储中,热数据仅在本地 Cache,相比存算一体三副本,存储成本最高下降至原先的 1/10; - -- **计算资源弹性**:数据不保存在计算节点,计算资源可以按照负载需求实现灵活弹性扩缩容,比如单个计算集群的扩缩容或者加减计算集群,弹性带来了资源配置的灵活性以及成本的降低; - -- **系统鲁棒性的提升**:数据存储到共享存储,Doris 不再有多副本一致性的逻辑,会大幅度简化分布式存储带来的复杂度,从而会提升系统的鲁棒性。 - -- **数据共享和克隆的灵活性**:存算分离架构的灵活性不止在一个 Doris 集群内部,在跨 Doris 集群时也应该体现出灵活性,比如 Doris 集群 A 中的库表可以轻量地在 Doris 集群 B 中完成克隆,即只做元数据级别的复制,不做数据的复制。 - -### 1-1. 从存算一体到存算分离 - -在存算一体模式中,Apache Doris 整体由 Frontend(FE)和 Backend(BE)两类进程组成,其中 FE 节点主要负责用户请求接入、查询解析规划、元数据管理和集群管理等相关工作,BE 节点主要负责数据存储和查询计划的执行,多 BE 节点间采取 MPP 分布式计算架构,通过多副本一致性协议来帮助服务的高可用和数据的高可靠。 - -![从存算一体到存算分离](/images/storage-compute-decoupled.PNG) - -新兴云计算基础设施的成熟,无论是公有云、私有云以及基于 K8s 的容器平台,云计算基础设施的革新催生了新的需求,越来越多用户期待 Apache Doris 针对云计算基础设施提供更加深度的适配,以便提供更加灵活强大的弹性能力,因此**飞轮科技团队早在 2022 年基于 Apache Doris 设计并实现了云原生存算分离版本(SelectDB Cloud),在经过数百家企业近两年的大规模生产打磨后,将其贡献回 Apache Doris 社区,即当前 3.0 版本的存算分离模式。** - -在存算分离模式下,Apache Doris 整体架构演化成**元数据层、计算层和共享存储层**三层: - -- **元数据层**:新引入 Meta Service 模块来提供系统的元数据服务,例如库表、Schema、Rowset Meta、事务等信息,是一个可以横向扩展的无状态服务。目前 BE 的 Meta 已经全部进入了 Meta Service,FE 的部分 Meta 已进入 Meta Service,其它 Meta 在后续版本中也会全部进入 Meta Service。 - -- **计算层**:负责执行查询规划,计算节点即无状态的 BE 节点,会缓存一部分 Tablet 元数据和数据到本地以提高查询性能。通过多个无状态的 BE 节点可以组成计算资源集合(即多计算集群),多个计算集群共享一份数据和元数据服务,计算集群支持随时弹性加减节点。 - -- **共享存储层**:数据持久化到共享存储层,目前支持 HDFS 以及 S3、OSS、GCS、Azure Blob、COS、BOS、MinIO 等各类云上兼容 S3 协议的对象存储系统。 - - -### 1-2 设计亮点 - -全新存算分离架构最大的设计亮点在于将 FE 全内存的元数据模式演变成共享的元数据服务,这一方案的优势在于,元数据服务提供了全局一致的状态视图,任何节点可以直接提交写入,不再需要经过 FE 做 Publish。写入时数据进入共享存储,元数据进入元数据服务,**可以有效控制共享存储上的小文件数量,同时单表的实时写入性能和存算一体相差无几,整个系统的写入能力不再受限于单 FE 的处理能力。** - -![Apache Doris 存算分离设计亮点](/images/storage-compute-decoupled-highlight-3.PNG) - -基于全局一致的状态视图,在数据 GC 时,我们采用了设计上容易证明正确性和效率更高的正向数据删除。具体而言,将共享存储中的数据纳入到在共享元数据服务提供的全局一致视图中,数据生成时绑定一个事务,元数据删除时也绑定一个事务,以此可以实现删除和写入不能一起成功,视图中记录了哪些数据需要删除,异步删除过程只需要根据事务记录正向删除数据即可,不需要反向 GC。 - -未来随着 FE 中 Tablet 相关的 Meta 进入共享服务,Doris 集群规模也不再受限于单 FE 内存。基于共享的元数据服务和正向的数据删除技术,在此基础上可以便捷地扩展数据共享、轻量克隆等功能。 - -### 1-3 业界同类方案对比 - -业界还有另一种存算分离架构的设计方案,将数据和 BE 节点的 Meta 存放在共享对象存储或者 HDFS 中,该方案会有如下的问题: - -- **无法承载实时写**:在写入数据时,数据会根据分区分桶规则映射到 Tablet 中并生成 Segment 文件以及 Rowset Meta。在写入阶段会通过 FE 进行两阶段提交(即 Publish),在 BE 节点接到 Publish 请求后再将 Rowset 设置为可见,Publish 是不允许失败的。如果将 Rowset Meta 保存在共享存储中,实时写入过程中的小文件数据是数据文件的三倍,一次写入数据结束后生成 Rowset Meta、一次 Publish 时更改 Rowset Meta 状态。Publish 是由 FE 节点单点驱动的,不论单个表或整个系统的写入能力都受限于 FE 节点。 - - ![Doris 与业界同类方案对比](/images/storage-compute-decoupled-comparison-4.png) - - 在 Apache Doris 3.0 版本正式发版后,我们对该方案实时数据写入性能与 Apache Doris 进行了对比。在此我们在相同计算资源下分别模拟 500 并发任务写入 10000 个 500 行的数据文件和 50 并发任务写入 250 个 20000 行的数据文件,可以看到在 50 并发下 **Apache Doris 存算分离和存算一体模式的微批写入性能基本相当,而该方案写入性能与 Apache Doris 差距达到 100 倍**。在 500 并发下,Apache Doris 存算分离模式性能稍有损耗,但对比该方案仍**有超过 11 倍的巨大优势**。为了保证测试公平性,Apache Doris 并未开启 Group Commit 服务端攒批的能力(该方案不具备此能力),而在开启 Group Commit 后实时写入能力还将进一步增强。 - - ![Doris 与业界同类方案对比](/images/storage-compute-decoupled-comparison-5.png) - - 此外该方案在实时写入方面还存在稳定性和成本问题: - - - 稳定性隐患:小文件数目多会给共享存储特别是 HDFS 带来更大的压力和不稳定隐患。 - - - 对象存储请求费用高:部分公有云对象存储的 Put 和 Delete 收费是 Get 的 10 倍,小文件数目多会导致对象存储请求费用大幅上升,甚至超过存储费用。 - -- **扩展性受限**:FE 的 Meta 是全内存的,存算分离模式下往往会面对更大规模的数据存储,因此当 Tablet 数量超大时(例如超过千万级别),FE 内存的压力较大;整个系统的写入能力受到 FE 单点瓶颈的限制。 - -- **数据删除逻辑隐患**:存算分离架构下数据只有一份,因此数据删除逻辑对于系统的可靠性至关重要。常规的跨系统数据删除做法是对比计算出差集,对于写入过程中的数据依赖超时时间,没办法从机制上 100% 避免删除和写入一起成功,删除和写入一起成功就会丢数据。另外在存储系统有异常时,用于计算差集的输入可能错误,这就可能导致误删除数据。 - -- **数据共享与轻量级克隆**:存算分离架构未来可以借助于架构的灵活性实现数据共享和轻量级数据克隆,降低企业数据管理的负担。如若每个集群是单独的 FE,跨集群克隆数据之后,很难计算出哪些数据没有被引用可以被删除,跨多个集群计算很容易误删数据。 - -与之相比,Doris 3.0 版本将 FE 全内存的元数据模式演变成共享的元数据服务有效地克服了以上问题。 - -### 1-4 查询性能对比 - -由于存算分离模式下数据需要从远端共享存储系统中读取,因此数据传输的主要瓶颈,从存算一体模式下的磁盘 IO 转变为存算分离模式下的网络带宽,在一定程度上会造成性能损耗。 - -为了加速数据访问,Apache Doris 实现了基于本地磁盘的高速缓存机制,并提供 LRU 和 TTL 两种高效的缓存管理策略,并对索引相关的数据进行了优化,旨在最大程度上缓存用户常用数据、提升查询性能。新导入的数据将异步写入缓存中,以加速最新数据的首次访问。如果查询所需数据不在缓存中,系统将从远端存储中读取该数据进内存并同步写入缓存中,以便于后续查询。在涉及多计算集群的应用场景中,Apache Doris 提供缓存预热功能,当新计算集群建立时,用户可以选择对特定的数据(如表或分区)进行预热,以进一步提高查询效率。 - -在此我们分别对存算一体模式和存算分离模式进行了不同缓存下的性能测试,以 TPC-DS 1TB 测试集为例,主要结果如下: - -- 完全命中缓存时(即查询的所有数据均被加载进缓存中)**存算分离模式与存算一体模式查询性能完全持平**; - -- 部分命中缓存时(即测试开始前清空所有缓存,初始状态下缓存中无任何数据,在测试过程中数据被逐渐加载进缓存中,性能随之持续提升)存算分离模式与存算一体模式查询性能基本相当,总体性能损耗约 10% ,这一测试场景也与用户实际应用中最为类似。 - -- 完全未命中任何缓存时(每次执行 SQL 前均清理所有缓存,模拟极端情况)性能损耗约 35%。即使在冷数据读取时存在一定性能损耗,但**相较于业内其他同类系统,存算分离模式下的 Apache Doris 仍有着极为明显的性能优势。** - -![Doris 查询性能对比](/images/storage-compute-decoupled-query-performance-6.png) - -### 1-5 写入性能对比 - -在写入性能方面,我们在相同计算资源下分别模拟了批量导入和高并发实时导入两大场景,存算一体模式和存算分离模式的写入性能对比结论如下: - -- 在批量数据导入场景,导入 TPC-H 1TB 和 TPC-DS 1TB 测试数据集,在存算一体模式采用单副本的情况下,**存算分离模式写入性能较存算一体模式分别提升了 20.05% 和 27.98%**。批量导入时 Segment 文件大小一般会在几十 MB 到上百 MB,存算分离模式会将 Segment 文件切分成多个小文件并发上传到对象存储,因而会带来比写本地磁盘更高的吞吐。实际部署中存算一体模式一般会采用三副本,此时存算分离模式的写入性能优势会更加明显。 - -- 高并发实时导入场景在前文中已介绍,在此不在赘述。 - -![Doris 写入性能对比](/images/storage-compute-decoupled-loading-performance-7.png) - -### 1-6 生产运行经验 - -- 性能:实时数据场景下可以指定 TTL 的 Cache 以及写入时数据进入 Cache,使查询性能达到与存算一体。Compaction 和 Schema Change 后台任务生成的数据根据热度进入 Cache 可以避免查询抖动。 - -- 负载隔离:多计算集群提供了物理层资源隔离,比如不同业务单元适合使用多计算集群隔离。单个计算集群内依然需要使用 Workload Group 对不同的查询做资源的限制和隔离。 - -### 1-7 注意事项 - -- 当前 3.0 版本存算一体模式与存算分离模式不可共存,用户在集群部署时需要指定其中一种模式进行部署。 - -- 存算一体模式的部署和升级可以正常按照官网文档进行,推荐采用 Doris Manager 进行快速部署和集群升级,存算分离模式暂不支持 Doris Manager 部署和升级,后续我们将会持续迭代以实现更好支持。 - -- 暂不支持从 2.1 版本原地升级至 3.0 存算分离模式,需要在存算分离集群部署完成后通过工具进行数据迁移,后续也会支持通过 CCR 能力实现不停服迁移。 - -:::info 备注 - -参考文档:[存算分离](../../compute-storage-decoupled/overview) - -::: - -## 2. 湖仓一体再进化 - -尽管 Apache Doris 定位于实时数据仓库,在以往版本中一直不拘于数据仓库的能力边界,在湖仓一体方向持续发力。而 3.0 版本是 Apache Doris 在湖仓一体路线上的重要里程碑版本,从 3.0 版本开始,Apache Doris 在湖仓一体场景的能力臻于完善。对于湖仓一体,我们认为其最核心的理念即**数据无界、湖仓融合:** - -**数据无界:将 Apache Doris 作为统一查询处理引擎,打破数据在不同系统间的屏障,在数据仓库、数据湖乃至数据流、本地数据文件等所有数据源端都能提供一致且极速的分析处理体验。** - -- **湖仓查询加速**:无需将数据迁移至 Apache Doris,用户便可直接利用 Doris 高效的查询引擎,直接查询 Iceberg、Hudi、Paimon 等数据湖和 Hive 等离线数仓中的数据,实现查询分析的加速。 - -- **联邦分析**:Apache Doris 通过扩展 Catalog 和存储插件,丰富其联邦分析能力,使用户无需将数据物理集中至统一的存储空间,在保持各数据源独立性和隐私性的同时,仅借助 Apache Doris 即可实现多个异构数据源的统一分析,既可以直查外部表以及存储文件、也可以执行内表和外表以及外表相互之间的关联分析,打破数据孤岛、提供全局一致性的数据洞察与分析。 - -- **数据湖构建:** Apache Doris 增加了 Hive、Iceberg 数据写回功能,写回功能支持用户直接通过 Doris 创建 Hive、Iceberg 表,并将数据写入到表中。基于此,用户可以将 Apache Doris 中的内表数据写回离线湖仓,或者对离线湖仓中的数据利用 Apache Doris 进行数据加工后落地回离线湖仓,从而实现更简化和高效的数据湖构建。 - -**湖仓融合:数据湖架构日益复杂,增加了用户技术选型成本与维护成本。同时实现多个系统一致的细粒度权限管控也变得非常困难,实时性也不足。为应对这一挑战,Apache Doris 融入了湖的核心特征,将其打造成一个轻量、高效的原生实时湖仓。** - -- **数据实时更新:** 从 1.2 版本开始 Apache Doris 增强了主键模型,引入 Merge-on-Write,支持实时更新。借助这一特性,上游数据变更可以基于主键进行高频实时数据更新。 - -- **数据科学与 AI 计算支撑:** 从 2.1 版本开始 Apache Doris 借助高效的 Arrow Flight 协议,增强了存储的开放性和对多计算负载的高效支持,这让 Apache Doris 支持数据科学和 AI 计算成为可能。 - -- **半结构化与非结构化数据增强:** Apache Doris 先后引入 Array / Map / Struct / JSON / Variant 等数据类型,未来还会支持向量索引。 - -- **存算分离资源能效提升:** 从 3.0 版本中支持了存算分离模式,进一步提升了资源效率和可扩展性。 - -### 2-1 湖仓查询加速 - -查询加速是湖仓一体化进程中的重要一环。借助 Apache Doris 强大的分布式查询引擎,可以帮助用户对湖仓数据进行快速分析。在 TPC-H 和 TPC-DS 标准测试集上,Apache Doris 的平均查询性能是 Trino/Presto 的 3-5 倍。 - -在 3.0 版本中,我们重点针对用户实际生产环境中的湖仓查询加速场景进行了优化,包括: - -- **更精细的任务拆分策略:** 通过对一致性哈希算法的调整以及引入任务分片权重机制,确保各个节点的查询负载均衡。 - -- **面向多分区、多文件场景的调度优化:** 在大量文件(100 万+)场景下,通过异步、分批获取文件分片的方式,显著降低查询耗时(100s -> 10s),并降低 FE 内存压力。 - -后续我们将进一步针对性的提升真实业务场景下的查询加速性能,提升用户实际感受,构建业界领先的湖仓查询加速引擎。 - -### 2-2 联邦分析 - 更丰富的数据源连接器 - -在之前的版本中,Apache Doris 已经支持了 10 余种主流湖、仓、关系型数据库的连接器。在 3.0 版本中,我们引入了 Trino Connector 兼容框架,极大扩展了 Apache Doris 可连接的数据源。借助该框架,仅需简单适配,用户即可通过 Doris 访问对应的数据源,并利用 Doris 的极速计算引擎进行数据分析。 - -目前 Doris 已完成 Delta Lake、Kudu、BigQuery、Kafka、TPCH、TPCDS 等多种 Connector 的适配,也欢迎所有开发者参考开发指南,为 Apache Doris 适配更多数据源。 - -:::info 备注 -参考文档: - -- [接入 Trino Connector](https://doris.apache.org/zh-CN/community/how-to-contribute/trino-connector-developer-guide) - -- [Delta Lake](../../lakehouse/catalogs/delta-lake-catalog.md) - -- [Kudu](../../lakehouse/catalogs/kudu-catalog.md) - -- [BigQuery](../../lakehouse/catalogs/bigquery-catalog.md) -::: - -### 2-3 数据湖构建 - -在 3.0 版本中,Apache Doris 增加了 Hive、Iceberg 数据写回功能。写回功能支持用户直接通过 Doris 创建 Hive、Iceberg 表,并将数据写入到表中。该功能使得 Apache Doris 在湖仓数据处理能力上形成闭环,用户可以在 Apache Doris 中完成多个数据源之间的数据分析、共享、处理、存储操作。 - -在后续的迭代版本中,Apache Doris 将进一步完善对数据湖表格式的支持以及存储 API 开放性。 - -:::info 备注 - -参考文档:[数据湖构建](../../lakehouse/catalogs/hive-catalog) - -::: - -## 3. 半结构化分析全面增强 - -在过去发布的 2.0 和 2.1 版本中,Apache Doris 陆续引入了倒排索引、N-Gram Bloom Filter、Variant 数据类型等重磅特性,支持高性能的全文检索和任意维度分析,对复杂半结构化数据的存储和处理分析更加灵活高效。 - -在 3.0 版本中,我们继续对这一场景能力进行了全面增强,在应对半结构化数据分析和日志检索分析场景的挑战时更加得心应手。 - -Variant 数据类型在经过大规模生产打磨后,已具备充分的稳定性,成为 JSON 数据存储和分析的首选。在 3.0 版本中我们对 Variant 类型进行了多项优化: - -- Variant 数据类型支持创建索引加速查询,包括倒排索引、Bloom Filter 索引以及内置的 ZoneMap 索引; - -- 对于包含 Variant 数据类型的 Unique 模型表,支持灵活的部分列更新; - -- Variant 数据类型支持在存算分离模式上使用,并对其元数据存储进行了优化; - -- 支持将 Variant 数据类型导出成 Parquet、CSV 等格式。 - -倒排索引自 2.0 版本开始被引入起,经历一年多的打磨,目前已具备较高的成熟度,在数百家企业的生产环境中长期运行。在 3.0 版本中,我们对倒排索引进行了多项优化: - -- 通过锁并发等一系列的性能优化,在实时报表分析场景中 Apache Doris 在查询延迟和并发等关键指标已大幅超过 Elasticsearch; - -- 在存算分离模式下优化了索引文件,减少远端存储的调用,大幅优化了索引查询延迟; - -- 增加了对 Array 类型的支持,加速 `array_contains` 查询; - -- 对短语查询系列 `match_phrase_*` 功能进行增强,包括支持词距 slop、短语前缀匹配 `match_phrase_prefix` 等。 - -## 4. ETL 能力持续增强 - -### 4-1. 事务增强 - -数据加工在数据仓库中是一个常见的场景,通常需要多个数据变更作为一个事务。Doris 3.0 对` insert into select`、`delete` 和 `update` 操作提供了显式事务支持。具体的应用场景比如: - -- 事务性要求:例如更新一个时间范围的数据,通常的做法是先删除这个时间范围的数据,然后写入。考虑到数据已经在服务,希望查询时要么看到老的数据要么看到新的数据,因此可以在一个事务中执行 `delete` 和 `insert into select`。 - - ```Java - BEGIN; - DELETE FROM table WHERE date >= "2024-07-01" AND date <= "2024-07-31"; - INSERT INTO table SELECT * FROM stage_table; - COMMIT; - ``` - -- 简化任务失败的处理:例如一个数据加工包含 2 个` insert into select`,在一个事务中去执行,任何一步失败只需要重新开始执行即可。 - - ```Java - BEGIN WITH LABEL label_etl_1; - INSERT INTO table1 SELECT * FROM stage_table1; - INSERT INTO table SELECT * FROM stage_table; - COMMIT; - ``` - -:::info 备注 - -参考文档: - -- [事务](../../data-operate/transaction/) - -- 目前 CCR 暂未支持显示事务同步。 -::: - -### 4-2 可观测性增强 - -- **Profile 实时获取**:在过去,某些复杂查询可能由于 Plan 的原因或者数据的原因,导致计算量特别大,开发者只有在查询结束后才能拿到 Profile 做性能分析以发现问题,有可能对线上系统产生影响。通过 Profile 实时获取,开发者可以在查询的运行过程中实时获取查询执行的 Profile,看到每个算子的执行情况,不需要等到查询执行结束。基于实时 Profile 获取功能,开发者还可以进一步监控每一 ETL 作业的执行进度。 - -- **系统表 backend_active_tasks**:`backend_active_tasks` 系统表提供了每个 Query 在每个 BE 上的实时资源消耗信息,可以通过 SQL 对系统表做分析计算,进而实时获得每个 Query 的资源使用量,有利于用户发现大查询或者不合理的工作负载。 - -## 5. 多表物化视图 - -在 Apache Doris 3.0 版本中,对多表物化视图的构建能力进行了增强并提高稳定性,拓展了透明改写的能力、透明改写性能提升 2 倍,重构了同步物化视图的透明改写逻辑并拓展了透明改写的能力,同时在异步物化视图的易用性上做了增强,让物化视图在查询加速,数据建模等场景更好用、更稳定。 - -### 5-1. 构建刷新功能 - -- 物化视图的支持分区增量更新,大大减少了物化视图的构建成本,并且支持物化视图分区上卷,满足不同粒度的分区刷新物化视图需求。 - -- 支持构建嵌套物化视图,在数据建模场景更好用。 - -- 允许异步物化视图创建索引和指定排序键,命中物化视图后查询速度会提升。 - -- 提高了物化视图 DDL 的易用性,支持物化视图原子替换,可以保证物化视图一直可用的情况下,修改物化视图定义 SQL。 - -- 允许物化视图使用非确定函数,在定时构建 T+1 物化数据的场景更易用。 - -- 新增了触发刷新物化的功能,在使用嵌套物化视图数据建模时,保证数据一致性。 - -- 拓展了可以构建分区物化视图的 SQL 模式,让更多的场景可以使用分区增量更新能力。 - -### 5-2. 构建刷新稳定性 - -- 支持指定物化视图构建时的 Workload Group,限制物化视图构建使用的资源,保障查询的可用资源。 - -### 5-3. 透明改写功能拓展 - -- 支持了更多 Join 类型的改写,并且支持了 Join 衍生改写。当查询和物化视图的 Join 的类型不一致时,如果物化可以提供查询所需的所有数据时,通过在 Join 的外部补偿谓词,也可以进行透明改写。 - -- 增强了聚合改写,支持了更多的聚合函数上卷,并且支持了多维聚合函数 GROUPING SETS、ROLLUP、CUBE 的改写,同时支持了查询包含聚合,物化不包含聚合的改写,可以节省 Join 连接和表达式计算。 - -- 支持了嵌套物化视图的透明改写,在复杂的查询加速场景下,可以借助嵌套物化视图来进行极致加速。 - -- 分区物化视图部分分区失效,支持物化视图 Union All 基表补全数据,增加了分区物化视图的适用范围。 - -### 5-4. 透明改写性能 - -- 持续优化了透明改写的性能,透明改写性能是 2.1.0 版本的两倍。 - -:::info 备注 -参考文档: - -- [异步物化视图概览](../../query-acceleration/materialized-view/async-materialized-view/overview.md) - -- [查询异步物化视图](../../query-acceleration/materialized-view/async-materialized-view/functions-and-demands.md) -::: - -## 6. 性能提升 - -### 6-1. 优化器更智能 - -在 3.0 版本中,查询优化器在框架能力、分布式计划支持、优化器基础设施以及规则扩充等方面做了重要增强,支持更复杂更多样的业务场景、提供更极致的优化能力,对于复杂 SQL 有更高的盲测性能: - -- **更完善的计划枚举能力**:对计划枚举的关键结构 Memo 做了 Projection 规范化重构,不仅提升了 Cascades 框架枚举有效计划的效率和枚举出更优计划的可能性,同时也修复了历史版本 Join Reorder 过程中列裁剪不完全导致的 Join 算子不必要开销等遗留问题,有效提升相应场景下的执行性能。 - -- **更完善的分布式计划支持**:对分布式查询计划做了增强,使得聚合,连接和窗口函数操作能更智能的识别中间运算结果的数据特征,避免无效的数据重分布操作,提升相应场景的性能。同时,3.0 版本中对多副本连续执行模式下的执行性能也进行了优化,使其对数据缓存更友好,相应性能也得到较大提升。 - -- **更完善的优化器基础设施**:在代价模型和统计信息估行方面,3.0 版本也修复了若干重要估行问题,代价模型问题的修复也更加适配执行引擎迭代,使得执行计划相较历史版本更稳定。 - -- **更丰富的 Runtime Filter 计划支持**:3.0 版本在传统 Join Runtime Filter 的基础上,拓展了 TopN Runtime Filter 的能力。典型场景如存在 TopN 算子时,可以生成 TopN 的 Runtime Filter 以获得更好的执行性能。 - -- **更丰富的优化规则库**:持续的增强和迭代基础优化规则库,通过持续不断地业务反馈和内测增强,3.0 版本中加入了如 Intersect Reorder 等典型的优化规则支持,使得优化器的规则成熟度得到了进一步的提升。 - -### 6-2. 自适应 Runtime Filter - -Runtime Filter 是否能够准确生成对查询性能的影响至关重要,在过去 Doris 非常依赖于用户手工设置或者优化器根据统计信息来生成,在某些情况下一旦设置不准确将会带来性能抖动。 - -在 3.0 版本实现了自适应的 Runtime Filter 计算方式,能够在运行时根据数据大小准确估算 Runtime Filter,在大数据量和高压力场景下有更好的性能表现。 - -### 6-3. 函数性能优化 - -- 3.0 版本对数十个函数的向量化实现做了改进,部分常用函数的性能提升 50% 以上。 - -- 对 Nullable 类型数据的聚合计算也做了大量优化,性能提升 30%。 - -### 6-4. 盲测性能进一步提升 - -我们对 3.0 版本与 2.1 版本分别在 TPC-DS 和 TPC-H 测试数据集上进行了盲测性能测试,查询性能分别提升了 7.3% 以及 6.2%。 - -![盲测性能进一步提升](/images/tpc-ds-and-tpc-h.png) - -## 7. 新功能 - -### 7-1. Java UDTF - -从 3.0 版本开始支持增加对 Java UDTF 的支持,主要操作如下: - -- 编写 UDTF:UDTF 和 UDF 函数一样,需要用户自主实现一个 `evaluate` 方法,注意 UDTF 函数的返回值必须是 Array 类型。 - - ```sql - public class UDTFStringTest { - public ArrayList evaluate(String value, String separator) { - if (value == null || separator == null) { - return null; - } else { - return new ArrayList<>(Arrays.asList(value.split(separator))); - } - } - } - ``` - -- 创建 UDTF:这里会默认创建两个对应的函数 `java-utdf`和 `java-utdf_outer`, `outer`的后缀在表函数生成 0 行数据时添加一行`Null`数据。 - - ```sql - CREATE TABLES FUNCTION java-utdf(string, string) RETURNS array PROPERTIES ( - "file"="file:///pathTo/java-udaf.jar", - "symbol"="org.apache.doris.udf.demo.UDTFStringTest", - "always_nullable"="true", - "type"="JAVA_UDF" - ); - ``` - -:::info 备注 -参考文档: [Java UDF - UDTF](../../query-data/udf/java-user-defined-function.md#java-udtf-实例介绍) -::: - -### 7-2 生成列 - -生成列是一种特殊的数据库表列,其值由其他列的值计算而来,而不是直接由用户插入或更新。该功能支持预先计算表达式的结果,并存储在数据库中,适用于需要频繁查询或进行复杂计算的场景。 - -生成列可以在数据导入或更新时自动根据预定义的表达式计算结果,并将这些结果持久化存储。在后续的查询过程中,可以直接访问这些已经计算好的结果,而无需在查询时再进行复杂的计算,从而显著减少查询时的计算负担,提升查询性能。 - -从 3.0 版本开始 Apache Doris 支持生成列功能,创建表时可以指定列为 Generated 列。Generated 列可在写入时,根据定义的表达式,自动获取计算结果。相比于 Default value,可以定义更为复杂的表达式,但不可以显式写入指定的值。 - -:::info 备注 - -参考文档: - -[CREATE TABLE AND GENERATED COLUMN](../../sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-ADD-GENERATED-COLUMN.md) -::: - -## 8. 功能改进 - -### 8-1. 同步物化视图 - -重构同步物化视图选择逻辑,将选择逻辑从 RBO 迁移至 CBO,使其与异步物化视图保持一致。 - -此功能默认开启。如遇到问题,可使用开关 `set global enable_sync_mv_cost_based_rewrite = false` 回退到 RBO 模式。 - -### 8-2. Routine Load 导入 - -在之前的版本中,Routine Load 存在部分体验性问题:任务在 BE 节点之间调度不均、调度不及时,配置繁琐、需要同时改 FE 和 BE 的多个配置进行调优,稳定性不够高、重启或升级等都可能导致 Routine Load Job 暂停,需要人工介入才能恢复。我们针对这些问题对 Routine Load 做了大量的优化,使得 Routine Load 更高效、稳定且易用,为用户提供更好的体验。 - -- 资源调度方面,改善了任务在 BE 节点之间的调度均衡性,确保任务能够更加均匀地分配到各个节点。对于发生无法恢复错误的 Job 及时暂停,避免无效调度导致的资源浪费,并改进了调度的及时性,提升了 Routine Load 的导入性能。 - -- 参数配置方面,简化了配置过程,用户在大部分环境下无需修改 FE 和 BE 的配置进行调优。同时引入超时参数自动调整机制,避免集群压力增大时,任务持续超时重试。 - -- 稳定性方面,增强了其在各种异常场景下的稳定性,如 FE 切主、BE 滚动升级、Kafka 集群异常等都能持续稳定的工作。优化了 Auto Resume 机制,使得在故障恢复后 Routine Load 能够自动恢复运行,减少了用户的人工介入。 - -## 9 行为变更 - -- `cpu_resource_limit` 将不再支持,所有的资源隔离方式都依赖 Workload Group 实现。 - -- 从 3.0 版本开始请使用 JDK 17,推荐版本 `jdk-17.0.10_linux-x64_bin.tar.gz`。 - -## 立刻开启 3.0 - -在 3.0 版本正式发布之前,存算分离架构在 SelectDB 数百家企业的生产环境已经得到近两年的大规模打磨,同时来自百度、美团、字节跳动、腾讯、阿里、快手、华为、天翼云等企业多名贡献者与社区深度共建,贡献了大量来自真实业务场景下测试 Case,使得 3.0 版本在功能易用性和系统稳定性得到了有力验证,推荐有存算分离需求的用户下载 3.0 版本进行尝鲜。 - -后续我们也将加快发版迭代节奏,力求给所有用户带来更稳定的版本体验。 - - -## 致谢 - -在此再次向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢: - -@133tosakarin、@390008457、@924060929、@AcKing-Sam、@AshinGau、@BePPPower、@BiteTheDDDDt、@ByteYue、@CSTGluigi、@CalvinKirs、@Ceng23333、@DarvenDuan、@DongLiang-0、@Doris-Extras、@Dragonliu2018、@Emor-nj、@FreeOnePlus、@Gabriel39、@GoGoWen、@HappenLee、@HowardQin、@Hyman-zhao、@INNOCENT-BOY、@JNSimba、@JackDrogon、@Jibing-Li、@KassieZ、@Lchangliang、@LemonLiTree、@LiBinfeng-01、@LompleZ、@M1saka2003、@Mryange、@Nitin-Kashyap、@On-Work-Song、@SWJTU-ZhangLei、@StarryVerse、@TangSiyang2001、@Tech-Circle-48、@Thearas、@Vallishp、@WinkerDu、@XieJiann、@XuJianxu、@XuPengfei-1020、@Yukang-Lian、@Yulei-Yang、@Z-SWEI、@ZhongJinHacker、@adonis0147、@airborne12、@allenhooo、@amorynan、@bingquanzhao、@biohazard4321、@bobhan1、@caiconghui、@cambyzju、@caoliang-web、@catpineapple、@cjj2010、@csun5285、@dataroaring、@deardeng、@dongsilun、@dutyu、@echo-hhj、@eldenmoon、@elvestar、@englefly、@feelshana、@feifeifeimoon、@feiniaofeiafei、@felixwluo、@freemandealer、@gavinchou、@ghkang98、@gnehil、@hechao-ustc、@hello-stephen、@httpshirley、@hubgeter、@hust-hhb、@iszhangpch、@iwanttobepowerful、@ixzc、@jacktengg、@jackwener、@jeffreys-cat、@kaijchen、@kaka11chen、@kindred77、@koarz、@kobe6th、@kylinmac、@larshelge、@liaoxin01、@lide-reed、@liugddx、@liujiwen-up、@liutang123、@lsy3993、@luwei16、@luzhijing、@lxliyou001、@mongo360、@morningman、@morrySnow、@mrhhsg、@my-vegetable-has-exploded、@mymeiyi、@nanfeng1999、@nextdreamblue、@pingchunzhang、@platoneko、@py023、@qidaye、@qzsee、@raboof、@rohitrs1983、@rotkang、@ryanzryu、@seawinde、@shoothzj、@shuke987、@sjyango、@smallhibiscus、@sollhui、@sollhui、@spaces-X、@stalary、@starocean999、@superdiaodiao、@suxiaogang223、@taptao、@vhwzx、@vinlee19、@w41ter、@wangbo、@wangshuo128、@whutpencil、@wsjz、@wuwenchi、@wyxxxcat、@xiaokang、@xiedeyantu、@xiedeyantu、@xingyingone、@xinyiZzz、@xy720、@xzj7019、@yagagagaga、@yiguolei、@yongjinhou、@ytwp、@yuanyuan8983、@yujun777、@yuxuan-luo、@zclllyybb、@zddr、@zfr9527、@zgxme、@zhangbutao、@zhangstar333、@zhannngchen、@zhiqiang-hhhh、@ziyanTOP、@zxealous、@zy-kkk、@zzzxl1993、@zzzzzzzs diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.1.md deleted file mode 100644 index d39861e89ed80..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.1.md +++ /dev/null @@ -1,575 +0,0 @@ ---- -{ - "title": "Release 3.0.1", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.1 版本已于 2024 年 8 月 23 日正式发布。从 3.0 系列版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。同时在 3.0.1 版本中," -} ---- - -亲爱的社区小伙伴们,Apache Doris 3.0.1 版本已于 2024 年 8 月 23 日正式发布。从 3.0 系列版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。同时在 3.0.1 版本中,Apache Doris 在存算分离、湖仓一体、半结构化数据分析、异步物化视图等方面进行了全面更新与改进,欢迎大家下载使用。 - - -**官网下载:** https://doris.apache.org/download/ - -**GitHub 下载:** https://github.com/apache/doris/releases - - -## 行为变更 - -### 查询优化器 - -- 新增变量 `use_max_length_of_varchar_in_ctas`,用于控制在执行 `CREATE TABLE AS SELECT`(CTAS)操作时 VARCHAR 类型的长度行为。此变量默认设置为 true。当设置为 true 时,如果 VARCHAR 类型的列源自一个表,则采用推导长度;否则,使用最大长度。当设置为 false 时,VARCHAR 类型将始终使用推导出的长度。[#37069](https://github.com/apache/doris/pull/37069) - -- 所有的数据类型将以小写形式展示,以保持与 MySQL 格式的兼容性。[#38012](https://github.com/apache/doris/pull/38012) - -- 同一查询请求中的多条查询语句现在必须使用分号分隔。[#38670](https://github.com/apache/doris/pull/38670) - -### 查询执行 - -- 将集群在执行 Shuffle 操作后默认的并行任务数设置为 100,这将提高大型集群中查询的稳定性和并发处理能力。[#38196](https://github.com/apache/doris/pull/38196) - -### 存储 - -- `trash_file_expire_time_sec` 的默认值已从 86400 秒更改为 0 秒,这意味着如果误删除文件并清空了 FE 回收站,数据将无法恢复。 - -- 表属性 `enable_mow_delete_on_delete_predicate`(在版本 3.0.0 中引入)已更名为 `enable_mow_light_delete`。 - -- 显式事务现在被禁止对已写入数据的表执行 Delete 操作。 - -- 禁止对含有自增字段的表进行重量级的 Schema Change 操作。 - -## 新特性 - -### 任务调度 - -- 优化内部调度作业的执行逻辑,取消开始时间和立即执行参数之间的强关联。现在任务在创建时可以指定开始时间或选择立即执行,两者不再冲突,从而提高了调度的灵活性。[#36805](https://github.com/apache/doris/pull/36805) - -### 存算分离 - -- 支持动态更改 File Cache 的使用上限。[#37484](https://github.com/apache/doris/pull/37484) - -- Recycler 现在支持对象存储限速以及服务端限速重试功能。[#37663](https://github.com/apache/doris/pull/37663) [#37680](https://github.com/apache/doris/pull/37680) - -### Lakehouse - -- 新增会话变量 `serde_dialect`,可以设置复杂类型的输出格式。[#37039](https://github.com/apache/doris/pull/37039) - -- SQL 拦截功能现在支持外部表 - - - 更多内容,参考文档[SQL 拦截](../../admin-manual/workload-management/sql-blocking.md) - -- Insert Overwrite 现在支持 Iceberg 表。[#37191](https://github.com/apache/doris/pull/37191) - -### 异步物化视图 - -- 支持按小时级别分区上卷构建。[#37678](https://github.com/apache/doris/pull/37678) - -- 支持原子替换异步物化视图定义语句。[#36749](https://github.com/apache/doris/pull/36749) - -- 透明改写现在支持 Insert 语句。[#38115](https://github.com/apache/doris/pull/38115) - -- 透明改写现在支持 Variant 类型。[#37929](https://github.com/apache/doris/pull/37929) - -### 查询执行 - -- Group Concat 函数现在支持 DISTINCT 和 ORDER BY 选项。[#38744](https://github.com/apache/doris/pull/38744) - -### 半结构化数据管理 - -- ES Catalog 现在将 Elasticsearch 中的 `nested` 或 `object` 类型映射为 Doris 的 JSON 类型。[#37101](https://github.com/apache/doris/pull/37101) - -- 新增 `MULTI_MATCH` 函数,支持在多个字段中匹配关键词,并能利用倒排索引加速搜索。[#37722](https://github.com/apache/doris/pull/37722) - -- 新增 `explode_json_object` 函数,可以将 JSON 数据中的 Object 展开为多行。[#36887](https://github.com/apache/doris/pull/36887) - -- 倒排索引现在支持 Memtable 前移,在多副本写入时只需构建一次索引,减少 CPU 消耗并提升性能。[#35891](https://github.com/apache/doris/pull/35891) - -- 新增 `MATCH_PHRASE` 支持正向词距(slop),例如 `msg MATCH_PHRASE 'a b 2+'` 可以匹配包含词 a 和 b,它们之间的词距不超过两个,并且 a 在 b 的前面;而普通的词距(slop)如果没有最后的加号 `+`,则不保证 a 在 b 的前面。[#36356](https://github.com/apache/doris/pull/36356) - -### 其他 - -- 新增加了 FE 参数 `skip_audit_user_list`,在此配置项中的用户操作将不会被记录到审计日志中。[#38310](https://github.com/apache/doris/pull/38310) - - - 更多内容,参考文档[审计插件](../../admin-manual/audit-plugin/) - -## 改进 - -### 存储 - -- 降低单个 BE 内磁盘间均衡导致写失败的可能性。[#38000](https://github.com/apache/doris/pull/38000) - -- 降低 Memtable Limiter 的内存消耗。[#37511](https://github.com/apache/doris/pull/37511) - -- 在替换分区操作时,将旧分区移动到 FE 回收站。[#36361](https://github.com/apache/doris/pull/36361) - -- 优化了 Compaction 的内存消耗。[#37099](https://github.com/apache/doris/pull/37099) - -- 增加了会话变量以控制 JDBC PreparedStatement 的审计日志,默认不打印。[#38419](https://github.com/apache/doris/pull/38419) - -- 优化了 Group Commit 选择 BE 的逻辑。[#35558](https://github.com/apache/doris/pull/35558) - -- 优化了列更新的性能。[#38487](https://github.com/apache/doris/pull/38487) - -- 优化了 `delete bitmap cache` 的使用。[#38761](https://github.com/apache/doris/pull/38761) - -- 添加了配置以控制冷热分层时查询的亲和性。[#37492](https://github.com/apache/doris/pull/37492) - -### 存算分离 - -- 遇到对象存储服务端限速时,现在会自动重试。[#37199](https://github.com/apache/doris/pull/37199) - -- 适应存算分离模式下 Memtable Flush 的线程数。[#38789](https://github.com/apache/doris/pull/38789) - -- 将 Azure 作为编译选项,以便支持在不支持 Azure 的环境中编译。 - -- 优化了对象存储访问限速的可观测性。[#38294](https://github.com/apache/doris/pull/38294) - -- 允许 File Cache TTL 队列进行 LRU 淘汰,增加了 TTL 队列的可用性。[#37312](https://github.com/apache/doris/pull/37312) - -- 优化了存算分离模式下 Balance Writeeditlog IO 次数。[#37787](https://github.com/apache/doris/pull/37787) - -- 优化了存算分离模式下建表的速度,批量发送创建 Tablet 的请求。[#36786](https://github.com/apache/doris/pull/36786) - -- 通过退避重试的方式,优化了本地 File Cache 可能不一致时导致的读取失败问题。[#38645](https://github.com/apache/doris/pull/38645) - -### Lakehouse - -- 优化了 Parquet/ORC 格式读写操作的内存统计。[#37234](https://github.com/apache/doris/pull/37234) - -- Trino Connector Catalog 现在支持谓词下推。[#37874](https://github.com/apache/doris/pull/37874) - -- 新增会话变量 `enable_count_push_down_for_external_table`,用于控制是否开启外部表的 `count(*)` 下推优化。[#37046](https://github.com/apache/doris/pull/37046) - -- 优化了 Hudi 快照读的读取逻辑,当快照为空时返回空集,与 Spark 行为保持一致。[#37702](https://github.com/apache/doris/pull/37702) - -- 优化了 Hive 表分区列的读取性能。[#37377](https://github.com/apache/doris/pull/37377) - -### 异步物化视图 - -- 透明改写计划速度提升了 20%。[#37197](https://github.com/apache/doris/pull/37197) - -- 如果 Group Key 满足数据唯一性,在透明改写时不再进行上卷,以更好地进行嵌套匹配。[#38387](https://github.com/apache/doris/pull/38387) - -- 透明改写现在可以更好地进行聚合消除,以提高嵌套物化视图的匹配成功率。[#36888](https://github.com/apache/doris/pull/36888) - -### MySQL 兼容性 - -- 现在正确填充了 MySQL 协议中结果列的库名、表名和原始名称。[#38126](https://github.com/apache/doris/pull/38126) - -- 支持了形如 `/*+ func(value) */` 的 Hint 格式。[#37720](https://github.com/apache/doris/pull/37720) - -### 查询优化器 - -- 显著提升了复杂查询的计划速度。[#38317](https://github.com/apache/doris/pull/38317) - -- 根据数据分桶数量,自适应选择是否进行 Bucket Shuffle,以避免极端情况下的性能劣化。[#36784](https://github.com/apache/doris/pull/36784) - -- 优化了 SEMI/ANTI JOIN 的代价估算逻辑。[#37951](https://github.com/apache/doris/pull/37951) [#37060](https://github.com/apache/doris/pull/37060) - -- 支持将 Limit 下推到第一阶段聚合,以提升性能。[#34853](https://github.com/apache/doris/pull/34853) - -- 分区裁剪现在支持过滤条件中包含 `date_trunc` 或 `date` 函数。[#38025](https://github.com/apache/doris/pull/38025) [#38743](https://github.com/apache/doris/pull/38743) - -- SQL 缓存现在支持包含用户变量的查询场景。[#37915](https://github.com/apache/doris/pull/37915) - -- 优化了聚合语义不合法时的错误信息。[#38122](https://github.com/apache/doris/pull/38122) - -### 查询执行 - -- 适配了 AggState 的 2.1 到 3.x 兼容性,并修复了 Coredump 问题。[#37104](https://github.com/apache/doris/pull/37104) - -- 重构了不带 Join 时 Local Shuffle 的策略选择。[#37282](https://github.com/apache/doris/pull/37282) - -- 将内部表查询的 Scanner 修改为异步方式,以防止查询内部表时卡住。[#38403](https://github.com/apache/doris/pull/38403) - -- 优化了 Join 算子构建 Hash 表时的 Block Merge 过程。[#37471](https://github.com/apache/doris/pull/37471) - -- 优化了 MultiCast 持有锁的时间。[#37462](https://github.com/apache/doris/pull/37462) - -- 优化了 gRPC 的 keepAliveTime 并增加了链接监测机制,降低了查询过程中因 RPC 错误导致查询失败的概率。[#37304](https://github.com/apache/doris/pull/37304) - -- 当内存超限时,清理 Jemalloc 中的所有 Dirty Pages。[#37164](https://github.com/apache/doris/pull/37164) - -- 优化了 `aes_encrypt` /`decrypt` 函数对常量类型的处理性能。[#37194](https://github.com/apache/doris/pull/37194) - -- 优化了 `json_extract` 函数对常量数据的处理性能。[#36927](https://github.com/apache/doris/pull/36927) - -- 优化了 `ParseUrl` 函数对常量数据的处理性能。[#36882](https://github.com/apache/doris/pull/36882) - -### 半结构化数据管理 - -- Bitmap 索引现在默认使用反向索引,`enable_create_bitmap_index_as_inverted_index` 默认设置为 true。[#36692](https://github.com/apache/doris/pull/36692) - -- 在存算分离模式下,DESC 现在可以查看 VARIANT 类型的子列。[#38143](https://github.com/apache/doris/pull/38143) - -- 移除了倒排索引查询时检查文件是否存在的步骤,以降低远程存储的访问延迟。[#36945](https://github.com/apache/doris/pull/36945) - -- ARRAY / MAP / STRUCT 复杂类型现在支持 AGG 表的 `replace_if_not_null`。[#38304](https://github.com/apache/doris/pull/38304) - -- 现在支持 JSON 数据的转义字符。[#37176](https://github.com/apache/doris/pull/37176) [#37251](https://github.com/apache/doris/pull/37251) - -- 倒排索引查询现在在 MOW 表上与 Duplicate 表一致。[#37428](https://github.com/apache/doris/pull/37428) - -- 优化了倒排索引加速 IN 查询的性能。[#37395](https://github.com/apache/doris/pull/37395) - -- TOPN 查询时减少了多余的内存分配,以提升性能。[#37429](https://github.com/apache/doris/pull/37429) - -- 当创建带分词的倒排索引时,现在自动开启 `support_phrase` 选项,以加速 `match_phrase` 系列短语查询。[#37949](https://github.com/apache/doris/pull/37949) - -### 其他 - -- Audit Log 现在可以记录 SQL 类型。[#37790](https://github.com/apache/doris/pull/37790) - -- 增加对 `information_schema.processlist` Show All FE 的支持。[#38701](https://github.com/apache/doris/pull/38701) - -- 缓存 Ranger 的 `atamask` 和 `rowpolicy`,以加速查询效率。[#37723](https://github.com/apache/doris/pull/37723) - -- 优化 Job Manager 的元数据管理,在修改元数据后立即释放锁,以减少锁持有时间。[#38162](https://github.com/apache/doris/pull/38162) - -## 缺陷修复 - -### 升级 - -- 修复从 2.1 版本升级时 mtmv load 失败的问题。[#38799](https://github.com/apache/doris/pull/38799) - -- 修复在 2.1 版本升级时找不到 `null_type` 的问题。[#39373](https://github.com/apache/doris/pull/39373) - -- 修复从 2.1 版本升级到 3.0 版本时权限持久化的兼容性问题。[#39288](https://github.com/apache/doris/pull/39288) - -### 导入 - -- 修复 CSV 格式解析中,换行符被包围符包围时解析失败的问题。[#38347](https://github.com/apache/doris/pull/38347) - -- 修复 FE 在转发 Group Commit 时可能出现的异常问题。[#38228](https://github.com/apache/doris/pull/38228) [#38265](https://github.com/apache/doris/pull/38265) - -- Group Commit 现在支持新优化器。[#37002](https://github.com/apache/doris/pull/37002) - -- 修复 JDBC setNull 时 Group Commit 报告数据错误的问题。[#38262](https://github.com/apache/doris/pull/38262) - -- 优化 Group Commit 遇到 `delete bitmap lock` 错误时的重试逻辑。[#37600](https://github.com/apache/doris/pull/37600) - -- 修复 Routine Load 不能使用 CSV 包围符和转义符的问题。[#38402](https://github.com/apache/doris/pull/38402) - -- 修复 Routine Load Job 名字大小写混用时无法显示的问题。[#38523](https://github.com/apache/doris/pull/38523) - -- 优化 FE 主从切换时主动恢复 Routine Load 的逻辑。[#37876](https://github.com/apache/doris/pull/37876) - -- 修复 Kafka 中数据全部过期时 Routine Load 暂停的问题。[#37288](https://github.com/apache/doris/pull/37288) - -- 修复 `show routine load` 返回空结果的问题。[#38199](https://github.com/apache/doris/pull/38199) - -- 修复 Routine Load 多表流式导入时的内存泄露问题。[#38255](https://github.com/apache/doris/pull/38255) - -- 修复 Stream Load 不返回 Error URL 的问题。[#38325](https://github.com/apache/doris/pull/38325) - -- 修复 Load Channel 可能泄露的问题。[#38031](https://github.com/apache/doris/pull/38031) [#37500](https://github.com/apache/doris/pull/37500) - -- 修复导入少于预期的 Segment 时可能不报错的问题。[#36753](https://github.com/apache/doris/pull/36753) - -- 修复 Load Stream 泄露的问题。[#38912](https://github.com/apache/doris/pull/38912) - -- 优化下线节点对导入操作的影响。[#38198](https://github.com/apache/doris/pull/38198) - -- 修复 Insert Into 空数据情况下事务不结束的问题。[#38991](https://github.com/apache/doris/pull/38991) - -### 存储 - -**01 备份与恢复** - -- 修复备份恢复后表无法写入的问题。[#37089](https://github.com/apache/doris/pull/37089) - -- 修复备份恢复后视图中数据库名称错误的问题。[#37412](https://github.com/apache/doris/pull/37412) - -**02 Compaction(压缩)** - -- 修复有序数据压缩时 Cumu Compaction 处理 Delete 错误的的问题。[#38742](https://github.com/apache/doris/pull/38742) - -- 修复顺序压缩优化导致的聚合表重复 Key 问题。[#38224](https://github.com/apache/doris/pull/38224) - -- 修复大宽表下压缩操作导致 Coredump 的问题。[#37960](https://github.com/apache/doris/pull/37960) - -- 修复压缩任务并发统计不准确导致的压缩饥饿问题。[#37318](https://github.com/apache/doris/pull/37318) - -**03 MOW Unique Key(MOW 唯一键)** - -- 解决累计压缩删除 Delete Sign 导致的副本间数据不一致问题。[#37950](https://github.com/apache/doris/pull/37950) - -- 在新的优化器下,MOW Delete 表现在使用部分列更新。[#38751](https://github.com/apache/doris/pull/38751) - -- 修复存算分离下 MOW 表可能出现的重复 Key 问题。[#39018](https://github.com/apache/doris/pull/39018) - -- 修复 MOW Unique 和 Duplicate 表不能修改列顺序的问题。[#37067](https://github.com/apache/doris/pull/37067) - -- 修复 Segcompaction 可能导致的数据正确性问题。[#37760](https://github.com/apache/doris/pull/37760) - -- 修复列更新可能出现的内存泄露问题。[#37706](https://github.com/apache/doris/pull/37706) - -**04 其他** - -- 修复 TOPN 查询可能出现的小概率异常。[#39119](https://github.com/apache/doris/pull/39119) [#39199](https://github.com/apache/doris/pull/39199) - -修复 FE 重启时自增 ID 可能重复的问题。[#37306](https://github.com/apache/doris/pull/37306) - -- 修复 Delete 操作优先级队列可能的排队问题。[#37169](https://github.com/apache/doris/pull/37169) - -- 优化 Delete 重试逻辑。[#37363](https://github.com/apache/doris/pull/37363) - -- 修复新优化器下建表语句中 `bucket = 0` 的问题。[#38971](https://github.com/apache/doris/pull/38971) - -- 修复 FE 生成 Image 失败时错误地报告成功的问题。[#37508](https://github.com/apache/doris/pull/37508) - -- 修复 FE 下线节点时使用错误 nodename 可能导致的 FE 成员不一致问题。[#37987](https://github.com/apache/doris/pull/37987) - -- 修复 CCR 增加分区可能失败的问题。[#37295](https://github.com/apache/doris/pull/37295) - -- 修复倒排索引文件中 `int32` 溢出的问题。[#38891](https://github.com/apache/doris/pull/38891) - -- 修复 TRUNCATE TABLE 失败可能导致 BE 不能下线的问题。[#37334](https://github.com/apache/doris/pull/37334) - -- 修复因空指针导致的 Publish 无法继续的问题。[#37724](https://github.com/apache/doris/pull/37724) [#37531](https://github.com/apache/doris/pull/37531) -- 修复手动触发磁盘迁移时可能出现的 Coredump 问题。[#37712](https://github.com/apache/doris/pull/37712) - -### 存算分离 - -- 修复 `show create table` 可能会展示两次 `file_cache_ttl_seconds` 属性的问题。[#38052](https://github.com/apache/doris/pull/38052) - -- 修复设置 File Cache TTL 后,Segment Footer TTL 未正确设置的问题。[#37485](https://github.com/apache/doris/pull/37485) - -- 修复 File Cache 因大量转换 Cache 类型可能会导致 Coredump 的问题。[#38518](https://github.com/apache/doris/pull/38518) - -- 修复 File Cache 可能会泄漏 fd 的问题。[#38051](https://github.com/apache/doris/pull/38051) - -- 修复 Schema Change Job 覆盖 Compaction Job 导致 Base Tablet Compaction 不能正常完成的问题。[#38210](https://github.com/apache/doris/pull/38210) - -- 修复 Base Compaction Score 因 Data Race 可能会不准确的问题。[#38006](https://github.com/apache/doris/pull/38006) - -- 修复导入返回的错误信息可能不能正确上传到对象存储的问题。[#38359](https://github.com/apache/doris/pull/38359) - -- 修复存算分离模式和存算一体模式 2PC 导入返回信息不一致的问题。[#38076](https://github.com/apache/doris/pull/38076) - -- 修复 File Cache 预热未正确设置 File Size 导致 Coredump 的问题。[#38939](https://github.com/apache/doris/pull/38939) - -- 修复部分列更新没有正确出列 Delete 的问题。[#37151](https://github.com/apache/doris/pull/37151) - -- 修复存算分离模式权限持久化兼容问题。[#38136](https://github.com/apache/doris/pull/38136) [#37708](https://github.com/apache/doris/pull/37708) - -- 修复 Observer 遇到 `-230` 错误没有进行正确重试的问题。[#37625](https://github.com/apache/doris/pull/37625) - -- 修复 `show load` 带条件时没有正确 analyze 的问题。[#37656](https://github.com/apache/doris/pull/37656) - -- 修复存算分离模式下 `show streamload` 导致 BE Coredump 的问题。[#37903](https://github.com/apache/doris/pull/37903) - -- 修复 `copy into` 在严格模式下未正确校验列名的问题。[#37650](https://github.com/apache/doris/pull/37650) - -- 修复一表多流导入没有权限的问题。[#38878](https://github.com/apache/doris/pull/38878) - -- 修复 getVersionUpdateTimeMs 可能会越界的问题。[#38074](https://github.com/apache/doris/pull/38074) - -- 修复 FE Azure Blob List 没有实现正确的问题。[#37986](https://github.com/apache/doris/pull/37986) - -- 修复 Azure Blob 回收时间计算不准确导致不触发回收的问题。[#37535](https://github.com/apache/doris/pull/37535) - -- 修复存算分离模式下倒排索引文件漏删的问题。[#38306](https://github.com/apache/doris/pull/38306) - -### Lakehouse - -- 修复 Oracle Catalog 读取二进制数据的问题。[#37078](https://github.com/apache/doris/pull/37078) - -- 修复多 FE 情况下,获取外表元数据可能导致的死锁问题。[#37756](https://github.com/apache/doris/pull/37756) - -- 修复 JNI Scanner 打开失败导致 BE 节点宕机的问题。[#37697](https://github.com/apache/doris/pull/37697) - -- 修复 Trino Connector Catalog 读取 Date 类型慢的问题。[#37266](https://github.com/apache/doris/pull/37266) - -- 优化 Hive Catalog 的 Kerberos 认证逻辑。[#37301](https://github.com/apache/doris/pull/37301) - -- 修复解析 MinIO 属性时,Region 属性可能解析错误的问题。[#37249](https://github.com/apache/doris/pull/37249) - -- 修复 FE 创建过多的 FileSystem 导致内存泄漏的问题。[#36954](https://github.com/apache/doris/pull/36954) - -- 修复读取 Paimon 时区信息错误的问题。[#37716](https://github.com/apache/doris/pull/37716) - -- 修复 Hive 写回操作可能导致的线程泄漏问题。[#36990](https://github.com/apache/doris/pull/36990) - -- 修复开启 Hive Metastore Event 同步功能导致的空指针问题。[#38421](https://github.com/apache/doris/pull/38421) - -- 修复创建 Catalog 时报错信息不清晰或卡死的情况。[#37551](https://github.com/apache/doris/pull/37551) - -- 修复读取 Hive Text 格式表时与 Hive 行为不一致的问题。[#37638](https://github.com/apache/doris/pull/37638) - -- 修复切换 Catalog 和 Database 逻辑错误的问题。[#37828](https://github.com/apache/doris/pull/37828) - -### MySQL 兼容性 - -- 修复开启 SSL 后,MySQL 协议中某些 Flag 设置不正确的问题。[#38086](https://github.com/apache/doris/pull/38086) - -### 异步物化视图 - -- 修复基表分区数量非常多时可能导致的构建失败问题。[#37589](https://github.com/apache/doris/pull/37589) - -- 修复构建嵌套物化视图时,即使可以进行分区刷新,也错误地进行了全表刷新的问题。[#38698](https://github.com/apache/doris/pull/38698) - -- 修复分区刷新在分析分区依赖时,不能处理同时存在合法和不合法依赖关系的问题。[#38367](https://github.com/apache/doris/pull/38367) - -- 修复最终返回结果包含 NULL Type 导致异步物化视图可能构建失败的问题。[#37019](https://github.com/apache/doris/pull/37019) - -- 当包含同名的同步物化视图和异步物化视图时,透明改写可能出现规划错误。[#37311](https://github.com/apache/doris/pull/37311) - -### 同步物化视图 - -- 现在改写后的同步物化视图也可以正确地进行分区裁剪。[#38527](https://github.com/apache/doris/pull/38527) - -- 同步物化视图改写时,不再选择数据未就绪的同步物化视图。[#38148](https://github.com/apache/doris/pull/38148) - -### 查询优化器 - -- 修复查询和 Delete 等操作同时进行可能导致的死锁问题。[#38660](https://github.com/apache/doris/pull/38660) - -- 修复分桶裁剪在 Decimal 列分桶上可能错误裁剪的问题。[#37889](https://github.com/apache/doris/pull/37889) - -- 修复当 Mark Join 参与 Join Reorder 时,规划可能出现错误的问题。[#39152](https://github.com/apache/doris/pull/39152) - -- 修复关联子查询关联条件不是简单列时,结果错误的问题。[#37644](https://github.com/apache/doris/pull/37644) - -- 修复分区裁剪不能正确处理 or 表达式的问题。[#38897](https://github.com/apache/doris/pull/38897) - -- 修复当进行 JOIN 和 AGG 交换执行顺序的优化时,可能导致的规划报错问题。[#37343](https://github.com/apache/doris/pull/37343) - -- 修复 `str_to_date` 在 DATEV1 类型上进行常量折叠计算错误的问题。[#37360](https://github.com/apache/doris/pull/37360) - -- 修复 ACOS 函数常量折叠返回非 NaN 的问题。[#37932](https://github.com/apache/doris/pull/37932) - -- 修复偶尔出现的规划报错 "The children format needs to be [WhenClause+, DefaultValue?]" 的问题。[#38491](https://github.com/apache/doris/pull/38491) - -- 修复当投影中包含窗口函数,且同时存在一个列的原始列和其别名时,规划可能出现错误的问题。[#38166](https://github.com/apache/doris/pull/38166) - -- 修复当聚合参数中含有 Lambda 表达式,可能导致规划报错的问题。[#37109](https://github.com/apache/doris/pull/37109) - -- 修复在极端情况下可能出现的 Insert 报错:"MultiCastDataSink cannot be cast to DataStreamSink" 的问题。[#38526](https://github.com/apache/doris/pull/38526) - -- 修复创建表时,新优化器对于传入的 `char(0)/varchar(0)` 没有正确处理的问题。[#38427](https://github.com/apache/doris/pull/38427) - -- 修复 `char(255) toSql` 行为不正确的问题。[#37340](https://github.com/apache/doris/pull/37340) - -- 修复 `agg_state `类型内部的 nullable 属性可能规划错误的问题。[#37489](https://github.com/apache/doris/pull/37489) - -- 修复 Mark Join 时行数统计不准确的问题。[#38270](https://github.com/apache/doris/pull/38270) - -### 查询执行 - -- 修复多个场景下,Pipeline 执行引擎被卡住导致查询不结束的问题。[#38657](https://github.com/apache/doris/pull/38657) [#38206](https://github.com/apache/doris/pull/38206) [#38885](https://github.com/apache/doris/pull/38885) [#38151](https://github.com/apache/doris/pull/38151) [#37297](https://github.com/apache/doris/pull/37297) - -- 修复 NULL 和非 NULL 列在差集计算时导致的 Coredump 问题。[#38750](https://github.com/apache/doris/pull/38750) - -- 修复 Delete 语句中 DECIMAL 类型为纯小数时报错的问题。[#37801](https://github.com/apache/doris/pull/37801) - -- 修复 `width_bucket` 函数结果错误的问题。[#37892](https://github.com/apache/doris/pull/37892) - -- 修复当单行数据很大且返回结果集也很大时(超过 2GB)查询报错的问题。[#37990](https://github.com/apache/doris/pull/37990) - -- 修复单副本导入时 rpc 链接没有正确释放导致的 Coredump 问题。[#38087](https://github.com/apache/doris/pull/38087) - -- 修复 `foreach` 函数处理 NULL 导致的 Coredump 问题。[#37349](https://github.com/apache/doris/pull/37349) - -- 修复 stddev 在 DecimalV2 类型下结果错误的问题。[#38731](https://github.com/apache/doris/pull/38731) - -- 修复` bitmap union` 计算性能慢的问题。[#37816](https://github.com/apache/doris/pull/37816) - -- 修复 Profile 中聚合算子的 RowsProduced 没有设置的问题。[#38271](https://github.com/apache/doris/pull/38271) - -- 修复 Hash Join 下计算 Hash 表 Bucket 数目时溢出的问题。[#37193](https://github.com/apache/doris/pull/37193) [#37493](https://github.com/apache/doris/pull/37493) - -- 修复 `jemalloc cache memory tracker` 记录不准确的问题。[#37464](https://github.com/apache/doris/pull/37464) - -- 增加配置项 `enable_stacktrace`,用户可以通过设置此选项来控制 BE 日志中是否输出异常栈。[#37713](https://github.com/apache/doris/pull/37713) - -- 修复 Arrow Flight SQL 在设置 `enable_parallel_result_sink` 为 false 时不能正常工作的问题。[#37779](https://github.com/apache/doris/pull/37779) - -- 修复错误地使用 Colocate Join 的问题。[#37361](https://github.com/apache/doris/pull/37361) [#37729](https://github.com/apache/doris/pull/37729) - -- 修复 `round` 函数在 DECIMAL128 类型上计算溢出的问题。[#37733](https://github.com/apache/doris/pull/37733) [#38106](https://github.com/apache/doris/pull/38106) - -- 修复 `sleep` 函数传参 const 字符串时的 Coredump 问题。[#37681](https://github.com/apache/doris/pull/37681) - -- 增加审计日志的队列长度,解决了数千并发场景下审计日志不能正常记录的问题。[#37786](https://github.com/apache/doris/pull/37786) - -- 修复创建 Workload Group 导致的线程数过多,导致 BE Coredump 的问题。[#38096](https://github.com/apache/doris/pull/38096) - -- 修复 MULTI_MATCH_ANY 函数导致的 Coredump 问题。[#37959](https://github.com/apache/doris/pull/37959) - -- 修复`insert overwrite auto partition `导致事务回滚的问题。[#38103](https://github.com/apache/doris/pull/38103) - -- 修复 TimeUtils formatter 没有使用正确时区的问题。[#37465](https://github.com/apache/doris/pull/37465) - -- 修复 week/yearweek 常量折叠场景下结果错误的问题。[#37376](https://github.com/apache/doris/pull/37376) - -- 修复 `convert_tz` 函数结果错误的问题。[#37358](https://github.com/apache/doris/pull/37358) [#38764](https://github.com/apache/doris/pull/38764) - -- 修复 `collect_set` 函数结合窗口函数使用时 Coredump 的问题。[#38234](https://github.com/apache/doris/pull/38234) - -- 修复 `percentile_approx` 在滚动升级过程中导致的 Coredump 问题。[#39321](https://github.com/apache/doris/pull/39321) - -- 修复 `mod` 函数在异常输入时导致的 Coredump 问题。[#37999](https://github.com/apache/doris/pull/37999) - -- 修复 Broadcast Join 在 probe 开始运行时 Hash Table 构建未完成的问题。[#37643](https://github.com/apache/doris/pull/37643) - -- 修复多线程下执行相同表达式可能导致 Java UDF 结果错误的问题。[#38612](https://github.com/apache/doris/pull/38612) - -- 修复 `conv` 函数返回类型错误导致的溢出问题。[#38001](https://github.com/apache/doris/pull/38001) - -- 修复 `json_replace` 函数返回类型不正确的问题。[#3701](https://github.com/apache/doris/pull/37014) - -- 修复 `percentile` 聚合函数 Nullable 属性设置不合理的问题。[#37330](https://github.com/apache/doris/pull/37330) - -- 修复 `histogram` 函数结果不稳定的问题。[#38608](https://github.com/apache/doris/pull/38608) - -- 修复 Profile 中 Task State 显示不正确的问题。[#38082](https://github.com/apache/doris/pull/38082) - -- 修复系统刚启动时部分 query 被错误取消的问题。[#37662](https://github.com/apache/doris/pull/37662) - -### 半结构化数据管理 - -- 修复时间序列压缩的一些问题。[#39170](https://github.com/apache/doris/pull/39170) [#39176](https://github.com/apache/doris/pull/39176) - -- 修复压缩过程中索引大小统计错误的问题。[#37232](https://github.com/apache/doris/pull/37232) - -- 修复倒排索引对不分词的超长字符串匹配可能不正确的问题。[#37679](https://github.com/apache/doris/pull/37679) [#38218](https://github.com/apache/doris/pull/38218) - -- 修复 `array_range` 和 `array_with_const` 函数在大数据量下内存占用高的问题。[#38284](https://github.com/apache/doris/pull/38284) [#37495](https://github.com/apache/doris/pull/37495) - -- 修复选择 ARRAY / MAP / STRUCT 类型的列时可能出现的 Coredump 问题。[#37936](https://github.com/apache/doris/pull/37936) - -- 修复 Stream Load 指定 jsonpath 时 simdjson 解析错误导致导入失败的问题。[#38490](https://github.com/apache/doris/pull/38490) - -- 修复 JSON 数据中有重复 Key 时处理异常的问题。[#38146](https://github.com/apache/doris/pull/38146) - -- 修复 DROP INDEX 后可能出现查询报错的问题。[#37646](https://github.com/apache/doris/pull/37646) - -- 修复索引压缩时在合并行检查中的错误返回问题。[#38732](https://github.com/apache/doris/pull/38732) - -- 倒排索引 v2 格式现在支持修改列名。[#38079](https://github.com/apache/doris/pull/38079) - -- 修复没有索引时 MATCH 函数匹配空字符串时 Coredump 的问题。[#37947](https://github.com/apache/doris/pull/37947) - -- 修复倒排索引对 NULL 值处理的问题。[#37921](https://github.com/apache/doris/pull/37921) [#37842](https://github.com/apache/doris/pull/37842) [#38741](https://github.com/apache/doris/pull/38741) - -- 修复 FE 重启后 `row_store_page_size` 不正确的问题。[#38240](https://github.com/apache/doris/pull/38240) - -### 其他 - -- 修复时区配置问题,现在默认时区不再固定为 UTC+8,而是从系统配置中获取。[#37294](https://github.com/apache/doris/pull/37294) - -- 修复由于存在多个 JSR 规范实现导致使用 Ranger 时出现的类冲突问题。[#37575](https://github.com/apache/doris/pull/37575) - -- 修复部分 BE 代码中字段可能未初始化的问题。[#37403](https://github.com/apache/doris/pull/37403) - -- 修复 Random Distributed 表 Delete 语句报错的问题。[#37985](https://github.com/apache/doris/pull/37985) - -- 修复创建同步物化视图时错误地需要基表的 `alter_priv` 权限问题。[#38011](https://github.com/apache/doris/pull/38011) - -- 修复当 TVF 中使用了 Resource 时未对 Resource 鉴权的问题。[#36928](https://github.com/apache/doris/pull/36928) - - -## 致谢 - -@133tosakarin、 @924060929、 @AshinGau、 @Baymine、 @BePPPower、 @BiteTheDDDDt、 @ByteYue、 @CalvinKirs、 @Ceng23333、 @DarvenDuan、 @FreeOnePlus、 @Gabriel39、 @HappenLee、 @JNSimba、 @Jibing-Li、 @KassieZ、 @Lchangliang、 @LiBinfeng-01、 @Mryange、 @SWJTU-ZhangLei、 @TangSiyang2001、 @Tech-Circle-48、 @Vallishp、 @Yukang-Lian、 @Yulei-Yang、 @airborne12、 @amorynan、 @bobhan1、 @cambyzju、 @cjj2010、 @csun5285、 @dataroaring、 @deardeng、 @eldenmoon、 @englefly、 @feiniaofeiafei、 @felixwluo、 @freemandealer、 @gavinchou、 @ghkang98、 @hello-stephen、 @hubgeter、 @hust-hhb、 @jacktengg、 @kaijchen、 @kaka11chen、 @keanji-x、 @liaoxin01、 @liutang123、 @luwei16、 @luzhijing、 @lxr599、 @morningman、 @morrySnow、 @mrhhsg、 @mymeiyi、 @platoneko、 @qidaye、 @qzsee、 @seawinde、 @shuke987、 @sollhui、 @starocean999、 @suxiaogang223、 @w41ter、 @wangbo、 @wangshuo128、 @whutpencil、 @wsjz、 @wuwenchi、 @wyxxxcat、 @xiaokang、 @xiedeyantu、 @xinyiZzz、 @xy720、 @xzj7019、 @yagagagaga、 @yiguolei、 @yujun777、 @z404289981、 @zclllyybb、 @zddr、 @zfr9527、 @zhangbutao、 @zhangstar333、 @zhannngchen、 @zhiqiang-hhhh、 @zjj、 @zy-kkk、 @zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.2.md deleted file mode 100644 index 92b773a3d188f..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.2.md +++ /dev/null @@ -1,323 +0,0 @@ ---- -{ - "title": "Release 3.0.2", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.2 版本已于 2024 年 10 月 15 日正式发布。 3.0.2 版本在存算分离、存储、湖仓一体、查询优化器以及执行引擎持续升级改进,欢迎大家下载使用。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 3.0.2 版本已于 2024 年 10 月 15 日正式发布。** 3.0.2 版本在存算分离、存储、湖仓一体、查询优化器以及执行引擎持续升级改进,欢迎大家下载使用。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - -## 行为变更 - -### 存储 - -- 限制单个备份任务的 Tablet 数量,避免 FE 内存溢出。[#40518](https://github.com/apache/doris/pull/40518) -- `SHOW PARTITIONS`命令现在显示分区的`CommittedVersion`。[#28274](https://github.com/apache/doris/pull/28274) - -### 其他 - -- `fe.log`的默认打印模式(异步)现在包含文件行号信息。如果遇到因行号输出导致的性能问题,请选择 BRIEF 模式。[#39419](https://github.com/apache/doris/pull/39419) -- 默认将 Session 变量`ENABLE_PREPARED_STMT_AUDIT_LOG` 的值从 `true` 更改为 `false`,不再打印 Prepare 语句的审计日志。[#38865](https://github.com/apache/doris/pull/38865) -- 将 Session 变量 `max_allowed_packet` 的默认值从 1MB 调整为 16MB,与 MySQL 8.4 保持一致。[#38697](https://github.com/apache/doris/pull/38697) -- FE 和 BE 的 JVM 默认使用 UTF-8 字符集。[#39521](https://github.com/apache/doris/pull/39521) - -## 新特性 - -### 存储 - -- 备份和恢复现在支持清除不在备份中的表或分区。[#39028](https://github.com/apache/doris/pull/39028) - -### 存算分离 - -- 支持并行回收多个 Tablet 上的过期数据。[#37630](https://github.com/apache/doris/pull/37630) -- 支持通过`ALTER`语句变更 Storage Vault。[#38685](https://github.com/apache/doris/pull/38685) [#37606](https://github.com/apache/doris/pull/37606) -- 支持单个事务同时导入大量 Tablet(5000+)(实验性功能)。[#38243](https://github.com/apache/doris/pull/38243) -- 支持自动中止因节点重启等原因导致的未决事务,解决未决事务阻塞 Secommission 或 Schema Change 的问题。[#37669](https://github.com/apache/doris/pull/37669) -- 新增 Session 变量 `enable_segment_cache` 控制查询时是否使用 Segment Cache(默认为`true`)。[#37141](https://github.com/apache/doris/pull/37141) -- 解决存算分离模式下进行 Schema Change 时不能大量导入的问题。[#39558](https://github.com/apache/doris/pull/39558) -- 支持在存算分离模式下允许添加多个 Follower 角色的 FE。[#38388](https://github.com/apache/doris/pull/38388) -- 支持在无盘或低性能 HDD 环境下使用内存作为 File Cache 以加速查询。[#38811](https://github.com/apache/doris/pull/38811) - -### Lakehouse - -- 新增 Lakesoul Catalog -- 新增系统表 `catalog_meta_cache_statistics`,用于查看 External Catalog 中各类元数据缓存的使用情况。[#40155](https://github.com/apache/doris/pull/40155) - -### 查询优化器 - -- 支持 `is [not] true/false`表达式。[#38623](https://github.com/apache/doris/pull/38623) - -### 查询执行 - -- 新增 CRC32 函数。[#38204](https://github.com/apache/doris/pull/38204) -- 新增聚合函数 Skew 和 Kurt。[#41277](https://github.com/apache/doris/pull/41277) -- 将 Profile 持久化到 FE 的磁盘中,以保留更多的 Profile。[#33690](https://github.com/apache/doris/pull/33690) -- 新增系统表`workload_group_privileges`以查看 Workload Group 相关的权限信息。[#38436](https://github.com/apache/doris/pull/38436) -- 新增系统表`workload_group_resource_usage`以监控 Workload Group 的资源统计信息。[#39177](https://github.com/apache/doris/pull/39177) -- Workload Group 现在支持限制本地 IO 和远程 IO 的读取。[#39012](https://github.com/apache/doris/pull/39012) -- Workload Group 现在支持 cgroupv2 以限制 CPU 使用。[#39374](https://github.com/apache/doris/pull/39374) -- 新增系统表`information_schema.partitions`以查看一些建表属性。[#40636](https://github.com/apache/doris/pull/40636) - -### 其他 - -- 支持使用`SHOW`语句展示 BE 的配置信息,例如`SHOW BACKEND CONFIG LIKE ${pattern}`。[#36525](https://github.com/apache/doris/pull/36525) - -## 改进与优化 - -### 导入 - -- 优化了 Routine Load 在遇到 Kafka 频繁 EOF 时的导入效率。[#39975](https://github.com/apache/doris/pull/39975) -- Stream Load 结果中增加了读取 HTTP 数据的耗时时间`ReceiveDataTimeMs`,可以快速判断网络原因导致的 Stream Load 慢问题。[#40735](https://github.com/apache/doris/pull/40735) -- 优化了 Routine Load 超时逻辑,避免了倒排和 MOW 写入频繁超时问题。[#40818](https://github.com/apache/doris/pull/40818) - -### 存储 - -- 支持批量添加分区。[#37114](https://github.com/apache/doris/pull/37114) - -### 存算分离 - -- 添加了 meta-service HTTP 接口`/MetaService/http/show_meta_ranges`,便于统计 FDB 中 KV 分布组成。[#39208](https://github.com/apache/doris/pull/39208) -- meta-service/recycler stop 脚本确保进程完全退出后才返回。[#40218](https://github.com/apache/doris/pull/40218) -- 支持使用 Session 变量`version_comment`(Cloud Mode)来显示当前部署模式为存算分离模式。[#38269](https://github.com/apache/doris/pull/38269) -- 修复了提交事务失败时返回的详细消息。[#40584](https://github.com/apache/doris/pull/40584) -- 支持使用一个 meta-service 进程同时提供元数据服务和数据回收服务。[#40223](https://github.com/apache/doris/pull/40223) -- 优化了 file_cache 的默认配置,避免了未设置时可能导致的无法正确运行的问题。[#41421](https://github.com/apache/doris/pull/41421) [#41507](https://github.com/apache/doris/pull/41507) -- 通过批量获取多个 Partition 的 Version 提高了查询性能。[#38949](https://github.com/apache/doris/pull/38949) -- 延迟变更 Tablet 的分布,避免了临时网络抖动引起的查询性能问题。[#40371](https://github.com/apache/doris/pull/40371) -- 优化了 Balance 逻辑中的读写锁。[#40633](https://github.com/apache/doris/pull/40633) -- 提高了 File Cache 在重启/宕机等情况下处理 TTL 文件名的鲁棒性。[#40226](https://github.com/apache/doris/pull/40226) -- 增加了 BE HTTP 接口`/api/file_cache?op=hash`,方便计算 Segment 文件在盘上的 Hash 文件名。[#40831](https://github.com/apache/doris/pull/40831) -- 优化了统一命名,兼容使用 Compute Group 代表 BE 分组(原 Cloud Cluster)。[#40767](https://github.com/apache/doris/pull/40767) -- 优化了主键表计算 Delete Bitmap 时获取锁的等待时间。[#40341](https://github.com/apache/doris/pull/40341) -- 当主键表 Delete Bitmap 数量多时,通过提前合并多个 Delete Bitmap 来优化查询时 CPU 消耗高的问题。[#40204](https://github.com/apache/doris/pull/40204) -- 支持通过 SQL 语句管理存算分离模式下的 FE/BE 节点,隐藏部署存算分离模式时直接和 meta-service 交互的逻辑。[#40264](https://github.com/apache/doris/pull/40264) -- 增加了快速部署 FDB 脚本。[#39803](https://github.com/apache/doris/pull/39803) -- 优化了`SHOW CACHE HOTSPOT`的输出,使其和其他`SHOW`语句的列名风格统一。[#41322](https://github.com/apache/doris/pull/41322) -- 使用 Storage Vault 作为存储后端时,不允许使用`latest_fs()`以规避同个表绑定不同的存储后端。[#40516](https://github.com/apache/doris/pull/40516) -- 优化了 MOW 表导入时计算 Delete Bitmap 的超时策略。[#40562](https://github.com/apache/doris/pull/40562) [#40333](https://github.com/apache/doris/pull/40333) -- 存算分离模式下 be.conf 的 `enable_file_cache` 默认开启。[#41502](https://github.com/apache/doris/pull/41502) - -### Lakehouse - -- 读取 CSV 格式的表时,支持通过会话`keep_carriage_return`设置对`\r`符号的读取行为。[#39980](https://github.com/apache/doris/pull/39980) -- BE 的 JVM 最大内存默认调整为 2GB(仅影响新部署用户)。[#41403](https://github.com/apache/doris/pull/41403) -- Hive Catalog 新增`hive.recursive_directories_table`和`hive.ignore_absent_partitions`属性,用于指定是否递归遍历数据目录,以及是否忽略缺失的分区。[#39494](https://github.com/apache/doris/pull/39494) -- 优化了 Catalog 刷新逻辑,避免了刷新产生大量连接。[#39205](https://github.com/apache/doris/pull/39205) -- `SHOW CREATE DATABASE`和`SHOW CREATE TABLE`针对外部数据源,增加了 Location 信息显示。[#39179](https://github.com/apache/doris/pull/39179) -- 新优化器支持通过`INSERT INTO`命令将数据插入到 JDBC 外表。[#41511](https://github.com/apache/doris/pull/41511) -- MaxCompute Catalog 支持复杂类型。[#39259](https://github.com/apache/doris/pull/39259) -- 优化了外表数据分片的读取合并逻辑。[#38311](https://github.com/apache/doris/pull/38311) -- 优化了外表元数据缓存的一些刷新策略。[#38506](https://github.com/apache/doris/pull/38506) -- Paimon 表支持`IN/NOT IN`谓词下推。[#38390](https://github.com/apache/doris/pull/38390) -- 兼容 Paimon 0.9 版本创建的 Parquet 格式的表。[#41020](https://github.com/apache/doris/pull/41020) - -### 异步物化视图 - -- 构建异步物化视图支持同时使用 Immediate 和 Starttime。[#39573](https://github.com/apache/doris/pull/39573) -- 基于外表的异步物化视图,在刷新物化视图前会刷新外表的元数据缓存,保证基于最新外表数据构建。[#38212](https://github.com/apache/doris/pull/38212) -- 分区增量构建支持按照周和季度粒度上卷。[#39286](https://github.com/apache/doris/pull/39286) - -### 查询优化器 - -- 聚合函数`GROUP_CONCAT`现在支持同时使用`DISTINCT`和`ORDER BY`。[#38080](https://github.com/apache/doris/pull/38080) -- 优化了统计信息的收集、使用,以及估算行数和代价计算的逻辑,现在可以生成更高效稳定的执行计划。 -- 窗口函数分区数据预过滤支持包含多个窗口函数的情况。[#38393](https://github.com/apache/doris/pull/38393) - -### 查询执行 - -- 通过并行运行 Prepare Pipeline Task 来降低查询延时。[#40874](https://github.com/apache/doris/pull/40874) -- 在 Profile 中显示 Catalog 信息。[#38283](https://github.com/apache/doris/pull/38283) -- 优化了`IN`过滤条件的计算性能。[#40917](https://github.com/apache/doris/pull/40917) -- 在 K8S 中支持 cgroupv2 来限制 Doris 的内存使用。[#39256](https://github.com/apache/doris/pull/39256) -- 优化了字符串到 DATETIME 类型的转换性能。[#38385](https://github.com/apache/doris/pull/38385) -- 当字符串是一个小数时,支持将其 CAST 为 INT,这将更兼容 MySQL 的某些行为。[#38847](https://github.com/apache/doris/pull/38847) - -### 半结构化数据管理 - -- 优化了倒排索引匹配的性能。[#41122](https://github.com/apache/doris/pull/41122) -- 暂时禁止在数组上创建带分词的倒排索引。[#39062](https://github.com/apache/doris/pull/39062) -- `explode_json_array`支持二进制 JSON 类型。[#37278](https://github.com/apache/doris/pull/37278) -- IP 数据类型支持 BloomFilter 索引。[#39253](https://github.com/apache/doris/pull/39253) -- IP 数据类型支持行存。[#39258](https://github.com/apache/doris/pull/39258) -- ARRAY、MAP、STRUCT 嵌套数据类型支持 Schema Change。[#39210](https://github.com/apache/doris/pull/39210) -- 创建 MTMV 时遇到 VARIANT 数据类型自动截断 KEY。[#39988](https://github.com/apache/doris/pull/39988) -- 查询时懒加载倒排索引提升性能。[#38979](https://github.com/apache/doris/pull/38979) -- `add inverted index file size for open file`。[#37482](https://github.com/apache/doris/pull/37482) -- Compaction 时减少倒排索引访问对象存储接口提升性能。[#41079](https://github.com/apache/doris/pull/41079) -- 增加了 3 个倒排索引相关的 Query Profile Metric。[#36696](https://github.com/apache/doris/pull/36696) -- 减少非 PreparedStatement SQL 的 Cache 开销提升性能。[#40910](https://github.com/apache/doris/pull/40910) -- 预热缓存支持倒排索引。[#38986](https://github.com/apache/doris/pull/38986) -- 倒排索引写入即缓存。[#39076](https://github.com/apache/doris/pull/39076) - -### 兼容性 - -- 修复了 Thrift ID 在 Master 上与 Branch-2.1 不兼容的问题。[#41057](https://github.com/apache/doris/pull/41057) - -### 其他 - -- BE HTTP API 支持鉴权,需要鉴权时将 `config::enable_all_http_auth` 设置为 true(默认为 false)。[#39577](https://github.com/apache/doris/pull/39577) -- 优化了 REFRESH 操作所需的用户权限。从 ALTER 权限放宽到 SHOW 权限。[#39008](https://github.com/apache/doris/pull/39008) -- 减少了调用 `advanceNextId()` 时 nextId 的范围。[#40160](https://github.com/apache/doris/pull/40160) -- 优化了 Java UDF 的缓存机制。[#40404](https://github.com/apache/doris/pull/40404) - -## 缺陷修复 - -### 导入 - -- 修复了`abortTransaction`没有处理返回码的问题。[#41275](https://github.com/apache/doris/pull/41275) -- 修复了存算分离模式下提交/中止事务失败时未调用`afterCommit/afterAbort`的问题。[#41267](https://github.com/apache/doris/pull/41267) -- 修复了存算分离模式下 Routine Load 修改消费偏移量无法工作的问题。[#39159](https://github.com/apache/doris/pull/39159) -- 修复了获取错误日志文件路径时重复关闭文件的问题。[#41320](https://github.com/apache/doris/pull/41320) -- 修复了存算分离模式下 Routine Load 作业进度缓存不正确的问题。[#39313](https://github.com/apache/doris/pull/39313) -- 修复了存算分离模式下 Routine Load 提交事务失败导致卡住的问题。[#40539](https://github.com/apache/doris/pull/40539) -- 修复了存算分离模式下 Routine Load 一直报数据质量检查错误的问题。[#39790](https://github.com/apache/doris/pull/39790) -- 修复了存算分离模式下 Routine Load 未在提交前事务进行检查的问题。[#39775](https://github.com/apache/doris/pull/39775) -- 修复了存算分离模式下 Routine Load 未在中止事务前进行检查的问题。[#40463](https://github.com/apache/doris/pull/40463) -- 修复了 Cluster Key 不支持某些数据类型的问题。[#38966](https://github.com/apache/doris/pull/38966) -- 修复了事务被重复提交的问题。[#39786](https://github.com/apache/doris/pull/39786) -- 修复了 WAL 在 BE 退出时 Use After Free 的问题。[#33131](https://github.com/apache/doris/pull/33131) -- 修复了存算分离模式下 WAL 回放未跳过已经完成了的导入事务的问题。[#41262](https://github.com/apache/doris/pull/41262) -- 修复了存算分离模式下 Group Commit 选择 BE 的逻辑。[#39986](https://github.com/apache/doris/pull/39986) [#38644](https://github.com/apache/doris/pull/38644) -- 修复了 Insert Into 开启 Group Commit 时 BE 可能 Coredump 的问题。[#39339](https://github.com/apache/doris/pull/39339) -- 修复了 Insert Into 开启 Group Commit 时可能会卡住的问题。[#39391](https://github.com/apache/doris/pull/39391) -- 修复了导入不打开 Group Commit 选项时可能会报找不到表的问题。[#39731](https://github.com/apache/doris/pull/39731) -- 修复了 Tablet 数量太多提交事务超时的问题。[#40031](https://github.com/apache/doris/pull/40031) -- 修复了 Auto Partition 并发 open 的问题。[#38605](https://github.com/apache/doris/pull/38605) -- 修复了导入锁粒度太大的问题。[#40134](https://github.com/apache/doris/pull/40134) -- 修复了 Varchar 长度为 0 导致 Coredump 的问题。[#40940](https://github.com/apache/doris/pull/40940) -- 修复了日志打印的 index ID 值不正确的问题。[#38790](https://github.com/apache/doris/pull/38790) -- 修复了 Memtable 前移未 Close BRPC Streaming 的问题。[#40105](https://github.com/apache/doris/pull/40105) -- 修复了 Memtable 前移 bvar 统计不准确的问题。[#39075](https://github.com/apache/doris/pull/39075) -- 修复了 Memtable 前移多副本容错的问题。[#38003](https://github.com/apache/doris/pull/38003) -- 修复了 Routine Load 一流多表错误计算消息长度的问题。[#40367](https://github.com/apache/doris/pull/40367) -- 修复了 Broker Load 进度汇报不准确的问题。[#40325](https://github.com/apache/doris/pull/40325) -- 修复了 Broker Load 扫描数据量汇报不准确的问题。[#40694](https://github.com/apache/doris/pull/40694) -- 修复了存算分离模式下 Routine Load 并发的问题。[#39242](https://github.com/apache/doris/pull/39242) -- 修复了存算分离模式下 Routine Load Job 被取消的问题。[#39514](https://github.com/apache/doris/pull/39514) -- 修复了删除 Kafka Topic 时进度未被重置的问题。[#38474](https://github.com/apache/doris/pull/38474) -- 修复了 Routine Load 事务状态转换时更新进度的问题。[#39311](https://github.com/apache/doris/pull/39311) -- 修复了 Routine Load 从暂停状态切换到暂停状态的问题。[#40728](https://github.com/apache/doris/pull/40728) -- 修复了 Stream Load 记录因数据库被删除被漏记录的问题。[#39360](https://github.com/apache/doris/pull/39360) - -### 存储 - -- 修复了 Storage Policy 丢失的问题。[#38700](https://github.com/apache/doris/pull/38700) -- 修复了跨版本备份恢复报错的问题。[#38370](https://github.com/apache/doris/pull/38370) -- 修复了 CCR Binlog NPE 问题。[#39909](https://github.com/apache/doris/pull/39909) -- 修复了可能的 MOW 重复 Key 问题。[#41309](https://github.com/apache/doris/pull/41309) [#39791](https://github.com/apache/doris/pull/39791) [#39958](https://github.com/apache/doris/pull/39958) [#38369](https://github.com/apache/doris/pull/38369) [#38331](https://github.com/apache/doris/pull/38331) -- 修复了高频写入场景下备份恢复之后不能写入的问题。[#40118](https://github.com/apache/doris/pull/40118) [#38321](https://github.com/apache/doris/pull/38321) -- 修复了删除空字符串和 Schema Change 交叉可能触发的数据错误问题。[#41064](https://github.com/apache/doris/pull/41064) -- 修复了列更新导致的数据统计不正确问题。[#40880](https://github.com/apache/doris/pull/40880) -- 限制了 Tablet Meta PB 的大小,防止大小过大导致 BE 宕机。[#39455](https://github.com/apache/doris/pull/39455) -- 修复了`begin; insert into values; commit`新优化器可能的列错位问题。[#39295](https://github.com/apache/doris/pull/39295) - -### 存算分离 - -- 修复了存算分离模式下多个 FE 的 Tablet 分布可能不一致的问题。[#41458](https://github.com/apache/doris/pull/41458) -- 修复了 TVF 在多计算组环境下可能不工作的问题。[#39249](https://github.com/apache/doris/pull/39249) -- 修复了存算分离模式 BE 退出时 Compaction 使用了已经释放的资源问题。[#39302](https://github.com/apache/doris/pull/39302) -- 修复了自动启停可能导致 FE replay 卡住的问题。[#40027](https://github.com/apache/doris/pull/40027) -- 修复了 BE 状态和 Meta-Service 中存储的状态不一致的问题。[#40799](https://github.com/apache/doris/pull/40799) -- 修复了 FE->Meta-Service 连接池不能自动过期重连的问题。[#41202](https://github.com/apache/doris/pull/41202) [#40661](https://github.com/apache/doris/pull/40661) -- 修复了 Rebalance 过程中有一些 Tablet 可能会来回进行非预期的 Balance 问题。[#39792](https://github.com/apache/doris/pull/39792) -- 修复了 FE 重启后 Storage Vault 权限丢失的问题。[#40260](https://github.com/apache/doris/pull/40260) -- 修复了 Tablet 行数等统计信息可能因为 FDB Scan Range 分页导致统计不全的问题。[#40494](https://github.com/apache/doris/pull/40494) -- 修复了同个 Label 下关联大量的 Abort 事务导致的性能问题。[#40606](https://github.com/apache/doris/pull/40606) -- 修复了 commit_txn 没有自动重入的问题,保持存算一体和存算分离行为一致。[#39615](https://github.com/apache/doris/pull/39615) -- 修复了 Drop Column 时投影列变多的问题。[#40187](https://github.com/apache/doris/pull/40187) -- 修复了 Delete 语句返回值没有正确处理导致删除之后数据仍可见的问题。[#39428](https://github.com/apache/doris/pull/39428) -- 修复了文件缓存预热时因为 Rowset 元数据竞争导致的 coredump 问题。[#39361](https://github.com/apache/doris/pull/39361) -- 修复了 TTL 缓存开启 LRU 淘汰时会用满整个缓存空间的问题。[#39814](https://github.com/apache/doris/pull/39814) -- 修复了基于 HDFS 存储后端导入 Commit Rowset 失败时临时文件不能回收的问题。[#40215](https://github.com/apache/doris/pull/40215) - -### Lakehouse - -- 修复了一些 JDBC Catalog 谓词下推的问题。[#39064](https://github.com/apache/doris/pull/39064) -- 修复了当 Parquet 格式中 Struct 类型列缺失时无法读取的问题。[#38718](https://github.com/apache/doris/pull/38718) -- 修复了部分情况下 FE 侧 FileSystem 泄露的问题。[#38610](https://github.com/apache/doris/pull/38610) -- 修复了部分情况下 Hive/Iceberg 表写回导致元数据缓存信息不一致的问题。[#40729](https://github.com/apache/doris/pull/40729) -- 修复了部分情况下为外表生成分区 ID 不稳定的问题。[#39325](https://github.com/apache/doris/pull/39325) -- 修复了部分情况下外表查询会选择在黑名单中的 BE 节点的问题。[#39451](https://github.com/apache/doris/pull/39451) -- 优化了分批获取外表分区信息时的超时时间,避免了长时间占用线程。[#39346](https://github.com/apache/doris/pull/39346) -- 修复了部分情况下查询 Hudi 表导致内存泄露的问题。[#41256](https://github.com/apache/doris/pull/41256) -- 修复了部分情况下 JDBC Catalog 可能存在连接池连接泄露的问题。[#39582](https://github.com/apache/doris/pull/39582) -- 修复了部分情况下 JDBC Catalog 可能存在 BE 内存泄露的问题。[#41041](https://github.com/apache/doris/pull/41041) -- 修复了无法查询阿里云 OSS 上 Hudi 数据的问题。[#41316](https://github.com/apache/doris/pull/41316) -- 修复了无法读取 MaxCompute 空分区的问题。[#40046](https://github.com/apache/doris/pull/40046) -- 修复了通过 JDBC Catalog 查询 Oracle 表示性能差的问题。[#41513](https://github.com/apache/doris/pull/41513) -- 修复了开启文件缓存功能后,查询 Paimon 表 Deletion Vector 时 BE 宕机的问题。[#39877](https://github.com/apache/doris/pull/39877) -- 修复了无法访问开启 HA 的 HDFS 集群上 Paimon 表的问题。[#39806](https://github.com/apache/doris/pull/39806) -- 临时关闭了 Parquet 的 Page Index 过滤功能以避免一些潜在问题。[#38691](https://github.com/apache/doris/pull/38691) -- 修复了无法读取 Parquet 文件中 Unsigned 类型的问题。[#39926](https://github.com/apache/doris/pull/39926) -- 修复了部分情况下读取 Parquet 文件可能导致死循环的问题。[#39523](https://github.com/apache/doris/pull/39523) - -### 异步物化视图 - -- 修复了分区构建时,如果两侧有相同的列名,可能选择错误的表跟踪分区的问题。[#40810](https://github.com/apache/doris/pull/40810) -- 修复了透明改写分区补偿可能导致结果错误的问题。[#40803](https://github.com/apache/doris/pull/40803) -- 修复了透明改写在外表不生效的问题。[#38909](https://github.com/apache/doris/pull/38909) -- 修复了嵌套物化视图可能不能正常刷新的问题。[#40433](https://github.com/apache/doris/pull/40433) - -### 同步物化视图 - -- 修复了在 MOW 表上创建同步物化视图可能导致查询结果错误的问题。[#39171](https://github.com/apache/doris/pull/39171) - -### 查询优化器 - -- 修复了升级后原有同步物化视图可能不可用的问题。[#41283](https://github.com/apache/doris/pull/41283) -- 修复了 DATETIME 字面量比较时,没有正确处理毫秒的问题。[#40121](https://github.com/apache/doris/pull/40121) -- 修复了条件函数分区裁剪可能错误的问题。[#39298](https://github.com/apache/doris/pull/39298) -- 修复了存在同步物化视图的 MOW 表无法执行 Delete 的问题。[#39578](https://github.com/apache/doris/pull/39578) -- 修复了 JDBC 外表查询谓词中的 Slot 的 Nullable 可能规划不正确,导致查询报错的问题。[#41014](https://github.com/apache/doris/pull/41014) - -### 查询执行 - -- 修复了 Runtime Filter 在使用过程中导致的内存泄露问题。[#39155](https://github.com/apache/doris/pull/39155) -- 修复了 Window Function 在使用内存特别多的问题。[#39581](https://github.com/apache/doris/pull/39581) -- 修复了一系列滚动升级期间函数兼容性的问题。[#41023](https://github.com/apache/doris/pull/41023) [#40438](https://github.com/apache/doris/pull/40438) [#39648](https://github.com/apache/doris/pull/39648) -- 修复了`encryption_function` 在常量时结果错误的问题。[#40201](https://github.com/apache/doris/pull/40201) -- 修复了单表物化视图导入时报错的问题。[#39061](https://github.com/apache/doris/pull/39061) -- 修复了窗口函数分区结果计算错误的问题。[#39100](https://github.com/apache/doris/pull/39100) [#40761](https://github.com/apache/doris/pull/40761) -- 修复了 TOPN 计算在有 Null 值时计算错误的问题。[#39497](https://github.com/apache/doris/pull/39497) -- 修复了 `map_agg` 函数计算结果错误的问题。[#39743](https://github.com/apache/doris/pull/39743) -- 修复了 Cancel 返回的消息错误的问题。[#38982](https://github.com/apache/doris/pull/38982) -- 修复了 Encrypt 和 Decrypt 函数导致 BE Core 的问题。[#40726](https://github.com/apache/doris/pull/40726) -- 修复了在高并发场景下,过多的 Scanner 导致查询卡住的问题。[#40495](https://github.com/apache/doris/pull/40495) -- Runtime Filter 中支持 TIME 类型。[#38258](https://github.com/apache/doris/pull/38258) -- 修复了 Window Funnel 函数结果错误的问题。[#40960](https://github.com/apache/doris/pull/40960) - -### 半结构化数据管理 - -- 修复了没有索引时 Match 函数报错的问题。[#38989](https://github.com/apache/doris/pull/38989) -- 修复了 ARRAY 数据类型作为 `array_min`/`array_max` 函数参数时 Crash 的问题。[#39492](https://github.com/apache/doris/pull/39492) -- 修复了 `array_enumerate_uniq` 函数 Nullable 的问题。[#38384](https://github.com/apache/doris/pull/38384) -- 修复了添加或删除列时 BloomFilter 索引没有更新的问题。[#38431](https://github.com/apache/doris/pull/38431) -- 修复了 ES-Catalog 解析异常 Array 数据的问题。[#39104](https://github.com/apache/doris/pull/39104) -- 修复了 ES-Catalog 不合理条件下推的问题。[#40111](https://github.com/apache/doris/pull/40111) -- 修复了 `map()`/ `struct()` 函数修改了输入数据导致异常的问题。[#39699](https://github.com/apache/doris/pull/39699) -- 修复了特殊情况下索引 Compaction Crash 的问题。[#40294](https://github.com/apache/doris/pull/40294) -- 修复了 ARRAY 类型倒排索引缺少 Nullbitmap 的问题。[#38907](https://github.com/apache/doris/pull/38907) -- 修复了倒排索引 `count()` 结果的问题。[#41152](https://github.com/apache/doris/pull/41152) -- 修复了 `explode_map` 使用别名时结果正确性问题。[#39757](https://github.com/apache/doris/pull/39757) -- 修复了 VARIANT 类型中异常 JSON 数据无法使用行存的问题。[#39394](https://github.com/apache/doris/pull/39394) -- 修复了 VARIANT 类型中返回 ARRAY 结果时内存泄漏的问题。[#41358](https://github.com/apache/doris/pull/41358) -- 修复了 VARIANT 类型修改列名的问题。[#40320](https://github.com/apache/doris/pull/40320) -- 修复了 VARIANT 类型转成 DECIMAL 类型可能丢失精度的问题。[#39650](https://github.com/apache/doris/pull/39650) -- 修复了 VARIANT 类型 Nullable 处理问题。[#39732](https://github.com/apache/doris/pull/39732) -- 修复了 VARIANT 类型稀疏列读取问题。[#40295](https://github.com/apache/doris/pull/40295) - -### 其他 - -- 修复了新旧 Audit Log Plugin 兼容性问题。[#41401](https://github.com/apache/doris/pull/41401) -- 修复了某些情况下用户能看到他人进程的问题。[#39747](https://github.com/apache/doris/pull/39747) -- 修复了有权限的用户也不能导出的问题。[#38365](https://github.com/apache/doris/pull/38365) -- 修复了 CREATE TABLE LIKE 需要已有表的 CREATE 权限的问题。[#37879](https://github.com/apache/doris/pull/37879) -- 修复了一些功能没有校验权限的问题。[#39726](https://github.com/apache/doris/pull/39726) -- 修复了使用 SSL 连接时未正确关闭连接的问题。[#38587](https://github.com/apache/doris/pull/38587) -- 修复了部分情况下执行 ALTER VIEW 操作导致 FE 无法启动的问题。[#40872](https://github.com/apache/doris/pull/40872) - diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.3.md deleted file mode 100644 index b83a0e587836a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.3.md +++ /dev/null @@ -1,209 +0,0 @@ ---- -{ - "title": "Release 3.0.3", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.3 版本已于 2024 年 12 月 02 日正式发布。 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 3.0.3 版本已于 2024 年 12 月 02 日正式发布。** 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - -## 行为变更 - -- 禁止在具有同步物化视图的 MOW 表上进行列更新。[#40190](https://github.com/apache/doris/pull/40190) -- 调整 RoutineLoad 的默认参数以提升导入效率。[#42968](https://github.com/apache/doris/pull/42968) -- 当 StreamLoad 失败时,LoadedRows 的返回值调整为 0。[#41946](https://github.com/apache/doris/pull/41946) [#42291](https://github.com/apache/doris/pull/42291) -- 将 Segment cache 的默认内存限制调整为 5%。[#42308](https://github.com/apache/doris/pull/42308) [#42436](https://github.com/apache/doris/pull/42436) - -## 新特性 - -- 引入 `enable_cooldown_replica_affinity` 会话变量,用以控制冷热分层副本的亲和性。[#42677](https://github.com/apache/doris/pull/42677) - -### Lakehouse - -- 新增 `table$partition` 语法,用于查询 Hive 表的分区信息。[#40774](https://github.com/apache/doris/pull/40774) - - - [查看文档](../../lakehouse/catalogs/hive-catalog) - -- 支持创建 Text 格式的 Hive 表。[#41860](https://github.com/apache/doris/pull/41860) [#42175](https://github.com/apache/doris/pull/42175) - - - [查看文档](../../lakehouse/catalogs/hive-catalog) - -### 异步物化视图 - -- 引入新的物化视图属性 `use_for_rewrite`。当 `use_for_rewrite` 设置为 false 时,物化视图不参与透明改写。[#40332](https://github.com/apache/doris/pull/40332) - -### 查询优化器 - -- 支持关联非聚合子查询。[#42236](https://github.com/apache/doris/pull/42236) - -### 查询执行 - -- 增加了 `ngram_search`、`normal_cdf`、`to_iso8601`、`from_iso8601_date`、`SESSION_USER()`、`last_query_id` 函数。[#38226](https://github.com/apache/doris/pull/38226) [#40695](https://github.com/apache/doris/pull/40695) [#41075](https://github.com/apache/doris/pull/41075) [#41600](https://github.com/apache/doris/pull/41600) [#39575](https://github.com/apache/doris/pull/39575) [#40739](https://github.com/apache/doris/pull/40739) -- `aes_encrypt` 和 `aes_decrypt` 函数支持 GCM 模式。[#40004](https://github.com/apache/doris/pull/40004) -- Profile 中输出变更的会话变量值。[#41016](https://github.com/apache/doris/pull/41016) [#41318](https://github.com/apache/doris/pull/41318) - -### 半结构化数据管理 - -- 新增数组函数 `array_match_all` 和 `array_match_any`。[#40605](https://github.com/apache/doris/pull/40605) [#43514](https://github.com/apache/doris/pull/43514) -- 数组函数 `array_agg` 支持在 ARRAY 中嵌套 ARRAY/MAP/STRUCT。[#42009](https://github.com/apache/doris/pull/42009) -- 新增近似聚合统计函数 `approx_top_k` 和 `approx_top_sum`。[#44082](https://github.com/apache/doris/pull/44082) - -## 改进与优化 - -### 存储 - -- 支持将 `bitmap_empty` 作为默认值。[#40364](https://github.com/apache/doris/pull/40364) -- 引入 `insert_timeout` 会话变量,用以控制 DELETE 语句的超时时间。[#41063](https://github.com/apache/doris/pull/41063) -- 改进部分错误提示信息。[#41048](https://github.com/apache/doris/pull/41048) [#39631](https://github.com/apache/doris/pull/39631) -- 改进副本修复的优先级调度。[#41076](https://github.com/apache/doris/pull/41076) -- 提高了建表时对时区处理的鲁棒性。[#41926](https://github.com/apache/doris/pull/41926) [#42389](https://github.com/apache/doris/pull/42389) -- 在创建表时检查分区表达式的合法性。[#40158](https://github.com/apache/doris/pull/40158) -- 在 DELETE 操作时支持 Unicode 编码的列名。[#39381](https://github.com/apache/doris/pull/39381) - -### 存算分离 - -- 存算分离模式支持 ARM 架构部署。[#42467](https://github.com/apache/doris/pull/42467) [#43377](https://github.com/apache/doris/pull/43377) -- 优化文件缓存的淘汰策略和锁竞争,提高命中率及高并发点查性能。[#42451](https://github.com/apache/doris/pull/42451) [#43201](https://github.com/apache/doris/pull/43201) [#41818](https://github.com/apache/doris/pull/41818) [#43401](https://github.com/apache/doris/pull/43401) -- S3 storage vault 支持 `use_path_style`,解决对象存储使用自定义域名的问题。[#43060](https://github.com/apache/doris/pull/43060) [#43343](https://github.com/apache/doris/pull/43343) [#43330](https://github.com/apache/doris/pull/43330) -- 优化存算分离配置及部署,预防不同模式下的误操作。[#43381](https://github.com/apache/doris/pull/43381) [#43522](https://github.com/apache/doris/pull/43522) [#43434](https://github.com/apache/doris/pull/43434) [#40764](https://github.com/apache/doris/pull/40764) [#43891](https://github.com/apache/doris/pull/43891) -- 优化可观测性,并提供删除指定 segment file cache 的接口。[#38489](https://github.com/apache/doris/pull/38489) [#42896](https://github.com/apache/doris/pull/42896) [#41037](https://github.com/apache/doris/pull/41037) [#43412](https://github.com/apache/doris/pull/43412) -- 优化 Meta-service 运维接口:RPC 限速及修复 tablet 元数据修正。[#42413](https://github.com/apache/doris/pull/42413) [#43884](https://github.com/apache/doris/pull/43884) [#41782](https://github.com/apache/doris/pull/41782) [#43460](https://github.com/apache/doris/pull/43460) - -### Lakehouse - -- Paimon Catalog 支持阿里云 DLF 和 OSS-HDFS 存储。[#41247](https://github.com/apache/doris/pull/41247) [#42585](https://github.com/apache/doris/pull/42585) - - - [查看文档](../../lakehouse/catalogs/paimon-catalog) - -- 支持读取 OpenCSV 格式的 Hive 表。[#42257](https://github.com/apache/doris/pull/42257) [#42942](https://github.com/apache/doris/pull/42942) -- 优化了访问 External Catalog 中 `information_schema.columns` 表的性能。[#41659](https://github.com/apache/doris/pull/41659) [#41962](https://github.com/apache/doris/pull/41962) -- 使用新的 MaxCompute 开放存储 API 访问 MaxCompute 数据源。[#41614](https://github.com/apache/doris/pull/41614) -- 优化了 Paimon 表 JNI 部分的调度策略,使得扫描任务更加均衡。[#43310](https://github.com/apache/doris/pull/43310) -- 优化了 ORC 小文件的读取性能。[#42004](https://github.com/apache/doris/pull/42004) [#43467](https://github.com/apache/doris/pull/43467) -- 支持读取 brotli 压缩格式的 parquet 文件。[#42177](https://github.com/apache/doris/pull/42177) -- 在 `information_schema` 库下新增 `file_cache_statistics` 表,用于查看元数据缓存统计信息。[#42160](https://github.com/apache/doris/pull/42160) - -### 查询优化器 - -- 优化:当查询仅注释不同时,可以复用同一个 SQL Cache。[#40049](https://github.com/apache/doris/pull/40049) -- 优化:提升了在数据频繁更新时统计信息的稳定性。[#43865](https://github.com/apache/doris/pull/43865) [#39788](https://github.com/apache/doris/pull/39788) [#43009](https://github.com/apache/doris/pull/43009) [#40457](https://github.com/apache/doris/pull/40457) [#42409](https://github.com/apache/doris/pull/42409) [#41894](https://github.com/apache/doris/pull/41894) -- 优化:提升常量折叠的稳定性。[#42910](https://github.com/apache/doris/pull/42910) [#41164](https://github.com/apache/doris/pull/41164) [#39723](https://github.com/apache/doris/pull/39723) [#41394](https://github.com/apache/doris/pull/41394) [#42256](https://github.com/apache/doris/pull/42256) [#40441](https://github.com/apache/doris/pull/40441) -- 优化:列裁剪可以生成更优的执行计划。[#41719](https://github.com/apache/doris/pull/41719) [#41548](https://github.com/apache/doris/pull/41548) - -### 查询执行 - -- 优化了 sort 算子的内存使用。[#39306](https://github.com/apache/doris/pull/39306) -- 优化了 ARM 下运算的性能。[#38888](https://github.com/apache/doris/pull/38888) [#38759](https://github.com/apache/doris/pull/38759) -- 优化了一系列函数的计算性能。[#40366](https://github.com/apache/doris/pull/40366) [#40821](https://github.com/apache/doris/pull/40821) [#40670](https://github.com/apache/doris/pull/40670) [#41206](https://github.com/apache/doris/pull/41206) [#40162](https://github.com/apache/doris/pull/40162) -- 使用 SSE 指令优化 `match_ipv6_subnet` 函数的性能。[#38755](https://github.com/apache/doris/pull/38755) -- 在 insert overwrite 时支持自动创建新的分区。[#38628](https://github.com/apache/doris/pull/38628) [#42645](https://github.com/apache/doris/pull/42645) -- 在 Profile 中增加了每个 PipelineTask 的状态。[#42981](https://github.com/apache/doris/pull/42981) -- IP 类型支持 runtime filter。[#39985](https://github.com/apache/doris/pull/39985) - -### 半结构化数据管理 - -- 审计日志中输出 prepared statement 的真实 SQL。[#43321](https://github.com/apache/doris/pull/43321) -- filebeat doris output plugin 支持容错、进度报告等。[#36355](https://github.com/apache/doris/pull/36355) -- 倒排索引查询性能优化。[#41547](https://github.com/apache/doris/pull/41547) [#41585](https://github.com/apache/doris/pull/41585) [#41567](https://github.com/apache/doris/pull/41567) [#41577](https://github.com/apache/doris/pull/41577) [#42060](https://github.com/apache/doris/pull/42060) [#42372](https://github.com/apache/doris/pull/42372) -- 数组函数 `array overlaps` 支持使用倒排索引加速。[#41571](https://github.com/apache/doris/pull/41571) -- IP 函数 `is_ip_address_in_range` 支持使用倒排索引加速。[#41571](https://github.com/apache/doris/pull/41571) -- 优化 VARIANT 数据类型的 CAST 性能。[#41775](https://github.com/apache/doris/pull/41775) [#42438](https://github.com/apache/doris/pull/42438) [#43320](https://github.com/apache/doris/pull/43320) -- 优化 Variant 数据类型的 CPU 资源消耗。[#42856](https://github.com/apache/doris/pull/42856) [#43062](https://github.com/apache/doris/pull/43062) [#43634](https://github.com/apache/doris/pull/43634) -- 优化 Variant 数据类型的元数据和执行内存资源消耗。[#42448](https://github.com/apache/doris/pull/42448) [#43326](https://github.com/apache/doris/pull/43326) [#41482](https://github.com/apache/doris/pull/41482) [#43093](https://github.com/apache/doris/pull/43093) [#43567](https://github.com/apache/doris/pull/43567) [#43620](https://github.com/apache/doris/pull/43620) - -### 权限 - -- LDAP 新增配置项 `ldap_group_filter` 用于自定义过滤 group。[#43292](https://github.com/apache/doris/pull/43292) - -### 其他 - -- FE 监控项中的连接数信息支持按用户分别显示。[#39200](https://github.com/apache/doris/pull/39200) - -## 问题修复 - -### 存储 - -- 修复 IPv6 hostname 使用问题。[#40074](https://github.com/apache/doris/pull/40074) -- 修复 broker/s3 load 进度展示不准确问题。[#43535](https://github.com/apache/doris/pull/43535) -- 修复查询从 FE 可能卡住的问题。[#41303](https://github.com/apache/doris/pull/41303) [#42382](https://github.com/apache/doris/pull/42382) -- 修复异常情况下自增 id 重复的问题。[#43774](https://github.com/apache/doris/pull/43774) [#43983](https://github.com/apache/doris/pull/43983) -- 修复 groupcommit 偶发 NPE 问题。[#43635](https://github.com/apache/doris/pull/43635) -- 修复 auto bucket 计算不准确的问题。[#41675](https://github.com/apache/doris/pull/41675) [#41835](https://github.com/apache/doris/pull/41835) -- 修复 FE 重启时流控多表不能正确规划的问题。[#41677](https://github.com/apache/doris/pull/41677) [#42290](https://github.com/apache/doris/pull/42290) - -### 存算分离 - -- 修复 MOW 主键表 delete bitmap 过大可能导致 coredump 的问题。[#43088](https://github.com/apache/doris/pull/43088) [#43457](https://github.com/apache/doris/pull/43457) [#43479](https://github.com/apache/doris/pull/43479) [#43407](https://github.com/apache/doris/pull/43407) [#43297](https://github.com/apache/doris/pull/43297) [#43613](https://github.com/apache/doris/pull/43613) [#43615](https://github.com/apache/doris/pull/43615) [#43854](https://github.com/apache/doris/pull/43854) [#43968](https://github.com/apache/doris/pull/43968) [#44074](https://github.com/apache/doris/pull/44074) [#41793](https://github.com/apache/doris/pull/41793) [#42142](https://github.com/apache/doris/pull/42142) -- 修复 segment 文件为 5MB 整数倍时上传对象失败的问题。[#43254](https://github.com/apache/doris/pull/43254) -- 修复 aws sdk 默认重试策略不生效的问题。[#43575](https://github.com/apache/doris/pull/43575) [#43648](https://github.com/apache/doris/pull/43648) -- 修复 alter storage vault 时指定错误 type 也能继续执行的问题。[#43489](https://github.com/apache/doris/pull/43489) [#43352](https://github.com/apache/doris/pull/43352) [#43495](https://github.com/apache/doris/pull/43495) -- 修复大事务延迟提交过程中 tablet_id 可能为 0 的问题。[#42043](https://github.com/apache/doris/pull/42043) [#42905](https://github.com/apache/doris/pull/42905) -- 修复常量折叠 RCP 以及 FE 转发 SQL 可能不在预期的计算组执行的问题。[#43110](https://github.com/apache/doris/pull/43110) [#41819](https://github.com/apache/doris/pull/41819) [#41846](https://github.com/apache/doris/pull/41846) -- 修复 meta-service 接收到 RPC 时不严格检查 instance_id 的问题。[#43253](https://github.com/apache/doris/pull/43253) [#43832](https://github.com/apache/doris/pull/43832) -- 修复 FE follower information_schema version 没有及时更新的问题。[#43496](https://github.com/apache/doris/pull/43496) -- 修复 file cache rename 原子性以及指标不准确的问题。[#42869](https://github.com/apache/doris/pull/42869) [#43504](https://github.com/apache/doris/pull/43504) [#43220](https://github.com/apache/doris/pull/43220) - -### Lakehouse - -- 禁止带有隐式转换的谓词条件下推给 JDBC 数据源,避免不一致的查询结果。[#42102](https://github.com/apache/doris/pull/42102) -- 修复 Hive 高版本事务表的一些读取问题。[#42226](https://github.com/apache/doris/pull/42226) -- 修复 Export 命令可能导致死锁的问题。[#43083](https://github.com/apache/doris/pull/43083) [#43402](https://github.com/apache/doris/pull/43402) -- 修复无法查询 Spark 创建的 Hive 视图的问题。[#43552](https://github.com/apache/doris/pull/43552) -- 修复 Hive 分区路径中包含特殊字符导致分区裁剪有误的问题。[#42906](https://github.com/apache/doris/pull/42906) -- 修复 Iceberg Catalog 无法使用 AWS Glue 的问题。[#41084](https://github.com/apache/doris/pull/41084) - -### 异步物化视图 - -- 修复基表重建后,异步物化视图可能无法刷新的问题。[#41762](https://github.com/apache/doris/pull/41762) - -### 查询优化器 - -- 修复使用多列 range 分区时,分区裁剪结果可能有误的问题。[#43332](https://github.com/apache/doris/pull/43332) -- 修复部分 limit offset 场景下计算结果错误的问题。[#42576](https://github.com/apache/doris/pull/42576) - -### 查询执行 - -- 修复 hash join 时 array 类型的大小超过 4G 导致 BE Core 的问题。[#43861](https://github.com/apache/doris/pull/43861) -- 修复 is null 谓词运算部分场景下结果不正确的问题。[#43619](https://github.com/apache/doris/pull/43619) -- 修复 bitmap 类型在 hash join 时输出结果不正确的问题。[#43718](https://github.com/apache/doris/pull/43718) -- 修复一些函数结果计算错误的问题。[#40710](https://github.com/apache/doris/pull/40710) [#39358](https://github.com/apache/doris/pull/39358) [#40929](https://github.com/apache/doris/pull/40929) [#40869](https://github.com/apache/doris/pull/40869) [#40285](https://github.com/apache/doris/pull/40285) [#39891](https://github.com/apache/doris/pull/39891) [#40530](https://github.com/apache/doris/pull/40530) [#41948](https://github.com/apache/doris/pull/41948) [#43588](https://github.com/apache/doris/pull/43588) -- 修复一些 JSON 类型解析的问题。[#39937](https://github.com/apache/doris/pull/39937) -- 修复 varchar 和 char 类型在 runtime filter 运算时的问题。[#43758](https://github.com/apache/doris/pull/43758) [#43919](https://github.com/apache/doris/pull/43919) -- 修复一些 decimal256 在标量函数和聚合函数里使用的问题。[#42136](https://github.com/apache/doris/pull/42136) [#42356](https://github.com/apache/doris/pull/42356) -- 修复 arrow flight 在连接时报 `Reach limit of connections` 错误的问题。[#39127](https://github.com/apache/doris/pull/39127) -- 修复 k8s 环境下,BE 可用内存统计不正确的问题。[#41123](https://github.com/apache/doris/pull/41123) - -### 半结构化数据管理 - -- 调整 `segment_cache_fd_percentage` 和 `inverted_index_fd_number_limit_percent` 的默认值。[#42224](https://github.com/apache/doris/pull/42224 -- logstash 支持 group_commit。[#40450](https://github.com/apache/doris/pull/40450) -- 修复 build index 时 coredump 的问题。[#43246](https://github.com/apache/doris/pull/43246) [#43298](https://github.com/apache/doris/pull/43298) -- 修复 variant index 的问题。[#43375](https://github.com/apache/doris/pull/43375) [#43773](https://github.com/apache/doris/pull/43773) -- 修复后台 compaction 异常情况下可能出现的 fd 和内存泄漏。[#42374](https://github.com/apache/doris/pull/42374) -- 倒排索引 match null 正确返回 null 而不是 false。[#41786](https://github.com/apache/doris/pull/41786) -- 修复 ngram bloomfilter 索引 bf_size 设置为 65536 时 coredump 的问题。[#43645](https://github.com/apache/doris/pull/43645) -- 修复复杂数据类型 JOIN 可能出 coredump 的问题。[#40398](https://github.com/apache/doris/pull/40398) -- 修复 TVF JSON 数据 coredump 的问题。[#43187](https://github.com/apache/doris/pull/43187) -- 修复 bloom filter 计算日期和时间的精度问题。[#43612](https://github.com/apache/doris/pull/43612) -- 修复 IPv6 类型行存 coredump 的问题。[#43251](https://github.com/apache/doris/pull/43251) -- 修复关闭 light_schema_change 时使用 VARIANT 类型 coredump 的问题。[#40908](https://github.com/apache/doris/pull/40908) -- 提升高并发点查的 cache 性能。[#44077](https://github.com/apache/doris/pull/44077) -- 修复删除列时 bloom filter 索引没有同步更新的问题。[#43378](https://github.com/apache/doris/pull/43378) -- 修复 es catalog 在数组和标量混合数据等特殊情况下的不稳定问题。[#40314](https://github.com/apache/doris/pull/40314) [#40385](https://github.com/apache/doris/pull/40385) [#43399](https://github.com/apache/doris/pull/43399) [#40614](https://github.com/apache/doris/pull/40614) -- 修复异常正则匹配导致的 coredump 问题。[#43394](https://github.com/apache/doris/pull/43394) - -### 权限 - -- 修复若干权限授权之后无法正常限制的问题。[#43193](https://github.com/apache/doris/pull/43193) [#41723](https://github.com/apache/doris/pull/41723) [#42107](https://github.com/apache/doris/pull/42107) [#43306](https://github.com/apache/doris/pull/43306) -- 加强若干权限校验。[#40688](https://github.com/apache/doris/pull/40688) [#40533](https://github.com/apache/doris/pull/40533) [#41791](https://github.com/apache/doris/pull/41791) [#42106](https://github.com/apache/doris/pull/42106) - -### 其他 - -- 补充了审计日志表和文件中缺失的审计日志字段。[#43303](https://github.com/apache/doris/pull/43303) - - - [查看文档](../../admin-manual/system-tables/internal_schema/audit_log) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.4.md deleted file mode 100644 index a55e9f8e99a06..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.4.md +++ /dev/null @@ -1,210 +0,0 @@ ---- -{ - "title": "Release 3.0.4", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.4 版本已于 2025 年 02 月 28 日正式发布。 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 3.0.4 版本已于 2025 年 02 月 28 日正式发布。** 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- GitHub 下载:https://github.com/apache/doris/releases - -- 官网下载:https://doris.apache.org/download - - -## 行为变更 - -- 在 Audit Log 中,`drop table` 和 `drop database` 语句保持 `force` 标志。 [#43227](https://github.com/apache/doris/pull/43227) - -- 导出数据至 Parquet/ORC 格式时,`bitmap`、`quantile_state` 和 `hll` 类型将以 Binary 格式导出。同时新增支持导出 `jsonb` 和 `variant` 类型,导出格式为 `string`。 [#44041](https://github.com/apache/doris/pull/44041) - - - 更多内容,参考文档:[Export Overview - Apache Doris](https://doris.apache.org/docs/3.0/data-operate/export/export-overview) -- 当通过 External Catalog 查询表名大小写不敏感的数据源(如 Hive)时,在之前版本中,可以使用任意大小写进行表名查询,但是在 3.0.4 版本中,将严格遵循 Doris 自身的表名大小写敏感策略。 -- 将 Hudi JNI Scanner 从 Spark API 替换为 Hadoop API,以增强兼容性。用户可以通过设置会话变量 `set hudi_jni_scanner=spark/hadoop` 进行切换。[#44267](https://github.com/apache/doris/pull/44267) -- 禁止在 Colocate 表中使用 `auto bucket`。 [#44396](https://github.com/apache/doris/pull/44396) -- 为 Catalog 增加 Paimon 缓存,不再进行实时数据查询。 [#44911 ](https://github.com/apache/doris/pull/44911) -- 增大 `max_broker_concurrency` 的默认值,以提升 Broker Load 在大规模数据导入时的性能。 [#44929](https://github.com/apache/doris/pull/44929) -- 将 Auto Partition 分区的 `storage medium` 默认值修改为当前表的 `storage medium` 属性值,而非系统默认值。 [#45955](https://github.com/apache/doris/pull/45955) -- 禁止在修改 Key 列的 Schema Change 执行期间进行列更新。 [#46347](https://github.com/apache/doris/pull/46347) -- 对于包含自增列的 Key 列表,支持在列更新时不提供自增列。 [#44528](https://github.com/apache/doris/pull/44528) -- FE ID 生成器策略切换为与物理时间相关的策略,ID 不再从 10000 开始。 [#44790](https://github.com/apache/doris/pull/44790) -- 在存算分离模式下,Compaction 产生的 stale rowset 默认回收延迟时间减小至 1800 秒,以减少回收间隔。某些极端场景下可能会导致超大查询失败,如遇问题可按需调整。 [#45460](https://github.com/apache/doris/pull/45460) -- 在存算分离模式下禁用 `show cache hotspot` 语句,需直接访问系统表。 [#47332](https://github.com/apache/doris/pull/47332) -- 禁止删除系统创建的 `admin` 用户。 [#44751](https://github.com/apache/doris/pull/44751) - -## 改进优化 - -### 存储 - -- 优化 Routine Load 因 `max_match_interval` 设置过小导致任务频繁超时的问题。 [#46292](https://github.com/apache/doris/pull/46292) -- 提升 Broker Load 在导入多个压缩文件时的性能。 [#43975](https://github.com/apache/doris/pull/43975) -- 增大 `webserver_num_workers` 的默认值以提升 Stream Load 性能。 [#46593](https://github.com/apache/doris/pull/46593) -- 优化 Routine Load 导入任务在 BE 节点扩容时负载不均衡的问题。 [#44798](https://github.com/apache/doris/pull/44798) -- 优化 Routine Load 线程池使用,防止 Routine Load 超时失败影响查询。 [#45039](https://github.com/apache/doris/pull/45039) - -### 存算分离 - -- 加强 Meta-service 的稳定性和可观测性。 [#44036](https://github.com/apache/doris/pull/44036), [#45617](https://github.com/apache/doris/pull/45617), [#45255](https://github.com/apache/doris/pull/45255), [#45068](https://github.com/apache/doris/pull/45068) -- 优化 File Cache,增加提前淘汰策略,减小持锁时间,提升查询性能。 [#47473](https://github.com/apache/doris/pull/47473), [#45678](https://github.com/apache/doris/pull/45678), [#47472](https://github.com/apache/doris/pull/47472) -- 优化 File Cache 初始化检查以及队列转换,提升稳定性。 [#44004](https://github.com/apache/doris/pull/44004), [#44429](https://github.com/apache/doris/pull/44429), [#45057](https://github.com/apache/doris/pull/45057), [#47229](https://github.com/apache/doris/pull/47229) -- 优化 HDFS 数据回收速度。 [#46393](https://github.com/apache/doris/pull/46393) -- 优化超高频导入时 FE 获取计算组可能存在的性能问题。 [#47203](https://github.com/apache/doris/pull/47203) -- 优化存算分离主键表的若干导入相关参数,提升实时高并发导入的稳定性。 [#47295](https://github.com/apache/doris/pull/47295), [#46750](https://github.com/apache/doris/pull/46750), [#46365](https://github.com/apache/doris/pull/46365) - -### Lakehouse - -- 支持读取 Hive Json 格式的表数据。 [#43469](https://github.com/apache/doris/pull/46393) - - - 更多内容,参考文档:[Text/CSV/JSON - Apache Doris](https://doris.apache.org/docs/dev/lakehouse/file-formats/text#json) - -- 支持会话变量 `enable_text_validate_utf8`,可忽略 CSV 格式中的 UTF-8 编码检测。 [#45537](https://github.com/apache/doris/pull/45537) - - - 更多内容,参考文档:[Text/CSV/JSON - Apache Doris](https://doris.apache.org/docs/dev/lakehouse/file-formats/text#character-set) - -- 将 Hudi 版本更新至 0.15,并优化 Hudi 表的查询规划性能。 -- 优化 MaxCompute 分区表的读取性能。 [#45148](https://github.com/apache/doris/pull/45148) -- 优化在高过滤率情况下,Parquet 文件延迟物化的性能。 [#46183](https://github.com/apache/doris/pull/46183) -- 支持 Parquet 复杂类型的延迟物化。 [#44098](https://github.com/apache/doris/pull/44098) -- 优化 ORC 类型的谓词下推逻辑,支持更多谓词条件用于索引过滤。 [#43255](https://github.com/apache/doris/pull/43255) - -### 异步物化视图 - -- 支持更多场景下的聚合上卷改写。 [#44412](https://github.com/apache/doris/pull/44412) - -### 查询优化器 - -- 优化分区裁剪性能。 [#46261](https://github.com/apache/doris/pull/46261) -- 增加利用数据特征消除 `group by` key 的规则。 [#43391](https://github.com/apache/doris/pull/43391) -- 根据目标表的数据量自适应调整 Runtime Filter 的等待时间。 [#42640](https://github.com/apache/doris/pull/42640) -- 优化聚合下压连接的能力,以适应更多场景。 [#43856](https://github.com/apache/doris/pull/43856), [#43380](https://github.com/apache/doris/pull/43380) -- 优化 Limit 下压聚合,以适应更多场景。 [#44042](https://github.com/apache/doris/pull/44042) - -### 其他 - -- 优化 FE、BE、MS 进程启动脚本,使输出内容更明确。 [#45610](https://github.com/apache/doris/pull/45610), [#45490](https://github.com/apache/doris/pull/45490), [#45883](https://github.com/apache/doris/pull/45883) -- `show tables` 显示的表名大小写现在与 MySQL 行为一致。 [#46030](https://github.com/apache/doris/pull/46030) -- `show index` 支持任意目标表类型。 [#45861](https://github.com/apache/doris/pull/45861) -- `information_schema.columns` 支持显示默认值。 [#44849](https://github.com/apache/doris/pull/44849) -- `information_schema.views` 支持显示视图定义。 [#45857](https://github.com/apache/doris/pull/45857) -- 支持 MySQL 协议的 `COM_RESET_CONNECTION` 命令。 [#44747](https://github.com/apache/doris/pull/44747) - -## 缺陷修复 - -### 存储 - -- 修复聚合表模型导入过程中可能出现的内存错误。 [#46997](https://github.com/apache/doris/pull/46997) -- 修复存算分离模式下 FE 主节点重启时导致 Routine Load offset 丢失的问题。 [#46566](https://github.com/apache/doris/pull/46566) -- 修复存算模式下 FE Observer 节点在批量导入场景中的内存泄漏问题。 [#47244](https://github.com/apache/doris/pull/47244) -- 修复 Full Compaction 进行 Order Data Compaction 导致 Cumulative Point 回退的问题。 [#44359](https://github.com/apache/doris/pull/44359) -- 修复 Delete 操作可能导致 Tablet Compaction 短暂无法调度的问题。 [#43466](https://github.com/apache/doris/pull/43466) -- 修复多计算集群时,Schema Change 后 Tablet 状态不正确的问题。 [#45821](https://github.com/apache/doris/pull/45821) -- 修复在有 `sequence_type` 的主键表上进行 Column Rename Schema Change 时可能报 NPE 错误的问题。 [#46906](https://github.com/apache/doris/pull/46906) -- **数据正确性:**修复主键表在部分列更新导入包含 DELETE SIGN 列时的正确性问题。 [#46194](https://github.com/apache/doris/pull/46194) -- 修复主键表 Publish 任务持续卡住时,FE 可能存在内存泄漏的问题。 [#44846](https://github.com/apache/doris/pull/44846) - -### 存算分离 - -- 修复 File Cache 可能导致缓存大小大于表数据大小的问题。 [#46561](https://github.com/apache/doris/pull/46561), [#46390](https://github.com/apache/doris/pull/46390) -- 修复数据上传至 5MB 边界值时可能导致上传失败的问题。 [#47333](https://github.com/apache/doris/pull/47333) -- 修复 Storage Vault 若干 `alter` 相关操作,增加更多参数检查,提升鲁棒性。 [#45155](https://github.com/apache/doris/pull/45155), [#45156](https://github.com/apache/doris/pull/45156), [#46625](https://github.com/apache/doris/pull/46625), [#47078](https://github.com/apache/doris/pull/47078), [#45685](https://github.com/apache/doris/pull/45685), [#46779](https://github.com/apache/doris/pull/46779) -- 修复因 Storage Vault 配置不当导致数据无法回收或回收缓慢的问题。 [#46798](https://github.com/apache/doris/pull/46798), [#47536](https://github.com/apache/doris/pull/47536), [#47475](https://github.com/apache/doris/pull/47475), [#47324](https://github.com/apache/doris/pull/47324), [#45072](https://github.com/apache/doris/pull/45072) -- 修复回收过程中可能卡住导致数据无法及时回收的问题。 [#45760](https://github.com/apache/doris/pull/45760) -- 修复存算分离下 MTTM-230 错误时未正确重试的问题。 [#47370](https://github.com/apache/doris/pull/47370), [#47326](https://github.com/apache/doris/pull/47326) -- 修复存算分离模式下 Decommission BE 时,Group Commit WAL 未回放完成的问题。 [#47187](https://github.com/apache/doris/pull/47187) -- 修复超过 2GB 的 Tablet Meta 导致 MS 不可用的问题。 [#44780](https://github.com/apache/doris/pull/44780) -- **数据正确性**:修复存算分离主键表的两个重复 Key 问题。 [#46039](https://github.com/apache/doris/pull/46039), [#44975](https://github.com/apache/doris/pull/44975) -- 修复存算分离主键表在高频实时导入下,可能因 Delete Bitmap 过大导致 Base Compaction 持续失败的问题。 [#46969](https://github.com/apache/doris/pull/46969) -- 修改 Schema Change 在存算分离主键表上的一些错误重试逻辑,提高 Schema Change 的健壮性。 [#46748](https://github.com/apache/doris/pull/46748) - -### Lakehouse - -#### Hive - -- 修复无法查询 Spark 创建的 Hive 视图的问题。 [#43553](https://github.com/apache/doris/pull/43553) -- 修复无法正确读取某些 Hive Transaction 表的问题。 [#45753](https://github.com/apache/doris/pull/45753) -- 修复 Hive 表分区存在特殊字符时,无法进行正确分区裁剪的问题。 [#42906](https://github.com/apache/doris/pull/42906) - -#### Iceberg - -- 修复在 Kerberos 认证环境下,无法创建 Iceberg 表的问题。 [#43445](https://github.com/apache/doris/pull/43445) -- 修复某些情况下,Iceberg 表存在 dangling delete 情况下,`count*` 查询不准确的问题。 [#44039](https://github.com/apache/doris/pull/44039) -- 修复某些情况下,Iceberg 表列名不匹配导致查询错误的问题。 [#44470](https://github.com/apache/doris/pull/44470) -- 修复某些情况下,Iceberg 表分区被修改后无法读取的问题。 [#45367](https://github.com/apache/doris/pull/45367) - -#### Paimon - -- 修复 Paimon Catalog 无法访问阿里云 OSS-HDFS 的问题。 [#42585](https://github.com/apache/doris/pull/42585) - -#### Hudi - -- 修复某些情况下,Hudi 表分区裁剪失效的问题。 [#44669](https://github.com/apache/doris/pull/44669) - -#### JDBC - -- 修复某些情况下,开启表名大小写不敏感功能后,使用 JDBC Catalog 无法获取表的问题。 - -#### MaxCompute - -- 修复某些情况下,MaxCompute 表分区裁剪失效的问题。 [#44508](https://github.com/apache/doris/pull/44508) - -#### 其他 - -- 修复某些情况下,Export 任务导致 FE 内存泄漏的问题。 [#44019](https://github.com/apache/doris/pull/44019) -- 修复某些情况下,无法使用 HTTPS 协议访问 S3 对象存储的问题。 [#44242](https://github.com/apache/doris/pull/44242) -- 修复某些情况下,Kerberos 认证票据无法自动刷新的问题。 [#44916](https://github.com/apache/doris/pull/44916) -- 修复某些情况下,读取 Hadoop Block 压缩格式文件出错的问题。 [#45289](https://github.com/apache/doris/pull/45289) -- 查询 ORC 格式的数据时,不再下推 CHAR 类型的谓词,以避免可能的结果错误。 [#45484](https://github.com/apache/doris/pull/45484) - -### 异步物化视图 - -- 修复极端场景下查询透明改写可能导致规划或结果错误的问题。 [#44575](https://github.com/apache/doris/pull/44575), [#45744](https://github.com/apache/doris/pull/45744) -- 修复极端场景下异步物化视图调度可能多产生构建任务的问题。 [#46020](https://github.com/apache/doris/pull/46020), [#46280](https://github.com/apache/doris/pull/46280) - -### 查询优化器 - -- 修复部分表达式改写可能产生错误表达式的问题。 [#44770](https://github.com/apache/doris/pull/44770), [#44920](https://github.com/apache/doris/pull/44920), [#45922](https://github.com/apache/doris/pull/45922), [#45596](https://github.com/apache/doris/pull/45596) -- 修复偶现的 SQL Cache 结果错误问题。 [#44782](https://github.com/apache/doris/pull/44782), [#44631](https://github.com/apache/doris/pull/44631), [#46443](https://github.com/apache/doris/pull/46443), [#47266](https://github.com/apache/doris/pull/47266) -- 修复部分场景下 Limit 下压聚合算子可能导致错误结果的问题。 [#45369](https://github.com/apache/doris/pull/45369) -- 修复部分场景下延迟物化优化产生错误执行计划的问题。 [#45693](https://github.com/apache/doris/pull/45693), [#46551](https://github.com/apache/doris/pull/46551) - -### 查询执行 - -- 修复正则表达式和 `like` 函数在特殊字符时结果不正确的问题。 [#44547](https://github.com/apache/doris/pull/44547) -- 修复 SQL Cache 在切换 DB 时结果可能不正确的问题。 [#44782](https://github.com/apache/doris/pull/44782) -- 修复一系列 Arrow Flight 相关问题。 [#45023](https://github.com/apache/doris/pull/45023), [#43929](https://github.com/apache/doris/pull/43929) -- 修复当 HashJoin 的 Hash 表超过 4G 时,部分情况下结果错误的问题。 [#46461](https://github.com/apache/doris/pull/46461) -- 修复 `convert_to` 函数在中文字符时溢出的问题。 [#46405](https://github.com/apache/doris/pull/46405) -- 修复 `group by` 带 Limit 时,在极端情况下结果可能出错的问题。 [#47844](https://github.com/apache/doris/pull/47844) -- 修复访问某些系统表结果可能不正确的问题。 [#47498](https://github.com/apache/doris/pull/47498) -- 修复 `percentile` 函数可能导致系统崩溃的问题。 [#47068](https://github.com/apache/doris/pull/47068) -- 修复单表查询带 Limit 时性能退化的问题。 [#46090](https://github.com/apache/doris/pull/46090) -- 修复 `StDistanceSphere` 和 `StAngleSphere` 函数导致系统崩溃的问题。 [#45508](https://github.com/apache/doris/pull/45508) -- 修复 `map_agg` 结果错误的问题。 [#40454](https://github.com/apache/doris/pull/40454) - -### 半结构化数据管理 - -#### BloomFilter Index - -- 修复 BloomFilter Index 参数过大导致的异常。 [#45780](https://github.com/apache/doris/pull/45780) -- 修复 BloomFilter Index 写入时内存占用过高的问题。 [#45833](https://github.com/apache/doris/pull/45833) -- 修复删除列时 BloomFilter Index 没有正确删除的问题。 [#44361](https://github.com/apache/doris/pull/44361), [#43378](https://github.com/apache/doris/pull/43378) - -#### Inverted Index - -- 修复倒排索引构建过程中偶发崩溃的问题。 [#43246](https://github.com/apache/doris/pull/43246) -- 修复倒排索引合并时,出现次数为 0 的词占用空间的问题。 [#43113](https://github.com/apache/doris/pull/43113) -- 避免 Index Size 统计出现超大异常值。 [#46549](https://github.com/apache/doris/pull/46549) -- 修复 VARIANT 类型字段的倒排索引异常。 [#43375](https://github.com/apache/doris/pull/43375) -- 优化倒排索引的本地缓存局部性,提高缓存命中率。 [#46518](https://github.com/apache/doris/pull/46518) -- 在查询 Profile 中增加倒排索引读远程存储的指标 `NumInvertedIndexRemoteIOTotal`。 [#45675](https://github.com/apache/doris/pull/45675), [#44863](https://github.com/apache/doris/pull/44863) - -#### 其他 - -- 修复 `ipv6_cidr_to_range` 函数在特殊 NULL 数据时崩溃的问题。 [#44700](https://github.com/apache/doris/pull/44700) - -### 权限 - -- 赋予 `CREATE_PRIV` 时,不再检查对应资源是否存在。 [#45125](https://github.com/apache/doris/pull/45125) -- 修复在极端场景下,可能出现的查询有权限的视图,但报错没有视图中引用的表的权限的问题。 [#44621](https://github.com/apache/doris/pull/44621) -- 修复 `use db` 时检查权限时不区分内外 Catalog 的问题。 [#45720](https://github.com/apache/doris/pull/45720) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.5.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.5.md deleted file mode 100644 index f05afe0ac1637..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.5.md +++ /dev/null @@ -1,208 +0,0 @@ ---- -{ - "title": "Release 3.0.5", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.5 版本已于 2025 年 04 月 28 日正式发布。 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 3.0.5 版本已于 2025 年 04 月 28 日正式发布。** 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- [GitHub 下载](https://github.com/apache/doris/releases) - -- [官网下载](https://doris.apache.org/download) - - -## 新特性 - -### Lakehouse - -- FE Metrics 新增 Catalog/Database/Table 数量监控指标([#47891](https://github.com/apache/doris/pull/47891)) -- MaxCompute Catalog 支持 Timestamp 类型([#48768](https://github.com/apache/doris/pull/48768)) - -### 查询执行 - -- 新增 URL 处理函数:`top_level_domain`、`first_significant_subdomain`、`cut_to_first_significant_subdomain`([#42488](https://github.com/apache/doris/pull/42488)) -- 新增 `year_of_week` 函数,兼容 Trino 语法实现([#48870](https://github.com/apache/doris/pull/48870)) -- `percentile_array` 函数支持 Float 和 Double 数据类型([#48094](https://github.com/apache/doris/pull/48094)) - -### 存算分离 - -- 支持重命名计算组(Rename Compute Group)([#46221](https://github.com/apache/doris/pull/46221)) - -## 改进 - -### 存储 - -- 优化主键表(MOW)高频导入场景的查询性能([#48968](https://github.com/apache/doris/pull/48968)) -- 优化 Key Range 查询的 Profile 信息展示([#48191](https://github.com/apache/doris/pull/48191)) -- Stream Load 支持 JSON 压缩文件导入([#49044](https://github.com/apache/doris/pull/49044)) -- 优化多个导入场景的错误提示信息([#48436](https://github.com/apache/doris/pull/48436) [#47721](https://github.com/apache/doris/pull/47721) [#47804](https://github.com/apache/doris/pull/47804) [#48638](https://github.com/apache/doris/pull/48638) [#48344](https://github.com/apache/doris/pull/48344) [#49287](https://github.com/apache/doris/pull/49287) [#48009](https://github.com/apache/doris/pull/48009)) -- 新增 Routine Load 多项监控指标([#49045](https://github.com/apache/doris/pull/49045) [#48764](https://github.com/apache/doris/pull/48764)) -- 优化 Routine Load 调度算法,避免单任务异常影响整体调度([#47847](https://github.com/apache/doris/pull/47847)) -- 新增 Routine Load 系统表([#49284](https://github.com/apache/doris/pull/49284)) -- 优化 Compaction 任务生成速度以提升性能([#49547](https://github.com/apache/doris/pull/49547)) - -### 存算分离 - -- 修复多个 File Cache 稳定性及性能问题([#48786](https://github.com/apache/doris/pull/48786) [#48623](https://github.com/apache/doris/pull/48623) [#48687](https://github.com/apache/doris/pull/48687) [#49050](https://github.com/apache/doris/pull/49050) [#48318](https://github.com/apache/doris/pull/48318)) -- 优化 Storage Vault 创建校验逻辑([#48073](https://github.com/apache/doris/pull/48073) [#48369](https://github.com/apache/doris/pull/48369)) - -### Lakehouse - -- 优化 Trino Connector Catalog 的 BE 端 Scanner 关闭逻辑,加速内存释放([#47857](https://github.com/apache/doris/pull/47857)) -- ClickHouse JDBC Catalog 自动兼容新旧版本驱动([#46026](https://github.com/apache/doris/pull/46026)) - -### 异步物化视图 - -- 优化透明改写(Transparent Rewrite)的规划性能([#48782](https://github.com/apache/doris/pull/48782)) -- 优化 `tvf mv_infos` 性能([#47415](https://github.com/apache/doris/pull/47415)) -- 基于外部表的物化视图构建时取消 Catalog 元数据刷新,减少内存占用([#48767](https://github.com/apache/doris/pull/48767)) - -### 查询优化器 - -- 优化 Key 列与分区列的统计信息收集性能([#46534](https://github.com/apache/doris/pull/46534)) -- 查询结果别名与用户输入保持严格一致([#47093](https://github.com/apache/doris/pull/47093)) -- 优化聚合算子中公共子表达式抽取后的列裁剪逻辑([#46627](https://github.com/apache/doris/pull/46627)) -- 增强函数绑定失败及子查询不支持的报错信息([#47919](https://github.com/apache/doris/pull/47919) [#47985](https://github.com/apache/doris/pull/47985)) - -### 半结构化数据管理 - -- `json_object` 函数支持复杂类型参数([#47779](https://github.com/apache/doris/pull/47779)) -- 支持将 UInt128 写入 IPv6 类型([#48802](https://github.com/apache/doris/pull/48802)) -- 支持 VARIANT 类型中 ARRAY 字段的倒排索引([#47688](https://github.com/apache/doris/pull/47688) [#48117](https://github.com/apache/doris/pull/48117)) - -### 权限 - -- 提升 Ranger 鉴权性能([#49352](https://github.com/apache/doris/pull/49352)) - -### 其他 - -- 优化 JVM Metrics 接口性能([#49380](https://github.com/apache/doris/pull/49380)) - -## Bug 修复 - -### 存储 - -- 修复若干极端场景下的数据正确性问题([#48056](https://github.com/apache/doris/pull/48056) [#48399](https://github.com/apache/doris/pull/48399) [#48400](https://github.com/apache/doris/pull/48400) [#48748](https://github.com/apache/doris/pull/48748) [#48775](https://github.com/apache/doris/pull/48775) [#48867](https://github.com/apache/doris/pull/48867) [#49165](https://github.com/apache/doris/pull/49165) [#49193](https://github.com/apache/doris/pull/49193) [#49350](https://github.com/apache/doris/pull/49350) [#49710](https://github.com/apache/doris/pull/49710) [#49825](https://github.com/apache/doris/pull/49825)) -- 修复已完成事务未及时清理的问题([#49564](https://github.com/apache/doris/pull/49564)) -- 部分列更新时 JSONB 类型默认值改用 `{}`([#49066](https://github.com/apache/doris/pull/49066)) -- 修复存算分离主键模型 Compaction 未释放 Delete Bitmap 锁导致导入卡顿的问题([#47766](https://github.com/apache/doris/pull/47766)) -- 修复 ARM 架构下 Stream Load 数据丢失问题([#49666](https://github.com/apache/doris/pull/49666)) -- 修复 Insert Into Select 遇到数据质量错误未返回错误 URL 的问题([#49687](https://github.com/apache/doris/pull/49687)) -- 修复 Routine Load 多表导入时数据质量错误未返回错误 URL 的问题([#49130](https://github.com/apache/doris/pull/49130)) -- 修复 Schema Change 期间 Insert Into Values 导入结果异常问题([#49338](https://github.com/apache/doris/pull/49338)) -- 修复 Tablet Commit 信息上报导致的 Core Dump 问题([#48732](https://github.com/apache/doris/pull/48732)) -- 修复 S3 Load 导入不支持 Azure 中国区域名的问题([#48642](https://github.com/apache/doris/pull/48642)) -- 修复 K8s 环境下 FE 报 "get image failed" 错误([#49072](https://github.com/apache/doris/pull/49072)) -- 优化动态分区调度的 CPU 消耗([#48577](https://github.com/apache/doris/pull/48577)) -- 修复重命名物化视图(MV)导致列异常的问题([#48328](https://github.com/apache/doris/pull/48328)) -- 修复 Schema Change 失败后未释放内存和 File Cache 的问题([#48426](https://github.com/apache/doris/pull/48426)) -- 修复含空分区表的 Base Compaction 失败问题([#49062](https://github.com/apache/doris/pull/49062)) -- 修复复杂类型变更导致的数据正确性问题([#49452](https://github.com/apache/doris/pull/49452)) -- 修复 Cold Compaction 导致 Core Dump 的问题([#48329](https://github.com/apache/doris/pull/48329)) -- 修复存在 Delete 操作时 Cumulative Point 未提升的问题([#47282](https://github.com/apache/doris/pull/47282)) -- 修复大数据量 Full Compaction 内存不足问题([#48958](https://github.com/apache/doris/pull/48958)) - -### 存算分离 - -- 修复 K8s 环境下 File Cache 清除失败问题([#49199](https://github.com/apache/doris/pull/49199)) -- 修复高频导入时读写锁导致的 FE CPU 飙升问题([#48564](https://github.com/apache/doris/pull/48564)) - -### Lakehouse - -**Data Lakes** - -- 修复并发写入 Hive/Iceberg 表可能引发的 BE Core Dump([#49842](https://github.com/apache/doris/pull/49842)) -- 修复 AWS S3 存储的 Hive/Iceberg 表写入失败问题([#47162](https://github.com/apache/doris/pull/47162)) -- 修复 Iceberg Position Deletion 读取结果错误([#47977](https://github.com/apache/doris/pull/47977)) -- 修复腾讯云 COS 无法创建 Iceberg 表的问题([#49885](https://github.com/apache/doris/pull/49885)) -- 修复 Kerberos 认证 HDFS 访问 Paimon 数据失败问题([#47192](https://github.com/apache/doris/pull/47192)) -- 修复 Hudi Jni Scanner 内存泄漏问题([#48955](https://github.com/apache/doris/pull/48955)) -- 修复 MaxCompute Catalog 多分区列表读取错误([#48325](https://github.com/apache/doris/pull/48325)) - -**JDBC** - -- 修复 JDBC Catalog 表行数查询空指针问题([#49442](https://github.com/apache/doris/pull/49442)) -- 修复 OceanBase Oracle 模式连接测试失败([#49442](https://github.com/apache/doris/pull/49442)) -- 修复 JDBC Catalog 并发场景下列类型长度错误([#48541](https://github.com/apache/doris/pull/48541)) -- 修复 JDBC Catalog BE 端 Classloader 泄漏([#46912](https://github.com/apache/doris/pull/46912)) -- 修复 PostgreSQL JDBC Catalog 连接线程泄漏([#49568](https://github.com/apache/doris/pull/49568)) - -**Export** - -- 修复 EXPORT 作业卡在 EXPORTING 状态([#47974](https://github.com/apache/doris/pull/47974)) -- 禁止 OUTFILE 自动重试以防止重复文件导出([#48095](https://github.com/apache/doris/pull/48095)) - -**其他** - -- 修复 FE WebUI 执行 TVF 查询空指针问题([#49213](https://github.com/apache/doris/pull/49213)) -- 修复 Hadoop Libhdfs Thread Local 空指针异常([#48280](https://github.com/apache/doris/pull/48280)) -- 修复 FE 访问 Hadoop Filesystem 报 "Filesystem already closed"([#48351](https://github.com/apache/doris/pull/48351)) -- 修复 Catalog Comment 未持久化问题([#46946](https://github.com/apache/doris/pull/46946)) -- 修复 Parquet 复杂类型读取报错([#47734](https://github.com/apache/doris/pull/47734)) - -### 异步物化视图 - -- 修复极端场景下物化视图构建任务卡顿问题([#48074](https://github.com/apache/doris/pull/48074)) -- 修复嵌套物化视图透明改写失效问题([#48222](https://github.com/apache/doris/pull/48222)) - -### 查询优化器 - -- 修复函数常量折叠计算结果错误([#49225](https://github.com/apache/doris/pull/49225) [#47966](https://github.com/apache/doris/pull/47966) [#49416](https://github.com/apache/doris/pull/49416) [#49087](https://github.com/apache/doris/pull/49087) [#49033](https://github.com/apache/doris/pull/49033) [#49061](https://github.com/apache/doris/pull/49061) [#48895](https://github.com/apache/doris/pull/48895) [#48957](https://github.com/apache/doris/pull/48957) [#47288](https://github.com/apache/doris/pull/47288) [#48641](https://github.com/apache/doris/pull/48641) [#49413](https://github.com/apache/doris/pull/49413) [#48783](https://github.com/apache/doris/pull/48783)) -- 修复嵌套窗口函数使用 ORDER BY 子句意外报错([#48492](https://github.com/apache/doris/pull/48492)) - -### 查询执行 - -- 修复 Pipeline 任务调度导致的卡死/性能问题([#49976](https://github.com/apache/doris/pull/49976) [#49007](https://github.com/apache/doris/pull/49007)) -- 修复 FE 连接失败时的内存越界问题([#48370](https://github.com/apache/doris/pull/48370) [#48313](https://github.com/apache/doris/pull/48313)) -- 修复 Lambda 函数与数组函数共用导致的内存越界([#49140](https://github.com/apache/doris/pull/49140)) -- 修复 String 与 JSONB 类型转换空值导致 BE Core([#49810](https://github.com/apache/doris/pull/49810)) -- 规范 `parse_url` 未定义行为([#49149](https://github.com/apache/doris/pull/49149)) -- 修复 `array_overlap` 函数空值结果异常([#49403](https://github.com/apache/doris/pull/49403)) -- 修复非 ASCII 字符大小写转换错误([#49763](https://github.com/apache/doris/pull/49763)) -- 修复 `percentile` 函数部分场景 BE Core([#48563](https://github.com/apache/doris/pull/48563)) -- 修复多个内存越界问题([#48288](https://github.com/apache/doris/pull/48288) [#49737](https://github.com/apache/doris/pull/49737) [#48018](https://github.com/apache/doris/pull/48018) [#47964](https://github.com/apache/doris/pull/47964)) -- 修复 SET 算子结果错误([#48001](https://github.com/apache/doris/pull/48001)) -- 降低 Arrow Flight 默认线程池大小以避免句柄耗尽([#48530](https://github.com/apache/doris/pull/48530)) -- 修复窗口函数内存越界导致 BE Core([#48458](https://github.com/apache/doris/pull/48458)) - -### 半结构化数据管理 - -- 修复 Transfer-Encoding: chunked 的 Stream Load JSON 导入异常([#48474](https://github.com/apache/doris/pull/48474)) -- 增强 JSONB 格式合法性校验([#48731](https://github.com/apache/doris/pull/48731)) -- 修复 STRUCT 类型字段过多导致的 Crash([#49552](https://github.com/apache/doris/pull/49552)) -- 支持复杂类型 VARCHAR 长度扩展([#48025](https://github.com/apache/doris/pull/48025)) -- 修复 `array_avg` 函数在特定参数下的 Crash([#48691](https://github.com/apache/doris/pull/48691)) -- 修复 VARIANT 类型 `ColumnObject::pop_back` Crash([#48935](https://github.com/apache/doris/pull/48935) [#48978](https://github.com/apache/doris/pull/48978)) -- 禁用 VARIANT 类型的索引构建操作([#49844](https://github.com/apache/doris/pull/49844)) -- 禁用 VARIANT 类型倒排索引 V1 格式([#49890](https://github.com/apache/doris/pull/49890)) -- 修复 VARIANT 多层 CAST 结果错误([#47954](https://github.com/apache/doris/pull/47954)) -- 优化 VARIANT 多子列倒排索引元数据查询性能([#48153](https://github.com/apache/doris/pull/48153)) -- 优化存算分离模式下 VARIANT Schema 内存消耗([#47629](https://github.com/apache/doris/pull/47629) [#48463](https://github.com/apache/doris/pull/48463)) -- 修复 PreparedStatement ID 溢出问题([#48116](https://github.com/apache/doris/pull/48116)) -- 修复行存与 Delete 操作结合问题([#49609](https://github.com/apache/doris/pull/49609)) - -### 倒排索引 - -- 修复 ARRAY 类型倒排索引 Null Bitmap 错误([#48052](https://github.com/apache/doris/pull/48052)) -- 修复 Date/Datetimev1 类型 Bloomfilter 索引比较错误([#47005](https://github.com/apache/doris/pull/47005)) -- 修复 UTF-8 四字节字符截断问题([#48792](https://github.com/apache/doris/pull/48792)) -- 修复新增列后立即创建倒排索引导致丢失的问题([#48547](https://github.com/apache/doris/pull/48547)) -- 修复 ARRAY 倒排索引空数据处理异常([#48264](https://github.com/apache/doris/pull/48264)) -- 修复倒排索引 FE 元数据升级兼容性([#49283](https://github.com/apache/doris/pull/49283)) -- 修复 `match_phrase_prefix` 缓存错误([#46517](https://github.com/apache/doris/pull/46517)) -- 修复 Compaction 后倒排索引 File Cache 未清理([#49738](https://github.com/apache/doris/pull/49738)) - -### 权限 - -- DELETE 操作不再检查 Select_Priv 权限([#49239](https://github.com/apache/doris/pull/49239)) -- 禁止非 root 用户修改 root 权限([#48752](https://github.com/apache/doris/pull/48752)) -- 修复 LDAP 偶发 Partial Result Exception([#47858](https://github.com/apache/doris/pull/47858)) - -### 其他 - -- 修复 JDK17 环境 JAVA_OPTS 识别异常([#48170](https://github.com/apache/doris/pull/48170)) -- 修复 InterruptException 导致 BDB 元数据写入失败([#47874](https://github.com/apache/doris/pull/47874)) -- 优化多语句请求的 SQL Hash 生成([#48242](https://github.com/apache/doris/pull/48242)) -- 用户属性变量优先级高于 Session 变量([#48548](https://github.com/apache/doris/pull/48548)) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.6.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.6.md deleted file mode 100644 index dd60fa3ce4d1c..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.6.md +++ /dev/null @@ -1,191 +0,0 @@ ---- -{ - "title": "Release 3.0.6", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,Apache Doris 3.0.6 版本已于 2025 年 06 月 16 日正式发布。 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。" -} ---- - -亲爱的社区小伙伴们,**Apache Doris 3.0.6 版本已于 2025 年 06 月 16 日正式发布。** 该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。 - -- [GitHub 下载](https://github.com/apache/doris/releases) - -- [官网下载](https://doris.apache.org/download) - -## 行为变更 - -- **禁止 Unique 表使用时序 Compaction** [#49905](https://github.com/apache/doris/pull/49905) -- **存算分离场景下 Auto Bucket 单分桶容量调整为 10GB** [#50566](https://github.com/apache/doris/pull/50566) - -## 新特性 - -### Lakehouse - -- **支持访问 AWS S3 Table Buckets 中的 Iceberg 表格式** - - 详情请参考[文档:Iceberg on S3 Tables](https://doris.apache.org/docs/dev/lakehouse/catalogs/iceberg-catalog#iceberg-on-s3-tables) - -### 存储 - -- **对象存储访问支持 IAM Role 授权** 适用于导入/导出、备份恢复及存算分离场景 [#50252](https://github.com/apache/doris/pull/50252) [#50682](https://github.com/apache/doris/pull/50682) [#49541](https://github.com/apache/doris/pull/49541) [#49565](https://github.com/apache/doris/pull/49565) [#49422](https://github.com/apache/doris/pull/49422) - - 详情请参考[文档](https://doris.apache.org/zh-CN/docs/3.0/admin-manual/auth/integrations/aws-authentication-and-authorization) - -### 新增函数 - -- `json_extract_no_quotes` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/json-functions/json-extract) -- `unhex_null` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/string-functions/unhex) -- `xpath_string` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/string-functions/xpath-string) -- `str_to_map` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/map-functions/str-to-map) -- `months_between` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/date-time-functions/months-between) -- `next_day` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/date-time-functions/next-day) -- `format_round` - - 详情请参考[文档](https://doris.apache.org/docs/3.0/sql-manual/sql-functions/scalar-functions/numeric-functions/format-round) - -## 改进 - -### 导入 - -- **引入黑名单机制**:避免 Routine Load 将元信息分发至不可用 BE 节点 [#50587](https://github.com/apache/doris/pull/50587) -- **提高负载优先级阈值**:`load_task_high_priority_threshold_second` 默认值增大 [#50478](https://github.com/apache/doris/pull/50478) - -### 主键模型 - -- **减少冗余日志输出** [#51093](https://github.com/apache/doris/pull/51093) - -### 存储优化 - -- 精简 Compaction Profile 及日志 [#50950](https://github.com/apache/doris/pull/50950) -- 优化调度策略提升 Compaction 吞吐量 [#49882](https://github.com/apache/doris/pull/49882) [#48759](https://github.com/apache/doris/pull/48759) [#51482](https://github.com/apache/doris/pull/51482) [#50672](https://github.com/apache/doris/pull/50672) [#49953](https://github.com/apache/doris/pull/49953) [#50819](https://github.com/apache/doris/pull/50819) - -### 存算分离 - -- **启动优化**:加速 File Cache 初始化 [#50726](https://github.com/apache/doris/pull/50726) -- **查询加速**:优化 File Cache 查询性能 [#50275](https://github.com/apache/doris/pull/50275) [#50387](https://github.com/apache/doris/pull/50387) [#50555](https://github.com/apache/doris/pull/50555) -- **元数据获取优化**:解决 `get_version` 导致的性能瓶颈 [#51111](https://github.com/apache/doris/pull/51111) [#50439](https://github.com/apache/doris/pull/50439) -- **对象回收加速**:提升存算分离模式垃圾回收效率 [#50037](https://github.com/apache/doris/pull/50037) [#50766](https://github.com/apache/doris/pull/50766) -- **稳定性提升**:优化对象存储重试策略 [#50957](https://github.com/apache/doris/pull/50957) -- **Profile 细化**:增强 Tablet/Segment Footer 维度统计 [#49945](https://github.com/apache/doris/pull/49945) [#50564](https://github.com/apache/doris/pull/50564) [#50326](https://github.com/apache/doris/pull/50326) -- **Schema Change 容错**:默认启用 New Tablet Compaction 规避 -230 错误 [#51070](https://github.com/apache/doris/pull/51070) - -### Lakehouse - -#### Catalog 增强 -- Hive Catalog 支持分区缓存 TTL 控制(`partition.cache.ttl-second`)[#50724](https://github.com/apache/doris/pull/50724) - - 详情参考文档:[元数据缓存](https://doris.apache.org/docs/dev/lakehouse/meta-cache) -- 支持 Hive 表 `skip.header.line.count` 属性 [#49929](https://github.com/apache/doris/pull/49929) -- 兼容 `org.openx.data.jsonserde.JsonSerDe` 格式的 Hive 表 [#49958](https://github.com/apache/doris/pull/49958) - - 详情参考文档:[文本格式](https://doris.apache.org/docs/dev/lakehouse/file-formats/text) -- Paimon 版本升级至 1.0.1 -- Iceberg 版本升级至 1.6.1 - -#### 功能扩展 -- 支持阿里云 OSS-HDFS Root Policy 功能 [#50678](https://github.com/apache/doris/pull/50678) -- 方言兼容:返回 Hive 格式查询结果 [#49931](https://github.com/apache/doris/pull/49931) - -### 异步物化视图 - -- **内存优化**:降低透明改写内存占用 [#48887](https://github.com/apache/doris/pull/48887) - -### 查询优化器 - -- **分桶剪枝性能提升** [#49388](https://github.com/apache/doris/pull/49388) -- **Lambda 表达式增强**:支持引用闭包外部 Slot [#44365](https://github.com/apache/doris/pull/44365) - -### 查询执行 - -- **TopN 查询加速**:优化存算分离场景性能 [#50803](https://github.com/apache/doris/pull/50803) -- **函数扩展**:`substring_index` 支持变量参数 [#50149](https://github.com/apache/doris/pull/50149) -- **地理信息函数**:新增 `ST_CONTAINS`/`ST_INTERSECTS`/`ST_TOUCHES`/`ST_DISJOINT` [#49665](https://github.com/apache/doris/pull/49665) - -### 核心组件 - -- **内存追踪优化**:高并发场景性能提升约 10% [#50462](https://github.com/apache/doris/pull/50462) -- **审计日志增强**:通过 `audit_plugin_max_insert_stmt_length` 限制 INSERT 语句长度 [#51314](https://github.com/apache/doris/pull/51314) - - 详情请参考文档:[审计插件](https://doris.apache.org/docs/3.0/admin-manual/audit-plugin) - - -## 缺陷修复 - -### 导入 - -- 修复 BE 事务清理失败问题 [#50103](https://github.com/apache/doris/pull/50103) -- 优化 Routine Load 任务报错准确性 [#51078](https://github.com/apache/doris/pull/51078) -- 禁止向 `disable_load=true` 节点分发元信息任务 [#50421](https://github.com/apache/doris/pull/50421) -- 修复 FE 重启后消费进度回退 [#50221](https://github.com/apache/doris/pull/50221) -- 修复 Group Commit 与 Schema Change 冲突导致的 Core Dump [#51144](https://github.com/apache/doris/pull/51144) -- 解决 S3 Load 使用 HTTPS 协议报错 [#51246](https://github.com/apache/doris/pull/51246) [#51529](https://github.com/apache/doris/pull/51529) - -### 主键模型 - -- 修复竞争导致的主键重复问题 [#50019](https://github.com/apache/doris/pull/50019) [#50051](https://github.com/apache/doris/pull/50051) [#50106](https://github.com/apache/doris/pull/50106) [#50417](https://github.com/apache/doris/pull/50417) [#50847](https://github.com/apache/doris/pull/50847) [#50974](https://github.com/apache/doris/pull/50974) - -### 存储 - -- 解决 CCR 与磁盘均衡竞争 [#50663](https://github.com/apache/doris/pull/50663) -- 修复默认分区 Key 未持久化问题 [#50489](https://github.com/apache/doris/pull/50489) -- CCR 支持 Rollup 表 [#50337](https://github.com/apache/doris/pull/50337) -- 修复 `cooldown_ttl=0` 边界问题 [#50830](https://github.com/apache/doris/pull/50830) -- 解决数据 GC 与 Publish 竞争导致数据丢失 [#50343](https://github.com/apache/doris/pull/50343) -- 修复 Delete Job 分区剪枝失效 [#50674](https://github.com/apache/doris/pull/50674) - -### 存算分离 - -- 修复 Schema Change 阻塞 Compaction [#50908](https://github.com/apache/doris/pull/50908) -- 解决 `storage_vault_prefix` 为空时对象回收失败 [#50352](https://github.com/apache/doris/pull/50352) -- 修复 Tablet Cache 导致的查询性能问题 [#51193](https://github.com/apache/doris/pull/51193) [#49420](https://github.com/apache/doris/pull/49420) -- 消除残留 Tablet Cache 引起的性能抖动 [#50200](https://github.com/apache/doris/pull/50200) - -### Lakehouse - -#### Export 修复 -- 解决 FE 内存泄漏 [#51171](https://github.com/apache/doris/pull/51171) -- 避免 FE 死锁 [#50088](https://github.com/apache/doris/pull/50088) - -#### Catalog 修复 -- JDBC Catalog 支持组合条件下推 [#50542](https://github.com/apache/doris/pull/50542) -- 修复阿里云 OSS Paimon 表 Deletion Vector 读取 [#49645](https://github.com/apache/doris/pull/49645) -- 支持含逗号的 Hive 表分区值 [#49382](https://github.com/apache/doris/pull/49382) -- 修正 MaxCompute Timestamp 列类型解析 [#49600](https://github.com/apache/doris/pull/49600) -- Trino Catalog 支持显示 `information_schema` 系统表 [#49912](https://github.com/apache/doris/pull/49912) - -#### 文件格式 -- 修复 LZO 压缩格式读取失败 [#49538](https://github.com/apache/doris/pull/49538) -- 兼容旧版 ORC 文件 [#50358](https://github.com/apache/doris/pull/50358) -- 修正 ORC 复杂类型解析错误 [#50136](https://github.com/apache/doris/pull/50136) - -### 异步物化视图 - -- 修复同时指定 `start time` 与立即触发模式时的少刷新问题 [#50624](https://github.com/apache/doris/pull/50624) - -### 查询优化器 - -- 修复 Lambda 表达式改写错误 [#49166](https://github.com/apache/doris/pull/49166) -- 解决 Group By 常量键规划失败 [#49473](https://github.com/apache/doris/pull/49473) -- 修正常量折叠逻辑 [#50142](https://github.com/apache/doris/pull/50142) [#50810](https://github.com/apache/doris/pull/50810) -- 补全系统表信息 [#50721](https://github.com/apache/doris/pull/50721) -- 修复 NULL Literal 创建 View 的列类型错误 [#49881](https://github.com/apache/doris/pull/49881) - -### 查询执行 - -- 解决 JSON 导入非法值导致 BE Core [#50978](https://github.com/apache/doris/pull/50978) -- 修复 Intersect 输入 NULL 常量结果错误 [#50951](https://github.com/apache/doris/pull/50951) -- 修正 Variant 类型谓词错误执行 [#50934](https://github.com/apache/doris/pull/50934) -- 修复 `get_json_string` JSON Path 非法时的结果错误 [#50859](https://github.com/apache/doris/pull/50859) -- 对齐 MySQL 函数行为(JSON_REPLACE/INSERT/SET/ARRAY)[#50308](https://github.com/apache/doris/pull/50308) -- 解决 `array_map` 空参数 Core [#50201](https://github.com/apache/doris/pull/50201) -- 修复 Variant 转 JSONB 异常 Core [#50180](https://github.com/apache/doris/pull/50180) -- 修复 `explode_json_array_json_outer` 函数缺失 [#50164](https://github.com/apache/doris/pull/50164) -- 对齐 `percentile` 与 `percentile_array` 结果 [#49351](https://github.com/apache/doris/pull/49351) -- 优化 UTF8 编码函数行为(url_encode/strright/append_trail_char_if_absent)[#49127](https://github.com/apache/doris/pull/49127) - -### 其他 - -- 修复高并发下审计日志丢失 [#50357](https://github.com/apache/doris/pull/50357) -- 解决动态分区建表导致元数据回放失败 [#49569](https://github.com/apache/doris/pull/49569) -- 避免 Global UDF 重启丢失 [#50279](https://github.com/apache/doris/pull/50279) -- 对齐 MySQL View 元数据返回格式 [#51058](https://github.com/apache/doris/pull/51058) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.7.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.7.md deleted file mode 100644 index a527a0f975b5e..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.7.md +++ /dev/null @@ -1,180 +0,0 @@ ---- -{ - "title": "Release 3.0.7", - "language": "zh-CN", - "description": "Apache Doris 3.0.7 版本发布说明,涵盖行为变更、新特性、查询优化与执行改进、存储与导入增强、Lakehouse 与倒排索引优化,以及多项稳定性和性能修复。" -} ---- - -## 行为变更 - -- 调整 `show frontends` 和 `show backends` 的权限需求,使其与对应的 RESTful API 保持一致,即需要 `information_schema` 库的 `SELECT_PRIV` 权限 -- 指定 domain 的 admin 和 root 用户不再视为系统用户 -- 存储:单库默认并发事务数调整为 10000 - -## 新特性 - -### 查询优化器 - -- 支持 MySQL 的聚合上卷语法 `GROUP BY ... WITH ROLLUP` - -### 查询执行 - -- 新增数据函数:`cot`/`sec`/`cosec` -- `Like` 语句支持 `escape` 语法 - -### 半结构化数据管理 - -- 通过设置会话变量 `enable_add_index_for_new_data=true`,支持仅对新增数据构建不分词倒排索引和 NGram bloomfilter 索引 - - -## 改进 - -### 导入 - -- 优化 `SHOW CREATE LOAD` 错误信息提示 - -### 主键 - -- 新增 segment key bounds 截断能力,避免单次大导入失败的问题 - -### 存储 - -- 增强 Compaction 和导入数据的可靠性 -- 优化 balance 速度 -- 优化建表速度 -- 优化 compaction 默认参数及可观测性 -- 优化查询报错 -230 的问题 -- 增加系统表 `backend_tablets` -- 优化 Cloud 模式下从 follower 节点查询 `information_schema.tables` 的性能 - -### 存算分离 - -- 增强 Meta-service recycler 可观测性 -- 支持导入 compaction 过程进行跨 compute group 增量预热 -- 优化 Storage vault 连通性检查 -- 支持通过 MS API 更新存储后端信息 - -### Lakehouse - -- 优化 x86 环境下 ORC zlib 的解压性能并修复潜在问题 -- 优化外表读取的默认并发线程数 -- 优化不支持 DDL 操作的 Catalog 的报错信息 - -### 异步物化视图 - -- 优化透明改写规划的性能 - -### 查询优化器 - -- `group_concat` 函数现在允许参数为非字符串类型 -- `sum` 和 `avg` 函数允许参数为非数值类型 -- 扩展 TOP-N 查询延迟物化的支持范围,当查询部分列时也能延迟物化 -- 创建分区时,list 分区允许包含 `MAX_VALUE` -- 优化采样收集聚合模型表统计信息的性能 -- 优化采样收集统计信息时 NDV 值的准确性 - -### 倒排索引 - -- 统一 `show create table` 中倒排索引展示的 properties 顺序 -- 为倒排索引过滤条件新增逐条件的 profile 指标(如命中行数与执行时间),便于性能分析 -- 增强 profile 中倒排索引相关信息展示 - -### 权限 - -- Ranger 支持设置 storage vault 和 compute group 的权限 - -## 缺陷修复 - -### 导入 - -- 修复导入 CSV 文件使用多字符分隔符可能导致的正确性问题 -- 修复修改任务属性后显示 `ROUTINE LOAD` 任务结果不正确的问题 -- 修复主节点重启或 Leader 切换后一流多表导入计划失效的问题 -- 修复 `ROUTINE LOAD` 任务因找不到可用 BE 节点导致所有调度任务阻塞的问题 -- 修复 `runningTxnIds` 并发读写冲突问题 - -### 主键 - -- 优化 mow 表在高频并发导入下的导入性能 -- mow 表 full compaction 释放被删除数据的空间 -- 修复 mow 表在极端场景下可能出现的导入失败问题 -- 优化 mow 表 compaction 性能 -- 修复 mow 表在有并发导入和 sc 时可能的正确性问题 -- 修复 mow 空表执行 schema change 可能导致导入卡住或 schema change 失败的问题 -- 修复 mow delete bitmap cache 内存泄漏问题 -- 修复 mow 表在 sc 后可能的正确性问题 - -### 存储 - -- 修复 compaction 导致的 clone 过程 missing rowset 问题 -- 修复 autobucket 计算 size 不准确及默认值问题 -- 修复分桶列可能导致的正确性问题 -- 修复单列表不能 rename 的问题 -- 修复 memtable 可能的内存泄漏问题 -- 修复空表事务写对不支持行为的报错不统一问题 - -### 存算分离 - -- File cache 相关修复 -- 修复 schema 过程中 cumulative point 可能回滚的问题 -- 修复后台任务影响自动重启的问题 -- 修复 azure 环境中数据回收过程未处理的异常问题 -- 修复单 rowset 做 compaction 未及时清理 file cache 的问题 - -### Lakehouse - -- 修复 Kerberos 环境下 Iceberg 表写入事务提交失败的问题 -- 修复 kerberos 环境下查询 hudi 的问题 -- 修复多 Catalog 情况下潜在的死锁问题 -- 修复某些情况下并发刷新 Catalog 导致元数据不一致的问题 -- 修复 ORC footer 某些情况下会被多次读取的问题 -- 修复 Table Valued Function 无法读取压缩格式 json 文件的问题 -- SQL Server Catalog 支持识别 IDENTITY 列信息 -- SQL Convertor 支持指定多个 url 以实现高可用 - -### 异步物化视图 - -- 修复当查询被优化为空集结果时,可能错误进行分区补偿的问题 - -### 查询优化器 - -- 修复 `sql_select_limit` 以外的影响 DML 执行结果的问题 -- 修复开始 local shuffle 时,物化的 CTE 在极端情况下可能执行报错的问题 -- 修复 prepare 的 insert 语句无法在非 master 节点执行的问题 -- 修复 `cast ipv4` 到 string 的结果错误问题 - -### 权限 - -- 当一个用户拥有多个角色时,会合并多个角色的权限后再执行鉴权 - -### 查询执行 - -- 修复部分 json 函数问题 -- 修复异步线程池满时可能导致 BE Core 的问题 -- 修复 `hll_to_base64` 结果不正确的问题 -- 修复 `decimal256` 转换为 float 时结果错误的问题 -- 修复两处内存泄漏问题 -- 修复 `bitmap_from_base64` 导致的 be core 问题 -- 修复 `array_map` 函数可能导致的 be core 问题 -- 修复 `split_by_regexp` 函数可能的错误问题 -- 修复超大数据量下 `bitmap_union` 函数可能的结果错误问题 -- 修复 `format round` 函数在部分边界值下可能 core 的问题 - -### 倒排索引 - -- 修复倒排索引在异常情况下产生的内存泄漏问题 -- 修复写入和查询空索引文件时报错的问题 -- 捕获倒排索引字符串读取中的 IO 异常,避免因异常导致进程崩溃 - -### 复杂数据类型 - -- 修复 Variant Nested 嵌套数据类型冲突时可能导致的类型推断错误 -- 修复 `map` 函数参数类型推导错误 -- 修复 jsonpath 中指定 `'$.'` 作为 path 导致数据错误变为 NULL 的问题 -- 修复 Variant 的子字段包含 `.` 时,序列化格式无法还原的问题 - -### 其他 - -- 修复 auditlog 表 IP 字段长度不足的问题 -- 修复 SQL 解析错误时,审计日志中记录的 query id 为上一次执行查询的 query id 的问题 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.8.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.8.md deleted file mode 100644 index c35ff71b16e6a..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.0/release-3.0.8.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -{ - "title": "Release 3.0.8", - "language": "zh-CN", - "description": "schema-change" -} ---- - -## 行为变更 - -- 当使用 ranger / LDAP 时,不再禁止在 Doris 中创建用户 [#50139](https://github.com/apache/doris/pull/50139) -- variant 在默认情况下会关闭 nested 属性,若需在建表时开启,需先在 session variable 中执行以下命令:`set enable_variant_flatten_nested = true`[#54413](https://github.com/apache/doris/pull/54413) - -## 新特性 - -### 查询优化器 - -- 支持 MySQL 的 GROUP BY WITH ORDER 语法 [#53037](https://github.com/apache/doris/pull/53037) - - -## 改进 - -### 导入 - -- 优化内存不足时的下刷策略 ([#52906](https://github.com/apache/doris/pull/52906), [#53909](https://github.com/apache/doris/pull/53909), [#42649](https://github.com/apache/doris/pull/42649), [#54517](https://github.com/apache/doris/pull/54517)) -- S3 Load 和 TVF 支持无 AK/SK 访问公开可读的对象 ([#53592](https://github.com/apache/doris/pull/53592), [#54040](https://github.com/apache/doris/pull/54040)) - -### 存算分离 - -- 当缓存空间充足时,base compaction 生成的 rowset 可以写入文件缓存 ([#53801](https://github.com/apache/doris/pull/53801), [#54693](https://github.com/apache/doris/pull/54693)) -- 优化 `ALTER STORAGE VAULT` 命令,`type`属性可以自动推导,无需显式制定 ([#54394](https://github.com/apache/doris/pull/54394), [#54475](https://github.com/apache/doris/pull/54475)) - - -### 查询优化器 - -- 点查查询会被规划为只有一个 fragment,以提升点查的执行速度 [#53541](https://github.com/apache/doris/pull/53541) - -### 查询执行 - -- 提升 unique key 表在点查时的性能 [#53948](https://github.com/apache/doris/pull/53948) - -### 倒排索引 - -- 优化不分词索引写入时常见默认分词器的额外资源消耗 [#54666](https://github.com/apache/doris/pull/54666) - - -## 缺陷修复 - -### 导入 - -- 修复在使用多字符列分隔符时,`enclose` 解析错误的问题 ([#54581](https://github.com/apache/doris/pull/54581), [#55052](https://github.com/apache/doris/pull/55052)) -- 修复 S3 Load 进度更新不及时的问题 ([#54606](https://github.com/apache/doris/pull/54606), [#54790](https://github.com/apache/doris/pull/54790)) -- 修复 JSON 格式布尔类型加载到 INT 列时的错误 ([#54397](https://github.com/apache/doris/pull/54397), [#54640](https://github.com/apache/doris/pull/54640)) -- 修复 Stream Load 缺失错误 URL 返回的问题 ([#54115](https://github.com/apache/doris/pull/54115), [#54266](https://github.com/apache/doris/pull/54266)) -- 修复在 schema change 抛出异常后 group commit 被阻塞的问题 [#54312](https://github.com/apache/doris/pull/54312) - -### Lakehouse - -- 修复部分情况下使用 JDBC SQL 透传解析失败的问题 [#54077](https://github.com/apache/doris/pull/54077) -- 修复写入 decimal 分区的 iceberg 表失败的问题 [#54557](https://github.com/apache/doris/pull/54557) -- 修复某些情况下 Hudi 表 Timestamp 类型分区列查询失败的问题 [#53791](https://github.com/apache/doris/pull/53791) - -### 查询优化器 - -- 修复在部分自关联场景中,错误使用 colocate join 的问题 [#54323](https://github.com/apache/doris/pull/54323) -- 修复 select distinct 与窗口函数一起使用时可能导致的结果错误 [#54133](https://github.com/apache/doris/pull/54133) -- 当 lambda 表达式出现在非预期位置时,提供更友好的报错 [#53657](https://github.com/apache/doris/pull/53657) - -### 权限 - -- 修复查询外部视图时,错误检查视图中基表权限的问题 [#53786](https://github.com/apache/doris/pull/53786) - -### 查询执行 - -- 修复 IPV6 类型不能解析 IPV4 类型数据的问题 [#54391](https://github.com/apache/doris/pull/54391) -- 修复 IPV6 类型解析时出现栈溢出的错误 [#53713](https://github.com/apache/doris/pull/53713) - - -### 复杂数据类型 - -- BE 支持启动时选择符合指令集的 simdjson parser [#52732](https://github.com/apache/doris/pull/52732) -- 修复 variant nested 数据类型在数据类型冲突情况下导致的错误类型推断 [#53083](https://github.com/apache/doris/pull/53083) -- 修复 variant nested 顶层嵌套 array 数据默认值填充问题 [#54396](https://github.com/apache/doris/pull/54396) -- 禁止 variant 类型在 cloud 上 build index [#54777](https://github.com/apache/doris/pull/54777) -- 修复 variant 创建倒排索引后写入不符合索引条件的数据时生成空索引文件的问题 [#53814](https://github.com/apache/doris/pull/53814) - -### 其他 - -**schema-change** - -- 修复在清理失败的 SC 任务时新 tablet 为空的问题 ([#53952](https://github.com/apache/doris/pull/53952), [#54064](https://github.com/apache/doris/pull/54064)) -- 按原有顺序重建 bucket 列 ([#54024](https://github.com/apache/doris/pull/54024), [#54072](https://github.com/apache/doris/pull/54072), [#54109](https://github.com/apache/doris/pull/54109)) -- 禁止删除 bucket 列 [#54037](https://github.com/apache/doris/pull/54037) -- 网络错误时支持自动重试 ([#54419](https://github.com/apache/doris/pull/54419), [#54488](https://github.com/apache/doris/pull/54488)) -- 避免在 `tabletInvertedIndex` 上的死锁 ([#54197](https://github.com/apache/doris/pull/54197), [#54996](https://github.com/apache/doris/pull/54996)) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.1/release-3.1.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.1/release-3.1.0.md deleted file mode 100644 index 16f22fc6a4562..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.1/release-3.1.0.md +++ /dev/null @@ -1,647 +0,0 @@ ---- -{ - "title": "Release 3.1.0", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,近期我们迎来了 Apache Doris 3.1 版本的正式发布,欢迎大家下载使用体验。" -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,近期我们迎来了 Apache Doris 3.1 版本的正式发布,欢迎大家下载使用体验。 - -3.1 版本是 Apache Doris 在**半结构化分析**上的一个里程碑版本。在 VARIANT 类型上,3.1 版本新增了稀疏列能力,使得 VARIANT 可以轻松应对数万子列的场景。同时,在 VARIANT 类型上引入了模板化 schema 能力,让 VARIANT 类型在关键路径上,查询更快、索引更稳、成本可控,同时不丢失灵活性。在倒排索引能力上,3.1 版本引入了 index v3 版本的索引格式,相比较于 v2 版本存储空间节省可达 20%。同时,支持了更为丰富的分词手段,提供了三种全新的分词器:ICU Tokenizer、IK Tokenizer 和 Basic Tokenizer。还进一步支持了自定义分词器,可以突破内置分词器的局限性,根据业务场景定制,显著提升搜索召回率。 - -3.1 版本同样在**湖仓一体**上有了显著的增强。在 3.1 版本中,Apache Doris 将异步物化视图中的分区构建和透明改写分区补偿,这两项重要能力引入数据湖中,在湖和仓中间架起一座重要的桥梁。3.1 版本还扩充了对 iceberg 和 paimon 特性的支持范围。另外,通过引入动态分区裁剪和批量分片执行在特定场景下提升了数据湖查询的性能多达 40%,并显著降低了 FE 的内存占用。同时 3.1 版本还重构了各个数据源的连接属性,不仅能够以更加清晰的方式对接各类元数据服务和数据存储系统,同时还支持了更加丰富的连接能力。 - -3.1 版本 Apache Doris 持续打磨**存储引擎**。提供了全新的数据更新方式 —— 灵活列更新。在部分列更新的基础上,进一步放开限制。在一次导入中对于每一行可以更新不同的列。另外,在存算分离场景下,优化了 MOW 表部分链路的锁获取逻辑和使用范围,提升高并发导入场景的使用体验。 - -在性能方面,3.1 着重优化了**分区裁剪的能力和规划性能**。在数万分区和复杂分区过滤表达式的场景下,能够显著提升查询性能并降低资源消耗。同时,3.1 还在优化器中全面引入了基于数据特征的优化手段,在特定场景下可以获得超过 10 倍的性能提升。 - -**在 3.1 版本的研发过程中,有超过 90 名贡献者为 Apache Doris 提交了 1000+ 个优化与修复。** 在此向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢。 - -- [GitHub 下载](https://github.com/apache/doris/releases) - -- [官网下载](https://doris.apache.org/download) - -## 一、VARIANT 半结构化查询华丽变身 - -### 存储能力质变:稀疏列与子列 Vertical Compaction,轻松支持数万子列 - -传统 OLAP 面对“超宽表/超多列”(上千到上万)常遇到元数据膨胀、合并放大与查询退化;Doris 3.1 通过 VARIANT 的稀疏子列与子列级 Vertical Compaction,将可维护的列数上限抬升到数万级。 - -通过对存储层的深入优化,Variant 给用户带来以下收益: - -- 稳定支撑“上千 - 数万”子列(列式存储),查询/合并延迟更平滑。 -- 元数据与索引可控,避免指数级膨胀。 -- 实测可进行 10,000+ 子列提取(列式存储),Compaction 效率顺畅。 - -**超多列的适用场景:** - -- 车联网/IoT 遥测:设备型号多、传感器维度动态增减。 -- 营销自动化/CRM:事件/用户属性持续扩展(如自定义 event/property)。 -- 广告/埋点事件:海量可选 properties,字段稀疏且不断演进。 -- 安全审计/日志:不同源日志字段各异,需按模式聚合检索。 -- 电商商品属性:类目跨度大,商品属性高度可变。 - -**实现原理** - -- 稀疏子列(Sparse Subcolumns):按 JSON Key 频次排序,只提取 Top-N 高频子列入“真列式”;长尾保持在稀疏列存储,避免无序扩张。 -- 子列级 Vertical Compaction:对 VARIANT 子列应用 Vertical Compaction,分组合并、内存占用更小;合并时动态识别并固化热点路径,进一步降低合并开销。 -- 优化值填充默认值效率,按 batch 的方式进行批量填充(减少虚函数开销)。 -- 通过 LRU 机制减少内存中列存储相关元数据缓存内存开销。 - -**如何开启与使用** - -新增列级别控制 Variant 参数,列属性(Properties): - -`variant_max_subcolumns_count`:默认是`0`,表明不开启稀疏列能力,设置成特定值后将会提取 Top-N 高频的 JSON key 作为列式存储,余下的列进入稀疏列存储。 - -```SQL --- Enable sparse subcolumns and cap hot subcolumn count -CREATE TABLE IF NOT EXISTS tbl ( - k BIGINT, - v VARIANT< - properties("variant_max_subcolumns_count" = "2048") -- pick top-2048 hot keys - > -) DUPLICATE KEY(k); -``` - -### 模板化 Schema(Schema Template) - 变化中的不变量 - -一句话总结:模板化 Schema 让“常变”的 JSON 在关键路径上“变得可预期”:查询更快、索引更稳、成本可控,同时不丢失灵活性。 - -使用模板化的 Schema,将会给使用 Variant 数据类型带来以下收益: - -- 类型稳定:关键子路径类型可在 DDL 中固定,避免类型漂移引发的查询报错、索引失效与隐式转换开销。 -- 检索更快更准:为不同子路径定制倒排策略(分词/非分词、解析器、短语搜索等),常用查询延迟更低、命中更稳定。 -- 索引与成本可控:不再“整列统一继承索引”(2.1 的做法易膨胀),而是“按子路径精细化配置”,显著降低索引数量、写放大与存储成本。 -- 可维护/可协作:等同给 JSON 加“数据契约”,跨团队语义一致;类型与索引状态更可观测,问题更易定位。 -- 演进友好:核心高频路径模板化并可选建索引,长尾字段继续保持灵活扩展,不牺牲可扩展性。 - -**如何开启与使用** - -- 显式声明结构,指定类型:在`VARIANT<...>`中预定义常用子路径与类型(含通配),例如`'a' : int, 'c.d' : text, 'array_int_*' : array`。 -- 配置索引,针对同一 VARIANT 列的不同子路径配置不同索引策略(field_pattern、解析器、分词、短语搜索等),差异化提升检索效率,可用通配符批量匹配。 -- 新增列级别控制 Variant 参数,列属性(Properties):`variant_enable_typed_paths_to_sparse`:默认是`false`,表明预定义的列不会进入稀疏列, `true` 开启后预定义类型路径也会进入稀疏存储(用于避免匹配过多列后导致的列数膨胀) - -示例 1:schema 定义 + 单列多索引 - -```SQL --- Common properties: field_pattern (target subpath), analyzer, parser, support_phrase, etc. -CREATE TABLE IF NOT EXISTS tbl ( - k BIGINT, - v VARIANT<'content' : STRING>, -- specify concrete type for subcolumn 'content' - INDEX idx_tokenized(v) USING INVERTED PROPERTIES("parser" = "english", "field_pattern" = "content"), -- tokenized inverted index for 'content' with english parser - INDEX idx_v(v) USING INVERTED PROPERTIES("field_pattern" = "content") -- non-tokenized inverted index for 'content' -); - --- v.content will have both a tokenized (english) inverted index and a non-tokenized inverted index - --- Use tokenized index -SELECT * FROM tbl WHERE v['content'] MATCH 'Doris'; - --- Use non-tokenized index -SELECT * FROM tbl WHERE v['content'] = 'Doris'; -``` - -示例 2:通配符批量处理符合模式的列 - -```SQL --- Use wildcard-typed subpaths with per-pattern indexes -CREATE TABLE IF NOT EXISTS tbl2 ( - k BIGINT, - v VARIANT< - 'pattern1_*' : STRING, -- batch-typing: all subpaths matching pattern1_* are STRING - 'pattern2_*' : BIGINT, -- batch-typing: all subpaths matching pattern2_* are BIGINT - properties("variant_max_subcolumns_count" = "2048") -- enable sparse subcolumns; keep top-2048 hot keys - >, - INDEX idx_p1 (v) USING INVERTED - PROPERTIES("field_pattern"="pattern1_*", "parser" = "english"), -- tokenized inverted index for pattern1_* with english parser - INDEX idx_p2 (v) USING INVERTED - PROPERTIES("field_pattern"="pattern2_*") -- non-tokenized inverted index for pattern2_* -) DUPLICATE KEY(k); -``` - -示例 3:允许预定义类型的列进入稀疏列 - -```SQL --- Allow predefined typed paths to participate in sparse extraction -CREATE TABLE IF NOT EXISTS tbl3 ( - k BIGINT, - v VARIANT< - 'message*' : STRING, -- batch-typing: all subpaths matching prefix 'message*' are STRING - properties( - "variant_max_subcolumns_count" = "2048", -- enable sparse subcolumns; keep top-2048 hot keys - "variant_enable_typed_paths_to_sparse" = "true" -- include typed (predefined) paths as sparse candidates (default: false) - ) - > -) DUPLICATE KEY(k); -``` - -## 二、索引架构全面进化 - -### 倒排索引存储格式 V3 - 性能和功能的双重提升 - -**相比 V2 进一步优化存储** - -索引文件更小,减少磁盘占用和 I/O 开销,以 httplogs 与 logsbench 两个测试集测试结果来看,存储空间最大可以通过 V3 节省 20%,适合大规模文本数据、日志分析场景。 - -![倒排索引存储格式 V3 - 性能和功能的双重提升](/images/release-3.1/index-optimization-1.PNG) - -**核心改进** - -- **引入倒排索引 ZSTD 词典压缩**:采用 ZSTD 压缩算法对倒排索引内的词典文件进行压缩,通过 index properties 中的 `dict_compression` 开启。 -- **新增倒排索引位置信息压缩**:支持对倒排索引中为每个 term 即词元记录的位置信息进行编码压缩,进一步减少倒排索引空间占用。 - -**使用方式** - -```SQL --- 建表时启用V3格式 -CREATE TABLE example_table ( - content TEXT, - INDEX content_idx (content) USING INVERTED - PROPERTIES("parser" = "english", "dict_compression" = "true") -) ENGINE=OLAP -PROPERTIES ("inverted_index_storage_format" = "V3"); -``` - -### 倒排索引 - 分词器灵活多样好用易用 - -#### 新增三种常用分词器 - -进一步提升用户在不同场景下的分词需求: - -**ICU Tokenizer** - -- **实现**:ICU(International Components for Unicode) -- **适用场景**:包含复杂文字系统的国际化文本,特别适合多语言混合文档。 -- **示例**: - - ```SQL - SELECT TOKENIZE('مرحبا بالعالم Hello 世界', '"parser"="icu"'); - -- 结果:["مرحبا", "بالعالم", "Hello", "世界"] - - SELECT TOKENIZE('มนไมเปนไปตามความตองการ', '"parser"="icu"'); - -- 结果:["มน", "ไมเปน", "ไป", "ตาม", "ความ", "ตองการ"] - ``` - -**IK Tokenizer** - -- **实现**:IK Analyzer(中文分词器),基于算法的高级中文分词,结合词典和统计模型 -- **适用场景**:对分词质量要求较高的中文文本处理 -- **模式**: - - **ik_smart**:智能模式,词少且更长,语义集中,适合精确搜索 - - **ik_max_word**:最细粒度模式,更多短词,覆盖更全面,适合召回搜索 -- **示例**: - - ```SQL - -- 智能模式 - SELECT TOKENIZE('中华人民共和国国歌', '"parser"="ik","parser_mode"="ik_smart"'); - -- 结果:["中华人民共和国", "国歌"] - - -- 最细粒度模式 - SELECT TOKENIZE('中华人民共和国国歌', '"parser"="ik","parser_mode"="ik_max_word"'); - -- 结果:["中华人民共和国", "中华人民", "中华", "华人", "人民共和国", "人民", "共和国", "共和", "国歌"] - ``` - -**Basic Tokenizer** - -- **实现**:简单规则的自定义分词器,基础分词,采用字符类型识别进行分词 -- **适用场景**:简单场景、对性能要求极高的场景 -- **分词规则**: - - 连续的字母数字字符作为一个词(word tokens) - - 中文字符单独分词(每个汉字一个 token) - - 忽略标点符号、空格和特殊符号 -- **示例**: - - ```SQL - -- 英文文本分词 - SELECT TOKENIZE('Hello World! This is a test.', '"parser"="basic"'); - -- 结果:["hello", "world", "this", "is", "a", "test"] - - -- 中文文本分词 - SELECT TOKENIZE('你好世界', '"parser"="basic"'); - -- 结果:["你", "好", "世", "界"] - - -- 混合语言分词 - SELECT TOKENIZE('Hello 你好 World 世界', '"parser"="basic"'); - -- 结果:["hello", "你", "好", "world", "世", "界"] - - -- 包含数字和特殊字符 - SELECT TOKENIZE('GET /images/hm_bg.jpg HTTP/1.0', '"parser"="basic"'); - -- 结果:["get", "images", "hm", "bg", "jpg", "http", "1", "0"] - - -- 处理长数字序列 - SELECT TOKENIZE('12345678901234567890', '"parser"="basic"'); - -- 结果:["12345678901234567890"] - ``` - -#### 自定义分词 - -推出自定义分词功能,方便用户根据自身分词需求,进行 DIY 组合,进一步提高文本检索召回率。自定义分词可以突破内置分词的局限,根据特定需求组合字符过滤器、分词器和词元过滤器,精细定义文本如何被切分成可搜索的词项,这直接决定了搜索结果的相关性与数据分析的准确性。 - -![自定义分词](/images/release-3.1/index-optimization-2.PNG) - -**使用场景举例** - -- **问题** - -使用默认 unicode 分词器时,电话号码"13891972631"被当作完整 token,无法支持前缀搜索如"138"。 - -- **解决方案** - - **创建分词器(tokenizer)** - - 使用 Edge N-gram 自定义分词器: - ```SQL - CREATE INVERTED INDEX TOKENIZER IF NOT EXISTS edge_ngram_phone_tokenizer - PROPERTIES - ( - "type" = "edge_ngram", - "min_gram" = "3", - "max_gram" = "10", - "token_chars" = "digit" - ); - ``` - - - - **创建分析器(analyzer)** - - ```SQL - CREATE INVERTED INDEX ANALYZER IF NOT EXISTS phone_prefix_analyzer - PROPERTIES - ( - "tokenizer" = "edge_ngram_phone_tokenizer" - ); - ``` - - - **创建表指定 analyzer** - ```SQL - CREATE TABLE customer_contacts ( - id bigint NOT NULL AUTO_INCREMENT(1), - phone text NULL, - INDEX idx_phone (phone) USING INVERTED PROPERTIES( - "analyzer" = "phone_prefix_analyzer" - ) - ) ENGINE=OLAP - DUPLICATE KEY(id) - DISTRIBUTED BY RANDOM BUCKETS 1 - PROPERTIES ("replication_allocation" = "tag.location.default: 1"); - ``` - - - **查看分词效果** - ```SQL - SELECT tokenize('13891972631', '"analyzer"="phone_prefix_analyzer"'); - +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | tokenize('13891972631', '"analyzer"="phone_prefix_analyzer"') | - +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | [{ - "token": "138" - }, { - "token": "1389" - }, { - "token": "13891" - }, { - "token": "138919" - }, { - "token": "1389197" - }, { - "token": "13891972" - }, { - "token": "138919726" - }, { - "token": "1389197263" - }] | - +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - ``` - - - **文本搜索效果** - ```SQL - SELECT * FROM customer_contacts_optimized WHERE phone MATCH '138'; - +------+-------------+ - | id | phone | - +------+-------------+ - | 1 | 13891972631 | - | 2 | 13812345678 | - +------+-------------+ - SELECT * FROM customer_contacts_optimized WHERE phone MATCH '1389'; - +------+-------------+ - | id | phone | - +------+-------------+ - | 1 | 13891972631 | - | 2 | 13812345678 | - +------+-------------+ - 2 rows in set (0.043 sec) - ``` - -通过 Edge N-gram 分词器,一个电话号码被拆分成多个前缀 token,实现了灵活的前缀匹配搜索。 - -## 三、湖仓一体能力再跃新高 - -### 异步物化视图全面支持数据湖 - -在 3.1 版本中,异步物化视图再次进化,现在可以完整支持 Paimon / Iceberg / Hudi 的分区增量构建和分区透明改写。Doris 自 2.1 版本支持异步物化视图功能开始。经过多个版本的迭代。已经支持了非常多有价值的特性。包括: - -![异步物化视图全面支持数据湖](/images/release-3.1/lakehouse.PNG) - -3.1 版本则重点打磨湖仓一体方向上的功能,全面支持主流的数据湖表格式 Paimon / Iceberg / Hudi 的分区刷新,和透明改写时的外部数据源分区补偿。使其成为联通湖和仓之间的高速公路。具体支持范围详见下表: - -![异步物化视图全面支持数据湖](/images/release-3.1/lakehouse-2.PNG) - -### Iceberg / Paimon 能力全面扩充 - -#### Iceberg - -3.1.0 版本针对 Iceberg 表格式上做出多项优化和能力增强,紧密推进与 Iceberg 最新特性的融合。 - -**支持 Branch / Tag 完整生命周期管理** - -从 3.1.0 开始,Doris 原生支持 Iceberg Branch & Tag 的创建、删除、读取与写入操作。该功能能够让用户像 Git 一样操作和管理 Iceberg 表数据。这一能力为 Iceberg 表格式的多版本并行管理、灰度测试、环境隔离等业务场景提供了原生的支持,无需额外引擎或自定义逻辑。 - -```SQL --- 创建分支 -ALTER TABLE iceberg_tbl CREATE BRANCH b1; --- 写入数据到指定分支 -INSERT INTO iceberg_tbl@branch(b1) values(1, 2); --- 查询指定分支 -SELECT * FROM iceberg_tbl@branch(b1); -``` - -**丰富的 Iceberg 系统表支持** - -3.1.0 新增对 Iceberg `$entries`, `$files`, `$history`, `$manifests`, `$refs`, `$snapshots` 等系统表的支持,可用 `SELECT * FROM iceberg_table$history`、`…$refs` 等语句直接查询 Iceberg 的底层 metadata、snapshot 列表、分支/标签信息等,从而深入了解数据文件的组织结构、快照的变更历史以及分支的映射情况。这种能力大大提升了 Iceberg 元数据的可观测性,使得问题定位、调优分析和治理决策更加直观、透明。 - -如通过系统表查看 delete file 数量: - -```SQL -SELECT - CASE - WHEN content = 0 THEN 'DataFile' - WHEN content = 1 THEN 'PositionDeleteFile' - WHEN content = 2 THEN 'EqualityDeleteFile' - ELSE 'Unknown' - END AS ContentType, - COUNT(*) AS FileNum, - SUM(file_size_in_bytes) AS SizeInBytes, - SUM(record_count) AS Records -FROM - iceberg_table$files -GROUP BY - ContentType; - -+--------------------+---------+-------------+---------+ -| ContentType | FileNum | SizeInBytes | Records | -+--------------------+---------+-------------+---------+ -| EqualityDeleteFile | 2787 | 1432518 | 27870 | -| DataFile | 2787 | 4062416 | 38760 | -| PositionDeleteFile | 11 | 36608 | 10890 | -+--------------------+---------+-------------+---------+ -``` - -**Iceberg 视图查询** - -3.1.0 版本新增对 Iceberg 逻辑视图的访问和查询。该功能进一步提升了 Doris 对 Iceberg 功能的完善程度。在后续 3 位版本迭代中,我们将进一步支持 Iceberg View 的 SQL 方言转换能力。 - -**通过 ALTER 语句修改 Iceberg 表结构** - -3.1.0 支持通过 `ALTER TABLE` 语句对 Iceberg 表进行字段的新增、删除、重命名和重排序操作。该功能进一步完善了 Doris 对 Iceberg 表的管理能力,无需再借助 Spark 等第三方引擎进行 Iceberg 表管理。 - -```SQL -ALTER TABLE iceberg_table -ADD COLUMN new_col int; -``` - -同时,在 3.1.0 版本中,Iceberg 的依赖版本升级到 1.9.2,以便更好的支持 Iceberg 的新的功能。在后续 3.1 的迭代版本中,我们将进一步增强 Iceberg 的表管理能力,包括数据合并、分支演进等能力。 - -详情参考[文档](https://doris.apache.org/docs/lakehouse/catalogs/iceberg-catalog) - -#### Paimon - -3.1.0 版本针对 Paimon 表格式,结合用户实际场景,进行了多项功能更新和能力增强。 - -**支持 Paimon Batch Incremental Query** - -3.1.0 版本支持读取 Paimon 表指定的两个快照之间的增量数据。该功能增强了用户对 Paimon 表增量数据的访问能力。尤其是在增量物化视图构建方面,基于此功能实现了 Paimon 表的增量聚合物化视图能力。详见物化视图方面的说明。 - -```SQL -SELECT * FROM paimon_tbl@incr('startSnapshotId'='2', 'endSnapshotId'='5'); -``` - -**支持 Branch / Tag 读取** - -从 3.1.0 开始,Doris 支持对 Paimon 表的 Branch / Tag 进行读取,帮助用户更灵活的访问多版本的 Paimon 数据。 - -```SQL -SELECT * FROM paimon_tbl@branch(branch1); -SELECT * FROM paimon_tbl@tag(tag1); -``` - -**丰富的 Paimon 系统表支持** - -同 Iceberg 一样,3.1.0 新增对 Paimon `$files`, `$partitions`, `$manifests`, `$tags`, `$snapshots` 等系统表的支持,可用 `SELECT * FROM partition_table$files` 等语句直接查询 Paimon 的底层元数据信息。更方便用户对 Paimon 表进行探测、调试和优化。 - -如我们可以通过系统表统计分区新增数据文件: - -```SQL -SELECT - partition, - COUNT(*) AS new_file_count, - SUM(file_size_in_bytes)/1024/1024 AS new_total_size_mb -FROM my_table$files -WHERE creation_time >= DATE_SUB(NOW(), INTERVAL 3 DAY) -GROUP BY partition -ORDER BY new_total_size_mb DESC; -``` - -在 3.1.0 版本中,Paimon 的依赖版本升级到 1.1.1,以便更好的支持 Paimon 的新的功能。 - -详情参考[文档](https://doris.apache.org/docs/lakehouse/catalogs/paimon-catalog) - -### 数据湖查询性能更上一层楼 - -3.1.0 版本,针对数据湖表格式的查询性能进行了多项深度优化,旨在实际生产环境下,为用户提供更加稳定、高效的数据湖分析能力。 - -**动态分区裁剪** - -动态分区裁剪功能,能够在多表关联查询场景下,根据右表数据生成分区列谓词,并对左表数据进行运行时的分区剪枝,从而减少数据 IO,提升查询性能。在 3.0 版本中,Doris 已经支持了 Hive 表的动态分区裁剪功能。在 3.1.0 版本中,这个功能进一步扩充到了 Iceberg、Paimon 和 Hudi 表上。在测试场景下,针对选择率较高的查询,**可以提升 30%-40% 的性能。** - -**批量分片执行** - -当湖表的数据分片较多时,如果 FE 进行规划并将所有分片信息一次性组装完成发送给 BE,那么可能造成 FE 内存消耗过大以及处理实际过长的问题。尤其是在查询大数据量表时,会导致规划部分的资源开销大耗时长。批量分片执行功能,通过分批次生产数据分片信息,并且边生产变执行,能够有效缓解 FE 的内存开销,同时能够让分片信息的生产和执行并行执行,提升整体的执行效率。在 3.0 版本中,Doris 已经支持了 Hive 表上的该功能。在 3.1.0 版本中,进一步增加了对 Iceberg 表的批量分片执行支持。在大数据量测试场景下,可以显著降低 FE 的内存开销和查询规划时间。 - -### 联邦分析 - 连接器更好用更多样 - -3.1 版本重构了各个数据源的连接属性,不仅能够以更加清晰的方式对接各类元数据服务和数据存储系统,同时还支持了更加丰富的连接能力。 - -**Iceberg Rest Catalog** - -3.1 版本进一步增强了对 Iceberg Rest Catalog 的支持。不仅支持了包括 Unity、Polaris、Gravitino、Glue 等多种 Iceberg Rest Catalog 后端实现,同时支持了 vended credentials 功能,能够更加安全、灵活的管理访问凭证。目前支持 AWS 平台,后续小版本迭代中将陆续支持 GCP、Azure 等云平台的凭证管理。 - -详情参考[文档](https://doris.apache.org/docs/lakehouse/metastores/iceberg-rest) - -**支持 Paimon Rest Catalog** - -3.1.0 版本中支持基于阿里云 DLF 的 Paimon Rest Catalog,可以直接访问新版本 DLF 管理的 Paimon 表数据。 - -详情参考[文档](https://doris.apache.org/docs/lakehouse/best-practices/doris-dlf-paimon) - -**多 Kerberos 环境支持** - -3.1 版本允许用户在同一个 Doris 集群内访问不同的 Kerberos 认证环境。不同的 Kerberos 环境可能采用不同的 KDC 服务、Principal 以及对应的 Keytab。新版本允许针对不同的 Catalog,配置不同的 Kerberos 认证信息,并且相互之间不受干扰。该功能极大的方便了拥有多套 Kerberos 认证环境的用户,可以使用 Doris 进行统一的访问管理。 - -详情参考[文档](https://doris.apache.org/docs/lakehouse/storages/hdfs#kerberos-authentication) - -**多 Hadoop 环境支持** - -在之前的版本中,Doris 只允许用户在 conf 目录下放置一套 hadoop 集群的配置文件(hive-site.xml,hdfs-site.xml 等)。如果用户有多套不同的 Hadoop 环境和配置,则无法支持。新版本运行用户为不同的 Catalog 指定不同的 Hadoop 配置文件,帮助用户更灵活的管理外部数据源。 - -详情参考[文档](https://doris.apache.org/docs/lakehouse/storages/hdfs#kerberos-authentication) - -## 四、存储层构持续打磨 - -在 3.1 版本中,我们对存储层也进行了持续的打磨,性能和稳定性都有了显著的提升。 - -### 灵活列更新 - 数据更新全新体验 - -此前 Doris 的部分列更新功能要求一次导入中每一行必须更新相同的列。在一些场景下,源端系统输出的记录往往只包含主键和被更新的列,不同行更新的列可能不同。为了解决这种需求,Doris 引入了 **灵活列更新** 功能,使用灵活列更新可以大幅简化用户侧按列攒数据的工作以及提升写入性能。 - -**使用方式** - -- 创建 **Merge-on-Write Unique 表** 时,在表属性中开启: -- `"enable_unique_key_skip_bitmap_column" = "true"` -- 在导入时指定导入模式: -- `unique_key_update_mode: UPDATE_FLEXIBLE_COLUMNS` -- Doris 会自动完成灵活列更新与数据补齐。 - -**示例** 支持在一次导入中对不同记录更新不同的列,例如: - -- 删除某行(`DORIS_DELETE_SIGN`) -- 更新部分列(如 `v1`、`v2`、`v5` 等) -- 插入新行(仅提供主键和被更新列,其他列使用默认值或补齐历史值) - -**效果** - -- 在测试环境下(1 FE + 4 BE,16C 64GB,3 亿行 101 列数据,3 副本行存表): - - 每次导入 20,000 行,仅更新 1 列(需补齐 99 列) - - 单并发导入性能可达 **10.4k 行/s** - - 单机资源占用:CPU ~60%,内存 ~30GB,读 IOPS ~7.5k/s,写 IOPS ~5k/s - -### 存算分离 mow 锁优化 - -在存算分离场景下,MOW 表更新 Delete Bitmap 需要获取分布式锁 `delete_bitmap_update_lock`。原有实现中,导入、Compaction 和 Schema Change 会竞争该锁,容易在高并发导入场景下导致长时间等待甚至失败。 - -本次优化包括两方面: - -**减少 Compaction 持锁时间** - -- 通过引入新的 `mow_tablet_compaction_key`,避免多个 Compaction/Schema Change 任务在更新 `initiators` 列表时产生不必要的事务冲突。 -- 在多 Tablet 高并发导入测试中,导入提交事务的 **p99 平均耗时从 1.68 分钟降低到 49.4 秒**,大幅降低了事务提交延迟。 -- 新增配置项 `delete_bitmap_lock_v2_white_list`,支持为指定仓库开启该优化。 - -**降低导入事务长尾延迟** - -- 增加 FE 配置 `mow_load_force_take_ms_lock_threshold_ms`,当导入事务等待锁超过阈值时,将强制获取分布式锁,避免长时间饥饿。 -- 在高并发导入测试下,该优化显著减少了导入事务的长尾延迟。 - -## 五、查询性能提升 - -### 分区裁剪性能和适用范围提升 - -Doris 支持数据按照分区组织,这些分区可以独立存储、独立查询、独立管理。通过分区,可以提升查询性能、优化数据管理,并降低资源消耗。在查询过程中,通过使用过滤条件,提前过滤无需查询的分区,可以显著提升查询性能,降低系统资源消耗。在日志数据分析系统,风控系统等使用场景中,单表可能存在万级别甚至十万级别的分区数量,而通常单词查询,只会命中百级别以下的分区数据。对于在这类数据上的查询,能否分区裁剪,对于查询性能的影响十分显著。 - -在 3.1 版本中,Doris 通过引入一系列的优化,显著提升了分区裁剪的性能和适用范围,包括 - -- 分区裁剪二分查找。对于在时间列上的分区,通过将分区按照列值排序,将分区裁剪的计算从线性遍历,改为二分查找。在使用 DATETIME 类型作为分区字段,13.6 万分区数的场景下。实测分区裁剪的耗时,从 724ms 提升到 43ms。提升超过 16 倍。 -- 增加大量单调函数参与分区裁剪。在实际的使用场景中,在时间分区列上的过滤条件,通常不是简单的逻辑比较,而是在分区列上包含时间函数计算的复杂表达式。如:`to_date(time_stamp) > '2022-12-22`',`date_format(timestamp,'%Y-%m-%d %H:%i:%s') > '2022-12-22 11:00:00'`等。Doris 在 3.1 版本中引入了函数单调特性描述,当函数为单调函数时,可以通过计算分区边界值是否可以被裁剪得知整个分区是否可以被裁剪。在 3.1 版本中,已经支持了 CAST 和 25 个常见的时间相关的函数。可以覆盖绝大多数常见的时间类型分区列上的过滤条件。 -- 此外,3.1 版本中,还对分区裁剪的全路径代码做了许多代码级别的详细优化,减少了不必要开销。 - -### 洞察数据特征 - 获得性能 10 倍的潜力 - -在 3.1 中,优化器可以更聪明的使用数据特征对查询进行优化。优化器会执行计划树种各个节点的收集唯一性(Unique)、均一性(Uniform),等值集(Equal Set)等数据特征,并推导列之间的函数依赖关系。当在特定的节点,数据符合特定特征时,可以移除不必要的连接、聚合或排序计算,显著提升查询性能。 - -在针对特定优化构建的测试用例下,利用数据特征可以获得超过 10 倍的性能提升,详见下表: - -![洞察数据特征 - 获得性能 10 倍的潜力](/images/release-3.1/query-performance.PNG) - -## 六、功能改进 - -### 半结构化 - -**VARIANT** - -- 新增 `variant_type(x)`函数:返回 Variant 子 field 对应的“当前实际类型”。 -- 新增 ComputeSignature/Helper,增强函数参数/返回类型推断能力。 - -**STRUCT** - -- 支持使用 Schema Change 为 STRUCT 类型增加子列 - -### 湖仓一体 - -- 支持在 Catalog 级别设置元数据缓存策略,如缓存过期时间等。帮助用户根据需求灵活调整数据时效性和元数据访问性能。详情参考[文档](https://doris.apache.org/docs/lakehouse/meta-cache) -- 支持 `FILE()` 表函数(Table Valued Function),该表函数是原有的 `S3()`,`HDFS()`,`LOCAL()`表函数的集合,方便用户使用和理解。 - - -### 聚合算子能力增强 - -在 3.1 版本中,优化器重点增强了聚合算子。支持了两个使用较为广泛的能力。 - -**非标 GROUP BY 支持** - -对于标准的聚合查询,要求聚合输出的标量表达式,其本身或其子树必须是聚合键。但在 MySQL 中,当设置了 SQL_MODE 不包含 "ONLY_FULL_GROUP_BY" 时,则没有次限制。详见 [MySQL 文档](https://dev.mysql.com/doc/refman/8.4/en/sql-mode.html#sqlmode_only_full_group_by) - -此时,此列输出的值为聚合键对应多行中的任意一行计算的值。举例如下: - -```SQL --- 非标 GROUP BY -SELECT c1, c2 FROM t GROUP BY c1 --- 等价于 -SELECT c1, any_value(c2) FROM t GROUP BY c1 -``` - -在 3.1 版本中。Doris 在 SQL_MODE 中默认开启 "ONLY_FULL_GROUP_BY" ,即和之前的行为保持一致。如果需要使用非标 GROUP BY 功能。则可以通过如下设置开启: - -```SQL -set sql_mode = replace(@@sql_mode, 'ONLY_FULL_GROUP_BY', ''); -``` - -**多 distinct 聚合支持** - -在之前的版本中,如果聚合查询中,包含多个 distinct 聚合函数,且他们的参数不一致。同时聚合函数的 distinct 语义和非 distinct 语义不一致,且不是以下之一,则 Doris 无法执行查询: - -- 单参数的 COUNT -- SUM -- AVG -- GROUP_CONCAT - -在 3.1 版本中,Doris 对此方面进行了加强。现在这些查询可以正常执行并获取结果。例如: - -```SQL -SELECT count(DISTINCT c1,c2), count(DISTINCT c2,c3), count(DISTINCT c3) FROM t; -``` - -### 连接协议增强 - -- 开启 Proxy Protocol 协议后,依然可以通过非该协议的客户端连接。该改进在负载均衡 IP 透传场景下,方便用户更灵活的连接 Doris。 -- 查询 VIEW 时,JDBC 的元数据接口 ResultSetMetaData#getColumnName 可以正确的返回 VIEW 中的列名 - -## 七、行为变更 - -### VARIANT - -- `variant_max_subcolumns_count` 约束 - - 同一张表中,所有 Variant 列的 `variant_max_subcolumns_count` 必须“要么全为 0,要么全为 > 0”。混用会在建表 / Schema Change 时报错。 -- 新的 Variant 读写/serde 与 Compaction 路径对旧数据兼容。老版本 Variant 升级上来查询格式会产生差异(比如多一些空格、或是`。`分隔符导致层级构建,产生额外的层级) -- 创建 Variant 倒排索引,如果数据中所有字段不符合索引条件也会生成空索引文件,属预期行为 - -### 权限 - -- show transcation 的权限需求从拥有 ADMIN_PRIV 权限,变更为拥有导入对应数据库的 LOAD_PRIV 权限 -- 统一了 SHOW FRONTENDS / BACKENDS 和 NODE Restful API 的权限。现在这些接口的权限需求为拥有 information_schema 库的 SELECT_PRIV 权限。 - -## 立刻开启 3.1 - -在 3.1 版本正式发布之前,半结构化和数据湖的多个能力已经经过真实线上场景的验证,并获得了符合预期的性能提升。推荐有相应能力需求的用户下载尝鲜。 - -## 致谢 - -在此,再次向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢: - -@924060929 @airborne12 @amorynan @BePPPower @BiteTheDDDDt @bobhan1 @CalvinKirs @cambyzju @cjj2010 @csun5285 @DarvenDuan @dataroaring @deardeng @dtkavin @dwdwqfwe @eldenmoon @englefly @feifeifeimoon @feiniaofeiafei @felixwluo @freemandealer @Gabriel39 @gavinchou @ghkang98 @gnehil @gohalo @HappenLee @heguanhui @hello-stephen @HonestManXin @htyoung @hubgeter @hust-hhb @jacktengg @jeffreys-cat @Jibing-Li @JNSimba @kaijchen @kaka11chen @KeeProMise @koarz @liaoxin01 @liujiwen-up @liutang123 @luwei16 @MoanasDaddyXu @morningman @morrySnow @mrhhsg @Mryange @mymeiyi @nsivarajan @qidaye @qzsee @Ryan19929 @seawinde @shuke987 @sollhui @starocean999 @suxiaogang223 @SWJTU-ZhangLei @TangSiyang2001 @Vallishp @vinlee19 @w41ter @wangbo @wenzhenghu @wumeibanfa @wuwenchi @wyxxxcat @xiedeyantu @xinyiZzz @XLPE @XnY-wei @XueYuhai @xy720 @yagagagaga @Yao-MR @yiguolei @yoock @yujun777 @Yukang-Lian @Yulei-Yang @yx-keith @Z-SWEI @zclllyybb @zddr @zfr9527 @zgxme @zhangm365 @zhangstar333 @zhaorongsheng @zhiqiang-hhhh @zy-kkk @zzzxl1993 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.1/release-3.1.1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.1/release-3.1.1.md deleted file mode 100644 index 4927b1c1d2cd9..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.1/release-3.1.1.md +++ /dev/null @@ -1,242 +0,0 @@ ---- -{ - "title": "Release 3.1.1", - "language": "zh-CN", - "description": "Apache Doris 3.1.1 是一个维护版本,重点在于关键性错误修复、性能优化和稳定性提升。此版本包含大量针对数据合并(compaction)、数据导入、查询处理和云功能的修复,使其在生产环境中更加稳健可靠。" -} ---- - -## 概述 - -Apache Doris 3.1.1 是一个维护版本,重点在于关键性错误修复、性能优化和稳定性提升。此版本包含大量针对数据合并(compaction)、数据导入、查询处理和云功能的修复,使其在生产环境中更加稳健可靠。 - -## 新特性 - -### 核心功能 - -- **`[feature](function)`** 支持 `count_substrings` 函数([#42055](https://github.com/apache/doris/pull/42055), [#55847](https://github.com/apache/doris/pull/55847)) - - -### 数据集成与存储 - -- **`[feat](hdfs)`** 新增 HDFS 高可用(HA)配置验证([#55675](https://github.com/apache/doris/pull/55675), [#55764](https://github.com/apache/doris/pull/55764)) -- **`[feat](checker)`** 为校验器增加 Tablet 统计键一致性检查([#54754](https://github.com/apache/doris/pull/54754), [#55663](https://github.com/apache/doris/pull/55663)) -- **`[feat](outfile)`** 在 `outfile` 和导出中支持 CSV 格式的压缩类型([#55392](https://github.com/apache/doris/pull/55392), [#55561](https://github.com/apache/doris/pull/55561)) -- **`[feat](cloud)`** 支持云环境下 Group Commit Stream Load 的 BE 转发模式([#55326](https://github.com/apache/doris/pull/55326), [#55527](https://github.com/apache/doris/pull/55527)) - - -### 性能与优化 - -- **`[support](orc)`** 支持 ORC 文件元数据缓存([#54591](https://github.com/apache/doris/pull/54591), [#55584](https://github.com/apache/doris/pull/55584)) -- **`[Exec](vec)`** 支持使用 SIMD 计算 KNN 距离([#55275](https://github.com/apache/doris/pull/55275)) - - -## 改进 - -### 性能优化 - -- **`[opt](cloud)`** 减少元数据服务中空 Rowset 带来的压力([#54395](https://github.com/apache/doris/pull/54395), [#55171](https://github.com/apache/doris/pull/55171), [#55604](https://github.com/apache/doris/pull/55604), [#55742](https://github.com/apache/doris/pull/55742), [#55837](https://github.com/apache/doris/pull/55837), [#55934](https://github.com/apache/doris/pull/55934)) -- **`[Opt](mow)`** 优化 MOW 导入性能和 CPU 使用率([#55073](https://github.com/apache/doris/pull/55073), [#55733](https://github.com/apache/doris/pull/55733), [#55771](https://github.com/apache/doris/pull/55771), [#55767](https://github.com/apache/doris/pull/55767)) -- **`[opt](hive)`** 将 `hive.recursive_directories` 默认值设为 true([#55737](https://github.com/apache/doris/pull/55737), [#55905](https://github.com/apache/doris/pull/55905)) -- **`[opt](recycler)`** 避免频繁发起 `Aws::Internal::GetEC2MetadataClient` HTTP 请求([#55546](https://github.com/apache/doris/pull/55546), [#55682](https://github.com/apache/doris/pull/55682)) -- **`[opt](mow)`** 不再捕获调用栈以降低 CPU 开销([#55368](https://github.com/apache/doris/pull/55368), [#55526](https://github.com/apache/doris/pull/55526)) -- **`[opt](txn lazy commit)`** 使临时 Rowset 批量转换逻辑更具自适应性([#55035](https://github.com/apache/doris/pull/55035), [#55573](https://github.com/apache/doris/pull/55573)) -- **`[opt](nereids)`** 优化将大字符串转换为复杂类型时的性能([#55476](https://github.com/apache/doris/pull/55476), [#55521](https://github.com/apache/doris/pull/55521)) -- **`[opt](nereids)`** 支持简化字符串范围([#55378](https://github.com/apache/doris/pull/55378), [#55456](https://github.com/apache/doris/pull/55456)) -- **`[opt](nereids)`** 优化窗口函数的规范化逻辑([#54947](https://github.com/apache/doris/pull/54947), [#55046](https://github.com/apache/doris/pull/55046)) -- **`[opt](nereids)`** 当 OLAP 表具有自动分区时,优化 INSERT 命令的并行度([#54983](https://github.com/apache/doris/pull/54983), [#55030](https://github.com/apache/doris/pull/55030)) - - -### 系统增强 - -- **`[enhancement](Log)`** 将部分日志级别从 info 调整为 debug([#55808](https://github.com/apache/doris/pull/55808), [#55841](https://github.com/apache/doris/pull/55841)) -- **`[enhancement](filecache)`** 支持多个缓存实例之间并行清理缓存([#55259](https://github.com/apache/doris/pull/55259), [#55437](https://github.com/apache/doris/pull/55437)) -- **`[enhancement](sc)`** 禁止对隐藏列执行 Schema Change([#53376](https://github.com/apache/doris/pull/53376), [#55385](https://github.com/apache/doris/pull/55385)) -- **`[enhancement](backup)`** 在备份过程中正确处理已被删除的表和分区([#52935](https://github.com/apache/doris/pull/52935), [#54989](https://github.com/apache/doris/pull/54989)) -- **`[enhancement](cloud)`** 修复从 Doris 2.1 版本恢复到 3.1 版本时的云恢复问题([#55110](https://github.com/apache/doris/pull/55110)) -- **`[enhancement](type)`** 支持 time 与 datetime 类型之间的相互转换([#53734](https://github.com/apache/doris/pull/53734), [#54985](https://github.com/apache/doris/pull/54985)) - - -### 基础设施改进 - -- **`[refactor](credential)`** 使用统一架构重构临时凭证系统([#55912](https://github.com/apache/doris/pull/55912)) -- **`[refactor](cloud)`** 将云恢复中创建 Tablet 的 RPC 拆分为多个批次([#55691](https://github.com/apache/doris/pull/55691)) -- **`[opt](editlog)`** 在 FE 异常时增加跳过某些 editlog 异常的能力([#54090](https://github.com/apache/doris/pull/54090), [#55204](https://github.com/apache/doris/pull/55204)) - - -## 关键性错误修复 - -### 合并与存储 - -- **`[fix](sc)`** 对于版本号 ≤ alter_version 的空 Rowset,跳过版本空洞填充([#56209](https://github.com/apache/doris/pull/56209), [#56212](https://github.com/apache/doris/pull/56212)) -- **`[fix](compaction)`** 修复合并后输入 Rowset 被过早驱逐,导致查询失败的问题([#55382](https://github.com/apache/doris/pull/55382), [#55966](https://github.com/apache/doris/pull/55966)) -- **`[fix](compaction)`** 使创建 Tablet 操作具有幂等性,从而保证合并任务的幂等性([#56061](https://github.com/apache/doris/pull/56061), [#56108](https://github.com/apache/doris/pull/56108)) -- **`[fix](compaction)`** 在段合并(segcompaction)中使用 Rowset 元数据文件系统,并增加 RPC 客户端就绪检查([#55951](https://github.com/apache/doris/pull/55951), [#55988](https://github.com/apache/doris/pull/55988)) -- **`[fix](compaction)`** 在合并过程中跳过合并分数为 0 的 Tablet([#55550](https://github.com/apache/doris/pull/55550), [#55570](https://github.com/apache/doris/pull/55570)) - - -### 查询处理与函数 - -- **`[fix](fold constant)`** `abs` 函数的返回类型应与参数类型一致([#56190](https://github.com/apache/doris/pull/56190), [#56210](https://github.com/apache/doris/pull/56210)) -- **`[fix](fold constant)`** 当 float/double 值为 NaN 时,不在 BE 端进行常量折叠([#55425](https://github.com/apache/doris/pull/55425), [#55874](https://github.com/apache/doris/pull/55874)) -- **`[Fix](function)`** 修复 `unix_timestamp` 函数返回的小数位数错误([#55013](https://github.com/apache/doris/pull/55013), [#55962](https://github.com/apache/doris/pull/55962)) -- **`[fix](nereids)`** 修复因精度丢失或空值转换导致的比较谓词简化错误([#55884](https://github.com/apache/doris/pull/55884), [#56110](https://github.com/apache/doris/pull/56110)) -- **`[fix](nereids)`** 修复在 Join 重排时抛出“eq 函数不存在”异常的执行错误([#54953](https://github.com/apache/doris/pull/54953), [#55667](https://github.com/apache/doris/pull/55667)) -- **`[fix](nereids)`** 修复窗口表达式别名复用时的表达式 ID 错误([#55286](https://github.com/apache/doris/pull/55286), [#55486](https://github.com/apache/doris/pull/55486)) -- **`[fix](nereids)`** 在与 `count()` 聚合函数比较时,使用 bigint 字面量而非 int([#55545](https://github.com/apache/doris/pull/55545), [#55590](https://github.com/apache/doris/pull/55590)) -- **`[fix](nereids)`** 在生成巨大表达式时停止合并投影([#55293](https://github.com/apache/doris/pull/55293), [#55519](https://github.com/apache/doris/pull/55519)) - - -### 数据加载与导入 - -- **`[fix](load)`** 修复 S3 导入连接检查失败的问题([#56123](https://github.com/apache/doris/pull/56123)) -- **`[fix](load)`** 修复已完成导入任务进度显示不正确的问题([#55509](https://github.com/apache/doris/pull/55509), [#55530](https://github.com/apache/doris/pull/55530)) -- **`[fix](load)`** 修复特定导入错误场景导致 BE 崩溃(core dump)的问题([#55500](https://github.com/apache/doris/pull/55500)) -- **`[fix](load)`** 修复 Routine Load 任务因 MEM_LIMIT_EXCEED 失败后无法再次调度的问题([#55481](https://github.com/apache/doris/pull/55481), [#55616](https://github.com/apache/doris/pull/55616)) - - -### 云与分布式功能 - -- **`[fix](cloud)`** 在 `replayUpdateCloudReplica` 中移除无用的表锁([#55579](https://github.com/apache/doris/pull/55579), [#55955](https://github.com/apache/doris/pull/55955)) -- **`[fix](cloud)`** `calc_sync_versions` 应考虑全量合并(full compaction)([#55630](https://github.com/apache/doris/pull/55630), [#55710](https://github.com/apache/doris/pull/55710)) -- **`[fix](warmup)`** 修复 `CloudTablet::complete_rowset_segment_warmup` 导致的崩溃问题([#55932](https://github.com/apache/doris/pull/55932)) - - -### 数据库操作 - -- **`[fix](database)`** 修复重命名数据库与创建表之间的竞态条件([#55054](https://github.com/apache/doris/pull/55054), [#55991](https://github.com/apache/doris/pull/55991)) -- **`[fix](create table)`** 并发重命名数据库会导致建表及重放失败([#54614](https://github.com/apache/doris/pull/54614), [#56039](https://github.com/apache/doris/pull/56039)) -- **`[fix](table)`** 将删除 editlog 操作移至表锁内执行([#55705](https://github.com/apache/doris/pull/55705), [#55947](https://github.com/apache/doris/pull/55947)) -- **`[fix](schema change)`** 启用轻量级 Schema Change 后,Tablet 列未被重建([#55909](https://github.com/apache/doris/pull/55909), [#55939](https://github.com/apache/doris/pull/55939)) - - -### 数据类型与序列化 - -- **`[fix](variant)`** 修复将空值序列化为 JSON 字符串时的处理逻辑([#55876](https://github.com/apache/doris/pull/55876), [#56138](https://github.com/apache/doris/pull/56138)) -- **`[fix](variant)`** 修复稀疏列为空时的兼容性错误([#55817](https://github.com/apache/doris/pull/55817)) -- **`[fix](variant)`** 增强 Variant 类型的 `max_sparse_column_statistics_size` 配置([#55124](https://github.com/apache/doris/pull/55124), [#55752](https://github.com/apache/doris/pull/55752)) - - -### 外部数据源 - -- **`[fix](paimon)`** 修复 Paimon 原生读取器未使用延迟物化(late materialization)的问题([#55894](https://github.com/apache/doris/pull/55894), [#55917](https://github.com/apache/doris/pull/55917)) -- **`[fix](paimon)`** 通过在缓存键中加入 `dlf.catalog.id` 修复 Paimon DLF Catalog 缓存问题([#55875](https://github.com/apache/doris/pull/55875), [#55888](https://github.com/apache/doris/pull/55888)) -- **`[fix](paimon)`** 修复 Paimon 到 Doris 类型映射中 CHAR/VARCHAR 字段过大的处理问题([#55051](https://github.com/apache/doris/pull/55051), [#55531](https://github.com/apache/doris/pull/55531)) -- **`[fix](maxcompute)`** 修复在下推 MaxCompute 谓词时因表列不存在而抛出 NereidsException 的问题([#55635](https://github.com/apache/doris/pull/55635), [#55746](https://github.com/apache/doris/pull/55746)) -- **`[fix](maxcompute)`** 修复国际用户无法访问 MaxCompute Catalog 的问题([#55256](https://github.com/apache/doris/pull/55256), [#55560](https://github.com/apache/doris/pull/55560)) -- **`[fix](hudi)`** 修复查询仅需分区列(无数据字段)的 Hudi JNI 表时的问题([#55466](https://github.com/apache/doris/pull/55466), [#55662](https://github.com/apache/doris/pull/55662)) -- **`[fix](hive)`** 修复查询 `NULL DEFINED AS ''` 的 Hive Text 表时的问题([#55626](https://github.com/apache/doris/pull/55626), [#55661](https://github.com/apache/doris/pull/55661)) -- **`[fix](iceberg)`** 为元数据扫描器补充缺失的 `iceberg-aws` 依赖([#55741](https://github.com/apache/doris/pull/55741), [#55743](https://github.com/apache/doris/pull/55743)) -- **`[fix](iceberg rest)`** 使用 Iceberg 默认值刷新 OAuth2 Token([#55578](https://github.com/apache/doris/pull/55578), [#55624](https://github.com/apache/doris/pull/55624)) - - -### 内存与资源管理 - -- **`[fix](memtracker)`** 内存未被 MemTracker 正确追踪的问题([#55796](https://github.com/apache/doris/pull/55796), [#55823](https://github.com/apache/doris/pull/55823)) -- **`[fix](mow)`** 修复 `BaseTablet::get_rowset_by_ids()` 中 MOW 导致的崩溃([#55539](https://github.com/apache/doris/pull/55539), [#55601](https://github.com/apache/doris/pull/55601)) -- **`[fix](mow)`** 修复 MOW 聚合缓存版本检查问题([#55330](https://github.com/apache/doris/pull/55330), [#55475](https://github.com/apache/doris/pull/55475)) -- **`[fix](move-memtable)`** 修复因错误跳过段而引起的段数量不匹配问题([#55092](https://github.com/apache/doris/pull/55092), [#55471](https://github.com/apache/doris/pull/55471)) -- **`[fix](filecache)`** 云模式下段缓存不再限制文件描述符数量([#55610](https://github.com/apache/doris/pull/55610), [#55638](https://github.com/apache/doris/pull/55638)) - - -### 安全与加密 - -- **`[fix](tde)`** 修正加密密钥版本的显示([#56092](https://github.com/apache/doris/pull/56092), [#56068](https://github.com/apache/doris/pull/56068)) -- **`[fix](tde)`** 修复与透明数据加密(TDE)相关的问题([#55692](https://github.com/apache/doris/pull/55692)) - - -### 其他修复 - -- **`[fix](mtmv)`** 修复当分区表没有分区时 MTMV 无法刷新的问题([#55468](https://github.com/apache/doris/pull/55468), [#56085](https://github.com/apache/doris/pull/56085)) -- **`[fix](plugin)`** 修复插件目录的兼容性问题([#56060](https://github.com/apache/doris/pull/56060)) -- **`[fix](http stream)`** HTTP 流式接口在 SQL 解析失败时应抛出异常([#55863](https://github.com/apache/doris/pull/55863), [#55891](https://github.com/apache/doris/pull/55891)) -- **`[fix](backup)`** 支持备份元数据/作业信息超过 2GB([#55608](https://github.com/apache/doris/pull/55608), [#55867](https://github.com/apache/doris/pull/55867)) -- **`[fix](mysql protocol)`** 转发到 Master 时正确设置更多语句存在标志([#55711](https://github.com/apache/doris/pull/55711), [#55871](https://github.com/apache/doris/pull/55871)) -- **`[fix](connection)`** 修复因超时断开连接时未清理会话相关数据的问题([#55008](https://github.com/apache/doris/pull/55008), [#55809](https://github.com/apache/doris/pull/55809), [#55396](https://github.com/apache/doris/pull/55396)) -- **`[fix](wal)`** 执行失败时重放 WAL 中止事务失败的问题([#55881](https://github.com/apache/doris/pull/55881), [#55924](https://github.com/apache/doris/pull/55924)) -- **`[fix](restore)`** 清理已恢复的表/分区/资源以降低开销([#55757](https://github.com/apache/doris/pull/55757), [#55784](https://github.com/apache/doris/pull/55784)) -- **`[fix](index)`** 移除未使用的更新索引([#55514](https://github.com/apache/doris/pull/55514), [#55704](https://github.com/apache/doris/pull/55704)) -- **`[fix](txn lazy commit)`** 修复事务延迟提交与 Schema Change 冲突的问题([#55349](https://github.com/apache/doris/pull/55349), [#55701](https://github.com/apache/doris/pull/55701)) -- **`[fix](qe)`** 修复 SSL 模式下的查询错误([#53134](https://github.com/apache/doris/pull/53134), [#55628](https://github.com/apache/doris/pull/55628)) -- **`[fix](catalog)`** 使用位与操作替代 `Math.abs` 以确保生成非负 ID([#55183](https://github.com/apache/doris/pull/55183), [#55689](https://github.com/apache/doris/pull/55689)) -- **`[fix](function)`** 修复 `array_agg_foreach` 函数结果错误的问题([#55075](https://github.com/apache/doris/pull/55075), [#55420](https://github.com/apache/doris/pull/55420)) - - -## 基础设施与开发 - -### 构建与依赖 - -- **`[chore](build)`** 优化构建脚本([#56027](https://github.com/apache/doris/pull/56027), [#56028](https://github.com/apache/doris/pull/56028)) -- **`[chore](thirdparty)`** 将 aws-sdk-cpp 从 1.11.119 升级至 1.11.219([#54780](https://github.com/apache/doris/pull/54780), [#54971](https://github.com/apache/doris/pull/54971)) -- **`[chore](build)`** 更新带 OpenSSL 的 libevent 依赖([#54652](https://github.com/apache/doris/pull/54652), [#54857](https://github.com/apache/doris/pull/54857)) -- **`[chore](config)`** 添加 `brpc::usercode_in_pthread` 配置以支持 ASAN([#54656](https://github.com/apache/doris/pull/54656), [#54829](https://github.com/apache/doris/pull/54829)) - - -### 测试与质量 - -- **`[chore](case)`** 修复若干失败的测试用例([#56140](https://github.com/apache/doris/pull/56140), [#56167](https://github.com/apache/doris/pull/56167)) -- **`[fix](case)`** 修复若干失败的测试用例([#56019](https://github.com/apache/doris/pull/56019), [#56035](https://github.com/apache/doris/pull/56035)) -- **`[fix](test)`** 修改回归测试以提高稳定性并调整预期日志级别([#55169](https://github.com/apache/doris/pull/55169), [#55898](https://github.com/apache/doris/pull/55898)) -- **`[fix](case)`** 修复若干失败的测试用例([#55739](https://github.com/apache/doris/pull/55739), [#55769](https://github.com/apache/doris/pull/55769)) -- **`[fix](case)`** 修复回归测试用例:cse.groovy([#53434](https://github.com/apache/doris/pull/53434), [#55897](https://github.com/apache/doris/pull/55897)) -- **`[fix](cases)`** 修复 `test_hudi_snapshot` 测试失败问题([#55761](https://github.com/apache/doris/pull/55761), [#55791](https://github.com/apache/doris/pull/55791)) -- **`[fix](case)`** 修复若干失败的测试用例([#55811](https://github.com/apache/doris/pull/55811), [#55835](https://github.com/apache/doris/pull/55835)) -- **`[fix](case)`** 等待 MV 任务时应只关注最新任务([#55802](https://github.com/apache/doris/pull/55802), [#55830](https://github.com/apache/doris/pull/55830)) -- **`[fix](case)`** 修复 Variant 构建索引的测试用例([#55613](https://github.com/apache/doris/pull/55613), [#55648](https://github.com/apache/doris/pull/55648)) -- **`[Fix](case)`** 修复 show data p2 测试用例([#55449](https://github.com/apache/doris/pull/55449), [#55494](https://github.com/apache/doris/pull/55494)) -- **`[fix](test)`** 修复异步物化视图的 `show create table` 显示失败问题([#55278](https://github.com/apache/doris/pull/55278), [#55480](https://github.com/apache/doris/pull/55480)) -- **`[fix](test)`** 在云模式下跳过部分测试([#55448](https://github.com/apache/doris/pull/55448), [#55535](https://github.com/apache/doris/pull/55535)) -- **`[Fix](case)`** 修复若干测试用例([#55606](https://github.com/apache/doris/pull/55606), [#55656](https://github.com/apache/doris/pull/55656)) -- **`[test](export)`** 为包含表达式的导出用例增加并行度测试([#55636](https://github.com/apache/doris/pull/55636), [#55659](https://github.com/apache/doris/pull/55659)) -- **`[test](iceberg)`** 新增 Polaris 测试([#55484](https://github.com/apache/doris/pull/55484), [#55557](https://github.com/apache/doris/pull/55557)) -- **`[test](nereids)`** 为 SQL 缓存/有序分区缓存增加单元测试([#55520](https://github.com/apache/doris/pull/55520), [#55536](https://github.com/apache/doris/pull/55536)) -- **`[test](docker)`** 适配 HMS 和 GCS 上的 Paimon([#55473](https://github.com/apache/doris/pull/55473), [#55512](https://github.com/apache/doris/pull/55512)) -- **`[test](warmup)`** 修复不稳定的周期性预热测试用例([#55365](https://github.com/apache/doris/pull/55365), [#55453](https://github.com/apache/doris/pull/55453)) - - -### 安全与配置 - -- **`[chore](sk)`** 对日志中的 `secret key` 进行加密,并隐藏 `access key`([#55241](https://github.com/apache/doris/pull/55241), [#55619](https://github.com/apache/doris/pull/55619)) -- **`[chore](security)`** `user_files_secure_path` 配置项运行时不可更改([#55395](https://github.com/apache/doris/pull/55395), [#55504](https://github.com/apache/doris/pull/55504)) -- **`[chore](tablet)`** `ignore_load_tablet_failure` 默认值设为 true([#55109](https://github.com/apache/doris/pull/55109), [#55441](https://github.com/apache/doris/pull/55441)) - - -### 云基础设施 - -- **`[chore](cloud)`** 更新构建和启动脚本([#56031](https://github.com/apache/doris/pull/56031), [#56064](https://github.com/apache/doris/pull/56064)) -- **`[chore](cloud)`** 支持在事务提交时上报冲突范围([#55340](https://github.com/apache/doris/pull/55340), [#55714](https://github.com/apache/doris/pull/55714)) -- **`[chore](recycler)`** 改进回收器(recycler)指标([#55455](https://github.com/apache/doris/pull/55455), [#55479](https://github.com/apache/doris/pull/55479)) -- **`[chore](logs)`** 打印导出任务拆分 Tablet ID 的日志([#55170](https://github.com/apache/doris/pull/55170), [#55646](https://github.com/apache/doris/pull/55646)) - - -### 第三方与补丁 - -- **`[thirdparty](patch)`** BRPC 强制所有连接使用 SSL([#55658](https://github.com/apache/doris/pull/55658), [#55696](https://github.com/apache/doris/pull/55696)) -- **`[thirdparty](patch)`** 修复启用 SSL 时 BRPC 崩溃的问题([#55649](https://github.com/apache/doris/pull/55649), [#55695](https://github.com/apache/doris/pull/55695)) -- **`[fix](docker)`** 将 Kafka Docker 镜像更新为内部源([#55460](https://github.com/apache/doris/pull/55460), [#55487](https://github.com/apache/doris/pull/55487)) - - -### CI 与性能 - -- **`[ci](perf)`** 更新目标分支的 Docker 镜像引用([#55511](https://github.com/apache/doris/pull/55511)) - - -## 行为变更 - -### 配置变更 - -- **`[opt](hive)`** `hive.recursive_directories` 默认值变更为 `true` -- **`[chore](tablet)`** `ignore_load_tablet_failure` 默认值变更为 `true` -- **`[chore](security)`** `user_files_secure_path` 配置项运行时不可再修改 - - -### 安全增强 - -- **`[chore](sk)`** 为提升安全性,日志中 secret key 现已加密,access key 已隐藏 - - -## 兼容性说明 - -- 本版本与 Apache Doris 3.1.0 保持向后兼容 -- 云恢复功能现已支持从 Doris 2.1 版本迁移至 3.1 版本 -- 增强了 time 与 datetime 类型之间的类型转换支持 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.1/release-3.1.2.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.1/release-3.1.2.md deleted file mode 100644 index 1a049f9332511..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.1/release-3.1.2.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -{ - "title": "Release 3.1.2", - "language": "zh-CN", - "description": "Apache Doris 3.1.2 版本发布说明,重点介绍存储压缩、云与对象存储、数据湖、Java UDF 等新功能,以及查询执行、存储层优化和多项数据湖、查询引擎与导入相关缺陷修复。" -} ---- - - -## 新功能 - - ### 存储与压缩 - - - **可配置的表压缩类型** —— 支持为每张表单独指定压缩算法。[#56276](https://github.com/apache/doris/pull/56276) - - **自适应压缩写缓存** —— 在基础压缩(base compaction)行集(rowset)刷写过程中动态调整写缓存策略。[#56278](https://github.com/apache/doris/pull/56278) - - ### 云与对象存储 - - - **云模式查询新鲜度控制** —— 新增用户自定义的数据延迟与一致性之间的容忍度配置。[#56390](https://github.com/apache/doris/pull/56390) - - **放宽对象存储端点验证** —— 支持私有或自定义存储端点。[#56641](https://github.com/apache/doris/pull/56641) - - ### 数据湖(Datalake) - - - **支持通过数据湖** **VPC** **端点(**`dlf/datalake-vpc`)访问 OSS**。[#56476](https://github.com/apache/doris/pull/56476) - - **AWS Glue Catalog** 现支持通过 IAM AssumeRole 访问 S3。[#57036](https://github.com/apache/doris/pull/57036) - - **S3 客户端** 已更新为使用 `CustomAwsCredentialsProviderChain`,以改进凭证管理。[#56943](https://github.com/apache/doris/pull/56943) - - ### 功能增强 - - - **Java** **UDF** 现支持 IP 类型。[#56346](https://github.com/apache/doris/pull/56346) - - **BE REST** **API** 新增 `RunningTasks` 输出项,用于任务监控。[#56781](https://github.com/apache/doris/pull/56781) - - **事务监控** 新增 BRPC 写放大(write-amplification)指标。[#56832](https://github.com/apache/doris/pull/56832) - - ## 优化 - - ### 查询执行与优化器 - - - **`COUNT(\*)`** 优化** —— 自动选择最小的列以减少扫描负载。[#56483](https://github.com/apache/doris/pull/56483) - - **压缩过程** 跳过空行集,以提升吞吐量。[#56768](https://github.com/apache/doris/pull/56768) - - **预热(Warmup)统计信息** 新增“跳过的行集”指标,提升可观测性。[#56373](https://github.com/apache/doris/pull/56373) - - ### 存储层 - - - **为稀疏列新增 Variant 列缓存**,以加速读取。[#56730](https://github.com/apache/doris/pull/56730) - - **段(Segment)页脚** 现已缓存在索引页缓存(Index Page Cache)中,以降低延迟。[#56459](https://github.com/apache/doris/pull/56459) - - **回收器(Recycler)** 支持并行清理任务,提高吞吐量。[#56573](https://github.com/apache/doris/pull/56573) - - ### 数据湖 - - - **改进 Paimon 时间旅行(Time Travel)功能**,并修复了模式(schema)不匹配问题。[#56338](https://github.com/apache/doris/pull/56338) - - **优化 Iceberg 扫描错误信息**,并支持嵌套命名空间。[#56370](https://github.com/apache/doris/pull/56370), [#57035](https://github.com/apache/doris/pull/57035) - - **移除旧版 DLF Catalog 属性**。[#56196](https://github.com/apache/doris/pull/56196), [#56505](https://github.com/apache/doris/pull/56505) - - **JSON** **导入** 默认采用逐行解析模式(row-by-row parsing mode)处理基于行的数据。[#56736](https://github.com/apache/doris/pull/56736) - - ## 缺陷修复 - - ### 数据湖 - - - 修复 **Iceberg 系统表类加载器(classloader)错误**。[#56220](https://github.com/apache/doris/pull/56220) - - 修复 **Iceberg 分区表在无分区值时失败的问题**。[#57043](https://github.com/apache/doris/pull/57043) - - 修复 **S3A Catalog 未正确使用 IAM AssumeRole 配置文件的问题**。[#56250](https://github.com/apache/doris/pull/56250) - - 为多配置对象存储 Catalog **禁用 Hadoop FileSystem 缓存**。[#57153](https://github.com/apache/doris/pull/57153) - - ### 查询执行与 SQL 引擎 - - - 修复 `COUNT` 下推逻辑错误。[#56482](https://github.com/apache/doris/pull/56482) - - 修复 `UNION` 本地 shuffle 行为异常。[#56556](https://github.com/apache/doris/pull/56556) - - 修复 OLAP 存储类型中 `IN` 谓词导致的崩溃问题。[#56834](https://github.com/apache/doris/pull/56834) - - 修复 `datetimev1` 类型下 `timestampdiff` 计算错误。[#56893](https://github.com/apache/doris/pull/56893) - - 修复 `explode()` 函数导致的崩溃问题。[#57002](https://github.com/apache/doris/pull/57002) - - ### 存储与导入 - - - 修复源文件不存在时 S3 导入检查失败的问题。[#56376](https://github.com/apache/doris/pull/56376) - - 修复 FileCache 清理时崩溃的问题。[#56584](https://github.com/apache/doris/pull/56584) - - 修复 MOW 压缩模式下删除位图(delete bitmap)未被清除的问题。[#56785](https://github.com/apache/doris/pull/56785) - - 修复小文件使用 Outfile 的 bz2 压缩时失败的问题。[#57041](https://github.com/apache/doris/pull/57041) - - ### 云与回收机制 - - - 修复预热(Warmup)跳过多段(multi-segment)行集的问题。[#56680](https://github.com/apache/doris/pull/56680) - - 修复 CloudTablet 预热过程中因引用捕获导致的 core dump 问题。[#56627](https://github.com/apache/doris/pull/56627) - - 修复回收器(Recycler)清理任务中的空指针崩溃问题。[#56773](https://github.com/apache/doris/pull/56773) - - 修复云模式下未捕获的分区边界错误。[#56968](https://github.com/apache/doris/pull/56968) - - ### 系统及其他 - - - 修复 FE 中 Prometheus 指标格式错误的问题。[#57082](https://github.com/apache/doris/pull/57082) - - 修复 FE 重启后自增列值不正确的问题。[#57118](https://github.com/apache/doris/pull/57118) - - 修复 `SHOW CREATE VIEW` 语句缺失列定义的问题。[#57045](https://github.com/apache/doris/pull/57045) - - 修复 HDFS Reader 在采样 Profile 数据时崩溃的问题。[#56950](https://github.com/apache/doris/pull/56950) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.1/release-3.1.3.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.1/release-3.1.3.md deleted file mode 100644 index c93769af1cb93..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.1/release-3.1.3.md +++ /dev/null @@ -1,122 +0,0 @@ ---- -{ - "title": "Release 3.1.3", - "language": "zh-CN", - "description": "Apache Doris 3.1.3 带来了以下主要改进:" -} ---- - -## 新功能 - -### 存储与文件系统 - -- 升级 **libhdfs 至 3.4.2**([#57638](https://github.com/apache/doris/pull/57638)) -- 为 **S3 Reader** 增加 `TotalGetRequestTime` 性能指标([#57636](https://github.com/apache/doris/pull/57636)) - -### Catalog - -- 支持 **MaxCompute Catalog(project-schema-table 模式)**([#57286](https://github.com/apache/doris/pull/57286)) -- 支持 **Azure Blob Storage**([#57219](https://github.com/apache/doris/pull/57219)) -- 支持 **在转换方言后的 SQL 执行错误后,重试原始 SQL**([#57498](https://github.com/apache/doris/pull/57498)) - -### 云模式 - -- 支持 **balance sync 热身机制**([#57666](https://github.com/apache/doris/pull/57666)) -- 支持 **同一集群内 BE 间的 peer cache 读取**([#57672](https://github.com/apache/doris/pull/57672)) - -### SQL 引擎与优化器 - -- 在生成执行计划前检查 **SQL 正则屏蔽规则**([#57706](https://github.com/apache/doris/pull/57706)) -- **EXPLODE 函数** 支持 **struct 类型展开**([#57827](https://github.com/apache/doris/pull/57827)) - -## 优化 - -### 查询执行与优化器 - -- 优化 **variant 类型仅含 NULL 值时的 cast 性能**([#57161](https://github.com/apache/doris/pull/57161)) -- 优化 **FROM_UNIXTIME 函数性能**([#57573](https://github.com/apache/doris/pull/57573)) -- 改进 **优雅下线行为与查询重试逻辑**([#57805](https://github.com/apache/doris/pull/57805)) - -### 存储与 Compaction - -- **MergeIO 读取切片大小** 支持配置化([#57159](https://github.com/apache/doris/pull/57159)) -- 为冷数据 **Compaction 增加评分阈值**([#57217](https://github.com/apache/doris/pull/57217)) -- 为小内存任务保护机制增加 **可配置阈值**([#56994](https://github.com/apache/doris/pull/56994)) -- 优化 **jemalloc 配置**,减少缺页中断([#57152](https://github.com/apache/doris/pull/57152)) - -### 云模式 - -- 暴露 **云端 rebalance 指标**([#57352](https://github.com/apache/doris/pull/57352)) -- 优化 **warm-up 任务创建逻辑**([#57865](https://github.com/apache/doris/pull/57865)) -- 提升 **warm-up 与 peer read 效率**([#57554](https://github.com/apache/doris/pull/57554),[#57807](https://github.com/apache/doris/pull/57807)) - -### 索引与搜索 - -- 支持 **自定义分词器(char_filter、basic 和 ICU tokenizer)**([#57137](https://github.com/apache/doris/pull/57137)) -- 自定义分词器支持 **内置 analyzer 名称**([#57727](https://github.com/apache/doris/pull/57727)) - -## Bug 修复 - -### 存储与文件 I/O - -- 修复 **添加 key 列时 segcompaction 崩溃问题**([#57212](https://github.com/apache/doris/pull/57212)) -- 修复 **Parquet RLE_DICTIONARY 解码性能问题**([#57614](https://github.com/apache/doris/pull/57614)) -- 修复 **schema change 表达式缓存误用问题**([#57517](https://github.com/apache/doris/pull/57517)) -- 使用 **ForkJoinPool 重构 tablet report 实现**([#57927](https://github.com/apache/doris/pull/57927)) - -### 云模式 - -- 修复 **pipeline 任务数量计算错误**([#57261](https://github.com/apache/doris/pull/57261)) -- 修复 **rebalance 残留指标未清理问题**([#57438](https://github.com/apache/doris/pull/57438)) -- 在 rebalance 未初始化时 **跳过 tablet report**([#57393](https://github.com/apache/doris/pull/57393)) -- 修复 **domain 用户默认集群上报错误**([#57555](https://github.com/apache/doris/pull/57555)) -- 修复 **私有 endpoint 配置错误**([#57675](https://github.com/apache/doris/pull/57675)) -- 修复 **peer read 错误与线程处理问题**([#57910](https://github.com/apache/doris/pull/57910),[#57807](https://github.com/apache/doris/pull/57807)) -- 修复 **filecache 指标与 microbench 问题**([#57535](https://github.com/apache/doris/pull/57535),[#57536](https://github.com/apache/doris/pull/57536)) - -### Catalog - -- 修复 **MaxCompute 谓词下推空指针错误**([#57567](https://github.com/apache/doris/pull/57567)) -- 修复 **Iceberg client.region 与 REST 认证问题**([#57539](https://github.com/apache/doris/pull/57539)) -- 修复 **Iceberg Catalog NPE 与查询异常**([#57796](https://github.com/apache/doris/pull/57796),[#57790](https://github.com/apache/doris/pull/57790)) -- 修复 **Paimon S3 前缀与配置不一致问题**([#57526](https://github.com/apache/doris/pull/57526)) -- 修复 **JDBC Catalog** **`zeroDateTimeBehavior`** **参数兼容性问题**([#57731](https://github.com/apache/doris/pull/57731)) -- 修复 **Parquet Schema 分析错误**([#57500](https://github.com/apache/doris/pull/57500)) -- 修复 **Parquet 所有 row group 被过滤问题**([#57646](https://github.com/apache/doris/pull/57646)) -- 修复 **CSV 读取 escape=enclose 时的结果错误**([#57762](https://github.com/apache/doris/pull/57762)) -- 防止 **Catalog 被误删出刷新队列**([#57671](https://github.com/apache/doris/pull/57671)) -- 修复 **max_meta_object_cache_num 必须大于 0 的配置问题**([#57793](https://github.com/apache/doris/pull/57793)) - -### SQL 引擎与优化器 - -- 修复 **FROM_UNIXTIME + decimal 常量折叠错误**([#57606](https://github.com/apache/doris/pull/57606)) -- 修复 **MV 重写在 group sets + filter 下失败问题**([#57674](https://github.com/apache/doris/pull/57674)) -- 修复 **prepare statement 仅 explain SQL 的问题**([#57504](https://github.com/apache/doris/pull/57504)) -- 在 **Profile.releaseMemory()** 中释放物理计划内存([#57316](https://github.com/apache/doris/pull/57316)) -- 修复 **group sets 下聚合消除错误**([#57885](https://github.com/apache/doris/pull/57885)) -- 修复 **LargeInt 溢出(max_value+1)问题**([#57351](https://github.com/apache/doris/pull/57351)) -- 修复 **decimal256 转 float 溢出问题**([#57503](https://github.com/apache/doris/pull/57503)) - -### 网络与平台 - -- 修复 **MySQL SSL unwrap 无限循环问题**([#57599](https://github.com/apache/doris/pull/57599)) -- 禁用 **MySQL TLS renegotiation**([#57748](https://github.com/apache/doris/pull/57748)) -- 修复 **uint128 构造未对齐问题**([#57430](https://github.com/apache/doris/pull/57430)) -- 修复 **JNI 本地/全局引用泄漏**([#57597](https://github.com/apache/doris/pull/57597)) -- **Scanner.close()** 增加线程安全保护([#57644](https://github.com/apache/doris/pull/57644)) -- 修复 **Exchange 节点空指针导致的崩溃问题**([#57698](https://github.com/apache/doris/pull/57698)) - -## 杂项 - -- 废弃 **LakeSoul 外部 Catalog 支持**([#57163](https://github.com/apache/doris/pull/57163)) - -## 总结 - -Apache Doris **3.1.3** 带来了以下主要改进: - -- **存储兼容性增强**(支持 Azure Blob、Hadoop 3.4.2、S3 性能指标) -- **云端性能与可靠性提升**(warm-up、rebalance、peer cache) -- **SQL 优化器稳定性增强** -- **依赖升级与安全性改进** - -本次版本显著提升了 Doris 在 **稳定性、性能与云原生融合能力** 方面的整体表现 \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.1/release-3.1.4.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.1/release-3.1.4.md deleted file mode 100644 index 3353ae9e39867..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v3.1/release-3.1.4.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -{ - "title": "Release 3.1.4", - "language": "zh-CN", - "description": "Apache Doris 3.1.4 版本正式发布。本次更新在查询优化、数据湖分析、存算分离和系统安全方面带来多项功能增强与性能提升。同时,修复了物化视图、数据导入和文件缓存等多个关键问题,提升了系统的整体稳定性。" -} ---- - -# 3.1.4 release note - -## 新功能(New Features) - -### 查询与优化器 - -- 支持 Dereference Expression(解引用表达式)[#58550](https://github.com/apache/doris/pull/58550) - -### 数据湖 - -- Catalog 支持通过 `AwsCredentialsProviderChain` 加载凭证 [#59054](https://github.com/apache/doris/pull/59054) -- 支持将 `credentials_provider_type` 传递给 BE 用于 S3 访问 [#59158](https://github.com/apache/doris/pull/59158) -- 支持 Elasticsearch flatten 类型 [#58793](https://github.com/apache/doris/pull/58793) - -### 查询审计与可观测性 - -- 支持在审计日志中对 SQL 进行加密存储 [#58508](https://github.com/apache/doris/pull/58508) -- QueryPlanAction 支持将表查询计划中的 SQL 写入审计日志 [#59121](https://github.com/apache/doris/pull/59121) -- 为 Nereids 解析的语句生成 SQL Digest [#59215](https://github.com/apache/doris/pull/59215) - -## 优化(Optimizations & Improvements) - -### 查询优化器 - -- 调整类型推导与强制转换(coercion)行为,提升表达式一致性 [#57961](https://github.com/apache/doris/pull/57961) -- 防止分析任务污染列统计信息缓存,提升统计准确性 [#58742](https://github.com/apache/doris/pull/58742) -- 优化多 distinct 聚合函数的拆分执行能力 [#58973](https://github.com/apache/doris/pull/58973) -- 优化 Join / Set / CTE / 谓词下推规则,避免不必要的执行计划复杂化 [#58664](https://github.com/apache/doris/pull/58664), [#59141](https://github.com/apache/doris/pull/59141), [#59151](https://github.com/apache/doris/pull/59151) - -### 数据湖 - -- 加速 Hive 分区裁剪与写入性能,显著降低大分区表写入延迟 [#58886](https://github.com/apache/doris/pull/58886), [#58932](https://github.com/apache/doris/pull/58932) -- Iceberg 支持忽略 dangling delete 以提升 count 下推能力 [#59069](https://github.com/apache/doris/pull/59069) -- Iceberg REST Catalog 增强连通性检测与网络超时控制 [#58433](https://github.com/apache/doris/pull/58433), [#58434](https://github.com/apache/doris/pull/58434) -- Paimon 增量查询行为与 Spark 对齐(单 snapshot 场景) [#58253](https://github.com/apache/doris/pull/58253) - -### 存算分离 - -- 支持动态修改 tablet rebalancer 配置,提升云环境运维灵活性 [#58376](https://github.com/apache/doris/pull/58376) -- 优化存算分离场景下 TopN 查询,避免不必要的远程广播读 [#58112](https://github.com/apache/doris/pull/58112), [#58155](https://github.com/apache/doris/pull/58155) -- 提升升级过程中的 tablet 性能一致性,降低热点节点风险 [#58247](https://github.com/apache/doris/pull/58247) -- Schema Change 过程自适应 File Cache,降低大表变更对缓存命中率的影响 [#58622](https://github.com/apache/doris/pull/58622) -- 在 Profile 中增加下载等待时间指标,提升 IO 排查能力 [#58870](https://github.com/apache/doris/pull/58870) -- File Cache 增强调试能力,支持 LRU Dump [#58871](https://github.com/apache/doris/pull/58871) - -### 安全与稳定性 - -- Glue Catalog 强制使用 HTTPS,提升外部 Catalog 安全性 [#58366](https://github.com/apache/doris/pull/58366) -- Create Stage 增加 SSRF 安全校验 [#58874](https://github.com/apache/doris/pull/58874) - -## Bug 修复 - -### 查询优化器 - -- 修复 TopN / Limit / Join 规则在特定场景下可能触发的死循环问题 [#58697](https://github.com/apache/doris/pull/58697) -- 修复聚合、窗口函数、Repeat、类型转换等逻辑错误 [#58080](https://github.com/apache/doris/pull/58080), [#58114](https://github.com/apache/doris/pull/58114), [#58330](https://github.com/apache/doris/pull/58330), [#58548](https://github.com/apache/doris/pull/58548) - -### 物化视图 - -- 禁止在 MOW 表上创建包含 value 列条件的非法物化视图 [#57937](https://github.com/apache/doris/pull/57937) - -### 导入 - -- 修复 JSON Reader 多次调用导致的未定义行为,避免潜在数据错误 [#58192](https://github.com/apache/doris/pull/58192) -- 修复 Broker Load 中 `COLUMNS FROM PATH` 相关行为异常 [#58351](https://github.com/apache/doris/pull/58351), [#58904](https://github.com/apache/doris/pull/58904) -- 修复 Group Commit 在节点下线或退役场景下的异常行为 [#59118](https://github.com/apache/doris/pull/59118) -- 修复 Load / Delete / Partial Update 在部分边界条件下失败的问题 [#58553](https://github.com/apache/doris/pull/58553), [#58230](https://github.com/apache/doris/pull/58230), [#59096](https://github.com/apache/doris/pull/59096) - -### 存算分离 - -- 修复存算分离场景下 Tablet Drop、Compaction、首次启动慢等稳定性问题 [#58157](https://github.com/apache/doris/pull/58157), [#58195](https://github.com/apache/doris/pull/58195), [#58761](https://github.com/apache/doris/pull/58761) -- 修复 File Cache 在异常或 BE 宕机场景下可能导致的崩溃与资源泄漏问题 [#58196](https://github.com/apache/doris/pull/58196), [#58819](https://github.com/apache/doris/pull/58819), [#59058](https://github.com/apache/doris/pull/59058) -- 修复 Compaction 后 Segment Footer Cache 未清理导致的读行为异常问题 [#59185](https://github.com/apache/doris/pull/59185) -- 修复 Copy Into 在 ORC / Parquet 格式下执行失败的问题 [#58551](https://github.com/apache/doris/pull/58551) \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v4.0/release-4.0.0.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v4.0/release-4.0.0.md deleted file mode 100644 index e86513bb330f6..0000000000000 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/releasenotes/v4.0/release-4.0.0.md +++ /dev/null @@ -1,666 +0,0 @@ ---- -{ - "title": "Release 4.0.0", - "language": "zh-CN", - "description": "亲爱的社区小伙伴们,我们很高兴地向大家宣布,近期我们迎来了 Apache Doris 4.0 版本的正式发布,欢迎大家下载使用体验。本次发布围绕 “AI 驱动、搜索增强、离线提效” 三大核心方向,新增向量索引、AI 函数等关键特性,完善搜索功能矩阵,优化离线计算稳定性与资源利用率," -} ---- - -亲爱的社区小伙伴们,我们很高兴地向大家宣布,近期我们迎来了 Apache Doris 4.0 版本的正式发布,欢迎大家下载使用体验。本次发布围绕 “AI 驱动、搜索增强、离线提效” 三大核心方向,新增向量索引、AI 函数等关键特性,完善搜索功能矩阵,优化离线计算稳定性与资源利用率,并通过多项底层改进提升查询性能与数据质量,为用户构建更高效、更灵活的企业级数据分析平台。 - -**在 4.0 版本的研发过程中,有超过 200 名贡献者为 Apache Doris 提交了 9000+ 个优化与修复。**在此向所有参与版本研发、测试和需求反馈的贡献者们表示最衷心的感谢。 - -- GitHub 下载:https://github.com/apache/doris/releases -- 官网下载:https://doris.apache.org/download - -## 一、AI 能力深度集成,开启智能分析新范式 - -随着大模型与向量检索技术在企业级场景的加速落地与深度渗透,本次 Doris 版本迭代将重点强化 AI 原生支持能力。通过向量索引技术,高效融合企业的结构化与非结构化数据,Doris 将突破传统数据库的功能边界,直接升级为企业核心的 “AI 分析中枢”,为业务端的智能化决策与创新实践提供稳定、高效的底层数据支撑。 - -### **向量索引(Vector Index)** - -正式引入向量索引功能,支持对高维向量数据(如文本嵌入、图像特征等)进行高效存储与检索。结合 Doris 原生的 SQL 分析能力,用户可直接在数据库内完成 “结构化数据查询 + 向量相似性搜索” 的一体化分析,无需跨系统整合,大幅降低 AI 应用(如智能推荐、语义搜索、图像检索)的开发与部署成本。 - -**向量索引检索函数介绍** - -- `l2_distance_approximate()` 使用 HNSW 索引按 **欧氏距离(L2)** 近似计算相似度。**数值越小越相似****。** -- `inner_product_approximate()`使用 HNSW 索引按 **内积(Inner Product)** 近似计算相似度。**数值越大越相似。** - -**示例** - -```SQL --- 1) 建表与索引 -CREATE TABLE doc_store ( - id BIGINT, - title STRING, - tags ARRAY, - embedding ARRAY NOT NULL, - INDEX idx_vec (embedding) USING ANN PROPERTIES ( - "index_type" = "hnsw", - "metric_type" = "l2_distance", - "dim" = "768", - "quantizer" = "flat" -- 可选:flat / sq8 / sq4 - ), - INDEX idx_title (title) USING INVERTED PROPERTIES ("parser" = "english") -) -DUPLICATE KEY(id) -DISTRIBUTED BY HASH(id) BUCKETS 16 -PROPERTIES("replication_num"="1"); - --- 2) TopN 最近邻(建议使用 PreparedStatement 传入向量), 用真实向量替换下面的 ... 占位符 -SELECT id, l2_distance_approximate(embedding, [...]) AS dist -FROM doc_store -ORDER BY dist ASC -LIMIT 10; - --- 3) 带过滤条件的 ANN(先过滤后TopN,保障召回), 用真实向量替换下面的 ... 占位符 -SELECT id, title, - l2_distance_approximate(embedding, [...]) AS dist -FROM doc_store -WHERE title MATCH_ANY 'music' -- 使用倒排索引快速过滤 - AND array_contains(tags, 'recommendation') -- 结构化过滤 -ORDER BY dist ASC -LIMIT 5; - --- 4) 范围查询,, 用真实向量替换下面的 ... 占位符 -SELECT COUNT(*) -FROM doc_store -WHERE l2_distance_approximate(embedding, [...]) <= 0.35; -``` - -**建索引参数** - -- `index_type`:必填,当前支持 `hnsw`。 -- `metric_type`:必填,`l2_distance` / `inner_product`。 -- `dim`:必填,正整数,需与导入向量维度严格一致。 -- `max_degree`:可选,默认 **32**;控制 HNSW 图节点出度(M)。 -- `ef_construction`:可选,默认 **40**;构建阶段候选队列长度。 -- `quant`:可选,`flat`(默认)/ `sq8` / `sq4`;量化可显著降低内存占用,SQ8 索引体积约为 FLAT 的 **1/3**,以小幅召回损失换取更高容量/更低成本。 - -**注意事项** - -- Doris **默认采用“前过滤”**:先用可精确定位的索引(如倒排)做谓词过滤,再在剩余集合上进行 ANN TopN,确保结果可解释与召回稳定。 -- 如 SQL 中出现 **无法由二级索引精确定位** 的谓词(例:`ROUND(id) > 100` 且 `id` 无倒排等二级索引),为保证前过滤语义与正确性,系统将 **回退精确暴力搜索**。 -- 向量列需为 **`ARRAY NOT NULL`**,且导入向量维度必须与索引 `dim` 一致。 -- ANN 目前仅支持 **Duplicate Key** 表模型。 - -### **AI** **Functions 函数库** - -让数据分析师能够直接通过简单的 SQL 语句,调用大语言模型进行文本处理。无论是提取特定重要信息、对评论进行情感分类,还是生成简短的文本摘要,现在都能在数据库内部无缝完成: - -- [AI_CLASSIFY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/ai-functions/ai-classify): 在给定的标签中提取与文本内容匹配度最高的单个标签字符串 -- [AI_EXTRACT](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/ai-functions/ai-extract): 根据文本内容,为每个给定标签提取相关信息。 -- [AI_FILTER](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/ai-functions/ai-filter): 判断文本内容是否正确,返回值为bool类型。 -- [AI_FIXGRAMMAR](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/ai-functions/ai-fixgrammar): 修复文本中的语法、拼写错误。 -- [AI_GENERATE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/ai-functions/ai-generate): 基于参数内容生成内容。 -- [AI_MASK](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/ai-functions/ai-mask): 根据标签,将原文中的敏感信息用`[MASKED]`进行替换处理。 -- [AI_SENTIMENT](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/ai-functions/ai-sentiment): 分析文本情感倾向,返回值为`positive`、`negative`、`neutral`、`mixed`其中之一。 -- [AI_SIMILARITY](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/ai-functions/ai-similarity): 判断两文本的语义相似度,返回值为 0 - 10 之间的浮点数,值越大代表语义越相似。 -- [AI_SUMMARIZE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/ai-functions/ai-summarize): 对文本进行高度总结概括。 -- [AI_TRANSLATE](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/ai-functions/ai-translate): 将文本翻译为指定语言。 -- [AI_AGG](https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/aggregate-functions/ai-agg): 对多条文本进行跨行聚合分析。 - -目前可以支持:OpenAI、Anthropic、Gemini、DeepSeek、Local、MoonShot、MiniMax、Zhipu、Qwen、Baichuan。例如,我们模拟一个简历筛选的需求,可以通过以下SQL 来在语义层进行筛选。 - -以下表模拟在招聘时的候选人简历和职业要求: - -```SQL -CREATE TABLE candidate_profiles ( - candidate_id INT, - name VARCHAR(50), - self_intro VARCHAR(500) -) -DUPLICATE KEY(candidate_id) -DISTRIBUTED BY HASH(candidate_id) BUCKETS 1 -PROPERTIES ( - "replication_num" = "1" -); - -CREATE TABLE job_requirements ( - job_id INT, - title VARCHAR(100), - jd_text VARCHAR(500) -) -DUPLICATE KEY(job_id) -DISTRIBUTED BY HASH(job_id) BUCKETS 1 -PROPERTIES ( - "replication_num" = "1" -); - -INSERT INTO candidate_profiles VALUES -(1, 'Alice', 'I am a senior backend engineer with 7 years of experience in Java, Spring Cloud and high-concurrency systems.'), -(2, 'Bob', 'Frontend developer focusing on React, TypeScript and performance optimization for e-commerce sites.'), -(3, 'Cathy', 'Data scientist specializing in NLP, large language models and recommendation systems.'); - -INSERT INTO job_requirements VALUES -(101, 'Backend Engineer', 'Looking for a senior backend engineer with deep Java expertise and experience designing distributed systems.'), -(102, 'ML Engineer', 'Seeking a data scientist or ML engineer familiar with NLP and large language models.'); -``` - -可以通过AI_FILTER把职业要求和候选人简介做语义匹配,筛选出合适的候选人: - -```SQL -SELECT - c.candidate_id, c.name, - j.job_id, j.title -FROM candidate_profiles AS c -JOIN job_requirements AS j -WHERE AI_FILTER(CONCAT('Does the following candidate self-introduction match the job description?', - 'Job: ', j.jd_text, ' Candidate: ', c.self_intro)); -+--------------+-------+--------+------------------+ -| candidate_id | name | job_id | title | -+--------------+-------+--------+------------------+ -| 3 | Cathy | 102 | ML Engineer | -| 1 | Alice | 101 | Backend Engineer | -+--------------+-------+--------+------------------+ -``` - -## 二、搜索功能全面升级,赋能全文检索 - -针对企业级搜索场景的多样化需求,本次版本完善搜索能力矩阵,提供更精准、更灵活的文本检索体验: - -### **新增Search 函数:统一入口的轻量 DSL 全文检索** - -#### **核心亮点** - -- **一个函数搞定全文检索**:将复杂文本检索算子收拢到 `SEARCH()` 统一入口,语法贴近 **Elasticsearch Query String**,极大降低 SQL 拼接复杂度与迁移成本。 -- **多条件索引下推**:复杂检索条件直接下推至倒排索引执行,避免“解析一次、拼接一次”的重复开销,显著提升性能。 - -#### **DSL语法支持简介** - -- 当前版本支持的语法功能 - - 词项查询(Term):`field:value` - - ANY / ALL 多值匹配:`field:ANY(v1 v2 ...)` / `field:ALL(v1 v2 ...)` - - 布尔组合:`AND / OR / NOT` 与括号分组 - - 多字段搜索:在一个 `search()` 中对多个字段做布尔组合 -- 后续版本会持续迭代以支持以下语法功能 - - 短语 - - 前缀 - - 通配符 - - 正则 - - 范围 - - 列表 - -#### **使用方式举例** - -```SQL --- 词项查询 -SELECT * FROM docs WHERE search('title:apache'); - --- ANY:匹配任意一个值 -SELECT * FROM docs WHERE search('tags:ANY(java python golang)'); - --- ALL:同时包含多个值 -SELECT * FROM docs WHERE search('tags:ALL(machine learning)'); - --- 布尔 + 多字段 -SELECT * FROM docs -WHERE search('(title:Doris OR content:database) AND NOT category:archived'); - --- 结合结构化过滤(结构化条件不参与打分) -SELECT * FROM docs -WHERE search('title:apache') AND publish_date >= '2025-01-01'; -``` - -### **文本检索打分** - -为了更好的支持混合检索场景,Doris4.0版本引入业界主流的 BM25 相关性评分算法,替代传统的 TF-IDF 算法。BM25 可根据文档长度动态调整词频权重,在长文本、多字段检索场景下(如日志分析、文档检索),显著提升结果相关性与检索准确性。 - -#### **使用方式举例** - -```SQL -SELECT *, score() as score -FROM search_demo -WHERE content MATCH_ANY 'search query' -ORDER BY score DESC -LIMIT 10; -``` - -#### **功能特性和限制** - -##### 支持的索引类型 - -- Tokenized索引:预定义分词器和自定义分词器 -- 非Tokenized索引:不分词索引 - -##### 支持的文本检索算子 - -- MATCH_ANY -- MATCH_ALL -- MATCH_PHRASE -- MATCH_PHRASE_PREFIX -- SEARCH - -##### 注意事项 - -- 分数范围:BM25分数没有固定的上下界,分数的相对大小比绝对值更有意义 -- 空查询:如果查询词项在集合中不存在,将返回0分 -- 文档长度影响:较短的文档在包含查询词项时通常获得更高分数 -- 查询词项数量:多词项查询的分数是各词项分数的组合(相加) - -### 倒排索引分词能力增强 - -Doris 在3.1 版本初步提供了一定能力的分词能力,在4.0 版本中,我们对分词能力进一步增强,能够满足用户在不同场景下的分词和文本检索需求。 - -#### 增加三种内置分词器 - -##### ICU(International Components for Unicode)分词器 - -- 适用场景:包含复杂文字系统的国际化文本,特别适合多语言混合文档。 -- 分词能力举例 - -```SQL -SELECT TOKENIZE('مرحبا بالعالم Hello 世界', '"parser"="icu"'); --- 结果: ["مرحبا", "بالعالم", "Hello", "世界"] - -SELECT TOKENIZE('มนไมเปนไปตามความตองการ', '"parser"="icu"'); --- 结果: ["มน", "ไมเปน", "ไป", "ตาม", "ความ", "ตองการ"] -``` - -##### IK分词器 - -- 适用场景:对分词质量要求较高的中文文本处理 -- ik_smart:智能模式,词少且更长,语义集中,适合精确搜索 -- ik_max_word:最细粒度模式,更多短词,覆盖更全面,适合召回搜索 -- 分词能力举例 - -```SQL -SELECT TOKENIZE('中华人民共和国国歌', '"parser"="ik","parser_mode"="ik_smart"'); --- 结果: ["中华人民共和国", "国歌"] - -SELECT TOKENIZE('中华人民共和国国歌', '"parser"="ik","parser_mode"="ik_max_word"'); --- 结果: ["中华人民共和国", "中华人民", "中华", "华人", "人民共和国", "人民", "共和国", "共和", "国歌"] -``` - -##### Basic分词器 - -- 适用场景:简单场景、对性能要求极高的场景,可以作为日志场景中unicode分词器的平替 -- 分词能力举例 - -```SQL --- 英文文本分词 -SELECT TOKENIZE('Hello World! This is a test.', '"parser"="basic"'); --- 结果: ["hello", "world", "this", "is", "a", "test"] - --- 中文文本分词 -SELECT TOKENIZE('你好世界', '"parser"="basic"'); --- 结果: ["你", "好", "世", "界"] - --- 混合语言分词 -SELECT TOKENIZE('Hello你好World世界', '"parser"="basic"'); --- 结果: ["hello", "你", "好", "world", "世", "界"] - --- 包含数字和特殊字符 -SELECT TOKENIZE('GET /images/hm_bg.jpg HTTP/1.0', '"parser"="basic"'); --- 结果: ["get", "images", "hm", "bg", "jpg", "http", "1", "0"] - --- 处理长数字序列 -SELECT TOKENIZE('12345678901234567890', '"parser"="basic"'); --- 结果: ["12345678901234567890"] -``` - -#### 新增自定义分词能力 - -- 管道化组合:通过 char filter、tokenizer 与多个 token filter 的链式配置,构建自定义文本处理流程。 -- 组件复用:常用的 tokenizer 和 filter 可在多个 analyzer 中共享,减少重复定义,降低维护成本。 -- 用户可以通过Doris提供的自定义分词机制,支持灵活组合char filter、tokenizer 和 token filter,从而为不同字段定制合适的分词流程,满足复杂场景下的个性化文本检索需求。 - -##### 使用方式举例1 - -- 创建类型为word_delimiter的token filter,通过配置 Word Delimiter Filter,将点号(.)和下划线(_)设置为分隔符。 -- 创建自定义分词器complex_identifier_analyzer,引用token filter complex_word_splitter。 - -```SQL --- 1. 创建自定义 token filter -CREATE INVERTED INDEX TOKEN_FILTER IF NOT EXISTS complex_word_splitter -PROPERTIES -( - "type" = "word_delimiter", - "type_table" = "[. => SUBWORD_DELIM], [_ => SUBWORD_DELIM]"); - --- 2. 创建自定义分词器 -CREATE INVERTED INDEX ANALYZER IF NOT EXISTS complex_identifier_analyzer -PROPERTIES -( - "tokenizer" = "standard", - "token_filter" = "complex_word_splitter, lowercase" -); - -SELECT TOKENIZE(‘apy217.39_202501260000026_526’, ‘”analyzer“=” complex_identifier_analyzer“‘); --- 结果为[apy]、[217]、[39]、[202501260000026]、[526] - --- MATCH(‘apy217’)或者MATCH(‘202501260000026’)都可以命中 -``` - -##### 使用方式举例2 - -- 创建类型为char_group的tokenizer multi_value_tokenizer,只将符号|设置为分隔符。 -- 创建自定义分词器multi_value_analyzer,引用tokenizer multi_value_tokenizer 。 - -```SQL --- 创建用于多值列分割的 char group tokenizer -CREATE INVERTED INDEX TOKENIZER IF NOT EXISTS multi_value_tokenizer -PROPERTIES -( - "type" = "char_group", - "tokenize_on_chars" = "[|]", - "max_token_length" = "255" -); --- 创建多值列分词器 -CREATE INVERTED INDEX ANALYZER IF NOT EXISTS multi_value_analyzer -PROPERTIES -( - "tokenizer" = "multi_value_tokenizer", - "token_filter" = "lowercase, asciifolding" -); - -SELECT tokenize('alice|123456|company', '"analyzer"="multi_value_analyzer"'); --- 结果为[alice]、[123456]、[company] - --- MATCH_ANY(‘alice’)或者MATCH_ANY(‘123456’)都可以命中 -``` - -## 三、离线计算能力强化,保障大规模任务稳定运行 - -当前越来越多的用户将ETL 数据加工,多表物化视图处理等离线计算任务迁移到Doris 上运行,针对离线批处理场景的资源消耗大、任务易溢出等痛点,4.0 新增 Spill Disk 功能,当离线计算任务的内存占用超出阈值时,自动将部分中间数据写入磁盘,避免因内存不足导致任务失败,大幅提升大规模离线任务的稳定性与容错能力。目前支持落盘的算子有: - -- Hash Join算子 -- 聚合算子 -- 排序算子 -- CTE 算子 - -### BE配置项 - -```JavaScript -spill_storage_root_path=/mnt/disk1/spilltest/doris/be/storage;/mnt/disk2/doris-spill;/mnt/disk3/doris-spill -spill_storage_limit=100% -``` - -- spill_storage_root_path:查询中间结果落盘文件存储路径,默认和storage_root_path一样。 -- spill_storage_limit: 落盘文件占用磁盘空间限制。可以配置具体的空间大小(比如100G, 1T)或者百分比,默认是20%。如果spill_storage_root_path配置单独的磁盘,可以设置为100%。这个参数主要是防止落盘占用太多的磁盘空间,导致无法进行正常的数据存储。 - -### FE Session Variable - -```JavaScript -set enable_spill=true; -set exec_mem_limit = 10g; -set query_timeout = 3600; -``` - -- enable_spill 表示一个query 是否开启落盘,默认关闭;如果开启,在内存紧张的情况下,会触发查询落盘; -- exec_mem_limit 表示一个query 使用的最大的内存大小; -- query_timeout 开启落盘,查询时间可能会显著增加,query_timeout需要进行调整。 - -一旦落盘发生,用户可以通过多种方式监测落盘的执行状况。 - -### 审计日志 - -FE audit log中增加了`SpillWriteBytesToLocalStorage`和`SpillReadBytesFromLocalStorage`字段,分别表示落盘时写盘和读盘数据总量。 - -```Plain -SpillWriteBytesToLocalStorage=503412182|SpillReadBytesFromLocalStorage=503412182 -``` - -### Profile - -如果查询过程中触发了落盘,在Query Profile中增加了`Spill` 前缀的一些Counter进行标记和落盘相关counter。以HashJoin时Build HashTable为例,可以看到下面的Counter: - -```Bash -PARTITIONED_HASH_JOIN_SINK_OPERATOR (id=4 , nereids_id=179):(ExecTime: 6sec351ms) - - Spilled: true - - CloseTime: 528ns - - ExecTime: 6sec351ms - - InitTime: 5.751us - - InputRows: 6.001215M (6001215) - - MemoryUsage: 0.00 - - MemoryUsagePeak: 554.42 MB - - MemoryUsageReserved: 1024.00 KB - - OpenTime: 2.267ms - - PendingFinishDependency: 0ns - - SpillBuildTime: 2sec437ms - - SpillInMemRow: 0 - - SpillMaxRowsOfPartition: 68.569K (68569) - - SpillMinRowsOfPartition: 67.455K (67455) - - SpillPartitionShuffleTime: 836.302ms - - SpillPartitionTime: 131.839ms - - SpillTotalTime: 5sec563ms - - SpillWriteBlockBytes: 714.13 MB - - SpillWriteBlockCount: 1.344K (1344) - - SpillWriteFileBytes: 244.40 MB - - SpillWriteFileTime: 350.754ms - - SpillWriteFileTotalCount: 32 - - SpillWriteRows: 6.001215M (6001215) - - SpillWriteSerializeBlockTime: 4sec378ms - - SpillWriteTaskCount: 417 - - SpillWriteTaskWaitInQueueCount: 0 - - SpillWriteTaskWaitInQueueTime: 8.731ms - - SpillWriteTime: 5sec549ms -``` - -### 系统表 backend_active_tasks - -增加了`SPILL_WRITE_BYTES_TO_LOCAL_STORAGE`和`SPILL_READ_BYTES_FROM_LOCAL_STORAGE`字段,分别表示一个查询目前落盘中间结果写盘数据和读盘数据总量。 - -```Bash -mysql [information_schema]>select * from backend_active_tasks; -+-------+------------+-------------------+-----------------------------------+--------------+------------------+-----------+------------+----------------------+---------------------------+--------------------+-------------------+------------+------------------------------------+-------------------------------------+ -| BE_ID | FE_HOST | WORKLOAD_GROUP_ID | QUERY_ID | TASK_TIME_MS | TASK_CPU_TIME_MS | SCAN_ROWS | SCAN_BYTES | BE_PEAK_MEMORY_BYTES | CURRENT_USED_MEMORY_BYTES | SHUFFLE_SEND_BYTES | SHUFFLE_SEND_ROWS | QUERY_TYPE | SPILL_WRITE_BYTES_TO_LOCAL_STORAGE | SPILL_READ_BYTES_FROM_LOCAL_STORAGE | -+-------+------------+-------------------+-----------------------------------+--------------+------------------+-----------+------------+----------------------+---------------------------+--------------------+-------------------+------------+------------------------------------+-------------------------------------+ -| 10009 | 10.16.10.8 | 1 | 6f08c74afbd44fff-9af951270933842d | 13612 | 11025 | 12002430 | 1960955904 | 733243057 | 70113260 | 0 | 0 | SELECT | 508110119 | 26383070 | -| 10009 | 10.16.10.8 | 1 | 871d643b87bf447b-865eb799403bec96 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | SELECT | 0 | 0 | -+-------+------------+-------------------+-----------------------------------+--------------+------------------+-----------+------------+----------------------+---------------------------+--------------------+-------------------+------------+------------------------------------+-------------------------------------+ -2 rows in set (0.00 sec) -``` - -### 测试 - -为验证落盘功能的稳定性,我们采用 **TPC-DS 10TB 标准数据集** 开展测试,测试环境配置为 **3 台 BE 服务器(每台 16 核 CPU、64GB 内存)**。BE的内存与数据规模的比例为 1:52。测试结果显示,整体运行时长为 28102.386 秒,且成功跑完 TPC-DS 基准测试中的全部 99 条查询,验证了落盘功能的基础稳定性。 - -具体数据请参考, https://doris.apache.org/zh-CN/docs/dev/admin-manual/workload-management/spill-disk - -## 四、数据质量全链路保障,筑牢分析结果可信基石 - -数据正确性是企业制定决策的核心前提与关键基石。为进一步夯实这一基础,4.0 版本对大量函数的运行行为进行了系统性梳理与规范,从数据导入环节到计算分析环节构建全链路校验机制,全面保障数据处理结果的准确性与可靠性,为企业决策提供坚实的数据支撑。 - -**注:这些****数据质量****问题的梳理,会导致一些行为跟过去不一样,升级之前需要仔细阅读这些文档。** - -### Cast - -CAST 是 SQL 中逻辑最复杂的函数之一,其核心作用是实现不同数据类型间的转换 —— 这一过程不仅需处理大量细碎的格式规则与边界场景,更因涉及类型语义的精准映射,成为实际使用中极易出错的环节。尤其在数据导入场景中,本质是将外部字符串转换为数据库内部类型的 CAST 操作,因此 CAST 的行为直接决定了导入逻辑的准确性与稳定性。同时,我们可以预见未来的数据库将大量的被AI 来操作,而AI 需要对数据库的行为有明确的定义,为此,我们引入了BNF 范式,我们希望通过范式定义的方式,为开发者和AI Agent提供清晰的操作依据。例如仅 DATE 类型的 CAST 就已通过 BNF 覆盖数十种格式组合场景( https://doris.apache.org/zh-CN/docs/dev/sql-manual/basic-element/sql-data-types/conversion/datetime-conversion ),同时在测试阶段我们通过这些规则,派生出百万级的测试case,保障结果的正确性。 - -```XML - ::= (("T" | " ")