子インスタンスの作成
プレビュー
この機能は、us-east-1
、us-west-2
、eu-west-1
、ap-southeast-1
、ap-southeast-2
、eu-central-1
、us-east-2
、ap-south-1
の各地域でパブリック プレビュー段階です。
このページでは、既存のLakebaseデータベースインスタンスから子インスタンスを作成する方法について説明します。
子インスタンスとは何ですか?
子インスタンスは、元のデータベース・インスタンスのコピー・オン・ライト・クローンです。これは、現在の時点から作成することも、 復元ウィンドウ 内の履歴時点から作成することもできます。復元ウィンドウは、ポイントインタイムリカバリを実行できる時間範囲 (2 日から 35 日) を指定します。リストア・ウィンドウは、データベース・インスタンスの作成時に定義されます。子インスタンスは、手動スナップショットやデータベース全体のエクスポートを待たずに、このリストア・ウィンドウ内の任意の時点で作成できます。
子インスタンスを作成すると、削除されるまでクエリに使用できます。親の復元ウィンドウに関連付けられた自動有効期限はありません。これにより、親の復元ウィンドウの有効期限が切れている場合でも、子インスタンスが作成されたポイントインタイム データに常にアクセスできるようになります。
子インスタンスは親から分離されます。子インスタンスで実行した読み取りまたは書き込みは、ソースインスタンスには影響しません。子インスタンスで行われた変更では、コピーオンライトが使用されるため、変更は「デルタ」として保存されます。これにより、変更されていないデータが共有され、余分なストレージが最小限に抑えられます。
子インスタンスはいつ作成する必要がありますか?
子インスタンスの作成は、次のシナリオで役立ちます。
- 偶発的なデータ損失の回復: 昨日の午前 10 時 23 分にクリティカル テーブルが削除された場合は、午前 10 時 22 分に設定された子インスタンスを生成して、不足しているデータのみを抽出し、マージし直すことができます。
- テストおよびQA環境: 過去 X 日間 (復元ウィンドウで定義されている) の任意の時点から 本番運用のような環境を複製して、スキーマの変更を検証するか、統合テストを実行します。
- コンプライアンスと監査: 過去の日付のデータベースの状態を反映する子インスタンスを、内部監査、財務調整、またはフォレンジック分析のためにプロビジョニングします。
親データベース・インスタンスからの子インスタンスの作成
親から子データベース・インスタンスを作成するには、親インスタンスのリストア・ウィンドウを構成して、データ・リカバリに使用可能な時間枠を定義します。次に、希望する復元ポイントを指定して子インスタンスを作成できます。
手順 1: 親データベース インスタンスで復元ウィンドウを構成する
復元ウィンドウの有効な値は、2 日から 35 日までです。デフォルトのウィンドウは 7 日間です。データベース・インスタンスの作成時に、データベース・インスタンスのリストア・ウィンドウを指定できます。データベース ・インスタンスの作成を参照してください。
UI または API を使用して、データベース・インスタンスのリストア・ウィンドウを変更します。
- UI
- curl
- ワークスペースのサイドバーで「 コンピュート 」をクリックします。
- 「データベース・インスタンス 」タブをクリックします。
- 更新するデータベース・インスタンスを選択します。
- 右上隅の 「編集 」をクリックします。
- [復元ウィンドウ (日)] で、復元ウィンドウの日数を設定します。
- 保存 をクリックします。
curl -s -X PATCH --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances/my-instance -d '{"retention_window_in_days": 14}'
ステップ 2: 子インスタンスを作成する
子インスタンスの役割と権限は、選択した復元ポイントの親の役割と権限と同じです。これにより、ユーザーが親インスタンスで現在付与されている権限と一致しない権限を持つ可能性があります。Databricks ID ロールを表示 し、子インスタンスに対する古い特権を取り消します。
通常のデータベースインスタンスの作成時に「 親から作成 」を有効にして、子インスタンスを作成します。「 データベース・インスタンスの作成と管理」を参照してください。
- UI
- curl
- Python SDK
- CLI
[親から作成 ] を有効にすると、次の 2 つの追加パラメーターを指定できます。
- 親インスタンス名: 子データベースの作成元となる親インスタンスの名前。
- 親から次のデータまでのデータを含めます。 データが必要な特定の過去の時点。
- 現在のポイント・イン・タイム: これにより、データベース・インスタンスの最新データを含む子インスタンスが作成されます。
- 具体的な日時: これにより、データベース・インスタンスのリストア・ウィンドウ内の特定の時点で子インスタンスが作成されます。子インスタンスには、その特定の時点のすべてのデータが含まれます。
- 特定のログ シーケンス番号: 復元ウィンドウで特定の先行書き込みログ (WAL) ログ シーケンス番号 (LSN) から子インスタンスを作成します。PostgreSQLはWALを使用してリカバリをサポートし、各WALレコードにLSNを割り当てます。子インスタンスには、そのWAL LSNのすべてのデータが含まれています。WALの詳細については、 WALの内部を参照してください。現在の LSN 値を取得するには、 バックアップ制御関数を参照してください。
データベース・インスタンスの最新データを使用して子インスタンスを作成します。
curl -s -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances -d '{"name": "test", "capacity": "CU_2", "parent_instance_ref": {"name": "test-child"}}'
UTC で指定された特定の日時のデータを使用して子インスタンスを作成します。
curl -s -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances -d '{"name": "test", "capacity": "CU_2", "parent_instance_ref": {"name": "test-child", "branch_timestamp":"2025-05-23T17:21:00Z"}}'
データベースインスタンスの特定のWAL LSNからのデータを使用して子インスタンスを作成します。
curl -s -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances -d '{"name": "test", "capacity": "CU_2", "parent_instance_ref": {"name": "test-child", "lsn":"0/2A156E"}}'
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.database import DatabaseInstance
# Initialize the Workspace client
w = WorkspaceClient()
parent_instance_name = "test-child"
instance_name = "test"
# Create a child instance using the most recent data from a database instance.
instance = w.database.create_database_instance(
DatabaseInstance(
name="my-database-instance",
capacity="CU_1",
parent_instance_ref={
"name": parent_instance_name
}
)
)
# Create a child instance with data from a specific date and time, specified in UTC.
instance = w.database.create_database_instance(
DatabaseInstance(
name=instance_name,
capacity="CU_1",
parent_instance_ref={
"name": parent_instance_name,
"branch_timestamp": "2025-05-23T17:21:00Z"
}
)
)
# Create a child instance with data from a specific WAL LSN of a database instance.
instance = w.database.create_database_instance(
DatabaseInstance(
name=instance_name,
capacity="CU_1",
parent_instance_ref={
"name": parent_instance_name,
"lsn": "0/2A156E"
}
)
)
# Create a database instance from the most recent data of a parent instance
databricks database create-database-instance my-database-instance \
--capacity CU_1 \
--parent-instance-ref '{"name": "my-parent-instance"}'
# Create a database instance from a specific date and time, specified in UTC
databricks database create-database-instance \
--json '{
"name": "my-database-instance",
"capacity": "CU_2",
"parent_instance_ref": {
"name": "my-parent-instance",
"branch_timestamp": "2025-05-23T17:21:00Z"
}
}'
# Create a database instance from a specific WAL LSN of a parent instance
databricks database create-database-instance \
--json '{
"name": "my-database-instance",
"capacity": "CU_2",
"parent_instance_ref": {
"name": "my-parent-instance",
"lsn": "0/2A156E"
}
}'
制限
- データベース・インスタンスに対して一度に作成できる子インスタンスは 1 つだけです。
- 親インスタンスは、子インスタンスを削除しない限り削除できません。
- 子インスタンスは、短期間のテストまたはリカバリ用に設計されています。子または親に大幅な変更を加えると、システムが減少する可能性があります データ共有 子の完全なコピーが維持されます。 ストレージの使用量とコストは、スタンドアロン データベース インスタンスのそれに合わせて増加する可能性があります。