자습서: 전용 SQL 풀을 사용하여 데이터 분석
이 자습서에서는 NYC Taxi 데이터를 사용하여 전용 SQL 풀의 기능을 탐색합니다.
- [전용 SQL 풀 배포]
- [풀에 데이터 로드]
- [로드한 데이터 탐색]
필수 조건
- 이 자습서에서는 나머지 빠른 시작의 단계를 완료한 것으로 가정합니다. 특히 Synapse 작업 영역 만들기 빠른 시작에서 만든 'contosodatalake' 리소스를 사용합니다.
전용 SQL 풀 만들기
- Synapse Studio의 왼쪽 창에서 분석 풀 아래에 있는 관리>SQL 풀을 차례로 선택합니다.
- 새로 만들기를 선택합니다.
- 전용 SQL 풀 이름에 대해
SQLPOOL1
을 선택합니다. - 성능 수준의 경우 DW100C를 선택합니다.
- 검토 + 만들기>만들기를 차례로 선택합니다. 몇 분 안에 전용 SQL 풀이 준비됩니다.
전용 SQL 풀이 SQLPOOL1
이라고도 하는 SQL 데이터베이스와 연결됩니다.
- 데이터>작업 영역으로 이동합니다.
- SQLPOOL1이라는 데이터베이스가 표시되어야 합니다. 표시되지 않으면 새로 고침을 선택합니다.
전용 SQL 풀은 활성 상태인 동안 청구 가능한 리소스를 사용합니다. 비용을 줄이기 위해 풀을 일시 중지할 수 있습니다.
참고 항목
작업 영역에서 새 전용 SQL 풀(이전의 SQL DW)을 만들 때 전용 SQL 풀 프로비저닝 페이지가 열립니다. 프로비저닝은 논리 SQL 서버에서 수행됩니다.
NYC Taxi 데이터를 SQLPOOL1에 로드
Synapse Studio에서 개발 허브로 이동하여 + 단추를 선택하여 새 리소스를 추가한 다음, 새 SQL 스크립트를 만듭니다.
스크립트 위의 연결 대상 드롭다운 목록에서
SQLPOOL1
풀(이 자습서의 1단계에서 만든 풀)을 선택합니다.다음 코드를 입력합니다.
IF NOT EXISTS (SELECT * FROM sys.objects O JOIN sys.schemas S ON O.schema_id = S.schema_id WHERE O.NAME = 'NYCTaxiTripSmall' AND O.TYPE = 'U' AND S.NAME = 'dbo') CREATE TABLE dbo.NYCTaxiTripSmall ( [VendorID] bigint, [store_and_fwd_flag] nvarchar(1) NULL, [RatecodeID] float NULL, [PULocationID] bigint NULL, [DOLocationID] bigint NULL, [passenger_count] float NULL, [trip_distance] float NULL, [fare_amount] float NULL, [extra] float NULL, [mta_tax] float NULL, [tip_amount] float NULL, [tolls_amount] float NULL, [ehail_fee] float NULL, [improvement_surcharge] float NULL, [total_amount] float NULL, [payment_type] float NULL, [trip_type] float NULL, [congestion_surcharge] float NULL ) WITH ( DISTRIBUTION = ROUND_ROBIN, CLUSTERED COLUMNSTORE INDEX -- HEAP ) GO COPY INTO dbo.NYCTaxiTripSmall (VendorID 1, store_and_fwd_flag 4, RatecodeID 5, PULocationID 6 , DOLocationID 7, passenger_count 8,trip_distance 9, fare_amount 10, extra 11, mta_tax 12, tip_amount 13, tolls_amount 14, ehail_fee 15, improvement_surcharge 16, total_amount 17, payment_type 18, trip_type 19, congestion_surcharge 20 ) FROM 'https://contosolake.dfs.core.windows.net/users/NYCTripSmall.parquet' WITH ( FILE_TYPE = 'PARQUET' ,MAXERRORS = 0 ,IDENTITY_INSERT = 'OFF' )
팁
읽
Login failed for user '<token-identified principal>'
는 오류가 발생하면 Entra Id 관리자를 설정해야 합니다.- Azure Portal에서 synapse 작업 영역을 검색합니다.
- 설정에서 Microsoft Entra ID를 선택합니다.
- 관리자 설정을 선택하고 Microsoft Entra ID 관리자를 설정합니다.
실행 단추를 선택하여 스크립트를 실행합니다.
이 스크립트는 60초 이내에 완료됩니다. 2백만 행의 NYC Taxi 데이터를
dbo.NYCTaxiTripSmall
이라는 테이블에 로드합니다.
전용 SQL 풀에서 NYC Taxi 데이터 검색
Synapse Studio에서 데이터 허브로 이동합니다.
SQLPOOL1>테이블로 이동합니다. (메뉴에 표시되지 않으면 페이지를 새로 고칩니다.)
dbo.NYCTaxiTripSmall 테이블을 마우스 오른쪽 단추로 클릭하고 새 SQL 스크립트>상위 100개 행 선택을 차례로 선택합니다.
새 SQL 스크립트가 만들어져 실행될 때까지 기다립니다.
SQL 스크립트의 위쪽에서 연결 대상이 자동으로 SQLPOOL1이라는 SQL 풀로 설정됩니다.
SQL 스크립트의 텍스트를 다음 코드로 바꾸고 실행합니다.
SELECT passenger_count as PassengerCount, SUM(trip_distance) as SumTripDistance_miles, AVG(trip_distance) as AvgTripDistance_miles INTO dbo.PassengerCountStats FROM dbo.NYCTaxiTripSmall WHERE trip_distance > 0 AND passenger_count > 0 GROUP BY passenger_count; SELECT * FROM dbo.PassengerCountStats ORDER BY PassengerCount;
이 쿼리는
trip_distance
필드의 집계 데이터가 포함된 테이블dbo.PassengerCountStats
를 만든 다음, 새 테이블을 쿼리합니다. 이 데이터에서는 총 주행 거리 및 평균 주행 거리와 승객 수 간의 관계를 보여 줍니다.SQL 스크립트 결과 창에서 결과를 꺾은선형 차트로 시각화하려면 보기를 차트로 변경합니다. 범주 열을
PassengerCount
로 변경합니다.
정리
비용을 줄이기 위해 전용 SQL 풀을 일시 중지합니다.
- synapse 작업 영역에서 관리로 이동합니다.
- SQL 풀을 선택합니다.
- SQLPOOL1 마우스로 가리키고 일시 중지 단추를 선택합니다.
- 일시 중지를 확인합니다.