Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 基本的なデータの更新と削除 | Databricksのコア概念
Databricks基礎:初心者ガイド

基本的なデータの更新と削除

メニューを表示するにはスワイプしてください

Note
定義

標準的なデータレイクでは、単一行の更新や削除は、データセット全体を書き換えない限りほぼ不可能です。Delta Lakeはトランザクションログを使用しているため、標準SQLのUPDATEおよびDELETEコマンドをサポートし、テーブルに対して正確な修正が可能です。

前のセクションでは、データの読み取りと要約に注力しました。しかし、データはほとんどの場合静的ではありません。ダイヤモンドのレコードの一部に誤った価格が含まれていたり、特定の「cut」タイプをレポートから除外する必要が生じることがあります。

このdiamondsテーブルはDeltaテーブルであるため、従来のデータベースと同様に修正が可能です。

1. レコードの更新

UPDATEコマンドは、条件を満たす特定の行の値を変更するために使用します。例えば、すべての"Fair"カットのダイヤモンドの価格を10%増加させる場合:

UPDATE workspace.workshop.diamonds
SET price = price * 1.1
WHERE cut = 'Fair'
  • SET — 列の新しい値の定義
  • WHERE — 重要。WHERE句がない場合、テーブル内のすべてのダイヤモンドの価格が更新されます。

2. レコードの削除

DELETE コマンドは、テーブルから行を完全に削除します。データが不要になった場合や誤って取り込まれた場合に使用します。

DELETE FROM workspace.workshop.diamonds
WHERE carat > 5.0

このコマンドは、5カラットを超えるすべてのダイヤモンドを特定し、テーブルのアクティブバージョンから削除します。

3. 変更後の検証

更新や削除を実行した後は、操作が期待通りに行われたかを確認するために、SELECT count などの簡単なクエリで必ず検証します。

-- Verify how many 'Fair' diamonds are left (count should be the same, but prices changed)
SELECT count(*) FROM workspace.workshop.diamonds WHERE cut = 'Fair'

4. Delta更新の安全性

DELETEUPDATE を実行しても、Delta Lake は古いファイルから直接データを消去しません。代わりに、次の3段階のプロセスを実行します。

  1. 古いファイルを「無効」としてマークする
  2. 更新後のデータを含む新しいファイルを書き込む
  3. 変更内容をトランザクションログに記録する

このため、削除後でも Time Travel が機能します。履歴が手動でパージされるまで、古いデータはテーブルファイルの過去バージョンに残り続けます。

5. ベストプラクティス:SELECTによるテスト

DELETEUPDATE を実行する前に、必ず SELECT でフィルター条件をテストすること。

  • 例(誤った手順): DELETE FROM diamonds WHERE color = 'J'
  • まず試すべき手順: SELECT * FROM diamonds WHERE color = 'J'

SELECT の結果が削除したいデータと一致していれば、安全に DELETE コマンドを実行可能。

1. WHERE句なしでUPDATEコマンドを実行するとどうなりますか?

2. DeltaテーブルでDELETEコマンドを実行すると、基盤となるクラウドストレージからデータは即座に完全に消去されますか?

question mark

WHERE句なしでUPDATEコマンドを実行するとどうなりますか?

正しい答えを選んでください

question mark

DeltaテーブルでDELETEコマンドを実行すると、基盤となるクラウドストレージからデータは即座に完全に消去されますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 5.  4

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 5.  4
some-alt