Babelfish에서 지리공간 데이터 유형 지원 - Amazon Aurora

Babelfish에서 지리공간 데이터 유형 지원

버전 3.5.0 및 4.1.0부터 Babelfish는 다음 두 가지 공간 데이터 유형에 대한 지원을 포함합니다.

  • 기하학 데이터 유형 - 이 데이터 유형은 평면, 즉 유클리드(평평한 지구) 데이터를 저장하기 위한 것입니다.

  • 지리학 데이터 유형 - 이 데이터 유형은 GPS 위도 및 경도 좌표와 같은 타원체, 즉 둥근 지구 데이터를 저장하는 데 사용됩니다.

이러한 데이터 유형을 사용하면 공간 데이터를 저장하고 조작할 수 있지만 제한이 있습니다.

Babelfish의 지리공간 데이터 유형 이해

  • 지리공간 데이터 유형은 뷰, 프로시저 및 테이블과 같은 다양한 데이터베이스 객체에서 지원됩니다.

  • 포인트 데이터 유형을 지원하여 위치 데이터를 위도, 경도 및 유효한 공간 참조 시스템 식별자(SRID)로 정의된 포인트로 저장할 수 있습니다. 포인트는 Z(고도), M(측정) 값을 포함할 수 있으며 비어 있을 수 있습니다.

  • 일련의 점과 이들을 연결하는 선분 및 유효한 공간 참조 시스템 식별자(SRID)로 정의되는 라인스트링 데이터 유형(버전 5.4.0부터)을 지원합니다. 라인스트링은 Z(고도), M(측정) 값이 있는 포인트를 포함할 수 있으며 비어 있을 수 있습니다.

  • JDBC, ODBC, DOTNET, PYTHON과 같은 드라이버를 통해 Babelfish에 연결하는 애플리케이션은 이 지리공간 기능을 활용할 수 있습니다.

Babelfish에서 지원하는 기하학 데이터 유형 함수

  • STGeomFromText(geometry_tagged_text, SRID) - WKT(Well-Known Text) 표현을 사용하여 기하학 인스턴스를 만듭니다.

  • STPointFromText(point_tagged_text, SRID) - WKT 표현을 사용하여 포인트 인스턴스를 생성합니다.

  • Point(X, Y, SRID) - x 및 y 좌표의 부동 소수점 값을 사용하여 포인트 인스턴스를 만듭니다.

  • <geometry_instance>.STAsText ( ) - 기하학 인스턴스에서 WKT 표현을 추출합니다.

  • <geometry_instance>.STAsBinary ( ) - 기하학 인스턴스에서 WKB 표현을 추출합니다.

  • <geometry_instance>.STArea( ) - 기하학 인스턴스의 총 표면적을 계산합니다.

  • <geometry_instance>.STSrid( ) - 기하학 인스턴스의 공간 참조 식별자(SRID)를 추출합니다.

  • <geometry_instance>.STDimension( ) - 기하학 인스턴스의 공간 차원을 검색합니다.

  • <geometry_instance>.STIsEmpty( ) - 기하학 인스턴스가 비어 있는지 확인합니다.

  • <geometry_instance>.STIsClosed( ) - 기하학 인스턴스가 닫혀 있는지 확인합니다.

  • <geometry_instance>.STIsValid( ) - 기하학 인스턴스가 유효한지 확인합니다.

  • <geometry_instance>.STDistance(other_geometry) - 두 기하학 인스턴스 사이의 거리를 계산합니다.

  • <geometry_instance>.STEquals(other_geometry) - 기하학 인스턴스가 다른 기하학 인스턴스와 동일한 포인트 세트를 나타내는지 확인합니다.

  • <geometry_instance>.STContains(other_geometry) - 기하학 인스턴스에 other_geometry 인스턴스가 포함되어 있는지 확인합니다.

  • <geometry_instance>.STDisjoint(other_geometry) - 두 기하학 인스턴스에 공통 포인트가 없는지 확인합니다.

  • <geometry_instance>.STIntersects(other_geometry) - 두 기하학 인스턴스가 공간적으로 교차하는지 확인합니다.

  • <geometry_instance>.STX - 기하학 인스턴스의 X 좌표(경도)를 추출합니다.

  • <geometry_instance>.STY - 기하학 인스턴스의 Y 좌표(위도)를 추출합니다.

버전 4.7.0 및 5.3.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.

  • <geometry_instance>.M - 기하학 인스턴스의 M 좌표를 추출합니다.

  • <geometry_instance>.Z - 기하학 인스턴스의 Z 좌표를 추출합니다.

  • <geometry_instance>.HasM - 기하학 인스턴스에 M 값이 하나 이상 있는지 확인합니다.

  • <geometry_instance>.HasZ - 기하학 인스턴스에 Z 값이 하나 이상 있는지 확인합니다.

버전 5.4.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.

  • STLineFromText(linestring_tagged_text, SRID ) - WKT 표현을 사용하여 라인스트링 인스턴스를 생성합니다.

