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 移动,并且这两种术语可能会在其余材料中互换使用。