다음을 통해 공유


자습서: Visual Studio Code Jupyter Notebooks를 사용하여 Azure Cosmos DB for NoSQL 계정의 데이터를 분석하는 Jupyter Notebooks 만들기

적용 대상: NoSQL

이 자습서에서는 Visual Studio Code Jupyter Notebooks를 사용하여 Azure Cosmos DB for NoSQL 계정과 상호 작용하는 방법을 안내합니다. 계정에 연결하고, 데이터를 가져오고, 쿼리를 실행하는 방법을 알아봅니다.

필수 조건

새 Notebook 만들기

이 섹션에서는 Azure Cosmos 데이터베이스와 컨테이너를 만들고 소매 데이터를 컨테이너로 가져옵니다.

  1. Visual Studio Code를 엽니다.
  2. 명령 팔레트(Ctrl+Shift+P)에서 만들기: 새 Jupyter Notebook 명령을 실행하거나 작업 영역에서 새 .ipynb 파일을 만듭니다.

이제 새 Notebook이 만들어졌으므로 저장하고 AnalyzeRetailData.ipynb와 같은 이름을 지정할 수 있습니다.

SDK를 사용하여 데이터베이스 및 컨테이너 만들기

  1. 기본 코드 셀에서 시작합니다.

  2. Azure.cosmos 패키지를 설치합니다. 계속하기 전에 이 셀을 실행합니다.

    %pip install azure.cosmos
    
  3. 이 자습서에 필요한 모든 패키지를 가져옵니다.

    import azure.cosmos
    from azure.cosmos.partition_key import PartitionKey
    from azure.cosmos import CosmosClient
    
  4. CosmosClient의 새 인스턴스를 만듭니다.

    endpoint = "<FILL ME>"
    key = "<FILL ME>"
    cosmos_client = CosmosClient(url=endpoint, credential=key)
    
  5. 기본 제공 SDK를 사용하여 RetailIngest라는 데이터베이스를 만듭니다.

    database = cosmos_client.create_database_if_not_exists('RetailIngest')
    
  6. 파티션 키가 /CartIDWebsiteMetrics라는 컨테이너를 만듭니다.

    container = database.create_container_if_not_exists(id='WebsiteMetrics', partition_key=PartitionKey(path='/CartID'))
    
  7. 실행을 선택하여 데이터베이스 및 컨테이너 리소스를 만듭니다.

    Visual Studio Code Jupyter Notebook의 Execute 셀 스크린샷

컨테이너로 데이터 가져오기

  1. 새 코드 셀 추가

  2. 코드 셀 내에 다음 코드를 추가하여 이 URL의 데이터를 업로드합니다. https://cosmosnotebooksdata.blob.core.windows.net/notebookdata/websiteData.json.

        import urllib.request
        import json
    
        with urllib.request.urlopen("https://cosmosnotebooksdata.blob.core.windows.net/notebookdata/websiteData.json") as url:
            docs = json.loads(url.read().decode())
    
        for doc in docs:
            container.upsert_item(doc)
    
  3. 셀을 실행합니다. 이 작업을 실행하는 데 45초~1분이 소요됩니다.

데이터 분석

  1. 다른 새 코드 셀을 만듭니다.

  2. 코드 셀에서 SQL 쿼리를 사용하여 Pandas DataFrame을 채웁니다. 이 셀을 실행합니다.

    import pandas as pd
    from pandas import DataFrame
    
    QUERY = "SELECT c.Action, c.Price as ItemRevenue, c.Country, c.Item FROM c"
    results = container.query_items(
        query=QUERY, enable_cross_partition_query=True
    )
    
    df_cosmos = pd.DataFrame(results)
    
  3. 다른 새 코드 셀을 만듭니다.

  4. 코드 셀에서 데이터 프레임의 상위 10개 항목을 출력합니다. 이 셀을 실행합니다.

    df_cosmos.head(10)
    
  5. 명령 실행 결과를 관찰합니다.

    작업 ItemRevenue Country Item
    0 구매함 19.99 북마케도니아 공화국 와이셔츠
    1 조희됨 12.00 파푸아뉴기니 목걸이
    2 조희됨 25.00 슬로바키아(슬로바키아 공화국) 카디건 스웨터
    3 구매함 14.00 세네갈 플립 플롭 신발
    4 조희됨 50.00 파나마 데님 반바지
    5 조희됨 14.00 세네갈 플립 플롭 신발
    6 추가됨 14.00 세네갈 플립 플롭 신발
    7 추가됨 50.00 파나마 데님 반바지
    8 구매함 33.00 팔레스타인 자치 정부 빨간색 상의
    9 조희됨 30.00 몰타 녹색 스웨터
  6. 다른 새 코드 셀을 만듭니다.

  7. 코드 셀에서 Pandas 패키지를 가져와 데이터 프레임의 출력을 사용자 지정합니다. 이 셀을 실행합니다.

    import pandas as pd    
    df_cosmos.groupby("Item").size().reset_index()
    
  8. 명령 실행 결과를 관찰합니다.

    Item 테스트
    0 플립 플롭 신발 66
    1 목걸이 55
    2 애슬레틱 슈즈 111
    ... ... ...
    45 Windbreaker Jacket 56

다음 단계