2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure Data Factory の Azure Databricks Delta Lake connector にて Unity Catalog を利用する方法

Last updated at Posted at 2024-05-02

概要

Azure Data Factory(ADF)の Azure Databricks Delta Lake connector にて Unity Catalog を利用する方法を紹介します。ADF の UI ではカタログを選択することができませんが、クラスターの初期カタログの設定を変更することで UC を利用できるようです。

image.png

Azure Databricks Delta Lake connector では既存の汎用クラスターを利用することとなるため、Databricks のクラスターにて次のような設定を行います。

image.png

Databricks Unity Catalog の2つのテーブルによりコピーアクティビティを実行したところ正常終了しました。

image.png

本記事では、検証手順を紹介します。

検証手順

1. 事前準備

下記のリソースを作成して、それぞれの認証設定を実施する。

  • Azure Data Factory
  • Databricks
  • Azure Storage (ADF 実行時のステージング用)

2. Databricks にてカタログ等を作成

nation_src テーブルにはデータがあり、 nation テーブルにはデータがない状態となっています。

%sql
CREATE CATALOG IF NOT EXISTS adf_test_01;
CREATE SCHEMA IF NOT EXISTS adf_test_01.shcema_01;
CREATE OR REPLACE TABLE adf_test_01.shcema_01.nation_src
AS
SELECT
  *
  FROM
    samples.tpch.nation
;
CREATE OR REPLACE TABLE adf_test_01.shcema_01.nation
(
  n_nationkey integer
  ,n_name string
  ,n_regionkey integer
  ,n_comment string
)
;

image.png

%sql
SELECT
  *
  FROM
    adf_test_01.shcema_01.nation

image.png

3. Databricks のクラスターにてデフォルトのカタログを変更

spark.databricks.sql.initial.catalog.name adf_test_01

image.png

下記のコードを実行することで、デフォルトのカタログの確認が可能です。

%sql
SELECT
  current_catalog()

image.png

4. ADF にてnation_src テーブルをソース、 nation テーブルをシンクに設定したコピーアクティビティを含むパイプライを作成して実行

image.png

image.png

5. Databricks にてシンク先のテーブルにデータがあることを確認

%sql
SELECT
  *
  FROM
    adf_test_01.shcema_01.nation

image.png

6. Databricks のカタログを削除

%sql
DROP CATALOG IF EXISTS adf_test_01 CASCADE;

image.png

2
0
1

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?