0. 简介

为满足部分客户在云上做Geometry数据的分析需求,阿里云Data Lake Analytics(以下简称:DLA)支持多种格式的地理空间数据处理函数,符合Open Geospatial Consortium’s (OGC) OpenGIS规范,支持的常用数据格式包括:

  • WKT
  • WKB
  • GeoJson
  • ESRI Geometry Object Json
  • ESRI Shape

DLA采用4326坐标系标准,EPSG 4326使用经纬度坐标,属于地理坐标系。GPS采用的就是这个坐标系。

1. WKT数据

详细描述:
https://en.wikipedia.org/wiki/Well-known_text
http://www.opengeospatial.org/standards/wkt-crs

支持类似如下的WKT相关字符串。

  • POINT (0 0)
  • LINESTRING (0 0, 1 1, 1 2)
  • POLYGON ((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1))
  • MULTIPOINT (0 0, 1 2)
  • MULTILINESTRING ((0 0, 1 1, 1 2), (2 3, 3 2, 5 4))
  • MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))
  • GEOMETRYCOLLECTION (POINT (2 3), LINESTRING (2 3, 3 4))

2. WKB数据

详细描述:https://en.wikipedia.org/wiki/Well-known_text#Well-known_binary

上述WKT数据和WKB的对应示例:

WKT WKB
POINT (0 0) 010100000000000000000000000000000000000000
LINESTRING (0 0, 1 1, 1 2) 01020000000300000000000000000000000000000000000000000000000000F03F000000000000F03F000000000000F03F0000000000000040
POLYGON ((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)) 01030000000200000005000000000000000000000000000000000000000000000000001040000000000000000000000000000010400000000000001040000000000000000000000000000010400000000000000000000000000000000005000000000000000000F03F000000000000F03F000000000000F03F0000000000000040000000000000004000000000000000400000000000000040000000000000F03F000000000000F03F000000000000F03F
MULTIPOINT (0 0, 1 2) 0104000000020000000101000000000000000000000000000000000000000101000000000000000000F03F0000000000000040
MULTILINESTRING ((0 0, 1 1, 1 2), (2 3, 3 2, 5 4)) 01050000000200000001020000000300000000000000000000000000000000000000000000000000F03F000000000000F03F000000000000F03F0000000000000040010200000003000000000000000000004000000000000008400000000000000840000000000000004000000000000014400000000000001040
MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1))) 01060000000200000001030000000200000005000000000000000000000000000000000000000000000000001040000000000000000000000000000010400000000000001040000000000000000000000000000010400000000000000000000000000000000005000000000000000000F03F000000000000F03F000000000000F03F0000000000000040000000000000004000000000000000400000000000000040000000000000F03F000000000000F03F000000000000F03F01030000000100000005000000000000000000F0BF000000000000F0BF00000000000000C0000000000000F0BF00000000000000C000000000000000C0000000000000F0BF00000000000000C0000000000000F0BF000000000000F0BF
GEOMETRYCOLLECTION (POINT (2 3), LINESTRING (2 3, 3 4)) 0107000000020000000101000000000000000000004000000000000008400102000000020000000000000000000040000000000000084000000000000008400000000000001040

3. GeoJson数据

GeoJson的详细描述:http://geojson.org/

4. ESRI Geometry Object Json数据

规范说明:http://resources.esri.com/help/9.3/arcgisserver/apis/REST/geometry.html

5. ESRI Shape二进制数据

规范说明:http://www.esri.com/LIBRARY/WHITEPAPERS/PDFS/SHAPEFILE.PDF

6. 函数列表

