Unity CatalogにアクセスできるクラスターとSQLウェアハウスの作成

[Create clusters & SQL warehouses with Unity Catalog access \| Databricks on AWS](https://docs.databricks.com/data-governance/unity-catalog/compute.html) [2022/12/16時点]の翻訳です。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

本書では、Untiy CatalogのデータにアクセスできるDatabricksクラスターやSQLウェアハウスをどのように作成するのかを説明します。

**SQLウェアハウス**は、クエリー、ダッシュボード、ビジュアライゼーションのようなDatabricks SQLのワークロードの実行に使用されます。お使いのワークスペースがUnity Catalogの[メタストア](https://docs.databricks.com/data-governance/unity-catalog/create-metastore.html)にアタッチされているのであれば、SQLウェアハウスを用いることで、デフォルトでUnity Catalogのデータにアクセスでき、Unity Catalog固有のコマンドを実行することができます。

**クラスター**は、Data Science & EngineeringやDatabricks Machine Learningのペルソナベースの環境におけるワークロードの実行に使用されます。Unity Catalogにアクセスできるクラスターを作成するためには、クラスターを作成するワークスペースがUnity Catalogメタストアにアタッチされ、Unity Catalogを使用できる*アクセスモード*(共有あるいはシングルユーザー)を使用しなくてはなりません。

利用している環境に応じて、これらの計算資源を用いてUnity Catalogのデータを操作することができます: Databricks SQLではSQLウェアハウス、Data Science & EngineeringやDatabricks Machine Learning環境ではクラスターとなります。

:::note
**注意**
プレビューで利用できるクラスター設定UIの変更に関しては、[Create a cluster](https://docs.databricks.com/clusters/create-cluster.html)をご覧ください。
:::

# クラスターアクセスモードとは？

Databricksでクラスターを作成する際、クラスターを使用しようとしているワークロードのタイプ固有のアクセスモードを選択しなくてはなりません。Unity Catalogは特定のクラスターアクセスモードを用いたセキュリティを強制します。クラスターがUnity Catalogを使用できるアクセスモード(共有あるいはシングルユーザー)のいずれかを設定されていない場合、クラスターはUnity Catalogのデータにアクセスすることはできません。

以下の表では利用可能なアクセスモードを一覧しています:

| アクセスモード | ユーザーへの表示 | UCのサポート | サポート言語 | 説明 |
|:--|:--|:--|:--|:--|
| シングルユーザー  |  常時 |  Yes | Python, SQL, Scala, R  | 単一のユーザーのみ割り当てることができます。読み込みを行うには、参照するすべてのテーブルやビューに対する`SELECT`権限を持つ必要があります。クレデンシャルパススルーはサポートされません。  |
| 共有  |  常時(プレミアムプランが必要) | Yes  | Python(Databricksランタイム11.1以降), SQL  | Initスクリプト、サードパーティライブラリ、JARSはサポートされません。Spark-submitジョブはサポートされません。クレデンシャルパススルーはサポートされません。  |
| 分離なし共有  | 管理者は、管理コンソールで[ユーザー分離を強制](https://docs.databricks.com/security/enforce-user-isolation.html)することでこのクラスタータイプを非表示にすることができます。  | No  | Python, SQL, Scala, R  | [分離なし共有クラスターに関連するアカウントレベルの設定](https://docs.databricks.com/administration-guide/account-settings/no-isolation-shared.html)があります。  |
| カスタム  |  (すべての新規クラスターにおいて)非表示 |  No | Python, SQL, Scala, R  | 特定のアクセスモードを持たない既存クラスターを持っている場合にのみこのオプションが表示されます。  |

クラスターアクセスモードを**シングルユーザー**や**共有**に設定することで、Unity Catalogの要件を満たすように既存クラスターをアップグレードすることができます。

# 要件

- Databricksアカウントは[プレミアムプラン以上](https://databricks.com/jp/product/aws-pricing)である必要があります。
- クラスターの作成権限が必要です。[Configure cluster creation entitlement](https://docs.databricks.com/administration-guide/access-control/cluster-acl.html#cluster-create-permission)をご覧ください。

# Unity Catalogにアクセスできるクラスターの作成

クラスターはノートブックや自動ジョブの実行ワークロード向けに設計されています。

Unity Catalogにアクセスできるクラスターを作成するには、ワークスペースがUnity Catalogメタストアにアタッチされている必要があります。

## Databricksランタイムの要件

Unity CatalogではDatabricksランタイム11.1以降が動作しているクラスターが必要となります。

以前のバージョンのDatabricksランタイムはプレビューバージョンのUnity Catalogをサポートしていました。以前のバージョンのDatabricksランタイムが動作しているクラスターでは、Unity CatalogのGAの機能の全てをサポートしていません。

## ステップ

クラスターを作成するには:

1. サイドバーで[ペルソナスイッチャー](https://qiita.com/taka_yayoi/items/dd41cd715aca272ff5ce#%E3%82%B5%E3%82%A4%E3%83%89%E3%83%90%E3%83%BC%E3%82%92%E4%BD%BF%E3%81%86)を使用して、Data Science and EngineeringかMachine Learningを選択します。
1. サイドバーで**New > Cluster**をクリックします。
1. 使用したいアクセスモードを選択します。
![](https://docs.databricks.com/_images/access-mode-uc.png)
    標準的なDatabricksランタイムバージョンを実行するクラスターにおいては、Unity Catalogに接続するために**シングルユーザー**か**共有アクセスモード**を選択します。Databricks機械学習ランタイムを使用している場合には、Unity Catalogに接続するために**シングルユーザー**アクセスモードを選択する必要があります。[クラスターアクセスモードとは？](#クラスターアクセスモードとは)をご覧ください。
1. Databricksランタイム11.1以降を選択します。
1. [クラスター設定](https://qiita.com/taka_yayoi/items/8d951b660cd87c6c5f18)を完了し、**Create Cluster**をクリックします。

クラスターが利用できるようになると、Unity Catalogを用いたワークロードを実行できるようになります。

# Unity CatalogにアクセスできるSQLウェアハウスの作成

SQLウェアハウスは、クエリー、ダッシュボード、ビジュアライゼーションのようなDatabricks SQLのワークロードの実行に使用されます。すべてのSQLウェアハウスはデフォルトでUnity Catalogのデータにアクセスできます。固有の設定オプションに関しては、[SQLウェアハウスの作成](https://qiita.com/taka_yayoi/items/23d7789198c2dcd66381#sql%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%8F%E3%82%A6%E3%82%B9%E3%81%AE%E4%BD%9C%E6%88%90)をご覧ください。

# 次のステップ

- [Create and manage catalogs](https://docs.databricks.com/data-governance/unity-catalog/create-catalogs.html)
- [Create and manage schemas \(databases\)](https://docs.databricks.com/data-governance/unity-catalog/create-schemas.html)
- [Unity Catalogにおけるテーブル作成](https://qiita.com/taka_yayoi/items/f23b9ee50c453bb8f8a8)

### Databricks 無料トライアル

[Databricks 無料トライアル](https://databricks.com/jp/try-databricks)