偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Elasticsearch 使用誤區(qū)之將 Elasticsearch 視為關(guān)系數(shù)據(jù)庫!

開發(fā) 開發(fā)工具
Elasticsearch 常被誤解為 MySQL 或者 PostgreSQL 等關(guān)系數(shù)據(jù)庫的直接替代品,用戶除了直接替代使用外更看其全文搜索和快速聚合的能力。

Elasticsearch 是一個強(qiáng)大的工具,尤其在全文檢索、實(shí)時分析、機(jī)器學(xué)習(xí)、地理數(shù)據(jù)應(yīng)用、日志和事件數(shù)據(jù)分析、安全信息和事件管理等場景有大量的應(yīng)用。

然而,Elastic Stack 技術(shù)棧的選型及應(yīng)用效能取決于正確的使用方式。選型錯誤或者誤用 Elasticsearch 可能會導(dǎo)致擴(kuò)展性問題、性能問題(如為解決一個問題使用非常復(fù)雜的腳本導(dǎo)致性能極差)等,從而使整體體驗感變差。所以,本文區(qū)別于之前的正向講解的方式,更多的講解反例或者負(fù)面應(yīng)用案例?!耙允窞殍b”,以便于大家更好地使用 Elasticsearch。

本系列文章會有 10 幾篇左右,一篇一個知識點(diǎn)講解 Elasticsearch 使用誤區(qū)解讀,敬請期待!

誤區(qū)1:將 Elasticsearch 視為關(guān)系數(shù)據(jù)庫

Elasticsearch 常被誤解為 MySQL 或者 PostgreSQL 等關(guān)系數(shù)據(jù)庫的直接替代品,用戶除了直接替代使用外更看其全文搜索和快速聚合的能力。

然而,咱們必須清晰的認(rèn)知:Elasticsearch 設(shè)計初衷不是處理復(fù)雜事務(wù)和關(guān)系數(shù)據(jù)模型的。

我們從下面幾個維度逐一展開討論:

1、該不該選型 Elasticsearch ?

個人建議先了解 Elasticsearch 的適用場景以及不適用場景,這樣能清楚 Elastic Stack 技術(shù)棧更適合哪些業(yè)務(wù)需求。

例如,咱們文章之前圖解的六大應(yīng)用場景是非常適合的。然而,對于需要處理復(fù)雜事務(wù)、多表聯(lián)查操作和高一致性要求的應(yīng)用,如銀行系統(tǒng)的交易處理和ERP系統(tǒng)等,Elasticsearch 則不太適合。

圖片圖片

Elasticsearch 更適用場景:

圖片圖片

圖片圖片


通過對比這些場景,反觀自己的業(yè)務(wù)需求,就能判斷是否應(yīng)該選型 Elasticsearch 甚至 Elastic Stack 作為技術(shù)棧。

2、理解 Elasticsearch 的設(shè)計

圖片來自官方博客圖片來自官方博客

Elasticsearch 是一種面向文檔的搜索引擎,專為快速搜索大量數(shù)據(jù)而設(shè)計。

Elasticsearch 基于 Apache Lucene 構(gòu)建,提供了強(qiáng)大的全文搜索、分析和數(shù)據(jù)聚合功能。

以下是 Elasticsearch 的主要特點(diǎn):

  • 全文搜索:Elasticsearch 提供了高效的全文搜索功能,能夠快速檢索和匹配大規(guī)模文本數(shù)據(jù)。
  • 分布式架構(gòu):Elasticsearch 采用分布式架構(gòu),能夠水平橫向擴(kuò)展,處理海量數(shù)據(jù)(PB級甚至以上都不是問題)和高并發(fā)請求。
  • 數(shù)據(jù)分析:Elasticsearch 支持復(fù)雜的聚合查詢,可以做多維度的快速統(tǒng)計和分析數(shù)據(jù),但聚合、去重等結(jié)果不是精準(zhǔn)的。有精準(zhǔn)需求的企業(yè)場景也要評估和掂量一下。
  • ......

圖片來自官方博客圖片來自官方博客

如前所述,Elasticsearch 并不是設(shè)計用來處理關(guān)系數(shù)據(jù)和事務(wù)的。它的主要優(yōu)勢在于分析和搜索能力,而不是數(shù)據(jù)關(guān)系的嚴(yán)格維護(hù)。

3、理解 Elasticsearch 與關(guān)系數(shù)據(jù)庫的比較

關(guān)系數(shù)據(jù)庫(如 MySQL、Oracle 及 PostgreSQL 等)和 Elasticsearch 之間有幾個關(guān)鍵區(qū)別:

3.1 數(shù)據(jù)模型比較

  • 關(guān)系數(shù)據(jù)庫使用結(jié)構(gòu)化的表和行來存儲數(shù)據(jù),并通過外鍵和約束來維護(hù)數(shù)據(jù)的一致性。
  • Elasticsearch 則使用文檔(document,本質(zhì)是 JSON 格式)來存儲數(shù)據(jù),每個文檔可以包含不同的字段和數(shù)據(jù)類型。

