本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon Redshift 中查詢空間資料
空間資料描述已定義空間 (空間參考系統) 中幾何圖形的位置和形狀。Amazon Redshift 支援具有 GEOMETRY
和 GEOGRAPHY
資料類型的空間資料,其中包含空間資料和可選的資料空間參考系統識別符 (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)
若要進一步了解 GEOMETRY
和 GEOGRAPHY
資料類型之間的差異,請考慮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 中的地理坐標系統
GEOMETRY
和 GEOGRAPHY
資料類型具有下列子類型:
POINT
LINESTRING
POLYGON
MULTIPOINT
MULTILINESTRING
MULTIPOLYGON
GEOMETRYCOLLECTION
Amazon Redshift SQL函數支援下列幾何資料表示法:
地理JSON
眾所周知的文字 (WKT)
延伸已知文字 (EWKT)
眾所周知的二進位 (WKB) 表示法
擴充已知的二進位 (EWKB)
您可以在 GEOMETRY
和 GEOGRAPHY
資料類型之間進行轉換。
下列 會將 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
物件是有效的幾何圖形。如果 GEOMETRY
或 GEOGRAPHY
物件無效,則不會定義空間函數的行為。如需有效性的相關資訊,請參閱 幾何有效性。
如需查詢空間資料SQL之函數的詳細資訊,請參閱 空間函數。
如需載入空間資料的詳細資訊,請參閱 載入 GEOMETRY或 GEOGRAPHY 資料類型的資料欄。