Name Description
ST_asText 将Geometry数据转成WKT格式的字符串数据。
ST_LineFromText 输入WKT格式的Line字符串数据,生成Line的Geometry数据。
ST_Point 从坐标系的坐标值(X, Y),生成对应的Point的Geometry数据。
ST_Polygon 输入WKT格式的Polygon字符串数据,生成Polygon的Geometry数据。
ST_Area 返回面或多面的面积。对于点、线,返回0.0。对于GeometryCollection,返回所有单个面积的和。
ST_GeometryFromText 输入WKT格式的字符串数据,生成Geometry数据。
ST_Buffer 获取几何对象和距离,然后返回表示围绕源对象的缓冲区的几何对象。
ST_Centroid 获取几何对象的中心点。
ST_CoordDim 返回几何对象的坐标值维度。
ST_Dimension 用于返回几何对象的维度。在这种情况下,维度是指长度和宽度。例如,点既没有长度也没有宽度,所以其维度为 0;而线只有长度却没有宽度,因此其维度为 1。
ST_IsClosed 判断Line或者MultiLine是否闭合。
ST_IsEmpty 判断几何对象是否为空。
ST_Length 计算Line或者MultiLine的长度。
ST_XMax 返回几何对象在坐标系中的最大X坐标值。
ST_XMin 返回几何对象在坐标系中的最小X坐标值。
ST_YMax 返回几何对象在坐标系中的最大Y坐标值。
ST_YMin 返回几何对象在坐标系中的最小Y坐标值。
ST_NumInteriorRing 以Polygon作为输入参数,并返回其内部环数。
ST_NumPoints 用于返回几何对象中的点(折点)数。
ST_IsRing 以Line作为输入参数,判断是否是环(如Line是闭合的)。
ST_StartPoint 用于返回Line的第一个点。
ST_EndPoint 用于返回Line的最后一个点。
ST_X 返回Point的X坐标。
ST_Y 返回Point的Y坐标。
ST_Boundary 输入一个几何对象,然后以几何对象形式返回其组合边界。
ST_Envelope 以多边形的形式返回几何对象的最小边界框。
ST_Difference 输入两个几何对象,然后返回表示两个源对象之差的几何对象。
ST_Distance 用于返回两个几何对象之间的距离。这一距离是两个几何对象的最近折点之间的距离。
ST_ExteriorRing 以Line形式返回面的外部环。
ST_Intersection 以两个几何对象作为输入参数,然后以二维几何对象的形式返回交集。
ST_SymDifference 返回表示两个几何对象间的点集对称差异的几何值对象。
ST_Contains 输入两个几何对象,判断第一个对象是否完全包含第二个对象。
ST_Crosses 以两个几何对象作为输入,如果这两个对象的交集生成的几何对象的维度小于两个源对象中的最大维度,则返回 1。交集对象所包含的点必须在两个源几何的内部,并且不等于其中任何一个源对象。否则,返回 0。
ST_Disjoint 输入两个几何对象,判断两个几何对象的交集是否为空集。
ST_Equals 判断两个几何对象是否完全相同。
ST_Intersects 判断两个几何对象的交集是否不生成空集。
ST_Overlaps 判断两个几何对象的交集生成的几何对象是否维度相同但不等于任一源对象。
ST_Relate 比较两个几何对象,判断是否满足“DE-9IM”模式(https://en.wikipedia.org/wiki/DE-9IM)矩阵字符串指定的条件。
ST_Touches 判断两个几何对象的公共点是否都不与两个几何对象的内部相交。
ST_Within 判断第一个几何对象是否完全位于第二个几何对象的范围内。
ST_asBinary 输入一个几何对象,然后返回其可识别的二进制WKB数据。
ST_GeometryFromWKBHexString 输入WKB的HEX字符串数据,返回对应的几何对象。
ST_pointFromWKBHexString 输入Point的WKB的HEX字符串数据,返回对应的Point几何对象。
ST_lineFromWKBHexString 输入Line的WKB的HEX字符串数据,返回对应的Line几何对象。
ST_polyFromWKBHexString 输入Polygon的WKB的HEX字符串数据,返回对应的Polygon几何对象。
ST_MPointFromWKBHexString 输入MultiPoint的WKB的HEX字符串数据,返回对应的MultiPoint几何对象。
ST_MLineFromWKBHexString 输入MultiLine的WKB的HEX字符串数据,返回对应的MultiLine几何对象。
ST_MPolyFromWKBHexString 输入MultiPolygon的WKB的HEX字符串数据,返回对应的MultiPolygon几何对象。
ST_GeometryFromWKB 输入WKB数据,返回对应的几何对象。
ST_pointFromWKB 输入Point的WKB数据,返回对应的Point几何对象。
ST_lineFromWKB 输入Line的WKB数据,返回对应的Line几何对象。
ST_polyFromWKB 输入Polygon的WKB数据,返回对应的Polygon几何对象。
ST_MPointFromWKB 输入MultiPoint的WKB数据,返回对应的MultiPoint几何对象。
ST_MLineFromWKB 输入MultiLine的WKB数据,返回对应的MultiLine几何对象。
ST_MPolyFromWKB 输入MultiPolygon的WKB数据,返回对应的MultiPolygon几何对象。
ST_GeometryFromGeoJson 输入GeoJson的字符串数据,返回对应的几何对象。
ST_GeometryFromJson 输入ESRI Geometry Object Json的字符串数据,返回对应的几何对象。
ST_asGeoJson 把几何对象转成GeoJson格式输出。
ST_asJson 把几何对象转成ESRI Geometry Object Json格式输出。
ST_GeometryFromEsriShape 输入ESRI Shape的二进制数据,返回对应的几何对象。
UDF_SYS_GEO_IN_CYCLE 仅适用于北半球:做基于地理位置的经纬度画圈
UDF_SYS_GEO_IN_RECTANGLE 仅适用于北半球:用于做基于地理位置的经纬度画矩形
UDF_SYS_GEO_DISTANCE 仅适用于北半球:用作一个经纬度列和一个固定的坐标点的距离计算

7. 函数定义与示例

  • ST_asText
ST_asText(GEOMETRY) -> VARCHAR

将Geometry数据转成WKT格式的字符串数据。

示例:

select ST_asText(ST_LineFromText('LINESTRING (0 0, 1 1, 1 2)'));

+----------------------------+
| _col0 |
+----------------------------+
| LINESTRING (0 0, 1 1, 1 2) |
+----------------------------+
  • ST_LineFromText
ST_LineFromText(VARCHAR) -> GEOMETRY

输入WKT格式的Line字符串数据,生成Line的Geometry数据。

示例:

select ST_asText(ST_LineFromText('LINESTRING (0 0, 1 1, 1 2)'));

+----------------------------+
| _col0 |
+----------------------------+
| LINESTRING (0 0, 1 1, 1 2) |
+----------------------------+
  • ST_Point
ST_Point(DOUBLE, DOUBLE) -> GEOMETRY

从坐标系的坐标值(X, Y),生成对应的Point的Geometry数据。

示例:

select ST_asText(ST_Point(30.2741500000,120.1551500000));

+----------------------------+
| _col0 |
+----------------------------+
| POINT (30.27415 120.15515) |
+----------------------------+
  • ST_Polygon
ST_Polygon(VARCHAR) -> GEOMETRY

输入WKT格式的Polygon字符串数据,生成Polygon的Geometry数据。

示例:

select ST_asText(ST_Polygon('POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))'));

+----------------------------------------------------------------+
| _col0 |
+----------------------------------------------------------------+
| POLYGON ((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1)) |
+----------------------------------------------------------------+
  • ST_Area
ST_Area(Geometry) -> DOUBLE

返回面或多面的面积。对于点、线,返回0.0。对于GeometryCollection,返回所有单个面积的和。

示例:

select ST_Area(ST_Polygon('POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))'));

+-------+
| _col0 |
+-------+
| 15.0 |
+-------+ select ST_Area(ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))')); +-------+
| _col0 |
+-------+
| 16.0 |
+-------+
  • ST_GeometryFromText