特性

關(guān)系數(shù)據(jù)庫

Elasticsearch

數(shù)據(jù)存儲結(jié)構(gòu)

結(jié)構(gòu)化的表和行

文檔

數(shù)據(jù)類型

每個表的字段類型固定

每個文檔可以包含不同的字段和數(shù)據(jù)類型

數(shù)據(jù)一致性

通過外鍵和約束來維護(hù)數(shù)據(jù)的一致性

不提供數(shù)據(jù)一致性保障

查詢能力

支持復(fù)雜的 SQL 查詢、事務(wù)和聯(lián)接操作

主要用于全文搜索和數(shù)據(jù)聚合

事務(wù)支持

完整的事務(wù)支持

不支持事務(wù)

性能優(yōu)化

索引、緩存和查詢優(yōu)化

分片、索引和緩存

主要優(yōu)勢

關(guān)系數(shù)據(jù)處理和數(shù)據(jù)一致性維護(hù)

快速搜索和高效的數(shù)據(jù)聚合

3.2 查詢能力比較

  • 關(guān)系數(shù)據(jù)庫支持復(fù)雜的 SQL 查詢、事務(wù)和多表關(guān)聯(lián)操作,以保證數(shù)據(jù)的一致性和完整性。
  • Elasticsearch 主要側(cè)重于全文搜索和數(shù)據(jù)聚合,不支持復(fù)雜的事務(wù)和多表關(guān)聯(lián)操作。

在關(guān)系數(shù)據(jù)庫中,我們可以使用復(fù)雜的 SQL 查詢、事務(wù)和多表關(guān)聯(lián)操作來保證數(shù)據(jù)的一致性和完整性。例如:

BEGIN TRANSACTION;

-- 更新訂單狀態(tài)
UPDATE orders
SET status = 'shipped'
WHERE order_id = 123;

-- 減少庫存
UPDATE products
SET stock = stock - 1
WHERE product_id = 456;

-- 記錄客戶活動
INSERT INTO customer_activity (customer_id, activity)
VALUES (789, 'Order 123 shipped');

COMMIT;

圖片圖片

上述事務(wù)示例能確保所有相關(guān)操作(更新訂單狀態(tài)、減少庫存和記錄客戶活動)要么全部成功,要么全部失敗,從而保證數(shù)據(jù)的一致性(事務(wù)的本質(zhì))。

在 Elasticsearch 中,我們主要側(cè)重于全文搜索和數(shù)據(jù)聚合分析,而不支持復(fù)雜的事務(wù)和多表關(guān)聯(lián)操作。

比如:用戶需求如下:

“想請教下大佬們,假設(shè) es 中 有兩個表,一個會員表,一個訂單表,如果想關(guān)聯(lián)查詢,例如查詢24年注冊的所有的會員的訂單總數(shù),通過什么方式能快速查詢?”

咱們文章做過剖析,Elasticsearch 不是一丁點(diǎn)也不支持多表關(guān)聯(lián),只是支持的力度有限,支持的形式核心有如下幾種:

  • 自己業(yè)務(wù)層面實(shí)現(xiàn)
  • Nested 嵌套數(shù)據(jù)類型
  • Join 父子文檔類型
  • 寬表冗余存儲
  • Enrich processor 預(yù)處理方式
責(zé)任編輯:武曉燕 來源: 銘毅天下Elasticsearch
相關(guān)推薦

2024-09-09 07:51:33

2023-10-10 11:18:42

Spring數(shù)據(jù)庫

2024-07-26 10:42:30

2018-10-15 13:57:38

Hadoop數(shù)據(jù)庫MySQL

2014-02-27 10:08:33

NoSQL

2024-09-26 14:33:15

2011-08-15 10:02:02

LEIDomino附件關(guān)系數(shù)據(jù)庫

2009-08-25 09:09:33

關(guān)系數(shù)據(jù)庫數(shù)據(jù)庫革命RDBMS

2009-05-05 09:27:06

云計算關(guān)系數(shù)據(jù)庫微軟

2011-10-11 17:07:12

數(shù)據(jù)庫Internet文件數(shù)據(jù)庫

2023-01-06 08:00:00

關(guān)系數(shù)據(jù)庫數(shù)據(jù)庫機(jī)器學(xué)習(xí)

2009-07-10 09:28:41

NoSQL關(guān)系數(shù)據(jù)庫

2023-10-16 13:26:00

RDBMS關(guān)系數(shù)據(jù)庫

2020-03-14 16:37:09

數(shù)據(jù)庫IT技術(shù)

2018-04-12 12:45:02

數(shù)據(jù)庫MySQL構(gòu)建架構(gòu)

2024-11-21 08:00:00

矢量數(shù)據(jù)庫人工智能

2021-06-04 07:31:58

數(shù)據(jù)庫MySQLHBase

2023-05-22 11:20:27

數(shù)據(jù)庫MySQL關(guān)系數(shù)據(jù)

2011-07-18 09:54:47

云計算分片關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫

2010-09-15 14:09:01

GraphDataba
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號