Geometry in SQL 단계
모든 지리 공간 작업에 전용 단계가 필요한 것은 아닙니다. 단일 행 열 식에 해당하는 모든 작업은 Table Extract 단계의 식 셀로 데이터베이스에서 실행되며 행이 웨어하우스 밖으로 나가지 않으므로, 워크플로 엔진이 아니라 테이블 크기에 맞게 확장됩니다. Alteryx 변환은 Alteryx Create Points 및 Distance 도구에 대해 이 경로를 선택합니다.
이식 가능한 지오메트리 함수
섹션 제목: “이식 가능한 지오메트리 함수”Lakehouse v1과 v2는 지오메트리 함수의 철자가 서로 다릅니다. 예를 들어 ST_MAKEGEOMPOINT와
ST_POINT, ST_ASWKT와 ST_ASTEXT가 그렇습니다. geom_* 계열은
실행 중인 워크스페이스에 맞는 함수로 자동 연결되므로, 한 번 작성한 식이
두 곳 모두에서 작동합니다.
| 식 | Lakehouse v1 | Lakehouse v2 |
|---|---|---|
func.geom_from_wkt(x) |
ST_GEOMETRYFROMWKT |
ST_GEOMETRYFROMTEXT |
func.geom_point(lon, lat) |
ST_MAKEGEOMPOINT |
ST_POINT |
func.geom_as_wkt(g) |
ST_ASWKT |
ST_ASTEXT |
func.geom_contains(a, b) |
ST_CONTAINS |
ST_CONTAINS |
func.geom_within(a, b) |
ST_WITHIN |
ST_CONTAINS, 인수 순서 바꿈 |
func.geom_x(g) |
ST_X |
ST_X |
func.geom_y(g) |
ST_Y |
ST_Y |
점 만들기
섹션 제목: “점 만들기”경도 열과 위도 열로 WKT 점을 만듭니다.
func.geom_as_wkt( func.geom_point( get_column(table, 'Longitude'), get_column(table, 'Latitude'), ))geom_as_wkt는 결과를 WKT로 기록하며, 이는 모든 PlaidCloud 공간 단계가
읽고 쓰는 형식입니다.
두 점 사이의 거리
섹션 제목: “두 점 사이의 거리”거리는 여기서 이식 가능한 표기가 없는 유일한 작업입니다. 두 Lakehouse는 함수와 반환 단위가 모두 다르므로 식이 버전마다 다릅니다.
Lakehouse v2
섹션 제목: “Lakehouse v2”ST_DISTANCE_SPHERE는 좌표 네 개를 받아 미터 단위로 반환합니다.
case( ( and_( get_column(table, 'Origin').like('POINT%'), get_column(table, 'Destination').like('POINT%'), ), func.st_distance_sphere( func.geom_x(func.geom_from_wkt(get_column(table, 'Origin'))), func.geom_y(func.geom_from_wkt(get_column(table, 'Origin'))), func.geom_x(func.geom_from_wkt(get_column(table, 'Destination'))), func.geom_y(func.geom_from_wkt(get_column(table, 'Destination'))), ) * 0.0006213711922373339, ), else_=null,)| 단위 | 미터 기준 계수 |
|---|---|
| 마일 | 0.0006213711922373339 |
| 킬로미터 | 0.001 |
| 미터 | 1 |
| 피트 | 3.280839895013123 |
Lakehouse v1
섹션 제목: “Lakehouse v1”geom_distance는 두 지오메트리에 대한 평면 거리이며 도 단위로 반환하므로,
계수는 미터가 아니라 도에서 변환합니다.
func.geom_distance( func.geom_from_wkt(get_column(table, 'Origin')), func.geom_from_wkt(get_column(table, 'Destination')),) * 69.1709| 단위 | 도 기준 계수 |
|---|---|
| 마일 | 69.1709 |
| 킬로미터 | 111.32 |
| 미터 | 111320.0 |
| 피트 | 364566.929 |
평면 방식이므로 적도에서 멀어질수록 정확도가 떨어지는 근사값입니다. 상권 분석에서 흔한 가까운 거리에서는 문제없지만 대륙 규모에서는 그렇지 않습니다.
v2 형식의 LIKE 'POINT%' 조건은 중요합니다. ST_DISTANCE_SPHERE는 좌표 네 개를 받으므로,
양쪽 중 하나라도 점이 아닌 지오메트리이면 조용히 잘못된 값을 측정하게 됩니다.
CASE는 해당 행에 대해 대신 null을 반환합니다.
대신 단계를 사용해야 하는 경우
섹션 제목: “대신 단계를 사용해야 하는 경우”| 필요한 작업 | 사용할 항목 |
|---|---|
| 각 행에서 다른 테이블의 가장 가까운 행까지의 거리 | Spatial Find Nearest 단계 |
| 공간 조인의 필터로서의 거리 | 공간 매치 |
| 면적, 길이, 중심점 또는 경계 상자 | Spatial Info 단계 |
| 지오메트리의 모양을 바꾸는 모든 작업 | 지리 공간 단계 |
관련 항목
섹션 제목: “관련 항목”- 지리 공간 단계
- 지오메트리 함수(Lakehouse v1)
- 지리 함수(Lakehouse v1) — H3 및 지오해시 인덱싱
- 공간 함수(Lakehouse v2)