---
schema_version: "1"
id: d820ffe5ca577c13301dc9dda3c80ebcf67f0d7e3dec3e35ff7101edcc12561a
title: 데이터베이스의 공간 데이터에 연결
collection: tableau
version: current
locale: ko-kr
portal_url: https://docs.salesforce.com/tableau/current/ko-kr/pro/desktop/maps_spatial_sql.md
canonical_url: https://help.tableau.com/current/pro/desktop/ko-kr/maps_spatial_sql.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 6d8799f10b4a409c20fe8aecbef1dfdd635d251a7434472083d189e8b007fcf1
description: Connect to spatial data in a database and use custom SQL or RAWSQL for analysis.
---
[주요 콘텐츠로 건너뛰기](#main-content)

# 데이터베이스의 공간 데이터에 연결

데이터베이스에 저장된 공간 열을 사용하여 Tableau의 맵 비주얼리제이션을 작성할 수 있습니다. 지원되는 공간 데이터 원본에 연결하고 이 원본을 사용하여 공간 데이터를 분석하기 위한 비주얼리제이션을 작성하거나 사용자 지정 SQL 또는 RAWSQL 쿼리에 연결하여 고급 공간 분석을 수행할 수 있습니다.

Tableau는 다음과 같은 커넥터를 사용하여 공간 데이터에 대한 직접 연결을 지원합니다.

- Amazon Redshift
- Microsoft SQL Server
- Google BigQuery(Tableau 2026.2부터)
- Oracle
- PostgreSQL + PostGIS
- Pivotal Greenplum + PostGIS
- Snowflake

이러한 커넥터 사용에 대한 자세한 내용은 [Microsoft SQL Server](https://help.tableau.com/current/pro/desktop/ko-kr/examples_sqlserver.htm), [PostgreSQL](https://help.tableau.com/current/pro/desktop/ko-kr/examples_postgresql.htm), [Pivotal Greenplum Database](https://help.tableau.com/current/pro/desktop/ko-kr/examples_greenplum.htm), [Oracle](https://help.tableau.com/current/pro/desktop/ko-kr/examples_oracle.htm) 또는 [Snowflake](https://help.tableau.com/current/pro/desktop/ko-kr/examples_snowflake.htm) 커넥터 예제를 참조하십시오.

## 지원되는 공간 데이터 및 SRID

Microsoft SQL Server의 경우 **지리 유형** 공간 데이터만 지원됩니다.

**PostgreSQL + PostGIS**, Oracle 및 **Pivotal Greenplum + PostGIS**는 지리 및 기하 도형 유형 필드를 지원합니다. 기하 도형 필드는 지리적 유형(예: POINT, LINESTRING) 및 SRID가 공간 필드로 인식되도록 지정해야 합니다. 지리 필드는 지리적 유형이 인식되도록 지정해야 합니다.

**참고**: PostgreSQL + PostGIS에서는 혼합 기하 도형 유형(점, 라인 및 다각형)을 사용하여 테이블에 연결할 수 있지만 Tableau는 이를 동시에 렌더링하지 않습니다.

다음 **SRID**가 이러한 커넥터에서 지원됩니다.

- NAD83(EPSG:4269)
- ETRS89(EPSG:4258)
- WGS84(EPSG:4326)

PostgreSQL + PostGIS에서 SRID는 기본적으로 항상 WGS84(EPSG:4326)입니다.

Tableau는 이러한 커넥터를 사용하여 라이브 연결과 추출 연결을 모두 지원합니다.

## 공간 열에 연결

**참고**: Tableau 2026.2부터 [Google BigQuery](https://help.tableau.com/current/pro/desktop/ko-kr/examples_googlebigquery.htm)의 공간 열에 연결할 수 있습니다.

1. Tableau를 열고 데이터에 연결합니다.  
    지원되는 커넥터를 사용하여 데이터에 연결하는 방법에 대한 자세한 내용은 [Microsoft SQL Server](https://help.tableau.com/current/pro/desktop/ko-kr/examples_sqlserver.htm), [PostgreSQL](https://help.tableau.com/current/pro/desktop/ko-kr/examples_postgresql.htm), [Oracle](https://help.tableau.com/current/pro/desktop/ko-kr/examples_oracle.htm), [Pivotal Greenplum Database](https://help.tableau.com/current/pro/desktop/ko-kr/examples_greenplum.htm) 또는 [Snowflake](https://help.tableau.com/current/pro/desktop/ko-kr/examples_snowflake.htm) 커넥터 예제를 참조하십시오.
2. 데이터 원본 페이지의 왼쪽 패널에 있는 테이블 아래에서 공간 데이터가 포함된 테이블을 캔버스에 끌어 놓습니다.  
    ![데이터 원본 캔버스로 끌어다 놓고 있는 시애틀 공립학교 데이터 원본입니다.](/tableau/current/ko-kr/pro/desktop/ko-kr/Img/maps_sql2.png)  
    
    공간 열에는 데이터베이스에 있는 것과 동일한 이름이 표시됩니다.
    
    이제 Tableau에서 공간 데이터를 사용하여 맵을 작성할 준비가 되었습니다. 공간 파일에서 맵을 만드는 방법에 대한 자세한 내용은 [공간 데이터에서 맵 뷰 작성](https://help.tableau.com/current/pro/desktop/ko-kr/maps_shapefiles.htm#Build)을 참조하십시오.

## 사용자 지정 SQL 및 RAWSQL을 사용하여 고급 공간 분석 수행

### 사용자 지정 SQL 쿼리에 연결

1. Tableau를 열고 데이터베이스에 연결합니다.
2. 데이터 원본 페이지의 왼쪽 패널에 있는 새 사용자 지정 SQL을 캔버스에 끌어 놓습니다.
3. 사용자 지정 SQL 편집 대화 상자가 나타나면 쿼리를 입력하거나 붙여 넣습니다. 공간 데이터에 사용할 수 있는 사용자 지정 SQL의 예에 대해서는 [사용자 지정 SQL 쿼리 예](#CustomSQL)를 참조하십시오.
4. 작업을 마쳤으면 확인을 클릭합니다.

자세한 내용은 [사용자 지정 SQL 쿼리에 연결](https://help.tableau.com/current/pro/desktop/ko-kr/customsql.htm)을 참조하십시오.

### 사용자 지정 SQL 쿼리 예

다음 쿼리는 예입니다. 사용자 지정 SQL 쿼리는 데이터 원본에 따라 달라진다는 것에 주의하십시오.

#### 데이터에 두 요소 집합(예: School 및 Park)이 있으며 두 요소 집합이 상호 작용하는 위치를 표시하려는 경우:

SELECT S.\[name\] as SchoolName, P.\[name\] as PubSpaceName, S.geog\_schools.STBuffer(<Parameters.Radius>) as Geog\_School, P.geog\_pub\_space as Geog\_Pub\_Space FROM TestSpatial.dbo.seattle\_public\_schools S LEFT JOIN TestSpatial.dbo.seattle\_pub\_space P ON S.geog\_schools.STBuffer(<Parameters.Radius>). STIntersects(P.geog\_pub\_space) = 1

이 예제 쿼리는 공용 공간 다각형이 School에서 지정된 Radius 거리(미터) 내에 포함되는 모든 사례에 대해 행을 생성합니다. 쿼리 결과는 데이터 그리드에서 다음과 같습니다.

![지리적 역할이 적용된 2개의 필드가 있는 데이터 원본 패널입니다.](/tableau/current/ko-kr/pro/desktop/ko-kr/Img/maps_sql3.png)

**참고**: 이 예에서는 "Radius"라는 매개 변수를 참조하십시오. 이 매개 변수는 거리(미터)를 측정하며 설정은 다음과 같습니다.

- 데이터 유형: 실수
- 현재 값: 600
- 허용 가능한 값: 범위
- 최소값: 100
- 최대값 2,000
- 단계 크기: 50

매개 변수를 사용하여 학교와 공용 공간 사이의 관계를 동적으로 조정할 수 있습니다.

자세한 내용은 [사용자 지정 SQL 쿼리에 매개 변수 사용](https://help.tableau.com/current/pro/desktop/ko-kr/customsql.htm#parameters)을 참조하십시오.

#### 특정 요소 주변의 데이터만 필요한 경우

`SELECT * FROM [Test_spatial_<username>].[dbo].[SDOT_Collisions] C WHERE C.geom.STIntersects(geography::STGeomFromText('POINT(-122.344706 47.650388)', 4326).STBuffer(1000))=1`

이 예제 쿼리에서는 요소를 기준으로 1000까지로 데이터를 제한합니다. 반경은 [첫 번째 예에 사용된 매개 변수](#Radius)와 같이 매개 변수일 수 있습니다.

또한 요소와 반경 대신 직사각형을 사용할 수 있습니다. 예를 들면 다음과 같습니다.

`SELECT * FROM [Test_spatial_<username>].[dbo].[SDOT_Collisions] C   WHERE C.geom.STIntersects(geography::STGeomFromText('POLYGON ((-122.3625 47.6642,-122.3625 47.6493,-122.3427 47.6493,-122.3422 47.6642,-122.3625 47.6642))', 4326))=1`

다각형 요소의 진행 순서(시계 방향 및 시계 반대 방향)에 따라 얻는 요소 집합이 달라집니다. SQL Server 함수 ReorientObject()를 사용하여 진행 순서를 반전시킬 수 있습니다.

#### 혼합된 데이터 유형과 관련된 오류가 발생하는 경우

`SELECT *, F.geom.STGeometryType() as geomtype FROM [Test_spatial_<username>].[dbo].[us_historic_fire_perimeters_dd83] F   WHERE F.geom.STGeometryType() = 'MultiPolygon' OR F.geom.STGeometryType() = 'Polygon'`

이 예제 쿼리에서는 Tableau가 Microsoft SQL Server 연결의 기하 도형 유형 공간 데이터를 렌더링할 수 없기 때문에 기하 도형 유형 공간 데이터가 필터링됩니다. 다른 공간 유형도 선택할 수 있습니다.

#### Tableau에서 데이터가 지나치게 느리게 렌더링되는 경우

`SELECT [Id], [OBJECTID], [fire_num], [year_], [acres], [fire_name], [unit_id], [Shape_Leng], [Shape_Area], [geom].Reduce(500) as SimpleGeom   FROM [Test_spatial_<username>].[dbo].[us_historic_fire_perimeters_dd83]   WHERE [geom].Reduce(500).STGeometryType() = 'MultiPolygon' OR [geom].Reduce(500).STGeometryType() = 'Polygon'`

이 예제 쿼리를 사용하면 데이터 크기가 크게 줄어들 수 있습니다. (일부 개체가 요소로 줄어들며 이러한 요소는 무시됩니다.)

### RAWSQL 사용

공간 데이터와 함께 RAWSQL을 사용하려면 RAWSQL\_SPATIAL 또는 RAWSQLAGG\_SPATIAL 함수를 사용하여 계산된 필드를 만들 수 있습니다. 예를 들면 다음과 같습니다. 

`RAWSQL_SPATIAL("Select %1.STIntersection(%2.STBuffer(200))",[school_geom], [park_geom])`

이 수식은 두 값의 교집합에 기반하는 고유한 공간 데이터를 반환합니다.

`RAWSQLAGG_SPATIAL("ST_ConvexHull(ST_Collect(%1))", [Geog])`

`RAWSQLAGG_SPATIAL("ST_ConcaveHull(ST_Collect(%1), %2, false)", [Geog], [ParameterValue])`

이들 각각은 제공된 데이터 요소를 둘러싸는 경계 영역을 반환합니다. ConcaveHull은 이 함수의 매개 변수 값인 정밀도를 기반으로 하는 최소 경계 영역입니다.

공간 데이터와 함께 RAWSQL을 사용하는 것에 대한 자세한 내용은 [통과 함수(RAWSQL)](https://help.tableau.com/current/pro/desktop/ko-kr/functions_functions_passthrough.htm)를 참조하십시오. 계산된 필드를 만드는 방법에 대한 자세한 내용은 [계산된 필드 만들기](https://help.tableau.com/current/pro/desktop/ko-kr/calculations_calculatedfields_create.htm#Create)를 참조하십시오.

> [!WARNING]
> 
> 참고: Oracle에 연결된 경우 RAWSQL 공간 함수를 사용할 수 없습니다.

**참고**: PostgreSQL + PostGIS를 사용할 때 PostGIS 함수와 관련된 RAWSQL을 사용하면 오류가 발생할 수 있습니다.

## 공간 연결 문제 해결

### 성능 문제

많은 수의 레코드가 있는 조인된 공간 열로 작업하는 경우 중복 마크가 발생할 수 있습니다. 이로 인해 성능이 저하될 수 있습니다.

성능을 향상시키려면 조인된 데이터 원본을 추출하십시오. 자세한 내용은 [데이터 추출](https://help.tableau.com/current/pro/desktop/ko-kr/extracting_data.htm)을 참조하십시오.

### Microsoft SQL Server 오류 메시지 및 솔루션

공간 테이블이 지원되지 않는 공간 참조를 사용하는 경우

**오류 메시지:**

Microsoft SQL Server 데이터 원본 '<데이터 원본 이름>'와(과) 통신하는 동안 오류가 발생했습니다.  
잘못된 연결: 데이터 원본에 연결할 수 없습니다.​  
\[Microsoft\]\[ODBC Driver 13 for SQL Server\]\[SQL Server\]피연산자 유형 충돌: 기하 도형은 지리와 호환되지 않습니다.  
\[Microsoft\]\[ODBC Driver 13 for SQL Server\]\[SQL Server\]문을 준비할 수 없습니다.​

**해결 방법:**

- Microsoft SQL Server에서 공간 데이터를 모양 파일로 내보내고 Tableau에서 모양 파일에 연결합니다. 공간 파일 연결은 수천 개의 투영을 지원하는 데이터 변환 프로세스를 거칩니다.​
- Microsoft SQL Server에서 데이터를 내보내고 QGIS 또는 ArcGIS 같은 GIS 도구를 사용하여 데이터를 변환합니다. 그런 다음 Microsoft SQL Server에서 테이블을 다시 로드합니다. ​​

공간 테이블에 여러 유형의 공간 개체가 포함된 경우

오류 메시지:​

동작을 완료할 수 없습니다.​  
공간 작업에서 아직 지원되지 않는 MixedGeometry 또는 MixedGeography가 발생했습니다.​  
공간 작업에서 아직 지원되지 않는 MixedGeometry 또는 MixedGeography가 발생했습니다.​

**해결 방법:**​

사용자 지정 SQL을 사용하여 데이터를 필터링합니다. 자세한 내용은 [혼합된 데이터 유형과 관련된 오류가 발생하는 경우](#mix) 사용자 지정 SQL 예를 참조하십시오.

측정값이 비주얼리제이션에 집계되는 경우

오류 메시지:

Microsoft SQL Server 데이터 원본 '<데이터 원본 이름>'와(과) 통신하는 동안 오류가 발생했습니다.  
잘못된 연결: 데이터 원본에 연결할 수 없습니다.  
집계 또는 하위 쿼리가 포함된 식에 집계 함수를 수행할 수 없습니다.

**해결 방법**:

비주얼리제이션의 측정값 집계 해제: 분석을 선택하고 측정값 집계를 선택 취소합니다.

### PostgreSQL + PostGIS, Oracle 및 Pivotal Greenplum + PostGIS 오류 메시지 및 솔루션

혼합 SRID를 사용하고 SRID 중 하나가 지원되지 않는 경우

**오류 메시지:**

PostgreSQL 데이터 원본 '<데이터 원본 이름>'과(와) 통신하는 동안 오류가 발생했습니다.  
잘못된 연결: 데이터 원본에 연결할 수 없습니다.  
오류: 혼합 SRID 기하에 대한 작업;  
쿼리를 실행하는 동안 오류가 발생했습니다.  
<데이터 원본>의 <쿼리>  
오류: 혼합 SRID 기하에 대한 작업;  
쿼리를 실행하는 동안 오류가 발생했습니다.  
SELECT ST\_ForceCollection(ST\_Collect("mixed\_SRID\_geography"."location"::geometry)) AS "clct:location:nk"  
FROM "public"."mixed\_SRID\_geography" "mixed\_SRID\_geography"HAVING (COUNT(1) > 0)

해결 방법:

비주얼리제이션의 측정값 집계 해제: 분석을 선택하고 측정값 집계를 선택 취소합니다. 이렇게 하면 SRID가 지원되지 않는 오류 메시지와 데이터가 제거됩니다.

공간 테이블이 지원되지 않는 공간 참조를 사용하는 경우

PostgreSQL + PostGIS에서는 지원되지 않는 SRID가 있는 테이블에 연결할 수 있지만 기하 도형 열은 "알 수 없음"으로 표시됩니다.

**해결 방법:**

- PostgreSQL + PostGIS에서 공간 데이터를 모양 파일로 내보내고 Tableau에서 모양 파일에 연결합니다. 공간 파일 연결은 수천 개의 투영을 지원하는 데이터 변환 프로세스를 거칩니다.​
- PostgreSQL + PostGIS에서 데이터를 내보내고 QGIS 또는 ArcGIS 같은 GIS 도구를 사용하여 데이터를 변환합니다. 그런 다음 PostgreSQL + PostGIS에서 테이블을 다시 로드합니다. ​​

쿼리 결과가 1GB 제한을 초과하는 경우

**오류 메시지**:

오류: 배열 크기가 허용된 최대 크기를 초과함(1073741823); 쿼리를 실행하는 동안 오류가 발생했습니다."  
SELECT ST\_Collect(geom) FROM <데이터 원본>

**해결 방법**:

보다 효율적인 계산이 되도록 계산을 다시 작성합니다. [Tableau에서 계산을 만드는 최상의 방법](https://help.tableau.com/current/pro/desktop/ko-kr/calculations_calculatedfields_bestpractices.htm) 또는 [효율적인 계산 만들기](https://help.tableau.com/current/pro/desktop/ko-kr/perf_efficient_calcs.htm)를 참조하십시오.

## 예 - Microsoft SQL Server 공간 데이터에서 맵 작성

다음 예제에서는 워싱턴주 시애틀에서 공원을 중심으로 600미터 이내에 있는 학교를 보여 주는 아래와 같은 맵을 만드는 방법에 대해 설명합니다.

![시애틀의 학교에서 400m 이내에 있는 공공 장소를 나타낸 맵입니다.](/tableau/current/ko-kr/pro/desktop/ko-kr/Img/maps_sql10.png)

이 예제에서는 TestSpatial이라는 데이터베이스에 대한 Microsoft SQL Server 연결을 사용합니다. 이 데이터베이스의 다음과 같은 테이블이 사용됩니다.

- seattle\_schools
- seattle\_public\_space

### 1단계: 연결

1. Tableau Desktop을 열고 Microsoft SQL Server에 연결합니다.
2. 데이터 원본 페이지의 왼쪽 패널에 있는 새 사용자 지정 SQL을 캔버스에 끌어 놓습니다.
3. 사용자 지정 SQL 편집 대화 상자가 나타나면 쿼리를 입력하거나 붙여 넣습니다.
    
    이 예에서 다음과 같은 쿼리를 사용합니다.
    
    SELECT S.\[name\] as SchoolName, P.\[name\] as PubSpaceName, S.geog\_schools.STBuffer(<Parameters.Radius>) as Geog\_School, P.geog\_pub\_space as Geog\_Pub\_Space FROM TestSpatial.dbo.seattle\_public\_schools S FULL JOIN TestSpatial.dbo.seattle\_public\_space P ON S.geog\_schools.STBuffer(<Parameters.Radius>). STIntersects(P.geog\_pub\_space) = 1
    
    **참고**: 이 예에서는 "Radius"라는 매개 변수를 참조하십시오. 자세한 내용은 [사용자 지정 SQL 쿼리에 매개 변수 사용](https://help.tableau.com/current/pro/desktop/ko-kr/customsql.htm#parameters)을 참조하십시오.
    
    이 쿼리 결과는 다음과 같습니다.
    
    ![지리적 역할이 적용된 2개의 필드가 있는 데이터 원본 패널입니다.](/tableau/current/ko-kr/pro/desktop/ko-kr/Img/maps_sql3.png)

### 2단계: 맵 작성

1. 새 워크시트로 이동합니다.
2. **데이터** 패널에서 공간 필드를 두 번 클릭합니다.
    
    이 예에서는 **Geog\_School**을 사용합니다. 필드를 두 번 클릭하면 마크 카드의 세부 정보에 자동으로 추가되고 맵 뷰가 만들어집니다.
    
    ![데이터 요소를 점으로 나타낸 시애틀 맵입니다.](/tableau/current/ko-kr/pro/desktop/ko-kr/Img/maps_sql4.png)
3. **데이터** 패널에서 차원 필드를 마크 카드의 레이블로 끌어 놓습니다. 이 예에서는 **School Name**을 사용합니다.
4. 분석 > 계산된 필드 만들기를 선택합니다.
5. 계산 에디터가 열리면 다음을 수행합니다.
    
    - 계산된 필드의 이름을 지정합니다. 이 예에서 계산된 필드의 이름은 Intersection입니다.
    - RAWSQL 수식을 입력합니다. 이 예에서는 다음 수식을 사용합니다.
        
        RAWSQL\_SPATIAL ("Select %1.STIntersection(%2)", \[Geog\_School\], \[Geog\_Pub\_Space\])
        
        이 수식은 두 기하의 교집합에 기반하는 고유한 공간 데이터를 반환합니다.
    - 작업을 마쳤으면 확인을 클릭합니다.
6. 분석을 선택한 다음 측정값 집계를 선택 취소합니다.
7. **데이터** 패널에서 새 계산된 필드(이 경우 **Intersection**)를 워크시트의 새 계층으로 끌어 놓습니다.
    
    ![이미 맵이 포함된 캔버스에 지리적 필드를 끌어 올 때 나타나는 마크 레이어 추가 상자입니다.](/tableau/current/ko-kr/pro/desktop/ko-kr/Img/maps_sql6.png)  
    Intersection 필드의 새 다각형 계층으로 맵이 업데이트됩니다. 마크는 RAWSQL 수식으로 인해 고유한 공간 모양입니다.  
    ![다양한 공원, 거리, 건물이 표시된 시애틀의 몬트레이크 동네 맵입니다.](/tableau/current/ko-kr/pro/desktop/ko-kr/Img/maps_sql11.png)
8. **데이터** 패널에서 차원 필드를 마크 카드의 세부 정보로 끌어 놓습니다. 이렇게 하면 마크의 집계가 해제됩니다.
    
    이 예에서는 PubSpaceName 차원을 사용합니다.
9. **데이터** 패널에서 동일한 차원 필드를 마크 카드의 색상으로 끌어 놓습니다.
    
    이제 이 예의 각 공용 공간에 색상이 할당됩니다.
    
    ![볼런티어 공원과 주변 거리, 건물의 위치를 표시한 시애틀 맵입니다.](/tableau/current/ko-kr/pro/desktop/ko-kr/Img/maps_sql7.png)

1. 맵에 서식을 지정합니다. 자세한 내용은 [맵 디자인 사용자 지정](https://help.tableau.com/current/pro/desktop/ko-kr/maps_options.htm)을 참조하십시오.
    
    이 예에서는 다음과 같은 서식을 적용합니다.
    
    - School Buffer 마크(Geog\_School)는 회색으로 표시됩니다.
    - School Name 마크 레이블은 흰색으로 표시됩니다.
    - 맵 배경 스타일은 어둡게로 설정됩니다.
    - 도로 및 고속도로 계층은 배경 맵에 표시됩니다.
    
    이제 맵이 완성되었습니다.
    
    ![대화형 패널이 있는 워싱턴 주 시애틀의 학교 맵입니다.](/tableau/current/ko-kr/pro/desktop/ko-kr/Img/maps_sql9.png)

## 참고 항목

[공간 파일에서 Tableau 맵 만들기](https://help.tableau.com/current/pro/desktop/ko-kr/maps_shapefiles.htm)

[사용자 지정 SQL 쿼리에 연결](https://help.tableau.com/current/pro/desktop/ko-kr/customsql.htm)

[통과 함수(RAWSQL)](https://help.tableau.com/current/pro/desktop/ko-kr/functions_functions_passthrough.htm)

[Tableau 계산 시작하기](https://help.tableau.com/current/pro/desktop/ko-kr/calculations_calculatedfields_create.htm)

[공간 조인이 느려지고 모양 파일 또는 GeoJSON에서 가져온 KML 또는 SQL 공간 데이터를 사용하여 반전된 결과를 반환함(영문)](https://kb.tableau.com/articles/issue/spatial-join-slow-and-returns-inverted-results-using-kml-or-sql-spatial-data-imported-from-shapefile-or-geojson?lang=it-it)