メインコンテンツまでスキップ

ブランチを管理する

備考

Lakebase オートスケールは次のリージョンで利用できます: us-east-1us-east-2eu-central-1eu-west-1eu-west-2ap-south-1ap-southeast-1ap-southeast-2

Lakebase オートスケールは、オートスケール コンピュート、ゼロへのスケール、分岐、即時復元を備えた Lakebase の最新バージョンです。 Lakebase プロビジョニングとの機能の比較については、 「バージョン間の選択」を参照してください。

さまざまな開発ワークフロー、テストシナリオ、本番運用環境をサポートするブランチを作成および管理します。 ブランチを使用すると、本番運用に影響を与えることなく、分離されたデータベース環境で作業できます。

注記

ブランチ管理権限について:

  • ブランチを作成、削除、または更新するには、プロジェクトに対する CAN MANAGE 権限が必要です。「プロジェクト権限の管理」を参照してください。
  • ブランチ内にデータベースまたはロールを作成するには、プロジェクトに対する CAN MANAGE 権限が必要です。
  • 親子関係、コピーオンライトストレージ、分岐戦略などの分岐の仕組みについては、 「データベース ブランチ」を参照してください。

ブランチを理解する

ブランチ概要

Lakebase Postgres のブランチは、コピーオンライトを通じて親ブランチとストレージを共有する独立したデータベース環境です。ブランチを使用すると次のことが可能になります。

  • 分離された開発環境とテスト環境を作成する
  • 現実的なデータセットに対してアプリケーションをテストする
  • データベース開発ワークフローを実装する

支店の種類と戦略

ブランチを作成するときは、特定のニーズに応じていくつかのオプションから選択できます。各オプションは、異なるデータ特性とユースケースを持つブランチを作成します。

オプション

説明

現在のデータ

親ブランチの最新の状態からブランチを作成します。開発、現在のデータを使用したテスト、機能ブランチに最適です。

過去のデータ

復元ウィンドウ内の特定の時点からブランチを作成します。ポイントインタイムリカバリ、履歴分析、ロールバックシナリオ、および特定の時点でのデータのクエリに役立ちます。日付ピッカーを使用して、希望する時点を選択します。

ブランチの有効期限

ブランチの有効期限により、ブランチに自動削除タイムスタンプを設定できます。ブランチの有効期限が切れると、自動的に削除されます。この機能は、一時的なブランチを管理し、ストレージ コストを削減するのに役立ちます。

ブランチの有効期限を使用する理由

ブランチの有効期限は、存続期間が予測可能な一時ブランチに最適です。

  • CI/CD 環境: パイプラインの完了後にクリーンアップする必要があるブランチをテストします。
  • 機能開発: 期限がわかっている、時間制限のある機能ブランチ。
  • 自動テスト: スクリプトによって作成された一時的なテスト環境。
  • 開発ワークフロー: 無期限に存続する必要のない一時的な環境。

自動的に期限切れにならないと、これらのブランチは時間の経過とともに蓄積され、ストレージ コストが増加し、プロジェクトが乱雑になります。

ヒント

有効期限の例: CI/CD パイプライン (2 ~ 4 時間)、デモ (24 ~ 48 時間)、機能開発 (1 ~ 7 日間)、長期テスト (30 日間)。

ブランチの有効期限の仕組み

ブランチの有効期限には、Time-To-Live (TTL) モデルが使用されます。ブランチに有効期限を設定すると、自動的に削除されるまでのブランチの存在期間が定義されます。

ブランチに有効期限のタイムスタンプを設定する場合:

  1. システムは、有効期限のタイムスタンプ(ブランチが削除される予定の日時)とTTL間隔(作成または更新から有効期限までの期間)の両方を保存します。
  2. バックグラウンドプロセスはブランチを監視し、有効期限が切れるとブランチを削除します。
  3. 親からブランチをリセットすると、TTLのカウントダウンは元の間隔で再開されます。
重要

ブランチの削除は永続的であり、回復することはできません。関連するすべてのデータとコンピュート リソースも削除されます。 有効期限を設定する前に慎重に確認してください。

ブランチの有効期限制限