ST_GeometryFromText(VARCHAR) -> GEOMETRY

输入WKT格式的字符串数据,生成Geometry数据。

  • ST_Buffer
ST_Buffer(GEOMETRY, DOUBLE) -> GEOMETRY

获取几何对象和距离,然后返回表示围绕源对象的缓冲区的几何对象。

  • ST_Centroid
ST_Centroid(GEOMETRY) -> GEOMETRY

获取几何对象的中心点。

示例:

select ST_asText(ST_Centroid(ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))')));

+-----------------------+
| _col0 |
+-----------------------+
| POINT (1.8125 1.8125) |
+-----------------------+ select ST_asText(ST_Centroid(ST_GeometryFromText('LINESTRING (0 0, 1 1, 1 2)'))); +---------------+
| _col0 |
+---------------+
| POINT (0.5 1) |
+---------------+ select ST_asText(ST_Centroid(ST_GeometryFromText('POINT (0.5 1)'))); +---------------+
| _col0 |
+---------------+
| POINT (0.5 1) |
+---------------+ select ST_asText(ST_Centroid(ST_GeometryFromText('POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))'))); +---------------------------------------------+
| _col0 |
+---------------------------------------------+
| POINT (2.033333333333333 2.033333333333333) |
+---------------------------------------------+
  • ST_CoordDim
ST_CoordDim(GEOMETRY) -> BIGINT

返回几何对象的坐标值维度。

示例:

select ST_CoordDim(ST_GeometryFromText('POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))'));

+-------+
| _col0 |
+-------+
| 2 |
+-------+ select ST_CoordDim(ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))')); +-------+
| _col0 |
+-------+
| 2 |
+-------+ select st_coorddim(st_geometryfromtext('point Z (60.567222 -140.404 5959)')); +-------+
| _col0 |
+-------+
| 3 |
+-------+ select st_coorddim(st_geometryfromtext('point M (60.567222 -140.404 5250)')); +-------+
| _col0 |
+-------+
| 3 |
+-------+ select st_coorddim(st_geometryfromtext('point ZM (60.567222 -140.404 5959 5250)')); +-------+
| _col0 |
+-------+
| 4 |
+-------+
  • ST_Dimension
ST_Dimension(GEOMETRY) -> BIGINT

用于返回几何对象的维度。在这种情况下,维度是指长度和宽度。例如,点既没有长度也没有宽度,所以其维度为 0;而线只有长度却没有宽度,因此其维度为 1。

示例:

