콘텐츠로 이동

모든 지리 공간 작업에 전용 단계가 필요한 것은 아닙니다. 단일 행 열 식에 해당하는 모든 작업은 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는 함수와 반환 단위가 모두 다르므로 식이 버전마다 다릅니다.

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

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 단계
지오메트리의 모양을 바꾸는 모든 작업 지리 공간 단계