見出し画像

【第18話】Databricks_ファイルへの参照としてビュー、一時ビュー、CTEを作成

Databricks Certified Data Engineer Associateの認定試験を突破したいと思っている皆さんに向けて、今日も架空のキャラクターたちが語り合います。データエンジニアリングの勉強に役立つポイントを、友だちの会話を聞いているみたいに楽しく学ぼう。

のびデータ:
「あれ? スキーマオ、さっきからビューやCTEのコードばっか書いてるけど、何してるの?」

スキーマオ:
「のびデータのくせに! 知らないの? Databricksでデータモデルを作るときにビュー、一時ビュー、CTEってめちゃくちゃ便利なんだよ。例えばビューはデータベースにクエリの結果を保存しておけるから、同じクエリを何度も実行する必要がなくなるんだ。」

ジョブアン:
「へぇ、おれのデータはおれのもの、お前のデータもおれのもの・・・だぜ。でも、一時ビューってのはどう違うんだ?」

のびデータ:
「そうだよ、おしえてよ」

スキーマオ:
「悪いなのびデータ、一時ビューはそのセッション限りで使えるビューで、永続的じゃないんだ。CTE、つまりCommon Table Expressionはサブクエリを書くよりも読みやすくして、複雑なクエリを分割して考えられるんだ。」

のびデータ:
「なるほどね~。でも実際にどうやって作るの?」

スキーマオ:
「ビューはCREATE VIEWコマンドで、一時ビューはCREATE TEMP VIEWで作るんだ。CTEはWITH句を使ってクエリの最初に定義するんだよ。」

ジョブアン:
「正しいのはいつもおれだ。さては、ビューってパフォーマンスにも良い影響あるんだろ?」

スキーマオ:
「その通り。ビューは再計算の必要がないからパフォーマンスが向上するし、一時ビューはセッションが終われば消えるからストレージを圧迫しない。CTEはクエリの見通しを良くするから、複雑な処理も管理しやすくなるぜ。のびデータにはむずかしいかもね!」

のびデータ:
「またスキーマオにバカにされた~!でも、勉強になったよ。ありがとう!」

スキーマオ:
「ぼくなんかさ、ハンサムで頭がよくて金持で、きみらにくらべればめぐまれてると思うなぁ。でも、お前もこれでちょっとはマシになったかもな、のびデータ。」

ジョブアン:
「心の友よ、それでいいんだぜ。データは使いようだからな。」

さて、この会話をもとに想像しやすくするために、話し言葉を使いましたが、実際の機能やコマンドにはもっと厳密な定義があります。テストに出る知識をしっかりと身につけるためにも、公式ドキュメントのチェックをお忘れなく。

<補足>
DatabricksにおけるビューはSQLやDataFrameのAPIを使用して作成できます。永続ビューは、メタデータにビューの定義を保存し、ビューに名前を付けることで何度も利用することが可能です。一方、一時ビューはセッションが終了すると消えるため、永続化する必要がない時に便利です。ビューはデータのセキュリティを高めるためにも利用され、特定のユーザーにはビューを通じてのみデータを公開するという使い方もできます。

CTE(Common Table Expressions)は、WITH句を用いて定義され、SQLの一部として複数の回数利用したいサブクエリを一時的に名前をつけて保存する際に使用されます。CTEは読みやすいSQLを書くために有用で、特に複雑なジョインやサブクエリ、レカーシブクエリが絡む場合にクエリの構造を明確にし、デバッグを容易にします。

これらの概念はDatabricksのスケーラブルなデータ処理を最大限に活用するための重要な要素であり、Databricks Certified Data Engineer Associateの試験ではこれらの知識が問われる可能性があります。公式ドキュメントでは、これらの各機能についての詳細な説明や使い方の例が提供されていますので、試験勉強の一環として、ぜひ参照してみてください。


いいなと思ったら応援しよう!