select ST_Dimension(ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'));

+-------+
| _col0 |
+-------+
| 2 |
+-------+
  • ST_IsClosed
ST_IsClosed(GEOMETRY) -> BOOLEAN

判断Line或者MultiLine是否闭合。

示例:

select ST_IsClosed(ST_GeometryFromText('LINESTRING (0 0, 1 1, 1 2)'));

+-------+
| _col0 |
+-------+
| 0 |
+-------+ select ST_IsClosed(ST_GeometryFromText('LINESTRING (0 0, 1 1, 1 2, 0 0)')); +-------+
| _col0 |
+-------+
| 1 |
+-------+ select ST_IsClosed(ST_GeometryFromText('MULTILINESTRING ((0 0, 1 1, 1 2), (2 3, 3 2, 5 4))')); +-------+
| _col0 |
+-------+
| 0 |
+-------+
  • ST_IsEmpty
ST_IsEmpty(GEOMETRY) -> BOOLEAN

判断几何对象是否为空。

示例:

select ST_IsEmpty(ST_GeometryFromText('LINESTRING (0 0, 1 1, 1 2, 0 0)'));

+-------+
| _col0 |
+-------+
| 0 |
+-------+ select ST_IsEmpty(null); +-------+
| _col0 |
+-------+
| NULL |
+-------+ SELECT ST_IsEmpty(ST_GeometryFromText('GEOMETRYCOLLECTION EMPTY')); +-------+
| _col0 |
+-------+
| 1 |
+-------+ SELECT ST_IsEmpty(ST_GeometryFromText('POLYGON EMPTY')); +-------+
| _col0 |
+-------+
| 1 |
+-------+
  • ST_Length
ST_Length(GEOMETRY) -> DOUBLE

计算Line或者MultiLine的长度。

示例:

SELECT ST_Length(ST_GeometryFromText('LINESTRING (0 0, 1 1, 1 2, 0 0)'));

+-------------------+
| _col0 |
+-------------------+
| 4.650281539872885 |
+-------------------+ SELECT ST_Length(ST_GeometryFromText('MULTILINESTRING ((0 0, 1 1, 1 2), (2 3, 3 2, 5 4))')); +-------------------+
| _col0 |
+-------------------+
| 6.656854249492381 |
+-------------------+
  • ST_XMax
ST_XMax(GEOMETRY) -> DOUBLE

返回几何对象在坐标系中的最大X坐标值。

示例:

SELECT ST_XMax(ST_GeometryFromText('MULTILINESTRING ((0 0, 1 1, 1 2), (2 3, 3 2, 5 4))'));

+-------+
| _col0 |
+-------+
| 5.0 |
+-------+ SELECT ST_XMax(ST_GeometryFromText('POINT (0.5 1)')); +-------+
| _col0 |
+-------+
| 0.5 |
+-------+
  • ST_XMin
ST_XMin(GEOMETRY) -> DOUBLE

返回几何对象在坐标系中的最小X坐标值。

示例:

SELECT ST_XMin(ST_GeometryFromText('MULTILINESTRING ((0 0, 1 1, 1 2), (2 3, 3 2, 5 4))'));

+-------+
| _col0 |
+-------+
| 0.0 |
+-------+ SELECT ST_XMin(ST_GeometryFromText('POINT (0.5 1)')); +-------+
| _col0 |
+-------+
| 0.5 |
+-------+
  • ST_YMax
ST_YMax(GEOMETRY) -> DOUBLE

返回几何对象在坐标系中的最大Y坐标值。

示例:

SELECT ST_YMax(ST_GeometryFromText('MULTILINESTRING ((0 0, 1 1, 1 2), (2 3, 3 2, 5 4))'));

+-------+
| _col0 |
+-------+
| 4.0 |
+-------+ SELECT ST_YMax(ST_GeometryFromText('POINT (0.5 1)')); +-------+
| _col0 |
+-------+
| 1.0 |
+-------+
  • ST_YMin
ST_YMin(GEOMETRY) -> DOUBLE

返回几何对象在坐标系中的最小Y坐标值。

示例:

SELECT ST_YMin(ST_GeometryFromText('MULTILINESTRING ((0 0, 1 1, 1 2), (2 3, 3 2, 5 4))'));

+-------+
| _col0 |
+-------+
| 0.0 |
+-------+ SELECT ST_YMin(ST_GeometryFromText('POINT (0.5 1)')); +-------+
| _col0 |
+-------+
| 1.0 |
+-------+
  • ST_NumInteriorRing
ST_NumInteriorRing(GEOMETRY) -> BIGINT

以Polygon作为输入参数,并返回其内部环数。

示例:

SELECT ST_NumInteriorRing(ST_GeometryFromText('POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))'));

+-------+
| _col0 |
+-------+
| 1 |
+-------+
  • ST_NumPoints
ST_NumPoints(GEOMETRY) -> BIGINT

用于返回几何对象中的点(折点)数。

示例:

SELECT ST_NumPoints(ST_GeometryFromText('POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))'));

+-------+
| _col0 |
+-------+
| 8 |
+-------+ SELECT ST_NumPoints(ST_GeometryFromText('POLYGON EMPTY')); +-------+
| _col0 |
+-------+
| 0 |
+-------+ SELECT ST_NumPoints(ST_GeometryFromText('POINT (0.5 1)')); +-------+
| _col0 |
+-------+
| 1 |
+-------+
  • ST_IsRing
ST_IsRing(GEOMETRY) -> BOOLEAN

以Line作为输入参数,判断是否是环(如Line是闭合的)。

示例:

select ST_IsRing(ST_GeometryFromText('LINESTRING (0 0, 1 1, 1 2)'));

+-------+
| _col0 |
+-------+
| 0 |
+-------+ select ST_IsRing(ST_GeometryFromText('LINESTRING (0 0, 1 1, 1 2, 0 0)')); +-------+
| _col0 |
+-------+
| 1 |
+-------+
  • ST_StartPoint
ST_StartPoint(GEOMETRY) -> GEOMETRY

用于返回Line的第一个点。

示例:

select ST_asText(ST_StartPoint(ST_GeometryFromText('LINESTRING (0 0, 1 1, 1 2, 0 0)')));

+-------------+
| _col0 |
+-------------+
| POINT (0 0) |
+-------------+
  • ST_EndPoint
ST_EndPoint(GEOMETRY) -> GEOMETRY

用于返回Line的最后一个点。

示例:

select ST_asText(ST_EndPoint(ST_GeometryFromText('LINESTRING (0 0, 1 1, 1 2)')));

+-------------+
| _col0 |
+-------------+
| POINT (1 2) |
+-------------+
  • ST_X
ST_X(GEOMETRY) -> DOUBLE

返回Point的X坐标。

示例:

select ST_X(ST_GeometryFromText('POINT (0.5 1)'));

+-------+
| _col0 |
+-------+
| 0.5 |
+-------+
  • ST_Y
ST_Y(GEOMETRY) -> DOUBLE

返回Point的Y坐标。

示例:

select ST_Y(ST_GeometryFromText('POINT (0.5 1)'));

+-------+
| _col0 |
+-------+
| 1.0 |
+-------+
  • ST_Boundary
ST_Boundary(GEOMETRY) -> GEOMETRY

输入一个几何对象,然后以几何对象形式返回其组合边界。

示例:

select ST_asText(ST_Boundary(ST_GeometryFromText('POINT (0.5 1)')));

+-------------+
| _col0 |
+-------------+
| POINT EMPTY |
+-------------+ select ST_asText(ST_Boundary(ST_GeometryFromText('LINESTRING (0 0, 1 1, 1 2)'))); +---------------------------+
| _col0 |
+---------------------------+
| MULTIPOINT ((0 0), (1 2)) |
+---------------------------+ select ST_asText(ST_Boundary(ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'))); +-------------------------------------------------------------------------------------------------------------+
| _col0 |
+-------------------------------------------------------------------------------------------------------------+
| MULTILINESTRING ((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1), (-1 -1, -2 -1, -2 -2, -1 -2, -1 -1)) |
+-------------------------------------------------------------------------------------------------------------+
  • ST_Envelope
ST_Envelope(GEOMETRY) -> GEOMETRY

以多边形的形式返回几何对象的最小边界框。

示例:

select ST_asText(ST_Envelope(ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))')));

+-------------------------------------------+
| _col0 |
+-------------------------------------------+
| POLYGON ((-2 -2, 4 -2, 4 4, -2 4, -2 -2)) |
+-------------------------------------------+
  • ST_Difference
ST_Difference(GEOMETRY, GEOMETRY) -> GEOMETRY

输入两个几何对象,然后返回表示两个源对象之差的几何对象。

示例:

select ST_asText(ST_Difference(
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'),
ST_GeometryFromText('MULTILINESTRING ((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1), (-1 -1, -2 -1, -2 -2, -1 -2, -1 -1))'))); +--------------------------------------------------------------------------------------------------------------+
| _col0 |
+--------------------------------------------------------------------------------------------------------------+
| MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1)), ((-1 -1, -2 -1, -2 -2, -1 -2, -1 -1))) |
+--------------------------------------------------------------------------------------------------------------+ select ST_asText(ST_Difference(
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'),
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'))); +--------------------+
| _col0 |
+--------------------+
| MULTIPOLYGON EMPTY |
+--------------------+
  • ST_Distance
ST_Distance(GEOMETRY, GEOMETRY) -> DOUBLE

用于返回两个几何对象之间的距离。这一距离是两个几何对象的最近折点之间的距离。

示例:

select ST_Distance(
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'),
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))')); +-------+
| _col0 |
+-------+
| 0.0 |
+-------+ select ST_Distance(
ST_GeometryFromText('POINT(0 0)'),
ST_GeometryFromText('POINT(1 1)')); +--------------------+
| _col0 |
+--------------------+
| 1.4142135623730951 |
+--------------------+
  • ST_ExteriorRing
ST_ExteriorRing(GEOMETRY) -> GEOMETRY

以Line形式返回面的外部环。

示例:

select ST_asText(ST_ExteriorRing(ST_GeometryFromText('POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))')));

+--------------------------------------+
| _col0 |
+--------------------------------------+
| LINESTRING (0 0, 4 0, 4 4, 0 4, 0 0) |
+--------------------------------------+
  • ST_Intersection
ST_Intersection(GEOMETRY, GEOMETRY) -> GEOMETRY

以两个几何对象作为输入参数,然后以二维几何对象的形式返回交集。

示例:

select ST_asText(ST_Intersection(
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'),
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'))); +--------------------------------------------------------------------------------------------------------------+
| _col0 |
+--------------------------------------------------------------------------------------------------------------+
| MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1)), ((-1 -1, -2 -1, -2 -2, -1 -2, -1 -1))) |
+--------------------------------------------------------------------------------------------------------------+ select ST_asText(ST_Intersection(
ST_GeometryFromText('POINT(0 0)'),
ST_GeometryFromText('POINT(1 1)'))); +--------------------+
| _col0 |
+--------------------+
| MULTIPOLYGON EMPTY |
+--------------------+
  • ST_SymDifference
