노트북 다루기

이 가이드는 Cloud Datalab 노트북과 관련된 여러 가지 작업을 설명합니다.

소스 제어

datalab create VM-instance-name을 처음 실행하면 프로젝트에 datalab-notebooks Cloud Source Repository가 추가됩니다(아래에서 'Cloud 원격 저장소'라고 함). Cloud Datalab VM 인스턴스에서 실행 중인 Docker 컨테이너에 생성된 /content/datalab/notebooksgit 저장소의 원격 저장소입니다(아래에서 'Cloud Datalab VM 저장소'라고 함). Google Cloud Console 저장소 페이지에서 클라우드 원격 저장소를 살펴볼 수 있습니다.

git 또는 ungit을 사용하여 Cloud Datalab VM 저장소에서 노트북을 관리할 수 있습니다.

브라우저에서 ungit 사용

Cloud Datalab 컨테이너에는 웹 기반 git 클라이언트 ungit이 포함되어 있고, 이를 사용하여 Cloud Datalab VM 저장소에 커밋하고 Cloud Datalab 브라우저 UI에서 클라우드 원격 저장소로 노트북을 푸시할 수 있습니다.

Cloud Datalab /content/datalab/notebooks 저장소에서 ungit을 열려면 Google Cloud Datalab 메뉴 바의 오른쪽 상단에 있는 저장소 아이콘을 선택합니다.

Cloud Datalab VM 저장소에 브라우저 창이 열립니다.

클라우드 원격 저장소에 노트북 추가

  1. Cloud Datalab 노트북 브라우저 창에서 /datalab/notebooks 폴더로 이동합니다.

  2. '+ 노트북' 아이콘을 선택하여 /datalab/notebooks 폴더에서 새 노트북을 엽니다.

    1. 노트북에 셀을 한 개 이상 추가합니다.
    2. 메뉴 바에서 '제목이 없는 노트북'을 클릭하고 이름을 '새 노트북'으로 변경하여 노트북 이름을 변경합니다.
    3. 노트북→저장 및 체크포인트(Ctrl-s)를 선택하거나 노트북이 자동 저장될 때까지 기다립니다.
  3. Cloud Datalab 노트북 브라우저 창으로 돌아가 ungit 아이콘을 클릭하여 ungit 브라우저 페이지를 엽니다(브라우저에서 ungit 사용 참조). 커밋 제목을 지정하면 New Notebook.ipynb가 Cloud Datalab VM 저장소에 커밋할 수 있습니다.

  4. 노트북을 커밋한 후 ungit 브라우저 페이지에서 datalab-notebooks 클라우드 원격 저장소로 푸시합니다.

명령줄에서 git 사용

소스 제어를 위해 Cloud Datalab UI에서 ungit을 사용하는 대신(브라우저에서 ungit 사용 참조) SSH로 Cloud Datalab VM에 연결하고 VM이나 Cloud Shell에서 실행 중인 터미널에서 git을 실행할 수 있습니다. 그 단계는 다음과 같습니다.

  1. gcloud 명령줄 도구 또는 Cloud Console을 사용하여 SSH로 Cloud Datalab VM에 연결합니다.

    gcloud 명령어

    project-id, zone, instance-name을 삽입한 후 다음 명령어를 실행합니다.
    gcloud compute --project project-id ssh 
    --zone zone instance-name

    Console/SHELL

    Cloud Console VM 인스턴스 섹션으로 이동하여 Cloud Datalab VM 행의 오른쪽에 있는 SSH 메뉴를 확장한 다음 gcloud 명령어 보기를 선택합니다.
    gcloud 명령줄 창이 열리고 gcloud SSH 명령어가 표시됩니다. gcloud SSH 명령어를 복사한 후 붙여 넣어 로컬 터미널에서 실행할 수 있습니다.
  2. SSH로 Cloud Datalab VM에 접속한 후 sudo docker ps 명령어를 실행하여 VM에서 실행 중인 Cloud Datalab Docker 이미지의 컨테이너 ID를 나열합니다. /datalab/run.sh 명령어 및 datalab_datalab-server 이름과 연결된 컨테이너 ID를 복사합니다.
    docker ps
    CONTAINER ID  ...    COMMAND   ...   ...   NAMES
    ...
    b228e3392374   ...   "/datalab/run.sh" ... datalab_datalab-server-...
    ...
    
  3. 이전 단계의 컨테이너 ID를 사용하여 컨테이너 내부에서 대화형 셸 세션을 엽니다.
    docker exec -it container-id bash
    ...
    root@datalab-server-vm-name:/#
    
  4. 컨테이너의 /content/datalab/notebooks 디렉터리로 변경합니다.
    cd /content/datalab/notebooks
    
    이 디렉터리는 git 명령어를 실행할 수 있는 루트 Cloud Datalab VM git 저장소 디렉터리입니다.
    git status
    On branch master
    nothing to commit, working directory clean
    

Cloud Datalab VM에서 노트북 복사

