コンテンツにスキップ

何も壊れない: スナップショットとタイムトラベル

約20分 · スナップショット、過去の確認、変更ログ

PlaidCloud を使い始めたばかりで、何かを壊してしまうのが不安ですか? その心配はありません。テーブルに書き込まれるたびに、レイクハウスはその時点の内容のスナップショット、つまり一貫性のある特定時点のコピーを保持し、プロジェクトへのすべての変更は、特定時点への復旧のために追跡されます。上書きしても、以前の状態は消えません。このチュートリアルでは、3つのセーフティネットを順に確認します。恐る恐る進める必要はなくなり、思い切って試せるようになります。

要点は一言で言うと。 データの過去の状態は、自動的に保持されます。試す前にバックアップを取る必要はありません。バックアップはすでに取られています。

セーフティネット 答えてくれる疑問
スナップショット 「直前の変更を加える前、このテーブルはどうなっていたか?」
タイムトラベル 「古いデータが存在すると知るだけでなく、実際に見ることはできるか?」
プロジェクトログ 「このプロジェクトで何が起き、誰が行ったのか?」
  • PlaidCloud ワークスペース(お持ちでない場合は無料トライアルを開始してください)
  • 少なくとも1つのテーブルがあるプロジェクト。インポートまたは作成したテーブルであれば、どれでも構いません
  • インストールは不要です。3つのツールはすべて Analyze に組み込まれています

ステップ1: 意図的にスナップショットを作成する

Section titled “ステップ1: 意図的にスナップショットを作成する”

PlaidCloud は書き込みのたびにテーブルのスナップショットを作成しますが、オンデマンドで作成することもできます。大規模な再ロードや一括編集など、リスクが高いと感じる作業の前に作成しておくと安心です。

  1. プロジェクトのテーブルの一覧で、対象のテーブルの行からスナップショットパネルを開きます。テーブルのスナップショットが新しい順に表示されます。
  2. スナップショットを作成をクリックして、現在のデータを保存します。後で分かるように、before I experiment のような名前を付けます。
  3. 名前を付けたスナップショットが、一覧の先頭に表示されます。

これで、いつでも戻れる、ラベル付きの時点ができました。この状態で、テーブルを変更してみましょう。ステップを実行する、行を編集する、再ロードするなど、何をしても、このスナップショットには影響しません。

名前を付けたスナップショットは保留され、保留は、そのスナップショットだけにとどまりません。 スナップショットを作成または保留で名前を付けたスナップショットは固定され、通常の保持期間を超えて保持されます。解放するまでは、それ以降に書き込まれたすべてのスナップショットも保持されるため、解放するまでストレージの使用量は増え続けます。

名前の付与はテーブルエンジンによって異なりますが、保留は異なりません。 オンデマンドのスナップショットに名前を付けられるのは、Lakehouse(StarRocks)テーブルです。スナップショットの保留と解放は、Databend を基盤とするテーブルでも利用できるようになりました。そのため、名前の入力フィールドが表示されなくても操作を間違えているわけではなく、保留と解放は想定どおりの場所にあります。

ステップ2: スナップショットの一覧を読み取る

Section titled “ステップ2: スナップショットの一覧を読み取る”

スナップショットパネルは、テーブルの履歴を示すタイムラインです。各行が、何が変わったかを示します。

列 表示内容
日時 スナップショットが作成された日付と時刻
行数 そのスナップショット時点でのテーブルの行数
Δ行数 前のスナップショットからの行数の変化。各書き込みで何が追加または削除されたかが分かります
サイズ スナップショットの圧縮後のストレージサイズ
ラベル 名前を付けた、または固定したスナップショットの名前
保留中 通常の保持期間を超えて保持されるスナップショットの固定マーカー

履歴をどこまでさかのぼれるかは、テーブルのタイムトラベルの設定で決まります。デフォルトは1日で、最大90日です。それより長く保持するには、必要になる前に、テーブルまたはプロジェクトの設定を引き上げてください。ストレージを管理するを参照してください。

