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

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

在 Amazon Redshift 中查詢空間資料

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

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

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

所以此GEOMETRY數據類型操作在笛卡爾平面上工作。儘管空間參照系標識符 (SRID) 存儲在對象內,但此 SRID 僅僅是座標系的標識符,在用於處理GEOMETRY物件。相反,在GEOGRAPHY數據類型將對象內的座標視為橢球體上的球座標。此旋轉橢球體由 SRID 定義,該 SRID 引用了一個地理空間參考系。根據預設,GEOGRAPHY數據類型使用空間參考 (SRID) 4326 創建,並參照世界大地測量系統 (WGS) 84。

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

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

為了更好地理解GEOMETRYGEOGRAPHY數據類型,請考慮使用世界大地測量系統 (WGS) 84 計算柏林機場 (BER) 與舊金山機場 (SFO) 之間的距離。使用GEOGRAPHY數據類型,結果以米為單位。當您使用GEOMETRY數據類型,則結果以度為單位,不能轉換為米,因為一度的距離取決於地球幾何的位置。

上的計算GEOGRAPHY數據類型主要用於實際的圓地計算, 例如一個國家的精確區域, 無扭曲. 但它們的計算成本要高得多。因此,ST_Transland 可以將座標轉換為適當的局部投影座標系,並在GEOMETRY數據類型更快。

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

  • 尋找兩點之間的距離。

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

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

您可以使用 GEOMETRY 資料類型來保存空間資料的值。一個GEOMETRYAmazon Redshift 可以定義二維 (2D)、三維 (3DZ)、帶度量的二維 (3DM) 和四維 (4D) 幾何原始數據類型:

  • 二維 (2D) 幾何由平面中的兩個笛卡爾座標 (x, y) 指定。

  • 三維 (3DZ) 幾何由空間中的三個笛卡爾座標 (x, y, z) 指定。

  • 帶測量 (3DM) 幾何的二維由三個座標 (x, y, m) 指定,其中前兩個座標是平面中的笛卡爾座標,第三個座標是測量值。

  • 四維 (4D) 幾何由四個座標 (x, y, z, m) 指定,其中前三個座標是空間中的笛卡爾座標,第四個座標是測量值。

如需幾何基本體資料類型的詳細資訊,請參幾何體的眾所周知文字表示在維基百科。

您可以使用 GEOGRAPHY 資料類型來保存空間資料的值。一個GEOGRAPHYAmazon Redshift 可以定義二維 (2D)、三維 (3DZ)、帶度量的二維 (3DM) 和四維 (4D) 幾何原始數據類型:

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

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

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

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

如需地理座標系的詳細資訊,請參地理座標系球狀座標系在維基百科。

所以此GEOMETRYGEOGRAPHY資料類型具有下列子類型:

  • POINT

  • LINESTRING

  • POLYGON

  • MULTIPOINT

  • MULTILINESTRING

  • MULTIPOLYGON

  • GEOMETRYCOLLECTION

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

  • GeoJSON

  • 已知文字 (WKT)

  • 擴充的已知文字 (EWKT)

  • 已知二進位 (WKB) 表示法

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

您可以在GEOMETRYGEOGRAPHY資料類型。

下列 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)

下列 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 或地理資料類型的資料行