2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Databricks Delta Lake機能

Last updated at Posted at 2021-01-13

Delta Lake DML機能(データ追加/更新/削除)

ここでは、Delta Lakeの DML機能(データ追加/更新/削除)について、まとめていきます。

参照:https://docs.databricks.com/delta/delta-update.html

データを追加する

データを追加していく方法をまとめます。

・ファイルアップロード
ファイルからデータをアップロードしていく方法を記していきます。
ex.1直接ファイルアップロード

image-20201117181156190.png

Dataタブをクリックし、Add Dataボタンをクリックすると上記画面に遷移される。

image-20201117181227917.png

DBFS配下の任意のフォルダをSelectボタンから、選択していく。

image-20201117181303051.png

特に指定しない場合は/FileStore/tables/ 配下にアップロードされる。

image-20201117181340106.png

選択して、ウィンドウを閉じると、自動的にアップロードされる。
Remove fileを押すと、アップロードされたファイルが取り消しされる。

ex.2 S3からファイルアップロード

image-20201117181546868.png

Create New Tableの画面から、S3タブを選択します。
Create Table with UIボタンを押下します。

image-20201117181609566.png

クラスターを選択するところで起動しているクラスターを選択します。
その下にあるS3 Bucket Nameの項目にS3バケット名を記載します。
必要項目が設定されましたら、Browse Bucketボタンを押下します。

image-20201120141336019.png

image-20201120141425950.png

S3バケットの中にあるファイルを表示してくれます。

そこで、データを取り込みたいファイルを選択します。

image-20201120141626541.png

Peview Tableボタンが表示されるので、クリックします。

image-20201120141823762.png

データが読み込まれ、Create Tableボタンが表示されます。

ボタンをクリックすると、テーブルが作成され、Databaseにテーブル、データが追加されます。

image-20201120142036212.png

上記はデータタブから、S3バケットを参照して、データを読み込んでくるやり方です。

※データタブからデータを読み込むにはテーブルを作成することがデフォルトの設定となっています。

Notebook上で、コマンドを叩いて、S3バケットからデータを読み込んでくるやり方も記載いたします。

  • Notebookを開いてs3をマウントする
dbutils.fs.mount("s3a://PoCで使用するバケット名", "/mnt/demo")
display(dbutils.fs.ls("/mnt/demo"))

※マウントが既にされていたら、上記は必要なし。

  • csvファイルを読み込む

    df = spark.read.csv("/mnt/demo/読み込みたいファイル")
    display(df)
    

読み込んできたファイルの中身がディスプレイ上で表示される。

S3accses (10).png

ex.3 その他システムからファイルアップロード

image-20201117181744988.png

Create New Tableの画面から、Other Data Sourcesタブを選択します。
Connectorが出てきますので、そこから、データツールを選択します。

image-20201117181816598.png

Create Table in Notebookボタンを押下します。
Notebookのページに遷移して、テーブル作成の
Notebookが簡易的に作成されます。

image-20201117181910540.png

Notebookに記載されている必要な設定をして、Runを実行すると、
データがアップロードされます。

更新と削除:

Delta Lakeは、データセットをマージ、更新、削除するためのDML APIを提供します。これにより、GDPR/CCPAに容易に準拠でき、変更データのキャプチャを簡素化できます

テーブルから削除する

述語に一致するデータをデルタテーブルから削除できます。たとえば、2017以前のすべてのイベントを削除するには、次のコマンドを実行できます。

DELETE FROM events WHERE date < '2017-01-01'

DELETE FROM delta.`/data/events/` WHERE date < '2017-01-01'

詳細については、APIリファレンス参照してください。

重要:

deleteDeltaテーブルの最新バージョンからデータを削除しますが、古いバージョンが明示的にバキュームされるまで、物理ストレージからデータを削除しません。詳細については、バキュームを参照してください。

ヒント:

可能であれば、パーティション化されたDeltaテーブルのパーティション列に述語を指定します。そのような述語は操作を大幅に高速化できるためです。

テーブルを更新する

Deltaテーブルの述語に一致するデータを更新できます。たとえば、のスペルミスを修正するにはeventType、次のコマンドを実行します。

UPDATE events SET eventType = 'click' WHERE eventType = 'clck'

UPDATE delta.`/data/events/` SET eventType = 'click' WHERE eventType = 'clck'

詳細については、APIリファレンス参照してください。

ヒント

削除と同様に、更新操作はパーティション上の述語を使用して大幅に高速化できます。

以上がDML機能(データ追加/更新/削除)についてでした。

見ていただき、ありがとうございました。

株式会社メソドロジック

川名智士

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?