インポート900行クリーンアップ850行before I experiment850行 · 保留中実験610行
書き込みのたびに、スナップショットが残ります。名前を付けたスナップショットは、その後に何をしても変わらず残ります。

ステップ3: 過去にさかのぼって確認する

Section titled “ステップ3: 過去にさかのぼって確認する”

古いデータが存在すると分かっていれば安心できますが、実際に見ることで、本当だと確信できます。以前のスナップショット時点のテーブルを表示する方法は2つあり、どちらも、どのスナップショットを表示しているかを示すバナーと現在のデータに戻るボタンが付いた読み取り専用の履歴ビューで、テーブルエクスプローラーを開きます。

  1. スナップショットパネルから — スナップショットを選択して、スナップショット時点を表示をクリックします。
  2. テーブルエクスプローラーから — ツールバーの As of ドロップダウンを使用します。テーブルの最近のスナップショットが一覧表示されるので、1つ選択してビューを切り替えます。ライブデータに戻るには、現在(ライブデータ) を選択します。

この方法で before I experiment スナップショットを開くと、手を加える前とまったく同じ状態のテーブルが表示されます。変更した行は、元の状態に戻っています。

これは窓であって、編集ではありません。 履歴ビューは読み取り専用です。編集可能なコピーで作業しているのではなく、過去を見ているだけなので、閲覧しても何も影響しません。古いデータが確かにあることを確認できたら、現在のデータに戻るをクリックします。

以前の状態をライブテーブルに戻したい場合は、スナップショットパネルの元に戻す / 復元を使用します。テーブルをその場で置き換えることも、スナップショットを元のテーブルには触れずに、まったく新しいテーブルに復元することもできます。その場で元に戻す場合は、確認のためにテーブル名の入力が求められ、まず元に戻す前の安全用スナップショットが作成されます。そのため、元に戻す操作自体も元に戻せます。このチュートリアルでは必要ありませんが、この手段があることを知っておいてください。詳しい手順は、テーブルのスナップショットを参照してください。

ステップ4: プロジェクト全体の変更を確認する

Section titled “ステップ4: プロジェクト全体の変更を確認する”

スナップショットがカバーするのは1つのテーブルです。プロジェクトログはすべてをカバーします。ワークフローの実行やメンバーの割り当てなど、プロジェクトで操作が行われるたびにログに記録され、すべてのワークフローのログが1つのビューに統合されます。

  1. Analyze を開きます。
  2. プロジェクトを選択します。
  3. ログタブ(プロジェクトログ)を開きます。
  4. 一覧を絞り込むには、ログメッセージの横にあるフィルターのコントロールを使用して条件を選択します。1件のエントリーを全文で確認するには、右クリックしてログメッセージボックスをオンにし、詳細を表示します。

さかのぼってみると、自分の操作を振り返ることができます。実行した実験、その実行日時、影響した対象が分かります。自分が行ったことは、後から分からなくなることはありません。

プロジェクト自体も履歴を保持しています。 テーブルだけでなく、ワークフロー、データエディター、階層、テーブル構造、UDF など、プロジェクトへのすべての変更が追跡され、特定時点への復旧に対応しています。そのため、ミスから復旧したり、比較のために以前の状態を別の場所にコピーしたりできます。プロジェクトを管理するを参照してください。

さあ、何かを壊してみましょう

Section titled “さあ、何かを壊してみましょう”

これで、ほとんどあらゆるものを元に戻し、確認し、復旧する方法が3つ揃いました。

  • 始める前に名前を付けたスナップショットと、書き込みのたびに作成されるスナップショット。
  • 何も確定することなく、読み取り専用で任意のスナップショットを見られるタイムトラベル。
  • あなたが覚えていなくても、何が起きたかを記憶しているプロジェクトログ。

PlaidCloud を最も早く習得する方法は、いろいろ試してみることです。セーフティネットはすでに足元にあります。それがこの機能の目的です。