접근자 함수 - Amazon Athena

접근자 함수

접근자 함수는 다양한 geometry 데이터 형식으로부터 varchar, bigint 또는 double 형식의 값을 얻는 데 유용합니다. 여기서 geometry는 Athena에 지원되는 geometry 데이터 형식인 point, line, polygon, multiline, multipolygon 중 하나입니다. 예를 들어, polygon geometry 데이터 형식의 영역, 지정된 geometry 데이터 형식의 최대 및 최소 X 및 Y 값을 구하거나, line 길이를 얻거나, 지정된 geometry 데이터 형식으로 점수를 얻을 수 있습니다.

geometry_invalid_reason(geometry)

지정된 geometry가 유효하지 않거나 단순하지 않은 이유를 varchar 데이터 형식으로 반환합니다. 지정된 geometry가 유효하지 않거나 단순하지 않은 경우 유효하지 않은 이유를 반환합니다. 지정된 geometry가 유효하고 단순한 경우 null을 반환합니다. 예시

SELECT geometry_invalid_reason(ST_Point(-158.54, 61.56))

great_circle_distance(latitude1, longitude1, latitude2, longitude2)

킬로미터 단위의 지구 표면 두 점 사이의 대원 거리(great-circle distance)를 double로 반환합니다. 예시

SELECT great_circle_distance(36.12, -86.67, 33.94, -118.40)

line_locate_point(lineString, point)

지정된 라인 스트링의 가장 가까운 점에서 지정된 점까지의 위치를 전체 2d 라인 길이 대비 비율로 나타내는 0에서 1 사이의 double을 반환합니다.

지정된 라인 스트링 또는 점이 비어 있거나 null인 경우 null을 반환합니다. 예시

SELECT line_locate_point(ST_GeometryFromText('LINESTRING (0 0, 0 1)'), ST_Point(0, 0.2))

simplify_geometry(geometry, double)

Ramer-douglas-peucker algorithm(Ramer-Douglas-Peucker 알고리즘)을 사용해 지정된 geometry의 단순화 버전인 geometry 데이터 형식을 반환합니다. 유효하지 않은 파생 geometry(특히 폴리곤)를 생성하지 않아야 합니다. 예시

SELECT simplify_geometry(ST_GeometryFromText('POLYGON ((1 0, 2 1, 3 1, 3 1, 4 1, 1 0))'), 1.5)

ST_Area(geometry)

geometry 데이터 형식을 입력으로 취해 double 형식의 면을 반환합니다. 예시

SELECT ST_Area(ST_Polygon('polygon((1 1, 4 1, 4 4, 1 4))'))

ST_Centroid(geometry)

geometry 데이터 형식 polygon을 입력으로 취해 다각형 포락선의 중심인 point geometry 데이터 형식을 반환합니다. 예:

SELECT ST_Centroid(ST_GeometryFromText('polygon ((0 0, 3 6, 6 0, 0 0))'))
SELECT ST_AsText(ST_Centroid(ST_Envelope(ST_GeometryFromText('POINT (53 27)'))))

ST_ConvexHull(geometry)

지정된 입력의 모든 geometry를 둘러싸는 가장 작은 볼록 geometry인 geometry 데이터 형식을 반환합니다. 예시

SELECT ST_ConvexHull(ST_Point(-158.54, 61.56))

ST_CoordDim(geometry)

지원되는 geometry 데이터 형식 중 하나를 입력으로 취해 tinyint 형식으로 좌표 성분 개수를 반환합니다. 예시

SELECT ST_CoordDim(ST_Point(1.5,2.5))

ST_Dimension(geometry)

지원되는 geometry 데이터 형식 중 하나를 입력으로 가져오고, tinyint 형식으로 geometry의 공간 차원을 반환합니다. 예시

SELECT ST_Dimension(ST_Polygon('polygon((1 1, 4 1, 4 4, 1 4))'))

ST_Distance(geometry, geometry)

공간 참조에 기초해 두 geometry 간 2차원 최소 데카르트 거리(투영 단위, projected unit)를 포함한 double을 반환합니다. Athena 엔진 버전 2부터 입력 중 하나가 빈 지오메트리인 경우 null을 반환합니다. 예시

