{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# [모듈 1.1] 데이터 준비\n", "\n", "이 노트북에서는 아래와 같이 데이터 준비를 합니다.\n", "- 노트북에서 사용할 변수를 설정합니다.\n", "- 전처리 스텝에서 사용할 원본 데이터 세트를 S3에 업로딩 합니다.\n", "- 훈련 스텝에서 개별적으로 사용할 전처리된 데이터 세트를 S3에 업로딩 합니다.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 0.세이지 메이커에 연결된 디폴트 S3 버킷 이름 가져오기\n", "\n", "- S3 디폴트 버킷을 가져옵니다. 다른 버킷 이름을 기술하셔도 됩니다." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "bucket: sagemaker-us-east-1-051065130547\n" ] } ], "source": [ "import sagemaker\n", "import os\n", "import pandas as pd\n", "\n", "DEFAULT_BUCKET = True\n", "if DEFAULT_BUCKET:\n", " sagemaker_session = sagemaker.session.Session()\n", " bucket = sagemaker_session.default_bucket()\n", "else:\n", " bucket = \"<사용자 버켓 이름>\"\n", " \n", "print(\"bucket: \", bucket)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. 노트북 변수 설정\n", "---" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# 프로젝트 변수\n", "project_prefix = 'sagemaker-webinar-pipeline-advanced'\n", "\n", "# 원본 데이터 위치 \n", "dataset_prefix = f'{project_prefix}/input'\n", "# 전처리 결과 데이터 위치\n", "preproc_dataset_prefix = f'{project_prefix}/preporc'\n", "\n", "# 노트북안에서 데이터 위치\n", "data_dir = '../../data/raw'\n", "preproc_data_dir = 'preproc'\n", "\n", "claim_data_path = f\"{data_dir}/claims.csv\"\n", "customers_data_path = f\"{data_dir}/customers.csv\"\n", "\n", "train_data_path = f\"{preproc_data_dir}/train.csv\"\n", "test_data_path = f\"{preproc_data_dir}/test.csv\"\n", "\n", "\n", "# S3에 저장되는 데이터의 기본 폴더 위치\n", "input_data_uri = f\"s3://{bucket}/{dataset_prefix}\"\n", "# 전처리 데이터의 기본 폴더 위치\n", "input_preproc_data_uri = f\"s3://{bucket}/{preproc_dataset_prefix}\"\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "claim_data_path: ../../data/raw/claims.csv\n", "customers_data_path: ../../data/raw/customers.csv\n", "train_data_path: preproc/train.csv\n", "test_data_path: preproc/test.csv\n", "input_data_uri: s3://sagemaker-us-east-1-051065130547/sagemaker-webinar-pipeline-advanced/input\n", "input_preproc_data_uri: s3://sagemaker-us-east-1-051065130547/sagemaker-webinar-pipeline-advanced/preporc\n" ] } ], "source": [ "print(\"claim_data_path: \", claim_data_path)\n", "print(\"customers_data_path: \", customers_data_path)\n", "print(\"train_data_path: \", train_data_path)\n", "print(\"test_data_path: \", test_data_path)\n", "print(\"input_data_uri: \", input_data_uri)\n", "print(\"input_preproc_data_uri: \", input_preproc_data_uri)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. S3에 원본 데이터 세트 업로딩\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "이제 데이터 세트인 claims.csv, customers.csv을 디폴트 버킷으로 업로드합니다. \n", "- `input_data_uri` 변수를 통해 데이터셋의 위치를 저장하고, 추후 사용합니다." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "claims_data_uri in S3: \n", " s3://sagemaker-us-east-1-051065130547/sagemaker-webinar-pipeline-advanced/input/claims.csv\n", "customers_data_uri in S3: \n", " s3://sagemaker-us-east-1-051065130547/sagemaker-webinar-pipeline-advanced/input/customers.csv\n" ] } ], "source": [ "claims_data_uri = sagemaker.s3.S3Uploader.upload(\n", " local_path=claim_data_path, \n", " desired_s3_uri=input_data_uri, \n", ")\n", "print(\"claims_data_uri in S3: \\n\", claims_data_uri)\n", "\n", "customers_data_uri = sagemaker.s3.S3Uploader.upload(\n", " local_path=customers_data_path, \n", " desired_s3_uri=input_data_uri, \n", ")\n", "print(\"customers_data_uri in S3: \\n\", customers_data_uri)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. S3에 전처리 데이터 세트 업로딩\n", "---" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "train_preproc_data_uri: \n", " s3://sagemaker-us-east-1-051065130547/sagemaker-webinar-pipeline-advanced/preporc/train.csv\n", "test_preproc_data_uri: \n", " s3://sagemaker-us-east-1-051065130547/sagemaker-webinar-pipeline-advanced/preporc/test.csv\n" ] } ], "source": [ "train_preproc_data_uri = sagemaker.s3.S3Uploader.upload(\n", " local_path=train_data_path, \n", " desired_s3_uri=input_preproc_data_uri, \n", ")\n", "\n", "\n", "test_preproc_data_uri = sagemaker.s3.S3Uploader.upload(\n", " local_path=test_data_path, \n", " desired_s3_uri=input_preproc_data_uri, \n", ")\n", "print(\"train_preproc_data_uri: \\n\", train_preproc_data_uri)\n", "print(\"test_preproc_data_uri: \\n\", test_preproc_data_uri)\n", "\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2022-03-21 12:16:19 682602 train.csv\n", "2022-03-21 12:16:20 171439 test.csv\n" ] } ], "source": [ "! aws s3 ls {train_preproc_data_uri}\n", "! aws s3 ls {test_preproc_data_uri}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4.변수 저장\n", "---\n", "현재 저장되어 있는 변수를 삭제 합니다." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "%store -z" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "변수가 저장이 되어 있는지 확인 합니다." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Stored 'project_prefix' (str)\n", "Stored 'input_data_uri' (str)\n", "Stored 'input_preproc_data_uri' (str)\n", "Stored 'claims_data_uri' (str)\n", "Stored 'customers_data_uri' (str)\n", "Stored 'train_preproc_data_uri' (str)\n", "Stored 'test_preproc_data_uri' (str)\n", "Stored 'bucket' (str)\n" ] } ], "source": [ "%store project_prefix\n", "%store input_data_uri\n", "%store input_preproc_data_uri\n", "\n", "%store claims_data_uri\n", "%store customers_data_uri\n", "\n", "%store train_preproc_data_uri\n", "%store test_preproc_data_uri\n", "\n", "\n", "%store bucket\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "instance_type": "ml.m5.large", "kernelspec": { "display_name": "conda_python3", "language": "python", "name": "conda_python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.13" } }, "nbformat": 4, "nbformat_minor": 4 }