【第17話】 Databricks_FROMキーワードのプレフィックスをデータ型とする
Databricks Certified Data Engineer Associate試験合格を目指す皆さん、こんにちは!今回は、FROMキーワードの後に含まれるプレフィックスをデータ型として特定する方法についてキャラクターの会話形式でお話しします。
のびデータ: 「シズちゃん, ジョブアン、最近DatabricksのFROMキーワードの後に含まれるプレフィックスのことで悩んでるんだ」
ジョブアン: 「おう、FROMキーワードの後にあるプレフィックスか。FROMのあとには通常テーブル名がくるだろう。だが、時にはプレフィックスがテーブル名に先立って指定されることがあるぜ」
シズクエリ: 「ええ、FROMの後ろにプレフィックスを指定すると、そのプレフィックスを持つすべてのテーブルがスコープに入るの。 prefix.table_name のように指定するのよ」
のびデータ: 「ふむふむ、ではそのプレフィックスというのは何を表しているんだい?」
ジョブアン: 「簡単だ。プレフィックスはテーブルのデータ型を表しているんだ。例えば csv. というプレフィックスは、FROM節から参照されるテーブルがCSV形式であることを示している。parquet. はParquet形式、json. はJSON形式、jdbc.はJDBC経由でアクセスされる外部テーブルを意味しているぜ」
のびデータ: 「なるほど!データ型を指定することで、効率的に対象テーブルを絞り込めるわけだ。いろんな形式のテーブルがある場合に便利だね」
シズクエリ: 「そうそう。形式を指定することで、テーブルスキャンの効率が上がるの。でも、プレフィックスにはデータ型だけでなく、他の情報も含まれていることがあるのよ」
のびデータ: 「ほかの情報?何だろう?」
シズクエリ: 「たとえば、dbfs. というプレフィックスは、DBFSファイルシステム上のテーブルを指すの。それから、delta. はDelta Lakeテーブルのこと。プレフィックスには、データの格納場所や形式といった情報が含まれているの」
のびデータ: 「なるほど、そういうことか!プレフィックスを使えば、効率的に対象テーブルを指定できるし、そのテーブルの性質もある程度わかるんだね」
ジョブアン: 「おう、要はプレフィックスを見れば、FROMで参照するテーブルのデータ型や属性が大まかにわかる。指定したプレフィックスに合致するテーブルを対象として効率的にクエリを実行できるのだ。いいか、のびデータ!」
のびデータ: 「わかったよ、ジョブアン!DatabricksのFROMでプレフィックスを指定する意味がいろいろとわかったよ。試験で出るかもしれないのでしっかり覚えておこう。ありがとう、シズちゃん、ジョブアン!」
シズクエリ: 「良かったわね、のびデータさん」
ジョブアン: 「DATASET APIの使い方もひととおり理解したか?試験では基本的な内容が問われることが多いぜ」
のびデータ: 「うん、DATASET APIの基本的な使い方は理解できたと思うよ。みんなで学べて楽しかった!」
シズクエリ: 「がんばって試験受かるのびデータ! 私たちも応援するわ!」
<補足>
DatabricksのSQL文では、FROM句の後にテーブル名の前にプレフィックスを指定することができます。
このプレフィックスは、FROMで参照するテーブルのデータ型や属性を示すのに使用されます。
代表的なプレフィックスと意味は以下の通りです。
csv.: CSV形式のテーブル
parquet.: Parquet形式のテーブル
json.: JSON形式のテーブル
jdbc.: JDBC経由でアクセスされる外部テーブル
dbfs.: DBFS上のテーブル
delta.: Delta Lakeテーブル
プレフィックスを指定することで、効率的に対象テーブルを絞り込むことができます。
また、テーブルのデータ型や属性もある程度推測可能です。
FROM句でのプレフィックスの使い方を理解しておくことは、DatabricksのSQLを扱う上で重要です。
DatabricksのSQLでは、FROMキーワードの後にテーブル名やビュー名などの識別子を指定しますが、識別子にはいくつかの種類があります。それでは、FROMキーワードの後に含まれるプレフィックスをデータ型として特定する方法について見ていきましょう。
プレフィックスとは何か?
プレフィックスは、単語の前に付けられる接頭辞のことを指します。例えば、"pre-"は「前に」という意味であり、"re-"は「再び」という意味です。同様に、識別子のプレフィックスは、その識別子の前に付けられる文字列のことを指します。
データ型とは何か?
データ型は、データの性質や種類を表すために使用される識別子のことです。例えば、整数型、文字列型、日付型などがあります。
FROMキーワードの後に含まれるプレフィックスをデータ型として特定する方法
DatabricksのSQLでは、識別子には正規の識別子とデリミタ識別子の2種類があります。正規の識別子はバッククォート(`)で囲まれていないものであり、デリミタ識別子はバッククォートで囲まれているものです。
正規の識別子の場合、FROMキーワードの後に含まれるプレフィックスは、識別子の最初の文字から始まり、最初のアンダースコア(_)またはドット(.)が現れるまでの文字列です。例えば、"table1"という識別子の場合、プレフィックスは"table"です。
デリミタ識別子の場合、バッククォートで囲まれた部分が識別子全体となります。したがって、プレフィックスはバッククォートで囲まれた部分全体となります。例えば、"table1"という識別子の場合、プレフィックスは"table1"です。
以上、理解促進・試験合格の助けになれば幸いです!