システムの整合性を維持するために、有効期限のタイムスタンプを次のものに追加することはできません。

  • 保護されたブランチ: 保護されたブランチを期限切れにしたり、有効期限が切れたブランチを保護したりすることはできません。
  • デフォルトブランチ: デフォルトブランチを期限切れにしたり、期限切れになるブランチをデフォルトとして設定したりすることはできません。
  • 親ブランチ: 子を持つブランチを期限切れにしたり、期限切れになるブランチから子を作成したりすることはできません。
注記

ブランチの有効期限が切れて削除されると、関連するすべてのコンピュート リソースも削除されます。 重要なワークロードが有効期限前に移行されていることを確認します。

最大有効期限

最大有効期限は現在時刻から 30 日間です。ブランチを 30 日間以上存続させる必要がある場合は、有効期限が切れる前に有効期限のタイムスタンプを更新して、ブランチの存続期間を延長することができます。

ブランチの作成と管理

ブランチを作成する

ブランチを作成するには:

  1. Lakebase アプリでプロジェクトの ブランチ ページに移動します。

  2. 「ブランチの作成」 をクリックし、ブランチ オプションを構成します。

    • わかりやすいブランチ名を入力してください(必須)
    • 希望するブランチタイプ(現在のデータまたは過去のデータ)を選択します
    • オプションで、「次の時間 が経過したらブランチを期限切れにする」 をチェックし、プリセット (1 時間、1 日、または 7 日) を選択して、自動削除の有効期限を設定します。詳細については、ブランチの有効期限を参照してください。
    • 選択したオプションの追加設定を構成します
  3. 「作成」 をクリックしてブランチを作成します。

ブランチ作成ダイアログ

