约定和术语
edit约定和术语
edit为了清晰起见,建立某些词语背后的含义是很重要的,因为相同的词语可能会对不同读者传达不同的含义,这取决于他们对SQL与Elasticsearch的熟悉程度。
本说明文档虽然力求完整,但假设读者对Elasticsearch和/或SQL有基本了解。如果情况并非如此,请继续阅读文档,但请做笔记并通过Elasticsearch主文档或通过开放的SQL资料中大量可用的资源来深入研究不清楚的主题(这里优秀的资源实在太多,无法一一列举)。
一般来说,正如名称所示,Elasticsearch SQL 提供了 SQL 接口到 Elasticsearch。因此,它尽可能遵循 SQL 术语和约定。然而,背后的引擎本身是 Elasticsearch,Elasticsearch SQL 正是为此而创建的,因此,在 SQL 中不可用或无法正确映射的功能或概念会出现在 Elasticsearch SQL 中。 最后但同样重要的是,Elasticsearch SQL 尽量遵循 最小惊奇原则,尽管正如世界上所有事物一样,一切都是相对的。
跨SQL和Elasticsearch的映射概念
edit虽然SQL和Elasticsearch在数据组织方式(以及不同的语义)上有不同的术语,但本质上它们的目的是相同的。
所以让我们从底部开始;这些大致是:
SQL | Elasticsearch | Description |
---|---|---|
|
|
在这两种情况下,在最底层,数据存储在具有各种数据类型的命名条目中,包含一个值。SQL 称这样的条目为列,而 Elasticsearch 称其为字段。 请注意,在 Elasticsearch 中,一个字段可以包含多个相同类型的值(本质上是一个列表),而在 SQL 中,一个列只能包含恰好一个该类型的值。 Elasticsearch SQL 将尽最大努力保留 SQL 语义,并根据查询拒绝那些返回包含多个值的字段的查询。 |
|
|
|
|
|
查询所针对的目标,无论是SQL还是Elasticsearch。 |
|
隐式 |
在关系数据库管理系统(RDBMS)中, |
|
|
在SQL中, |
|
|
传统上在SQL中,集群指的是包含多个 虽然关系型数据库管理系统(RDBMS)通常只有一个运行实例,位于单台机器上(非分布式),但Elasticsearch则采取了相反的方式,默认情况下是分布式的,并且是多实例的。 此外,一个 Elasticsearch 单个集群:: 多个 Elasticsearch 实例通常分布在多台机器上,运行在同一个命名空间内。 多个集群:: 多个集群,每个集群都有自己的命名空间,通过联邦设置相互连接(参见 跨集群搜索)。 |
正如人们所见,尽管概念之间的映射并不完全是一对一的,语义也有些不同,但共同点比差异更多。事实上,由于SQL的声明性质,许多概念可以透明地在Elasticsearch之间移动,并且在接下来的内容中,两者的术语可能会互换使用。