SELECT ST_Distance(ST_Point(0.0,0.0), ST_Point(3.0,4.0))

ST_Distance(sphericalGeography, sphericalGeography)

두 개의 구면 지리점 사이의 대원 거리(미터)를 double로 반환합니다. 예시

SELECT ST_Distance(to_spherical_geography(ST_Point(61.56, -86.67)),to_spherical_geography(ST_Point(61.56, -86.68)))

ST_EndPoint(geometry)

line geometry 데이터 형식의 마지막 점을 point geometry 데이터 형식으로 반환합니다. 예시

SELECT ST_EndPoint(ST_Line('linestring(0 2, 2 2)'))

ST_Geometries(geometry)

지정된 컬렉션의 geometry 배열을 반환합니다. 지정된 geometry가 다중 geometry가 아닌 경우 1 요소 배열을 반환합니다. 지정된 geometry가 비어 있으면 null을 반환합니다.

예를 들어, MultiLineString 객체가 주어진 경우 ST_GeometriesLineString 객체의 배열을 생성합니다. GeometryCollection 객체가 주어지면 ST_Geometries는 구성 요소가 평탄화되지 않은 배열을 반환합니다. 예시

SELECT ST_Geometries(GEOMETRYCOLLECTION(MULTIPOINT(0 0, 1 1), GEOMETRYCOLLECTION(MULTILINESTRING((2 2, 3 3)))))

결과:

array[MULTIPOINT(0 0, 1 1),GEOMETRYCOLLECTION(MULTILINESTRING((2 2, 3 3)))]

ST_GeometryN(geometry, index)

지정된 정수 인덱스의 geometry 요소를 geometry 데이터 형식으로 반환합니다. 인덱스는 1에서 시작합니다. 지정된 geometry가 geometry의 컬렉션(예: GEOMETRYCOLLECTION 또는 MULTI* 객체)인 경우 지정된 인덱스의 geometry를 반환합니다. 지정된 인덱스가 1보다 작거나 컬렉션의 전체 요소 개수보다 크면 null을 반환합니다. 전체 요소 개수를 찾으려면 ST_NumGeometries를 사용합니다. 단일 geometry(예: POINT, LINESTRING 또는 POLYGON)는 한 요소의 컬렉션으로 처리됩니다. 빈 geometry는 빈 컬렉션으로 처리됩니다. 예시

SELECT ST_GeometryN(ST_Point(-158.54, 61.56),1)

ST_GeometryType(geometry)

geometry의 형식을 varchar로 반환합니다. 예시

SELECT ST_GeometryType(ST_Point(-158.54, 61.56))

ST_InteriorRingN(geometry, index)

지정된 인덱스의 내부 링 요소를 반환합니다(인덱스는 1에서 시작). 주어진 인덱스가 1보다 작거나 지정된 geometry에 있는 내부 링의 전체 요소 개수보다 크면 null을 반환합니다. 지정된 geometry가 폴리곤이 아니면 오류가 발생합니다. 전체 요소 개수를 찾으려면 ST_NumInteriorRing를 사용합니다. 예시

SELECT ST_InteriorRingN(st_polygon('polygon ((0 0, 1 0, 1 1, 0 1, 0 0))'),1)

ST_InteriorRings(geometry)

지정된 geometry에서 검색된 모든 내부 링의 geometry 배열을 반환하거나, 폴리곤에 내부 링이 없는 경우 빈 배열을 반환합니다. 지정된 geometry가 비어 있으면 null을 반환합니다. 지정된 geometry가 다각형이 아니면 오류가 발생합니다. 예시

SELECT ST_InteriorRings(st_polygon('polygon ((0 0, 1 0, 1 1, 0 1, 0 0))'))

ST_IsClosed(geometry)

입력으로 linemultiline geometry 데이터 형식만 가져옵니다. 라인이 닫힌 경우에만 TRUE(boolean 형식)를 반환합니다. 예시

SELECT ST_IsClosed(ST_Line('linestring(0 2, 2 2)'))

ST_IsEmpty(geometry)

입력으로 linemultiline geometry 데이터 형식만 가져옵니다. 지정된 geometry가 비어 있는 경우, 즉 line 시작 및 끝 값이 일치하는 경우에만 TRUE(boolean 형식)를 반환합니다. 예시

