테이블 만들기 및 관리

이 페이지에서는 Google Cloud 콘솔, Google Cloud CLI 또는 cbt CLI를 사용하여 Bigtable 테이블을 만들고 작업을 수행하는 방법을 설명합니다.

cbt CLI는 이 페이지에서 설명하지 않는 여러 명령어를 지원합니다. 전체 명령어 목록은 cbt 참조를 참고하세요.

또한 Cloud Bigtable 클라이언트 라이브러리 또는 서비스 API로 프로그래매틱 방식으로 테이블을 만들고 관리할 수 있습니다.

테이블의 승인된 뷰를 만들고 관리하는 방법은 승인된 뷰를 참조하세요.

시작하기 전에

명령줄 도구를 사용하여 테이블 작업을 계획하는 경우 이 섹션의 단계를 따르세요.

  1. gcloud CLI를 설치합니다.

  2. 선택사항: cbt CLI를 사용하려는 경우 .cbtrc 파일 생성 단계를 포함하여 cbt CLI 설치의 안내를 따르세요.

    이 페이지의 cbt CLI 안내에서는 .cbtrc 파일에 프로젝트 ID와 인스턴스 ID를 설정했다고 가정합니다. 또는 cbt CLI 명령어를 실행할 때마다 -project-instance 플래그를 사용해서 이러한 값을 설정할 수 있습니다.

테이블 만들기

테이블을 만들 때 테이블에서 사용할 column family를 지정할 필요가 없습니다. 이후에 열 그룹을 추가하거나 삭제할 수 있습니다.

콘솔

인스턴스에 새 테이블을 만들려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 Bigtable 인스턴스 목록을 엽니다.

    인스턴스 목록 열기

  2. 테이블을 보려는 인스턴스를 클릭합니다.

  3. 왼쪽 창에서 테이블을 클릭합니다.

    테이블 페이지에는 인스턴스의 테이블 목록이 표시됩니다.

  4. 테이블의 테이블 ID를 입력합니다.

  5. column family 추가(선택사항)

    지금 또는 나중에 열을 추가할 수 있습니다. 테이블에 데이터를 쓰려면 테이블에 하나 이상의 column family가 있어야 합니다. 테이블에 데이터를 쓰거나 여기에서 변경 내역을 읽으려면 먼저 테이블에 하나 이상의 column family가 있어야 합니다.

  6. 선택사항: 테이블에 변경 내역을 사용 설정합니다. 변경 내역을 사용 설정하기 전에 스토리지 비용 증가 및 앱 프로필 사용 요구사항을 포함하여 영향을 이해해야 합니다. 이러한 세부정보를 검토하려면 변경 내역 개요를 참조하세요.

    1. 변경 내역 사용 설정을 선택합니다.

    2. 만료 시간 필드에 1에서 7 사이의 숫자를 입력하여 변경 내역 데이터를 보관해야 하는 일수를 지정합니다.

    3. 만들기를 클릭합니다.

  7. 테이블 만들기를 클릭합니다.

gcloud

테이블을 만들려면 다음 명령어를 실행합니다. 전체 옵션 목록은 gcloud bigtable instances tables create를 참조하세요.

gcloud bigtable instances tables create TABLE_ID \
    --instance=INSTANCE_ID \
    --project=PROJECT_ID \
    --column-families=COLUMN-FAMILIES

다음을 바꿉니다.

  • TABLE_ID: 새 테이블의 고유 ID
  • INSTANCE_ID: 인스턴스의 ID
  • PROJECT_ID: 새 테이블이 포함될 프로젝트
  • COLUMN-FAMILIES: column family 이름을 쉼표로 구분한 목록. 이후에 column family를 더 추가할 수 있습니다.

