영어로 읽기

다음을 통해 공유


빠른 시작: sqlcmd를 사용하여 컨테이너에 데이터베이스의 새 로컬 복사본 만들기

이 빠른 시작에서는 sqlcmd의 단일 명령을 사용하여 새 컨테이너를 만들고 해당 컨테이너에 데이터베이스를 복원하여 개발 또는 테스트를 위해 데이터베이스의 새 로컬 복사본을 만듭니다.

필수 조건

설명

패키지 관리자를 통해 sqlcmd(Go)를 설치하면 sqlcmd(ODBC)가 환경 경로의 sqlcmd(Go)로 바뀝니다. 이 변경 내용을 적용하려면 현재 명령줄 세션을 닫고 다시 열어야 합니다. sqlcmd(ODBC)는 제거되지 않으며 실행 파일에 전체 경로를 지정하여 계속 사용할 수 있습니다.

PATH 변수를 업데이트하여 우선 순위를 지정하는 버전을 나타낼 수도 있습니다. Windows 11에서 이렇게 하려면 시스템 설정을 열고 정보 > 고급 시스템 설정으로 이동합니다. 시스템 속성이 열리면 [환경 변수] 버튼을 선택합니다. 아래쪽 절반의 시스템 변수에서 [경로]를 선택한 다음 [편집]을 선택합니다. sqlcmd(Go)가 저장되는 위치(기본값은 C:\Program Files\sqlcmd)가 C:\Program Files\Microsoft SQL Server\<version>\Tools\Binn 앞에 나열된 경우 sqlcmd(Go)가 사용됩니다.

sqlcmd(ODBC)를 다시 기본값으로 설정하도록 순서를 되돌릴 수 있습니다.

sqlcmd(Go) 다운로드 및 설치

sqlcmd(Go)는 Microsoft Windows, macOS, Linux에서 플랫폼 간 설치가 가능합니다. 1.6보다 최신 버전은 일부 패키지 관리자에서 제공되지 않을 수 있습니다. 해당 가용성에 대한 예상 날짜는 아직 없습니다.

apt(Debian/Ubuntu)

  1. 공용 리포지토리 GPG 키를 가져옵니다.

    curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
    
  2. ubuntu/20.04 세그먼트가 debian/11, ubuntu/20.04 또는 ubuntu/22.04일 수 있는 Microsoft 리포지토리를 추가합니다.

    add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/prod.list)"
    
  3. aptsqlcmd(Go)를 설치합니다.

    apt-get update
    apt-get install sqlcmd
    

yum (Fedora)

  1. Microsoft 리포지토리 키를 가져옵니다.

    rpm --import https://packages.microsoft.com/keys/microsoft.asc
    
  2. 저장소 구성 파일을 다운로드합니다. 여기서 fedora/32 세그먼트는 opensuse/42.3, rhel/8, 또는 sles/15일 수 있습니다. OS 버전이 이러한 옵션 중 하나에 직접 해당하지 않는 경우 버전에서 리포지토리 구성 파일을 사용할 수 있습니다.

    curl -o /etc/yum.repos.d/packages-microsoft-com-prod.repo https://packages.microsoft.com/config/fedora/40/prod.repo
    
  3. yum으로 sqlcmd(Go)를 설치합니다.

    yum install sqlcmd
    

직접 다운로드

  1. GitHub 코드 리포지토리의 -linux-x64.tar.bz2(Go) -linux-arm.tar.bz2 릴리스에서 해당 또는 자산을 다운로드합니다.

  2. 다운로드한 zip 폴더에서 sqlcmd 파일을 추출합니다.

어떤 문제를 해결할 수 있나요?

이 빠른 시작에서는 데이터베이스의 로컬 복사본을 만든 다음 쿼리하여 고객의 지출을 분석하는 프로세스를 안내합니다.

새 컨테이너 생성 및 데이터베이스 복원