ST_SymDifference(GEOMETRY, GEOMETRY) -> GEOMETRY

返回表示两个几何对象间的点集对称差异的几何值对象。

示例:

select ST_asText(ST_SymDifference(
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'),
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'))); +--------------------+
| _col0 |
+--------------------+
| MULTIPOLYGON EMPTY |
+--------------------+ select ST_asText(ST_SymDifference(
ST_GeometryFromText('POINT(0 0)'),
ST_GeometryFromText('POINT(1 1)'))); +---------------------------+
| _col0 |
+---------------------------+
| MULTIPOINT ((0 0), (1 1)) |
+---------------------------+

下图的阴影部分显示了对称差异的结果。对称差异为包括两个表面的多表面图形:其中一个表面包含位于正方形之内、圆形之外的所有点,另外一个表面包含位于圆形之内、正方形之外的所有点。

  • ST_Contains
ST_Contains(GEOMETRY, GEOMETRY) -> BOOLEAN

输入两个几何对象,判断第一个对象是否完全包含第二个对象。

示例:

select ST_Contains(
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'),
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))')); +-------+
| _col0 |
+-------+
| 1 |
+-------+ select ST_Contains(
ST_GeometryFromText('POINT(0 0)'),
ST_GeometryFromText('POINT(1 1)')); +-------+
| _col0 |
+-------+
| 0 |
+-------+
  • ST_Crosses
ST_Crosses(GEOMETRY, GEOMETRY) -> BOOLEAN

以两个几何对象作为输入,如果这两个对象的交集生成的几何对象的维度小于两个源对象中的最大维度,则返回 1。交集对象所包含的点必须在两个源几何的内部,并且不等于其中任何一个源对象。否则,返回 0。

示例:

select ST_Crosses(
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'),
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))')); +-------+
| _col0 |
+-------+
| 0 |
+-------+ select ST_Crosses(
ST_GeometryFromText('LINESTRING(0 0, 2 2)'),
ST_GeometryFromText('LINESTRING(0 2, 2 0)')); +-------+
| _col0 |
+-------+
| 1 |
+-------+
  • ST_Disjoint
ST_Disjoint(GEOMETRY, GEOMETRY) -> BOOLEAN

输入两个几何对象,判断两个几何对象的交集是否为空集。

示例:

select ST_Disjoint(
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'),
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))')); +-------+
| _col0 |
+-------+
| 0 |
+-------+ select ST_Disjoint(
ST_GeometryFromText('LINESTRING(0 0, 2 2)'),
ST_GeometryFromText('LINESTRING(0 2, 2 4)')); +-------+
| _col0 |
+-------+
| 1 |
+-------+
  • ST_Equals
ST_Equals(GEOMETRY, GEOMETRY) -> BOOLEAN

判断两个几何对象是否完全相同。

示例:

select ST_Equals(
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'),
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))')); +-------+
| _col0 |
+-------+
| 1 |
+-------+ select ST_Equals(
ST_GeometryFromText('LINESTRING(0 0, 2 2)'),
ST_GeometryFromText('LINESTRING(0 2, 2 4)')); +-------+
| _col0 |
+-------+
| 0 |
+-------+
  • ST_Intersects
