本投稿はAzure DatabricksのUnity Catalog上でSnowflakeのデータベースを登録し、データ参照するためのLakehouse Federation有効化の手順について説明します。
参考URL: learn.microsoft.com
※ なお、本記事は、Azure Databricksをある程度使い慣れている方向けに書いていますので、Azure Databricksの概要や用語の解説は割愛しています。
連携のために作成するDatabricks Unity Catalogリソース
Snowflakeとの連携を設定するために、下記のリソースを作成します。
- 接続(CONNECTION)
- 外部データベース システムにアクセスするためのパスと資格情報を指定するためのリソース
- 外部カタログ(FOREIGN CATALOG)
- 外部データ システム内のデータベースをミラーリングし、Azure Databricks と Unity Catalog を使ってそのデータベース内のデータに対するクエリの実行とアクセス管理ができるようにするためのリソース
要件
今回の構成に必要なDatabricksの構成要件は下記の通りです。
- ワークスペース
- Unity Catalogが有効化されていること
- コンピューティング
- Databricks クラスター/SQLウェアハウスから対象データベースシステムへのネットワーク接続。
- クラスタを使用する場合の要件
- Runtimeは
13.1
以降。 - Unity Catalogをサポートするクラスタモードの利用(共有またはシングルユーザーアクセスモード)
- 参考URL: クラスタのアクセスモード
- Runtimeは
- SQLウェアハウスを使用する場合の要件
- Pro またはサーバーレスSQLウェアハウスの利用
- 作成に必要な権限
- 接続を作成するために必要なUnity Catalogの権限
-
CREATE CONNECTION
権限
-
- 外部カタログを作成のために必要なUnity Catalogの権限
-
CREATE FOREIGN CATALOG
権限 (またはCREATE CATALOG
権限と外部接続のOWNERSHIP
権限)
-
- 接続を作成するために必要なUnity Catalogの権限
手順
ここからは実際にLakehouse Federationを有効化する手順をご紹介します。
接続の作成
カタログエクスプローラより「接続」を選択し「接続を作成」を押下します。
新しい接続を作成」の各項目を入力し「接続のテスト」を押下します。
項目名 | 設定値 |
---|---|
接続名 | 任意の接続名 |
接続タイプ | Snowflake |
ユーザー | Snowflakeで使用するユーザー名 |
パスワード | Snowflakeで使用するユーザーパスワード |
ホスト | Snowflake側のホスト 例: xxxxx.ap-northeast-1.aws.snowflakecomputing.com |
Snowflakeウェアハウス | Snowflakeユーザーが使用するウェアハウス |
アクティブなウェハウスを使用して「テスト」を押下します。
正常に接続されることを確認後、「作成」を押下します。
外部カタログの作成
前手順で作成した接続の画面から「カタログを作成」を押下します。
「新規カタログを作成」の各項目を入力し「作成」を押下します。
項目名 | 設定値 |
---|---|
カタログ名 | 任意のカタログ名 |
データベース | Snowflakeで利用するデータベース名 |
リソース作成後の確認
UI上から、Snowflakeデータベース配下のスキーマ一覧が確認できます。
Databricksのテーブル同様に、テーブルのカラム情報やメタ情報も確認できます。
データの参照も通常のSELECT文によって取得することができます。
[参考] Lakehouse Federationでサポートされるデータソース
本記事では、Snowflakeとの連携方法を説明しましたが、Azure DatabricksのLakehouse Federationでは、Snowflake以外にも以下データベースとの連携をサポートします。
データベース |
---|
MySQL |
PostgreSQL |
Amazon Redshift |
Snowflake |
Microsoft SQL Server |
Azure Synapse (SQL Data Warehouse) |
Google BigQuery |
Databricks |
まとめ
本記事ではAzure DatabricksのLakehouse Federationを用いたSnowflake連携方法の説明と検証を行いました。
今後もAzure Databricksに関する記事を投稿する予定ですので、是非ご一読下さい。