테스트 테이블 만들기
이 페이지에서는 코드 스니펫을 테스트하는 데 사용할 수 있는 작은 Bigtable 테이블을 만드는 단계를 설명합니다. 테이블에는 스마트폰과 태블릿의 시계열 데이터가 포함되어 있습니다.
이 안내에서는 Google Cloud 콘솔 및 Bigtable용으로 특별히 빌드된 명령줄 인터페이스인 cbt
CLI를 사용합니다.
시작하기 전에
테스트 테이블을 만들기 전에 다음 기본 요건을 완료하세요.
인증 설정
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
프로덕션 환경의 인증 설정에 대한 자세한 내용은 Set up Application Default Credentials for code running on Google Cloud를 참조하세요.
IAM 역할 부여
테스트 테이블을 만들기 위해 필요한 권한을 얻으려면 관리자에게 프로젝트에 대해 Bigtable 관리자(roles/bigtable.admin
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
cbt
CLI 설치
다음 명령어를 실행하여 cbt
CLI를 설치합니다.
gcloud components install cbt
인스턴스 만들기
선택한 프로젝트에서 테스트 테이블을 저장할 테스트 인스턴스를 만듭니다. 테이블은 작으므로 단일 노드 인스턴스만 필요합니다.
Google Cloud Console에서 인스턴스 만들기 페이지를 엽니다.
인스턴스 이름에
Test instance
를 입력합니다.인스턴스 ID에
test-instance
를 입력합니다.스토리지 유형으로 SSD를 선택합니다.
클러스터 ID에
test-instance-c1
을 입력합니다.리전으로 가까운 리전을 선택합니다.
영역으로 선택한 리전의 영역을 선택합니다.
노드에
1
을 입력합니다.만들기를 클릭하여 인스턴스를 만듭니다.
인스턴스에 연결
.cbtrc
파일을 만들고PROJECT_ID
를 Bigtable 인스턴스를 만든 프로젝트의 ID로 바꿔 프로젝트와 인스턴스를 사용하도록cbt
CLI를 구성합니다.echo project = PROJECT_ID >> ~/.cbtrc && echo instance = test-instance >> ~/.cbtrc
.cbtrc
파일을 올바르게 설정했는지 확인합니다.cat ~/.cbtrc
터미널에는
.cbtrc
파일의 콘텐츠가 표시됩니다. 이는 다음과 유사합니다.project = PROJECT_ID instance = test-instance
이제 인스턴스에서
cbt
CLI를 사용할 수 있습니다.
테스트 테이블 만들기
두 개의 column family가 있는
test_table
이라는 테이블을 만듭니다. 각 column family에 가비지 컬렉션 정책을 설정하여 열당 최대 2개의 셀을 유지합니다.cbt createtable test_table "families=stats_summary:maxversions=2,stats_detail:maxversions=2,cell_plan:maxversions=2"
column family를 나열합니다.
cbt ls test_table
터미널에 다음과 유사한 출력이 표시됩니다.
Family Name GC Policy ----------- --------- stats_detail versions() > 2 stats_summary versions() > 2 cell_plan versions() > 2
테이블 채우기
다음 명령어를 터미널 창에 복사하고
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
cbt read
명령어를 사용하여 테이블에 추가한 데이터를 읽습니다.cbt read test_table
터미널에 다음과 유사한 출력이 표시됩니다. 쓰기 요청에는 타임스탬프가 포함되어 있지 않으므로 타임스탬프는 자동으로 셀에 할당됩니다.
---------------------------------------- phone#4c410523#20190501 cell_plan:data_plan_01gb @ 2023/09/23-11:44:10.535000 "true" cell_plan:data_plan_05gb @ 2023/09/23-11:44:10.535000 "true" stats_summary:connected_cell @ 2023/09/23-11:44:10.535000 "1" stats_summary:connected_wifi @ 2023/09/23-11:44:10.535000 "1" stats_summary:os_build @ 2023/09/23-11:44:10.535000 "PQ2A.190405.003" ---------------------------------------- phone#4c410523#20190502 cell_plan:data_plan_05gb @ 2023/09/23-11:44:11.545000 "true" stats_summary:connected_cell @ 2023/09/23-11:44:11.545000 "1" stats_summary:connected_wifi @ 2023/09/23-11:44:11.545000 "1" stats_summary:os_build @ 2023/09/23-11:44:11.545000 "PQ2A.190405.004" ---------------------------------------- phone#4c410523#20190505\ stats_summary:connected_cell @ 2023/09/23-11:44:12.503000 "0" stats_summary:connected_wifi @ 2023/09/23-11:44:12.503000 "1" stats_summary:os_build @ 2023/09/23-11:44:12.503000 "PQ2A.190406.000" ---------------------------------------- phone#5c10102#20190501 cell_plan:data_plan_10gb @ 2023/09/23-11:44:13.553000 "true" stats_summary:connected_cell @ 2023/09/23-11:44:13.553000 "1" stats_summary:connected_wifi @ 2023/09/23-11:44:13.553000 "1" stats_summary:os_build @ 2023/09/23-11:44:13.553000 "PQ2A.190401.002" ---------------------------------------- tablet#5c10102#20190502 cell_plan:data_plan_10gb @ 2023/09/23-11:44:14.480000 "true" stats_summary:connected_cell @ 2023/09/23-11:44:14.480000 "1" stats_summary:connected_wifi @ 2023/09/23-11:44:14.480000 "0" stats_summary:os_build @ 2023/09/23-11:44:14.480000 "PQ2A.190406.000"
선택사항: 같은 행과 열에 새 값을 씁니다. Bigtable은 새로운 타임스탬프가 있는 새 셀을 만들어 데이터의 새 버전을 저장합니다. 다음 명령어를 터미널 창에 복사하고
Enter
를 누릅니다.cbt set test_table phone#4c410523#20190501 stats_summary:connected_cell=2 stats_summary:connected_wifi=5 stats_summary:os_build=PQ2A.190405.003 cell_plan:data_plan_01gb=true cell_plan:data_plan_05gb=false cbt set test_table phone#4c410523#20190502 stats_summary:connected_cell=2 stats_summary:connected_wifi=5 stats_summary:os_build=PQ2A.190405.004 cell_plan:data_plan_05gb=false cbt set test_table phone#4c410523#20190505 stats_summary:connected_cell=1 stats_summary:connected_wifi=4 stats_summary:os_build=PQ2A.190406.000 cbt set test_table phone#5c10102#20190501 stats_summary:connected_cell=3 stats_summary:connected_wifi=3 stats_summary:os_build=PQ2A.190401.002 cell_plan:data_plan_10gb=false cbt set test_table tablet#5c10102#20190502 stats_summary:connected_cell=2 stats_summary:connected_wifi=0 stats_summary:os_build=PQ2A.190406.000 cell_plan:data_plan_10gb=false
cbt read
명령어를 사용하여 테이블의 모든 데이터를 읽습니다.cbt read test_table
터미널에 다음과 유사한 출력이 표시됩니다. 이제 각 열에 고유한 타임스탬프가 있는 2개의 셀이 포함됩니다.
---------------------------------------- phone#4c410523#20190501 cell_plan:data_plan_01gb @ 2024/07/09-17:48:21.191000 "true" cell_plan:data_plan_01gb @ 2024/07/09-17:46:09.369000 "true" cell_plan:data_plan_05gb @ 2024/07/09-17:48:21.191000 "false" cell_plan:data_plan_05gb @ 2024/07/09-17:46:09.369000 "true" stats_summary:connected_cell @ 2024/07/09-17:48:21.191000 "2" stats_summary:connected_cell @ 2024/07/09-17:46:09.369000 "1" stats_summary:connected_wifi @ 2024/07/09-17:48:21.191000 "5" stats_summary:connected_wifi @ 2024/07/09-17:46:09.369000 "1" stats_summary:os_build @ 2024/07/09-17:48:21.191000 "PQ2A.190405.003" stats_summary:os_build @ 2024/07/09-17:46:09.369000 "PQ2A.190405.003" ---------------------------------------- phone#4c410523#20190502 cell_plan:data_plan_05gb @ 2024/07/09-17:48:22.205000 "false" cell_plan:data_plan_05gb @ 2024/07/09-17:46:10.455000 "true" stats_summary:connected_cell @ 2024/07/09-17:48:22.205000 "2" stats_summary:connected_cell @ 2024/07/09-17:46:10.455000 "1" stats_summary:connected_wifi @ 2024/07/09-17:48:22.205000 "5" stats_summary:connected_wifi @ 2024/07/09-17:46:10.455000 "1" stats_summary:os_build @ 2024/07/09-17:48:22.205000 "PQ2A.190405.004" stats_summary:os_build @ 2024/07/09-17:46:10.455000 "PQ2A.190405.004" ---------------------------------------- phone#4c410523#20190505 stats_summary:connected_cell @ 2024/07/09-17:48:23.206000 "1" stats_summary:connected_cell @ 2024/07/09-17:46:11.402000 "0" stats_summary:connected_wifi @ 2024/07/09-17:48:23.206000 "4" stats_summary:connected_wifi @ 2024/07/09-17:46:11.402000 "1" stats_summary:os_build @ 2024/07/09-17:48:23.206000 "PQ2A.190406.000" stats_summary:os_build @ 2024/07/09-17:46:11.402000 "PQ2A.190406.000" ---------------------------------------- phone#5c10102#20190501 cell_plan:data_plan_10gb @ 2024/07/09-17:48:24.172000 "false" cell_plan:data_plan_10gb @ 2024/07/09-17:46:12.388000 "true" stats_summary:connected_cell @ 2024/07/09-17:48:24.172000 "3" stats_summary:connected_cell @ 2024/07/09-17:46:12.388000 "1" stats_summary:connected_wifi @ 2024/07/09-17:48:24.172000 "3" stats_summary:connected_wifi @ 2024/07/09-17:46:12.388000 "1" stats_summary:os_build @ 2024/07/09-17:48:24.172000 "PQ2A.190401.002" stats_summary:os_build @ 2024/07/09-17:46:12.388000 "PQ2A.190401.002" ---------------------------------------- tablet#5c10102#20190502 cell_plan:data_plan_10gb @ 2024/07/09-17:48:25.194000 "false" cell_plan:data_plan_10gb @ 2024/07/09-17:46:13.391000 "true" stats_summary:connected_cell @ 2024/07/09-17:48:25.194000 "2" stats_summary:connected_cell @ 2024/07/09-17:46:13.391000 "1" stats_summary:connected_wifi @ 2024/07/09-17:48:25.194000 "0" stats_summary:connected_wifi @ 2024/07/09-17:46:13.391000 "0" stats_summary:os_build @ 2024/07/09-17:48:25.194000 "PQ2A.190406.000" stats_summary:os_build @ 2024/07/09-17:46:13.391000 "PQ2A.190406.000"
테스트 데이터 사용
이제 test-instance
에서 test_table
을 사용하여 코드 샘플 또는 쿼리를 테스트할 수 있습니다.
삭제
이 단계 중에 만든 리소스의 비용이 Google Cloud 계정에 청구되지 않도록 하려면 테스트를 완료한 즉시 인스턴스를 삭제합니다. .cbtrc 파일을 삭제하면 다른 프로젝트에서 작업할 수 있습니다.
인스턴스를 보존하되 테이블을 삭제하려면
deletetable
명령어를 사용할 수 있습니다.cbt deletetable test_table
추가 테스트에 인스턴스를 사용하지 않을 경우 인스턴스를 삭제합니다. 이 작업은 테이블도 삭제합니다.
cbt deleteinstance test-instance
.cbtrc 파일을 삭제합니다.
rm ~/.cbtrc