ST_Intersects(GEOMETRY, GEOMETRY) -> BOOLEAN

判断两个几何对象的交集是否不生成空集。

示例:

select ST_Intersects(
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'),
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))')); +-------+
| _col0 |
+-------+
| 1 |
+-------+ select ST_Intersects(
ST_GeometryFromText('LINESTRING(0 0, 2 2)'),
ST_GeometryFromText('LINESTRING(0 2, 2 4)')); +-------+
| _col0 |
+-------+
| 0 |
+-------+
  • ST_Overlaps
ST_Overlaps(GEOMETRY, GEOMETRY) -> BOOLEAN

判断两个几何对象的交集生成的几何对象是否维度相同但不等于任一源对象。

示例:

select ST_Overlaps(
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'),
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))')); +-------+
| _col0 |
+-------+
| 0 |
+-------+ select ST_Overlaps(
ST_GeometryFromText('LINESTRING(1 1, 2 2)'),
ST_GeometryFromText('LINESTRING(0 0, 1.5 1.5)')); +-------+
| _col0 |
+-------+
| 1 |
+-------+
  • ST_Relate
ST_Relate(GEOMETRY, GEOMETRY, VARCHAR) -> BOOLEAN

比较两个几何对象,判断是否满足“DE-9IM”模式(https://en.wikipedia.org/wiki/DE-9IM)矩阵字符串指定的条件。

示例:

select ST_Relate(
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'),
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'),
'102101FF2'); +-------+
| _col0 |
+-------+
| 0 |
+-------+ select ST_Relate(
ST_GeometryFromText('LINESTRING(1 1, 2 2)'),
ST_GeometryFromText('LINESTRING(0 0, 1.5 1.5)'),
'1*1***1**'); +-------+
| _col0 |
+-------+
| 1 |
+-------+
  • ST_Touches
ST_Touches(GEOMETRY, GEOMETRY) -> BOOLEAN

判断两个几何对象的公共点是否都不与两个几何对象的内部相交。

示例:

select ST_Touches(
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'),
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))')); +-------+
| _col0 |
+-------+
| 0 |
+-------+ select ST_Touches(
ST_GeometryFromText('LINESTRING(1 1, 2 2)'),
ST_GeometryFromText('LINESTRING(0 0, 1 1)')); +-------+
| _col0 |
+-------+
| 1 |
+-------+
  • ST_Within
ST_Within(GEOMETRY, GEOMETRY) -> BOOLEAN

判断第一个几何对象是否完全位于第二个几何对象的范围内。

示例:

select ST_Within(
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))'),
ST_GeometryFromText('MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))')); +-------+
| _col0 |
+-------+
| 1 |
+-------+ select ST_Within(
ST_GeometryFromText('LINESTRING(1 1, 2 2)'),
ST_GeometryFromText('LINESTRING(0 0, 1 1)')); +-------+
| _col0 |
+-------+
| 0 |
+-------+
  • ST_asBinary
ST_asBinary(GEOMETRY) -> VARBINARY

输入一个几何对象,然后返回其可识别的二进制WKB数据。

  • ST_GeometryFromWKBHexString
ST_GeometryFromWKBHexString(VARCHAR) -> GEOMETRY

输入WKB的HEX字符串数据,返回对应的几何对象。

示例:

select ST_ASTEXT(ST_GeometryFromWKBHexString('000000000140000000000000004010000000000000'));

+-------------+
| _col0 |
+-------------+
| POINT (2 4) |
+-------------+
  • ST_pointFromWKBHexString
ST_pointFromWKBHexString(VARCHAR) -> GEOMETRY

输入Point的WKB的HEX字符串数据,返回对应的Point几何对象。

示例:

select ST_ASTEXT(ST_pointFromWKBHexString('000000000140000000000000004010000000000000'));

+-------------+
| _col0 |
+-------------+
| POINT (2 4) |
+-------------+
  • ST_lineFromWKBHexString
ST_lineFromWKBHexString(VARCHAR) -> GEOMETRY

输入Line的WKB的HEX字符串数据,返回对应的Line几何对象。

  • ST_polyFromWKBHexString
ST_polyFromWKBHexString(VARCHAR) -> GEOMETRY

输入Polygon的WKB的HEX字符串数据,返回对应的Polygon几何对象。

  • ST_MPointFromWKBHexString
ST_MPointFromWKBHexString(VARCHAR) -> GEOMETRY

输入MultiPoint的WKB的HEX字符串数据,返回对应的MultiPoint几何对象。

示例:

SELECT ST_asText(ST_MPointFromWKBHexString('0104000000020000000101000000000000000000000000000000000000000101000000000000000000F03F0000000000000040'));

+---------------------------+
| _col0 |
+---------------------------+
| MULTIPOINT ((0 0), (1 2)) |
+---------------------------+
  • ST_MLineFromWKBHexString
ST_MLineFromWKBHexString(VARCHAR) -> GEOMETRY

输入MultiLine的WKB的HEX字符串数据,返回对应的MultiLine几何对象。

  • ST_MPolyFromWKBHexString
ST_MPolyFromWKBHexString(VARCHAR) -> GEOMETRY

输入MultiPolygon的WKB的HEX字符串数据,返回对应的MultiPolygon几何对象。

  • ST_GeometryFromWKB
ST_GeometryFromWKB(VARBINARY) -> GEOMETRY

输入WKB数据,返回对应的几何对象。

示例:

select ST_ASTEXT(ST_GeometryFromWKB(from_hex('000000000140000000000000004010000000000000')));

+-------------+
| _col0 |
+-------------+
| POINT (2 4) |
+-------------+
  • ST_pointFromWKB
ST_pointFromWKB(VARBINARY) -> GEOMETRY

