在 Amazon Redshift 中查詢空間資料 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 Amazon Redshift 中查詢空間資料

空間資料描述已定義空間 (空間參考系統) 中幾何圖形的位置和形狀。Amazon Redshift 支援具有 GEOMETRYGEOGRAPHY資料類型的空間資料,其中包含空間資料和可選的資料空間參考系統識別符 (SRID)。

空間資料包含能用來表示地理特徵的幾何資料。這類資料的例子包括天氣報告、地圖方向、含地理位置的推文、商店位置,以及飛機航線。空間資料在商業分析、報告和預測方面扮演重要角色。

您可以使用 Amazon Redshift SQL函數查詢空間資料。空間資料包含物件的幾何值。

GEOMETRY 資料類型操作會在笛卡爾平面上運作。雖然空間參考系統識別符 (SRID) 存放在物件內,但這SRID只是座標系統的識別符,而且在用於處理GEOMETRY物件的演算法中不會扮演任何角色。相反地,GEOGRAPHY 資料類型上的操作會將物件內部的座標視為球體上的球形座標。此球狀體由 定義SRID,其參考地理空間參考系統。根據預設,GEOGRAPHY資料類型是使用空間參考 (SRID) 4326 建立,參考世界地理系統 (WGS) 84。如需 的詳細資訊SRIDs,請參閱 Wikipedia 中的空間參考系統

您可以使用 ST_Transform 函數來轉換來自各種空間參考系統的座標。完成座標轉換後,您也可以在兩者之間使用簡單的轉換,只要輸入GEOMETRY使用地理 編碼即可SRID。這種轉換只是複製坐標而無需進一步的轉換。例如:

SELECT ST_AsEWKT(ST_GeomFromEWKT('SRID=4326;POINT(10 20)')::geography);
st_asewkt ------------------------ SRID=4326;POINT(10 20)

若要進一步了解 GEOMETRYGEOGRAPHY資料類型之間的差異,請考慮SFO使用世界地理系統 (BER) 84 計算柏林機場 () 和舊金山機場 (WGS) 之間的距離。使用 GEOGRAPHY 資料類型時,結果會以公尺為單位。將GEOMETRY資料類型與 SRID 4326 搭配使用時,結果為 度,無法轉換為公尺,因為一度的距離取決於地球幾何的位置。

GEOGRAPHY 資料類型的計算主要用於現實的圓形地球計算,如一個國家/地區精確而不失真的面積。但是其計算成本要高得多。因此,ST_Transform 可以將您的座標轉換為適當的局部投影座標系統,並更快地對 GEOMETRY 資料類型進行計算。

使用空間資料,您可以執行查詢來執行以下作業:

  • 尋找兩點之間的距離。

  • 檢查是否一個區域 (多邊形) 包含其他區域。

  • 檢查一個線串 (linestring) 是否與另一個線串或多邊形交集。

您可以使用 GEOMETRY 資料類型來保存空間資料的值。Amazon Redshift 中的 GEOMETRY 值可以定義二維 (2D)、三維 (3DZ)、具量值二維 (3DM) 及四維 (4D) 幾何基本資料類型:

  • 二維 (2D) 幾何圖形由平面中的兩個直角座標 (x、y) 指定。

  • 三維 (3DZ) 幾何圖形由空間中的三個直角座標 (x、y、z) 指定。

  • 具量值二維 (3DM) 幾何圖形由三個坐標 (x、y、m) 指定,前兩個座標是平面中的直角坐標,第三個是測量值。

  • 四維 (4D) 幾何圖形由四個坐標 (x、y、z、m) 指定,前三個座標是空間中的直角坐標,第四個是測量值。

如需基本幾何資料類型的相關資訊,請參閱 Wikipedia 中的 Well-known text representation of geometry (幾何圖形的熟知文字表示法)

您可以使用 GEOGRAPHY 資料類型來保存空間資料的值。Amazon Redshift 中的 GEOGRAPHY 值可以定義二維 (2D)、三維 (3DZ)、具量值二維 (3DM) 及四維 (4D) 幾何基本資料類型:

  • 二維 (2D) 幾何圖形由球體上的經度和緯度座標指定。

  • 三維 (3DZ) 幾何圖形由球體上的經度、緯度和高度座標指定。

  • 具量值二維 (3DM) 幾何圖形由三個坐標 (經度、緯度和量值) 指定,前兩個座標是球體上的角度坐標,第三個是測量值。

  • 四維 (4D) 幾何圖形由四個座標 (經度、緯度、高度、量值) 指定,其中前三個是經度、緯度和高度,第四個是測量值。

如需地理坐標系統的相關資訊,請參閱 Wikipedia 中的地理坐標系統球形坐標系統

GEOMETRYGEOGRAPHY 資料類型具有下列子類型:

  • POINT

  • LINESTRING

  • POLYGON

  • MULTIPOINT

  • MULTILINESTRING

  • MULTIPOLYGON

  • GEOMETRYCOLLECTION

Amazon Redshift SQL函數支援下列幾何資料表示法:

  • 地理JSON

  • 眾所周知的文字 (WKT)

  • 延伸已知文字 (EWKT)

  • 眾所周知的二進位 (WKB) 表示法

  • 擴充已知的二進位 (EWKB)

您可以在 GEOMETRYGEOGRAPHY 資料類型之間進行轉換。

下列 會將 linestring 從 SQL轉換為 GEOMETRY GEOGRAPHY

SELECT ST_AsEWKT(ST_GeomFromText('LINESTRING(110 40, 2 3, -10 80, -7 9)')::geography);
st_asewkt ---------------------------------------------- SRID=4326;LINESTRING(110 40,2 3,-10 80,-7 9)

下列 會將 linestring 從 SQL轉換為 GEOGRAPHY GEOMETRY

SELECT ST_AsEWKT(ST_GeogFromText('LINESTRING(110 40, 2 3, -10 80, -7 9)')::geometry);
st_asewkt ---------------------------------------------- SRID=4326;LINESTRING(110 40,2 3,-10 80,-7 9)

Amazon Redshift 提供許多查詢空間資料的SQL函數。除了 ST_IsValid 函數之外,接受 GEOMETRY 物件作為引數的空間函數會預期此 GEOMETRY 物件是有效的幾何圖形。如果 GEOMETRYGEOGRAPHY 物件無效,則不會定義空間函數的行為。如需有效性的相關資訊,請參閱 幾何有效性

如需查詢空間資料SQL之函數的詳細資訊,請參閱 空間函數

如需載入空間資料的詳細資訊,請參閱 載入 GEOMETRY或 GEOGRAPHY 資料類型的資料欄