デフォルト カタログを管理する
この記事では、デフォルトの Unity Catalog カタログを紹介し、デフォルトとして使用するカタログを決定する方法と、それを変更する方法を説明します。
Unity Catalog のデフォルトのカタログは何ですか?
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 metastore から Unity Catalogに移行する場合は、デフォルトカタログを hive_metastore
に設定して、Hive metastoreを参照する既存のコードに影響を与えないようにすることができます。
デフォルト カタログを変更する
ワークスペース管理者は、ワークスペースのデフォルトカタログを変更できます。 コンピュート リソースを作成または編集する権限を持つユーザーは、コンピュート リソースに別のデフォルト カタログを設定できます。
警告
デフォルトのカタログを変更すると、それに依存する既存のデータ操作が中断される可能性があります。
ワークスペースに別のデフォルト カタログを構成するには:
ワークスペース管理者としてワークスペースにログインします。
ワークスペースの上部バーでユーザー名をクリックし、ドロップダウンから[管理設定] を選択します。
[詳細設定]タブをクリックします。
ワークスペースのデフォルトカタログ行にカタログ名を入力し、 「保存」をクリックします。
変更を有効にするには、 SQLウェアハウスとクラスターを再起動します。 すべての新規および再起動されたSQLウェアハウスおよびクラスターは、このカタログをワークスペース デフォルトとして使用します。
クラスターで次の Spark 構成を設定することで、特定のクラスターのデフォルト カタログをオーバーライドすることもできます。 このアプローチはSQLウェアハウスでは使用できません:
spark.databricks.sql.initial.catalog.name
手順については、 「Spark 構成」を参照してください。
現在のデフォルトカタログを表示する
ワークスペースの現在のデフォルト カタログを取得するには、ノートブックまたは SQL エディター クエリで SQL ステートメントを使用できます。 ワークスペース管理者は、管理者設定 UI を使用してデフォルトのカタログを取得できます。
ワークスペース管理者としてワークスペースにログインします。
ワークスペースの上部バーでユーザー名をクリックし、ドロップダウンから[管理設定] を選択します。
[詳細設定]タブをクリックします。
ワークスペースのデフォルトカタログ行で、カタログ名を表示します。
SQLウェアハウスまたは Unity Catalog 準拠のクラスターで実行されているデータベースまたはSQLエディター クエリで次のコマンドを実行します。 セッションにUSE CATALOG
ステートメントまたは JDBC 設定が設定されておらず、クラスターにspark.databricks.sql.initial.catalog.namespace
構成が設定されていない限り、ワークスペースのデフォルト カタログが返されます。
SELECT current_catalog();