This is an automated email from the ASF dual-hosted git repository.
kassiez pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-website.git
The following commit(s) were added to refs/heads/master by this push:
new 94bd5469622 [blog] Update blog 2.1.9 release (#2259)
94bd5469622 is described below
commit 94bd5469622f4a3cd0a94a963e8d62dd7c9d600c
Author: KassieZ <[email protected]>
AuthorDate: Thu Apr 3 15:52:28 2025 +0800
[blog] Update blog 2.1.9 release (#2259)
## Versions
- [ ] dev
- [ ] 3.0
- [ ] 2.1
- [ ] 2.0
## Languages
- [ ] Chinese
- [ ] English
## Docs Checklist
- [ ] Checked by AI
- [ ] Test Cases Built
---
...d-built-a-pb-scale-logging-system-with-doris.md | 2 -
...doris-for-maximum-performance-and-resilience.md | 2 +-
blog/release-note-2.1.9.md | 126 ++++++
blog/release-note-3.0.4.md | 2 -
...is-best-alternatives-for-real-time-analytics.md | 437 +++++++++++++++++++++
src/constant/newsletter.data.ts | 16 +-
static/images/2.1.9.jpg | Bin 0 -> 101386 bytes
.../Alternative-to-Elasticsearch.jpg | Bin 0 -> 132999 bytes
.../images/es-alternatives/Business-analysis-2.png | Bin 0 -> 115335 bytes
.../images/es-alternatives/Business-analysis-3.png | Bin 0 -> 160899 bytes
.../images/es-alternatives/Business-analysis.png | Bin 0 -> 101512 bytes
static/images/es-alternatives/Cyber-security-2.png | Bin 0 -> 146695 bytes
static/images/es-alternatives/Cyber-security-3.png | Bin 0 -> 161176 bytes
static/images/es-alternatives/Cyber-security.png | Bin 0 -> 246703 bytes
static/images/es-alternatives/Flexible-schema.png | Bin 0 -> 110388 bytes
static/images/es-alternatives/Observability-2.png | Bin 0 -> 106475 bytes
static/images/es-alternatives/Observability-3.png | Bin 0 -> 71020 bytes
static/images/es-alternatives/Observability.png | Bin 0 -> 169763 bytes
.../images/es-alternatives/Query-performance-2.png | Bin 0 -> 26471 bytes
.../images/es-alternatives/Query-performance.png | Bin 0 -> 137503 bytes
.../images/es-alternatives/Real-time-queries.png | Bin 0 -> 237302 bytes
.../es-alternatives/System-architecture-2.png | Bin 0 -> 43508 bytes
.../es-alternatives/System-architecture-3.png | Bin 0 -> 205285 bytes
.../es-alternatives/System-architecture.jpeg | Bin 0 -> 56118 bytes
.../Taking-Apache-Doris-to-the-next-level.png | Bin 0 -> 341937 bytes
static/images/es-alternatives/comparisons-2.png | Bin 0 -> 341507 bytes
static/images/es-alternatives/comparisons-3.png | Bin 0 -> 370958 bytes
static/images/es-alternatives/comparisons.png | Bin 0 -> 260141 bytes
static/images/es-alternatives/lakehouse.png | Bin 0 -> 160295 bytes
.../images/es-alternatives/write-performance.png | Bin 0 -> 276476 bytes
30 files changed, 572 insertions(+), 13 deletions(-)
diff --git
a/blog/ai-unicorn-minimax-from-loki-and-built-a-pb-scale-logging-system-with-doris.md
b/blog/ai-unicorn-minimax-from-loki-and-built-a-pb-scale-logging-system-with-doris.md
index 86d9eff9bed..9d5ddf19e36 100644
---
a/blog/ai-unicorn-minimax-from-loki-and-built-a-pb-scale-logging-system-with-doris.md
+++
b/blog/ai-unicorn-minimax-from-loki-and-built-a-pb-scale-logging-system-with-doris.md
@@ -6,8 +6,6 @@
'date': '2024-08-29',
'author': 'Apache Doris',
'tags': ['Best Practice'],
- 'picked': "true",
- 'order': "4",
"image": '/images/minimax-creator-of-talkie.jpeg'
}
diff --git
a/blog/ortege-studio-2-fine-tuning-apache-doris-for-maximum-performance-and-resilience.md
b/blog/ortege-studio-2-fine-tuning-apache-doris-for-maximum-performance-and-resilience.md
index 7882d7f33a7..b35b9e2f3eb 100644
---
a/blog/ortege-studio-2-fine-tuning-apache-doris-for-maximum-performance-and-resilience.md
+++
b/blog/ortege-studio-2-fine-tuning-apache-doris-for-maximum-performance-and-resilience.md
@@ -7,7 +7,7 @@
'author': 'Justin Trollip',
'tags': ['Best Practice'],
'picked': "true",
- 'order': "3",
+ 'order': "4",
"image": '/images/ortege-2.jpg'
}
diff --git a/blog/release-note-2.1.9.md b/blog/release-note-2.1.9.md
new file mode 100644
index 00000000000..81bd338e062
--- /dev/null
+++ b/blog/release-note-2.1.9.md
@@ -0,0 +1,126 @@
+---
+{
+ 'title': 'Apache Doris 2.1.9 released',
+ 'summary': 'This version features improved SQL hash calculation, enhanced
query result accuracy, and new metrics for better storage management. It also
resolves critical bugs across multiple areas, enhancing the data management
experience.',
+ 'description': 'This version features improved SQL hash calculation,
enhanced query result accuracy, and new metrics for better storage management.
It also resolves critical bugs across multiple areas, enhancing the data
management experience.',
+ 'date': '2025-04-03',
+ 'author': 'Apache Doris',
+ 'tags': ['Release Notes'],
+ 'picked': "true",
+ 'order': "2",
+ "image": '/images/2.1.9.jpg'
+}
+---
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+Dear Community, **Apache Doris version 2.1.9 is now available**, featuring
improved SQLHash calculation, enhanced query results accuracy, and new metrics
for better storage management. This update also resolves critical bugs across
multiple areas for a more robust data management experience.
+
+
+- [Quick Download](https://doris.apache.org/download)
+
+- [GitHub Release](https://github.com/apache/doris/releases/tag/2.1.9-rc02)
+
+
+## Behavior Changes
+
+- The SQLHash in Audit Log is now accurately calculated per SQL query,
resolving the issue of identical hashes in a single request.
[#48242](https://github.com/apache/doris/pull/48242)
+- Query results match ColumnLabelName exactly.
[#47093](https://github.com/apache/doris/pull/47093)
+- User property variables now take precedence over session variables.
[#47185](https://github.com/apache/doris/pull/47185)
+
+## New Features
+
+### Storage Management
+
+- Disallow renaming partition columns.
[#47596](https://github.com/apache/doris/pull/47596)
+
+### Others
+
+- Added FE monitoring metrics for Catalogs, Databases, and Tables counts.
[#47891](https://github.com/apache/doris/pull/47891)
+
+## Improvements
+
+### Inverted Index
+
+- Support for ARRAY type in VARIANT inverted indexes.
[#47688](https://github.com/apache/doris/pull/47688)
+- Profile now shows performance metrics for each filter condition.
[#47504](https://github.com/apache/doris/pull/47504)
+
+### Query Optimizer
+
+- Support for using `SELECT *` in aggregate queries with only aggregation key
columns. [#48006](https://github.com/apache/doris/pull/48006)
+
+### Storage Management
+
+- Enhanced CCR for binlog recycling and small file transfer efficiency, and
robustness in chaotic environments.
[#47547](https://github.com/apache/doris/pull/47547)
[#47313](https://github.com/apache/doris/pull/47313)
[#45061](https://github.com/apache/doris/pull/45061)
+- Enhanced import error messages to be more specific.
[#47918](https://github.com/apache/doris/pull/47918)
[#47470](https://github.com/apache/doris/pull/47470)
+
+## Bug Fixes
+
+### Lakehouse
+
+- Fixed BE krb5.conf path configuration issue.
[#47679](https://github.com/apache/doris/pull/47679)
+- Prevented `SELECT OUTFILE` statement retries to avoid duplicate data export.
[#48095](https://github.com/apache/doris/pull/48095)
+- Fixed JAVA API access to Paimon tables.
[#47192](https://github.com/apache/doris/pull/47192)
+- Resolved writing to Hive tables with `s3a://` storage location.
[#47162](https://github.com/apache/doris/pull/47162)
+- Fixed the issue of Catalog's Comment field not being persisted.
[#46946](https://github.com/apache/doris/pull/46946)
+- Addressed JDBC BE class loading leaks under certain conditions.
[#46912](https://github.com/apache/doris/pull/46912)
+- Resolved high version ClickHouse JDBC Driver compatibility with JDBC
Catalog. [#46026](https://github.com/apache/doris/pull/46026)
+- Fixed BE crash when reading Iceberg Position Delete.
[#47977](https://github.com/apache/doris/pull/47977)
+- Corrected reading MaxCompute table data under multi-partition columns.
[#48325](https://github.com/apache/doris/pull/48325)
+- Fixed reading Parquet complex column types errors.
[#47734](https://github.com/apache/doris/pull/47734)
+
+### Inverted Index
+
+- Fixed ARRAY type inverted index null value handling.
[#48231](https://github.com/apache/doris/pull/48231)
+- Resolved `BUILD INDEX` exception for newly added columns.
[#48389](https://github.com/apache/doris/pull/48389)
+- Corrected UTF8 encoding index truncation issues leading to errors.
[#48657](https://github.com/apache/doris/pull/48657)
+
+### Semi-structured Data Types
+
+- Fixed `array_agg` function crashes under special conditions.
[#46927](https://github.com/apache/doris/pull/46927)
+- Resolved JSON import crashes due to incorrect chunk parameters.
[#48196](https://github.com/apache/doris/pull/48196)
+
+### Query Optimizer
+
+- Fixed constant folding issues with nested time functions like
`current_date`. [#47288](https://github.com/apache/doris/pull/47288)
+- Addressed non-deterministic function result errors.
[#48321](https://github.com/apache/doris/pull/48321)
+- Resolved `CREATE TABLE LIKE` execution issues with on update column
properties. [#48007](https://github.com/apache/doris/pull/48007)
+- Fixed unexpected planning errors for materialized views of aggregate model
tables. [#47658](https://github.com/apache/doris/pull/47658)
+- Resolved `PreparedStatement` exceptions due to internal ID overflow.
[#47950](https://github.com/apache/doris/pull/47950)
+
+### Query Execution Engine
+
+- Resolved query hang or null pointer issues when querying system tables.
[#48370](https://github.com/apache/doris/pull/48370)
+- Added DOUBLE type support for LEAD/LAG functions.
[#47940](https://github.com/apache/doris/pull/47940)
+- Fixed query errors when `case when` conditions exceed 256.
[#47179](https://github.com/apache/doris/pull/47179)
+- Corrected `str_to_date` function errors with spaces.
[#48920](https://github.com/apache/doris/pull/48920)
+- Fixed `split_part` function errors during constant folding with `||`.
[#48910](https://github.com/apache/doris/pull/48910)
+- Corrected `log` function result errors.
[#47228](https://github.com/apache/doris/pull/47228)
+- Resolved core dump issues with `array` / `map` functions in lambda
expressions. [#49140](https://github.com/apache/doris/pull/49140)
+
+### Storage Management
+
+- Fixed memory corruption issues during import of aggregate tables.
[#47523](https://github.com/apache/doris/pull/47523)
+- Resolved occasional core dump during MoW import under memory pressure.
[#47715](https://github.com/apache/doris/pull/47715)
+- Fixed potential duplicate key issues with MoW during BE restart and schema
change. [#48056](https://github.com/apache/doris/pull/48056)
[#48775](https://github.com/apache/doris/pull/48775)
+- Corrected group commit and global column update issues with memtable
promotion. [#48120](https://github.com/apache/doris/pull/48120)
[#47968](https://github.com/apache/doris/pull/47968)
+
+### Permission Management
+
+- No longer throws PartialResultException when using LDAP.
[#47858](https://github.com/apache/doris/pull/47858)
\ No newline at end of file
diff --git a/blog/release-note-3.0.4.md b/blog/release-note-3.0.4.md
index c9144a061e1..afeacb1b6e2 100644
--- a/blog/release-note-3.0.4.md
+++ b/blog/release-note-3.0.4.md
@@ -6,8 +6,6 @@
'date': '2025-02-28',
'author': 'Apache Doris',
'tags': ['Release Notes'],
- 'picked': "true",
- 'order': "2",
"image": '/images/3.0.4.jpg'
}
---
diff --git
a/blog/why-apache-doris-is-best-alternatives-for-real-time-analytics.md
b/blog/why-apache-doris-is-best-alternatives-for-real-time-analytics.md
new file mode 100644
index 00000000000..0aebb7094cf
--- /dev/null
+++ b/blog/why-apache-doris-is-best-alternatives-for-real-time-analytics.md
@@ -0,0 +1,437 @@
+---
+{
+ 'title': 'Why Apache Doris is a Better Alternative to Elasticsearch for
Real-Time Analytics',
+ 'summary': "Apache Doris is a real-time data warehouse commonly used for
observability, cyber security analysis, online reports, customer profiles, data
lakehouse and more. Elasticsearch is more like a search engine, but it is also
widely used for data analytics, so there's an overlap in their use cases. The
comparison in this post will focus on the real-time analytics capabilities of
Apache Doris and Elasticsearch from a user-oriented perspective",
+ 'description': "Apache Doris is a real-time data warehouse commonly used
for observability, cyber security analysis, online reports, customer profiles,
data lakehouse and more. Elasticsearch is more like a search engine, but it is
also widely used for data analytics, so there's an overlap in their use cases.
The comparison in this post will focus on the real-time analytics capabilities
of Apache Doris and Elasticsearch from a user-oriented perspective",
+ 'date': '2025-03-25',
+ 'author': 'Kang, Apache Doris PMC Member',
+ 'tags': ['Release Notes'],
+ 'picked': "true",
+ 'order': "3",
+ "image": '/images/es-alternatives/Alternative-to-Elasticsearch.jpg'
+}
+---
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+The author previously presented this topic at the VeloDB Webinar. This article
expands on that presentation by providing more detailed comparative
information, including test data and in-depth technical explanations:
[https://www.youtube.com/embed/qnxX-FOd8Wc?si=TcEF_w-XhqgQyP4A](https://www.youtube.com/embed/qnxX-FOd8Wc?si=TcEF_w-XhqgQyP4A)
+
+
+In the past year, there's an increasing number of users looking to use Apache
Doris as an alternative to Elasticsearch, so I'd like to provide an in-depth
comparison of the two to serve as a reference for users.
+
+[Apache Doris](https://doris.apache.org) is a real-time data warehouse
commonly used for observability, cyber security analysis, online reports,
customer profiles, data lakehouse and more.
[Elasticsearch](https://www.elastic.co/elasticsearch) is more like a search
engine, but it is also widely used for data analytics, so there's an overlap in
their use cases. The comparison in this post will focus on the real-time
analytics capabilities of Apache Doris and Elasticsearch from a user-orien [...]
+
+1. **Open source**
+2. **System architecture**
+3. **Real-time writes**
+4. **Real-time storage**
+5. **Real-time queries**
+
+## Open source
+
+The license decides the level of openness of an open source product, and
further decides whether users will be trapped in a vendor lock-in situation.
+
+**Apache Doris** is operated under the Apache Software Foundation and it is
governed by [Apache License
2.0](https://www.apache.org/licenses/LICENSE-2.0.html). This is a highly
liberal open source license. Anyone can freely use, modify, and distribute
Apache Doris in open source or commercial projects.
+
+**Elasticsearch** has undergone several changes in licenses. It was subject to
Apache License 2.0 at the very beginning. Then in
[2021](https://www.elastic.co/blog/licensing-change), it switched to the
[Elastic License](https://www.elastic.co/licensing/elastic-license) and
[SSPL](https://www.mongodb.com/licensing/server-side-public-license), mostly
because some cloud service providers were providing Elasticsearch as a managed
service. The Elastic company tried to protect its business int [...]
+
+The difference in licenses reflects the differing ways in which the two
open-source projects are managed and operated. Apache Doris is operated under
the Apache Software Foundation and adheres to "the Apache Way" and maintains
vendor neutrality. It will always be under Apache License and maintain a high
level of openness. Elasticsearch is owned and run by the Elastic company, so it
is free to change its license based on the changing needs of the company.
+
+## System architecture
+
+The system architecture of Apache Doris and Elasticsearch is relevant to how
users can deploy them and the software/hardware prerequisites that must be met.
+
+**Apache Doris** supports various deployment models, especially after the
[release of verion 3.0](https://doris.apache.org/blog/release-note-3.0.0). It
can be deployed on-premise the traditional way, which means compute and storage
are integrated within the same hardware. It can also be deployed with [compute
and storage
decoupled](https://doris.apache.org/docs/3.0/compute-storage-decoupled/overview),
providing higher flexibility and elasticity.
+
+
+
+Apache Doris enables the isolation of computing workloads, which makes it
well-suited for multi-tenancy. In addition to decoupling compute and storage,
it also provides tiered storage so you can choose different storage medium for
your hot and cold data.
+
+For workload isolation, Apache Doris provides the [Compute
Group](https://doris.apache.org/docs/3.0/admin-manual/workload-management/compute-group)
and [Workload
Group](https://doris.apache.org/docs/3.0/admin-manual/workload-management/workload-group)
mechanism.
+
+
+
+Compute Group is a mechanism for physical isolation between different
workloads in a compute-storage decoupled architecture. One or more BE nodes can
form a Compute Group.
+
+
+
+Workload Group is an in-process mechanism for isolating workloads. It achieves
resource isolation by finely partitioning or limiting resources (CPU, IO,
Memory) within the BE process, which is implemented by Linux CGroup and offers
strict hard isolation.
+
+**Elasticsearch** supports on-premise and cloud deployment. It does not
support compute-storage decoupling. Elasticsearch implements workload isolation
by Thread Groups, which provides limited soft resource isolation.
+
+## Real-time writes
+
+The next step after deploying the system is to write data into it. Apache
Doris and Elasticsearch are very different in data ingestion.
+
+### Write capabilities
+
+Normally there are two ways to write real-time data into a data system. One is
push-based, and the other is pull-based. A push-based method means users
actively push the data into the database system, such as via HTTP. A pull-based
method, for example, is where database system pulls data from data source such
as Kafka message queue.
+
+**Elasticsearch** supports push-based ingestion, but it requires Logstash to
perform pull-based data ingestion, making it less convenient.
+
+As for **Apache Doris**, it supports both push-based method (HTTP [Stream
Load](https://doris.apache.org/docs/3.0/data-operate/import/import-way/stream-load-manual))
and pull-based method ([Routine
Load](https://doris.apache.org/docs/3.0/data-operate/import/import-way/routine-load-manual)
from Kafka, [Broker
Load](https://doris.apache.org/docs/3.0/data-operate/import/import-way/broker-load-manual)
from object storage and HDFS). In addition, output plugins for
[Logstash](https://doris.apa [...]
+
+In addition, Doris provides a special write
[transaction](https://doris.apache.org/docs/3.0/data-operate/transaction)
mechanism. By setting a
[label](https://doris.apache.org/docs/3.0/data-operate/transaction#label-mechanism)
for a batch of data through the Load API, attempting to re-load a label that
has been successfully load before will result in an error, thereby achieving
data deduplication. This mechanism ensures that data is written without loss or
duplication without relying on t [...]
+
+### Write performance
+
+**Apache Doris**, as a real-time data warehouse, supports real-time data
writes and updates. One of the standout features of Doris is its incredibly
high write throughput. This is because the Doris community has put a lot of
effort in optimizing it for high-throughput writes such as vertorized writting
and single replica indexing.
+
+On the other hand, the low write throughput of **Elasticsearch** is a
well-known pain point. This is due to Elasticsearch's needs to generate complex
inverted index on multiple replicas, causing a lot of overheads.
+
+We compare the write performance of Doris and Elasticsearch using
Elasticsearch's official benchmark
[httplogs](https://github.com/elastic/rally-tracks/tree/master/http_logs),
under the same hardware resources and storage schema (including field types and
inverted indexes). The test environment and results are as follows:
+
+
+
+Under the premise of creating the same inverted index, Apache Doris delivers a
much higher write throughput than Elasticsearch. This is due to some key
advancements in performance optimization, including:
+
+1. Doris is implemented in C++, which is more efficient than Elasticsearch's
Java implementation.
+2. The vectorized execution engine of Doris fully utilizes CPU SIMD
instructions to accelerate both data writing and inverted index building. Its
columnar storage also facilitates vectorized execution.
+3. The inverted index of Doris is simplified for real-time analytics
scenarios, eliminating unnecessary storage structures such as forward indexes
and norms.
+
+## Real-time storage
+
+### Storage format and cost
+
+As a real-time data warehouse, Doris adheres to the typical relational
database model, with a storage hierarchy that includes **catalog**,
**database**, and **table** levels. A table consists of one or more columns,
each with its own data type, and indexes can be created on the columns.
+
+By default, Doris stores tables in a columnar format, meaning that data for a
single column is stored in contiguous physical files. This not only achieves a
high compression ratio but also ensures high query efficiency in analysis
scenarios where only certain columns are accessed, as only the required data is
read and processed. Additionally, Doris supports an optional row storage format
to accelerate detailed point queries.
+
+In Elasticsearch, data is stored in Lucene using a document model. In this
model, an Elasticsearch index is equivalent to a database table, the index
mapping corresponds to the database table schema, and fields within the index
mapping are akin to columns in a database, each with its own type and index
type.
+
+By default, Elasticsearch uses row-based storage (the _source field), where
each field has an associated inverted index created for it, but it also
supports optional columnar storage (docvalue). Generally, row-based storage is
essential in Elasticsearch because it lays the foundation for raw detailed data
queries.
+
+Storage space consumption, or more straightforward, storage cost, is a big
concern for users. This is another pain point of Elasticsearch - it creates
huge storage costs.
+
+Apache Doris community have made a lot of optimizations and successfully
reduced the storage cost significantly. We have put a lot of work to simplify
[inverted
index](https://doris.apache.org/docs/3.0/table-design/index/inverted-index),
which is supported in Doris since version 2.0, and it now takes up much less
space. **Doris** supports the ZSTD algorithm, which is much more efficient than
GZIP and LZ4, and it can reach a data compression ratio of 5:1 ~ 10:1. Since
the compression rati [...]
+
+As demonstrated in the httplogs test results table above, 32GB of raw data
occupies 3.2GB in Doris, whereas Elasticsearch defaults to 19.4GB. Even with
the latest logsdb optimization mode enabled, Elasticsearch still consumes
11.7GB. Compared to Elasticsearch, Doris reduces storage space by 83% (73% with
logsdb enabled).
+
+### Table model
+
+Apache Doris provides three data models. As for Elasticsearch, I put it as
"one and two half" models because it only provides limited support for certain
data storage models. I will get to them one by one.
+
+- The first is the Duplicate model, which means it allows data duplication.
This is suitable for storing logs. Both Doris and Elasticsearch support this
model.
+
+- The second is the primary key model. It works like OLTP databases, which
means the data will be deduplicated by key. The [primary key
model](https://doris.apache.org/docs/table-design/data-model/unique) in
**Doris** provides high performance and many user-friendly features. Just like
many databases, you can define one or multiple fields as the primary and unique
key.
+ - However, in **Elasticsearch**, you can only use a special field
[_id](https://www.elastic.co/guide/en/elasticsearch/reference/8.17/mapping-id-field.html)
as the unique identifier for a document (a row in database). Unlike database
primary key, there are many limitations for it.
+
+ - The `_id` field can not be used for aggregation or sorting
+ - The `_id` field can not be larger than 512 bytes
+ - The `_id` field can not be multiple fields, so you will need to combine
the multiple fields into one before you can use them as the primary key, but
the length of the combined _id can still not exceed 512 bytes.
+
+- The third is the aggregation model, which means data will be aggregated or
rolled up.
+
+In its early stages, Elasticsearch provided the
[rollup](https://www.elastic.co/guide/en/elasticsearch/reference/8.17/rollup-getting-started.html)
feature through the commercial X-Pack plugin, allowing users to create rollup
jobs that configured dimensions, metric fields, and aggregation intervals for
rollup indexes based on a base index. However, X-Pack rollup had several
limitations:
+
+1. **Data Asynchrony**: Rollup jobs ran in the background, meaning the data in
the rollup index was not synchronized in real time with the base index.
+2. **Specialized Query Requirement**: Queries targeting rolled-up data
required dedicated rollup queries, and users had to manually specify the rollup
index in their queries.
+
+Perhaps these reasons explain why **Elasticsearch has deprecated the use of
rollup starting in version 8.11.0** and now recommends
**[downsampling](https://www.elastic.co/guide/en/elasticsearch/reference/8.17/downsampling.html)**
as an alternative. Downsampling eliminates the need to specify a separate
index and simplifies querying, but it also comes with its own constraints:
+
+1. **Time-Series Exclusive**: Downsampling is only applicable to time-series
data, relying on time as the primary dimension. It cannot be used for other
data types, such as business reporting data.
+2. **Index Replacement**: A downsampled index replaces the original index,
meaning aggregated data and raw data cannot coexist.
+3. **Read-Only**: Downsampling can only be performed on the original index
after it transitions to a read-only state. Data actively being written (e.g.,
real-time ingestion) cannot undergo downsampling.
+
+As a real-time data warehouse excelling in aggregation and analytics,
**Doris** has supported aggregation capabilities since its early use cases in
online reporting and analytics. It offers two flexible mechanisms:
+
+1. **[Aggregation Table
Model](https://doris.apache.org/docs/3.0/table-design/data-model/aggregate)**:
+ - Data is directly aggregated during ingestion, eliminating the storage of
raw data.
+ - Only aggregated results are stored, drastically reducing storage costs.
+2. **[Aggregated Materialized
Views](https://doris.apache.org/docs/query-acceleration/materialized-view/sync-materialized-view)/
Rollup**:
+ - Users can create aggregated materialized views on a base table. Data is
written to both the base table and the materialized view simultaneously,
ensuring atomic and synchronized updates.
+ - Queries target the base table, and the query optimizer automatically
rewrites queries to leverage the materialized view for accelerated performance.
+
+This design ensures real-time aggregation while maintaining query flexibility
and efficiency in Doris.
+
+### Flexible schema
+
+In most cases, especially for online business scenarios, users often need to
update or modify the data schema. Elasticsearch supports flexible schema, but
it only allows users to dynamically add columns.
+
+
+
+When you write JSON data into Elasticsearch, if the data contains a new field
which is not in index mapping, Elasticsearch will create a new field in the
schema through [dynamic
mapping](https://www.elastic.co/guide/en/elasticsearch/reference/8.17/dynamic-field-mapping.html),
so you don't need to change the schema beforehand, like you have to do in
traditional databases. However, in Elasticsearch, users cannot directly delete
a field of the schema. For that, you will need a reindex oper [...]
+
+In addition, Elasticsearch does not allow adding index for an already existed
field. Imagine that you have 100 fields in a schema, and you have created
inverted index for 10 of them, and then some days later, you want to add
inverted index for another 5 fields, but no, you can't do that in
Elasticsearch. Likewise, deleting index for a field is not allowed either.
+
+As a result, to avoid such troubles, most Elasticsearch users will just create
inverted index for all of their fields, but that causes much slower data
writing and much larger storage usage.
+
+Also, Elasticsearch does not allow you to modify your index names or your
field names. To sum up, if you need to make any changes to your data other than
adding a field, you will need to re-index everything. That's a highly
resource-intensive and time-consuming operation.
+
+What about **Apache Doris**? Doris supports all these [schema
changes](https://doris.apache.org/docs/3.0/table-design/schema-change). You can
add or delete fields and
[indexes](https://doris.apache.org/docs/3.0/table-design/index/inverted-index#managing-indexes)
as you want, and you can change the name of any table or field easily. Doris
can finish these changes within just a few milliseconds. Such flexibility will
save you a lot of time and resource, especially when you have changing bu [...]
+
+## Real-time queries
+
+We break down the real-time querying of Elasticsearch and Apache Doris into
three dimensions: usability, query capabilities, and performance.
+
+### Usability
+
+One key aspect of usability is reflected in the user interface.
+
+The Doris SQL interface is designed to maintain protocol and syntax
compatibility with MySQL. It even does not have its own client or JDBC driver,
allowing the use of MySQL’s client and JDBC driver directly. This is a big
convenience for many users familiar with MySQL. In fact, this choice was made
early in the original design of Doris to make it more user-friendly. Since
MySQL is the most widely used open-source OLTP database, Doris is designed to
complement MySQL, creating the best pra [...]
+
+On the other hand, Elasticsearch has its own Domain Specific Language (DSL),
which is originally designed for searching. This DSL is part of the
Elasticsearch ecosystem, it often requires engineers to invest a lot of time
and effort to fully understand and use the DSL effectively.
+
+Let's take a look at one example:
+
+
+
+Imagine we want to search for a particular keyword within a particular time
range, and then group and order the data by time interval to visualize it as a
trend chart.
+
+In Doris, this can be done with only 7 lines of SQL. However, in
Elasticsearch, the same process requires 30 lines.
+
+And it's not just about the code complexity. I believe many of you may find
this relatable: The first attempt to learn Elasticsearch's DSL is quite
challenging. And even after gaining familiarity with it, crafting a query often
requires frequent reference to documentation and examples. Due to its inherent
complexity, writing DSL queries from scratch remains a challenging task. In
contrast, SQL is simple, clear, and highly structured. Most engineers can
easily write a query like this with [...]
+
+### Query capabilities
+
+**Elasticsearch** is good at searching. As its name suggests, it was built for
search. But beyond search and aggregation queries, it doesn't support complex
analytical queries, such as multi-table JOIN.
+
+**Apache Doris** is a general-purpose data warehouse. It provides strong
support for complex analytics, including multi-table JOIN, UDF, subquery,
window function, logic view, materialized view, and data lakehouse. And Doris
has been improving its searching capabilities since version 2.0. We have
introduced inverted index and full-text search, so it is getting increasingly
competitive in this area.
+
+#### Search
+
+While this article focuses on real-time analytics scenarios, we have chosen
not to overlook **Elasticsearch’s core strength**: its search capabilities.
+
+Elasticsearch, renowned for its search performance, leverages the **Apache
Lucene library** under the hood. It provides two primary indexing structures:
+
+- **Inverted indexes** for text fields.
+- **BKD-Tree indexes** for numeric, date, and geospatial data.
+
+Elasticsearch supports the following search paradigms:
+
+1. **Exact Matching**: equality or range queries for numeric, date, or
non-tokenized string fields (keyword), powered by **BKD-Tree indexes**
(numeric/date) or **non-tokenized inverted indexes** (exact term matches).
+2. **[Full-Text
Search](https://www.elastic.co/guide/en/elasticsearch/reference/8.17/full-text-queries.html)**:
keyword, phrase, or multi-term matching. During ingestion, text is split into
tokens using a configurable tokenizer. Queries match tokens, phrases, or
combinations (e.g., `"quick brown fox"`). Elasticsearch supports some advanced
full-text search features, such as relevance scoring, auto-completion,
spell-checking, and search suggestions.
+3. **Vector Search based on ANN index.**
+
+**Doris** also supports a rich set of indexes to accelerate queries, including
**prefix-sorted indexes**, **ZoneMap indexes**, **BloomFilter indexes and
N-Gram BloomFilter indexes**.
+
+Starting from version 2.0, Doris has added **inverted indexes** and BKD-Tree
indexes to support **exact matching** and full-text search. **Vector search**
is currently under development and is expected to be available within the next
six months.
+
+There are some **differences between the indexes of Apache Doris and
Elasticsearch**:
+
+1. **[Diverse indexing
strategies](https://doris.apache.org/docs/3.0/table-design/index/index-overview)**:
Doris does not rely solely on inverted indexes for query acceleration. It
offers different indexes for different scenarios. **ZoneMap**, BloomFilter, and
**N-Gram BloomFilter indexes** are **skip indexes** that accelerate analytical
queries by skipping non-matching data blocks based on `WHERE` conditions. The
**N-Gram BloomFilter index** is specifically optimized for `LIKE`-style fu [...]
+2. **Performance centric design**: Doris prioritizes **speed and efficiency**
over advanced search features. To achieve faster index building and query
performance (see the Query Performance section in the following), it omits
certain complex functionalities of inverted indexes at present, such as
relevance scoring, auto-completion, spell-checking, and search suggestions.
Since there are more critical in document or web search scenarios, which are
not Doris’ primary focus on real-time an [...]
+
+For **exact matching** and **common full-text search** requirements, such as
term, range, phrase, multi-field matching, Doris is fully capable and reliable
in most use cases. For **complex search needs** (e.g., relevance scoring,
auto-completion, spell-checking, or search suggestions), **Elasticsearch**
remains the more suitable choice.
+
+#### Aggregation
+
+Both **Elasticsearch** and **Doris** support a wide range of aggregation
operators, including:
+
+- **Basic aggregations**: `MIN`, `MAX`, `COUNT`, `SUM`, `AVG`.
+- **Advanced aggregations**: `PERCENTILE` (quantiles), `HISTOGRAM` (bucketed
distributions).
+- **Aggregation modes**: Global aggregation, key-based grouping (e.g., `GROUP
BY`).
+
+However, their approaches to aggregation analysis differ significantly in the
following aspects:
+
+**1. Query syntax and usability:** Doris uses **standard SQL syntax** (`GROUP
BY` clauses + aggregation functions), making it intuitive for analysts and
developers familiar with SQL. **Elasticsearch** relies on a **custom
Domain-Specific Language (DSL)** with concepts like `metric agg`, `bucket agg`,
and `pipeline agg`. Complexity increases with nested or multi-layered
aggregations, requiring steeper learning curves.
+
+**2. Result accuracy:** Elasticsearch outputs inaccurate approximate result
for many aggregation types by default. Aggregations (e.g., `terms` agg) are
executed per shard, with each shard returning only its top results (e.g., top
10 buckets). These partial results are merged globally, leading to potentially
inaccurate final outputs. As a serious OLAP database, Doris ensures exact
results by processing full datasets without approximations.
+
+**3. Query Performance:** Doris demonstrates **significant performance
advantages over Elasticsearch** in aggregation-heavy OLAP workloads like those
on ClickBench (see more in the Query performance section bellow).
+
+#### JOIN
+
+**Elasticsearch** does not support JOIN, making it unable to execute common
benchmarks like TPC-H or TPC-DS. Since JOINs are critical in data analysis,
Elasticsearch provides some complex
[workarounds](https://www.elastic.co/guide/en/elasticsearch/reference/8.17/joining-queries.html)
with significant limitations:
+
+1.
**[Parent-child](https://www.elastic.co/guide/en/elasticsearch/reference/8.17/parent-join.html)**
relationships and has_child / has_parent queries: Simulate JOINs by
establishing parent-child relationships within a single index. Child documents
store the parent document’s ID. `has_child` queries first find matching child
documents, then retrieve their parent documents via the stored parent IDs.
`has_parent` queries reverse this logic. It's complex and Elasticsearch
explicitly warns a [...]
+ > We don’t recommend using multiple levels of relations to replicate a
relational model. Each level of relation adds an overhead at query time in
terms of memory and computation. For better search performance, denormalize
your data instead.
+2. **[Terms
lookup](https://www.elastic.co/guide/en/elasticsearch/reference/8.17/query-dsl-terms-query.html#query-dsl-terms-lookup)**:
Similar to an IN-subquery by fetching a value list from one index and using
it in a `terms` query on another. It's only suitable for
large-table-to-small-table JOINs (e.g., filtering a large dataset using a small
reference list), but performs very poorly for large-table-to-large-table JOINs
due to scalability issues.
+
+**Doris** provides comprehensive support for
[JOIN](https://doris.apache.org/docs/3.0/query-data/join/) operations,
including:
+
+- INNER JOIN
+- CROSS JOIN
+- LEFT / RIGHT / FULL OUTER JOIN
+- LEFT / RIGHT SEMI JOIN
+- LEFT / RIGHT ANTI JOIN
+
+Further more, **Doris’ query optimizer** adaptively selects optimal execution
plans for JOIN operations based on data characteristics and statistics,
including:
+
+- **Small-large table JOIN**:
+ - **Broadcast JOIN**: The smaller table is broadcast to all nodes for local
joins.
+- **Large-large table JOIN**:
+ - **Bucket Shuffle JOIN**: Used when the left table’s bucketing distribution
aligns with the JOIN key.
+ - **Colocate JOIN**: Applied when both the left and right tables share
identical bucketing distributions with the JOIN keys.
+ - **Runtime Filter**: Reduces data scanned in the left table by pushing down
predicates from the right table using runtime-generated filters.
+
+This intelligent optimization ensures efficient JOIN execution across diverse
data scales and distributions, including
[TPC-H](https://doris.apache.org/docs/3.0/benchmark/tpch/) and
[TPC-DS](https://doris.apache.org/docs/3.0/benchmark/tpcds) benchmarks.
+
+#### Lakehouse
+
+Data warehouses addresses the need for fast data analysis, while data lakes
are good at data storage and management. The integration of them, known as
"[lakehouse](https://doris.apache.org/docs/3.0/lakehouse/lakehouse-overview)",
is to facilitate the seamless integration and free flow of data between the
data lake and data warehouse. It enables users to leverage the analytic
capabilities of the data warehouse while harnessing the data management power
of the data lake.
+
+
+
+Apache Doris can work as a data lakehouse with its [Multi
Catalog](https://doris.apache.org/docs/3.0/lakehouse/lakehouse-overview#multi-catalog)
feature. It can access databases and data lakes including Apache Hive, Apache
Iceberg, Apache Hudi, Apache Paimon, LakeSoul, Elasticsearch, MySQL, Oracle,
and SQLServer. It also supports Apache Ranger for privilege management.
+
+Elasticsearch does not support querying external data, and of course, it does
not support lakehouse either.
+
+### Query performance
+
+**Apache Doris** has been extensively optimized for multiple scenarios, so it
can deliver high performance in many use cases. For example, Doris can achieve
tens of thousands of QPS for high-concurrency point queries, and it delivers
industry-leading performance in aggregation analysis on a global scale.
+
+**Elasticsearch** is good at point queries (retrieving just a small amount of
data). However, it might struggle with complex analytical workloads.
+
+[Elasticsearch httplogs](https://elasticsearch-benchmarks.elastic.co/) and the
Microsoft Azure
[logsbench](https://gigaom.com/report/log-data-analytics-testing/) are
benchmarks for log storage and search. Both tests show that Doris is about 3~4
times faster than Elasticsearch in data writing, but only uses 1/6~1/4 of the
storage space that Elasticsearch uses. Then for data queries, Doris is more
than 2 times faster than Elasticsearch.
+
+
+
+[ClickBench](https://benchmark.clickhouse.com/#eyJzeXN0ZW0iOnsiQWxsb3lEQiI6ZmFsc2UsIkF0aGVuYSAocGFydGl0aW9uZWQpIjpmYWxzZSwiQXRoZW5hIChzaW5nbGUpIjpmYWxzZSwiQXVyb3JhIGZvciBNeVNRTCI6ZmFsc2UsIkF1cm9yYSBmb3IgUG9zdGdyZVNRTCI6ZmFsc2UsIkJ5Q29uaXR5IjpmYWxzZSwiQnl0ZUhvdXNlIjpmYWxzZSwiY2hEQiI6ZmFsc2UsIkNpdHVzIjpmYWxzZSwiQ2xpY2tIb3VzZSBDbG91ZCAoYXdzKSI6ZmFsc2UsIkNsaWNrSG91c2UgQ2xvdWQgKGdjcCkiOmZhbHNlLCJDbGlja0hvdXNlIChkYXRhIGxha2UsIHBhcnRpdGlvbmVkKSI6ZmFsc2UsIkNsaWNrSG91c2UgKGRhdGEgbGFrZSwgc2luZ2xlK
[...]
+
+
+
+## Comparison Summary
+
+In summary, Doris follows Apache License 2.0, which is a highly open license
to ensure that Doris remains truly open and will continue to uphold such
openness in the future.
+
+Secondly, Doris supports both compute-storage coupled and decoupled mode,
while Elasticsearch only supports the former, which enable more powerful
elasticity and resource isolation.
+
+Thirdly, Doris provides high performance in data ingestion. It is usually 3~5
times faster than Elasticsearch.
+
+In terms of storage, compared to Elasticsearch, Doris can reduce storage costs
by 70% or more. It is also 10 times faster than Elasticsearch in data updates.
+
+As for data queries, Doris outperforms Elasticsearch by a lot. It also
provides analytic capabilities that Elasticsearch does have, including
multi-table JOIN, materialized views, and data lakehouse.
+
+
+
+
+
+
+
+## Use cases
+
+Many users have replaced Elasticsearch with Apache Doris in their production
environments and received exciting results. I will introduce some user stories
from the fields of observability, cyber security, and real-time business
analysis.
+
+### Observability
+
+**User A: a world-famous short video provider**
+
+- Daily incremental data: 800 billion rows (500 TB)
+- Average write throughput: 10 million row/s (60GB/s)
+- Peak write throughput: 30 million row/s (90GB/s)
+
+Apache Doris supports logging and tracing data storage for this tech giant and
meets the data import performance requirements for nearly all use cases within
the company.
+
+
+
+**User B: NetEase - one of the World's Highest-Yielding Game Companies**
+
+- Replacing Elasticsearch with Apache Doris for log analysis: reducing storage
consumption by 2/3 and achieving 10X query performance
+- Replacing InfluxDB with Apache Doris for time-series data analysis: saving
50% of server resources and reducing storage consumption by 67%
+
+
+
+**User C: an observability platform provider**
+
+Apache Doris offers a special data type,
[VARIANT](https://doris.apache.org/blog/variant-in-apache-doris-2.1), to handle
semi-structured data in log and tracing, reducing costs by 70% and delivering
2~3 times faster full-text search performance compared to the
Elasticsearch-based solution.
+
+
+
+### Cyber security
+
+**User A: QAX - a listed company & leading cyber security leader**
+
+The Doris-based security logging solution uses 40% less storage space,
delivers 2X faster write performance, and supports full-text search,
aggregation analysis, and multi-table JOIN capabilities in one database system.
+
+
+
+**User B: a payment platform with nearly 600 million registered users**
+
+As a unified security data storage solution, Apache Doris delivers 4X faster
write speeds, 3X better query performance, and saves 50% storage space compared
to the previous architecture with diverse tech stacks using Elasticsearch, Hive
and Presto.
+
+
+
+**User C: a leading cyber security solution provider**
+
+Compared to Elasticsearch, Doris delivers 2 times faster write speeds, 4 times
better query performance, and a 4 times data compression ratio.
+
+
+
+### Business analysis
+
+**User A: a world-leading live e-commerce company**
+
+The user previously relied on Elasticsearch to handle online queries for their
live stream detail pages, but they faced big challenges in cost and
concurrency. After migrating to Apache Doris, they achieve:
+
+- 3 times faster real-time writes: 30w/s -> 100w/s
+- 4 times higher query concurrency: 500QPS -> 2000QPS
+
+
+
+**User B: Tencent Music Entertainment**
+
+Previously, TME content library used both Elasticsearch and ClickHouse to meet
their needs for data searching and analysis, but managing two separate systems
was complex and inefficient. With Doris, they are able to unify the two systems
into one single platform to support both data searching and analysis. The new
architecture delivers 4X faster write speeds, reduces storage costs by 80%, and
supports complex analytical operations.
+
+
+
+**User C: a web browser provider with 600 million users**
+
+After migrating to Apache Doris for a unified solution for log storage and
report analysis, the company doubled its aggregation analysis efficiency,
reduced storage consumption by 60%, and cut SQL development time by half.
+
+
+
+## Taking Apache Doris to the next level
+
+
+
+For the Apache Doris community developers, the path to making Doris good
enough to replace Elasticsearch wasn't easy. In 2022, we started adding
inverted index capabilities to Doris. At that time, this decision was met with
skepticism. Many viewed inverted indexes as a feature exclusive to
Elasticsearch, a domain few in the industry dared to venture into.
Nevertheless, we went with it, and today we can confidently say that we have
succeeded.
+
+In 2022, we developed this feature from the ground up, and after a year of
dedicated effort, we open-sourced it. Initially, we had only one user, QAX, who
was willing to test and adopt the feature. We are deeply grateful to them for
their early support during this pivotal stage.
+
+By 2023, the value of Doris with inverted indexes became increasingly evident,
leading to broader adoption by about 10 companies.
+
+The growth momentum has continued, and as of 2024, we are experiencing rapid
expansion, with over 100 companies now leveraging Doris to replace
Elasticsearch.
+
+Looking ahead, I am very much looking forward to what 2025 will bring. This
progress, advancing from the ground up to such significant milestones, has been
made possible by the incredible support from the Doris community users and
developers. We encourage everyone to join the [Apache Doris Slack
community](https://join.slack.com/t/apachedoriscommunity/shared_invite/zt-2zlwvmzon-NIb2rz50rIhcflGAFpYjDQ)
and join the dedicated channel
[#elasticsearch-to-doris](https://apachedoriscommunity.s [...]
+
+More on Apache Doris:
+
+- [Apache Doris for log and time series data analysis in NetEase, why not
Elasticsearch and
InfluxDB?](https://doris.apache.org/blog/apache-doris-for-log-and-time-series-data-analysis-in-netease)
+- [From Elasticsearch to Apache Doris: upgrading an observability
platform](https://doris.apache.org/blog/from-elasticsearch-to-apache-doris-upgrading-an-observability-platform)
+- [Log Analysis: How to Digest 15 Billion Logs Per Day and Keep Big Queries
Within 1
Second](https://doris.apache.org/blog/Log-Analysis-How-to-Digest-15-Billion-Logs-Per-Day-and-Keep-Big-Queries-Within-1-Second)
+- [Replacing Apache Hive, Elasticsearch and PostgreSQL with Apache
Doris](https://doris.apache.org/blog/Replacing-Apache-Hive-Elasticsearch-and-PostgreSQL-with-Apache-Doris)
+- [Log Analysis: Elasticsearch VS Apache
Doris](https://doris.apache.org/blog/Building-A-Log-Analytics-Solution-10-Times-More-Cost-Effective-Than-Elasticsearch)
+- [A Deep Dive into Inverted Index in Apache
Doris](https://doris.apache.org/blog/inverted-index-accelerates-text-searches-by-40-time-apache-doris)
+- [VARIANT in Apache Doris 2.1.0: a new data type 8 times faster than JSON for
semi-structured data
analysis](https://doris.apache.org/blog/variant-in-apache-doris-2.1)
+
+Connect with me on [Linkedin](https://www.linkedin.com/in/kang-xiao-441740316/)
+
+Apache Doris on [GitHub](https://github.com/apache/doris)
+
+Apache Doris [Website]( https://doris.apache.org)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/constant/newsletter.data.ts b/src/constant/newsletter.data.ts
index 5ad7e2dd7d4..4d115713ac5 100644
--- a/src/constant/newsletter.data.ts
+++ b/src/constant/newsletter.data.ts
@@ -8,16 +8,16 @@ export const NEWSLETTER_DATA = [
},
{
tags: ['Release Note'],
- title: "Apache Doris 3.0.4 Released",
- content: `This version introduces continuous upgrades and enhancements
in several key areas, including Lakehouse, Storage Efficiency, Compute-Storage
Separation, Query Optimizer and Asynchronous Materialized Views, and more.`,
- image: '3.0.4.jpg',
+ title: "Apache Doris 2.1.9 Released",
+ content: `This version features improved SQLHash calculation, enhanced
query results accuracy, and new metrics for better storage management. This
update also resolves critical bugs across multiple areas for a more robust data
management experience. `,
+ image: '2.1.9.jpg',
},
{
- tags: ['Best Practice'],
- title: "Scaling Bitcoin data to billions of records with Apache Doris:
our journey to auto-partitioning",
- content: `To power lightning-fast queries and ensure the Deep Dive
dashboards deliver real-time insights, Ortege relies on Apache Doris. A crucial
feature they embrace is Auto Partition.`,
- to:
'/blog/ortege-studio-1-scaling-bitcoin-data-to-billions-of-records',
- image: 'ortege-1.jpg',
+ tags: ['Tech Sharing'],
+ title: "Why Apache Doris is a Better Alternative to Elasticsearch for
Real-Time Analytics",
+ content: `The comparison in this post will focus on the real-time
analytics capabilities of Apache Doris and Elasticsearch from a user-oriented
perspective`,
+ to:
'/blog/why-apache-doris-is-best-alternatives-for-real-time-analytics',
+ image: 'es-alternatives/Alternative-to-Elasticsearch.jpg',
},
{
tags: ['Best Practice'],
diff --git a/static/images/2.1.9.jpg b/static/images/2.1.9.jpg
new file mode 100644
index 00000000000..ca8384dd567
Binary files /dev/null and b/static/images/2.1.9.jpg differ
diff --git a/static/images/es-alternatives/Alternative-to-Elasticsearch.jpg
b/static/images/es-alternatives/Alternative-to-Elasticsearch.jpg
new file mode 100644
index 00000000000..bc4fd5e7b84
Binary files /dev/null and
b/static/images/es-alternatives/Alternative-to-Elasticsearch.jpg differ
diff --git a/static/images/es-alternatives/Business-analysis-2.png
b/static/images/es-alternatives/Business-analysis-2.png
new file mode 100644
index 00000000000..cc6ffe7cfb3
Binary files /dev/null and
b/static/images/es-alternatives/Business-analysis-2.png differ
diff --git a/static/images/es-alternatives/Business-analysis-3.png
b/static/images/es-alternatives/Business-analysis-3.png
new file mode 100644
index 00000000000..ad10f9ca31c
Binary files /dev/null and
b/static/images/es-alternatives/Business-analysis-3.png differ
diff --git a/static/images/es-alternatives/Business-analysis.png
b/static/images/es-alternatives/Business-analysis.png
new file mode 100644
index 00000000000..59455f0b637
Binary files /dev/null and
b/static/images/es-alternatives/Business-analysis.png differ
diff --git a/static/images/es-alternatives/Cyber-security-2.png
b/static/images/es-alternatives/Cyber-security-2.png
new file mode 100644
index 00000000000..95360572084
Binary files /dev/null and b/static/images/es-alternatives/Cyber-security-2.png
differ
diff --git a/static/images/es-alternatives/Cyber-security-3.png
b/static/images/es-alternatives/Cyber-security-3.png
new file mode 100644
index 00000000000..d7a4f153467
Binary files /dev/null and b/static/images/es-alternatives/Cyber-security-3.png
differ
diff --git a/static/images/es-alternatives/Cyber-security.png
b/static/images/es-alternatives/Cyber-security.png
new file mode 100644
index 00000000000..63e93431f18
Binary files /dev/null and b/static/images/es-alternatives/Cyber-security.png
differ
diff --git a/static/images/es-alternatives/Flexible-schema.png
b/static/images/es-alternatives/Flexible-schema.png
new file mode 100644
index 00000000000..7366fa9c018
Binary files /dev/null and b/static/images/es-alternatives/Flexible-schema.png
differ
diff --git a/static/images/es-alternatives/Observability-2.png
b/static/images/es-alternatives/Observability-2.png
new file mode 100644
index 00000000000..f1a578aff04
Binary files /dev/null and b/static/images/es-alternatives/Observability-2.png
differ
diff --git a/static/images/es-alternatives/Observability-3.png
b/static/images/es-alternatives/Observability-3.png
new file mode 100644
index 00000000000..a68778d1fd7
Binary files /dev/null and b/static/images/es-alternatives/Observability-3.png
differ
diff --git a/static/images/es-alternatives/Observability.png
b/static/images/es-alternatives/Observability.png
new file mode 100644
index 00000000000..f2e28532789
Binary files /dev/null and b/static/images/es-alternatives/Observability.png
differ
diff --git a/static/images/es-alternatives/Query-performance-2.png
b/static/images/es-alternatives/Query-performance-2.png
new file mode 100644
index 00000000000..44685caed31
Binary files /dev/null and
b/static/images/es-alternatives/Query-performance-2.png differ
diff --git a/static/images/es-alternatives/Query-performance.png
b/static/images/es-alternatives/Query-performance.png
new file mode 100644
index 00000000000..f17cf807e11
Binary files /dev/null and
b/static/images/es-alternatives/Query-performance.png differ
diff --git a/static/images/es-alternatives/Real-time-queries.png
b/static/images/es-alternatives/Real-time-queries.png
new file mode 100644
index 00000000000..01e2209bedc
Binary files /dev/null and
b/static/images/es-alternatives/Real-time-queries.png differ
diff --git a/static/images/es-alternatives/System-architecture-2.png
b/static/images/es-alternatives/System-architecture-2.png
new file mode 100644
index 00000000000..993ccc4e9ad
Binary files /dev/null and
b/static/images/es-alternatives/System-architecture-2.png differ
diff --git a/static/images/es-alternatives/System-architecture-3.png
b/static/images/es-alternatives/System-architecture-3.png
new file mode 100644
index 00000000000..9afe990ce6c
Binary files /dev/null and
b/static/images/es-alternatives/System-architecture-3.png differ
diff --git a/static/images/es-alternatives/System-architecture.jpeg
b/static/images/es-alternatives/System-architecture.jpeg
new file mode 100644
index 00000000000..d561feb5f22
Binary files /dev/null and
b/static/images/es-alternatives/System-architecture.jpeg differ
diff --git
a/static/images/es-alternatives/Taking-Apache-Doris-to-the-next-level.png
b/static/images/es-alternatives/Taking-Apache-Doris-to-the-next-level.png
new file mode 100644
index 00000000000..a639d8d7b69
Binary files /dev/null and
b/static/images/es-alternatives/Taking-Apache-Doris-to-the-next-level.png differ
diff --git a/static/images/es-alternatives/comparisons-2.png
b/static/images/es-alternatives/comparisons-2.png
new file mode 100644
index 00000000000..34a664f227c
Binary files /dev/null and b/static/images/es-alternatives/comparisons-2.png
differ
diff --git a/static/images/es-alternatives/comparisons-3.png
b/static/images/es-alternatives/comparisons-3.png
new file mode 100644
index 00000000000..4eef077d582
Binary files /dev/null and b/static/images/es-alternatives/comparisons-3.png
differ
diff --git a/static/images/es-alternatives/comparisons.png
b/static/images/es-alternatives/comparisons.png
new file mode 100644
index 00000000000..048249feac1
Binary files /dev/null and b/static/images/es-alternatives/comparisons.png
differ
diff --git a/static/images/es-alternatives/lakehouse.png
b/static/images/es-alternatives/lakehouse.png
new file mode 100644
index 00000000000..df6b6ca2557
Binary files /dev/null and b/static/images/es-alternatives/lakehouse.png differ
diff --git a/static/images/es-alternatives/write-performance.png
b/static/images/es-alternatives/write-performance.png
new file mode 100644
index 00000000000..7ee3c80214c
Binary files /dev/null and
b/static/images/es-alternatives/write-performance.png differ
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]