> For the complete documentation index, see [llms.txt](https://glink.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://glink.gitbook.io/docs/master.md).

# Introduction

什么是 Glink?

Glink（**G**eographic F**link**）是Flink在空间数据处理领域的扩展，为 Flink 增加了兼容 OGC 标准的空间数据类型。Glink 在 `DataStream` API 的基础之上构建了一层 `SpatialDataStream` API，增加了支持空间数据操作、处理和分析的算子；并在 SQL API 上扩展了符合 SQL/MM Spatial 标准的空间处理函数。

## Glink 使用案例

Glink 主要用于带有空间属性的流式数据的实时或近实时处理，目前支持的功能如下下：

* Spatial Join
  * Spatial Dimension Join
  * Spatial Window Join
  * Spatial Interval Join
* Spatial KNN
* Spatial Heatmap

## Glink架构

Glink 在 Flink 的基础之上增加了 Spatial Data Stream Layer、Spatial SQL Layer 和 Spatial Stream Processing Layer。最终提供了基于 `SpatialDataStream` 的 Java API，并最大程度地支持 Spatial SQL API。其中，Spatial Data Stream Layer构建在 Flink `DataStream` API的基础之上，提供空间敏感的数据索引和路由策略，并对外提供空间操作相关算子；Spatial Stream Processing Layer包含 Glink 的三种典型应用；Spatial API Layer 提供两套使用 Glink 的 API，Spatial SQL API 允许用户直接使用 SQL 和 Glink 提供的空间扩展函数进行相关操作，Java API 允许用户编写 Java 代码调用 `SpatialDataStream` API 执行相应功能。

![Glink Architecture](/files/-M_-ZtgIMMnzlos4Meoq)