선택사항:

  • 테이블이 삭제되지 않도록 보호하려면 --deletion-protection을 사용하여 명령어를 추가합니다. 이 설정을 적용하지 않으면 테이블이 삭제될 수 있습니다. 또한 --no-deletion-protection을 추가하여 테이블 삭제를 명시적으로 허용할 수 있습니다.

  • 테이블에 변경 내역을 사용 설정하려면 변경 내역 데이터의 보관 기간을 지정합니다. 변경 내역을 사용 설정하기 전에 스토리지 비용 증가 및 앱 프로필 사용 요구사항을 포함하여 영향을 이해해야 합니다. 이러한 세부정보를 검토하려면 변경 내역 개요를 참조하세요.

    --change-stream-retention-period=RETENTION_PERIOD
    

    RETENTION_PERIOD를 Bigtable이 테이블의 변경 내역 데이터를 보관해야 하는 기간으로 바꿉니다. 시간은 1일에서 7일 사이여야 합니다. 사용 가능한 단위는 일(d), 시간(h), 분(m), 초(s)입니다. 예시: 48h 또는 6d

  • Bigtable에서 테이블의 일일 백업을 수행하도록 하려면 다음 명령어를 사용합니다.

    gcloud bigtable instances tables create TABLE_ID \
        --instance=INSTANCE_ID \
        --project=PROJECT_ID \
        --column-families=COLUMN-FAMILIES \
        --enable-automated-backup
    

cbt

다음 명령어를 사용합니다. 이때 TABLE_NAME을 테이블 이름으로 바꿉니다. cbt CLI를 사용하여 변경 내역이 사용 설정된 테이블을 만들 수 없습니다.

cbt createtable TABLE_ID

선택사항: 테이블에서 집계 column family(미리보기)를 만들려면 정수 합계에서 column family 이름에 :instsum을 추가하고 FAMILY_NAME을 새 집계 column family 이름으로 바꿉니다. 다음은 never의 가비지 컬렉션 정책에 따라 집계 column family를 만듭니다.

cbt createtable TABLE_ID families=FAMILY_NAME:never:intsum

실수로 테이블을 삭제한 경우 삭제된 테이블을 수동으로 만들지 마세요. gcloud CLI 명령어 bigtable instances tables undelete를 사용하여 테이블을 복구합니다.

선택사항: row key로 테이블 분할

완전 관리형 서비스인 Bigtable의 한 가지 기능은 여러 노드 간에 테이블을 자동 분할하는 기능입니다. 이 기능은 각 노드에 저장된 데이터 양을 균일하게 배포하고 자주 액세스하는 행을 가능한 분산시켜 성능을 최적화합니다.

gcloud CLI, cbt CLI, Cloud Bigtable 클라이언트 라이브러리를 사용하여 테이블을 만들 때는 row key를 선택하여 테이블을 사전 분할할 수 있습니다. 예를 들어 테이블에 많은 행을 쓰려는 경우 특정 행을 지정하여 테이블을 사전 분할할 수 있습니다. 초기 분할을 수행해야 하는 키를 최대 100개까지 제공할 수 있습니다.

테이블을 사전 분할할 필요는 없지만, 테이블을 만들 때 부하 및 데이터 점유공간이 기본으로 사용될 가능성이 있는 위치에 대한 Bigtable 정보를 제공하기 때문에 유용합니다. 사전 분할은 데이터가 들어올 때 Bigtable이 한 번에 테이블을 분할하고 부하를 다시 분산하는 것을 방지합니다.

테이블을 만들 때 사전 분할하기로 선택한 row key에서 테이블이 분할된 상태로 유지되지 않습니다. Bigtable은 테이블의 데이터 양과 각 행의 액세스 빈도를 기준으로 여러 row key에서 테이블을 분할합니다.

콘솔

Google Cloud 콘솔을 사용하여 테이블을 만들 때는 행을 사전 분할할 수 없습니다.

gcloud

row key를 기준으로 테이블을 분할하려면 다음 명령어를 실행합니다. 전체 옵션 목록은 gcloud bigtable instances tables create를 참조하세요.

gcloud bigtable instances tables create TABLE_ID\
    --instance=INSTANCE_ID \
    --project=PROJECT_ID \
    --column-families=COLUMN-FAMILIES \
    --splits=SPLITS

다음을 바꿉니다.

  • TABLE_ID: 새 테이블의 고유 ID
  • INSTANCE_ID: 인스턴스의 ID
  • PROJECT_ID: 새 테이블이 포함될 프로젝트
  • COLUMN-FAMILIES: column family 이름을 쉼표로 구분한 목록. 이후에 column family를 더 추가할 수 있습니다.
  • SPLITS: 테이블을 처음에 분할해야 할 row key(예: 10,20).

cbt

row key를 기준으로 테이블을 사전 분할하려면 다음 구문을 사용하여 테이블을 만듭니다. [TABLE_NAME]을 테이블 이름으로 바꾸고 [SPLITS]를 사전 분할에 사용할 쉼표로 구분된 row-key 프리픽스 목록으로 바꿉니다.