최신 버전의 SQL Server를 사용하여 컨테이너에 새 SQL Server 인스턴스를 만듭니다. 또한 이 명령은 WideWorldImporters 데이터베이스를 복원합니다.

새 터미널 창을 열고 다음 명령을 실행합니다.

sqlcmd create mssql --name sql1 --accept-eula --using https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImporters-Full.bak

Azure Data Studio를 사용하여 데이터베이스 쿼리

Azure Data Studio를 열고 데이터를 확인합니다.

  1. 동일한 터미널 창에서 다음 명령을 실행합니다.

    sqlcmd open ads
    
  2. 이제 데이터베이스의 로컬 복사본이 있으므로 쿼리를 실행할 수 있습니다. 다음은 고객의 지출 분석에 사용할 수 있는 쿼리입니다.

    SELECT       bg.BuyingGroupName AS CustomerName
                 ,COUNT(DISTINCT i.InvoiceID) AS InvoiceCount
                 ,COUNT(il.InvoiceLineID) AS InvoiceLineCount
                 ,SUM(il.LineProfit) AS Profit
                 ,SUM(il.ExtendedPrice) AS ExtendedPrice
    FROM         Sales.Invoices i
                 INNER JOIN Sales.Customers c 
                     ON i.CustomerID = c.CustomerID
                 INNER JOIN Sales.InvoiceLines il 
                     ON i.InvoiceID = il.InvoiceID
                 INNER JOIN Sales.BuyingGroups bg 
                     ON c.BuyingGroupID = bg.BuyingGroupID
    GROUP BY     bg.BuyingGroupName
    UNION
    SELECT       c.CustomerName
                 ,COUNT(DISTINCT i.InvoiceID) AS InvoiceCount
                 ,COUNT(il.InvoiceLineID) AS InvoiceLineCount
                 ,SUM(il.LineProfit) AS Profit
                 ,SUM(il.ExtendedPrice) AS ExtendedPrice
    FROM         Sales.Invoices i
                 INNER JOIN Sales.Customers c
                     ON i.CustomerID = c.CustomerID
                 INNER JOIN Sales.InvoiceLines il
                     ON i.InvoiceID = il.InvoiceID
                 LEFT JOIN Sales.BuyingGroups bg
                     ON c.BuyingGroupID = bg.BuyingGroupID
    WHERE        bg.BuyingGroupID IS NULL
    GROUP BY     c.CustomerName
    ORDER BY     Profit DESC
    

문제를 어떻게 해결했나요?

개발 및 테스트 목적으로 데이터베이스의 로컬 복사본을 빠르게 만들 수 있었습니다. 단일 명령을 사용하여 새 로컬 인스턴스를 만들고 최신 백업을 복원했습니다. 그런 다음 다른 명령을 실행하여 Azure Data Studio를 통해 연결했습니다. 그리고 Azure Data Studio를 사용하여 데이터베이스를 쿼리하고 고객의 지출을 분석했습니다.

리소스 정리

데이터베이스를 사용해 보고 다음 명령을 사용하여 컨테이너를 삭제합니다.

sqlcmd delete --force

데모 환경이므로 편의를 위해 --force 플래그를 사용했습니다. 대부분의 경우 의도치 않은 데이터베이스를 실수로 삭제하지 않도록 --force 플래그를 해제하는 것이 좋습니다.


추가 리소스

설명서

학습

모듈

Azure SQL 데이터베이스를 프로비저닝하여 애플리케이션 데이터 저장 - Training

Azure SQL Database가 관계형 데이터베이스에 적합한 이유와 포털에서 데이터베이스를 만들고 Azure Cloud Shell에 연결하는 방법을 알아봅니다.

인증

Microsoft Certified: Azure Database Administrator Associate - Certifications

Microsoft PaaS 관계형 데이터베이스 제공 사항을 사용하여 클라우드, 온-프레미스 및 하이브리드 관계형 데이터베이스에 대한 SQL Server 데이터베이스 인프라를 관리합니다.