输入Point的WKB数据,返回对应的Point几何对象。

示例:

select ST_ASTEXT(ST_pointFromWKB(from_hex('000000000140000000000000004010000000000000')));

+-------------+
| _col0 |
+-------------+
| POINT (2 4) |
+-------------+
  • ST_lineFromWKB
ST_lineFromWKB(VARBINARY) -> GEOMETRY

输入Line的WKB数据,返回对应的Line几何对象。

  • ST_polyFromWKB
ST_polyFromWKB(VARBINARY) -> GEOMETRY

输入Polygon的WKB数据,返回对应的Polygon几何对象。

  • ST_MPointFromWKB
ST_MPointFromWKB(VARBINARY) -> GEOMETRY

输入MultiPoint的WKB数据,返回对应的MultiPoint几何对象。

示例:

SELECT ST_asText(ST_MPointFromWKB(from_hex('0104000000020000000101000000000000000000000000000000000000000101000000000000000000F03F0000000000000040')));

+---------------------------+
| _col0 |
+---------------------------+
| MULTIPOINT ((0 0), (1 2)) |
+---------------------------+
  • ST_MLineFromWKB
ST_MLineFromWKB(VARBINARY) -> GEOMETRY

输入MultiLine的WKB数据,返回对应的MultiLine几何对象。

  • ST_MPolyFromWKB
ST_MPolyFromWKB(VARBINARY) -> GEOMETRY

输入MultiPolygon的WKB数据,返回对应的MultiPolygon几何对象。

  • ST_GeometryFromGeoJson
ST_GeometryFromGeoJson(VARCHAR) -> GEOMETRY

输入GeoJson的字符串数据,返回对应的几何对象。

  • ST_GeometryFromJson
ST_GeometryFromJson(VARCHAR) -> GEOMETRY

输入ESRI Geometry Object Json的字符串数据,返回对应的几何对象。

  • ST_asGeoJson
ST_asGeoJson(GEOMETRY) -> VARCHAR

把几何对象转成GeoJson格式输出。

示例:

SELECT ST_asGeoJson(ST_GeometryFromText('MULTILINESTRING ((0 0, 1 1, 1 2), (2 3, 3 2, 5 4))'));

+-----------------------------------------------------------------------------------------------+
| _col0 |
+-----------------------------------------------------------------------------------------------+
| {"type":"MultiLineString","coordinates":[[[0,0],[1,1],[1,2]],[[2,3],[3,2],[5,4]]],"crs":null} |
+-----------------------------------------------------------------------------------------------+
  • ST_asJson
ST_asJson(GEOMETRY) -> VARCHAR

把几何对象转成ESRI Geometry Object Json格式输出。

示例:

SELECT ST_asJson(ST_GeometryFromText('MULTILINESTRING ((0 0, 1 1, 1 2), (2 3, 3 2, 5 4))'));

+-----------------------------------------------------+
| _col0 |
+-----------------------------------------------------+
| {"paths":[[[0,0],[1,1],[1,2]],[[2,3],[3,2],[5,4]]]} |
+-----------------------------------------------------+
  • ST_GeometryFromEsriShape
ST_GeometryFromEsriShape(VARBINARY) -> GEOMETRY

输入ESRI Shape的二进制数据,返回对应的几何对象。

示例:

SELECT california_counties.name,
COUNT(*) cnt
FROM california_counties
CROSS JOIN earthquakes
WHERE ST_CONTAINS (ST_GeometryFromesrishape(california_counties.boundaryshape), ST_POINT(earthquakes.longitude, earthquakes.latitude))
GROUP BY california_counties.name
ORDER BY cnt DESC, california_counties.name; +-----------------+------+
| name | cnt |
+-----------------+------+
| San Benito | 8 |
| San Bernardino | 7 |
| Riverside | 6 |
| Inyo | 5 |
| Imperial | 3 |
| San Diego | 2 |
| Kern | 1 |
| Kings | 1 |
| Monterey | 1 |
| San Luis Obispo | 1 |
| Santa Clara | 1 |
| Ventura | 1 |
+-----------------+------+
  • UDF_SYS_GEO_IN_CYCLE
UDF_SYS_GEO_IN_CYCLE(longitude, latitude, point, radius) -> BOOLEAN

第一个参数为经度列名称, 类型FLOAT/DOUBLE
第二个参数为纬度列名称, 类型FLOAT/DOUBLE
第三个参数为圆圈中心点的位置,格式=>'经度,维度', =>'120.85979,30.011984'
第四个参数为圆圈的半径,单位米

判断longitude、latitude的点是否在以中心点point为圆心,半径为radius的圆内。

示例:

SELECT count(*) as cnt FROM earthquakes
WHERE UDF_SYS_GEO_IN_CYCLE(longitude,latitude, '120.85979,30.011984', 5000000000000) = true; +------+
| cnt |
+------+
| 2858 |
+------+
  • UDF_SYS_GEO_IN_RECTANGLE
UDF_SYS_GEO_IN_RECTANGLE(longitude, latitude, pointA, pointB) -> BOOLEAN

第一个参数为经度列名称, 类型FLOAT/DOUBLE
第二个参数为纬度列名称, 类型FLOAT/DOUBLE
第三个参数为矩形的左下角坐标,格式=>'经度,维度', =>'120.85979,30.011984'
第四个参数为矩形的右上角坐标,格式=>'经度,维度', =>'120.88450,31.21011'

判断longitude、latitude的点是否在以2个斜角点构成的矩形内。

示例:

SELECT count(*) as cnt FROM earthquakes
WHERE UDF_SYS_GEO_IN_RECTANGLE(longitude, latitude, '69.037,36.5759', '142.018,67.8713')=true; +------+
| cnt |
+------+
| 55 |
+------+
  • UDF_SYS_GEO_DISTANCE