```
cbt createtable [TABLE_NAME] splits=[SPLITS]
```

예를 들어 1020으로 시작하는 row key에서 테이블 my-table을 사전 분할하려면 다음 명령어를 사용합니다.

```
cbt createtable my-table splits=10,20
```

테이블에서 column family 수정

기존 테이블에 column family를 추가할 수 있습니다. 테이블에 삭제 보호가 사용 설정되지 않은 경우 테이블의 column family를 삭제할 수 있습니다.

column family 추가

콘솔

  1. Google Cloud 콘솔에서 Bigtable 인스턴스 목록을 엽니다.

    인스턴스 목록 열기

  2. 테이블을 보려는 인스턴스를 클릭합니다.

  3. 왼쪽 창에서 테이블을 클릭합니다.

    테이블 페이지에는 인스턴스의 테이블 목록이 표시됩니다.

  4. 수정할 테이블에서 수정을 클릭합니다.

  5. 추가할 각 column family에 대해 다음을 완료합니다.

    1. column family 추가를 클릭합니다.
    2. column family의 고유 식별자를 입력합니다.
    3. column family의 가비지 컬렉션 정책을 설정합니다.
    4. 완료를 클릭합니다.
    5. 저장을 클릭합니다.

gcloud

gcloud CLI를 사용하여 column family를 테이블에 추가할 수 없습니다.

cbt

테이블에 column family를 추가하려면 다음 명령어를 사용합니다. 이때 [TABLE_NAME]을 테이블 이름으로 바꾸고 [FAMILY_NAME]을 column family 이름으로 바꿉니다.

cbt createfamily [TABLE_NAME] [FAMILY_NAME]

예를 들어 테이블 my-table에 column family cf1cf2를 추가하려면 다음 명령어를 사용합니다.

cbt createfamily my-table cf1
cbt createfamily my-table cf2

선택사항: 테이블에 집계 column family(미리보기)를 추가하려면 정수 합계에서 column family 이름에 :instsum을 추가하고 FAMILY_NAME을 새 집계 column family 이름으로 바꿉니다. 다음은 never의 가비지 컬렉션 정책에 따라 집계 column family가 포함된 테이블을 만듭니다.

cbt createtable TABLE_ID families=FAMILY_NAME:never:intsum

column family 삭제

삭제 보호가 사용 설정되지 않은 테이블에서 column family를 삭제할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Bigtable 인스턴스 목록을 엽니다.

    인스턴스 목록 열기

  2. 테이블을 보려는 인스턴스를 클릭합니다.

  3. 왼쪽 창에서 테이블을 클릭합니다.

    테이블 페이지에는 인스턴스의 테이블 목록이 표시됩니다.

  4. 수정할 테이블에서 수정을 클릭합니다.

  5. 삭제할 각 column family에 대해 다음을 완료합니다.

    1. 삭제할 column family 행 위에 마우스를 놓습니다.
    2. 를 클릭합니다.
  6. 저장을 클릭합니다.

  7. column family 삭제가 영구적이며 column family의 모든 데이터가 삭제된다는 것을 이해하였음에 동의하려면 텍스트 상자에 'Delete column families'를 입력합니다.

  8. 확인을 클릭합니다.

gcloud

gcloud CLI를 사용하여 테이블에서 column family를 삭제할 수 없습니다.

cbt

테이블에서 column family를 삭제하려면 다음 명령어를 사용합니다. 이때 [TABLE_NAME]을 테이블 이름으로 바꾸고 [FAMILY_NAME]을 column family 이름으로 바꿉니다.

cbt deletefamily [TABLE_NAME] [FAMILY_NAME]

예를 들어 테이블 my-table에서 column family cf2를 삭제하려면 다음 명령어를 사용합니다.

cbt deletefamily my-table cf2

테이블 목록 보기

콘솔

인스턴스의 테이블 목록을 보려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 Bigtable 인스턴스 목록을 엽니다.

    인스턴스 목록 열기

  2. 테이블을 보려는 인스턴스를 클릭합니다.

  3. 왼쪽 창에서 테이블을 클릭합니다.

    테이블 페이지에는 인스턴스의 테이블 목록이 표시됩니다.

    • 테이블의 복제 목록을 확장하려면 테이블 ID 옆에 있는 화살표를 클릭합니다.
    • 테이블의 모니터링 데이터를 확인하려면 테이블 이름 옆에 있는 측정항목 보기를 클릭합니다.

