1.はじめに

皆さんこんにちは。

今回は、「COPY INTO」SQLを使用してDatabricksのボリュームに保存されたCSVファイルから、カタログのテーブルにデータを取り込む手順について説明していきます。
COPY INTOを使用してテーブルにデータを取り込む仕組みはINSERT文と同じです。

  • COPY INTO: クラウドストレージ(ADLS、S3、GCS)のファイルからテーブルにデータを取込みます。
  • INSERT INTO: SELECT文、または特定の値からデータをテーブルに挿入します。

ただし、COPY INTOを使用した場合Deltaテーブルへのデータ取込はINSERT INTOコマンドとは異なる処理が行われます。

  •  COPY INTOは、インクリメンタルロード(テーブルにまだロードされていないファイルのみをロード)をサポートします。
  • 一方、INSERT INTOは各行を一つずつ挿入する方法でデータをロードし、インクリメンタルロードはサポートしていません。

2.準備

2-1.データの準備及びクラスター構成

テストデータとして、次のCSV ファイルを使用します。この CSV ファイルは Databricksのボリュームに保存します。

bd-dec22-births-deaths-by-region-2005.csv」ファイルをダウンロードしてください。

ボリュームからCSVファイルを読み込む為、Databricks Runtimeバージョン 13.3 LTS 以降のクラスターを構成する必要があります。

2-2.カタログ、スキーマ、テーブルの作成

カタログ、スキーマ、テーブルを作成するには、ノートブックを使用して下記のSQLコマンドを実行します。

文法:

<catalog_name>: カタログ名

<schema_name>: スキーマ名

<table_name>: テーブル名

例:

2-3.ボリューム作成及びファイルアップロード

ボリュームを作成するには、ノートブックを作成してSQLコマンドを実行します。

文法:

<catalog_name>: カタログ名

<schema_name>: スキーマ名

<volume_name>: ボリューム名

例:

次に、作成したボリュームにアクセスしてCSVファイルをアップロードします。
「このボリュームにアップロード」をクリックしてCSVファイルをアップロードします。

3.データの取り込み

3-1.Databricksのボリュームに保存されたCSVファイルから、カタログのテーブルにデータの取り込み

ボリュームにアクセスしてファイルのパスをコピーします。

COPY INTOコマンドを使用してデータを読み込みます。

文法:

<catalog_name>: カタログ名
<schema_name>: スキーマ名
<table_name>: テーブル名
<volume_url>: コピーしたデータファイルのパス

例:

SELECT文を実行して、データがボリュームからカタログテーブルに取り込まれたことを確認します。

文法:

<catalog_name>: カタログ名

<schema_name>: スキーマ名

<table_name>: テーブル名

例:

データがボリュームからカタログテーブルに正常に取り込まれました。

4.まとめ

Databricksのボリュームに保存されたCSVファイルから、カタログのテーブルにデータを取り込む手順書について説明しました。

今回の記事が少しでもDatabricksを知るきっかけや、業務のご参考になれば幸いです。

双日テックイノベーションでは、Azure DatabricksやAzure活用、マイクロソフト製品の活用についてご相談事がありましたらぜひお問い合わせください!

・Azure Databricks連載シリーズはこちら

お問い合わせはこちら


この記事を読んだ方へのオススメコンテンツはこちら


この記事を書いた人

phongcq