Babelfish에서 지원하는 지리학 데이터 유형 함수

  • STGeomFromText(geography_tagged_text, SRID) - WKT 표현을 사용하여 지리학 인스턴스를 만듭니다.

  • STPointFromText(point_tagged_text, SRID) - WKT 표현을 사용하여 포인트 인스턴스를 생성합니다.

  • Point(Lat, Long, SRID) - 위도 및 경도의 부동 소수점 값을 사용하여 포인트 인스턴스를 만듭니다.

  • geography_instance>.STAsText( ) - 지리학 인스턴스에서 WKT 표현을 추출합니다.

  • <geography_instance>.STAsBinary( ) - 지리학 인스턴스에서 WKB 표현을 추출합니다.

  • <geography_instance>.STArea( ) - 지리학 인스턴스의 총 표면적을 계산합니다.

  • <geography_instance>.STSrid( ) - 지리학 인스턴스의 공간 참조 식별자(SRID)를 추출합니다.

  • <geography_instance>.STDimension( ) - 지리학 인스턴스의 공간 차원을 검색합니다.

  • <geography_instance>.STIsEmpty( ) - 지리학 인스턴스가 비어 있는지 확인합니다.

  • <geography_instance>.STIsClosed( ) - 지리학 인스턴스가 닫혀 있는지 확인합니다.

  • <geography_instance>.STIsValid( ) - 지리학 인스턴스가 유효한지 확인합니다.

  • geography_instance>.STDistance(other_geography) - 두 지리학 인스턴스 사이의 거리를 계산합니다.

  • <geography_instance>.STEquals(other_geography) - 지리학 인스턴스가 다른 지리학 인스턴스와 동일한 포인트 세트를 나타내는지 확인합니다.

  • <geography_instance>.STContains(other_geography) - 지리학 인스턴스에 other_geography 인스턴스가 포함되어 있는지 확인합니다.

  • <geography_instance>.STDisjoint(other_geography) - 두 지리학 인스턴스에 공통 포인트가 없는지 확인합니다.

  • <geography_instance>.STIntersects(other_geography) - 두 지리학 인스턴스가 공간적으로 교차하는지 확인합니다.

  • <geography_instance>.Lat - 지리학 인스턴스의 위도 값을 추출합니다.

  • <geography_instance>.Long - 지리학 인스턴스의 경도 값을 추출합니다.

버전 4.7.0 및 5.3.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.

  • <geography_instance>.M - 지리학 인스턴스의 M 좌표를 추출합니다.

  • <geography_instance>.Z - 지리학 인스턴스의 Z 좌표를 추출합니다.

  • <geography_instance>.HasM - 지리학 인스턴스에 M 값이 하나 이상 있는지 확인합니다.

  • <geography_instance>.HasZ - 지리학 인스턴스에 Z 값이 하나 이상 있는지 확인합니다.

버전 5.4.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.

  • STLineFromText(linestring_tagged_text, SRID ) - WKT 표현을 사용하여 라인스트링 인스턴스를 생성합니다.

Babelfish에서 지원하는 지리공간 데이터 유형의 한계

  • 포인트 및 라인스트링 인스턴스 이외에 다음과 같은 기하학 및 지리학 유형은 현재 지원되지 않습니다.

    • CircularString

    • CompoundCurve

    • Polygon

    • CurvePolygon

    • MultiPoint

    • MultiLineString

    • MultiPolygon

    • GeometryCollection

  • 현재 공간 인덱싱은 지리공간 데이터 유형에 지원되지 않습니다.

  • 현재 이러한 데이터 유형에는 나열된 함수만 지원됩니다. 자세한 내용은 Babelfish에서 지원하는 기하학 데이터 유형 함수Babelfish에서 지원하는 지리학 데이터 유형 함수(을)를 참조하세요.

  • 지리학 데이터에 대한 STDistance 함수 출력값은 T-SQL과 비교하여 정밀도 차이가 약간 있을 수 있습니다. 이는 기본 PostGIS 구현 때문입니다. 자세한 내용은 ST_Distance를 참조하세요.

  • 기하학 및 지리학 데이터 모두에서 STIsValid 함수 출력값은 T-SQL과 비교하여 약간의 차이가 있을 수 있습니다. 이로 인해 STDistance, STContains, STInstersects, STDisjoint, STDimension, STArea, STEquals 함수도 경우에 따라 T-SQL과 차이가 날 수 있습니다(오류를 발생시키는 대신 출력을 반환함). 이는 기본 PostGIS 구현 때문입니다. 자세한 내용은 ST_IsValid를 참조하세요.

  • 성능을 최적화하려면 Babelfish에서 추가 추상화 계층을 만들지 말고 기본 제공되는 지리공간 데이터 유형을 사용하세요.

  • Babelfish에서는 지리공간 함수 이름이 키워드로 사용되며 의도한 방식으로 사용하는 경우에만 공간 연산을 수행합니다.