gcloud

테이블 목록을 보려면 gcloud bigtable instances tables list 명령어를 실행합니다.

gcloud bigtable instances tables list --instances=INSTANCE_IDS

다음을 바꿉니다.

  • INSTANCE_IDS: 인스턴스 ID를 쉼표로 구분한 목록.

cbt

인스턴스의 테이블 목록을 보려면 다음 명령어를 실행하세요.

    cbt ls INSTANCE_ID

다음을 바꿉니다.

  • INSTANCE_ID: 인스턴스의 영구 식별자입니다.

C++

Bigtable용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Bigtable 클라이언트 라이브러리를 참조하세요.

Bigtable에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

namespace cbt = ::google::cloud::bigtable;
namespace cbta = ::google::cloud::bigtable_admin;
using ::google::cloud::StreamRange;
[](cbta::BigtableTableAdminClient admin, std::string const& project_id,
   std::string const& instance_id) {
  std::string instance_name = cbt::InstanceName(project_id, instance_id);

  google::bigtable::admin::v2::ListTablesRequest r;
  r.set_parent(instance_name);
  r.set_view(google::bigtable::admin::v2::Table::NAME_ONLY);

  StreamRange<google::bigtable::admin::v2::Table> tables =
      admin.ListTables(std::move(r));
  for (auto& table : tables) {
    if (!table) throw std::move(table).status();
    std::cout << table->name() << "\n";
  }
}

C#

Bigtable용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Bigtable 클라이언트 라이브러리를 참조하세요.

Bigtable에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

// Lists tables in intance.
// Initialize request argument(s).
ListTablesRequest request = new ListTablesRequest
{
    ParentAsInstanceName = s_instanceName
};
try
{
    // Make the request.
    PagedEnumerable<ListTablesResponse, Table> response = bigtableTableAdminClient.ListTables(request);

}
catch (Exception ex)
{
    Console.WriteLine($"Error listing tables {ex.Message}");
}

Java

Bigtable용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Bigtable 클라이언트 라이브러리를 참조하세요.

Bigtable에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

// Lists tables in the current instance.
try {
  List<String> tableIds = adminClient.listTables();
  for (String tableId : tableIds) {
    System.out.println(tableId);
  }
} catch (NotFoundException e) {
  System.err.println("Failed to list tables from a non-existent instance: " + e.getMessage());
}

Node.js

Bigtable용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Bigtable 클라이언트 라이브러리를 참조하세요.

Bigtable에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

// List tables in current project
const [tables] = await instance.getTables();
tables.forEach(table => {
  console.log(table.id);
});

PHP

Bigtable용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Bigtable 클라이언트 라이브러리를 참조하세요.

Bigtable에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

use Google\Cloud\Bigtable\Admin\V2\Client\BigtableInstanceAdminClient;
use Google\Cloud\Bigtable\Admin\V2\Client\BigtableTableAdminClient;
use Google\Cloud\Bigtable\Admin\V2\ListTablesRequest;

/**
 * List tables in an instance
 *
 * @param string $projectId The Google Cloud project ID
 * @param string $instanceId The ID of the Bigtable instance
 */
function list_tables(
    string $projectId,
    string $instanceId
): void {
    $instanceAdminClient = new BigtableInstanceAdminClient();
    $tableAdminClient = new BigtableTableAdminClient();

    $instanceName = $instanceAdminClient->instanceName($projectId, $instanceId);

    printf('Listing Tables:' . PHP_EOL);
    $listTablesRequest = (new ListTablesRequest())
        ->setParent($instanceName);
    $tables = $tableAdminClient->listTables($listTablesRequest)->iterateAllElements();
    $tables = iterator_to_array($tables);
    if (empty($tables)) {
        print('No table exists.' . PHP_EOL);
        return;
    }
    foreach ($tables as $table) {
        print($table->getName() . PHP_EOL);
    }
}

Python

Bigtable용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Bigtable 클라이언트 라이브러리를 참조하세요.

Bigtable에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

tables = instance.list_tables()
print("Listing tables in current project...")
if tables != []:
    for tbl in tables:
        print(tbl.table_id)
else:
    print("No table exists in current project...")

Ruby

Bigtable용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Bigtable 클라이언트 라이브러리를 참조하세요.

Bigtable에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

# instance_id = "my-instance"
bigtable.tables(instance_id).all.each do |t|
  puts "Table: #{t.name}"
end

