既定のカタログを管理する
この記事では、既定の Unity カタログ カタログについて説明し、既定として使用するカタログを決定する方法と、その変更方法について説明します。
Unity カタログの既定のカタログは何ですか?
既定のカタログは、Unity Catalog に対して有効になっているワークスペースごとに構成されます。 既定のカタログを使うと、カタログを指定せずにデータ操作を実行できます。 データ操作を実行するときに、最上位レベルのカタログ名を省略すると、既定のカタログが使われます。
ワークスペース管理者は、管理者設定 UI を使って既定のカタログを表示または切り替えることができます。 Spark 構成を使ってクラスターの既定のカタログを設定することもできます。
カタログを指定しないコマンド (たとえば GRANT CREATE TABLE ON SCHEMA myschema TO mygroup
) は、カタログに対して次の順序で評価されます。
USE CATALOG
ステートメントまたは JDBC 設定を使ってセッションにカタログが設定されていますか?- Spark 構成
spark.databricks.sql.initial.catalog.namespace
はクラスターに設定されていますか? - クラスターに設定されたワークスペースの既定のカタログはありますか?
Unity Catalog が有効な場合の既定のカタログ構成
ワークスペース用に最初に構成される既定のカタログは、Unity Catalog に対してワークスペースがどのように有効にされたかによって異なります。
- Unity Catalog に対して有効にされた一部のワークスペースには、"ワークスペース カタログ" が既定のカタログとして設定されました。 「Unity Catalog の自動有効化」を参照してください。
- 他のすべてのワークスペースには、
hive_metastore
カタログが既定のカタログとして設定されました。
Hive メタストアから既存のワークスペース内の Unity カタログに移行する場合は、通常、既定のカタログとして hive_metastore
を使用して、Hive メタストアを参照する既存のコードに影響を与えないようにするのが理にかなっています。
既定のカタログを変更する
ワークスペース管理者は、ワークスペースの既定のカタログを変更できます。 コンピューティング リソースを作成または編集するアクセス許可を持つすべてのユーザーは、コンピューティング リソースに別の既定のカタログを設定できます。
警告
既定のカタログを変更すると、それに依存する既存のデータ操作が中断される可能性があります。
ワークスペースに別の既定のカタログを構成するには:
- ワークスペース管理者としてワークスペースにログインします。
- ワークスペースの上部バーでユーザー名をクリックし、ドロップダウンから [管理者設定] を選択します。
- [詳細設定] タブをクリックします。
- [ワークスペースの既定のカタログ] 行にカタログ名を入力し、[保存] をクリックします。
変更を有効にするには、SQL ウェアハウスとクラスターを再起動します。 新規および再起動されたすべての SQL ウェアハウスとクラスターは、このカタログをワークスペースの既定値として使います。
また、特定のクラスターで次の Spark 構成を設定すると、そのクラスターの既定のカタログをオーバーライドすることもできます。 この方法は、SQL ウェアハウスでは使用できません。
spark.databricks.sql.initial.catalog.name
手順については、「Spark の構成」を参照してください。
現在の既定のカタログを表示する
ワークスペースの現在の既定のカタログを取得するには、ノートブックまたは SQL エディター クエリで SQL ステートメントを使います。 ワークスペース管理者は、管理者設定 UI を使って既定のカタログを取得することができます。
管理の設定
- ワークスペース管理者としてワークスペースにログインします。
- ワークスペースの上部バーでユーザー名をクリックし、ドロップダウンから [管理者設定] を選択します。
- [詳細設定] タブをクリックします。
- [ワークスペースの既定のカタログ] 行でカタログ名を確認します。
SQL
SQL ウェアハウスまたは Unity Catalog 準拠クラスター上で実行されているノートブックまたは SQL エディター クエリで次のコマンドを実行します。 セッションに USE CATALOG
ステートメントまたは JDBC 設定が設定されていない場合、またはクラスターに spark.databricks.sql.initial.catalog.namespace
構成が設定されていない場合、ワークスペースの既定のカタログが返されます。
SELECT current_catalog();