テーブルの作成と管理

Bigtable テーブルを使用すると、低レイテンシのアプリケーション ワークロード用に大規模なデータを整理して保存できます。これらのテーブルは、 Google Cloud コンソール、Google Cloud CLI、cbt CLI を使用して作成および管理できます。また、Cloud Bigtable クライアント ライブラリを使用してプログラムで作成および管理することもできます。

テーブルの承認済みビューの作成と管理の詳細については、承認済みビューをご覧ください。

始める前に

コマンドライン ツールを使用してテーブルを操作する場合は、このセクションの手順を行ってください。

  1. gcloud CLI をインストールします。

  2. 省略可: cbt CLI を使用する場合は、cbt CLI のインストールの手順に沿って操作します。この手順には、.cbtrc ファイルの作成も含まれます。

    このページで説明する cbt CLI 命令は、.cbtrc ファイルにプロジェクト ID とインスタンス ID がすでに設定されていることを前提としています。あるいは、-project フラグと -instance フラグを使用して、cbt CLI コマンドを実行するたびに、これらの値を設定することもできます。

テーブルを作成する

テーブルを作成するときに、テーブルで使用する列ファミリーを指定する必要はありません。列ファミリーは後で追加または削除できます。

コンソール

インスタンスにテーブルを作成するには:

  1. Google Cloud コンソールで、Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. テーブルを作成するインスタンスをクリックします。

  3. Bigtable のナビゲーション メニューで、[テーブル] をクリックします。

    [テーブル] ページに、インスタンス内のテーブルのリストが表示されます。

  4. [テーブルを作成] をクリックします。

  5. [テーブルの作成] ペインの [テーブル ID] フィールドに、テーブルの永続 ID を入力します。

  6. 省略可: 列ファミリーを追加します。

    列ファミリーは、テーブルの作成時または後で追加できます。テーブルへのデータの書き込みや変更ストリームの読み取りを行うには、テーブルに少なくとも 1 つの列ファミリーが必要です。

  7. 省略可: Enterprise Plus エディションでマイクロ秒単位のタイムスタンプ粒度を使用するには、[タイムスタンプの粒度] セクションで [マイクロ秒単位のタイムスタンプを使用する] を選択します。

  8. 省略可: テーブルの変更ストリームを有効にします。変更ストリームを有効にする前に、ストレージ コストの増加やアプリ プロファイルの使用要件など、その影響を把握しておく必要があります。詳細については、変更ストリームの概要をご覧ください。

    1. [変更ストリームを有効にする] を選択します。

    2. [保持期間] フィールドに、1 ~ 7 の整数を入力して、変更ストリーム データの保持日数を指定します。

  9. 省略可: [自動バックアップを構成する] セクションで、テーブルの自動バックアップを構成します。デフォルトでは、[自動バックアップを有効にする] が選択されています。Bigtable は、インスタンス内のすべてのクラスタで日次標準バックアップを作成し、各バックアップを 7 日間保持します。詳細については、自動バックアップを使用するをご覧ください。

    • Bigtable でテーブルの日次バックアップを作成しない場合は、[自動バックアップを有効にする] をオフにします。
    • SSD インスタンスで、標準バックアップではなく日次ホット バックアップを作成するには、[バックアップ タイプ] セクションで [ホット] を選択し、[ホットから標準に設定] フィールドに 1 ~ 10 の整数を入力して、各バックアップが自動的に標準バックアップに移行するまでの日数を指定します。デフォルトは 3 日です。この値は保持期間を超えることはできません。階層型ストレージが有効になっている場合、[ホット] は選択できません。詳細については、ホット自動バックアップを構成するをご覧ください。
    • カスタム保持期間を設定するには、[バックアップ構成] セクションの [保持期間] フィールドに 3 ~ 90 の整数を入力して、バックアップを保持する日数を指定します。
    • Enterprise Plus エディションで、Bigtable が日次バックアップを作成する特定のクラスタを選択するには、[バックアップ構成] セクションの [バックアップするクラスタを選択] リストでクラスタを選択し、[OK] をクリックします。詳細については、自動バックアップ クラスタのロケーションを構成するをご覧ください。
  10. 省略可: [階層型ストレージを構成する] セクションで、階層型ストレージ(プレビュー)の一部として、テーブルの低頻度アクセス ストレージを有効にします。自動バックアップで [ホット] が選択されている場合、階層型ストレージを有効にすることはできません。

    1. [階層型ストレージを有効にする] チェックボックスをオンにします。

    2. [年齢のしきい値] フィールドに、30 以上の整数を入力して、Bigtable が SSD ストレージから低頻度アクセス ストレージにデータを移動するまでの日数を指定します。

  11. 省略可: 行キーのスキーマを構成するには、[行キーのスキーマを定義する] を選択し、次の操作を行います。

    1. [エンコード] リストで、行キー スキーマのエンコードの種類を選択します。

    2. [DelimitedBytes] を選択した場合は、[区切り文字] フィールドに、既存の行キーのセグメントを区切る区切り文字を入力します。デフォルト値はハッシュ記号(#)です。

    3. [セグメント] フィールドに、セグメントの名前を入力します(例: device_type)。

    4. [型] リストで、行キー セグメントのデータ型を選択します。

    5. 選択したデータ型に応じて、[バイト エンコード] リストで、行キー セグメントのデフォルトのエンコード タイプをそのままにするか、変更します。

    6. 省略可: 行キーセグメントに複数の部分がある場合は、[行キーセグメントを追加] をクリックしてフィールドを追加します。

  12. [作成] をクリックします。

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: 列ファミリー名のカンマ区切りリスト。列ファミリーは後で追加できます。

オプション:

  • テーブルが削除されないように保護するには、コマンドに --deletion-protection を追加します。この設定を適用しない場合、テーブルは削除できます。テーブルの削除を明示的に許可するには、--no-deletion-protection を追加します。

  • テーブルの変更ストリームを有効にするには、変更ストリーム データの保持期間を指定します。変更ストリームを有効にする前に、ストレージ コストの増加やアプリ プロファイルの使用要件など、その影響を把握しておく必要があります。詳細については、変更ストリームの概要をご覧ください。

    --change-stream-retention-period=RETENTION_PERIOD
    

    RETENTION_PERIOD は、Bigtable でテーブルの変更ストリーム データを保持する期間に置き換えます。期間は 1~7 日の範囲で指定する必要があります。使用できる単位は日(d)、時間(h)、分(m)、秒(s)です(例: 48h、6d)。

  • Bigtable でテーブルの日次バックアップを作成し、各バックアップをデフォルトの保持期間である 7 日間保持するには、テーブルの作成時に --enable-automated-backup フラグを使用します。

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

    別の保持期間を構成するには、--enable-automated-backup フラグの代わりに --automated-backup-retention-period フラグを使用し、最大 90 日の値を指定します。値は、m、h、d(分、時間、日)の単位を付けた数値で指定する必要があります(例: 15 日の場合は 15d)。

    SSD インスタンスで、標準バックアップに自動的に移行するホット自動バックアップを作成するように Bigtable を構成するには、--enable-automated-backup フラグではなく --automated-backup-keep-hot-duration フラグを使用します。保持期間を超えないように、24h(1 日)から 10d(10 日)までの期間を指定します。値は、s、m、h、d(秒、分、時間、日)の単位を持つ数値(24h や 2d など)として表します。詳細については、ホット自動バックアップを構成するをご覧ください。

    Enterprise Plus エディション: デフォルトでは、Bigtable はテーブルのインスタンス内のすべてのクラスタで日次バックアップを作成します。Bigtable がテーブルの日次バックアップを作成する必要があるクラスタのロケーションを構成するには、--enable-automated-backup フラグではなく --automated-backup-locations フラグを使用します。自動バックアップを有効にするクラスタのロケーションをカンマ区切りのリストで指定します(例: us-central1-a,us-east1-b,europe-west1-c)。

  • 階層型ストレージ(プレビュー)の一部として低頻度アクセスを有効にするには、--tiered-storage-infrequent-access-older-than フラグを使用します。

    gcloud beta bigtable instances tables create TABLE_ID \
        --instance=INSTANCE_ID \
        --project=PROJECT_ID \
        --tiered-storage-infrequent-access-older-than=AGE_THRESHOLD
    

    AGE_THRESHOLD は、30 日以上の値に置き換えます。使用できる単位は日(d)、時間(h)、分(m)、秒(s)です(例: 32d、32d12h)。

  • テーブルのタイムスタンプの粒度を構成するには、--timestamp-granularity フラグを使用します。

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

    TIMESTAMP_GRANULARITY は、精度のレベルに置き換えます。デフォルトの精度はミリ秒で、値は MILLIS です。テーブルでマイクロ秒単位のタイムスタンプを受け入れる場合は、値を MICROS に設定します。マイクロ秒精度のタイムスタンプは、Enterprise Plus エディションのインスタンスでのみ使用できます。

cbt

cbt CLI を使用して、変更ストリームを有効にしたテーブルを作成することはできません。

テーブルを作成するには、次のコマンドを実行します。

cbt createtable TABLE_ID

TABLE_ID は、新しいテーブルの一意の ID に置き換えます。

省略可: テーブルに集計列ファミリーを作成するには、列ファミリー名に集計タイプを追加します。以下の例では、ガベージ コレクション ポリシーが never である集計列ファミリーを作成します。

cbt createtable TABLE_ID families=FAMILY_NAME:never:TYPE

次のように置き換えます。

  • TABLE_ID: 新しいテーブルの一意の ID
  • FAMILY_NAME: 列ファミリー名のカンマ区切りのリスト。列ファミリーは後で追加できます。
  • TYPE: 集計タイプ。intsum、intmin、intmax、または inthll にする必要があります。

その他のオプションについては、cbt CLI リファレンスのテーブルを作成するをご覧ください。

誤ってテーブルを削除した場合は、削除したテーブルを手動で作成しないでください。gcloud CLI コマンド bigtable instances tables undelete を使用してテーブルを復元してください。

省略可: 行キーでテーブルを分割する

パフォーマンスを最適化するため、Bigtable はテーブルを複数のノード間で継続的に分割し、各ノードに格納されるデータ量を均等に分散し、頻繁にアクセスされる行を可能な限り分散させます。この進行中の処理は自動的に行われます。

新しいテーブルを作成するときに、初期テーブル スプリットを指定できます。Bigtable は、指定された行キーでテーブルを分割します。キースペースが大きすぎる場合、Bigtable はテーブルをさらに分割します。初期分割は、テーブルの作成が完了してから約 24 時間維持されます。最初の分割が行われる行キーを 100 個まで指定できます。

たとえば、テーブルに多数の行を書き込む場合は、特定の行を指定してテーブルを事前分割することもできます。

テーブルの事前分割は必須の作業ではありませんが、テーブルの作成時に、負荷とデータのフットプリントが Bigtable のどこに配置される可能性があるのかがわかるので便利です。事前分割しておくと、Bigtable にデータが到着した際にテーブルを分割して負荷を一度にまとめてバランスよく再配分するという作業が必要なくなります。

コンソール

Google Cloud コンソールを使用してテーブルを作成する場合、行を事前に分割することはできません。

gcloud

行キーでテーブルを分割するには、次のコマンドを実行します。オプションの全一覧については、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: 列ファミリー名のカンマ区切りリスト。列ファミリーは後で追加できます。
  • SPLITS: テーブルを最初に分割する行キー(例: 10,20)。

cbt

行キーに基づいてテーブルを事前分割するには、次のコマンドを実行します。

cbt createtable TABLE_ID splits=SPLITS

次のように置き換えます。

  • TABLE_ID: 新しいテーブルの一意の ID
  • SPLITS: 事前分割に使用する行キーの接頭辞のカンマ区切りのリスト

たとえば、10 または 20 で始まる行キーでテーブル my-table を事前分割する場合には、次のように指定します。

cbt createtable my-table splits=10,20

テーブル内の列ファミリーを変更する

列ファミリーは、テーブルの作成時または既存のテーブルに追加できます。テーブルで削除からの保護が有効になっていない場合、テーブル内の列ファミリーを削除できます。

列ファミリーを追加する

コンソール

新しいテーブルに列ファミリーを追加する

  1. [テーブルを作成] ペインで、追加する列ファミリーごとに [列ファミリーを追加] をクリックします。

  2. [列ファミリー名] フィールドに、列ファミリーの固有識別子を入力します。

  3. 列ファミリーのタイプを選択します。

  4. [集計] を選択した場合は、[アグリゲータ] フィールドで次のいずれかのオプションを選択します。

    • 合計: すべてのセル値の合計を集計します。
    • Min: 最小のセル値を集計します。
    • 最大: セルの最大値を集計します。
    • HyperLogLog: セル値の近似カーディナリティを集計します。
  5. 列ファミリーのガベージ コレクション ポリシーを設定します。

  6. [完了] をクリックします。

既存のテーブルに列ファミリーを追加する

  1. Google Cloud コンソールで、Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. テーブルを表示するインスタンスをクリックします。

  3. 左ペインで [テーブル] をクリックします。

    [テーブル] ページに、インスタンス内のテーブルのリストが表示されます。

  4. 変更するテーブルの [ 編集] をクリックします。

  5. 追加する列ファミリーごとに、次の操作を行います。

    1. [列ファミリーを追加] をクリックします。
    2. [列ファミリー名] フィールドに、列ファミリーの固有識別子を入力します。
    3. 列ファミリーのタイプを選択します。

    4. [集計] を選択した場合は、[アグリゲータ] フィールドで次のいずれかのオプションを選択します。

      • 合計: すべてのセル値の合計を集計します。
      • Min: 最小のセル値を集計します。
      • 最大: セルの最大値を集計します。
      • HyperLogLog: セル値の近似カーディナリティを集計します。
    5. 列ファミリーのガベージ コレクション ポリシーを設定します。

    6. [完了] をクリックします。

  6. [保存] をクリックします。

gcloud

gcloud CLI を使用してテーブルに列ファミリーを追加することはできません。

cbt

列ファミリーをテーブルに追加するには、次のコマンドを実行します。

cbt createfamily TABLE_ID FAMILY_NAME

次のように置き換えます。

  • TABLE_ID: 列ファミリーを追加するテーブルの ID
  • FAMILY_NAME: 追加する列ファミリーの名前

たとえば、テーブル my-table に列ファミリー cf1 と cf2 を追加する場合には、次のように指定します。

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

省略可: 集計列ファミリーをテーブルに追加するには、列ファミリー名に集計タイプを追加します。以下の例では、ガベージ コレクション ポリシーが never である集計列ファミリーを持つテーブルを作成します。

cbt createfamily TABLE_ID FAMILY_NAME:never:TYPE

以下のように置き換えます。

  • TABLE_ID: テーブル ID。
  • FAMILY_NAME: 列ファミリー名のカンマ区切りのリスト。列ファミリーは後で追加できます。
  • TYPE: 集計タイプ。intsum、intmin、intmax、または inthll にする必要があります。

列ファミリーの削除

削除からの保護が有効になっていないテーブル内の列ファミリーを削除できます。

コンソール

  1. Google Cloud コンソールで、Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. テーブルを表示するインスタンスをクリックします。

  3. 左ペインで [テーブル] をクリックします。

    [テーブル] ページに、インスタンス内のテーブルのリストが表示されます。

  4. 変更するテーブルの [ 編集] をクリックします。

  5. 削除する列ファミリーごとに、次の手順を行います。

    1. 削除する列ファミリーの行にカーソルを合わせます。
    2. [] をクリックします。
  6. [保存] をクリックします。

  7. 列ファミリーの削除は取り消しができません。また、列ファミリーのデータがすべて削除されます。このことを確認するには、テキスト フィールドに「列ファミリーの削除」と入力します。

  8. [確認] をクリックします。

gcloud

gcloud CLI を使用してテーブルから列ファミリーを削除することはできません。

cbt

テーブルから列ファミリーを削除するには、次のコマンドを実行します。

cbt deletefamily TABLE_ID FAMILY_NAME

次のように置き換えます。

  • TABLE_ID: 列ファミリーを削除するテーブルの ID
  • FAMILY_NAME: 削除する列ファミリーの名前

たとえば、テーブル my-table から列ファミリー 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 {
  String parent = "projects/" + projectId + "/instances/" + instanceId;
  ListTablesRequest request = ListTablesRequest.newBuilder().setParent(parent).build();
  for (Table table : adminClient.listTables(request).iterateAll()) {
    System.out.println(table.getName());
  }
} 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 adminClient.listTables({parent: instance.name});
tables.forEach(table => {
  console.log(table.name);
});

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 コンソールには、テーブルが保存されているクラスタ数、テーブルのステータス、ストレージの使用率、テーブルの現在のバックアップの ID がテーブルごとに表示されます。階層型ストレージ(プレビュー)が有効になっているテーブルの場合、SSD ストレージの使用率とアクセス頻度の低いストレージの使用率を確認できます。

  4. テーブルの列ファミリー名を表示するには、[] をクリックします。[テーブルの編集] ペインを閉じるには、[キャンセル] をクリックします。

  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 を使用して、テーブル内の既存の列ファミリーのリストを取得できます。

テーブル内の列ファミリーを表示するには、次のコマンドを実行します。

cbt ls TABLE_ID

TABLE_ID は、テーブルの一意の ID に置き換えます。

ガベージ コレクション ポリシーを設定する

ガベージ コレクション ポリシーにより、保持するデータと削除対象のデータを Bigtable に指定します。ガベージ コレクション ポリシーは、テーブルの作成時またはそれ以降に列ファミリー レベルで設定します。

列ファミリーを作成するときに、その列ファミリーのすべての列に含めるセル数を指定できます。この設定を指定しない場合、Bigtable は次のいずれかのデフォルト設定を使用します。

  • 列ファミリーの作成に Java 用 Cloud Bigtable HBase クライアントか HBase shell を使用している場合、あるいは Java 用 HBase クライアントを使用する別のツールを使用している場合、Bigtable が列ファミリーの行 / 列の交差位置ごとに保持するセルは 1 つだけです。このデフォルトの設定は HBase と同じです。

  • Google Cloud コンソール、他のクライアント ライブラリ、または cbt CLI を使用して列ファミリーを作成した場合 、Bigtable は各列で無限数のセルを保持します。

ガベージ コレクション ポリシーの表示、設定、更新方法の詳細については、ガベージ コレクション ポリシーを構成するをご覧ください。

テーブルのバックアップと復元を行う

テーブルをバックアップし、バックアップを新しいテーブルに復元する方法については、バックアップを管理するをご覧ください。

テーブルの作成時に自動バックアップを有効にすると、後でテーブルの自動バックアップ構成を変更できます。自動バックアップの有効化または無効化、SSD インスタンスでのホット自動バックアップの構成、保持期間の最大 90 日への変更、Enterprise Plus エディションでの Bigtable がバックアップを保存するクラスタの選択を行うことができます。詳細については、自動バックアップを使用するをご覧ください。

変更ストリームの有効化、無効化、構成

次のタスクの手順については、変更ストリームを構成するをご覧ください。

  • 既存のテーブルで変更ストリームを有効にする
  • 変更ストリームを無効にする
  • 変更ストリームの保持期間を更新する

テーブルを削除する

テーブルを削除すると、そのテーブルの承認済みビューもすべて削除されます。テーブルの承認済みビューで削除からの保護が有効になっている場合は、テーブルを削除できません。また、継続的なマテリアライズド ビューがベースになっているテーブルを削除することもできません。

コンソール

  1. Google Cloud コンソールで、Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. テーブルを表示するインスタンスをクリックします。

  3. 左ペインで [テーブル] をクリックします。

    [テーブル] ページに、インスタンス内のテーブルのリストが表示されます。

  4. 削除するテーブルの [] をクリックします。

  5. [削除] をクリックします。

  6. この操作でインスタンス内のすべてのクラスタからテーブルが削除され、テーブルの削除を取り消す期限があと 7 日間であることを確認するには、[テーブルを削除] ボックスにテーブル ID を入力します。

  7. [削除] をクリックします。

gcloud

  1. テーブルを削除するには、gcloud bigtable instances tables delete コマンドを実行します。

    gcloud bigtable instances tables delete TABLE_ID --instance=INSTANCE_ID
    

    次のように置き換えます。

    • TABLE_ID: テーブルの一意の ID
    • INSTANCE_ID: インスタンスの ID
  2. ターミナルで「y」と入力して、テーブルの削除を確定します。

cbt

テーブルを削除するには、次のコマンドを実行します。

cbt deletetable TABLE_ID

TABLE_ID は、テーブルの一意の ID に置き換えます。

テーブルの削除を取り消す

誤ってテーブルを削除した場合は、gcloud CLI コマンド bigtable instances tables undelete を使用して、テーブルの削除を取り消すことができます(テーブルを復元できます)。削除したテーブルを手動で再作成しないでください。

テーブルの削除を取り消すには、ターミナルで次のコマンドを実行します。

gcloud bigtable instances tables undelete TABLE_ID --instance=INSTANCE_ID

次のように置き換えます。

  • TABLE_ID: テーブルの固有識別子
  • INSTANCE_ID: インスタンスの ID

テーブルの削除を取り消すと、Bigtable はテーブルの削除からの保護を自動的に有効にします。

次の制限が適用されます。

  • テーブルの削除取り消しは、テーブル削除後、約 7 日間行えます。
  • Google Cloud コンソール、Cloud Bigtable クライアント ライブラリ、cbt CLI を使用してテーブルの削除を取り消すことはできません。
  • 削除されたインスタンスからテーブルの削除を取り消すことはできません。
  • CMEK が有効になっているテーブルの削除を取り消すことはできません。
  • インスタンスを Enterprise エディションにダウングレードした場合、マイクロ秒のタイムスタンプ粒度を持つテーブルの削除を取り消すことはできません。テーブルの削除を取り消すには、インスタンスが Enterprise Plus エディションである必要があります。
  • テーブルの削除を取り消しても、Bigtable は削除されたテーブルに詳細な IAM ポリシー バインディングを復元しません。

必要に応じて、監査ログで undelete オペレーションのステータスを確認できます。

削除からの保護を変更する

テーブルに対する削除からの保護を有効または無効にするには、roles/bigtable.admin などの bigtable.tables.update 権限を含むロールのプリンシパルが必要です。削除からの保護は、テーブル、テーブル内のすべての列ファミリー、テーブルを含むインスタンスの削除を防ぎます。

テーブルの削除からの保護を有効にしても、テーブルの承認済みビューの削除からの保護は有効になりません。同様に、テーブルの削除からの保護を無効にしても、テーブルの承認済みビューの削除からの保護は無効になりません。テーブルの承認済みビューを更新する必要があります。

コンソール

  1. Google Cloud コンソールで、Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. テーブルを表示するインスタンスをクリックします。

  3. 左ペインで [テーブル] をクリックします。

    [テーブル] ページに、インスタンス内のテーブルのリストが表示されます。

  4. テーブル ID の横にある をクリックします。

  5. 削除からの保護を有効にするには、[削除を防止する] をクリックします。削除からの保護を無効にするには、[削除を有効にする] をクリックします。有効なオプションのみが表示されます。

gcloud

テーブルに対する削除からの保護を有効にするには、gcloud bigtable instances tables update コマンドを実行します。

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

次のように置き換えます。

  • TABLE_ID: テーブルの固有識別子
  • INSTANCE_ID: インスタンスの ID

テーブルに対する削除からの保護を無効にするには、次のコマンドを実行します。

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

次のように置き換えます。

  • TABLE_ID: テーブルの固有識別子
  • INSTANCE_ID: インスタンスの ID

cbt

cbt CLI を使用して削除からの保護を有効または無効にすることはできません。

アクセス頻度の低いストレージの経過期間のしきい値を変更する

階層型ストレージの一部である低頻度アクセスの年齢しきい値は、いつでも変更できます。

コンソール

  1. Google Cloud コンソールで、Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. テーブルを表示するインスタンスをクリックします。

  3. 左ペインで [テーブル] をクリックします。

    [テーブル] ページに、インスタンス内のテーブルのリストが表示されます。

  4. 変更するテーブルの [ 編集] をクリックします。

  5. [経過時間のしきい値] フィールドに、Bigtable が SSD ストレージから低頻度アクセス ストレージにデータを移動するまでの新しい日数を入力します。30 以上の数値を指定してください。

gcloud

低頻度アクセス ストレージの経過時間しきい値を変更するには、--tiered-storage-infrequent-access-older-than フラグを指定して gcloud beta bigtable instances tables update コマンドを実行します。

gcloud beta bigtable instances tables update TABLE_ID \
    --instance=INSTANCE_ID \
    --project=PROJECT_ID \
    --tiered-storage-infrequent-access-older-than=AGE_THRESHOLD

次のように置き換えます。

  • TABLE_ID: 更新するテーブルの ID
  • INSTANCE_ID: インスタンスの ID
  • PROJECT_ID: 更新するテーブルを含むプロジェクト
  • AGE_THRESHOLD: 経過期間のしきい値。30 日以上にする必要があります。使用できる単位は日(d)、時間(h)、分(m)、秒(s)です。たとえば、以前の 32d から 33d に変更します。

アクセス頻度の低いストレージを無効にする

階層型ストレージの低頻度アクセスはいつでも無効にできます。その結果、Bigtable は低頻度アクセス ストレージ内のすべてのデータを SSD ストレージに移動します。低頻度アクセス ストレージを無効にする前に、費用への影響を理解しておいてください。

コンソール

  1. Google Cloud コンソールで、Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. テーブルを表示するインスタンスをクリックします。

  3. 左ペインで [テーブル] をクリックします。

    [テーブル] ページに、インスタンス内のテーブルのリストが表示されます。

  4. 変更するテーブルの [ 編集] をクリックします。

  5. [階層型ストレージを有効にする] チェックボックスをオフにします。

  6. [保存] をクリックします。

gcloud

低頻度アクセス ストレージを無効にするには、--clear-tiered-storage-config フラグを指定して gcloud beta bigtable instances tables update コマンドを使用します。

gcloud beta bigtable instances tables update TABLE_ID \
    --instance=INSTANCE_ID \
    --project=PROJECT_ID \
    --clear-tiered-storage-config

次のように置き換えます。

  • TABLE_ID: 更新するテーブルの ID
  • INSTANCE_ID: インスタンスの ID
  • PROJECT_ID: 更新するテーブルを含むプロジェクト

次のステップ