테이블에 대한 정보 보기

콘솔

테이블에 대한 정보를 보려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 Bigtable 인스턴스 목록을 엽니다.

    인스턴스 목록 열기

  2. 테이블을 보려는 인스턴스를 클릭합니다.

  3. 왼쪽 창에서 테이블을 클릭합니다.

    테이블 페이지에는 인스턴스의 테이블 목록이 표시됩니다. Google Cloud Console은 각 테이블에 대해 테이블이 저장된 클러스터 수, 테이블 상태, 스토리지 사용률, 현재 테이블의 백업에 대한 식별자를 표시합니다.

  4. 테이블의 column family 이름을 보려면 을 클릭합니다. 테이블 편집 창을 닫으려면 취소를 클릭합니다.

  5. 테이블 수준 측정항목 및 복제 상태를 포함하여 테이블에 대한 추가 세부정보를 보려면 테이블 이름을 클릭합니다.

gcloud

테이블 정보를 보려면 gcloud bigtable instances tables describe 명령어를 실행합니다.

gcloud bigtable instances tables describe TABLE_ID \
    --instance=INSTANCE_ID

다음을 바꿉니다.

  • TABLE_ID: 테이블의 고유 ID
  • INSTANCE_ID: 인스턴스의 ID

cbt

cbt CLI를 사용하여 테이블의 기존 column family 목록을 가져올 수 있습니다.

다음 명령어를 사용합니다. 이때 [TABLE_NAME]을 테이블 이름으로 바꿉니다.

cbt ls [TABLE_NAME]

가비지 컬렉션 정책 설정

가비지 컬렉션 정책은 Bigtable에 보관할 데이터와 삭제할 데이터를 알려줍니다. 가비지 컬렉션 정책은 column family 수준에서 설정됩니다. 이러한 정책은 테이블을 만들 때 또는 나중에 만들 수 있습니다.

column family를 만들 때 해당 column family의 모든 열에 보관할 셀 수를 지정할 수 있습니다. 이 설정을 지정하지 않으면 Cloud Bigtable에서 다음 기본 설정 중 하나를 사용합니다.

  • 자바용 Cloud Bigtable HBase 클라이언트 또는 HBase 셸을 통해 column family를 만들거나 자바용 HBase 클라이언트를 사용하는 다른 도구를 통해 column family를 만드는 경우 Bigtable은 column family의 각 행/열 교집합에 대해 1개의 셀만 유지합니다. 이 기본 설정은 HBase와 일치합니다.

  • Google Cloud 콘솔, 다른 클라이언트 라이브러리 또는 cbt CLI를 사용하여 column family를 만드는 경우 Bigtable은 각 열에 각 열에 셀을 무한대로 보관합니다.

가비지 컬렉션 정책을 보고, 설정하고, 업데이트하는 방법에 대한 자세한 내용은 가비지 컬렉션 정책 구성을 참조하세요.

테이블 백업 및 복원

테이블을 백업하고 백업에서 새 테이블로 복원하는 방법은 백업 관리를 참조하세요.

테이블을 만드는 동안 자동 백업을 사용 설정한 경우 테이블의 자동 백업 구성을 수정하여 자동 백업을 사용 설정 또는 사용 중지하거나 보관 기간을 백업 생성 시간으로부터 최대 90일까지 변경할 수 있습니다. 자세한 내용은 자동 백업 사용을 참조하세요.

변경 내역 사용 설정, 중지, 구성

다음 태스크에 대한 안내는 변경 내역 구성을 참조하세요.

  • 기존 테이블에 변경 내역 사용 설정
  • 변경 내역 중지
  • 변경 내역의 보관 기간 업데이트

테이블 삭제

테이블을 삭제하면 테이블의 승인된 모든 뷰도 삭제됩니다. 테이블의 승인된 뷰에 삭제 보호가 사용 설정된 경우 테이블을 삭제할 수 없습니다.

콘솔

  1. Google Cloud 콘솔에서 Bigtable 인스턴스 목록을 엽니다.

    인스턴스 목록 열기

  2. 테이블을 보려는 인스턴스를 클릭합니다.

  3. 왼쪽 창에서 테이블을 클릭합니다.

    테이블 페이지에는 인스턴스의 테이블 목록이 표시됩니다.

  4. 삭제할 테이블의 를 클릭합니다.

  5. 삭제를 클릭합니다.

  6. 이 작업으로 인스턴스의 모든 클러스터에서 테이블이 삭제되고 테이블 삭제를 취소할 수 있는 기간이 7일임을 확인했음에 동의하려면 텍스트 상자에 테이블 ID를 입력합니다.

  7. 삭제를 클릭합니다.

