SQL 和 Elasticsearch 概念映射
编辑SQL 和 Elasticsearch 概念映射
编辑虽然 SQL 和 Elasticsearch 使用不同的术语来描述数据组织方式(以及不同的语义),但本质上它们的目的是相同的。
所以让我们从最基础的部分开始;大致如下:
SQL | Elasticsearch | 描述 |
---|---|---|
|
|
在这两种情况下,在最低级别,数据都存储在命名的条目中,这些条目具有各种数据类型,并包含一个值。SQL 将此类条目称为列,而 Elasticsearch 称为字段。请注意,在 Elasticsearch 中,一个字段可以包含多个相同类型的值(本质上是一个列表),而在 SQL 中,一个列只能包含该类型一个值。Elasticsearch SQL 会尽最大努力保留 SQL 语义,并根据查询拒绝那些返回多个值的字段的查询。 |
|
|
|
|
|
SQL 或 Elasticsearch 查询执行的目标。 |
|
隐式 |
在 RDBMS 中, |
|
|
在 SQL 中, |
|
|
传统上,在 SQL 中,集群指的是包含多个 虽然 RDBMS 倾向于只有一个运行实例,在一个单机上(不是分布式的),但 Elasticsearch 则反其道而行之,默认情况下是分布式和多实例的。 此外,Elasticsearch 单个集群:: 多个 Elasticsearch 实例,通常分布在多台机器上,在同一个命名空间内运行。多个集群:: 多个集群,每个集群都有自己的命名空间,并以联合方式相互连接(请参阅跨集群搜索)。 |
可以看出,虽然概念之间的映射并非完全一一对应,语义也略有不同,但共同点比差异更多。事实上,由于 SQL 的声明性,许多概念可以透明地跨越 Elasticsearch,并且这两个术语很可能在本文档的其余部分中互换使用。