다음을 통해 공유


자습서: 전용 SQL 풀을 사용하여 데이터 분석

이 자습서에서는 NYC Taxi 데이터를 사용하여 전용 SQL 풀의 기능을 탐색합니다.

  • [전용 SQL 풀 배포]
  • [풀에 데이터 로드]
  • [로드한 데이터 탐색]

필수 조건

전용 SQL 풀 만들기

  1. Synapse Studio의 왼쪽 창에서 분석 풀 아래에 있는 관리>SQL 풀을 차례로 선택합니다.
  2. 새로 만들기를 선택합니다.
  3. 전용 SQL 풀 이름에 대해 SQLPOOL1을 선택합니다.
  4. 성능 수준의 경우 DW100C를 선택합니다.
  5. 검토 + 만들기>만들기를 차례로 선택합니다. 몇 분 안에 전용 SQL 풀이 준비됩니다.

전용 SQL 풀이 SQLPOOL1이라고도 하는 SQL 데이터베이스와 연결됩니다.

  1. 데이터>작업 영역으로 이동합니다.
  2. SQLPOOL1이라는 데이터베이스가 표시되어야 합니다. 표시되지 않으면 새로 고침을 선택합니다.

전용 SQL 풀은 활성 상태인 동안 청구 가능한 리소스를 사용합니다. 비용을 줄이기 위해 풀을 일시 중지할 수 있습니다.

참고 항목

작업 영역에서 새 전용 SQL 풀(이전의 SQL DW)을 만들 때 전용 SQL 풀 프로비저닝 페이지가 열립니다. 프로비저닝은 논리 SQL 서버에서 수행됩니다.

NYC Taxi 데이터를 SQLPOOL1에 로드

  1. Synapse Studio에서 개발 허브로 이동하여 + 단추를 선택하여 새 리소스를 추가한 다음, 새 SQL 스크립트를 만듭니다.

  2. 스크립트 위의 연결 대상 드롭다운 목록에서 SQLPOOL1 풀(이 자습서의 1단계에서 만든 풀)을 선택합니다.

  3. 다음 코드를 입력합니다.

    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 관리자를 설정해야 합니다.

    1. Azure Portal에서 synapse 작업 영역을 검색합니다.
    2. 설정에서 Microsoft Entra ID를 선택합니다.
    3. 관리자 설정을 선택하고 Microsoft Entra ID 관리자를 설정합니다.
  4. 실행 단추를 선택하여 스크립트를 실행합니다.

  5. 이 스크립트는 60초 이내에 완료됩니다. 2백만 행의 NYC Taxi 데이터를 dbo.NYCTaxiTripSmall이라는 테이블에 로드합니다.

전용 SQL 풀에서 NYC Taxi 데이터 검색

  1. Synapse Studio에서 데이터 허브로 이동합니다.

  2. SQLPOOL1>테이블로 이동합니다. (메뉴에 표시되지 않으면 페이지를 새로 고칩니다.)

  3. dbo.NYCTaxiTripSmall 테이블을 마우스 오른쪽 단추로 클릭하고 새 SQL 스크립트>상위 100개 행 선택을 차례로 선택합니다.

  4. 새 SQL 스크립트가 만들어져 실행될 때까지 기다립니다.

  5. SQL 스크립트의 위쪽에서 연결 대상이 자동으로 SQLPOOL1이라는 SQL 풀로 설정됩니다.

  6. 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를 만든 다음, 새 테이블을 쿼리합니다. 이 데이터에서는 총 주행 거리 및 평균 주행 거리와 승객 수 간의 관계를 보여 줍니다.

  7. SQL 스크립트 결과 창에서 결과를 꺾은선형 차트로 시각화하려면 보기차트로 변경합니다. 범주 열PassengerCount로 변경합니다.

정리

비용을 줄이기 위해 전용 SQL 풀을 일시 중지합니다.

  1. synapse 작업 영역에서 관리로 이동합니다.
  2. SQL 풀을 선택합니다.
  3. SQLPOOL1 마우스로 가리키고 일시 중지 단추를 선택합니다.
  4. 일시 중지를 확인합니다.

다음 단계