gcloud

  1. 테이블을 삭제하려면 gcloud bigtable instances tables delete 명령어를 실행합니다.

    gcloud bigtable instances tables delete --instance=INSTANCE_ID
    

    다음을 바꿉니다.

    • INSTANCE_ID: 인스턴스의 ID
  2. 터미널에서 y를 입력하여 테이블 삭제를 확인합니다.

cbt

테이블을 삭제하려면 다음 명령어를 사용합니다. 이때 [TABLE_NAME]을 테이블 이름으로 바꿉니다.

cbt deletetable [TABLE_NAME]

테이블 삭제를 취소합니다.

실수로 테이블을 삭제한 경우 gcloud CLI 명령어 bigtable instances tables undelete를 사용하여 테이블을 삭제 취소하거나 복구할 수 있습니다. 삭제된 테이블을 먼저 수동으로 만들지 마세요.

테이블 삭제를 취소하려면 터미널에서 다음 명령어를 실행합니다.

gcloud bigtable instances tables undelete TABLE_ID --instance=INSTANCE_ID

다음을 바꿉니다.

  • TABLE_ID: 테이블의 고유 식별자
  • INSTANCE_ID: 인스턴스의 ID

다음과 같은 제한사항이 적용됩니다.

  • 테이블 삭제를 취소하는 기능은 테이블 삭제 후 약 7일 동안 사용할 수 있습니다.
  • Google Cloud 콘솔, Cloud Bigtable 클라이언트 라이브러리 또는 cbt CLI를 사용하여 테이블 삭제를 취소할 수 없습니다.
  • 삭제된 인스턴스에서 테이블을 삭제를 취소할 수 없습니다.
  • CMEK가 사용 설정된 테이블은 삭제를 취소할 수 없습니다.
  • 테이블이 삭제되기 전에 테이블에 적용된 세분화된 IAM 정책 바인딩은 테이블이 삭제 취소될 때 복원되지 않습니다.

필요한 경우 감사 로그에서 undelete 작업의 상태를 확인할 수 있습니다.

삭제 보호 수정

roles/bigtable.admin과 같이 bigtable.tables.update 권한이 포함된 역할의 주 구성원인 경우 테이블에 삭제 보호를 사용 설정하거나 사용 중지할 수 있습니다. 삭제 보호는 테이블, 테이블의 모든 column family, 테이블을 포함하는 인스턴스가 삭제되지 않도록 방지합니다.

테이블에 삭제 보호를 사용 설정해도 테이블의 승인된 뷰에는 삭제 보호가 사용 설정되지 않습니다. 마찬가지로 테이블의 삭제 보호를 사용 중지해도 테이블의 승인된 뷰에서는 사용 중지되지 않습니다. 테이블의 승인된 뷰를 별도로 업데이트해야 합니다.

콘솔

  1. Google Cloud 콘솔에서 Bigtable 인스턴스 목록을 엽니다.

    인스턴스 목록 열기

  2. 테이블을 보려는 인스턴스를 클릭합니다.

  3. 왼쪽 창에서 테이블을 클릭합니다.

    테이블 페이지에는 인스턴스의 테이블 목록이 표시됩니다.

  4. 테이블 ID 옆에 있는 를 클릭합니다.

  5. 삭제 보호를 사용 설정하려면 삭제 방지를 클릭합니다. 삭제 보호를 중지하려면 삭제 사용 설정을 클릭합니다. 유효한 옵션만 표시됩니다.

gcloud

테이블에 삭제 보호를 사용 설정하려면 gcloud bigtable instances table update 명령어를 실행합니다.

gcloud bigtable instances tables update TABLE_ID \
    --instance=INSTANCE_ID \
    --deletion-protection

테이블의 삭제 보호를 사용 중지하려면 다음을 실행합니다.

gcloud bigtable instances tables update TABLE_ID \
    --instance=INSTANCE_ID \
    --no-deletion-protection

다음을 바꿉니다.

+ TABLE_ID: the unique identifier for the table
+ INSTANCE_ID: the ID of the instance

cbt

cbt CLI를 사용하여 삭제 보호를 사용 설정 또는 사용 중지할 수 없습니다.