자습서: Visual Studio Code Jupyter Notebooks를 사용하여 Azure Cosmos DB for NoSQL 계정의 데이터를 분석하는 Jupyter Notebooks 만들기
적용 대상: NoSQL
이 자습서에서는 Visual Studio Code Jupyter Notebooks를 사용하여 Azure Cosmos DB for NoSQL 계정과 상호 작용하는 방법을 안내합니다. 계정에 연결하고, 데이터를 가져오고, 쿼리를 실행하는 방법을 알아봅니다.
필수 조건
- 기존 Azure Cosmos DB API for NoSQL 계정.
- 기존 Azure 구독이 있는 경우 새 계정을 만듭니다.
- Azure 구독이 없으신가요? 신용 카드 없이 Azure Cosmos DB를 무료로 사용해 볼 수 있습니다.
- Notebooks를 사용하려면 Visual Studio Code를 설치하고 환경을 설정합니다.
새 Notebook 만들기
이 섹션에서는 Azure Cosmos 데이터베이스와 컨테이너를 만들고 소매 데이터를 컨테이너로 가져옵니다.
- Visual Studio Code를 엽니다.
- 명령 팔레트(Ctrl+Shift+P)에서 만들기: 새 Jupyter Notebook 명령을 실행하거나 작업 영역에서 새 .ipynb 파일을 만듭니다.
팁
이제 새 Notebook이 만들어졌으므로 저장하고 AnalyzeRetailData.ipynb와 같은 이름을 지정할 수 있습니다.
SDK를 사용하여 데이터베이스 및 컨테이너 만들기
기본 코드 셀에서 시작합니다.
Azure.cosmos 패키지를 설치합니다. 계속하기 전에 이 셀을 실행합니다.
%pip install azure.cosmos
이 자습서에 필요한 모든 패키지를 가져옵니다.
import azure.cosmos from azure.cosmos.partition_key import PartitionKey from azure.cosmos import CosmosClient
CosmosClient의 새 인스턴스를 만듭니다.
endpoint = "<FILL ME>" key = "<FILL ME>" cosmos_client = CosmosClient(url=endpoint, credential=key)
기본 제공 SDK를 사용하여 RetailIngest라는 데이터베이스를 만듭니다.
database = cosmos_client.create_database_if_not_exists('RetailIngest')
파티션 키가
/CartID
인 WebsiteMetrics라는 컨테이너를 만듭니다.container = database.create_container_if_not_exists(id='WebsiteMetrics', partition_key=PartitionKey(path='/CartID'))
실행을 선택하여 데이터베이스 및 컨테이너 리소스를 만듭니다.
컨테이너로 데이터 가져오기
새 코드 셀 추가
코드 셀 내에 다음 코드를 추가하여 이 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)
셀을 실행합니다. 이 작업을 실행하는 데 45초~1분이 소요됩니다.
데이터 분석
다른 새 코드 셀을 만듭니다.
코드 셀에서 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)
다른 새 코드 셀을 만듭니다.
코드 셀에서 데이터 프레임의 상위 10개 항목을 출력합니다. 이 셀을 실행합니다.
df_cosmos.head(10)
명령 실행 결과를 관찰합니다.
작업 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 몰타 녹색 스웨터 다른 새 코드 셀을 만듭니다.
코드 셀에서 Pandas 패키지를 가져와 데이터 프레임의 출력을 사용자 지정합니다. 이 셀을 실행합니다.
import pandas as pd df_cosmos.groupby("Item").size().reset_index()
명령 실행 결과를 관찰합니다.
Item 테스트 0 플립 플롭 신발 66 1 목걸이 55 2 애슬레틱 슈즈 111 , , , , , , 45 Windbreaker Jacket 56