테스트 테이블 생성

이 페이지에서는 코드 스니펫을 테스트하는 데 사용할 수 있는 작은 Cloud Bigtable 테이블을 만드는 단계를 설명합니다. 테이블에는 스마트폰과 태블릿의 시계열 데이터가 포함되어 있습니다.

이 안내에서는 Google Cloud 콘솔 및 Bigtable용으로 특별히 빌드된 명령줄 인터페이스인 cbt CLI를 사용합니다.

이 단계를 수행하려면 cbt CLI를 사용한 빠른 시작을 완료해서 CLI를 설정하고 Bigtable 사용 방법을 숙지해야 합니다.

인스턴스 만들기

선택한 프로젝트에서 테스트 테이블을 저장할 테스트 인스턴스를 만듭니다. 테이블은 작으므로 단일 노드 인스턴스만 필요합니다.

  1. Google Cloud Console에서 인스턴스 만들기 페이지를 엽니다.

    인스턴스 만들기

  2. 인스턴스 이름Test instance를 입력합니다.

  3. 인스턴스 IDtest-instance를 입력합니다.

  4. 스토리지 유형으로 SSD를 선택합니다.

  5. 클러스터 IDtest-instance-c1을 입력합니다.

  6. 리전으로 가까운 리전을 선택합니다.

  7. 영역으로 선택한 리전의 영역을 선택합니다.

  8. 노드1을 입력합니다.

  9. 만들기를 클릭하여 인스턴스를 만듭니다.

인스턴스에 연결

  1. 로컬 터미널 창에서 환경 변수 GOOGLE_APPLICATION_CREDENTIALS를 설정합니다. [PATH]를 서비스 계정 키가 포함된 JSON 파일의 파일 경로로 바꿉니다.

       export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

    예를 들면 다음과 같습니다.

       export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/my-key.json"

  2. .cbtrc 파일을 만들고 project-id를 Bigtable 테스트 인스턴스를 만든 프로젝트의 ID로 바꿉니다.

       echo project = project-id > ~/.cbtrc
       echo instance = test-instance >> ~/.cbtrc

  3. .cbtrc 파일을 올바르게 설정했는지 확인합니다.

       cat ~/.cbtrc

    터미널에는 .cbtrc 파일의 콘텐츠가 표시됩니다. 이는 다음과 유사합니다.

    project = project-id
    instance = test-instance

테스트 테이블 생성

  1. 두 개의 column family가 있는 test-table이라는 테이블을 만듭니다. 각 column family에 가비지 컬렉션 정책을 설정하여 열당 최대 2개의 셀을 유지합니다.

       cbt createtable test-table "families=stats_summary:maxversions=2,stats_detail:maxversions=2,cell_plan:maxversions=2"

  2. column family를 나열합니다.

       cbt ls test-table

    터미널에 다음과 유사한 출력이 표시됩니다.

        Family Name       GC Policy
        -----------       ---------
        stats_detail        versions() > 2
        stats_summary       versions() > 2
        cell_plan           versions() > 2

테이블 채우기

  1. 다음 명령어를 터미널 창에 복사하고 Enter를 누릅니다.

       cbt set test-table phone#4c410523#20190501 stats_summary:connected_cell=1 stats_summary:connected_wifi=1 stats_summary:os_build=PQ2A.190405.003 cell_plan:data_plan_01gb=true cell_plan:data_plan_05gb=true
        cbt set test-table phone#4c410523#20190502 stats_summary:connected_cell=1 stats_summary:connected_wifi=1 stats_summary:os_build=PQ2A.190405.004 cell_plan:data_plan_05gb=true
        cbt set test-table phone#4c410523#20190505 stats_summary:connected_cell=0 stats_summary:connected_wifi=1 stats_summary:os_build=PQ2A.190406.000
        cbt set test-table phone#5c10102#20190501 stats_summary:connected_cell=1 stats_summary:connected_wifi=1 stats_summary:os_build=PQ2A.190401.002 cell_plan:data_plan_10gb=true
        cbt set test-table tablet#5c10102#20190502 stats_summary:connected_cell=1 stats_summary:connected_wifi=0 stats_summary:os_build=PQ2A.190406.000 cell_plan:data_plan_10gb=true

  2. cbt read 명령어를 사용하여 테이블에 추가한 데이터를 읽습니다.

       cbt read test-table

    터미널에 다음과 유사한 출력이 표시됩니다. 쓰기 요청에는 타임스탬프가 포함되어 있지 않으므로 타임스탬프는 자동으로 셀에 할당됩니다.

        ----------------------------------------
        phone#4c410523#20190501
          cell_plan:data_plan_01gb                 @ 2020/09/23-11:44:10.535000
            "true"
          cell_plan:data_plan_05gb                 @ 2020/09/23-11:44:10.535000
            "true"
          stats_summary:connected_cell             @ 2020/09/23-11:44:10.535000
            "1"
          stats_summary:connected_wifi             @ 2020/09/23-11:44:10.535000
            "1"
          stats_summary:os_build                   @ 2020/09/23-11:44:10.535000
            "PQ2A.190405.003"
        ----------------------------------------
        phone#4c410523#20190502
          cell_plan:data_plan_05gb                 @ 2020/09/23-11:44:11.545000
            "true"
          stats_summary:connected_cell             @ 2020/09/23-11:44:11.545000
            "1"
          stats_summary:connected_wifi             @ 2020/09/23-11:44:11.545000
            "1"
          stats_summary:os_build                   @ 2020/09/23-11:44:11.545000
            "PQ2A.190405.004"
        ----------------------------------------
        phone#4c410523#20190505
    stats_summary:connected_cell @ 2020/09/23-11:44:12.503000 "0" stats_summary:connected_wifi @ 2020/09/23-11:44:12.503000 "1" stats_summary:os_build @ 2020/09/23-11:44:12.503000 "PQ2A.190406.000" ---------------------------------------- phone#5c10102#20190501 cell_plan:data_plan_10gb @ 2020/09/23-11:44:13.553000 "true" stats_summary:connected_cell @ 2020/09/23-11:44:13.553000 "1" stats_summary:connected_wifi @ 2020/09/23-11:44:13.553000 "1" stats_summary:os_build @ 2020/09/23-11:44:13.553000 "PQ2A.190401.002" ---------------------------------------- tablet#5c10102#20190502 cell_plan:data_plan_10gb @ 2020/09/23-11:44:14.480000 "true" stats_summary:connected_cell @ 2020/09/23-11:44:14.480000 "1" stats_summary:connected_wifi @ 2020/09/23-11:44:14.480000 "0" stats_summary:os_build @ 2020/09/23-11:44:14.480000 "PQ2A.190406.000"

테스트 데이터 사용

이제 test-instance에서 test-table를 사용하여 Cloud Functions로 Cloud Bigtable 사용에서 볼 수 있는 것과 같은 코드 스니펫을 시도할 수 있습니다.

정리

이 단계 중에 만든 리소스의 비용이 Google Cloud 계정에 청구되지 않도록 하려면 테스트를 완료한 즉시 인스턴스를 삭제합니다. .cbtrc 파일을 삭제하면 다른 프로젝트에서 작업할 수 있습니다.

  1. 인스턴스를 보존하되 테이블을 삭제하려면 deletetable 명령어를 사용할 수 있습니다.

       cbt deletetable test-table

  2. 추가 테스트에 인스턴스를 사용하지 않을 경우 인스턴스를 삭제합니다. 이 작업은 테이블도 삭제합니다.

       cbt deleteinstance test-instance

  3. .cbtrc 파일을 삭제합니다.

       rm ~/.cbtrc

다음 단계