Amazon Quick Sight 레이어 맵을 사용하면 이제 도시 전역의 매장 위치나 공항에서 출발하는 항공편 같은 지점과 경로를 표시할 수 있습니다. 지리 공간 맵은 기업이 지역의 성과나 고객이 집중된 위치처럼 위치와 연관된 패턴을 파악하는 데 도움을 줍니다. Amazon Quick Sight는 포인트 맵, 필드 맵, 레이어 맵을 포함한 여러 맵 유형으로 이를 지원합니다. 처음 레이어 맵이 출시되었을 때는GeoJSON 파일을 업로드하여 판매 구역이나 지구 같은 사용자 지정 셰이프 레이어를 그리고 해당 셰이프를 데이터 세트와 조인할 수 있었습니다. 이는 지역과 경계에는 적합했지만, 그 안에 있는 개별 위치나 위치 간을 잇는 경로는 다루지 못했습니다.
이제 레이어 맵은 동일한 GeoJSON 워크플로에서 두 가지 지오메트리 유형을 추가로 지원합니다: Point 및 LineString. Point는 개별 매장이나 시설 부지 같은 특정 위치를 표시합니다. LineString은 배송 경로나 공항 간 항공편처럼 위치 간의 경로를 나타냅니다.
Amazon Quick Sight는 Amazon Quick의 비즈니스 인텔리전스(BI) 기능으로, 통합 BI 서비스입니다. 최신 대화형 대시보드, 자연어 쿼리, 픽셀 단위로 정밀한 보고서, 머신 러닝(ML) 인사이트, 대규모 임베디드 분석을 제공합니다. Amazon Quick는 비즈니스 인사이트, 조사, 자동화를 위한 AI 에이전트를 하나의 통합 경험으로 제공하여, 보안 및 액세스 정책을 유지하면서 더 스마트하고 빠르게 작업하도록 돕습니다.
이 게시물에서는 레이어 맵에 필요한 데이터 세트와 GeoJSON 구조를 살펴봅니다. 또한 레이어 맵 비주얼에서 지점과 선이 작동하는 방식과 각각을 언제 선택해야 하는지 설명합니다. 마지막으로 뷰포트 제어, 지오메트리 레이어링, 프로그래밍 방식의 GeoJSON 파일 업데이트를 위한 고급 기법을 다룹니다.
데이터 세트 구조 고려 사항
레이어 맵은 GeoJSON 파일에서 셰이프를 가져오고 Quick Sight 데이터 세트에서 지표를 가져오며, 공유 키가 이 둘을 조인합니다. 각각을 어떻게 구성하느냐에 따라 맵이 표시할 수 있는 내용이 결정됩니다. 이 섹션에서는 시작하기 전에 필요한 것과 GeoJSON 파일이 구성되는 방식을 다룹니다.
사전 조건
Quick Sight에서 레이어 맵을 만들기 전에 필요한 사전 조건은 다음과 같습니다:
- 지오메트리를 설명하는 GeoJSON 파일.
- 지표와 차원을 담고 있는 Quick Sight 데이터 세트.
- Quick Sight 데이터 세트와 GeoJSON 파일 간에 공유되는 조인 키.
- GeoJSON 파일은 .geojson 형식으로 저장되어야 하며, 지원되는 최대 파일 크기는 100 MB입니다.
GeoJSON 파일의 구조
GeoJSON은 지점과 선 같은 지리적 피처를 설명하기 위한 JSON 기반 형식입니다.
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [88.4, 22.6]
},
"properties": { "prop0": "value0" }
}, {
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[88.2, 22.4],
[88.9, 23.1],
[89.5, 22.8],
[90.1, 23.6]
]
},
"properties": { "prop0": "value0" }
}]
}
파일의 구조는 다음과 같습니다:
- FeatureCollection 은 파일 전체입니다. 유형이 FeatureCollection 이며 features 배열.
- 기능 는 하나의 지도 요소입니다. 이 요소는 기하학 (모양)과 a 속성 조인 키를 담고 있는 객체입니다.
- 기하학 ~을 가지고 있다 type (Point, LineString 또는 Polygon)과 그 좌표. 좌표 하나의 [longitude, latitude] ~을 위한 자리 포인트, 그리고 어떤 것에 대한 순서가 지정된 위치 목록 LineString.
Quick Sight 데이터 세트 및 해당 GeoJSON 구성하기
Quick Sight에서 레이어 맵 시각 자료의 레이어를 구성할 때 고려해야 할 두 가지 기본 설정이 있습니다. 첫 번째는 시각화할 지오메트리 유형으로, GeoJSON 파일의 어느 지오메트리를 렌더링할지 설정합니다: Points, Lines 또는 Polygons. 레이어는 한 번에 한 가지 지오메트리 유형만 렌더링하므로, 앞의 예시처럼 파일에 여러 유형이 섞여 있을 경우 선택된 유형의 Feature만 지도에 표시됩니다. 두 번째는 Shape 파일 키 필드 를 데이터셋 키 필드와 일치시키는 것으로, 이를 통해 GeoJSON의 각 Feature가 Quick Sight 데이터셋의 행과 연결됩니다. 필드 이름이 동일할 필요는 없지만 값은 동일해야 합니다. 다음 두 예시는 이 과정을 처음부터 끝까지 보여주며, 먼저 LineString 레이어, 그다음 Point 레이어입니다.
예: LineString 레이어
JFK에서 로스앤젤레스 같은 목적지 도시로 가는 항공편을 보여주는 예시 데이터를 살펴보겠습니다. 단일 데이터 포인트에 대한 GeoJSON 구조는 다음과 같이 구성됩니다:
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[-73.7781, 40.6413],
[-85.5627, 40.6407],
[-97.1415, 39.4569],
[-108.1612, 37.1753],
[-118.4085, 33.9416]
]
},
"properties": { "route_id": "JFK-LAX" }
}
Quick Sight 데이터세트의 해당 행에는 다음 정보가 포함되어 있습니다:
그림 1: route_id로 키가 지정된 JFK-LAX 노선의 데이터셋 행
그 route_id 해당 필드는 Quick Sight 데이터셋을 GeoJSON 파일과 조인하는 데 사용됩니다. GeoJSON에는 경로당 하나의 피처가 있고, 데이터셋에는 경로당 하나의 행이 있습니다. 시각화할 Geometry 유형은 Lines로 설정됩니다.
Figure 2: JFK-LAX 노선이 LineString 레이어로 표현된 모습
예시: 포인트 레이어
롱아일랜드시티(Long Island City)와 같은 소매점 위치를 보여주는 예제 데이터를 생각해 보겠습니다. 단일 데이터 포인트의 GeoJSON 구조는 다음과 같이 구성됩니다:
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-73.9490, 40.7447]
},
"properties": { "store_id": "S-109" }
}
Quick Sight 데이터셋의 해당 행에는 다음 정보가 포함되어 있습니다:
그림 3: store_id를 키로 사용하는 매장의 데이터셋 행
이 store_id 필드는 Quick Sight 데이터셋을 GeoJSON 파일과 조인하는 데 사용됩니다. GeoJSON에는 매장당 하나의 feature가 있고, 데이터셋에는 매장당 하나의 행이 있습니다. 시각화할 Geometry 유형은 Points로 설정됩니다.
그림 4: Point 레이어로 표시된 매장
레이어 맵 비주얼의 라인
레이어 맵 비주얼은 이제 LineString 지오메트리를 지원하며, 순서가 지정된 좌표 목록을 하나의 경로로 연결합니다. 데이터 구조 섹션에서 다루었듯이 각 경로는 하나의 feature이며, 그 좌표는 맵이 순서대로 연결하는 위치들입니다.
위치 간의 관계를 보여주고자 할 때, 예를 들어 비행 경로, 배송 경로, 해상 운송 레인 또는 파이프라인 구간과 같은 경우에 라인을 사용하십시오. 비주얼은 로드 시점에 데이터에서 생성하는 것이 아니라 GeoJSON 파일의 좌표로부터 각 경로를 그립니다. 조인된 데이터셋의 필드로 라인 색상 인코딩을 결정할 수 있으므로, 해당 필드가 나타내는 값에 따라 경로를 그룹화할 수 있습니다. 색상 외에도 너비 및 불투명도 조절 기능으로 라인을 사용자 지정하여 맵에서 시각적 두드러짐과 명확성을 조정할 수 있습니다. GeoJSON properties 객체의 조인 키는 각 LineString을 툴팁과 색상의 기반이 되는 데이터셋 행과 연결합니다.
예를 들어, 공항 운영팀이 특정 날짜에 뉴욕(JFK)을 출발하는 항공편을 맵에 표시할 수 있습니다. GeoJSON 파일에는 경로당 하나의 LineString이 있으며, 데이터셋과 조인되는 경로 ID를 키로 사용합니다. 각 라인은 JFK에서 시작하여 로스앤젤레스, 시카고, 마이애미와 같은 목적지에서 끝납니다. 데이터셋은 툴팁에 표시되는 출발지, 목적지 및 항공사를 제공합니다.
그림 5: JFK를 출발하는 항공편이 여러 목적지로 향하는 LineString 경로로 표현된 모습
레이어 맵 비주얼의 포인트
Amazon Quick Sight는 위치 이름을 자동으로 지오코딩하고 SPICE 일정 또는 Direct Query 연결에 따라 새로 고침되는 포인트 맵 비주얼 유형 을 제공합니다. 동적 포인트 크기 조절, 색상 인코딩, 클러스터 포인트 및 히트맵 밀도 그라디언트와 같은 포인트 스타일을 지원합니다. 자주 변경되는 데이터와 그 변경 사항에 맵이 시각적으로 반응하기를 원하는 경우에 가장 적합합니다.
레이어 맵 비주얼에서 GeoJSON 포인트 레이어가 지원됨에 따라, Quick Sight는 몇 가지 주요 차이점이 있는 두 번째 포인트 매핑 기능을 제공합니다. 레이어 맵 비주얼 포인트는 균일한 마커 크기를 사용하며 지오코딩을 지원하지 않으므로, GeoJSON 파일에 명시적인 좌표를 제공해야 합니다. 그 대신 뷰포트를 정밀하게 제어하여 맵을 정확한 지리적 영역에 고정하고, 패닝 및 줌을 비활성화할 수 있습니다.
다음 표는 주요 차이점을 요약합니다:
| 기능 | 포인트 맵 | 레이어 맵 비주얼 포인트 |
| 데이터 소스 | 데이터셋의 위도/경도 값 또는 지리 위치 이름 | 공유 키로 데이터셋과 조인된 GeoJSON Point feature |
| 지오코딩 | 도시, 카운티, 주, 국가, 우편번호를 자동으로 인식 | 사용 불가. GeoJSON 파일에 명시적인 좌표를 제공해야 함 |
| 위치 업데이트 | 위치 값이 변경되면 SPICE 새로 고침 또는 Direct Query에 따라 매핑이 자동으로 업데이트됨 | 비주얼은 포인트 위치에 정적 GeoJSON 파일을 사용함. 지오메트리를 업데이트하려면 수동 재업로드 또는 API 호출 필요 |
| 뷰포트 | 데이터에 자동으로 맞춰지며, 패닝 및 줌이 항상 활성화됨 | 기본적으로 자동 맞춤되며, 패닝 및 줌 허용 여부를 설정할 수 있습니다 |
| 외관 | 크기와 색상을 데이터세트에서 인코딩할 수 있습니다. 포인트 스타일 구성 가능(기본, 클러스터, 히트맵) | 균일한 마커 크기, 채우기 불투명도, 테두리 색상 및 두께를 사용자 지정할 수 있습니다. 색상은 데이터세트에서 인코딩할 수 있습니다 |
다음의 경우 레이어 맵 시각 포인트를 선택하세요:
- 잠긴 고정 뷰포트가 필요한 경우.
- 귀하의 위치는 각 데이터 새로고침마다 변경되는 것이 아니라 지역 사무소, 물류 센터, 소매 매장 등 고정되고 선별된 장소입니다.
- 다른 지오메트리 유형과 포인트를 결합할 계획입니다(고급 사용 사례 섹션에서 다룹니다).
지역 관리자들이 Quick Sight 대시보드를 사용하여 도시권 전역의 매장 실적을 추적하는 소매 브랜드를 생각해 보세요. GeoJSON 파일에는 각 매장에 대한 Point 피처가 포함되어 있으며, 매장 ID 속성이 데이터세트와 조인됩니다. 데이터세트에는 툴팁과 색상 인코딩을 구동하는 지표(매장 유형, 월간 매출, 일일 방문자 수)가 들어 있습니다. 도시권을 포괄하는 줌 레벨로 지도를 배치한 다음, 지도 탐색을 비활성화하여 매번 로드될 때 일관된 보기로 지도가 렌더링되도록 합니다. 관리자가 실수로 줌을 축소해 국가 또는 전 세계 보기로 전환할 수 없습니다.
Figure 6: 지도 탐색을 비활성화하여 메트로 지역 보기를 고정한 상태에서 점으로 표시된 매장 위치
고급 사용 사례
지금까지의 섹션에서는 표준 레이어 맵 설정 방법을 다루었습니다. 독자에게 보이는 내용을 더 세밀하게 제어하거나, 하나의 뷰에서 여러 지오메트리 유형을 결합하거나, 시간에 따라 변하는 지오메트리가 필요한 경우에는 다음 기법을 사용하십시오.
뷰포트 제어
레이어 맵 시각적 개체에서 뷰포트를 제어해야 할 때, 원하는 뷰로 수동으로 팬 및 줌할 수 있습니다. 그런 다음 지도 탐색을 비활성화하여 해당 위치를 고정할 수 있습니다. 더 정밀한 경계나 프로그래밍 방식의 제어가 필요한 사용 사례의 경우, Quick Sight API를 통해 시각적 정의에서 정확한 뷰포트 좌표를 설정할 수 있습니다.
레이어 맵 시각화는 뷰포트 구성을 다음에 저장합니다: MapState 내부의 속성 ChartConfiguration. 이 속성은 두 개의 필드를 받습니다:
- 경계: 최소 가시 영역을 정의하는 지리적 좌표(북, 남, 동, 서)입니다.
- 지도 탐색:
ENABLED또는DISABLED독자가 팬 및 줌을 할 수 있는지 여부를 제어합니다.
bounds 속성은 콘솔에 노출되지 않지만, 프로그래밍 방식의 자산 관리를 위해 dashboard 정의 JSON으로 작업할 때 이러한 bounds를 설정할 수 있습니다. 예를 들어, bounds를 정의하려면 다음을 수정하십시오. MapState 시각적 정의 블록에서 블록을 지정한 다음, 다음을 호출하십시오 CreateDashboard 또는 UpdateDashboard API입니다.
이 범위(bounds)는 표시가 보장되는 최소 영역을 정의합니다. 지도는 이 전체 영역이 시각적 컨테이너 안에 들어가도록 확대/축소됩니다. 지도에 여분의 공간이 최소한으로 추가되는 가장 타이트한 맞춤을 위해서는, 범위의 가로세로 비율을 시각적 컨테이너의 형태에 맞추십시오.
기하학적 구조의 레이어링
여러 지오메트리 유형을 하나의 뷰로 결합해야 하는 사용 사례의 경우, 시각적 요소를 서로 겹쳐 쌓을 수 있습니다. 예를 들어, 다음 스크린샷은 고객 위치를 폴리곤으로 정의된 미국 지역 경계 내의 점으로 표시하는 방법을 보여줍니다. 이러한 구성은 어떤 영역에 고객 밀도가 가장 높은지 보여주며, 성과(performance)와 같은 데이터셋에 있는 다른 지표와의 연관성을 분석하는 데 활용할 수 있습니다.
그림 7: 다각형 지역 경계 내에 레이어로 표시된 고객 지점
이 두 번째 예제는 배달 경로를 따라 정차 지점으로서의 지점들을 결합하는 방법을 보여줍니다. LineString이 계획된 경로를 그리고, Point 피처가 경로상의 각 예정된 정차 지점을 표시합니다.
그림 8: 각 정류장에 Point 마커가 표시된 LineString으로 그려진 배송 경로
지오메트리를 레이어로 쌓으려면 다음 단계에 따라 여러 레이어 맵 비주얼을 서로 위에 쌓습니다.
- 자유 형식 레이아웃을 사용하세요: 변경 시트 레이아웃 설정을 자유 형식으로 시각 요소가 서로 겹치고 쌓일 수 있도록 합니다.
- 두 개의 레이어 맵 시각 요소를 생성합니다: 단일 보기로 결합할 두 개의 레이어 맵 시각 요소를 생성합니다. 예를 들어 하나는 Point GeoJSON 파일을 사용하고 다른 하나는 LineString GeoJSON 파일을 사용합니다.
- 일치하는 경계를 사용합니다: 앞서 설명한 뷰포트 제어 방식을 사용하여 모든 레이어 맵 시각 요소가 동일한 경계를 사용하도록 확인하여 동일한 기본 맵 보기를 갖도록 합니다.
- 이동 및 확대/축소를 비활성화합니다: 각 레이어 맵 시각 요소에 대해 Map options에서 이동 및 확대/축소를 비활성화하여 정렬이 유지되도록 합니다.
- 상위 레이어에서 기본 맵과 배경을 숨깁니다: Display settings에서 상위 시각 요소의 배경을 숨김으로 설정하고 Map options에서 기본 맵을 비활성화합니다.
- 시각 요소를 쌓습니다: 드래그 앤 드롭을 사용하거나 Display settings에서 정확한 크기 및 위치 좌표를 일치시켜 최상위 시각 요소를 기본 레이어 위로 이동합니다.
레이어 순서는 자유 형식 레이아웃에서 시각 요소의 쌓임 순서를 따릅니다. 시각 요소의 스택 내 위치를 변경하려면 시각 요소의 메뉴 아이콘(점 세 개)을 선택한 다음 뒤로 보내기 또는 앞으로 가져오기을 선택합니다. 독자는 가장 위에 있는 시각 요소의 도구 설명에 액세스할 수 있으므로, 독자가 세부 정보를 확인해야 하는 레이어를 맨 위에 배치하십시오. 각 시트는 최대 5개의 레이어 맵 시각 요소를 지원합니다.
동적으로 업데이트되는 GeoJSON
SPICE 또는 Direct Query를 통해 데이터가 새로 고침되는 다른 Quick Sight 시각 요소와 달리, 레이어 맵 지오메트리는 GeoJSON 파일 자체에 존재합니다. 데이터 세트가 일정에 따라 새로 고침될 때 지표는 업데이트되지만(예: 색상이 변경되고 도구 설명 값이 새로 고침됨), 지오메트리는 원래 위치에 그대로 유지됩니다.
지도에 표시되는 내용을 업데이트하려면, 예를 들어 새로운 경로, 새로운 지점 위치 또는 업데이트된 경계를 반영하려면 GeoJSON 파일을 업데이트하고 대시보드를 다시 게시해야 합니다. Analysis에서 레이어 지도 시각적 요소를 편집하고 새 파일을 업로드하는 방식으로 Quick Sight 콘솔을 통해 GeoJSON 파일을 수동으로 교체할 수 있습니다. 이는 분기별로 영역 경계를 업데이트하거나 새 매장 위치를 추가하는 것과 같은 드문 변경 사항에 적합합니다.
자동화, 온디맨드 또는 동적 업데이트의 경우, 다음 단계에 설명된 Amazon Simple Storage Service(Amazon S3)와 Quick Sight API를 사용하는 과정이 필요합니다:
- 새 GeoJSON을 Amazon S3에 업로드합니다: 업데이트된 지오메트리를 생성하여 저장하세요, 다음 위치에: Amazon S3 버킷. 사용자 지정 솔루션은 다음과 같은 다른 AWS 서비스를 사용할 수 있습니다. Amazon Location Service GeoJSON 파일을 생성합니다.
- 대시보드 정의에서 해당 파일을 참조하세요: 대시보드 정의에는 다음이 포함되어 있습니다 StaticFiles 배열에 a
SpatialStaticFile각 GeoJSON 파일의 항목에 대해 3. 파일 참조를 업데이트된 파일 항목의 S3 위치로 수정하세요. - UpdateDashboard API를 호출하십시오: 다음을 사용하여 새 파일 참조가 포함된 업데이트된 정의를 제출하십시오: UpdateDashboard API.
- UpdateDashboardPublishedVersion API를 호출합니다: 변경 사항을 게시하여 다음을 보유한 대시보드 읽기 사용자에게 표시되도록 합니다: UpdateDashboardPublishedVersion API.
다음 예제는 이 패턴을 사용하여 임베디드 대시보드에서 온디맨드 지도 업데이트를 지원함으로써 위치와 경유지 간의 최적 경로를 생성합니다. 이 게시물의 범위를 벗어나기는 하지만, 앞서 설명한 각 접근 방식을 결합하는 고급 사용 사례입니다.
그림 9: 임베디드 대시보드에서의 온디맨드 경로 생성
결론
이 게시물에서는 Amazon Quick Sight 레이어 지도에서 Point 및 LineString 지오메트리를 사용하여 특정 위치와 해당 위치 간의 경로를 표시하는 방법을 보여주었습니다. 레이어 지도에 필요한 GeoJSON 구조와 데이터 세트 조인을 다루었고, 레이어 지도 포인트를 기본 포인트 지도와 비교했습니다. 또한 뷰포트를 제어하고, 개별 시각 자료를 하나의 보기로 레이어링하고, Amazon S3와 Quick Sight API로 GeoJSON 파일을 새로 고치는 고급 기법도 살펴보았습니다.
레이어 지도에 대해 자세히 알아보려면 Amazon Quick Sight 레이어 지도 문서를 참조하십시오. Amazon Quick Community 를 방문하여 동료들과 소통하고 최신 기능과 리소스에 대한 소식을 받아보세요.