UDF_SYS_GEO_DISTANCE(longitude, latitude, pointA) -> INTEGER

第一个参数为经度列名称, 类型FLOAT/DOUBLE
第二个参数为纬度列名称, 类型FLOAT/DOUBLE
第三个参数为固定坐标点的经纬度,格式=>'经度,维度', =>'120.85979,30.011984'

求longitude、latitude的点和pointA点的距离,单位:米。

示例:

SELECT count(*) as cnt FROM earthquakes
WHERE UDF_SYS_GEO_DISTANCE(longitude, latitude, '69.037,36.5759') > 10000; +------+
| cnt |
+------+
| 2857 |
+------+

原文链接
本文为云栖社区原创内容,未经允许不得转载。

Data Lake Analytics的Geospatial分析函数的更多相关文章

  1. Data Lake Analytics + OSS数据文件格式处理大全

    0. 前言 Data Lake Analytics是Serverless化的云上交互式查询分析服务.用户可以使用标准的SQL语句,对存储在OSS.TableStore上的数据无需移动,直接进行查询分析 ...

  2. Data Lake Analytics: 读/写PolarDB的数据

    Data Lake Analytics 作为云上数据处理的枢纽,最近加入了对于PolarDB的支持, PolarDB 是阿里云自研的下一代关系型分布式云原生数据库,100%兼容MySQL,存储容量最高 ...

  3. Data Lake Analytics,大数据的ETL神器!

    0. Data Lake Analytics(简称DLA)介绍 数据湖(Data Lake)是时下大数据行业热门的概念:https://en.wikipedia.org/wiki/Data_lake. ...

  4. Data Lake Analytics: 使用DataWorks来调度DLA任务

    DataWorks作为阿里云上广受欢迎的大数据开发调度服务,最近加入了对于Data Lake Analytics的支持,意味着所有Data Lake Analytics的客户可以获得任务开发.任务依赖 ...

  5. 使用Data Lake Analytics + OSS分析CSV格式的TPC-H数据集

    0. Data Lake Analytics(DLA)简介 关于Data Lake的概念,更多阅读可以参考:https://en.wikipedia.org/wiki/Data_lake 以及AWS和 ...

  6. Data Lake Analytics账号和权限体系详细介绍

    一.Data Lake Analytics介绍 数据湖(Data Lake)是时下大数据行业热门的概念:https://en.wikipedia.org/wiki/Data_lake.基于数据湖做分析 ...

  7. 如何使用Data Lake Analytics创建分区表

    前言 Data Lake Analytics(后文简称DLA)提供了无服务化的大数据分析服务,帮助用户通过标准的SQL语句直接对存储在OSS.TableStore上的数据进行查询分析. 在关系型数据库 ...

  8. 如何在Data Lake Analytics中使用临时表

    前言 Data Lake Analytics (后文简称DLA)是阿里云重磅推出的一款用于大数据分析的产品,可以对存储在OSS,OTS上的数据进行查询分析.相较于传统的数据分析产品,用户无需将数据重新 ...

  9. 使用Data Lake Analytics读/写RDS数据

    Data Lake Analytics 作为云上数据处理的枢纽,最近加入了对于RDS(目前支持 MySQL , SQLServer ,Postgres 引擎)的支持, 这篇教程带你玩转 DLA 的 R ...

随机推荐

  1. Lintcode401 Kth Smallest Number in Sorted Matrix solution 题解

    [题目描述] Find the kth smallest number in at row and column sorted matrix. 在一个排序矩阵中找从小到大的第 k 个整数. 排序矩阵的 ...

  2. hive 分组排序,topN

    hive 分组排序,topN 语法格式:row_number() OVER (partition by COL1 order by COL2 desc ) rankpartition by:类似hiv ...

  3. JavaScript常用的事件模型

    一.事件绑定模型 DOM0事件模型 1.内联模型(行内绑定):将函数名直接作为HTML标签中事件属性的属性值 <button id="btn" onclick="f ...

  4. Linux kernel的中断子系统之(八):softirq

    返回目录:<ARM-Linux中断系统>. 总结:中断分为上半部和下半部,上半部关中断:下半部开中断,处理可以延迟的事情.下半部有workqueue/softirq/tasklet三种方式 ...

  5. sql server 高可用故障转移(完结)

    安装完二个sql server 节点后,对外的虚拟ip是192.168.2.105 测试将sql server转到另一节点 转移后连接sql 虚拟ip 测试 通过windows日志查看远行状态 总结 ...

  6. LeetCode Javascript实现 100. Same Tree 171. Excel Sheet Column Number

    100. Same Tree /** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; ...

  7. ucloud中的udisk错误“Read-only file system”修复指南

    当udisk写入数据提示错误:"Read-only file system",按照下面的方法修复:  1. 停止使用对应udisk的业务 如果有未知的进程正在操作这个硬盘,可使用命 ...

  8. Nginx 入门学习教程

    昨天听一个前同事说他们公司老大让他去研究下关于Nginx 方面的知识,我想了下Nginx 在如今的开发技术栈中应该会很大可能会用到,所以写篇博文记录总结下官网学习教程吧. 1. 什么是Nginx? 我 ...

  9. Vert.x 线程模型揭秘

    来源:鸟窝, colobu.com/2016/03/31/vertx-thread-model/ 如有好文章投稿,请点击 → 这里了解详情 Vert.x是一个在JVM开发reactive应用的框架,可 ...

  10. CyclicBarrier简介

    CyclicBarrier简介 CyclicBarrier和CountDownLatch不同,是当await的数量达到了设定的数量之后,才继续往下执行 CyclicBarrier数的是调用了Cycli ...