Babelfish에서 지리공간 데이터 유형 지원
버전 3.5.0 및 4.1.0부터 Babelfish는 다음 두 가지 공간 데이터 유형에 대한 지원을 포함합니다.
-
기하학 데이터 유형 - 이 데이터 유형은 평면, 즉 유클리드(평평한 지구) 데이터를 저장하기 위한 것입니다.
-
지리학 데이터 유형 - 이 데이터 유형은 GPS 위도 및 경도 좌표와 같은 타원체, 즉 둥근 지구 데이터를 저장하는 데 사용됩니다.
이러한 데이터 유형을 사용하면 공간 데이터를 저장하고 조작할 수 있지만 제한이 있습니다.
Babelfish의 지리공간 데이터 유형 이해
지리공간 데이터 유형은 뷰, 프로시저 및 테이블과 같은 다양한 데이터베이스 객체에서 지원됩니다.
-
포인트 데이터 유형을 지원하여 위치 데이터를 위도, 경도 및 유효한 공간 참조 시스템 식별자(SRID)로 정의된 포인트로 저장할 수 있습니다. 포인트는 Z(고도), M(측정) 값을 포함할 수 있으며 비어 있을 수 있습니다.
-
일련의 점과 이들을 연결하는 선분 및 유효한 공간 참조 시스템 식별자(SRID)로 정의되는 라인스트링 데이터 유형(버전 5.4.0부터)을 지원합니다. 라인스트링은 Z(고도), M(측정) 값이 있는 포인트를 포함할 수 있으며 비어 있을 수 있습니다.
-
다각형 데이터 형식(버전 5.5.0 및 6.0.0부터)을 지원합니다. 다각형은 외부 경계 링과 0개 이상의 내부 링을 정의하는 일련의 점으로 저장된 2차원 표면입니다.
-
멀티포인트 데이터 형식(버전 5.6.0 및 6.1.0부터)을 지원합니다. 멀티포인트는 0개 이상의 점으로 구성된 집합입니다. 멀티포인트 인스턴스의 경계는 비어 있습니다.
-
MultiLineString 데이터 유형(버전 5.7.0 및 6.2.0부터)을 지원합니다. MultiLineString은 0개 이상의 지오메트리 또는 지리 LineString 인스턴스 모음입니다.
-
공간 인덱스(버전 5.7.0 및 6.2.0부터)를 지원합니다. 이를 통해 공간 테이블 열을 인덱싱할 수 있습니다.
-
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 표현을 사용하여 라인스트링 인스턴스를 생성합니다.
버전 5.5.0 및 6.0.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.
-
STPolyFromText(
polygon_tagged_text, SRID) - WKT 표현을 사용하여 다각형 인스턴스를 생성합니다.
버전 5.6.0 및 6.1.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.
-
STMPointFromText(
multipoint_tagged_text, SRID ) – WKT 표현을 사용하여 멀티포인트 인스턴스를 생성합니다. -
<geometry_instance>.STNumPoints – 지오메트리 인스턴스 내 각 도형에 포함된 점 개수의 합계를 반환합니다.
-
<geometry_instance>.STGeometryType – 지오메트리 인스턴스가 나타내는 지오메트리 유형 이름을 반환합니다.
-
<geometry_instance>.MakeValid() – 입력된 정점을 하나도 잃지 않으면서, 유효하지 않은 지오메트리를 유효한 형태로 생성합니다.
-
Parse(
WKT 표현) – SRID 0을 가정하고 WKT(Well-Known Text) 문자열에서 지오메트리 인스턴스를 생성합니다. STGeomFromText()와 동일하지만 SRID 파라미터는 필요하지 않습니다. 선택적 Z 및 M 값을 지원합니다.
버전 5.7.0 및 6.2.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.
-
STMLineFromText(
multiline_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 표현을 사용하여 라인스트링 인스턴스를 생성합니다.
버전 5.5.0 및 6.0.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.
-
STPolyFromText(
polygon_tagged_text, SRID) - WKT 표현을 사용하여 다각형 인스턴스를 생성합니다.
버전 5.6.0 및 6.1.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.
-
STMPointFromText(
multipoint_tagged_text, SRID ) – WKT 표현을 사용하여 멀티포인트 인스턴스를 생성합니다. -
<geography_instance>.STNumPoints – 지리 인스턴스 내 각 도형에 포함된 점 개수의 합계를 반환합니다.
-
<geography_instance>.STGeometryType – 지리 인스턴스가 나타내는 지리 유형 이름을 반환합니다.
-
<geography_instance>.MakeValid() – 입력된 정점을 하나도 잃지 않으면서, 유효하지 않은 지리 데이터를 유효한 형태로 생성합니다.
-
Parse(
WKT 표현) – SRID 4326을 가정하고 WKT(Well-Known Text) 문자열에서 지리 인스턴스를 생성합니다. STGeomFromText()와 동일하지만 SRID 파라미터는 필요하지 않습니다. 선택적 Z 및 M 값을 지원합니다.
버전 5.7.0 및 6.2.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.
-
STMLineFromText(
multiline_tagged_text, SRID) – WKT 표현을 사용하여 다중 라인스트링 인스턴스를 생성합니다.
Babelfish에서 지원하는 지리공간 데이터 유형의 한계
-
포인트, 라인스트링, 다각형, 멀티포인트 및 다중 라인스트링 인스턴스 이외의 지오메트리 및 지리 유형은 현재 지원되지 않습니다.
CircularString
CompoundCurve
CurvePolygon
MultiPolygon
GeometryCollection
공간 인덱스를 생성할 때 USING 절 및 WITH 튜닝 옵션은 현재 지원되지 않습니다. 기본 CREATE SPATIAL INDEX가 지원됩니다.
현재 이러한 데이터 유형에는 나열된 함수만 지원됩니다. 자세한 내용은 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에서는 지리공간 함수 이름이 키워드로 사용되며 의도한 방식으로 사용하는 경우에만 공간 연산을 수행합니다.