API または CLI を使用してブランチを作成する場合は、次のいずれかを使用して有効期限ポリシーを指定する必要があります。

  • ttl: 期間(秒)(例: 7日間の場合は"604800s"
  • expire_time: 特定の日付と時刻の ISO 8601 タイムスタンプ
  • no_expiry: true: 期限切れにならないブランチの場合

ブランチを表示

UIで表示

Lakebase プロジェクト内のすべてのブランチを表示するには、Lakebase アプリでプロジェクトを選択し、左側のナビゲーションの [ブランチ] に移動します。

ブランチ テーブルには、各ブランチに関する重要な情報が表示されます。

ブランチテーブル

ブランチ ページには、プロジェクト内の各ブランチに関する情報を含む包括的な表が表示されます。

説明

ブランチ

ブランチ名。デフォルトのブランチには「デフォルト」というラベルが表示されます。

このブランチが作成された親ブランチを示し、ブランチ階層を追跡するのに役立ちます。

活動時間

ブランチのコンピュートがアクティブであった時間数。

プライマリコンピュート

ブランチのコンピュートの現在のコンピュート サイズとステータス (IDLE または ACTIVE など) を表示します。

データサイズ

ブランチの論理データ サイズを示します。データサイズには履歴は含まれません。

作成者

ブランチを作成したユーザーまたはサービス。

最終アクティブ

ブランチのコンピュートが最後にアクティブであった時期を示します。

テーブル内の任意のブランチをクリックすると、ブランチの概要ページが表示され、選択したブランチの詳細情報が表示されます。

ブランチ概要ページ

ブランチ概要ページの上部には、主要なメトリクスやメタデータなどの詳細な情報が表示されます。

フィールド

説明

ID

一意のブランチ識別子(br-プレフィックス付き)

作成日

ブランチが作成された日時

コンピュート時間

ブランチが使用した合計コンピュート時間

アクティブ時間

特定の日付以降に使用された時間のコンピュート

データサイズ

ブランチの論理データサイズ(履歴は含まれません)

作成者

ブランチを作成したユーザー

ブランチの概要ページには、ブランチのさまざまな側面を管理するためのいくつかのタブが含まれています。

Tab

説明

コンピュート

ブランチのプライマリ コンピュートを表示および管理します。 「コンピュートの管理」を参照してください。

ロールとデータベース

ブランチに関連付けられたデータベース ロールとデータベースを管理します。「データベースの管理」および「ロールの管理」を参照してください。

子ブランチ

このブランチから作成されたブランチを表示します

プログラムでブランチを取得する

Postgres API を使用して特定のブランチの詳細を取得するには:

Python
from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

# Get branch details
branch = w.postgres.get_branch(
name="projects/my-project/branches/development"
)

print(f"Branch: {branch.name}")
print(f"Protected: {branch.status.is_protected}")
print(f"Default: {branch.status.default}")
print(f"State: {branch.status.current_state}")
print(f"Size: {branch.status.logical_size_bytes} bytes")

プログラムでリストする

Postgres API を使用してプロジェクト内のすべてのブランチを一覧表示するには:

Python
from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

# List all branches in a project
project_name = "projects/my-project"
branches = list(w.postgres.list_branches(parent=project_name))

for branch in branches:
print(f"Branch: {branch.name}")
print(f" Default: {branch.status.default}")
print(f" Protected: {branch.status.is_protected}")

ブランチスキーマを比較する

変更をマージする前に、子ブランチとその親ブランチ間のスキーマの違いを確認します。スキーマ diff では、テーブル、列、インデックス、制約などの追加、削除、または変更されたデータベース オブジェクトを強調表示する、並べて表示された SQL DDL 比較が表示されます。

ブランチ間でスキーマを比較するには:

  1. Lakebase アプリの子ブランチの概要ページに移動します。

  2. 親ブランチ セクションで、 スキーマ差分 をクリックします。

  3. スキーマ相違ダイアログで次の操作を実行します。

    • ベース : 比較するベース ブランチを選択します (デフォルトは親ブランチ)。
    • データベース : 比較するデータベースを選択します。
    • 比較 : ベースと比較するブランチを選択します (デフォルトは現在の子ブランチ)。
  4. 比較 をクリックします。

差分結果を理解する

スキーマが異なる場合、差分ビューには SQL DDL ステートメントの横並びの比較が表示されます。

色分けされた SQL DDL の変更によるブランチ間の差異を示すスキーマ diff

赤い線はベース ブランチから削除または変更された内容を示し、緑の線は比較ブランチで追加または変更された内容を示します。diff は、テーブル定義、列、制約、インデックス、およびその他のデータベース オブジェクトへの変更をキャプチャします。

選択したブランチ間に違いがない場合、スキーマが同期されていることを確認する成功メッセージが表示されます。

スキーマが同期されていることを示すスキーマ差分

マージ前の検証、開発の追跡、ドリフトの検出、変更のドキュメント化にはスキーマ diff を使用します。完全な開発ワークフローでスキーマの相違を確認するには、 「チュートリアル: ブランチベースの開発ワークフロー」を参照してください。

注記

スキーマ diff では、データの内容ではなく、データベース スキーマ (DDL) のみを比較します。比較には、両方のブランチから利用可能な最新のデータ (ヘッド) が使用されます。

ブランチ設定を更新する

デフォルトとして設定

各 Lakebase プロジェクトは、 productionと呼ばれるデフォルトのブランチを使用して作成されますが、任意のブランチをデフォルトとして指定できます。もちろんブランチは同時アクティブなコンピュート制限から免除されており、常に利用可能な状態が維持されます。

注記

デフォルトのブランチを変更できるのは、Lakebase UI からのみです。API は、デフォルトのブランチの変更をサポートしていません。

ブランチをデフォルトとして設定するには:

  1. Lakebase アプリでプロジェクトの ブランチ ページに移動します。
  2. クリックケバブメニューアイコン。デフォルトとして設定するブランチの横にあるメニューをクリックします。
  3. 「デフォルトとして設定」を 選択し、操作を確認します。

保護済みとして設定

保護されたブランチは、重要なブランチを偶発的な変更や削除から保護するのに役立ちます。保護されたブランチは非アクティブのため、削除、リセット、またはアーカイブできません。保護されたブランチを持つプロジェクトとそれに関連付けられたコンピュートも削除できません。

ブランチを保護済みとして設定するには:

  1. Lakebase アプリの ブランチ に移動し、保護するブランチを選択します。
  2. 「保護」 をクリックして選択内容を確認します。

ブランチを保護する

ブランチ名の横に表示されるシールド アイコンによって示されるように、ブランチは保護されていると指定されました。

子ブランチのパスワード管理を含む、保護されたブランチの詳細については、 「保護されたブランチ」を参照してください。

更新の有効期限

ブランチを作成するときに有効期限のタイムスタンプを設定したり、後で更新したりできます。

ブランチを作成するとき
  1. Lakebase アプリでプロジェクトの ブランチ ページに移動します。
  2. [ブランチの作成] をクリックし、ブランチ名 (必須) を入力し、ブランチ オプションを構成し、 [ブランチの有効期限をオンにする] をオンに してプリセット (1 時間、1 日、または 7 日) を選択します。
  3. 作成 をクリックします。
ブランチの有効期限の更新

既存のブランチの有効期限タイムスタンプを更新または削除するには:

  1. Lakebase アプリでプロジェクトの ブランチ ページに移動します。
  2. クリックケバブメニューアイコン。ブランチの横にあるメニューをクリックし、 [有効期限の更新] を選択します。
  3. 新しい日時を選択するか、 「Expire branch on」の チェックを外して有効期限を削除し、 「Save」 をクリックします。

ブランチの有効期限の更新

ブランチの有効期限を表示

ブランチに有効期限が設定されているかどうかを確認するには、プロジェクトの ブランチ ページに移動し、目的のブランチをクリックします。有効期限情報はブランチの詳細に表示されます。

親からのブランチをリセット

ブランチをリセットすると、親ブランチの最新のスキーマとデータで即座に更新できます。これにより、問題から回復したり、新しい機能の開発を開始したり、環境内のさまざまなブランチを同期させたりすることができます。

シナリオ例

ブランチを操作するときに、作業ブランチを親ブランチの最新データに更新する必要がある状況に遭遇することがあります。

たとえば、 productionブランチから分岐した 2 つの子ブランチstagingdevelopmentがあるとします。developmentブランチで作業していたところ、 productionと比べて大幅に古くなっていることがわかりました。

developmentには考慮または保存する必要があるスキーマ変更はありません。必要なのはデータの簡単な更新だけです。1 回の操作で親から最新のデータにクリーンかつ即座にリセットできるため、手動でブランチを作成して復元する煩雑さが省けます。

親からのリセットの仕組み

ブランチを親にリセットすると、データとスキーマは親の最新のデータとスキーマに完全に置き換えられます。

要点:

  • ブランチをリセットできるのは、親からの最新のデータのみです。タイムスタンプに基づくポイントインタイム リセットは、ポイントインタイム リストアを使用して実行できます。これは、いくつかの違いがある類似の機能です。ポイントインタイム リストアでは新しいブランチが作成され、開発ワークフローよりもデータの回復を目的としています。
  • このリセットは、更新やマージではなく、完全な上書きです。このリセット中に、子ブランチに対して行われたローカルの変更はすべて失われます。
  • リセット中は既存の接続が一時的に中断されます。ただし、接続の詳細は変更されません。リセットが完了するとすぐにすべての接続が再確立されます。
  • ルート ブランチ (プロジェクトのproductionブランチなど) は、リセットする親ブランチがないためリセットできません。

親からブランチをリセットする

ブランチを親にリセットするには:

  1. Lakebase アプリでプロジェクトの ブランチ ページに移動します。
  2. クリックケバブメニューアイコン。リセットしたいブランチの横にあるメニューをクリックし、 親からリセットを 選択します。
  3. リセット操作を確認します。

親からのブランチのリセット

注記

ブランチに独自の子ブランチがある場合、リセットはブロックされます。親ブランチをリセットする前に、まず子ブランチを削除する必要があります。

ブランチを削除する

重要

ブランチの削除は元に戻すことのできない永続的なアクションです。ブランチを削除すると、以下も削除されます。

  • ブランチに属するすべてのデータベース
  • ブランチに関連付けられたすべての役割
  • ブランチに関連付けられたコンピュート リソース
  • そのブランチに固有のすべてのデータと変更

子ブランチを持つブランチは削除できません。最初に子ブランチを削除する必要があります。

ブランチを削除するには:

  1. Lakebase アプリでプロジェクトの ブランチ ページに移動します。
  2. クリックケバブメニューアイコン。削除したいブランチの横にあるメニューをクリックし、 ブランチの削除を 選択します。
  3. ブランチ名を入力して削除を確認し、 「削除」 をクリックします。

アーカイブされていないブランチの制限

アーカイブされていないブランチの制限により、同時にアクティブ (アーカイブされていない) 状態を維持できるブランチの数が制限されます。ブランチが長期間非アクティブになると、リソースの使用を最適化するために自動的にアーカイブされることがあります。制限はプロジェクトごとにアーカイブされていないブランチ 10 個です。

アーカイブされたブランチは必要に応じてアーカイブ解除できますが、アクティブなアーカイブ解除されたブランチの合計数はこの制限を超えることはできません。

重要: 保護されたブランチとデフォルト ブランチは自動アーカイブから除外され、常に利用可能になります。