gcloud compute scp 명령어를 사용하여 Cloud Datalab VM 인스턴스의 파일을 복사할 수 있습니다. 예를 들어 Cloud Datalab VM의 datalab/notebooks 디렉터리 콘텐츠를 로컬 머신의 instance-name-notebooks 디렉터리에 복사하려면 instance-name을 Cloud Datalab VM의 이름으로 바꾼 후 다음 명령어를 실행합니다(instance-name-notebooks 디렉터리가 없으면 생성됩니다).

gcloud compute scp --recurse \
  datalab@instance-name:/mnt/disks/datalab-pd/content/datalab/notebooks \
  instance-name-notebooks

Cloud Datalab 백업

Cloud Datalab 인스턴스는 사용자 프로젝트의 Google Cloud Storage 버킷에 사용자 콘텐츠를 주기적으로 백업하여 VM 디스크가 실패하거나 삭제되는 경우에 실수로 사용자 콘텐츠가 손실되는 것을 방지합니다. 기본적으로 Cloud Datalab 인스턴스는 사용자의 모든 콘텐츠를 연결된 디스크에 저장하며 백업 유틸리티는 이 디스크의 루트에서 작동합니다. 백업 작업은 10분마다 실행되고, 전체 디스크의 ZIP 파일을 생성하며, 이를 마지막 백업 ZIP 파일과 비교합니다. 두 파일 간에 차이가 있고 새 변경 사항과 마지막 백업 사이에 충분한 시간이 경과한 경우 ZIP 파일을 업로드합니다. Cloud Datalab은 백업 파일을 Google Cloud Storage에 업로드합니다.

Cloud Datalab은 최근 10시간 동안의 백업, 일일 백업 7개, 주간 백업 20개를 보관하고 이전 백업 파일을 삭제하여 공간을 확보합니다. datalab create 명령어로 Cloud Datalab 인스턴스를 만들 때 --no-backups 플래그를 전달하여 백업을 사용 중지할 수 있습니다.

각 백업 파일 이름은 VM 인스턴스 영역, 인스턴스 이름, 인스턴스 내의 노트북 백업 디렉터리 경로, 타임스탬프, 태그(시간별, 일일 또는 주간)를 사용하여 지정됩니다. 기본적으로 Cloud Datalab은 백업 경로 $project_id.appspot.com/datalab_backups 생성을 시도합니다. 이 경로를 만들 수 없거나 사용자에게 충분한 권한이 없는 경우 $project_id/datalab_backups 경로 생성을 시도합니다. 이 시도가 실패하면 Google Cloud Storage로의 백업이 실패합니다.

백업 복원

백업을 복원하려면 VM 영역, VM 이름, 노트북 디렉터리 및 사람이 읽을 수 있는 타임스탬프를 검사하여 Google Cloud Storage에서 백업 파일을 선택합니다.

샘플 백업 파일 경로: gs://myproject/datalab-backups/us-central1-b/datalab0125/content/daily-20170127102921 /tmp/backup0127.zip

이 샘플 백업은 us-central1-b 영역의 VM datalab0125에 대해 생성되었으며 노트북의 /content 디렉터리에 있는 모든 콘텐츠를 포함합니다. 01/27/2017, 10:29:21에 일일 백업 지점으로 생성되었습니다.

백업 ZIP 파일은 브라우저에서 또는 Google Cloud SDK 설치의 일부로 설치된 gsutil 도구를 사용하여 다운로드될 수 있습니다.

  • 브라우저를 사용하려면 Google Cloud Console로 이동한 다음 왼쪽 탐색 사이드바에서 저장소를 선택합니다. Cloud Datalab 백업 버킷을 탐색한 후 ZIP 파일을 선택하여 디스크로 다운로드합니다.

  • gsutil을 사용하여 백업 파일을 다운로드하려면 gsutil cp gs://backup_path destination_path를 실행합니다. 예를 들어, 위에 설명된 샘플 ZIP 파일을 백업하고 압축을 풀려면 다음 명령어를 실행합니다.

    gsutil cp 
    gs://myproject/datalab-backups/us-central1-b/datalab0125/content/daily-20170127102921
    /tmp/backup0127.zip
    unzip -q /tmp/backup0127.zip -d /tmp/restore_location/

데이터 다루기

Cloud Datalab은 다음 장소에 있는 데이터에 액세스할 수 있습니다.

  • Google Cloud Storage: Cloud Storage의 파일 및 디렉터리는 datalab.storage API를 사용하여 프로그래매틱 방식으로 액세스할 수 있습니다(/datalab/docs/tutorials/Storage/Storage APIs.ipynb 노트북 가이드 참조).

  • BigQuery: SQL 및 datalab.bigquery API를 사용하여 테이블 및 뷰를 쿼리할 수 있습니다(datalab/docs/tutorials/BigQuery/BigQuery/BigQuery APIs.ipynb 노트북 가이드 참조).

  • 영구 디스크의 로컬 파일 시스템: Cloud Datalab VM에 연결된 영구 디스크의 파일 시스템에 파일을 만들거나 복사할 수 있습니다.

데이터가 온프레미스의 다른 위치 또는 다른 클라우드에 있는 경우, gsutil 도구나 Cloud Storage Transfer Service를 사용하여 데이터를 Cloud Storage에 전송할 수 있습니다.