SELECT ST_IsEmpty(ST_Point(1.5, 2.5))

ST_IsRing(geometry)

line 형식이 닫히고 단순한 경우에만 TRUE(boolean 형식)를 반환합니다. 예시

SELECT ST_IsRing(ST_Line('linestring(0 2, 2 2)'))

ST_IsSimple(geometry)

지정된 geometry에 변칙적인 기하학적 점(예: 자체 교차 또는 자체 접점)이 없으면 true를 반환합니다. geometry가 단순하지 않은 이유를 확인하려면 geometry_invalid_reason()을 사용합니다. 예시

SELECT ST_IsSimple(ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]))

ST_IsValid(geometry)

지정된 geometry가 잘 형성되어 있는 경우에만 true를 반환합니다. geometry가 잘 형성되지 않은 이유를 확인하려면 geometry_invalid_reason()을 사용합니다. 예시

SELECT ST_IsValid(ST_Point(61.56, -86.68))

ST_Length(geometry)

double 형식으로 line 길이를 반환합니다. 예시

SELECT ST_Length(ST_Line('linestring(0 2, 2 2)'))

ST_NumGeometries(geometry)

컬렉션의 geometry 개수를 정수로 반환합니다. geometry가 geometry의 컬렉션인 경우(예: GEOMETRYCOLLECTION 또는 MULTI* 객체) geometry의 개수를 반환합니다. 단일 geometry는 1을 반환하고 빈 geometry는 0을 반환합니다. GEOMETRYCOLLECTION 객체의 빈 geometry는 1개의 geometry로 계수됩니다. 예를 들어 아래의 경우에는 1로 평가됩니다.

ST_NumGeometries(ST_GeometryFromText('GEOMETRYCOLLECTION(MULTIPOINT EMPTY)'))

ST_NumInteriorRing(geometry)

polygon geometry의 내부 링 개수를 bigint 형식으로 반환합니다. 예시

SELECT ST_NumInteriorRing(ST_Polygon('polygon ((0 0, 8 0, 0 8, 0 0), (1 1, 1 5, 5 1, 1 1))'))

ST_NumPoints(geometry)

geometry의 지점 개수를 bigint 형식으로 반환합니다. 예시

SELECT ST_NumPoints(ST_Point(1.5, 2.5))

ST_PointN(lineString, index)

지정된 정수 인덱스의 지정된 라인 스트링의 꼭지점을 point geometry 데이터 형식으로 반환합니다. 인덱스는 1에서 시작합니다. 주어진 인덱스가 1보다 작거나 컬렉션의 전체 요소 개수보다 크면 null을 반환합니다. 전체 요소 개수를 찾으려면 ST_NumPoints를 사용합니다. 예시

SELECT ST_PointN(ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]),1)

ST_Points(geometry)

지정된 선 스트링 geometry 객체의 점 배열을 반환합니다. 예시

SELECT ST_Points(ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]))

ST_StartPoint(geometry)

line geometry 데이터 형식의 첫 점을 point geometry 데이터 형식으로 반환합니다. 예시

SELECT ST_StartPoint(ST_Line('linestring(0 2, 2 2)'))

ST_X(point)

지점의 X 좌표를 double 형식으로 반환합니다. 예시

SELECT ST_X(ST_Point(1.5, 2.5))

ST_XMax(geometry)

double 형식으로 geometry의 최대 X 좌표를 반환합니다. 예시

SELECT ST_XMax(ST_Line('linestring(0 2, 2 2)'))

ST_XMin(geometry)

double 형식으로 geometry의 최소 X 좌표를 반환합니다. 예시

SELECT ST_XMin(ST_Line('linestring(0 2, 2 2)'))

ST_Y(point)

지점의 Y 좌표를 double 형식으로 반환합니다. 예시

SELECT ST_Y(ST_Point(1.5, 2.5))

ST_YMax(geometry)

double 형식으로 geometry의 최대 Y 좌표를 반환합니다. 예시

SELECT ST_YMax(ST_Line('linestring(0 2, 2 2)'))

ST_YMin(geometry)

double 형식으로 geometry의 최소 Y 좌표를 반환합니다. 예시

SELECT ST_YMin(ST_Line('linestring(0 2, 2 2)'))